@pimlico/alto 0.0.0-main.20250611T105955 → 0.0.0-main.20250611T181721

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":"_paymasterValidation","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"outOpInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"validationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"_validatePrepayment","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"outOpInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]},{"name":"validatePaymasterPrepayment","type":"bool","internalType":"bool"}],"outputs":[{"name":"validationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"addStake","inputs":[{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"binarySearchCallGasLimit","inputs":[{"name":"queuedUserOps","type":"tuple[]","internalType":"struct SimulationArgs[]","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct SimulationArgs","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"entryPoint","type":"address","internalType":"address"},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.TargetCallResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchPaymasterVerificationGasLimit","inputs":[{"name":"queuedUserOps","type":"tuple[]","internalType":"struct SimulationArgs[]","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct SimulationArgs","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"entryPoint","type":"address","internalType":"address"},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.TargetCallResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchVerificationGasLimit","inputs":[{"name":"queuedUserOps","type":"tuple[]","internalType":"struct SimulationArgs[]","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct SimulationArgs","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"entryPoint","type":"address","internalType":"address"},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.TargetCallResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"depositTo","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"deposit","type":"uint256","internalType":"uint256"},{"name":"staked","type":"bool","internalType":"bool"},{"name":"stake","type":"uint112","internalType":"uint112"},{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"},{"name":"withdrawTime","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getDepositInfo","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"info","type":"tuple","internalType":"struct IStakeManager.DepositInfo","components":[{"name":"deposit","type":"uint256","internalType":"uint256"},{"name":"staked","type":"bool","internalType":"bool"},{"name":"stake","type":"uint112","internalType":"uint112"},{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"},{"name":"withdrawTime","type":"uint48","internalType":"uint48"}]}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"uint192","internalType":"uint192"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserOpHash","inputs":[{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"incrementNonce","inputs":[{"name":"key","type":"uint192","internalType":"uint192"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"innerHandleOp","inputs":[{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"opInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]},{"name":"context","type":"bytes","internalType":"bytes"},{"name":"preGas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"actualGasCost","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"nonceSequenceNumber","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint192","internalType":"uint192"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"simulateCall","inputs":[{"name":"entryPoint","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"},{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateCallAndRevert","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOp","inputs":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOpBulk","inputs":[{"name":"ops","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IEntryPointSimulations.ExecutionResult[]","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOpLast","inputs":[{"name":"ops","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateValidation","inputs":[{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ValidationResult","components":[{"name":"returnInfo","type":"tuple","internalType":"struct IEntryPoint.ReturnInfo","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterContext","type":"bytes","internalType":"bytes"}]},{"name":"senderInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"factoryInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"paymasterInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"aggregatorInfo","type":"tuple","internalType":"struct IEntryPoint.AggregatorStakeInfo","components":[{"name":"aggregator","type":"address","internalType":"address"},{"name":"stakeInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateValidationBulk","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IEntryPointSimulations.ValidationResult[]","components":[{"name":"returnInfo","type":"tuple","internalType":"struct IEntryPoint.ReturnInfo","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterContext","type":"bytes","internalType":"bytes"}]},{"name":"senderInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"factoryInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"paymasterInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"aggregatorInfo","type":"tuple","internalType":"struct IEntryPoint.AggregatorStakeInfo","components":[{"name":"aggregator","type":"address","internalType":"address"},{"name":"stakeInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateValidationLast","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ValidationResult","components":[{"name":"returnInfo","type":"tuple","internalType":"struct IEntryPoint.ReturnInfo","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterContext","type":"bytes","internalType":"bytes"}]},{"name":"senderInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"factoryInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"paymasterInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"aggregatorInfo","type":"tuple","internalType":"struct IEntryPoint.AggregatorStakeInfo","components":[{"name":"aggregator","type":"address","internalType":"address"},{"name":"stakeInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unlockStake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawStake","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"},{"name":"withdrawAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AccountDeployed","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"factory","type":"address","indexed":false,"internalType":"address"},{"name":"paymaster","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeforeExecution","inputs":[],"anonymous":false},{"type":"event","name":"Deposited","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"totalDeposit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PostOpRevertReason","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"revertReason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SignatureAggregatorChanged","inputs":[{"name":"aggregator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StakeLocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"totalStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StakeUnlocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StakeWithdrawn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationEvent","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"paymaster","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"actualGasCost","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"actualGasUsed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationPrefundTooLow","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationRevertReason","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"revertReason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Withdrawn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"CallPhaseReverted","inputs":[{"name":"reason","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"FailedOp","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedOpWithRevert","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"reason","type":"string","internalType":"string"},{"name":"inner","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"PostOpReverted","inputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SenderAddressResult","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"SignatureValidationFailed","inputs":[{"name":"aggregator","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationOutOfGas","inputs":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"innerCallResult","inputs":[{"name":"remainingGas","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60c080604052346101005760016002556101948181016001600160401b038111838210176100ea578291614cda833903906000f080156100de576080523060a052610048610105565b60008152602081019060008252806020610060610105565b600081520152600380546001600160a01b03191690555160045551600555604051614bb5908161012582396080518161411c015260a051818181612bf40152818161342c01528181613488015281816136720152818161372f0152818161378a0152818161389d0152818161395a015281816139b50152613ac80152f35b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fd5b60408051919082016001600160401b038111838210176100ea5760405256fe60806040526004361015610023575b361561001957600080fd5b610021612cec565b005b60003560e01c80630396cb60146101c357806303d1dcaf146101be5780630bd28e3b146101b95780630da82661146101b45780630dbfc6bd146101af5780631b2e01b8146101aa578063205c2878146101a557806321e60b37146101a057806322cdde4c1461019b578063263934db1461019657806330ec25d11461019157806335567e1a1461018c57806344403473146101875780635287ce121461018257806370a082311461017d5780637472949c1461017857806376ad61231461017357806397b2dcb91461016e578063b760faf914610169578063bb9fe6bf14610164578063c23a5cea1461015f578063c3bce0091461015a578063c579f76b14610155578063f7e426e814610150578063fc7e286d1461014b5763fe2171cb0361000e57611926565b611898565b61185f565b6115cf565b611598565b611471565b61134a565b61131f565b611125565b6110ec565b6110cc565b61108e565b610f7d565b610f37565b610e65565b610de7565b610cd0565b610c9f565b610ba2565b610aaa565b610a49565b6109cb565b61081d565b610593565b6104f6565b60203660031901126103b95760043563ffffffff8116908181036103b9576103b47fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c019161039661028461027461022c336001600160a01b03166000526000602052604060002090565b96610238811515611976565b61026560018901549161025e6102558463ffffffff9060781c1690565b63ffffffff1690565b11156119c1565b60081c6001600160701b031690565b6001600160701b03349116611a3f565b94610290861515611a4c565b6102a36001600160701b03871115611a97565b546102ac61069d565b908152600160208201526001600160701b038616604082015263ffffffff83166060820152600060808201526102f5336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b9181601f840112156103b95782359167ffffffffffffffff83116103b9576020808501948460051b0101116103b957565b6001600160a01b038116036103b957565b359061040b826103ef565b565b60c06003198201126103b95760043567ffffffffffffffff81116103b95781610438916004016103be565b929092916024359067ffffffffffffffff82116103b95760609082900360031901126103b9576004019060443561046e816103ef565b90606435906084359060a43590565b60005b8381106104905750506000910152565b8181015183820152602001610480565b906020916104b98151809281855285808601910161047d565b601f01601f1916010190565b608060406104f3936020845280516020850152602081015115158285015201519160608082015201906104a0565b90565b346103b95761057961056d61055661050d3661040d565b969194909561051d949394611ae2565b50610550610529611b03565b61053e6105368780611b73565b825190612d40565b6105488680611b73565b905a91612f9b565b50613276565b6105686105638280611b73565b61333b565b6133ce565b604051918291826104c5565b0390f35b602435906001600160c01b03821682036103b957565b346103b95760203660031901126103b9576004356001600160c01b03811681036103b9576105e1903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6105eb8154611b89565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761062157604052565b6105ef565b6060810190811067ffffffffffffffff82111761062157604052565b610140810190811067ffffffffffffffff82111761062157604052565b6040810190811067ffffffffffffffff82111761062157604052565b90601f8019910116810190811067ffffffffffffffff82111761062157604052565b6040519061040b60a08361067b565b6040519061040b6101408361067b565b6040519061040b6101008361067b565b6040519061040b60408361067b565b6040519061040b60608361067b565b6040519061040b6101208361067b565b67ffffffffffffffff811161062157601f01601f191660200190565b929192610722826106fa565b91610730604051938461067b565b8294818452818301116103b9578281602093846000960137010152565b9080601f830112156103b9578160206104f393359101610716565b60431901906101c082126103b95760405161078281610605565b6101408193126103b9576107946106ac565b61079e6044610400565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526107dc610124610400565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103b9576102203660031901126103b95760043567ffffffffffffffff81116103b95761084f90369060040161074d565b3660231901906101c082126103b9576101406040519261086e84610605565b126103b95761087b6106ac565b6108856024610400565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526108c2610104610400565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103b95760409261092961093493369060040161074d565b906102043592611b98565b82519182526020820152f35b60206003198201126103b9576004359067ffffffffffffffff82116103b95761096b916004016103be565b9091565b9061010060e06104f393805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906104a0565b346103b9576109e26109dc36610940565b90611f05565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610a1a57505050500390f35b91936001919395506020610a398192603f198a8203018652885161096f565b9601920192018594939192610a0b565b346103b95760403660031901126103b9576020610aa1600435610a6b816103ef565b6001600160a01b03610a7b61057d565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103b95760403660031901126103b957600435610ac7816103ef565b602435336000526000602052604060002091825490818311610b4f5760008080856001600160a01b03829589610b00846100219a6120af565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b496120bc565b506120ec565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b90816101209103126103b95790565b346103b9576102003660031901126103b95760243560043567ffffffffffffffff82116103b957610bda610579923690600401610b93565b90610be436610768565b600092815192610bf48483612d40565b610bfd82612137565b60208401526001600160a01b0360e0610c3786610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610c5f575b6040805160008082526020820188905291810191909152806060810188565b610c699450613c92565b905038808080610c40565b60206003198201126103b9576004359067ffffffffffffffff82116103b9576104f391600401610b93565b346103b9576020610cb7610cb236610c74565b612137565b604051908152f35b9060206104f392818152019061096f565b346103b957610cfc610ce136610940565b809291610cec611e05565b50610cf682611e5a565b50611f05565b6000198201918211610d2a5761057991610d1591611ef1565b5160405191829160208352602083019061096f565b611a0c565b906104f39060e06080610d81818651610140865280516101408701526020810151610160870152604081015161018087015260608101516101a0870152015160a06101c08601526101e08501906104a0565b60208087015180518683015201516040850152946040810151805160608601526020015160808501526060810151805160a08601526020015160c0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103b957610dfe610df836610940565b906122c8565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610e3657505050500390f35b91936001919395506020610e558192603f198a82030186528851610d2f565b9601920192018594939192610e27565b346103b95760403660031901126103b9576020600435610e84816103ef565b6001600160a01b03610e9461057d565b911660005260018252610ebe816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b60606003198201126103b957600435610eee816103ef565b9160243567ffffffffffffffff81116103b957826023820112156103b95780600401359267ffffffffffffffff84116103b957602484830101116103b957602401919060443590565b346103b95760008080610f4936610ed6565b939181604094929451948592833781018381520393f1610f676120bc565b9015610f6f57005b80519081156103b957602001fd5b346103b95760203660031901126103b9576001600160a01b03600435610fa2816103ef565b60006080604051610fb281610605565b8281528260208201528260408201528260608201520152166000526000602052610579604060002061103a65ffffffffffff600160405193610ff385610605565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103b95760203660031901126103b9576001600160a01b036004356110b3816103ef565b1660005260006020526020604060002054604051908152f35b346103b95761057961056d6110e03661040d565b959490949391936123b5565b346103b95761057961056d6111136111033661040d565b9691949095610550949394611ae2565b6111206105638280611b73565b6136ef565b346103b95760603660031901126103b95760043567ffffffffffffffff81116103b957611156903690600401610b93565b602435611162816103ef565b60443567ffffffffffffffff81116103b95761118290369060040161074d565b9161118b611e05565b5060009160028054146113105761057993600280556111a8611b03565b6111b18461333b565b6111bb81856128b6565b91955a6060850151856111d16060850185612618565b8c60038211611308575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b036112ef57505061123f611253611258956020840151604051938492638dd7712f60e01b6020850152604060248501526064840190612e6b565b90604483015203601f19810183528261067b565b611b98565b9390975b80956060976001600160a01b0381166112c6575b5050509560806112ab96970151976112866106bc565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526112ba6001600255565b60405191829182610cbf565b6112ab98508280949850602083519301915af19560806112e46120bc565b979591979638611270565b611300955090611253913691610716565b93909761125c565b5081356111db565b600483633ee5aeb560e01b8152fd5b60203660031901126103b95761002160043561133a816103ef565b612442565b60009103126103b957565b346103b95760003660031901126103b9573360005260006020526001604060002001805463ffffffff8160781c161561142d576113b66113a86102558361139c6113976113f09660ff1690565b612483565b60781c63ffffffff1690565b65ffffffffffff42166124ce565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103b4565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103b95760203660031901126103b9576100216000808080600435611496816103ef565b6001600160a01b0360016114bd336001600160a01b03166000526000602052604060002090565b019161154b83549361152365ffffffffffff61150f6114f56114e9896001600160701b039060081c1690565b6001600160701b031690565b976115018915156124ec565b60981c65ffffffffffff1690565b1661151b811515612537565b421015612582565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af16115926120bc565b506125cd565b346103b9576105796115b16115ac36610c74565b6126f0565b604051918291602083526020830190610d2f565b801515036103b957565b346103b9576102203660031901126103b95760043560243567ffffffffffffffff81116103b957611604903690600401610b93565b9061160e36610768565b610204359061161c826115c5565b6000935a82519361162d8584612d40565b61163683612137565b60208501526040850151956116826effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a08901511761010089015117610120890151171115612855565b6116ad86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b906116bb88838888856130f7565b976116e26116de6116d38a516001600160a01b031690565b60208b015190613ffc565b1590565b61180a575a8503116117b8576060926001600160a01b0361170e60e05a9a01516001600160a01b031690565b16151590816117b0575b50611779575b509360806117559460a061175095610579999561175c99604087015260608601525a9003910135019101525a906120af565b6128a0565b6064900490565b604051938493846040919493926060820195825260208201520152565b8198506105799692508460a06117509561179e899561175c9a6117559a608097613c92565b9c90969a50949850955050945061171e565b905038611718565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103b95761187961187036610ed6565b92919091612b9d565b90610579604051928392151583526040602084015260408301906104a0565b346103b95760203660031901126103b9576001600160a01b036004356118bd816103ef565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b346103b95761194861193736610940565b809291611942612241565b506122c8565b6000198201918211610d2a576105799161196191611ef1565b51604051918291602083526020830190610d2f565b1561197d57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b156119c857565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211610d2a57565b9060018201809211610d2a57565b91908201809211610d2a57565b15611a5357565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611a9e57565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b60405190611aef82610626565b606060408360008152600060208201520152565b60405190611b1082610605565b6000608083604051611b2181610642565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b90359061011e19813603018212156103b9570190565b6000198114610d2a5760010190565b93929093845190606082015181519081611d83575b505050505a900360808401510192600093845a835194611bcc86614949565b92611be160e08801516001600160a01b031690565b6001600160a01b038116919082611cb15750505050611c0785516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611c9c575b505085029460408501938451878110600014611c7157505050611c6d939450611c556000613b89565b5a9003905101905183611c688295614a42565b614973565b9190565b611c6d969295508780955060019450611c8c92910390613e69565b50611c976000613b89565b6149db565b9196916064919003600a020401943880611c2c565b95928051611cc2575b505050611c09565b9091929950611cd082613b89565b5a9260a089015190803b15611d7f579183929187848196948f611d25604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601613b98565b0393f19182611d65575b5050611d5957611806611d40613b45565b6040519182916365c8fd4d60e01b835260048301613bca565b5a900396388080611cba565b611d72611d78928261067b565b8061133f565b3880611d2f565b8380fd5b600080949360206001600160a01b0383965116910192f115611da85738808080611bad565b611806611db3613b45565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906104a0565b67ffffffffffffffff81116106215760051b60200190565b60405190610100820182811067ffffffffffffffff82111761062157604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90611e6482611ded565b611e71604051918261067b565b8281528092611e82601f1991611ded565b019060005b828110611e9357505050565b602090611e9e611e05565b82828501015201611e87565b634e487b7160e01b600052603260045260246000fd5b90821015611ed7576104f39160051b810190611b73565b611eaa565b60405190611eeb60208361067b565b60008252565b8051821015611ed75760209160051b010190565b611f0e82611e5a565b9160005b818110611f1f5750505090565b611f2a818385611ec0565b6020906000604051611f3c848261067b565b52611f45611e05565b50600060028054146120825790612037600194939260028055611f66611b03565b92611f708161333b565b84611f7b85836128b6565b929091935a9088606081015191611f956060820182612618565b8a6003821161207a575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361206257505061125385638dd7712f60e01b9261123f6120029886015191604051958694850152604060248501526064840190612e6b565b93905b60806060980151986120156106bc565b998a52890152604088015285870152608086015260a0850152151560c0840152565b60e08201526120466001600255565b6120508287611ef1565b5261205b8186611ef1565b5001611f12565b612073965061125392503691610716565b9390612005565b508135611f9f565b80633ee5aeb560e01b60049252fd5b600319810191908211610d2a57565b600019810191908211610d2a57565b91908203918211610d2a57565b3d156120e7573d906120cd826106fa565b916120db604051938461067b565b82523d6000602084013e565b606090565b156120f357565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60208101356121f961214c6040840184612618565b908160405191823720916121eb6121666060860186612618565b90816040519182372060c086013560a0870135608088013561219461218e60e08b018b612618565b90614b74565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b03601f19810183528261067b565b5190206040805160208101928352309181019190915246606082015261222281608081016121eb565b51902090565b604051906122358261065f565b60006020838281520152565b6040519061224e82610605565b8160405161225b81610605565b60008152600060208201526000604082015260006060820152606060808201528152612285612228565b6020820152612292612228565b604082015261229f612228565b60608201526080604051916122b38361065f565b600083526122bf612228565b60208401520152565b6122d182611ded565b916122df604051938461067b565b808352601f196122ee82611ded565b0160005b81811061233857505060005b81811061230b5750505090565b8061231c6115ac6001938587611ec0565b6123268287611ef1565b526123318186611ef1565b50016122fe565b602090612343612241565b828288010152016122f2565b908092918237016000815290565b356104f3816103ef565b6040519061237660208361067b565b6000808352366020840137565b9061238d826106fa565b61239a604051918261067b565b82815280926123ab601f19916106fa565b0190602036910137565b906123c891969594939296610550611ae2565b6001600160a01b036123da8680611b73565b6124036020880135916123ec836103ef565b6123f4611b03565b906123fe8161333b565b6128b6565b5050501615612415576104f39461391a565b5050505050612422612367565b6040519061242f82610626565b6000825260006020830152604082015290565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036124773485613e69565b936040519485521692a2565b1561248a57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211610d2a57565b156124f357565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561253e57565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561258957565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156125d457565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b903590601e19813603018212156103b9570180359067ffffffffffffffff82116103b9576020019181360383136103b957565b906014116103b95790601490565b90929192836034116103b95783116103b957603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612696575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b604051906126c38261065f565b6003546001600160a01b031682526040516020836126e08361065f565b6004548352600554828401520152565b6126f8612241565b50612701611b03565b9061270b8161333b565b61271582826128b6565b509190926127238385613e91565b61274061273b60e0835101516001600160a01b031690565b613fb9565b9161276e61275a61273b84516001600160a01b0390511690565b91612763612228565b506040810190612618565b90601482106128495761279061278a6127969361273b9361264b565b90612676565b60601c90565b916001600160a01b0386169460808201519660606040840151930151926127bb61069d565b98895260208901526040880152606087015260808601526127da6126b6565b938015158061283e575b61280c575b506127f261069d565b948552602085015260408401526060830152608082015290565b90935061281881613fb9565b6128326128236106cc565b6001600160a01b039093168352565b602082015292386127e9565b5060018114156127e4565b50506127966000613fb9565b1561285c57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715610d2a57565b90916000915a938051916128ca8382612d40565b6128d381612137565b602083015260408301519561291f6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a08701511761010087015117610120870151171115612855565b61294a84610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129588882868660006130f7565b9761297b6116de61297088516001600160a01b031690565b602089015190613ffc565b612a72575a830311612a1e576060906001600160a01b036129a760e05a9801516001600160a01b031690565b16151580612a16575b6129e3575b6117509360a06104f39794879460809460406117559a015260608601525a9003910135019101525a906120af565b965050928260808360a06104f397612a048b61175599611750996000613c92565b9b9095985093509497505093506129b5565b5060016129b0565b604051631101335b60e11b815280611806600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b908060209392818452848401376000828201840152601f01601f1916010190565b6040906001600160a01b036104f395931681528160208201520191612ac6565b6040513d6000823e3d90fd5b908151811015611ed7570160200190565b81601f820112156103b9578051612b3a816106fa565b92612b48604051948561067b565b818452602082840101116103b9576104f3916020808501910161047d565b9190916040818403126103b9578051612b7e816115c5565b92602082015167ffffffffffffffff81116103b9576104f39201612b24565b91926000936001600160a01b036060941691823b156103b957612c1d93600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612ae7565b0393f19081612cd7575b5061096b575050612c366120bc565b906004825110612cc857612c52612c4d8351612091565b612383565b60045b8351811015612cb25780612c94612c6e60019387612b13565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612cab612ca083612091565b9160001a9185612b13565b5301612c55565b5061096b91925060208082518301019101612b66565b9050612cd2612367565b600091565b80611d726000612ce69361067b565b38612c27565b61040b33612442565b15612cfc57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b612dd790612d5d612d508261235d565b6001600160a01b03168452565b60208101356020840152612d8a6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c0840152612dc160c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612618565b908115612e1357612dfb8260e092612df6603461040b97961015612cf5565b61404e565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b908160209103126103b9575190565b9035601e19823603018112156103b957016020813591019167ffffffffffffffff82116103b95781360383136103b957565b6104f391612e8981612e7c84610400565b6001600160a01b03169052565b60208201356020820152612f1f612f13612eda612ebf612eac6040870187612e39565b6101206040880152610120870191612ac6565b612ecc6060870187612e39565b908683036060880152612ac6565b6080850135608085015260a085013560a085015260c085013560c0850152612f0560e0860186612e39565b9085830360e0870152612ac6565b92610100810190612e39565b91610100818503910152612ac6565b612f4660409295949395606083526060830190612e6b565b9460208201520152565b60a0906104f39392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b92909161301e6020600095855193612fe860e0612fbf87516001600160a01b031690565b96612fda8a8c612fd26040890189612618565b9290916140ac565b01516001600160a01b031690565b91886001600160a01b038194161598896130bc575b85015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f185918161308b575b5061305f5784613042613b45565b906118066040519283926365c8fd4d60e01b845260048401612f50565b93919261306a575050565b613087906001600160a01b03166000526000602052604060002090565b5050565b6130ae91925060203d6020116130b5575b6130a6818361067b565b810190612e2a565b9038613034565b503d61309c565b93506130db876001600160a01b03166000526000602052604060002090565b5480156130ee575084815b949050612ffd565b859082036130e6565b949291939060206131679186519361312e60e061311b87516001600160a01b031690565b96612fda8b8d612fd26040890189612618565b916001600160a01b0360009316159889613234575b84600091015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f160009181613213575b5061318c5785613042613b45565b94929361319857505050565b6131b5906001600160a01b03166000526000602052604060002090565b918254908183116131c65750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b61322d91925060203d6020116130b5576130a6818361067b565b903861317e565b9250613253866001600160a01b03166000526000602052604060002090565b548781111561326b5750600084815b94915050613143565b846000918903613262565b9160005b828110156133355761328a611b03565b6000908260051b860135605e198736030181121561333157906132c560019493928801916132bb6105638480611b73565b6123fe8380611b73565b50505060208101906132e56132d98361235d565b6001600160a01b031690565b1561332957826133036132f8829461235d565b926040810190612618565b91906133146040518094819361234f565b03925af1506133216120bc565b505b0161327a565b505050613323565b8280fd5b50915050565b61336e9061334c6040820182612618565b9161336681359161335c836103ef565b60e0810190612618565b93909261434d565b80516133775750565b61180690604051918291631101335b60e11b8352600060048401526040602484015260448301906104a0565b9392916133c9906001600160a01b036040931686526060602087015260608601906104a0565b930152565b939490946133da611ae2565b5060009280156136335761341f93506133f1611edc565b509160006134015a8860026146e8565b5a906040519687928392631efc84dd60e31b84528c600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613612575b508294809381156135ef57505061347d909592919394955b85611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134b588856120af565b106135c5575a6134c488611a22565b1161358c57918695939189959360008c8b6134f76134ee6134e8886135179f611a3f565b60011c90565b809b60026146e8565b835a936040519e8f9586948593631efc84dd60e31b8552600485016133a3565b03925af198891561358757600090819a613561575b501561354c5750505061353e846120a0565b95915b9390929495916134aa565b9396509461355b919750611a31565b94613541565b9061357f929a503d8091833e613577818361067b565b810190612b66565b98903861352c565b612b07565b7fe2c4d0be0000000000000000000000000000000000000000000000000000000060005260048290526024879052604483905260646000fd5b9650965050919550506135e791506135db6106db565b93845215156020840152565b604082015290565b965096505095505050506135e76136046106db565b600081529215156020840152565b90925061362991943d8091833e613577818361067b565b939093913861345f565b50613665915a91846136475a8960026146e8565b5a906040519687928392631efc84dd60e31b84528d600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956136cb575b505083946136b381945a906120af565b9481156135ef57505061347d90959291939495613477565b909194506136e49295503d8091833e613577818361067b565b9390939238806136a3565b939490946136fb611ae2565b50600092801561387c576137229350613712611edc565b509160006134015a8860036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af191821561358757600094859361385b575b508294809381156135ef57505061377f9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846137b788856120af565b106135c5575a6137c688611a22565b1161358c57918695939189959360008c8b6134f76137ea6134e8886137f39f611a3f565b809b60036146e8565b03925af198891561358757600090819a61383d575b50156138285750505061381a846120a0565b95915b9390929495916137ac565b93965094613837919750611a31565b9461381d565b90613853929a503d8091833e613577818361067b565b989038613808565b90925061387291943d8091833e613577818361067b565b9390939138613762565b50613890915a91846136475a8960036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956138f6575b505083946138de81945a906120af565b9481156135ef57505061377f90959291939495613477565b9091945061390f9295503d8091833e613577818361067b565b9390939238806138ce565b93949094613926611ae2565b506000928015613aa75761394d935061393d611edc565b509160006134015a8860016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613a86575b508294809381156135ef5750506139aa9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846139e288856120af565b106135c5575a6139f188611a22565b1161358c57918695939189959360008c8b6134f7613a156134e888613a1e9f611a3f565b809b60016146e8565b03925af198891561358757600090819a613a68575b5015613a5357505050613a45846120a0565b95915b9390929495916139d7565b93965094613a62919750611a31565b94613a48565b90613a7e929a503d8091833e613577818361067b565b989038613a33565b909250613a9d91943d8091833e613577818361067b565b939093913861398d565b50613abb915a91846136475a8960016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af193841561358757858095613b21575b50508394613b0981945a906120af565b9481156135ef5750506139aa90959291939495613477565b90919450613b3a9295503d8091833e613577818361067b565b939093923880613af9565b3d6108008111613b6a575b604051906020818301016040528082526000602083013e90565b50610800613b50565b634e487b7160e01b600052602160045260246000fd5b60031115613b9357565b613b73565b90949392946003811015613b9357606092613bc09183526080602084015260808301906104a0565b9460408201520152565b9060a06104f3926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906104a0565b91906040838203126103b957825167ffffffffffffffff81116103b957602091613c41918501612b24565b92015190565b60a0906104f39392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b929390915a92815190613caf60e08301516001600160a01b031690565b91613ccd836001600160a01b03166000526000602052604060002090565b8054898110613e14576001600160a01b0360206080600097958d9795613d2f9d9e8a960390550151970151926040519a8b96879586937f52b7512c00000000000000000000000000000000000000000000000000000000855260048501612f2e565b03931686f19384600091600096613ded575b50613d6c5785613d4f613b45565b906118066040519283926365c8fd4d60e01b845260048401613c47565b9491925a900311613d7a5750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613e0d91503d806000833e613e05818361067b565b810190613c16565b9438613d41565b61180689604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6001600160a01b0316600052600060205260406000208054918201809211610d2a5781905590565b613ea26001600160a01b0391614a85565b9116613f6d57613f1957613ebd6001600160a01b0391614a85565b5016613ec557565b604051631101335b60e11b815280611806600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613fca612228565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b6001600160a01b0316600052600160205267ffffffffffffffff61403a8260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261404784611b89565b9055161490565b9091826014116103b957813591836024116103b9576014810135936034116103b95760609290921c92608090811c9260240135901c90565b908160209103126103b957516104f3816103ef565b9160206104f3938181520191612ac6565b929091816140bb575b50505050565b8251516001600160a01b031693843b61430057604084510151602060405180927f570e1a36000000000000000000000000000000000000000000000000000000008252816000816141108a8a6004840161409b565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f1908115613587576000916142d1575b506001600160a01b03811695861561427c576001600160a01b0316809603614227573b156141da575061279061278a7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936141a79361264b565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a3388080806140b5565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61180683604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6142f3915060203d6020116142f9575b6142eb818361067b565b810190614086565b3861414d565b503d6142e1565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b50929192159081614402575b506143c5576014811015614372575b50506104f3611edc565b6014116103b9573560601c3b1561438a573880614368565b60405161439860408261067b565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143d560408261067b565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614359565b610120813603126103b95761441f6106ea565b9061442981610400565b825260208101356020830152604081013567ffffffffffffffff81116103b957614456903690830161074d565b6040830152606081013567ffffffffffffffff81116103b95761447c903690830161074d565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff81116103b9576144c0903690830161074d565b60e08301526101008101359067ffffffffffffffff82116103b9576144e79136910161074d565b61010082015290565b60041115613b9357565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b168552166014840152166024820152614548825180936020868501910161047d565b010190565b80516001600160a01b031682526104f391602082015160208201526101006145ce61459e61458c604086015161012060408701526101208601906104a0565b606086015185820360608701526104a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526104a0565b920151906101008184039101526104a0565b60806101a09161012081516145fe8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261465260e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6146be6146b3610200939695949660008452610220602085015261022084019061454d565b9560408301906145e0565b0152565b610200906146be6146b3600094969596858452610220602085015261022084019061454d565b6146f0611b03565b6147026146fd8480611b73565b61440c565b61470b836144f0565b600283146148645761471c836144f0565b600383146147dd575050806147326001926144f0565b1461477c5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b806121eb6147a76147a061479560206104f3960161235d565b936040810190612618565b3691610716565b936040519485937f44403473000000000000000000000000000000000000000000000000000000006020860152602485016133a3565b9150926fffffffffffffffffffffffffffffffff61482461481d614804866104f397611b73565b608001356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526121eb6040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016146c2565b9150926121eb906fffffffffffffffffffffffffffffffff19846148ef6148e161489d61489761335c856104f39b611b73565b9061404e565b9291905060609060e08a0195603487515111614925575b5060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b1690602086016144fa565b03601f19810184528361067b565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161468e565b61494291925061493b61335c826147a093611b73565b8091612659565b90386148b4565b61012061010082015191015180821461496f5748018082101561496a575090565b905090565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b8015614b6b57600060408051614a9a81610626565b828152826020820152015265ffffffffffff8160a01c168015614b5e575b614b4090614b27614acf614ada614acf8660d01c90565b65ffffffffffff1690565b92614aff6001600160a01b03614aee6106db565b971687906001600160a01b03169052565b614b156020870194859065ffffffffffff169052565b65ffffffffffff166040860181905290565b4211908115614b43575b5091516001600160a01b031690565b91565b51614b56915065ffffffffffff16614acf565b421038614b31565b5065ffffffffffff614ab8565b50600090600090565b81604051918237209056fea26469706673582212208b323ab26fcbf5b8bf0d2c6983cc43a6a3591415b027235c5605437ae9bc014d64736f6c634300081c003360808060405234601557610179908161001b8239f35b600080fdfe6080600436101561000f57600080fd5b60003560e01c63570e1a361461002457600080fd5b3461013e57602036600319011261013e5760043567ffffffffffffffff811161013e573660238201121561013e57806004013567ffffffffffffffff811161013e57366024828401011161013e576000928160141161013a5760131982019167ffffffffffffffff831161012657600b8101601f19908116603f0116820167ffffffffffffffff8111838210176101125760246020959387600c819795829560405286845289840196603889018837830101525193013560601c5af19051901561010a575b60209073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b5060006100e9565b602486634e487b7160e01b81526041600452fd5b602485634e487b7160e01b81526041600452fd5b8380fd5b600080fdfea2646970667358221220835f9b39d36d1e9f6a4143e93be04de137e46b8d981cf0a3e517cfa714ac421864736f6c634300081c0033","sourceMap":"938:15710:18:-:0;;;;;;;1713:1:14;1917:21;938:15710:18;1411:19:17;;;;-1:-1:-1;;;;;1411:19:17;;;;;;;;;;;;;;;-1:-1:-1;1411:19:17;;;;;;;1064:4:18;;;938:15710;;:::i;:::-;-1:-1:-1;938:15710:18;;1151:15;;;938:15710;-1:-1:-1;938:15710:18;;;1151:15;938:15710;;:::i;:::-;-1:-1:-1;938:15710:18;;1119:48;938:15710;1119:48;938:15710;;-1:-1:-1;;;;;;938:15710:18;;;;;;;;;;;;;;;;;1411:19:17;938:15710:18;;;;;1064:4;938:15710;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1411:19:17;938:15710:18;;;-1:-1:-1;938:15710:18;;;;;1411:19:17;938:15710:18;;;-1:-1:-1;938:15710:18;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610023575b361561001957600080fd5b610021612cec565b005b60003560e01c80630396cb60146101c357806303d1dcaf146101be5780630bd28e3b146101b95780630da82661146101b45780630dbfc6bd146101af5780631b2e01b8146101aa578063205c2878146101a557806321e60b37146101a057806322cdde4c1461019b578063263934db1461019657806330ec25d11461019157806335567e1a1461018c57806344403473146101875780635287ce121461018257806370a082311461017d5780637472949c1461017857806376ad61231461017357806397b2dcb91461016e578063b760faf914610169578063bb9fe6bf14610164578063c23a5cea1461015f578063c3bce0091461015a578063c579f76b14610155578063f7e426e814610150578063fc7e286d1461014b5763fe2171cb0361000e57611926565b611898565b61185f565b6115cf565b611598565b611471565b61134a565b61131f565b611125565b6110ec565b6110cc565b61108e565b610f7d565b610f37565b610e65565b610de7565b610cd0565b610c9f565b610ba2565b610aaa565b610a49565b6109cb565b61081d565b610593565b6104f6565b60203660031901126103b95760043563ffffffff8116908181036103b9576103b47fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c019161039661028461027461022c336001600160a01b03166000526000602052604060002090565b96610238811515611976565b61026560018901549161025e6102558463ffffffff9060781c1690565b63ffffffff1690565b11156119c1565b60081c6001600160701b031690565b6001600160701b03349116611a3f565b94610290861515611a4c565b6102a36001600160701b03871115611a97565b546102ac61069d565b908152600160208201526001600160701b038616604082015263ffffffff83166060820152600060808201526102f5336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b9181601f840112156103b95782359167ffffffffffffffff83116103b9576020808501948460051b0101116103b957565b6001600160a01b038116036103b957565b359061040b826103ef565b565b60c06003198201126103b95760043567ffffffffffffffff81116103b95781610438916004016103be565b929092916024359067ffffffffffffffff82116103b95760609082900360031901126103b9576004019060443561046e816103ef565b90606435906084359060a43590565b60005b8381106104905750506000910152565b8181015183820152602001610480565b906020916104b98151809281855285808601910161047d565b601f01601f1916010190565b608060406104f3936020845280516020850152602081015115158285015201519160608082015201906104a0565b90565b346103b95761057961056d61055661050d3661040d565b969194909561051d949394611ae2565b50610550610529611b03565b61053e6105368780611b73565b825190612d40565b6105488680611b73565b905a91612f9b565b50613276565b6105686105638280611b73565b61333b565b6133ce565b604051918291826104c5565b0390f35b602435906001600160c01b03821682036103b957565b346103b95760203660031901126103b9576004356001600160c01b03811681036103b9576105e1903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6105eb8154611b89565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761062157604052565b6105ef565b6060810190811067ffffffffffffffff82111761062157604052565b610140810190811067ffffffffffffffff82111761062157604052565b6040810190811067ffffffffffffffff82111761062157604052565b90601f8019910116810190811067ffffffffffffffff82111761062157604052565b6040519061040b60a08361067b565b6040519061040b6101408361067b565b6040519061040b6101008361067b565b6040519061040b60408361067b565b6040519061040b60608361067b565b6040519061040b6101208361067b565b67ffffffffffffffff811161062157601f01601f191660200190565b929192610722826106fa565b91610730604051938461067b565b8294818452818301116103b9578281602093846000960137010152565b9080601f830112156103b9578160206104f393359101610716565b60431901906101c082126103b95760405161078281610605565b6101408193126103b9576107946106ac565b61079e6044610400565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526107dc610124610400565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103b9576102203660031901126103b95760043567ffffffffffffffff81116103b95761084f90369060040161074d565b3660231901906101c082126103b9576101406040519261086e84610605565b126103b95761087b6106ac565b6108856024610400565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526108c2610104610400565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103b95760409261092961093493369060040161074d565b906102043592611b98565b82519182526020820152f35b60206003198201126103b9576004359067ffffffffffffffff82116103b95761096b916004016103be565b9091565b9061010060e06104f393805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906104a0565b346103b9576109e26109dc36610940565b90611f05565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610a1a57505050500390f35b91936001919395506020610a398192603f198a8203018652885161096f565b9601920192018594939192610a0b565b346103b95760403660031901126103b9576020610aa1600435610a6b816103ef565b6001600160a01b03610a7b61057d565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103b95760403660031901126103b957600435610ac7816103ef565b602435336000526000602052604060002091825490818311610b4f5760008080856001600160a01b03829589610b00846100219a6120af565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b496120bc565b506120ec565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b90816101209103126103b95790565b346103b9576102003660031901126103b95760243560043567ffffffffffffffff82116103b957610bda610579923690600401610b93565b90610be436610768565b600092815192610bf48483612d40565b610bfd82612137565b60208401526001600160a01b0360e0610c3786610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610c5f575b6040805160008082526020820188905291810191909152806060810188565b610c699450613c92565b905038808080610c40565b60206003198201126103b9576004359067ffffffffffffffff82116103b9576104f391600401610b93565b346103b9576020610cb7610cb236610c74565b612137565b604051908152f35b9060206104f392818152019061096f565b346103b957610cfc610ce136610940565b809291610cec611e05565b50610cf682611e5a565b50611f05565b6000198201918211610d2a5761057991610d1591611ef1565b5160405191829160208352602083019061096f565b611a0c565b906104f39060e06080610d81818651610140865280516101408701526020810151610160870152604081015161018087015260608101516101a0870152015160a06101c08601526101e08501906104a0565b60208087015180518683015201516040850152946040810151805160608601526020015160808501526060810151805160a08601526020015160c0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103b957610dfe610df836610940565b906122c8565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610e3657505050500390f35b91936001919395506020610e558192603f198a82030186528851610d2f565b9601920192018594939192610e27565b346103b95760403660031901126103b9576020600435610e84816103ef565b6001600160a01b03610e9461057d565b911660005260018252610ebe816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b60606003198201126103b957600435610eee816103ef565b9160243567ffffffffffffffff81116103b957826023820112156103b95780600401359267ffffffffffffffff84116103b957602484830101116103b957602401919060443590565b346103b95760008080610f4936610ed6565b939181604094929451948592833781018381520393f1610f676120bc565b9015610f6f57005b80519081156103b957602001fd5b346103b95760203660031901126103b9576001600160a01b03600435610fa2816103ef565b60006080604051610fb281610605565b8281528260208201528260408201528260608201520152166000526000602052610579604060002061103a65ffffffffffff600160405193610ff385610605565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103b95760203660031901126103b9576001600160a01b036004356110b3816103ef565b1660005260006020526020604060002054604051908152f35b346103b95761057961056d6110e03661040d565b959490949391936123b5565b346103b95761057961056d6111136111033661040d565b9691949095610550949394611ae2565b6111206105638280611b73565b6136ef565b346103b95760603660031901126103b95760043567ffffffffffffffff81116103b957611156903690600401610b93565b602435611162816103ef565b60443567ffffffffffffffff81116103b95761118290369060040161074d565b9161118b611e05565b5060009160028054146113105761057993600280556111a8611b03565b6111b18461333b565b6111bb81856128b6565b91955a6060850151856111d16060850185612618565b8c60038211611308575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b036112ef57505061123f611253611258956020840151604051938492638dd7712f60e01b6020850152604060248501526064840190612e6b565b90604483015203601f19810183528261067b565b611b98565b9390975b80956060976001600160a01b0381166112c6575b5050509560806112ab96970151976112866106bc565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526112ba6001600255565b60405191829182610cbf565b6112ab98508280949850602083519301915af19560806112e46120bc565b979591979638611270565b611300955090611253913691610716565b93909761125c565b5081356111db565b600483633ee5aeb560e01b8152fd5b60203660031901126103b95761002160043561133a816103ef565b612442565b60009103126103b957565b346103b95760003660031901126103b9573360005260006020526001604060002001805463ffffffff8160781c161561142d576113b66113a86102558361139c6113976113f09660ff1690565b612483565b60781c63ffffffff1690565b65ffffffffffff42166124ce565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103b4565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103b95760203660031901126103b9576100216000808080600435611496816103ef565b6001600160a01b0360016114bd336001600160a01b03166000526000602052604060002090565b019161154b83549361152365ffffffffffff61150f6114f56114e9896001600160701b039060081c1690565b6001600160701b031690565b976115018915156124ec565b60981c65ffffffffffff1690565b1661151b811515612537565b421015612582565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af16115926120bc565b506125cd565b346103b9576105796115b16115ac36610c74565b6126f0565b604051918291602083526020830190610d2f565b801515036103b957565b346103b9576102203660031901126103b95760043560243567ffffffffffffffff81116103b957611604903690600401610b93565b9061160e36610768565b610204359061161c826115c5565b6000935a82519361162d8584612d40565b61163683612137565b60208501526040850151956116826effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a08901511761010089015117610120890151171115612855565b6116ad86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b906116bb88838888856130f7565b976116e26116de6116d38a516001600160a01b031690565b60208b015190613ffc565b1590565b61180a575a8503116117b8576060926001600160a01b0361170e60e05a9a01516001600160a01b031690565b16151590816117b0575b50611779575b509360806117559460a061175095610579999561175c99604087015260608601525a9003910135019101525a906120af565b6128a0565b6064900490565b604051938493846040919493926060820195825260208201520152565b8198506105799692508460a06117509561179e899561175c9a6117559a608097613c92565b9c90969a50949850955050945061171e565b905038611718565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103b95761187961187036610ed6565b92919091612b9d565b90610579604051928392151583526040602084015260408301906104a0565b346103b95760203660031901126103b9576001600160a01b036004356118bd816103ef565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b346103b95761194861193736610940565b809291611942612241565b506122c8565b6000198201918211610d2a576105799161196191611ef1565b51604051918291602083526020830190610d2f565b1561197d57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b156119c857565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211610d2a57565b9060018201809211610d2a57565b91908201809211610d2a57565b15611a5357565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611a9e57565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b60405190611aef82610626565b606060408360008152600060208201520152565b60405190611b1082610605565b6000608083604051611b2181610642565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b90359061011e19813603018212156103b9570190565b6000198114610d2a5760010190565b93929093845190606082015181519081611d83575b505050505a900360808401510192600093845a835194611bcc86614949565b92611be160e08801516001600160a01b031690565b6001600160a01b038116919082611cb15750505050611c0785516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611c9c575b505085029460408501938451878110600014611c7157505050611c6d939450611c556000613b89565b5a9003905101905183611c688295614a42565b614973565b9190565b611c6d969295508780955060019450611c8c92910390613e69565b50611c976000613b89565b6149db565b9196916064919003600a020401943880611c2c565b95928051611cc2575b505050611c09565b9091929950611cd082613b89565b5a9260a089015190803b15611d7f579183929187848196948f611d25604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601613b98565b0393f19182611d65575b5050611d5957611806611d40613b45565b6040519182916365c8fd4d60e01b835260048301613bca565b5a900396388080611cba565b611d72611d78928261067b565b8061133f565b3880611d2f565b8380fd5b600080949360206001600160a01b0383965116910192f115611da85738808080611bad565b611806611db3613b45565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906104a0565b67ffffffffffffffff81116106215760051b60200190565b60405190610100820182811067ffffffffffffffff82111761062157604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90611e6482611ded565b611e71604051918261067b565b8281528092611e82601f1991611ded565b019060005b828110611e9357505050565b602090611e9e611e05565b82828501015201611e87565b634e487b7160e01b600052603260045260246000fd5b90821015611ed7576104f39160051b810190611b73565b611eaa565b60405190611eeb60208361067b565b60008252565b8051821015611ed75760209160051b010190565b611f0e82611e5a565b9160005b818110611f1f5750505090565b611f2a818385611ec0565b6020906000604051611f3c848261067b565b52611f45611e05565b50600060028054146120825790612037600194939260028055611f66611b03565b92611f708161333b565b84611f7b85836128b6565b929091935a9088606081015191611f956060820182612618565b8a6003821161207a575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361206257505061125385638dd7712f60e01b9261123f6120029886015191604051958694850152604060248501526064840190612e6b565b93905b60806060980151986120156106bc565b998a52890152604088015285870152608086015260a0850152151560c0840152565b60e08201526120466001600255565b6120508287611ef1565b5261205b8186611ef1565b5001611f12565b612073965061125392503691610716565b9390612005565b508135611f9f565b80633ee5aeb560e01b60049252fd5b600319810191908211610d2a57565b600019810191908211610d2a57565b91908203918211610d2a57565b3d156120e7573d906120cd826106fa565b916120db604051938461067b565b82523d6000602084013e565b606090565b156120f357565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60208101356121f961214c6040840184612618565b908160405191823720916121eb6121666060860186612618565b90816040519182372060c086013560a0870135608088013561219461218e60e08b018b612618565b90614b74565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b03601f19810183528261067b565b5190206040805160208101928352309181019190915246606082015261222281608081016121eb565b51902090565b604051906122358261065f565b60006020838281520152565b6040519061224e82610605565b8160405161225b81610605565b60008152600060208201526000604082015260006060820152606060808201528152612285612228565b6020820152612292612228565b604082015261229f612228565b60608201526080604051916122b38361065f565b600083526122bf612228565b60208401520152565b6122d182611ded565b916122df604051938461067b565b808352601f196122ee82611ded565b0160005b81811061233857505060005b81811061230b5750505090565b8061231c6115ac6001938587611ec0565b6123268287611ef1565b526123318186611ef1565b50016122fe565b602090612343612241565b828288010152016122f2565b908092918237016000815290565b356104f3816103ef565b6040519061237660208361067b565b6000808352366020840137565b9061238d826106fa565b61239a604051918261067b565b82815280926123ab601f19916106fa565b0190602036910137565b906123c891969594939296610550611ae2565b6001600160a01b036123da8680611b73565b6124036020880135916123ec836103ef565b6123f4611b03565b906123fe8161333b565b6128b6565b5050501615612415576104f39461391a565b5050505050612422612367565b6040519061242f82610626565b6000825260006020830152604082015290565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036124773485613e69565b936040519485521692a2565b1561248a57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211610d2a57565b156124f357565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561253e57565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561258957565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156125d457565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b903590601e19813603018212156103b9570180359067ffffffffffffffff82116103b9576020019181360383136103b957565b906014116103b95790601490565b90929192836034116103b95783116103b957603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612696575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b604051906126c38261065f565b6003546001600160a01b031682526040516020836126e08361065f565b6004548352600554828401520152565b6126f8612241565b50612701611b03565b9061270b8161333b565b61271582826128b6565b509190926127238385613e91565b61274061273b60e0835101516001600160a01b031690565b613fb9565b9161276e61275a61273b84516001600160a01b0390511690565b91612763612228565b506040810190612618565b90601482106128495761279061278a6127969361273b9361264b565b90612676565b60601c90565b916001600160a01b0386169460808201519660606040840151930151926127bb61069d565b98895260208901526040880152606087015260808601526127da6126b6565b938015158061283e575b61280c575b506127f261069d565b948552602085015260408401526060830152608082015290565b90935061281881613fb9565b6128326128236106cc565b6001600160a01b039093168352565b602082015292386127e9565b5060018114156127e4565b50506127966000613fb9565b1561285c57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715610d2a57565b90916000915a938051916128ca8382612d40565b6128d381612137565b602083015260408301519561291f6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a08701511761010087015117610120870151171115612855565b61294a84610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129588882868660006130f7565b9761297b6116de61297088516001600160a01b031690565b602089015190613ffc565b612a72575a830311612a1e576060906001600160a01b036129a760e05a9801516001600160a01b031690565b16151580612a16575b6129e3575b6117509360a06104f39794879460809460406117559a015260608601525a9003910135019101525a906120af565b965050928260808360a06104f397612a048b61175599611750996000613c92565b9b9095985093509497505093506129b5565b5060016129b0565b604051631101335b60e11b815280611806600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b908060209392818452848401376000828201840152601f01601f1916010190565b6040906001600160a01b036104f395931681528160208201520191612ac6565b6040513d6000823e3d90fd5b908151811015611ed7570160200190565b81601f820112156103b9578051612b3a816106fa565b92612b48604051948561067b565b818452602082840101116103b9576104f3916020808501910161047d565b9190916040818403126103b9578051612b7e816115c5565b92602082015167ffffffffffffffff81116103b9576104f39201612b24565b91926000936001600160a01b036060941691823b156103b957612c1d93600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612ae7565b0393f19081612cd7575b5061096b575050612c366120bc565b906004825110612cc857612c52612c4d8351612091565b612383565b60045b8351811015612cb25780612c94612c6e60019387612b13565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612cab612ca083612091565b9160001a9185612b13565b5301612c55565b5061096b91925060208082518301019101612b66565b9050612cd2612367565b600091565b80611d726000612ce69361067b565b38612c27565b61040b33612442565b15612cfc57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b612dd790612d5d612d508261235d565b6001600160a01b03168452565b60208101356020840152612d8a6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c0840152612dc160c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612618565b908115612e1357612dfb8260e092612df6603461040b97961015612cf5565b61404e565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b908160209103126103b9575190565b9035601e19823603018112156103b957016020813591019167ffffffffffffffff82116103b95781360383136103b957565b6104f391612e8981612e7c84610400565b6001600160a01b03169052565b60208201356020820152612f1f612f13612eda612ebf612eac6040870187612e39565b6101206040880152610120870191612ac6565b612ecc6060870187612e39565b908683036060880152612ac6565b6080850135608085015260a085013560a085015260c085013560c0850152612f0560e0860186612e39565b9085830360e0870152612ac6565b92610100810190612e39565b91610100818503910152612ac6565b612f4660409295949395606083526060830190612e6b565b9460208201520152565b60a0906104f39392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b92909161301e6020600095855193612fe860e0612fbf87516001600160a01b031690565b96612fda8a8c612fd26040890189612618565b9290916140ac565b01516001600160a01b031690565b91886001600160a01b038194161598896130bc575b85015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f185918161308b575b5061305f5784613042613b45565b906118066040519283926365c8fd4d60e01b845260048401612f50565b93919261306a575050565b613087906001600160a01b03166000526000602052604060002090565b5050565b6130ae91925060203d6020116130b5575b6130a6818361067b565b810190612e2a565b9038613034565b503d61309c565b93506130db876001600160a01b03166000526000602052604060002090565b5480156130ee575084815b949050612ffd565b859082036130e6565b949291939060206131679186519361312e60e061311b87516001600160a01b031690565b96612fda8b8d612fd26040890189612618565b916001600160a01b0360009316159889613234575b84600091015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f160009181613213575b5061318c5785613042613b45565b94929361319857505050565b6131b5906001600160a01b03166000526000602052604060002090565b918254908183116131c65750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b61322d91925060203d6020116130b5576130a6818361067b565b903861317e565b9250613253866001600160a01b03166000526000602052604060002090565b548781111561326b5750600084815b94915050613143565b846000918903613262565b9160005b828110156133355761328a611b03565b6000908260051b860135605e198736030181121561333157906132c560019493928801916132bb6105638480611b73565b6123fe8380611b73565b50505060208101906132e56132d98361235d565b6001600160a01b031690565b1561332957826133036132f8829461235d565b926040810190612618565b91906133146040518094819361234f565b03925af1506133216120bc565b505b0161327a565b505050613323565b8280fd5b50915050565b61336e9061334c6040820182612618565b9161336681359161335c836103ef565b60e0810190612618565b93909261434d565b80516133775750565b61180690604051918291631101335b60e11b8352600060048401526040602484015260448301906104a0565b9392916133c9906001600160a01b036040931686526060602087015260608601906104a0565b930152565b939490946133da611ae2565b5060009280156136335761341f93506133f1611edc565b509160006134015a8860026146e8565b5a906040519687928392631efc84dd60e31b84528c600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613612575b508294809381156135ef57505061347d909592919394955b85611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134b588856120af565b106135c5575a6134c488611a22565b1161358c57918695939189959360008c8b6134f76134ee6134e8886135179f611a3f565b60011c90565b809b60026146e8565b835a936040519e8f9586948593631efc84dd60e31b8552600485016133a3565b03925af198891561358757600090819a613561575b501561354c5750505061353e846120a0565b95915b9390929495916134aa565b9396509461355b919750611a31565b94613541565b9061357f929a503d8091833e613577818361067b565b810190612b66565b98903861352c565b612b07565b7fe2c4d0be0000000000000000000000000000000000000000000000000000000060005260048290526024879052604483905260646000fd5b9650965050919550506135e791506135db6106db565b93845215156020840152565b604082015290565b965096505095505050506135e76136046106db565b600081529215156020840152565b90925061362991943d8091833e613577818361067b565b939093913861345f565b50613665915a91846136475a8960026146e8565b5a906040519687928392631efc84dd60e31b84528d600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956136cb575b505083946136b381945a906120af565b9481156135ef57505061347d90959291939495613477565b909194506136e49295503d8091833e613577818361067b565b9390939238806136a3565b939490946136fb611ae2565b50600092801561387c576137229350613712611edc565b509160006134015a8860036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af191821561358757600094859361385b575b508294809381156135ef57505061377f9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846137b788856120af565b106135c5575a6137c688611a22565b1161358c57918695939189959360008c8b6134f76137ea6134e8886137f39f611a3f565b809b60036146e8565b03925af198891561358757600090819a61383d575b50156138285750505061381a846120a0565b95915b9390929495916137ac565b93965094613837919750611a31565b9461381d565b90613853929a503d8091833e613577818361067b565b989038613808565b90925061387291943d8091833e613577818361067b565b9390939138613762565b50613890915a91846136475a8960036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956138f6575b505083946138de81945a906120af565b9481156135ef57505061377f90959291939495613477565b9091945061390f9295503d8091833e613577818361067b565b9390939238806138ce565b93949094613926611ae2565b506000928015613aa75761394d935061393d611edc565b509160006134015a8860016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613a86575b508294809381156135ef5750506139aa9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846139e288856120af565b106135c5575a6139f188611a22565b1161358c57918695939189959360008c8b6134f7613a156134e888613a1e9f611a3f565b809b60016146e8565b03925af198891561358757600090819a613a68575b5015613a5357505050613a45846120a0565b95915b9390929495916139d7565b93965094613a62919750611a31565b94613a48565b90613a7e929a503d8091833e613577818361067b565b989038613a33565b909250613a9d91943d8091833e613577818361067b565b939093913861398d565b50613abb915a91846136475a8960016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af193841561358757858095613b21575b50508394613b0981945a906120af565b9481156135ef5750506139aa90959291939495613477565b90919450613b3a9295503d8091833e613577818361067b565b939093923880613af9565b3d6108008111613b6a575b604051906020818301016040528082526000602083013e90565b50610800613b50565b634e487b7160e01b600052602160045260246000fd5b60031115613b9357565b613b73565b90949392946003811015613b9357606092613bc09183526080602084015260808301906104a0565b9460408201520152565b9060a06104f3926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906104a0565b91906040838203126103b957825167ffffffffffffffff81116103b957602091613c41918501612b24565b92015190565b60a0906104f39392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b929390915a92815190613caf60e08301516001600160a01b031690565b91613ccd836001600160a01b03166000526000602052604060002090565b8054898110613e14576001600160a01b0360206080600097958d9795613d2f9d9e8a960390550151970151926040519a8b96879586937f52b7512c00000000000000000000000000000000000000000000000000000000855260048501612f2e565b03931686f19384600091600096613ded575b50613d6c5785613d4f613b45565b906118066040519283926365c8fd4d60e01b845260048401613c47565b9491925a900311613d7a5750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613e0d91503d806000833e613e05818361067b565b810190613c16565b9438613d41565b61180689604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6001600160a01b0316600052600060205260406000208054918201809211610d2a5781905590565b613ea26001600160a01b0391614a85565b9116613f6d57613f1957613ebd6001600160a01b0391614a85565b5016613ec557565b604051631101335b60e11b815280611806600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613fca612228565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b6001600160a01b0316600052600160205267ffffffffffffffff61403a8260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261404784611b89565b9055161490565b9091826014116103b957813591836024116103b9576014810135936034116103b95760609290921c92608090811c9260240135901c90565b908160209103126103b957516104f3816103ef565b9160206104f3938181520191612ac6565b929091816140bb575b50505050565b8251516001600160a01b031693843b61430057604084510151602060405180927f570e1a36000000000000000000000000000000000000000000000000000000008252816000816141108a8a6004840161409b565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f1908115613587576000916142d1575b506001600160a01b03811695861561427c576001600160a01b0316809603614227573b156141da575061279061278a7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936141a79361264b565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a3388080806140b5565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61180683604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6142f3915060203d6020116142f9575b6142eb818361067b565b810190614086565b3861414d565b503d6142e1565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b50929192159081614402575b506143c5576014811015614372575b50506104f3611edc565b6014116103b9573560601c3b1561438a573880614368565b60405161439860408261067b565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143d560408261067b565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614359565b610120813603126103b95761441f6106ea565b9061442981610400565b825260208101356020830152604081013567ffffffffffffffff81116103b957614456903690830161074d565b6040830152606081013567ffffffffffffffff81116103b95761447c903690830161074d565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff81116103b9576144c0903690830161074d565b60e08301526101008101359067ffffffffffffffff82116103b9576144e79136910161074d565b61010082015290565b60041115613b9357565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b168552166014840152166024820152614548825180936020868501910161047d565b010190565b80516001600160a01b031682526104f391602082015160208201526101006145ce61459e61458c604086015161012060408701526101208601906104a0565b606086015185820360608701526104a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526104a0565b920151906101008184039101526104a0565b60806101a09161012081516145fe8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261465260e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6146be6146b3610200939695949660008452610220602085015261022084019061454d565b9560408301906145e0565b0152565b610200906146be6146b3600094969596858452610220602085015261022084019061454d565b6146f0611b03565b6147026146fd8480611b73565b61440c565b61470b836144f0565b600283146148645761471c836144f0565b600383146147dd575050806147326001926144f0565b1461477c5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b806121eb6147a76147a061479560206104f3960161235d565b936040810190612618565b3691610716565b936040519485937f44403473000000000000000000000000000000000000000000000000000000006020860152602485016133a3565b9150926fffffffffffffffffffffffffffffffff61482461481d614804866104f397611b73565b608001356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526121eb6040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016146c2565b9150926121eb906fffffffffffffffffffffffffffffffff19846148ef6148e161489d61489761335c856104f39b611b73565b9061404e565b9291905060609060e08a0195603487515111614925575b5060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b1690602086016144fa565b03601f19810184528361067b565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161468e565b61494291925061493b61335c826147a093611b73565b8091612659565b90386148b4565b61012061010082015191015180821461496f5748018082101561496a575090565b905090565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b8015614b6b57600060408051614a9a81610626565b828152826020820152015265ffffffffffff8160a01c168015614b5e575b614b4090614b27614acf614ada614acf8660d01c90565b65ffffffffffff1690565b92614aff6001600160a01b03614aee6106db565b971687906001600160a01b03169052565b614b156020870194859065ffffffffffff169052565b65ffffffffffff166040860181905290565b4211908115614b43575b5091516001600160a01b031690565b91565b51614b56915065ffffffffffff16614acf565b421038614b31565b5065ffffffffffff614ab8565b50600090600090565b81604051918237209056fea26469706673582212208b323ab26fcbf5b8bf0d2c6983cc43a6a3591415b027235c5605437ae9bc014d64736f6c634300081c0033","sourceMap":"938:15710:18:-:0;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;2977:47:3;;2428:10;938:15710:18;2657:22:3;938:15710:18;2419:20:3;2428:10;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;2419:20:3;2457:19;2449:58;2457:19;;;2449:58;:::i;:::-;2517:114;2557:20;;;938:15710:18;;2538:39:3;938:15710:18;;;;;;;;;;;;;;2538:39:3;-1:-1:-1;2538:39:3;2517:114;:::i;:::-;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;-1:-1:-1;;;;;2670:9:3;938:15710:18;;2657:22:3;:::i;:::-;2697:9;2689:40;2697:9;;;2689:40;:::i;:::-;2739:53;-1:-1:-1;;;;;2747:26:3;;;2739:53;:::i;:::-;938:15710:18;;;:::i;:::-;;;;2557:20:3;938:15710:18;2825:137:3;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;2825:137:3;;;938:15710:18;;;;2825:137:3;;;938:15710:18;;2825:137:3;;;938:15710:18;2802:20:3;2428:10;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;2802:20:3;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;938:15710:18;;;;;;2825:137:3;938:15710:18;;;;;;;;;;;;;2428:10:3;;938:15710:18;;;;;;;2977:47:3;;;;938:15710:18;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;938:15710:18;;;;;:::o;:::-;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;10873:221;10788:13;938:15710;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;10648:73;938:15710;;:::i;:::-;10618:19;10601:15;;;;:::i;:::-;10618:19;;;;:::i;:::-;10678:15;;;;:::i;:::-;10711:9;;10648:73;;:::i;:::-;;10788:13;:::i;:::-;10839:15;;;;;:::i;:::-;;:::i;:::-;10873:221;:::i;:::-;938:15710;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;893:36:1;913:10;;-1:-1:-1;938:15710:18;893:19:1;938:15710:18;;;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;893:36:1;:38;938:15710:18;;893:38:1;:::i;:::-;938:15710:18;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2441:15;938:15710;;;2441:15;938:15710;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;938:15710:18;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;279:74:1;938:15710:18;;;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;-1:-1:-1;938:15710:18;279:74:1;938:15710:18;;;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;279:74:1;938:15710:18;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;:::i;:::-;;;4805:10:3;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;-1:-1:-1;938:15710:18;;;;4834:30:3;;;;938:15710:18;;-1:-1:-1;4919:29:3;;;-1:-1:-1;;;;;4919:29:3;;;;;5102:38;4919:29;;:::i;:::-;938:15710:18;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;4805:10:3;;4963:54;;;938:15710:18;5045:47:3;;;;:::i;:::-;;5102:38;:::i;938:15710:18:-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;16640:17:17;;;16695:7;;;;;:::i;:::-;16736:21;;;:::i;:::-;938:15710:18;16713:20:17;;938:15710:18;-1:-1:-1;;;;;16836:17:17;16794:28;;8690:20;8473:28;;;938:15710:18;8504:20:17;;;938:15710:18;1968:4:17;8543:37;;;938:15710:18;1968:4:17;8583:31;;;938:15710:18;1968:4:17;8617:26;;;938:15710:18;1968:4:17;8690:20;;938:15710:18;;8311:416:17;;16794:28;16836:17;;938:15710:18;;16832:188:17;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;16832:188:17;16936:73;;;;:::i;:::-;16883:126;;16832:188;;;;;;938:15710:18;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15097:25;938:15710;;;:::i;:::-;;;;;;:::i;:::-;;15043:33;;;:::i;:::-;;15097:25;:::i;:::-;-1:-1:-1;;938:15710:18;;;;;;;;15140:23;;;;:::i;:::-;;938:15710;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;-1:-1:-1;938:15710:18;507:19:1;938:15710:18;;507:32:1;938:15710:18;;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;507:32:1;938:15710:18;;;;;;;-1:-1:-1;;938:15710:18;507:55:1;938:15710:18;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;938:15710:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6019:27;;;;;:::i;:::-;6060:8;;6056:175;;938:15710;6056:175;938:15710;;6088:22;;;6084:36;;6134:87;;;938:15710;;;;;;-1:-1:-1;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;;:::i;:::-;;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;11563:152;11478:13;938:15710;;;:::i;:::-;;;;;;;;;;;:::i;11478:13::-;11529:15;;;;;:::i;:::-;11563:152;:::i;938:15710::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;938:15710:18;2558:7:14;938:15710:18;;2558:18:14;2554:86;;938:15710:18;;2558:7:14;938:15710:18;;;;:::i;:::-;13746:2;;;:::i;:::-;13870:40;;;;:::i;:::-;2782:1039:17;;3022:9;3089:20;;;938:15710:18;3160:15:17;;3089:20;3160:15;;;;:::i;:::-;3189:16;3219:144;;;;;938:15710:18;;;-1:-1:-1;;;3380:51:17;3393:38;;3535:17;;938:15710:18;3480:74:17;3611:53;3535:17;;;;938:15710:18;;;3480:74:17;;;-1:-1:-1;;;3535:17:17;3480:74;;;938:15710:18;3480:74:17;;;938:15710:18;;;;;;:::i;:::-;;;;;;3480:74:17;938:15710:18;;3480:74:17;;;;;;:::i;:::-;3611:53;:::i;:::-;3572:92;;3376:429;;14011:18:18;14039:25;3089:20:17;938:15710:18;-1:-1:-1;;;;;938:15710:18;;14074:110;;3376:429:17;14230:15:18;;;;;14201:270;14230:15;;;938:15710;;;;:::i;:::-;;;;14201:270;;;938:15710;14201:270;;;938:15710;3089:20:17;14201:270:18;;938:15710;14230:15;14201:270;;938:15710;14201:270;;;938:15710;;;14201:270;;;938:15710;;14201:270;;;;938:15710;2387:1:14;305::0;2924:21:14;938:15710:18;2744:208:14;2387:1;938:15710:18;;;;;;;:::i;14074:110::-;14201:270;14146:27;;;;;;;;;;;;;;;;14230:15;14146:27;;:::i;:::-;14114:59;14074:110;;;;;;;3376:429:17;3742:48;938:15710:18;;;;;;;;:::i;3742:48:17:-;3703:87;;3376:429;;;3219:144;-1:-1:-1;3219:144:17;;;;2554:86:14;2599:30;;-1:-1:-1;;;2599:30:14;;;938:15710:18;;;-1:-1:-1;;938:15710:18;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;3248:10:3;938:15710:18;;;;;3277:20:3;938:15710:18;;;3277:20:3;938:15710:18;;;;;;;3277:25:3;938:15710:18;;3400:46:3;;938:15710:18;;3327:41:3;938:15710:18;3498:19:3;938:15710:18;;;;;;3327:41:3;:::i;:::-;938:15710:18;;;;;;3400:46:3;938:15710:18;3407:15:3;938:15710:18;3400:46:3;:::i;:::-;938:15710:18;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;3498:19:3;938:15710:18;;;;;;;;3248:10:3;;3532:39;;938:15710:18;;;;3532:39:3;938:15710:18;;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;4419:44:3;-1:-1:-1;938:15710:18;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3934:10:3;3888:20;3897:10;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;3888:20:3;3934:10;938:15710:18;4264:14:3;938:15710:18;;;4079:110:3;938:15710:18;;3918:26:3;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;-1:-1:-1;;;;;938:15710:18;;;3918:26:3;3962:9;3954:42;3962:9;;;3954:42;:::i;:::-;938:15710:18;;;;;;;;4006:63:3;4014:21;;;4006:63;:::i;:::-;4121:15;-1:-1:-1;4100:36:3;4079:110;:::i;:::-;938:15710:18;;;;;;;4264:14:3;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;3897:10:3;;4293:50;;;938:15710:18;4371:38:3;;;;:::i;:::-;;4419:44;:::i;938:15710:18:-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;17717:9:17;;17766:17;;17821:7;;;;;:::i;:::-;17862:21;;;:::i;:::-;17839:20;;;938:15710:18;;18078:28:17;;938:15710:18;18139:26:17;18373:70;938:15710:18;18139:26:17;;;;938:15710:18;18139:49:17;18191:20;;;938:15710:18;18139:72:17;18226:37;;;938:15710:18;18139:124:17;18266:31;;;938:15710:18;18139:158:17;18300:20;;;938:15710:18;18139:181:17;18335:28;;;938:15710:18;18139:224:17;18381:33;;18373:70;:::i;:::-;18480:28;;8690:20;8473:28;;;938:15710:18;8504:20:17;;;938:15710:18;1968:4:17;8543:37;;;938:15710:18;1968:4:17;8583:31;;;938:15710:18;1968:4:17;8617:26;;;938:15710:18;1968:4:17;8690:20;;938:15710:18;;8311:416:17;;18480:28;18535:93;;;;;;;;:::i;:::-;938:15710:18;18643:55:17;18644:54;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;17839:20:17;18684:13;;938:15710:18;18644:54:17;;:::i;:::-;18643:55;;938:15710:18;18643:55:17;18639:140;;18826:9;1968:4;;18817:41;18813:138;;18191:20;19024:9;-1:-1:-1;;;;;938:15710:18;19047:17:17;19024:9;19047:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;;19047:31:17;;:62;;;;938:15710:18;19043:219:17;;;938:15710:18;19295:17:17;;18226:37;19535:32;19295:17;18266:31;19536:24;19295:17;938:15710:18;19295:17:17;;19534:40;19295:17;938:15710:18;19295:17:17;;938:15710:18;18191:20:17;19344:23;;938:15710:18;19445:9:17;1968:4;;19457:25;;938:15710:18;1968:4:17;19415:18;;938:15710:18;19551:9:17;19536:24;;:::i;:::-;19535:32;:::i;:::-;19571:3;938:15710:18;;;;19534:40:17;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;19043:219:17;19178:73;;;938:15710:18;19178:73:17;;;;18266:31;19536:24;19178:73;;;;19534:40;19178:73;19535:32;19178:73;18226:37;19178:73;;:::i;:::-;19125:126;;19043:219;;;;;;;;;;;;;19047:62;;;;;;18813:138;938:15710:18;;;-1:-1:-1;;;18885:51:17;;938:15710:18;18885:51:17;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;18885:51:17;;;;18639:140;18721:47;938:15710:18;;;18721:47:17;;;-1:-1:-1;;;18721:47:17;;938:15710:18;18721:47:17;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;;:::i;:::-;;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;507:47:3;938:15710:18;;507:47:3;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5789:31;938:15710;;;:::i;:::-;;;;;;:::i;:::-;;5789:31;:::i;:::-;-1:-1:-1;;938:15710:18;;;;;;;;5837:27;;;;:::i;:::-;;938:15710;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;9392:5;938:15710;;;;;;;:::o;:::-;;10105:1;938:15710;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;938:15710:18;;-1:-1:-1;938:15710:18;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;938:15710:18;;;;;;;:::o;5523:1160:17:-;;;;;5765:14;;5813:20;;;;938:15710:18;;;6221:19:17;;6217:290;;5523:1160;6570:9;;;;;1968:4;;6582:15;;;938:15710:18;1968:4:17;6618:48;-1:-1:-1;6618:48:17;20395:31;20455:9;20563:14;;20610:26;;;;:::i;:::-;20671:17;938:15710:18;20671:17:17;;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;20706:23:17;938:15710:18;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;20702:1013:17;;21750:9;1968:4;;;21882:20;21905:31;21882:20;;;938:15710:18;21905:31:17;;938:15710:18;1968:4:17;21993:15;;;;938:15710:18;;;1968:4:17;;22146:36;;;;22142:274;;20702:1013;938:15710:18;;;;22512:14:17;;;;938:15710:18;;;22544:23:17;;;22540:880;22544:23;;;938:15710:18;;;23083:9:17;938:15710:18;;;;5765:14:17;938:15710:18;:::i;:::-;22882:9:17;1968:4;;938:15710:18;;1968:4:17;938:15710:18;;23001:6:17;;;;;:::i;:::-;23083:9;:::i;:::-;6611:55;5523:1160;:::o;22540:880::-;23395:9;1968:4;;;;;;;;23281:41;1968:4;;23208:40;1968:4;;;23208:40;;:::i;:::-;;938:15710:18;5765:14:17;938:15710:18;:::i;:::-;23395:9:17;:::i;22142:274::-;1968:4;;;19571:3;1968:4;;;2021:2;938:15710:18;;1968:4:17;22142:274;;;;;20702:1013;20818:25;;938:15710:18;;20861:840:17;;20702:1013;;;;;;20861:840;938:15710:18;;;;;;;;:::i;:::-;21064:9:17;21137:31;;;;938:15710:18;21103:160:17;;;;;;938:15710:18;;;;;;;;;;21103:160:17;938:15710:18;;21103:160:17;;;;;;;938:15710:18;21103:160:17;;938:15710:18;21103:160:17;;;;;;:::i;:::-;;;;;;;;20861:840;-1:-1:-1;;21099:486:17;;21408:150;21487:41;;:::i;:::-;938:15710:18;;21408:150:17;;;-1:-1:-1;;;21408:150:17;;21103:160;21408:150;;;:::i;21099:486::-;21651:9;1968:4;;20861:840;;;;;;21103:160;;;;;;:::i;:::-;;;:::i;:::-;;;;;;938:15710:18;;;6217:290:17;-1:-1:-1;938:15710:18;;;378:118:13;-1:-1:-1;;;;;938:15710:18;;;;378:118:13;;;;6341:8:17;6337:160;;6217:290;;;;;;6337:160;1968:4;6391:41;;:::i;:::-;938:15710:18;;6457:25:17;;;;;;378:118:13;6457:25:17;;;1968:4;;;;;;:::i;938:15710:18:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;938:15710:18;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;:::o;:::-;;;;;;;;;;;;;;;:::o;14484:400::-;14637:33;;;:::i;:::-;14686:13;14698:1;14701:14;;;;;;14863;;;14484:400;:::o;14717:3::-;14785:6;;;;;:::i;:::-;938:15710;;14698:1;938:15710;;;;;;:::i;:::-;;;;:::i;:::-;;14698:1;2558:7:14;938:15710:18;;2558:18:14;2554:86;;938:15710:18;14201:270;938:15710;;;;2558:7:14;938:15710:18;;;;:::i;:::-;13746:2;;;;:::i;:::-;13870:40;;;;;:::i;:::-;2782:1039:17;;;;3022:9;3089:20;;;;;938:15710:18;3160:15:17;;3089:20;3160:15;;;;:::i;:::-;3189:16;3219:144;;;;;14717:3:18;938:15710;;-1:-1:-1;;;3380:51:17;3393:38;;3535:17;;3480:74;3535:17;-1:-1:-1;;;3535:17:17;938:15710:18;3611:53:17;3535:17;;;938:15710:18;;;;3480:74:17;;;;;;938:15710:18;3480:74:17;;;938:15710:18;;;;;;:::i;3611:53:17:-;3572:92;;3376:429;14230:15:18;3089:20:17;14230:15:18;;938:15710;;;;:::i;:::-;;;;14201:270;;938:15710;;14201:270;;938:15710;14201:270;;;938:15710;14230:15;14201:270;;938:15710;14201:270;;;938:15710;;;14201:270;;;938:15710;;14201:270;;;;938:15710;2387:1:14;305::0;2924:21:14;938:15710:18;2744:208:14;2387:1;14823:19:18;;;;:::i;:::-;;;;;;:::i;:::-;;938:15710;14686:13;;3376:429:17;3742:48;938:15710:18;;;;;;;;:::i;3742:48:17:-;3703:87;;3376:429;;3219:144;-1:-1:-1;3219:144:17;;;;2554:86:14;2599:30;-1:-1:-1;;;2599:30:14;;;;938:15710:18;-1:-1:-1;;938:15710:18;;;;;;;;:::o;:::-;-1:-1:-1;;938:15710:18;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;938:15710:18;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;6721:180:17;1938:12:4;;;938:15710:18;2342:180:4;1998:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2062:15:4;2342:180;2062:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2230:14:4;;;938:15710:18;2177:25:4;;;938:15710:18;2115:23:4;;;938:15710:18;2285:39:4;2300:23;;;;2115;2300;:::i;:::-;2285:39;;:::i;:::-;938:15710:18;1998:15:4;938:15710:18;2342:180:4;;;-1:-1:-1;;;;;1938:12:4;2342:180;;823:61;;938:15710:18;2342:180:4;938:15710:18;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2342:180:4;;938:15710:18;;2342:180:4;;;;;;:::i;:::-;938:15710:18;4962:25:4;;1998:15;938:15710:18;;1938:12:4;6838:55:17;;938:15710:18;;;6872:4:17;938:15710:18;;;;;;;6879:13:17;938:15710:18;;;;6838:55:17;938:15710:18;;;;6838:55:17;938:15710:18;6838:55:17;938:15710:18;6828:66:17;;6721:180;:::o;938:15710:18:-;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;:::i;:::-;;;;;;;:::o;5175:427::-;938:15710;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;938:15710:18;;;:::i;:::-;;-1:-1:-1;938:15710:18;;;;;;5410:13;;-1:-1:-1;5425:18:18;;;;;;5581:14;;;5175:427;:::o;5445:3::-;5516:10;5497:30;5516:10;938:15710;5516:10;;;;:::i;5497:30::-;5541:19;;;;:::i;:::-;;;;;;:::i;:::-;;938:15710;5410:13;;938:15710;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;12937:15;938:15710;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;12496:945::-;;12824:13;12496:945;;;;;;;938:15710;;:::i;12824:13::-;-1:-1:-1;;;;;12937:15:18;;;;:::i;:::-;13124:40;12979:19;;;938:15710;;;;;:::i;:::-;;;:::i;:::-;13111:2;;;;:::i;:::-;13124:40;:::i;:::-;938:15710;;;;13179:20;13175:98;;13290:144;;;:::i;13175:98::-;13249:12;;;;;;;:::i;:::-;938:15710;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;-1:-1:-1;12979:19:18;13222:40;;938:15710;;13222:40;;938:15710;13215:47;:::o;1935:179:3:-;2077:30;938:15710:18;-1:-1:-1;;;;;2025:37:3;2052:9;2025:37;;:::i;:::-;938:15710:18;;;;;;;2077:30:3;;1935:179::o;938:15710:18:-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;2507:2;938:15710;;;;2507:2;938:15710;:::o;:::-;;;;;;490:2:4;938:15710:18;;;;;;;490:2:4;938:15710:18;;-1:-1:-1;;938:15710:18;;:::o;:::-;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;-1:-1:-1;938:15710:18:o;:::-;;;;;;;:::i;:::-;2988:14;938:15710;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1698:1620::-;938:15710;;:::i;:::-;;;;:::i;:::-;1879:6;;;;:::i;:::-;2032:47;;;;:::i;:::-;2090:98;;;;;;;;:::i;:::-;2232:42;938:15710;2246:27;:17;;:27;938:15710;-1:-1:-1;;;;;938:15710:18;;;;2232:42;:::i;:::-;2328:17;2441:15;2314:39;2328:24;:17;;-1:-1:-1;;;;;938:15710:18;;;;;2314:39;938:15710;;;:::i;:::-;;2441:15;;;;;:::i;:::-;2488:69;2507:2;2488:21;;2507:2;;2520:23;2528:14;2585:22;2528:14;2512:32;2528:14;;:::i;:::-;2520:23;;:::i;:::-;938:15710;;;;2585:22;938:15710;-1:-1:-1;;;;;938:15710:18;;2746:18;;;;938:15710;2778:17;2899:23;2441:15;2778:17;;938:15710;2899:23;;938:15710;;;;:::i;:::-;;;;2722:211;;;938:15710;2441:15;2722:211;;938:15710;2899:23;2722:211;;938:15710;2746:18;2722:211;;938:15710;;;:::i;:::-;3016:45;;;;:93;;;2488:69;3012:199;;2488:69;938:15710;;;:::i;:::-;;;;2722:211;3227:84;;938:15710;2441:15;3227:84;;938:15710;2899:23;3227:84;;938:15710;2746:18;3227:84;;938:15710;1698:1620;:::o;3012:199::-;3174:25;;;;;;:::i;:::-;3142:58;938:15710;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;;;;3142:58;2722:211;3142:58;;938:15710;3012:199;;;;3016:93;3065:44;2074:4;3065:44;;;3016:93;;2488:69;;;2585:22;-1:-1:-1;2585:22:18;:::i;938:15710::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;19564:3:17;938:15710:18;;;;;;19564:3:17;938:15710:18;;;;;;;:::o;17394:2187:17:-;;;12937:15:18;17717:9:17;;17766:17;;;17821:7;;;;;:::i;:::-;17862:21;;;:::i;:::-;17839:20;;;938:15710:18;18078:28:17;;;938:15710:18;18139:26:17;18373:70;938:15710:18;18139:26:17;;;;938:15710:18;18139:49:17;18191:20;;;938:15710:18;18139:72:17;18226:37;;;938:15710:18;18139:124:17;18266:31;;;938:15710:18;18139:158:17;18300:20;;;938:15710:18;18139:181:17;18335:28;;;938:15710:18;18139:224:17;18381:33;;18373:70;:::i;:::-;18480:28;;8690:20;8473:28;;;938:15710:18;8504:20:17;;;938:15710:18;1968:4:17;8543:37;;;938:15710:18;1968:4:17;8583:31;;;938:15710:18;1968:4:17;8617:26;;;938:15710:18;1968:4:17;8690:20;;938:15710:18;;8311:416:17;;18480:28;18535:93;;;;;12937:15:18;18535:93:17;:::i;:::-;938:15710:18;18643:55:17;18644:54;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;17839:20:17;18684:13;;938:15710:18;18644:54:17;;:::i;18643:55::-;18639:140;;18826:9;1968:4;;18817:41;18813:138;;18191:20;19024:9;-1:-1:-1;;;;;938:15710:18;19047:17:17;19024:9;19047:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;;19047:31:17;;:62;;;17394:2187;19043:219;;17394:2187;19536:24;19295:17;18266:31;19534:40;19295:17;;;;18226:37;19295:17;18078:28;19535:32;19295:17;;938:15710:18;18191:20:17;19344:23;;938:15710:18;19445:9:17;1968:4;;19457:25;;938:15710:18;1968:4:17;19415:18;;938:15710:18;19551:9:17;19536:24;;:::i;19043:219::-;19178:73;;;;;18226:37;19178:73;18266:31;19534:40;19178:73;;;19535:32;19178:73;19536:24;19178:73;12937:15:18;19178:73:17;:::i;:::-;19125:126;;19043:219;;;;;;;;;;;;;19047:62;;13159:4:18;19047:62:17;;18813:138;18078:28;938:15710:18;-1:-1:-1;;;18885:51:17;;;;12937:15:18;18885:51:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;18639:140:17;18078:28;938:15710:18;-1:-1:-1;;;18721:47:17;;;;12937:15:18;18721:47:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;6331:742::-;;;938:15710;6458:19;-1:-1:-1;;;;;938:15710:18;;;6497:83;;;;;;;938:15710;;;;;;6497:83;;;;;;938:15710;6497:83;;-1:-1:-1;;;;;6557:12:18;938:15710;6497:83;;;;:::i;:::-;;;;;;;;6331:742;-1:-1:-1;6493:574:18;;6592:475;;;;:::i;:::-;938:15710;6497:83;938:15710;;6638:17;6634:164;;6838:28;6848:17;938:15710;;6848:17;:::i;:::-;6838:28;:::i;:::-;6497:83;6919:3;938:15710;;6900:17;;;;;6962:9;;;938:15710;6962:9;;;:::i;:::-;938:15710;;;;;6962:9;6942:29;6953:5;;;:::i;:::-;6942:29;938:15710;6942:29;;;;:::i;:::-;;938:15710;6885:13;;6900:17;;7019:37;6900:17;;;7019:37;938:15710;;;7019:37;;;;;;:::i;6634:164::-;6770:12;;;;:::i;:::-;938:15710;;6755:28::o;6497:83::-;;;938:15710;6497:83;;;:::i;:::-;;;;1279:65:3;1326:10;;;:::i;490:2:4:-;;;;:::o;:::-;;938:15710:18;;-1:-1:-1;;;490:2:4;;;;;;;;;;;938:15710:18;490:2:4;938:15710:18;;;490:2:4;;7091:1077:17;7613:23;7091:1077;7210:30;7227:13;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;;7210:30:17;7266:12;;;938:15710:18;7266:12:17;7250:13;;938:15710:18;7343:53:17;7372:23;;;938:15710:18;2535:183:4;938:15710:18;;;;;;2535:183:4;;7343:53:17;7319:20;;;938:15710:18;7289:28:17;;;938:15710:18;7435:25:17;;;938:15710:18;7406:26:17;;;938:15710:18;7525:44:17;7406:26;7554:14;;938:15710:18;2535:183:4;938:15710:18;;;;;;2535:183:4;;7525:44:17;7501:20;;;938:15710:18;7471:28:17;;;938:15710:18;7613:23:17;;;;;:::i;:::-;7650:27;;;;;7924:62;7701:65;7613:23;7701:65;7693:107;490:2:4;7814:172:17;7701:65;;;;7693:107;:::i;:::-;7924:62;:::i;:::-;7435:25;7873:31;;938:15710:18;7372:23:17;7834:37;;938:15710:18;-1:-1:-1;;;;;938:15710:18;7815:17:17;;938:15710:18;;7646:516:17;8017:17;;7435:25;8017:17;938:15710:18;7613:23:17;8017:17;;;938:15710:18;8061:37:17;7372:23;8061:37;;938:15710:18;8116:31:17;938:15710:18;7091:1077:17:o;938:15710:18:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10418:1498:17:-;;;;11170:102;11233:17;-1:-1:-1;10649:22:17;10737:14;;938:15710:18;;10895:17:17;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;10849:11:17;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;10895:17;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;10926:31:17;;-1:-1:-1;;;;;10926:31:17;938:15710:18;;10975:23:17;10971:182;;;;10418:1498;11233:17;;938:15710:18;;10849:11:17;938:15710:18;11170:102:17;;;;;;;-1:-1:-1;;;11170:102:17;;;;;;:::i;:::-;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;11170:102:17;;;;;;;10418:1498;-1:-1:-1;11166:352:17;;11461:41;;;:::i;:::-;938:15710:18;11416:87:17;10849:11;938:15710:18;11416:87:17;;;-1:-1:-1;;;11416:87:17;;11170:102;11416:87;;;:::i;11166:352::-;11337:32;;;11531:369;;10418:1498;;:::o;11531:369::-;11611:16;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;11611:16:17;-1:-1:-1;;10418:1498:17:o;11170:102::-;;;;;11233:17;11170:102;11233:17;11170:102;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;10971:182;1241:17:3;;;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;1241:17:3;938:15710:18;11089:21:17;;;;:49;;;;10971:182;;;;;11089:49;1968:4;;;;11089:49;;10418:1498;;;;;;11233:17;11170:102;10418:1498;10737:14;;938:15710:18;;10895:17:17;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;10849:11:17;;;;;;;;;;:::i;938:15710:18:-;10926:31:17;-1:-1:-1;;;;;938:15710:18;;;10975:23:17;10971:182;;;;10418:1498;11233:17;938:15710:18;11233:17:17;;938:15710:18;;10849:11:17;938:15710:18;11170:102:17;;;;;;;-1:-1:-1;;;11170:102:17;;;;;;:::i;:::-;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;11170:102:17;;938:15710:18;;11170:102:17;;;10418:1498;-1:-1:-1;11166:352:17;;11461:41;;;:::i;11166:352::-;11337:32;;;11531:369;;10418:1498;;;:::o;11531:369::-;11611:16;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;11611:16:17;938:15710:18;;;11703:25:17;;;;11699:123;;1968:4;;938:15710:18;;10418:1498:17:o;11699:123::-;10849:11;938:15710:18;;-1:-1:-1;;;11759:44:17;;11170:102;11759:44;;938:15710:18;;;;;;;;;;;;;;;;;;;;18885:51:17;11170:102;;;;;11233:17;11170:102;11233:17;11170:102;;;;;;;:::i;:::-;;;;;10971:182;1241:17:3;;;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;1241:17:3;938:15710:18;11089:21:17;;;;;;:49;938:15710:18;11089:49:17;;;10971:182;;;;;;11089:49;1968:4;938:15710:18;1968:4:17;;;11089:49;;7079:602:18;;7273:1;7302:3;7276:24;;;;;;938:15710;;:::i;:::-;7273:1;938:15710;;;;;;;;;;;;;;;;;;;7475:51;938:15710;;;;;;7453:7;;;;;;:::i;:::-;7498;;;;:::i;7475:51::-;7545:11;;;;;;;:25;:11;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;7545:25;;7541:72;;7627:11;7644:19;7627:11;;;;:::i;:::-;7644:19;;;;;;:::i;:::-;938:15710;;;7644:19;938:15710;;;;;;:::i;:::-;7627:37;;;;;;;:::i;:::-;;7261:13;938:15710;7261:13;;7541:72;7590:8;;;;;938:15710;;;;7276:24;;;;;7079:602::o;15176:332::-;15314:84;15176:332;15342:15;;;;;;:::i;:::-;938:15710;15374:23;938:15710;;;;;;:::i;:::-;15374:23;;;;;:::i;:::-;15314:84;;;;:::i;:::-;938:15710;;15408:94;;15176:332;:::o;15408:94::-;938:15710;;15342:15;938:15710;15466:25;;;-1:-1:-1;;;15466:25:18;;-1:-1:-1;15466:25:18;;;938:15710;15342:15;938:15710;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;7687:2525::-;;;;;938:15710;;:::i;:::-;-1:-1:-1;;;8066:17:18;;;;8330:57;938:15710;;;;:::i;:::-;;8274:9;-1:-1:-1;8227:57:18;8274:9;8227:57;10907:46;8227:57;:::i;:::-;8377:9;938:15710;;;8330:57;;;;;-1:-1:-1;;;8330:57:18;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;8330:12:18;938:15710;8330:57;;;;;;;-1:-1:-1;;;8330:57:18;;;8062:1101;8298:89;;;;8467:14;;;8463:108;;8062:1101;;9190:21;8062:1101;;;;;;;;9190:21;;:::i;:::-;9221:27;-1:-1:-1;;;;;9681:12:18;938:15710;9259:872;;9267:15;;;;;:::i;:::-;9266:35;;;9371:9;9383:14;;;:::i;:::-;-1:-1:-1;9367:118:18;;9517:15;;;;;;;;-1:-1:-1;9517:15:18;;9575:54;9516:21;9517:15;;9681:57;9517:15;;:::i;:::-;938:15710;;;;9516:21;9575:54;;10907:46;9575:54;:::i;:::-;9728:9;;938:15710;;;9681:57;;;;;;;-1:-1:-1;;;9681:57:18;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;9681:57:18;;;9259:872;-1:-1:-1;9753:368:18;;;9880:19;;;9926:10;9880:19;9926:10;:::i;:::-;9954:21;9753:368;;9259:872;;;;;;;;9753:368;10096:10;;;;;;;;;:::i;:::-;9753:368;;;9681:57;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;9367:118::-;9424:46;-1:-1:-1;9424:46:18;9681:57;938:15710;;;;;;;;;;;;-1:-1:-1;9424:46:18;9266:35;;;;;;;;;;10148:57;9266:35;;938:15710;;:::i;:::-;;;;;;10148:57;;;938:15710;;10148:57;938:15710;10148:57;;938:15710;7687:2525;:::o;8463:108::-;938:15710;;;;;;;;;;8508:48;938:15710;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;8508:48;;;938:15710;;8330:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8062:1101;8716:9;8865:57;8716:9;;8809;;8762:57;8809:9;8762:57;10907:46;8762:57;:::i;:::-;8912:9;938:15710;;;8865:57;;;;;-1:-1:-1;;;8865:57:18;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;8865:12:18;938:15710;8865:57;;;;;;;;-1:-1:-1;8865:57:18;;;8062:1101;8833:89;;;;8945:24;8833:89;8960:9;;8945:24;;:::i;:::-;9049:14;;;9045:108;;8062:1101;;9190:21;8062:1101;;;;;;;;;8865:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;7687:2525;;;;;938:15710;;:::i;:::-;-1:-1:-1;;;8066:17:18;;;;8330:57;938:15710;;;;:::i;:::-;;8274:9;-1:-1:-1;8227:57:18;8274:9;8227:57;11597:37;8227:57;:::i;8330:::-;;:12;;-1:-1:-1;;;;;8330:12:18;938:15710;8330:57;;;;;;;-1:-1:-1;;;8330:57:18;;;8062:1101;8298:89;;;;8467:14;;;8463:108;;8062:1101;;9190:21;8062:1101;;;;;;;9190:21;;:::i;:::-;9221:27;-1:-1:-1;;;;;9681:12:18;938:15710;9259:872;;9267:15;;;;;:::i;:::-;9266:35;;;9371:9;9383:14;;;:::i;:::-;-1:-1:-1;9367:118:18;;9517:15;;;;;;;;-1:-1:-1;9517:15:18;;9575:54;9516:21;9517:15;;9681:57;9517:15;;:::i;9516:21::-;9575:54;;11597:37;9575:54;:::i;9681:57::-;;;;;;;;;;-1:-1:-1;;;9681:57:18;;;9259:872;-1:-1:-1;9753:368:18;;;9880:19;;;9926:10;9880:19;9926:10;:::i;:::-;9954:21;9753:368;;9259:872;;;;;;;;9753:368;10096:10;;;;;;;;;:::i;:::-;9753:368;;;9681:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;8330;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8062:1101;8716:9;8865:57;8716:9;;8809;;8762:57;8809:9;8762:57;11597:37;8762:57;:::i;8865:::-;;:12;;-1:-1:-1;;;;;8865:12:18;938:15710;8865:57;;;;;;;;-1:-1:-1;8865:57:18;;;8062:1101;8833:89;;;;8945:24;8833:89;8960:9;;8945:24;;:::i;:::-;9049:14;;;9045:108;;8062:1101;;9190:21;8062:1101;;;;;;;;;8865:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;7687:2525;;;;;938:15710;;:::i;:::-;-1:-1:-1;;;8066:17:18;;;;8330:57;938:15710;;;;:::i;:::-;;8274:9;-1:-1:-1;8227:57:18;8274:9;8227:57;13159:4;8227:57;:::i;8330:::-;;:12;;-1:-1:-1;;;;;8330:12:18;938:15710;8330:57;;;;;;;-1:-1:-1;;;8330:57:18;;;8062:1101;8298:89;;;;8467:14;;;8463:108;;8062:1101;;9190:21;8062:1101;;;;;;;9190:21;;:::i;:::-;9221:27;-1:-1:-1;;;;;9681:12:18;938:15710;9259:872;;9267:15;;;;;:::i;:::-;9266:35;;;9371:9;9383:14;;;:::i;:::-;-1:-1:-1;9367:118:18;;9517:15;;;;;;;;-1:-1:-1;9517:15:18;;9575:54;9516:21;9517:15;;9681:57;9517:15;;:::i;9516:21::-;9575:54;;13159:4;9575:54;:::i;9681:57::-;;;;;;;;;;-1:-1:-1;;;9681:57:18;;;9259:872;-1:-1:-1;9753:368:18;;;9880:19;;;9926:10;9880:19;9926:10;:::i;:::-;9954:21;9753:368;;9259:872;;;;;;;;9753:368;10096:10;;;;;;;;;:::i;:::-;9753:368;;;9681:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;8330;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8062:1101;8716:9;8865:57;8716:9;;8809;;8762:57;8809:9;8762:57;13159:4;8762:57;:::i;8865:::-;;:12;;-1:-1:-1;;;;;8865:12:18;938:15710;8865:57;;;;;;;;-1:-1:-1;8865:57:18;;;8062:1101;8833:89;;;;8945:24;8833:89;8960:9;;8945:24;;:::i;:::-;9049:14;;;9045:108;;8062:1101;;9190:21;8062:1101;;;;;;;;;8865:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1107:452:13;1204:349;1968:4:17;1204:349:13;;;;1107:452;1204:349;;;;;;;;;;;;;;;;;;1107:452;:::o;1204:349::-;;1968:4:17;1204:349:13;;938:15710:18;-1:-1:-1;;;938:15710:18;;;;;;;;;;-1:-1:-1;938:15710:18;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12481:1447:17:-;;;;;12773:9;12826:14;;;12874:17;938:15710:18;12874:17:17;;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;12941:19:17;;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;12941:19:17;938:15710:18;;13031:25:17;;;13027:122;;-1:-1:-1;;;;;13409:17:17;13258:37;938:15710:18;1968:4:17;;;;;13313:144;1968:4;;;;;938:15710:18;;13258:37:17;938:15710:18;13409:17:17;;938:15710:18;;;;13313:144:17;;;;;;;938:15710:18;13313:144:17;;;;;;:::i;:::-;;938:15710:18;;13313:144:17;;;;938:15710:18;;;13313:144:17;;;12481:1447;-1:-1:-1;13309:441:17;;13693:41;;;:::i;:::-;938:15710:18;13648:87:17;938:15710:18;;13648:87:17;;;-1:-1:-1;;;13648:87:17;;13313:144;13648:87;;;:::i;13309:441::-;13533:18;;;13776:9;1968:4;;13767:43;13763:149;;12481:1447;:::o;13763:149::-;938:15710:18;;;-1:-1:-1;;;13837:60:17;;13313:144;13837:60;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;18885:51:17;13313:144;;;;;;;;;938:15710:18;13313:144:17;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;13027:122;13083:51;938:15710:18;;;13083:51:17;;;-1:-1:-1;;;13083:51:17;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;1559:259:3;-1:-1:-1;;;;;938:15710:18;1683:8:3;938:15710:18;1683:8:3;938:15710:18;;;1683:8:3;938:15710:18;;;;;;;;;;;;;;1559:259:3;:::o;14301:1187:17:-;14561:34;-1:-1:-1;;;;;14301:1187:17;14561:34;:::i;:::-;938:15710:18;;14605:111:17;;14725:96;;15123:43;-1:-1:-1;;;;;15123:43:17;;:::i;:::-;938:15710:18;;15176:105:17;;14301:1187::o;15176:105::-;938:15710:18;;-1:-1:-1;;;15229:41:17;;;;-1:-1:-1;15229:41:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;14725:96:17;938:15710:18;;-1:-1:-1;;;14766:44:17;;;;-1:-1:-1;14766:44:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;14605:111:17;14664:41;938:15710:18;;-1:-1:-1;;;14664:41:17;;-1:-1:-1;14664:41:17;;;938:15710:18;;;;;;;;;;;;;;;;14664:41:17;856:262:3;;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;997:8:3;938:15710:18;997:8:3;938:15710:18;;;1034:17:3;938:15710:18;997:8:3;938:15710:18;1034:17:3;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;1061:20:3;;938:15710:18;856:262:3:o;1187:234:1:-;-1:-1:-1;;;;;938:15710:18;-1:-1:-1;938:15710:18;1373:19:1;938:15710:18;;;1373:32:1;938:15710:18;1317:2:1;938:15710:18;1317:2:1;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;1373:32:1;938:15710:18;;;1373:34:1;;;;:::i;:::-;938:15710:18;;;1373:41:1;1187:234;:::o;4234:507:4:-;;;938:15710:18;372:2:4;938:15710:18;;;;;;;434:2:4;938:15710:18;;;372:2:4;938:15710:18;;434:2:4;938:15710:18;490:2:4;938:15710:18;;;;;;;;;;;;;;434:2:4;938:15710:18;434:2:4;938:15710:18;;;4234:507:4:o;938:15710:18:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;8981:1012:17:-;;;;9103:20;9099:888;;8981:1012;;;;;:::o;9099:888::-;9156:14;;938:15710:18;-1:-1:-1;;;;;938:15710:18;9195:18:17;;;9191:121;;9377:35;:14;;:35;938:15710:18;9343:80:17;9377:35;938:15710:18;9343:80:17;;938:15710:18;9343:80:17;;;9122:1;9343:80;;;;;;;;:::i;:::-;;1525:14;-1:-1:-1;;;;;1525:14:17;938:15710:18;9343:80:17;;;;;;;9122:1;9343:80;;;9099:888;938:15710:18;-1:-1:-1;;;;;938:15710:18;;9441:21:17;;;9437:115;;-1:-1:-1;;;;;938:15710:18;9569:17:17;;;9565:116;;9698:19;:24;9694:123;;9864:14;9856:23;9864:14;9899:77;9864:14;9848:32;9864:14;;:::i;9848:32::-;9343:80;9915:17;;;938:15710:18;9951:14:17;;938:15710:18;9951:24:17;938:15710:18;9377:35:17;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;9377:35:17;9899:77;9099:888;;;;;;9694:123;9377:35;938:15710:18;;-1:-1:-1;;;9749:53:17;;9343:80;9749:53;;938:15710:18;;;;;;;;;;;;;;;;;;;;18885:51:17;9565:116;9613:53;938:15710:18;9377:35:17;938:15710:18;9613:53:17;;;-1:-1:-1;;;9613:53:17;;9343:80;9613:53;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;9437:115:17;9489:48;938:15710:18;9377:35:17;938:15710:18;9489:48:17;;;-1:-1:-1;;;9489:48:17;;9343:80;9489:48;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;9343:80:17;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;9191:121;938:15710:18;;;-1:-1:-1;;;9245:52:17;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;18885:51:17;15905:741:18;;;;;16096:20;:47;;;;15905:741;16092:183;;;16315:2;16288:29;;;16284:310;;15905:741;938:15710;;;;:::i;16284:310::-;16315:2;938:15710;;;;;;16411:21;:26;16407:177;;16284:310;;;;16407:177;938:15710;;;;;;:::i;:::-;;;;;;;;;16531:38;:::o;16092:183::-;938:15710;;;;;;;;:::i;:::-;;;;;;;;;16228:36;:::o;16096:47::-;16120:18;;;:23;16096:47;;;938:15710;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;938:15710:18;;;:::o;:::-;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;:::i;3324:1845::-;938:15710;;:::i;:::-;3543:47;3575:15;;;;:::i;:::-;3543:47;:::i;:::-;938:15710;;;:::i;:::-;3613:46;3605:54;;3601:843;;938:15710;;;:::i;:::-;4466:37;4458:45;;4454:382;;938:15710;;;;4858:29;938:15710;;:::i;:::-;4850:37;4846:284;;938:15710;;-1:-1:-1;;;5140:22:18;;938:15710;5140:22;;;938:15710;;;;;;;;;;;;;18885:51:17;4846:284:18;4920:19;5031:88;938:15710;4983:27;4920:19;;5031:88;4920:19;;;:::i;:::-;4983:27;;;;;;:::i;:::-;938:15710;;;:::i;:::-;;4983:27;938:15710;5031:88;;;938:15710;4920:19;5031:88;;;;;;;:::i;4454:382::-;4542:15;;;938:15710;4628:19;4542:36;:15;;4746:79;4542:15;;:::i;:::-;3718:23:4;;938:15710:18;;;;3587:162:4;4542:36:18;4628:19;938:15710;;;;4628:19;938:15710;;4627:45;4644:3;4687:19;;938:15710;4746:79;938:15710;;4746:79;;;938:15710;4746:79;;;;;;;;:::i;3601:843::-;3783:15;;;4355:78;3783:15;-1:-1:-1;;3783:15:18;4234:99;;3738:78;3783:32;:15;;4355:78;3783:15;;:::i;:32::-;3738:78;;:::i;:::-;3865:26;;;;938:15710;3909:19;3783:32;3909:19;;;490:2:4;3909:19:18;;938:15710;3909:67;3905:195;;3601:843;938:15710;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;4234:99;;;;;:::i;:::-;;938:15710;;4234:99;;;;;;:::i;:::-;4196:137;938:15710;;4355:78;;;938:15710;4234:99;4355:78;;;;;;;:::i;3905:195::-;938:15710;4012:15;;;:32;:15;;:73;:15;;:::i;:32::-;:73;;;:::i;938:15710::-;3905:195;;;;23680:517:17;23890:28;23825:20;;;938:15710:18;23890:28:17;;938:15710:18;23936:36:17;;;23932:173;;24166:13;1968:4;3338:5:0;;;;;;:13;23680:517:17;:::o;3338:13:0:-;;;23680:517:17;:::o;23932:173::-;24071:19;;:::o;3827:410::-;;;;3993:237;938:15710:18;4025:17:17;;;938:15710:18;4056:14:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;4091:24:17;4025:17;-1:-1:-1;;;;;4091:24:17;;;938:15710:18;;4129:20:17;;938:15710:18;;;;;;;;4025:17:17;938:15710:18;;;;;;;;;;;3993:237:17;3827:410::o;:::-;;938:15710:18;3993:237:17;3827:410;4025:17;;;938:15710:18;4056:14:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;4091:24:17;4025:17;-1:-1:-1;;;;;4091:24:17;;;938:15710:18;;4129:20:17;;938:15710:18;;;;;;;;;4025:17:17;938:15710:18;;;;;;;;;;;3993:237:17;3827:410::o;4243:182::-;4355:17;;;938:15710:18;4374:14:17;;938:15710:18;4328:90:17;4355:17;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;4397:20:17;;938:15710:18;;;;;;4328:90:17;4243:182::o;15818:500::-;15976:19;;15972:76;;15994:1;938:15710:18;;;;;;:::i;:::-;;;;;;;;;;;;;1582:3:0;938:15710:18;;1596:15:0;;1592:67;;15818:500:17;938:15710:18;1691:28:0;16203:33:17;938:15710:18;1684:36:0;1691:28;;938:15710:18;;;;1691:28:0;938:15710:18;;;;1684:36:0;938:15710:18;1733:50:0;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;1733:50:0;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;1733:50:0;;938:15710:18;1733:50:0;;;;938:15710:18;;;;;;1733:50:0;938:15710:18;;;1733:50:0;;938:15710:18;;;;;16203:33:17;:15;:33;:70;;;;;15818:500;16186:87;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;15818:500:17;:::o;16203:70::-;938:15710:18;16240:33:17;;-1:-1:-1;938:15710:18;;;;16240:33:17;16203:15;16240:33;16203:70;;;1592:67:0;-1:-1:-1;938:15710:18;1592:67:0;;15972:76:17;16011:26;15994:1;16011:26;15994:1;16011:26;:::o;2879:281:0:-;2961:193;;;;;;;2879:281;:::o","linkReferences":{},"immutableReferences":{"1745":[{"start":16668,"length":32}],"3320":[{"start":11252,"length":32},{"start":13356,"length":32},{"start":13448,"length":32},{"start":13938,"length":32},{"start":14127,"length":32},{"start":14218,"length":32},{"start":14493,"length":32},{"start":14682,"length":32},{"start":14773,"length":32},{"start":15048,"length":32}]}},"methodIdentifiers":{"_paymasterValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))":"21e60b37","_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":"c579f76b","addStake(uint32)":"0396cb60","balanceOf(address)":"70a08231","binarySearchCallGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)":"7472949c","binarySearchPaymasterVerificationGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)":"03d1dcaf","binarySearchVerificationGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)":"76ad6123","depositTo(address)":"b760faf9","deposits(address)":"fc7e286d","getDepositInfo(address)":"5287ce12","getNonce(address,uint192)":"35567e1a","getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"22cdde4c","incrementNonce(uint192)":"0bd28e3b","innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":"0da82661","nonceSequenceNumber(address,uint192)":"1b2e01b8","simulateCall(address,bytes,uint256)":"f7e426e8","simulateCallAndRevert(address,bytes,uint256)":"44403473","simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)":"97b2dcb9","simulateHandleOpBulk((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])":"0dbfc6bd","simulateHandleOpLast((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])":"263934db","simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"c3bce009","simulateValidationBulk((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])":"30ec25d1","simulateValidationLast((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])":"fe2171cb","unlockStake()":"bb9fe6bf","withdrawStake(address)":"c23a5cea","withdrawTo(address,uint256)":"205c2878"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"CallPhaseReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"inner\",\"type\":\"bytes\"}],\"name\":\"FailedOpWithRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderAddressResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureValidationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"name\":\"SimulationOutOfGas\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingGas\",\"type\":\"uint256\"}],\"name\":\"innerCallResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"AccountDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDeposit\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"PostOpRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureAggregatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"}],\"name\":\"StakeUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasUsed\",\"type\":\"uint256\"}],\"name\":\"UserOperationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"UserOperationPrefundTooLow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"UserOperationRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_paymasterValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"validatePaymasterPrepayment\",\"type\":\"bool\"}],\"name\":\"_validatePrepayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"getUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"opInfo\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preGas\",\"type\":\"uint256\"}],\"name\":\"innerHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"name\":\"nonceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCallAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"simulateHandleOpBulk\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"simulateHandleOpLast\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"}],\"name\":\"simulateValidationBulk\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"}],\"name\":\"simulateValidationLast\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity.\"}}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"details\":\"note that inner is truncated to 2048 bytes\",\"params\":{\"inner\":\"- data from inner cought revert reason\",\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. see FailedOp(uint256,string), above\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SignatureValidationFailed(address)\":[{\"params\":{\"aggregator\":\"The aggregator that failed to verify the signature\"}}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"params\":{\"factory\":\"- The factory used to deploy this account (in the initCode)\",\"paymaster\":\"- The paymaster used by this UserOp\",\"sender\":\"- The account that is deployed\",\"userOpHash\":\"- The userOp that deployed this account. UserOperationEvent will follow.\"}},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"SignatureAggregatorChanged(address)\":{\"params\":{\"aggregator\":\"- The aggregator used for the following UserOperationEvents.\"}},\"UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)\":{\"params\":{\"actualGasCost\":\"- Actual amount paid (by account or paymaster) for this UserOperation.\",\"actualGasUsed\":\"- Total gas used by this UserOperation (including preVerification, creation, validation and execution).\",\"nonce\":\"- The nonce value from the request.\",\"paymaster\":\"- If non-null, the paymaster that pays for this request.\",\"sender\":\"- The account that generates this request.\",\"success\":\"- True if the sender transaction succeeded, false if reverted.\",\"userOpHash\":\"- Unique identifier for the request (hash its entire content, except signature).\"}},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}}},\"kind\":\"dev\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"params\":{\"opIndex\":\"- The index of this userOp into the \\\"opInfos\\\" array.\",\"userOp\":\"- The userOp to validate.\"}},\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"The new lock duration before the deposit can be withdrawn.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"_0\":\"- The deposit (for gas payment) of the account.\"}},\"depositTo(address)\":{\"params\":{\"account\":\"- The account to add to.\"}},\"getDepositInfo(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"info\":\" - Full deposit information of given account.\"}},\"getNonce(address,uint192)\":{\"params\":{\"key\":\"the high 192 bit of the nonce\",\"sender\":\"the account address\"},\"returns\":{\"nonce\":\"a full nonce to pass for next UserOp with this sender.\"}},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"params\":{\"userOp\":\"- The user operation to generate the request ID for.\"},\"returns\":{\"_0\":\"hash the hash of this UserOperation\"}},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"params\":{\"callData\":\"- The callData to execute.\",\"context\":\"- The context bytes.\",\"opInfo\":\"- The UserOpInfo struct.\"},\"returns\":{\"actualGasCost\":\"- the actual cost in eth this UserOperation paid for gas\"}},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"params\":{\"op\":\"The UserOperation to simulate.\"},\"returns\":{\"_0\":\"the execution result structure\"}},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"details\":\"The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.\",\"params\":{\"userOp\":\"- The user operation to validate.\"},\"returns\":{\"_0\":\"the validation result structure\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\",\"withdrawAmount\":\"- The amount to withdraw.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"notice\":\"A custom revert error of handleOps, to identify the offending op. Should be caught in off-chain handleOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts. NOTE: If simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"notice\":\"A custom revert error of handleOps, to report a revert by account or paymaster.\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"Error case when a signature aggregator fails to verify the aggregated signature it had created.\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"Account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"An event emitted by handleOps(), before starting the execution loop. Any event emitted before this event, is part of the validation.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation Paymaster's \\\"postOp\\\" call reverted with non-zero length.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"Signature aggregator used by the following UserOperationEvents within this bundle.\"},\"UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)\":{\"notice\":\"An event emitted after each successful request.\"},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"notice\":\"UserOp consumed more than prefund. The UserOperation is reverted, and no refund is made.\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length.\"}},\"kind\":\"user\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"notice\":\"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)\"},\"addStake(uint32)\":{\"notice\":\"Add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"Get account balance.\"},\"constructor\":{\"notice\":\"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures\"},\"depositTo(address)\":{\"notice\":\"Add to the deposit of the given account.\"},\"deposits(address)\":{\"notice\":\"maps paymaster to their deposits and stakes\"},\"getDepositInfo(address)\":{\"notice\":\"Get deposit info.\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid.\"},\"incrementNonce(uint192)\":{\"notice\":\"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \\\"initialize\\\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.\"},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"notice\":\"Inner function to handle a UserOperation. Must be declared \\\"external\\\" to open a call context, but it can only be called by handleOps.\"},\"nonceSequenceNumber(address,uint192)\":{\"notice\":\"The next valid sequence number for a given nonce key.\"},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"notice\":\"Simulate full execution of a UserOperation (including both validation and target execution) It performs full validation of the UserOperation, but ignores signature error. An optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted). Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events.\"},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp.\"},\"unlockStake()\":{\"notice\":\"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass.\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v07/EntryPointSimulations.sol\":\"EntryPointSimulations07\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.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-v7/contracts/core/Helpers.sol\":{\"keccak256\":\"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e\",\"dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc\"]},\"lib/account-abstraction-v7/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6\",\"dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a\"]},\"lib/account-abstraction-v7/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238\",\"dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH\"]},\"lib/account-abstraction-v7/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c\",\"dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G\"]},\"lib/account-abstraction-v7/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc\",\"dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020\",\"dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol\":{\"keccak256\":\"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577\",\"dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8\",\"dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/openzeppelin-contracts-v5.0.2/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02\",\"dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd\"]},\"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"src/v07/EntryPoint.sol\":{\"keccak256\":\"0xe67e8ce0af5e518732ca3f3ca14f2f7963547f3a27e6567c2f6b45c70ffb10f9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://77f0af329d36750a40ab832cb78bbaa2e1133048aeb23bd97c0f61426ecd859c\",\"dweb:/ipfs/QmUJiU774ZM9Wfs7BWtYZ2Xktf9baZQ7QhFsgdLPDJfYni\"]},\"src/v07/EntryPointSimulations.sol\":{\"keccak256\":\"0x0debae908adcb49cb5f725b794f152cee9978fd4929120460241a3848b1f5c7f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bb5a8d1e72fc65478563cd2e863c18235e6dba671338d858a65e43f9a0fdc062\",\"dweb:/ipfs/QmW3LKReUt3wSXFReDeNKtBdP6EKPjQ5vPMfbxw7o8PPrJ\"]},\"src/v07/IEntryPoint.sol\":{\"keccak256\":\"0xca38cd0a2ed294deb3f36c933de236524a597ffc72da21a925458780d0b13b2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://01dc9ca228751a7ba99e72d88c8dd3bfcae6d9bb85180a9ea7efc0550e9237a0\",\"dweb:/ipfs/QmPsEVXWZAZCKWuys3eqShSXCtHZCSc1bYQhHGDHuABYc6\"]},\"src/v07/IEntryPointSimulations.sol\":{\"keccak256\":\"0x49c6650bcbc4d4725aaa3aad66381c1c20b2a5d8b0249dcfa95fc65337d7f0ab\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2aaf93b6816132dd0e098dbbec2c5ae11f561df8b373645f5d266d2106af9b77\",\"dweb:/ipfs/QmPMKdVZpub1sHSSXmSufmwC5ZfaL3v5GpcNU4QY6Hw6cN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"type":"error","name":"CallPhaseReverted"},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailedOp"},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"inner","type":"bytes"}],"type":"error","name":"FailedOpWithRevert"},{"inputs":[{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"PostOpReverted"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"SenderAddressResult"},{"inputs":[{"internalType":"address","name":"aggregator","type":"address"}],"type":"error","name":"SignatureValidationFailed"},{"inputs":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}],"type":"error","name":"SimulationOutOfGas"},{"inputs":[{"internalType":"uint256","name":"remainingGas","type":"uint256"}],"type":"error","name":"innerCallResult"},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"factory","type":"address","indexed":false},{"internalType":"address","name":"paymaster","type":"address","indexed":false}],"type":"event","name":"AccountDeployed","anonymous":false},{"inputs":[],"type":"event","name":"BeforeExecution","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"totalDeposit","type":"uint256","indexed":false}],"type":"event","name":"Deposited","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bytes","name":"revertReason","type":"bytes","indexed":false}],"type":"event","name":"PostOpRevertReason","anonymous":false},{"inputs":[{"internalType":"address","name":"aggregator","type":"address","indexed":true}],"type":"event","name":"SignatureAggregatorChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"totalStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256","indexed":false}],"type":"event","name":"StakeLocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"withdrawTime","type":"uint256","indexed":false}],"type":"event","name":"StakeUnlocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"withdrawAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"StakeWithdrawn","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"paymaster","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"uint256","name":"actualGasCost","type":"uint256","indexed":false},{"internalType":"uint256","name":"actualGasUsed","type":"uint256","indexed":false}],"type":"event","name":"UserOperationEvent","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false}],"type":"event","name":"UserOperationPrefundTooLow","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bytes","name":"revertReason","type":"bytes","indexed":false}],"type":"event","name":"UserOperationRevertReason","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"withdrawAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawn","anonymous":false},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct EntryPoint.UserOpInfo","name":"outOpInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"_paymasterValidation","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct EntryPoint.UserOpInfo","name":"outOpInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]},{"internalType":"bool","name":"validatePaymasterPrepayment","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_validatePrepayment","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"}],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SimulationArgs[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"struct SimulationArgs","name":"targetUserOp","type":"tuple","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchCallGasLimit","outputs":[{"internalType":"struct IEntryPointSimulations.TargetCallResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct SimulationArgs[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"struct SimulationArgs","name":"targetUserOp","type":"tuple","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchPaymasterVerificationGasLimit","outputs":[{"internalType":"struct IEntryPointSimulations.TargetCallResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct SimulationArgs[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"struct SimulationArgs","name":"targetUserOp","type":"tuple","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchVerificationGasLimit","outputs":[{"internalType":"struct IEntryPointSimulations.TargetCallResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"payable","type":"function","name":"depositTo"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"bool","name":"staked","type":"bool"},{"internalType":"uint112","name":"stake","type":"uint112"},{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"},{"internalType":"uint48","name":"withdrawTime","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getDepositInfo","outputs":[{"internalType":"struct IStakeManager.DepositInfo","name":"info","type":"tuple","components":[{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"bool","name":"staked","type":"bool"},{"internalType":"uint112","name":"stake","type":"uint112"},{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"},{"internalType":"uint48","name":"withdrawTime","type":"uint48"}]}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint192","name":"key","type":"uint192"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"view","type":"function","name":"getUserOpHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint192","name":"key","type":"uint192"}],"stateMutability":"nonpayable","type":"function","name":"incrementNonce"},{"inputs":[{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"struct EntryPoint.UserOpInfo","name":"opInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]},{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"uint256","name":"preGas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"innerHandleOp","outputs":[{"internalType":"uint256","name":"actualGasCost","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint192","name":"","type":"uint192"}],"stateMutability":"view","type":"function","name":"nonceSequenceNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateCall","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateCallAndRevert"},{"inputs":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOp","outputs":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"ops","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOpBulk","outputs":[{"internalType":"struct IEntryPointSimulations.ExecutionResult[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"ops","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOpLast","outputs":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]}]},{"inputs":[{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateValidation","outputs":[{"internalType":"struct IEntryPointSimulations.ValidationResult","name":"","type":"tuple","components":[{"internalType":"struct IEntryPoint.ReturnInfo","name":"returnInfo","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"bytes","name":"paymasterContext","type":"bytes"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"senderInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"factoryInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"paymasterInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IEntryPoint.AggregatorStakeInfo","name":"aggregatorInfo","type":"tuple","components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"struct IStakeManager.StakeInfo","name":"stakeInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateValidationBulk","outputs":[{"internalType":"struct IEntryPointSimulations.ValidationResult[]","name":"","type":"tuple[]","components":[{"internalType":"struct IEntryPoint.ReturnInfo","name":"returnInfo","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"bytes","name":"paymasterContext","type":"bytes"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"senderInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"factoryInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"paymasterInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IEntryPoint.AggregatorStakeInfo","name":"aggregatorInfo","type":"tuple","components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"struct IStakeManager.StakeInfo","name":"stakeInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateValidationLast","outputs":[{"internalType":"struct IEntryPointSimulations.ValidationResult","name":"","type":"tuple","components":[{"internalType":"struct IEntryPoint.ReturnInfo","name":"returnInfo","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"bytes","name":"paymasterContext","type":"bytes"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"senderInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"factoryInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"paymasterInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IEntryPoint.AggregatorStakeInfo","name":"aggregatorInfo","type":"tuple","components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"struct IStakeManager.StakeInfo","name":"stakeInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]}]}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unlockStake"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawStake"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":{"params":{"opIndex":"- The index of this userOp into the \"opInfos\" array.","userOp":"- The userOp to validate."}},"addStake(uint32)":{"params":{"unstakeDelaySec":"The new lock duration before the deposit can be withdrawn."}},"balanceOf(address)":{"params":{"account":"- The account to query."},"returns":{"_0":"- The deposit (for gas payment) of the account."}},"depositTo(address)":{"params":{"account":"- The account to add to."}},"getDepositInfo(address)":{"params":{"account":"- The account to query."},"returns":{"info":" - Full deposit information of given account."}},"getNonce(address,uint192)":{"params":{"key":"the high 192 bit of the nonce","sender":"the account address"},"returns":{"nonce":"a full nonce to pass for next UserOp with this sender."}},"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"params":{"userOp":"- The user operation to generate the request ID for."},"returns":{"_0":"hash the hash of this UserOperation"}},"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":{"params":{"callData":"- The callData to execute.","context":"- The context bytes.","opInfo":"- The UserOpInfo struct."},"returns":{"actualGasCost":"- the actual cost in eth this UserOperation paid for gas"}},"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)":{"params":{"op":"The UserOperation to simulate."},"returns":{"_0":"the execution result structure"}},"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"details":"The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.","params":{"userOp":"- The user operation to validate."},"returns":{"_0":"the validation result structure"}},"withdrawStake(address)":{"params":{"withdrawAddress":"- The address to send withdrawn value."}},"withdrawTo(address,uint256)":{"params":{"withdrawAddress":"- The address to send withdrawn value.","withdrawAmount":"- The amount to withdraw."}}},"version":1},"userdoc":{"kind":"user","methods":{"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":{"notice":"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)"},"addStake(uint32)":{"notice":"Add to the account's stake - amount and delay any pending unstake is first cancelled."},"balanceOf(address)":{"notice":"Get account balance."},"constructor":{"notice":"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures"},"depositTo(address)":{"notice":"Add to the deposit of the given account."},"deposits(address)":{"notice":"maps paymaster to their deposits and stakes"},"getDepositInfo(address)":{"notice":"Get deposit info."},"getNonce(address,uint192)":{"notice":"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order."},"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid."},"incrementNonce(uint192)":{"notice":"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \"initialize\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key."},"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":{"notice":"Inner function to handle a UserOperation. Must be declared \"external\" to open a call context, but it can only be called by handleOps."},"nonceSequenceNumber(address,uint192)":{"notice":"The next valid sequence number for a given nonce key."},"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)":{"notice":"Simulate full execution of a UserOperation (including both validation and target execution) It performs full validation of the UserOperation, but ignores signature error. An optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted). Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events."},"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp."},"unlockStake()":{"notice":"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay."},"withdrawStake(address)":{"notice":"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass."},"withdrawTo(address,uint256)":{"notice":"Withdraw from the deposit."}},"version":1}},"settings":{"remappings":["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/","@account-abstraction-v7/=lib/account-abstraction-v7/contracts/","@account-abstraction-v8/=lib/account-abstraction-v8/contracts/","@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.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/v07/EntryPointSimulations.sol":"EntryPointSimulations07"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/account-abstraction-v7/contracts/core/Helpers.sol":{"keccak256":"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6","urls":["bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e","dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/NonceManager.sol":{"keccak256":"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9","urls":["bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6","dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/SenderCreator.sol":{"keccak256":"0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5","urls":["bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238","dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/StakeManager.sol":{"keccak256":"0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d","urls":["bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c","dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G"],"license":"GPL-3.0-only"},"lib/account-abstraction-v7/contracts/core/UserOperationLib.sol":{"keccak256":"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b","urls":["bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc","dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol":{"keccak256":"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78","urls":["bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020","dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol":{"keccak256":"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c","urls":["bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577","dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol":{"keccak256":"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588","urls":["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155","dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4","urls":["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9","dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol":{"keccak256":"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb","urls":["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3","dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IPaymaster.sol":{"keccak256":"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f","urls":["bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8","dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04","urls":["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00","dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"],"license":"GPL-3.0-only"},"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359","urls":["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be","dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/utils/Exec.sol":{"keccak256":"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74","urls":["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77","dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"],"license":"LGPL-3.0-only"},"lib/openzeppelin-contracts-v5.0.2/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xf980daa263b661ab8ddee7d4fd833c7da7e7995e2c359ff1f17e67e4112f2236","urls":["bzz-raw://7448ab095d6940130bcf76ba47a2eab14148c83119523b93dd89f6d84edd6c02","dweb:/ipfs/QmawrZ4voKQjH3oomXT3Kuheb3Mnmo2VvVpxg8Ne5UJUrd"],"license":"MIT"},"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"lib/openzeppelin-contracts-v5.0.2/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"src/v07/EntryPoint.sol":{"keccak256":"0xe67e8ce0af5e518732ca3f3ca14f2f7963547f3a27e6567c2f6b45c70ffb10f9","urls":["bzz-raw://77f0af329d36750a40ab832cb78bbaa2e1133048aeb23bd97c0f61426ecd859c","dweb:/ipfs/QmUJiU774ZM9Wfs7BWtYZ2Xktf9baZQ7QhFsgdLPDJfYni"],"license":"GPL-3.0"},"src/v07/EntryPointSimulations.sol":{"keccak256":"0x0debae908adcb49cb5f725b794f152cee9978fd4929120460241a3848b1f5c7f","urls":["bzz-raw://bb5a8d1e72fc65478563cd2e863c18235e6dba671338d858a65e43f9a0fdc062","dweb:/ipfs/QmW3LKReUt3wSXFReDeNKtBdP6EKPjQ5vPMfbxw7o8PPrJ"],"license":"GPL-3.0"},"src/v07/IEntryPoint.sol":{"keccak256":"0xca38cd0a2ed294deb3f36c933de236524a597ffc72da21a925458780d0b13b2d","urls":["bzz-raw://01dc9ca228751a7ba99e72d88c8dd3bfcae6d9bb85180a9ea7efc0550e9237a0","dweb:/ipfs/QmPsEVXWZAZCKWuys3eqShSXCtHZCSc1bYQhHGDHuABYc6"],"license":"GPL-3.0"},"src/v07/IEntryPointSimulations.sol":{"keccak256":"0x49c6650bcbc4d4725aaa3aad66381c1c20b2a5d8b0249dcfa95fc65337d7f0ab","urls":["bzz-raw://2aaf93b6816132dd0e098dbbec2c5ae11f561df8b373645f5d266d2106af9b77","dweb:/ipfs/QmPMKdVZpub1sHSSXmSufmwC5ZfaL3v5GpcNU4QY6Hw6cN"],"license":"GPL-3.0"}},"version":1},"id":18}
1
+ {"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"_paymasterValidation","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"outOpInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"validationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"_validatePrepayment","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"outOpInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]},{"name":"validatePaymasterPrepayment","type":"bool","internalType":"bool"}],"outputs":[{"name":"validationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"addStake","inputs":[{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"binarySearchCallGasLimit","inputs":[{"name":"queuedUserOps","type":"tuple[]","internalType":"struct SimulationArgs[]","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct SimulationArgs","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"entryPoint","type":"address","internalType":"address"},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.TargetCallResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchPaymasterVerificationGasLimit","inputs":[{"name":"queuedUserOps","type":"tuple[]","internalType":"struct SimulationArgs[]","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct SimulationArgs","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"entryPoint","type":"address","internalType":"address"},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.TargetCallResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchVerificationGasLimit","inputs":[{"name":"queuedUserOps","type":"tuple[]","internalType":"struct SimulationArgs[]","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct SimulationArgs","components":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}]},{"name":"entryPoint","type":"address","internalType":"address"},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.TargetCallResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"depositTo","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"deposit","type":"uint256","internalType":"uint256"},{"name":"staked","type":"bool","internalType":"bool"},{"name":"stake","type":"uint112","internalType":"uint112"},{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"},{"name":"withdrawTime","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getDepositInfo","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"info","type":"tuple","internalType":"struct IStakeManager.DepositInfo","components":[{"name":"deposit","type":"uint256","internalType":"uint256"},{"name":"staked","type":"bool","internalType":"bool"},{"name":"stake","type":"uint112","internalType":"uint112"},{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"},{"name":"withdrawTime","type":"uint48","internalType":"uint48"}]}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"uint192","internalType":"uint192"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserOpHash","inputs":[{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"incrementNonce","inputs":[{"name":"key","type":"uint192","internalType":"uint192"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"innerHandleOp","inputs":[{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"opInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]},{"name":"context","type":"bytes","internalType":"bytes"},{"name":"preGas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"actualGasCost","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"nonceSequenceNumber","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint192","internalType":"uint192"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"simulateCall","inputs":[{"name":"entryPoint","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"},{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateCallAndRevert","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOp","inputs":[{"name":"op","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"target","type":"address","internalType":"address"},{"name":"targetCallData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOpBulk","inputs":[{"name":"ops","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IEntryPointSimulations.ExecutionResult[]","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOpLast","inputs":[{"name":"ops","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateValidation","inputs":[{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ValidationResult","components":[{"name":"returnInfo","type":"tuple","internalType":"struct IEntryPoint.ReturnInfo","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterContext","type":"bytes","internalType":"bytes"}]},{"name":"senderInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"factoryInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"paymasterInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"aggregatorInfo","type":"tuple","internalType":"struct IEntryPoint.AggregatorStakeInfo","components":[{"name":"aggregator","type":"address","internalType":"address"},{"name":"stakeInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateValidationBulk","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IEntryPointSimulations.ValidationResult[]","components":[{"name":"returnInfo","type":"tuple","internalType":"struct IEntryPoint.ReturnInfo","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterContext","type":"bytes","internalType":"bytes"}]},{"name":"senderInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"factoryInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"paymasterInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"aggregatorInfo","type":"tuple","internalType":"struct IEntryPoint.AggregatorStakeInfo","components":[{"name":"aggregator","type":"address","internalType":"address"},{"name":"stakeInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateValidationLast","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ValidationResult","components":[{"name":"returnInfo","type":"tuple","internalType":"struct IEntryPoint.ReturnInfo","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterContext","type":"bytes","internalType":"bytes"}]},{"name":"senderInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"factoryInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"paymasterInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"aggregatorInfo","type":"tuple","internalType":"struct IEntryPoint.AggregatorStakeInfo","components":[{"name":"aggregator","type":"address","internalType":"address"},{"name":"stakeInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unlockStake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawStake","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"},{"name":"withdrawAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AccountDeployed","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"factory","type":"address","indexed":false,"internalType":"address"},{"name":"paymaster","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeforeExecution","inputs":[],"anonymous":false},{"type":"event","name":"Deposited","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"totalDeposit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PostOpRevertReason","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"revertReason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SignatureAggregatorChanged","inputs":[{"name":"aggregator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StakeLocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"totalStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StakeUnlocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StakeWithdrawn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationEvent","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"paymaster","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"actualGasCost","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"actualGasUsed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationPrefundTooLow","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationRevertReason","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"revertReason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Withdrawn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"CallPhaseReverted","inputs":[{"name":"reason","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"FailedOp","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedOpWithRevert","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"reason","type":"string","internalType":"string"},{"name":"inner","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"PostOpReverted","inputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SenderAddressResult","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"SignatureValidationFailed","inputs":[{"name":"aggregator","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationOutOfGas","inputs":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"innerCallResult","inputs":[{"name":"remainingGas","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60c080604052346101005760016002556101948181016001600160401b038111838210176100ea578291614cda833903906000f080156100de576080523060a052610048610105565b60008152602081019060008252806020610060610105565b600081520152600380546001600160a01b03191690555160045551600555604051614bb5908161012582396080518161411c015260a051818181612bf40152818161342c01528181613488015281816136720152818161372f0152818161378a0152818161389d0152818161395a015281816139b50152613ac80152f35b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fd5b60408051919082016001600160401b038111838210176100ea5760405256fe60806040526004361015610023575b361561001957600080fd5b610021612cec565b005b60003560e01c80630396cb60146101c357806303d1dcaf146101be5780630bd28e3b146101b95780630da82661146101b45780630dbfc6bd146101af5780631b2e01b8146101aa578063205c2878146101a557806321e60b37146101a057806322cdde4c1461019b578063263934db1461019657806330ec25d11461019157806335567e1a1461018c57806344403473146101875780635287ce121461018257806370a082311461017d5780637472949c1461017857806376ad61231461017357806397b2dcb91461016e578063b760faf914610169578063bb9fe6bf14610164578063c23a5cea1461015f578063c3bce0091461015a578063c579f76b14610155578063f7e426e814610150578063fc7e286d1461014b5763fe2171cb0361000e57611926565b611898565b61185f565b6115cf565b611598565b611471565b61134a565b61131f565b611125565b6110ec565b6110cc565b61108e565b610f7d565b610f37565b610e65565b610de7565b610cd0565b610c9f565b610ba2565b610aaa565b610a49565b6109cb565b61081d565b610593565b6104f6565b60203660031901126103b95760043563ffffffff8116908181036103b9576103b47fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c019161039661028461027461022c336001600160a01b03166000526000602052604060002090565b96610238811515611976565b61026560018901549161025e6102558463ffffffff9060781c1690565b63ffffffff1690565b11156119c1565b60081c6001600160701b031690565b6001600160701b03349116611a3f565b94610290861515611a4c565b6102a36001600160701b03871115611a97565b546102ac61069d565b908152600160208201526001600160701b038616604082015263ffffffff83166060820152600060808201526102f5336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b9181601f840112156103b95782359167ffffffffffffffff83116103b9576020808501948460051b0101116103b957565b6001600160a01b038116036103b957565b359061040b826103ef565b565b60c06003198201126103b95760043567ffffffffffffffff81116103b95781610438916004016103be565b929092916024359067ffffffffffffffff82116103b95760609082900360031901126103b9576004019060443561046e816103ef565b90606435906084359060a43590565b60005b8381106104905750506000910152565b8181015183820152602001610480565b906020916104b98151809281855285808601910161047d565b601f01601f1916010190565b608060406104f3936020845280516020850152602081015115158285015201519160608082015201906104a0565b90565b346103b95761057961056d61055661050d3661040d565b969194909561051d949394611ae2565b50610550610529611b03565b61053e6105368780611b73565b825190612d40565b6105488680611b73565b905a91612f9b565b50613276565b6105686105638280611b73565b61333b565b6133ce565b604051918291826104c5565b0390f35b602435906001600160c01b03821682036103b957565b346103b95760203660031901126103b9576004356001600160c01b03811681036103b9576105e1903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6105eb8154611b89565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761062157604052565b6105ef565b6060810190811067ffffffffffffffff82111761062157604052565b610140810190811067ffffffffffffffff82111761062157604052565b6040810190811067ffffffffffffffff82111761062157604052565b90601f8019910116810190811067ffffffffffffffff82111761062157604052565b6040519061040b60a08361067b565b6040519061040b6101408361067b565b6040519061040b6101008361067b565b6040519061040b60408361067b565b6040519061040b60608361067b565b6040519061040b6101208361067b565b67ffffffffffffffff811161062157601f01601f191660200190565b929192610722826106fa565b91610730604051938461067b565b8294818452818301116103b9578281602093846000960137010152565b9080601f830112156103b9578160206104f393359101610716565b60431901906101c082126103b95760405161078281610605565b6101408193126103b9576107946106ac565b61079e6044610400565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526107dc610124610400565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103b9576102203660031901126103b95760043567ffffffffffffffff81116103b95761084f90369060040161074d565b3660231901906101c082126103b9576101406040519261086e84610605565b126103b95761087b6106ac565b6108856024610400565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526108c2610104610400565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103b95760409261092961093493369060040161074d565b906102043592611b98565b82519182526020820152f35b60206003198201126103b9576004359067ffffffffffffffff82116103b95761096b916004016103be565b9091565b9061010060e06104f393805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906104a0565b346103b9576109e26109dc36610940565b90611f05565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610a1a57505050500390f35b91936001919395506020610a398192603f198a8203018652885161096f565b9601920192018594939192610a0b565b346103b95760403660031901126103b9576020610aa1600435610a6b816103ef565b6001600160a01b03610a7b61057d565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103b95760403660031901126103b957600435610ac7816103ef565b602435336000526000602052604060002091825490818311610b4f5760008080856001600160a01b03829589610b00846100219a6120af565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b496120bc565b506120ec565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b90816101209103126103b95790565b346103b9576102003660031901126103b95760243560043567ffffffffffffffff82116103b957610bda610579923690600401610b93565b90610be436610768565b600092815192610bf48483612d40565b610bfd82612137565b60208401526001600160a01b0360e0610c3786610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610c5f575b6040805160008082526020820188905291810191909152806060810188565b610c699450613c92565b905038808080610c40565b60206003198201126103b9576004359067ffffffffffffffff82116103b9576104f391600401610b93565b346103b9576020610cb7610cb236610c74565b612137565b604051908152f35b9060206104f392818152019061096f565b346103b957610cfc610ce136610940565b809291610cec611e05565b50610cf682611e5a565b50611f05565b6000198201918211610d2a5761057991610d1591611ef1565b5160405191829160208352602083019061096f565b611a0c565b906104f39060e06080610d81818651610140865280516101408701526020810151610160870152604081015161018087015260608101516101a0870152015160a06101c08601526101e08501906104a0565b60208087015180518683015201516040850152946040810151805160608601526020015160808501526060810151805160a08601526020015160c0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103b957610dfe610df836610940565b906122c8565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610e3657505050500390f35b91936001919395506020610e558192603f198a82030186528851610d2f565b9601920192018594939192610e27565b346103b95760403660031901126103b9576020600435610e84816103ef565b6001600160a01b03610e9461057d565b911660005260018252610ebe816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b60606003198201126103b957600435610eee816103ef565b9160243567ffffffffffffffff81116103b957826023820112156103b95780600401359267ffffffffffffffff84116103b957602484830101116103b957602401919060443590565b346103b95760008080610f4936610ed6565b939181604094929451948592833781018381520393f1610f676120bc565b9015610f6f57005b80519081156103b957602001fd5b346103b95760203660031901126103b9576001600160a01b03600435610fa2816103ef565b60006080604051610fb281610605565b8281528260208201528260408201528260608201520152166000526000602052610579604060002061103a65ffffffffffff600160405193610ff385610605565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103b95760203660031901126103b9576001600160a01b036004356110b3816103ef565b1660005260006020526020604060002054604051908152f35b346103b95761057961056d6110e03661040d565b959490949391936123b5565b346103b95761057961056d6111136111033661040d565b9691949095610550949394611ae2565b6111206105638280611b73565b6136ef565b346103b95760603660031901126103b95760043567ffffffffffffffff81116103b957611156903690600401610b93565b602435611162816103ef565b60443567ffffffffffffffff81116103b95761118290369060040161074d565b9161118b611e05565b5060009160028054146113105761057993600280556111a8611b03565b6111b18461333b565b6111bb81856128b6565b91955a6060850151856111d16060850185612618565b8c60038211611308575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b036112ef57505061123f611253611258956020840151604051938492638dd7712f60e01b6020850152604060248501526064840190612e6b565b90604483015203601f19810183528261067b565b611b98565b9390975b80956060976001600160a01b0381166112c6575b5050509560806112ab96970151976112866106bc565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526112ba6001600255565b60405191829182610cbf565b6112ab98508280949850602083519301915af19560806112e46120bc565b979591979638611270565b611300955090611253913691610716565b93909761125c565b5081356111db565b600483633ee5aeb560e01b8152fd5b60203660031901126103b95761002160043561133a816103ef565b612442565b60009103126103b957565b346103b95760003660031901126103b9573360005260006020526001604060002001805463ffffffff8160781c161561142d576113b66113a86102558361139c6113976113f09660ff1690565b612483565b60781c63ffffffff1690565b65ffffffffffff42166124ce565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103b4565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103b95760203660031901126103b9576100216000808080600435611496816103ef565b6001600160a01b0360016114bd336001600160a01b03166000526000602052604060002090565b019161154b83549361152365ffffffffffff61150f6114f56114e9896001600160701b039060081c1690565b6001600160701b031690565b976115018915156124ec565b60981c65ffffffffffff1690565b1661151b811515612537565b421015612582565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af16115926120bc565b506125cd565b346103b9576105796115b16115ac36610c74565b6126f0565b604051918291602083526020830190610d2f565b801515036103b957565b346103b9576102203660031901126103b95760043560243567ffffffffffffffff81116103b957611604903690600401610b93565b9061160e36610768565b610204359061161c826115c5565b6000935a82519361162d8584612d40565b61163683612137565b60208501526040850151956116826effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a08901511761010089015117610120890151171115612855565b6116ad86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b906116bb88838888856130f7565b976116e26116de6116d38a516001600160a01b031690565b60208b015190613ffc565b1590565b61180a575a8503116117b8576060926001600160a01b0361170e60e05a9a01516001600160a01b031690565b16151590816117b0575b50611779575b509360806117559460a061175095610579999561175c99604087015260608601525a9003910135019101525a906120af565b6128a0565b6064900490565b604051938493846040919493926060820195825260208201520152565b8198506105799692508460a06117509561179e899561175c9a6117559a608097613c92565b9c90969a50949850955050945061171e565b905038611718565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103b95761187961187036610ed6565b92919091612b9d565b90610579604051928392151583526040602084015260408301906104a0565b346103b95760203660031901126103b9576001600160a01b036004356118bd816103ef565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b346103b95761194861193736610940565b809291611942612241565b506122c8565b6000198201918211610d2a576105799161196191611ef1565b51604051918291602083526020830190610d2f565b1561197d57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b156119c857565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211610d2a57565b9060018201809211610d2a57565b91908201809211610d2a57565b15611a5357565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611a9e57565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b60405190611aef82610626565b606060408360008152600060208201520152565b60405190611b1082610605565b6000608083604051611b2181610642565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b90359061011e19813603018212156103b9570190565b6000198114610d2a5760010190565b93929093845190606082015181519081611d83575b505050505a900360808401510192600093845a835194611bcc86614949565b92611be160e08801516001600160a01b031690565b6001600160a01b038116919082611cb15750505050611c0785516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611c9c575b505085029460408501938451878110600014611c7157505050611c6d939450611c556000613b89565b5a9003905101905183611c688295614a42565b614973565b9190565b611c6d969295508780955060019450611c8c92910390613e69565b50611c976000613b89565b6149db565b9196916064919003600a020401943880611c2c565b95928051611cc2575b505050611c09565b9091929950611cd082613b89565b5a9260a089015190803b15611d7f579183929187848196948f611d25604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601613b98565b0393f19182611d65575b5050611d5957611806611d40613b45565b6040519182916365c8fd4d60e01b835260048301613bca565b5a900396388080611cba565b611d72611d78928261067b565b8061133f565b3880611d2f565b8380fd5b600080949360206001600160a01b0383965116910192f115611da85738808080611bad565b611806611db3613b45565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906104a0565b67ffffffffffffffff81116106215760051b60200190565b60405190610100820182811067ffffffffffffffff82111761062157604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90611e6482611ded565b611e71604051918261067b565b8281528092611e82601f1991611ded565b019060005b828110611e9357505050565b602090611e9e611e05565b82828501015201611e87565b634e487b7160e01b600052603260045260246000fd5b90821015611ed7576104f39160051b810190611b73565b611eaa565b60405190611eeb60208361067b565b60008252565b8051821015611ed75760209160051b010190565b611f0e82611e5a565b9160005b818110611f1f5750505090565b611f2a818385611ec0565b6020906000604051611f3c848261067b565b52611f45611e05565b50600060028054146120825790612037600194939260028055611f66611b03565b92611f708161333b565b84611f7b85836128b6565b929091935a9088606081015191611f956060820182612618565b8a6003821161207a575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361206257505061125385638dd7712f60e01b9261123f6120029886015191604051958694850152604060248501526064840190612e6b565b93905b60806060980151986120156106bc565b998a52890152604088015285870152608086015260a0850152151560c0840152565b60e08201526120466001600255565b6120508287611ef1565b5261205b8186611ef1565b5001611f12565b612073965061125392503691610716565b9390612005565b508135611f9f565b80633ee5aeb560e01b60049252fd5b600319810191908211610d2a57565b600019810191908211610d2a57565b91908203918211610d2a57565b3d156120e7573d906120cd826106fa565b916120db604051938461067b565b82523d6000602084013e565b606090565b156120f357565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60208101356121f961214c6040840184612618565b908160405191823720916121eb6121666060860186612618565b90816040519182372060c086013560a0870135608088013561219461218e60e08b018b612618565b90614b74565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b03601f19810183528261067b565b5190206040805160208101928352309181019190915246606082015261222281608081016121eb565b51902090565b604051906122358261065f565b60006020838281520152565b6040519061224e82610605565b8160405161225b81610605565b60008152600060208201526000604082015260006060820152606060808201528152612285612228565b6020820152612292612228565b604082015261229f612228565b60608201526080604051916122b38361065f565b600083526122bf612228565b60208401520152565b6122d182611ded565b916122df604051938461067b565b808352601f196122ee82611ded565b0160005b81811061233857505060005b81811061230b5750505090565b8061231c6115ac6001938587611ec0565b6123268287611ef1565b526123318186611ef1565b50016122fe565b602090612343612241565b828288010152016122f2565b908092918237016000815290565b356104f3816103ef565b6040519061237660208361067b565b6000808352366020840137565b9061238d826106fa565b61239a604051918261067b565b82815280926123ab601f19916106fa565b0190602036910137565b906123c891969594939296610550611ae2565b6001600160a01b036123da8680611b73565b6124036020880135916123ec836103ef565b6123f4611b03565b906123fe8161333b565b6128b6565b5050501615612415576104f39461391a565b5050505050612422612367565b6040519061242f82610626565b6000825260006020830152604082015290565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036124773485613e69565b936040519485521692a2565b1561248a57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211610d2a57565b156124f357565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561253e57565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561258957565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156125d457565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b903590601e19813603018212156103b9570180359067ffffffffffffffff82116103b9576020019181360383136103b957565b906014116103b95790601490565b90929192836034116103b95783116103b957603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612696575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b604051906126c38261065f565b6003546001600160a01b031682526040516020836126e08361065f565b6004548352600554828401520152565b6126f8612241565b50612701611b03565b9061270b8161333b565b61271582826128b6565b509190926127238385613e91565b61274061273b60e0835101516001600160a01b031690565b613fb9565b9161276e61275a61273b84516001600160a01b0390511690565b91612763612228565b506040810190612618565b90601482106128495761279061278a6127969361273b9361264b565b90612676565b60601c90565b916001600160a01b0386169460808201519660606040840151930151926127bb61069d565b98895260208901526040880152606087015260808601526127da6126b6565b938015158061283e575b61280c575b506127f261069d565b948552602085015260408401526060830152608082015290565b90935061281881613fb9565b6128326128236106cc565b6001600160a01b039093168352565b602082015292386127e9565b5060018114156127e4565b50506127966000613fb9565b1561285c57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715610d2a57565b90916000915a938051916128ca8382612d40565b6128d381612137565b602083015260408301519561291f6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a08701511761010087015117610120870151171115612855565b61294a84610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129588882868660006130f7565b9761297b6116de61297088516001600160a01b031690565b602089015190613ffc565b612a72575a830311612a1e576060906001600160a01b036129a760e05a9801516001600160a01b031690565b16151580612a16575b6129e3575b6117509360a06104f39794879460809460406117559a015260608601525a9003910135019101525a906120af565b965050928260808360a06104f397612a048b61175599611750996000613c92565b9b9095985093509497505093506129b5565b5060016129b0565b604051631101335b60e11b815280611806600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b908060209392818452848401376000828201840152601f01601f1916010190565b6040906001600160a01b036104f395931681528160208201520191612ac6565b6040513d6000823e3d90fd5b908151811015611ed7570160200190565b81601f820112156103b9578051612b3a816106fa565b92612b48604051948561067b565b818452602082840101116103b9576104f3916020808501910161047d565b9190916040818403126103b9578051612b7e816115c5565b92602082015167ffffffffffffffff81116103b9576104f39201612b24565b91926000936001600160a01b036060941691823b156103b957612c1d93600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612ae7565b0393f19081612cd7575b5061096b575050612c366120bc565b906004825110612cc857612c52612c4d8351612091565b612383565b60045b8351811015612cb25780612c94612c6e60019387612b13565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612cab612ca083612091565b9160001a9185612b13565b5301612c55565b5061096b91925060208082518301019101612b66565b9050612cd2612367565b600091565b80611d726000612ce69361067b565b38612c27565b61040b33612442565b15612cfc57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b612dd790612d5d612d508261235d565b6001600160a01b03168452565b60208101356020840152612d8a6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c0840152612dc160c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612618565b908115612e1357612dfb8260e092612df6603461040b97961015612cf5565b61404e565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b908160209103126103b9575190565b9035601e19823603018112156103b957016020813591019167ffffffffffffffff82116103b95781360383136103b957565b6104f391612e8981612e7c84610400565b6001600160a01b03169052565b60208201356020820152612f1f612f13612eda612ebf612eac6040870187612e39565b6101206040880152610120870191612ac6565b612ecc6060870187612e39565b908683036060880152612ac6565b6080850135608085015260a085013560a085015260c085013560c0850152612f0560e0860186612e39565b9085830360e0870152612ac6565b92610100810190612e39565b91610100818503910152612ac6565b612f4660409295949395606083526060830190612e6b565b9460208201520152565b60a0906104f39392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b92909161301e6020600095855193612fe860e0612fbf87516001600160a01b031690565b96612fda8a8c612fd26040890189612618565b9290916140ac565b01516001600160a01b031690565b91886001600160a01b038194161598896130bc575b85015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f185918161308b575b5061305f5784613042613b45565b906118066040519283926365c8fd4d60e01b845260048401612f50565b93919261306a575050565b613087906001600160a01b03166000526000602052604060002090565b5050565b6130ae91925060203d6020116130b5575b6130a6818361067b565b810190612e2a565b9038613034565b503d61309c565b93506130db876001600160a01b03166000526000602052604060002090565b5480156130ee575084815b949050612ffd565b859082036130e6565b949291939060206131679186519361312e60e061311b87516001600160a01b031690565b96612fda8b8d612fd26040890189612618565b916001600160a01b0360009316159889613234575b84600091015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f160009181613213575b5061318c5785613042613b45565b94929361319857505050565b6131b5906001600160a01b03166000526000602052604060002090565b918254908183116131c65750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b61322d91925060203d6020116130b5576130a6818361067b565b903861317e565b9250613253866001600160a01b03166000526000602052604060002090565b548781111561326b5750600084815b94915050613143565b846000918903613262565b9160005b828110156133355761328a611b03565b6000908260051b860135605e198736030181121561333157906132c560019493928801916132bb6105638480611b73565b6123fe8380611b73565b50505060208101906132e56132d98361235d565b6001600160a01b031690565b1561332957826133036132f8829461235d565b926040810190612618565b91906133146040518094819361234f565b03925af1506133216120bc565b505b0161327a565b505050613323565b8280fd5b50915050565b61336e9061334c6040820182612618565b9161336681359161335c836103ef565b60e0810190612618565b93909261434d565b80516133775750565b61180690604051918291631101335b60e11b8352600060048401526040602484015260448301906104a0565b9392916133c9906001600160a01b036040931686526060602087015260608601906104a0565b930152565b939490946133da611ae2565b5060009280156136335761341f93506133f1611edc565b509160006134015a8860026146e8565b5a906040519687928392631efc84dd60e31b84528c600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613612575b508294809381156135ef57505061347d909592919394955b85611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134b588856120af565b106135c5575a6134c488611a22565b1161358c57918695939189959360008c8b6134f76134ee6134e8886135179f611a3f565b60011c90565b809b60026146e8565b835a936040519e8f9586948593631efc84dd60e31b8552600485016133a3565b03925af198891561358757600090819a613561575b501561354c5750505061353e846120a0565b95915b9390929495916134aa565b9396509461355b919750611a31565b94613541565b9061357f929a503d8091833e613577818361067b565b810190612b66565b98903861352c565b612b07565b7fe2c4d0be0000000000000000000000000000000000000000000000000000000060005260048290526024879052604483905260646000fd5b9650965050919550506135e791506135db6106db565b93845215156020840152565b604082015290565b965096505095505050506135e76136046106db565b600081529215156020840152565b90925061362991943d8091833e613577818361067b565b939093913861345f565b50613665915a91846136475a8960026146e8565b5a906040519687928392631efc84dd60e31b84528d600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956136cb575b505083946136b381945a906120af565b9481156135ef57505061347d90959291939495613477565b909194506136e49295503d8091833e613577818361067b565b9390939238806136a3565b939490946136fb611ae2565b50600092801561387c576137229350613712611edc565b509160006134015a8860036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af191821561358757600094859361385b575b508294809381156135ef57505061377f9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846137b788856120af565b106135c5575a6137c688611a22565b1161358c57918695939189959360008c8b6134f76137ea6134e8886137f39f611a3f565b809b60036146e8565b03925af198891561358757600090819a61383d575b50156138285750505061381a846120a0565b95915b9390929495916137ac565b93965094613837919750611a31565b9461381d565b90613853929a503d8091833e613577818361067b565b989038613808565b90925061387291943d8091833e613577818361067b565b9390939138613762565b50613890915a91846136475a8960036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956138f6575b505083946138de81945a906120af565b9481156135ef57505061377f90959291939495613477565b9091945061390f9295503d8091833e613577818361067b565b9390939238806138ce565b93949094613926611ae2565b506000928015613aa75761394d935061393d611edc565b509160006134015a8860016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613a86575b508294809381156135ef5750506139aa9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846139e288856120af565b106135c5575a6139f188611a22565b1161358c57918695939189959360008c8b6134f7613a156134e888613a1e9f611a3f565b809b60016146e8565b03925af198891561358757600090819a613a68575b5015613a5357505050613a45846120a0565b95915b9390929495916139d7565b93965094613a62919750611a31565b94613a48565b90613a7e929a503d8091833e613577818361067b565b989038613a33565b909250613a9d91943d8091833e613577818361067b565b939093913861398d565b50613abb915a91846136475a8960016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af193841561358757858095613b21575b50508394613b0981945a906120af565b9481156135ef5750506139aa90959291939495613477565b90919450613b3a9295503d8091833e613577818361067b565b939093923880613af9565b3d6108008111613b6a575b604051906020818301016040528082526000602083013e90565b50610800613b50565b634e487b7160e01b600052602160045260246000fd5b60031115613b9357565b613b73565b90949392946003811015613b9357606092613bc09183526080602084015260808301906104a0565b9460408201520152565b9060a06104f3926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906104a0565b91906040838203126103b957825167ffffffffffffffff81116103b957602091613c41918501612b24565b92015190565b60a0906104f39392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b929390915a92815190613caf60e08301516001600160a01b031690565b91613ccd836001600160a01b03166000526000602052604060002090565b8054898110613e14576001600160a01b0360206080600097958d9795613d2f9d9e8a960390550151970151926040519a8b96879586937f52b7512c00000000000000000000000000000000000000000000000000000000855260048501612f2e565b03931686f19384600091600096613ded575b50613d6c5785613d4f613b45565b906118066040519283926365c8fd4d60e01b845260048401613c47565b9491925a900311613d7a5750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613e0d91503d806000833e613e05818361067b565b810190613c16565b9438613d41565b61180689604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6001600160a01b0316600052600060205260406000208054918201809211610d2a5781905590565b613ea26001600160a01b0391614a85565b9116613f6d57613f1957613ebd6001600160a01b0391614a85565b5016613ec557565b604051631101335b60e11b815280611806600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613fca612228565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b6001600160a01b0316600052600160205267ffffffffffffffff61403a8260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261404784611b89565b9055161490565b9091826014116103b957813591836024116103b9576014810135936034116103b95760609290921c92608090811c9260240135901c90565b908160209103126103b957516104f3816103ef565b9160206104f3938181520191612ac6565b929091816140bb575b50505050565b8251516001600160a01b031693843b61430057604084510151602060405180927f570e1a36000000000000000000000000000000000000000000000000000000008252816000816141108a8a6004840161409b565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f1908115613587576000916142d1575b506001600160a01b03811695861561427c576001600160a01b0316809603614227573b156141da575061279061278a7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936141a79361264b565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a3388080806140b5565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61180683604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6142f3915060203d6020116142f9575b6142eb818361067b565b810190614086565b3861414d565b503d6142e1565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b50929192159081614402575b506143c5576014811015614372575b50506104f3611edc565b6014116103b9573560601c3b1561438a573880614368565b60405161439860408261067b565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143d560408261067b565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614359565b610120813603126103b95761441f6106ea565b9061442981610400565b825260208101356020830152604081013567ffffffffffffffff81116103b957614456903690830161074d565b6040830152606081013567ffffffffffffffff81116103b95761447c903690830161074d565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff81116103b9576144c0903690830161074d565b60e08301526101008101359067ffffffffffffffff82116103b9576144e79136910161074d565b61010082015290565b60041115613b9357565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b168552166014840152166024820152614548825180936020868501910161047d565b010190565b80516001600160a01b031682526104f391602082015160208201526101006145ce61459e61458c604086015161012060408701526101208601906104a0565b606086015185820360608701526104a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526104a0565b920151906101008184039101526104a0565b60806101a09161012081516145fe8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261465260e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6146be6146b3610200939695949660008452610220602085015261022084019061454d565b9560408301906145e0565b0152565b610200906146be6146b3600094969596858452610220602085015261022084019061454d565b6146f0611b03565b6147026146fd8480611b73565b61440c565b61470b836144f0565b600283146148645761471c836144f0565b600383146147dd575050806147326001926144f0565b1461477c5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b806121eb6147a76147a061479560206104f3960161235d565b936040810190612618565b3691610716565b936040519485937f44403473000000000000000000000000000000000000000000000000000000006020860152602485016133a3565b9150926fffffffffffffffffffffffffffffffff61482461481d614804866104f397611b73565b608001356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526121eb6040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016146c2565b9150926121eb906fffffffffffffffffffffffffffffffff19846148ef6148e161489d61489761335c856104f39b611b73565b9061404e565b9291905060609060e08a0195603487515111614925575b5060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b1690602086016144fa565b03601f19810184528361067b565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161468e565b61494291925061493b61335c826147a093611b73565b8091612659565b90386148b4565b61012061010082015191015180821461496f5748018082101561496a575090565b905090565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b8015614b6b57600060408051614a9a81610626565b828152826020820152015265ffffffffffff8160a01c168015614b5e575b614b4090614b27614acf614ada614acf8660d01c90565b65ffffffffffff1690565b92614aff6001600160a01b03614aee6106db565b971687906001600160a01b03169052565b614b156020870194859065ffffffffffff169052565b65ffffffffffff166040860181905290565b4211908115614b43575b5091516001600160a01b031690565b91565b51614b56915065ffffffffffff16614acf565b421038614b31565b5065ffffffffffff614ab8565b50600090600090565b81604051918237209056fea2646970667358221220866dc43c4870dedc66bf343a4cd2aa2c82443a80802800def6bfb9d32efd32be64736f6c634300081c003360808060405234601557610179908161001b8239f35b600080fdfe6080600436101561000f57600080fd5b60003560e01c63570e1a361461002457600080fd5b3461013e57602036600319011261013e5760043567ffffffffffffffff811161013e573660238201121561013e57806004013567ffffffffffffffff811161013e57366024828401011161013e576000928160141161013a5760131982019167ffffffffffffffff831161012657600b8101601f19908116603f0116820167ffffffffffffffff8111838210176101125760246020959387600c819795829560405286845289840196603889018837830101525193013560601c5af19051901561010a575b60209073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b5060006100e9565b602486634e487b7160e01b81526041600452fd5b602485634e487b7160e01b81526041600452fd5b8380fd5b600080fdfea2646970667358221220ea27187ca6f911e310b89c722db8d8e689e8b114dc6a370df66e14f7b719208264736f6c634300081c0033","sourceMap":"938:15710:18:-:0;;;;;;;1857:1:14;2061:21;938:15710:18;1411:19:17;;;;-1:-1:-1;;;;;1411:19:17;;;;;;;;;;;;;;;-1:-1:-1;1411:19:17;;;;;;;1064:4:18;;;938:15710;;:::i;:::-;-1:-1:-1;938:15710:18;;1151:15;;;938:15710;-1:-1:-1;938:15710:18;;;1151:15;938:15710;;:::i;:::-;-1:-1:-1;938:15710:18;;1119:48;938:15710;1119:48;938:15710;;-1:-1:-1;;;;;;938:15710:18;;;;;;;;;;;;;;;;;1411:19:17;938:15710:18;;;;;1064:4;938:15710;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1411:19:17;938:15710:18;;;-1:-1:-1;938:15710:18;;;;;1411:19:17;938:15710:18;;;-1:-1:-1;938:15710:18;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610023575b361561001957600080fd5b610021612cec565b005b60003560e01c80630396cb60146101c357806303d1dcaf146101be5780630bd28e3b146101b95780630da82661146101b45780630dbfc6bd146101af5780631b2e01b8146101aa578063205c2878146101a557806321e60b37146101a057806322cdde4c1461019b578063263934db1461019657806330ec25d11461019157806335567e1a1461018c57806344403473146101875780635287ce121461018257806370a082311461017d5780637472949c1461017857806376ad61231461017357806397b2dcb91461016e578063b760faf914610169578063bb9fe6bf14610164578063c23a5cea1461015f578063c3bce0091461015a578063c579f76b14610155578063f7e426e814610150578063fc7e286d1461014b5763fe2171cb0361000e57611926565b611898565b61185f565b6115cf565b611598565b611471565b61134a565b61131f565b611125565b6110ec565b6110cc565b61108e565b610f7d565b610f37565b610e65565b610de7565b610cd0565b610c9f565b610ba2565b610aaa565b610a49565b6109cb565b61081d565b610593565b6104f6565b60203660031901126103b95760043563ffffffff8116908181036103b9576103b47fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c019161039661028461027461022c336001600160a01b03166000526000602052604060002090565b96610238811515611976565b61026560018901549161025e6102558463ffffffff9060781c1690565b63ffffffff1690565b11156119c1565b60081c6001600160701b031690565b6001600160701b03349116611a3f565b94610290861515611a4c565b6102a36001600160701b03871115611a97565b546102ac61069d565b908152600160208201526001600160701b038616604082015263ffffffff83166060820152600060808201526102f5336001600160a01b03166000526000602052604060002090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b9181601f840112156103b95782359167ffffffffffffffff83116103b9576020808501948460051b0101116103b957565b6001600160a01b038116036103b957565b359061040b826103ef565b565b60c06003198201126103b95760043567ffffffffffffffff81116103b95781610438916004016103be565b929092916024359067ffffffffffffffff82116103b95760609082900360031901126103b9576004019060443561046e816103ef565b90606435906084359060a43590565b60005b8381106104905750506000910152565b8181015183820152602001610480565b906020916104b98151809281855285808601910161047d565b601f01601f1916010190565b608060406104f3936020845280516020850152602081015115158285015201519160608082015201906104a0565b90565b346103b95761057961056d61055661050d3661040d565b969194909561051d949394611ae2565b50610550610529611b03565b61053e6105368780611b73565b825190612d40565b6105488680611b73565b905a91612f9b565b50613276565b6105686105638280611b73565b61333b565b6133ce565b604051918291826104c5565b0390f35b602435906001600160c01b03821682036103b957565b346103b95760203660031901126103b9576004356001600160c01b03811681036103b9576105e1903360005260016020526040600020906001600160c01b0316600052602052604060002090565b6105eb8154611b89565b9055005b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761062157604052565b6105ef565b6060810190811067ffffffffffffffff82111761062157604052565b610140810190811067ffffffffffffffff82111761062157604052565b6040810190811067ffffffffffffffff82111761062157604052565b90601f8019910116810190811067ffffffffffffffff82111761062157604052565b6040519061040b60a08361067b565b6040519061040b6101408361067b565b6040519061040b6101008361067b565b6040519061040b60408361067b565b6040519061040b60608361067b565b6040519061040b6101208361067b565b67ffffffffffffffff811161062157601f01601f191660200190565b929192610722826106fa565b91610730604051938461067b565b8294818452818301116103b9578281602093846000960137010152565b9080601f830112156103b9578160206104f393359101610716565b60431901906101c082126103b95760405161078281610605565b6101408193126103b9576107946106ac565b61079e6044610400565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c08201526107dc610124610400565b60e0820152610144356101008201526101643561012082015281526101843560208201526101a43560408201526101c435606082015260806101e435910152565b346103b9576102203660031901126103b95760043567ffffffffffffffff81116103b95761084f90369060040161074d565b3660231901906101c082126103b9576101406040519261086e84610605565b126103b95761087b6106ac565b6108856024610400565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526108c2610104610400565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff82116103b95760409261092961093493369060040161074d565b906102043592611b98565b82519182526020820152f35b60206003198201126103b9576004359067ffffffffffffffff82116103b95761096b916004016103be565b9091565b9061010060e06104f393805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906104a0565b346103b9576109e26109dc36610940565b90611f05565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610a1a57505050500390f35b91936001919395506020610a398192603f198a8203018652885161096f565b9601920192018594939192610a0b565b346103b95760403660031901126103b9576020610aa1600435610a6b816103ef565b6001600160a01b03610a7b61057d565b9116600052600183526040600020906001600160c01b0316600052602052604060002090565b54604051908152f35b346103b95760403660031901126103b957600435610ac7816103ef565b602435336000526000602052604060002091825490818311610b4f5760008080856001600160a01b03829589610b00846100219a6120af565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610b496120bc565b506120ec565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b90816101209103126103b95790565b346103b9576102003660031901126103b95760243560043567ffffffffffffffff82116103b957610bda610579923690600401610b93565b90610be436610768565b600092815192610bf48483612d40565b610bfd82612137565b60208401526001600160a01b0360e0610c3786610100604082015160608301510160808301510160a08301510160c0830151019101510290565b95015116610c5f575b6040805160008082526020820188905291810191909152806060810188565b610c699450613c92565b905038808080610c40565b60206003198201126103b9576004359067ffffffffffffffff82116103b9576104f391600401610b93565b346103b9576020610cb7610cb236610c74565b612137565b604051908152f35b9060206104f392818152019061096f565b346103b957610cfc610ce136610940565b809291610cec611e05565b50610cf682611e5a565b50611f05565b6000198201918211610d2a5761057991610d1591611ef1565b5160405191829160208352602083019061096f565b611a0c565b906104f39060e06080610d81818651610140865280516101408701526020810151610160870152604081015161018087015260608101516101a0870152015160a06101c08601526101e08501906104a0565b60208087015180518683015201516040850152946040810151805160608601526020015160808501526060810151805160a08601526020015160c0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b346103b957610dfe610df836610940565b906122c8565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610e3657505050500390f35b91936001919395506020610e558192603f198a82030186528851610d2f565b9601920192018594939192610e27565b346103b95760403660031901126103b9576020600435610e84816103ef565b6001600160a01b03610e9461057d565b911660005260018252610ebe816040600020906001600160c01b0316600052602052604060002090565b546040805192901b67ffffffffffffffff1916178152f35b60606003198201126103b957600435610eee816103ef565b9160243567ffffffffffffffff81116103b957826023820112156103b95780600401359267ffffffffffffffff84116103b957602484830101116103b957602401919060443590565b346103b95760008080610f4936610ed6565b939181604094929451948592833781018381520393f1610f676120bc565b9015610f6f57005b80519081156103b957602001fd5b346103b95760203660031901126103b9576001600160a01b03600435610fa2816103ef565b60006080604051610fb281610605565b8281528260208201528260408201528260608201520152166000526000602052610579604060002061103a65ffffffffffff600160405193610ff385610605565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b346103b95760203660031901126103b9576001600160a01b036004356110b3816103ef565b1660005260006020526020604060002054604051908152f35b346103b95761057961056d6110e03661040d565b959490949391936123b5565b346103b95761057961056d6111136111033661040d565b9691949095610550949394611ae2565b6111206105638280611b73565b6136ef565b346103b95760603660031901126103b95760043567ffffffffffffffff81116103b957611156903690600401610b93565b602435611162816103ef565b60443567ffffffffffffffff81116103b95761118290369060040161074d565b9161118b611e05565b5060009160028054146113105761057993600280556111a8611b03565b6111b18461333b565b6111bb81856128b6565b91955a6060850151856111d16060850185612618565b8c60038211611308575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b036112ef57505061123f611253611258956020840151604051938492638dd7712f60e01b6020850152604060248501526064840190612e6b565b90604483015203601f19810183528261067b565b611b98565b9390975b80956060976001600160a01b0381166112c6575b5050509560806112ab96970151976112866106bc565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526112ba6001600255565b60405191829182610cbf565b6112ab98508280949850602083519301915af19560806112e46120bc565b979591979638611270565b611300955090611253913691610716565b93909761125c565b5081356111db565b600483633ee5aeb560e01b8152fd5b60203660031901126103b95761002160043561133a816103ef565b612442565b60009103126103b957565b346103b95760003660031901126103b9573360005260006020526001604060002001805463ffffffff8160781c161561142d576113b66113a86102558361139c6113976113f09660ff1690565b612483565b60781c63ffffffff1690565b65ffffffffffff42166124ce565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a9080602081016103b4565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b346103b95760203660031901126103b9576100216000808080600435611496816103ef565b6001600160a01b0360016114bd336001600160a01b03166000526000602052604060002090565b019161154b83549361152365ffffffffffff61150f6114f56114e9896001600160701b039060081c1690565b6001600160701b031690565b976115018915156124ec565b60981c65ffffffffffff1690565b1661151b811515612537565b421015612582565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af16115926120bc565b506125cd565b346103b9576105796115b16115ac36610c74565b6126f0565b604051918291602083526020830190610d2f565b801515036103b957565b346103b9576102203660031901126103b95760043560243567ffffffffffffffff81116103b957611604903690600401610b93565b9061160e36610768565b610204359061161c826115c5565b6000935a82519361162d8584612d40565b61163683612137565b60208501526040850151956116826effffffffffffffffffffffffffffff8860c08901511760608901511760808901511760a08901511761010089015117610120890151171115612855565b6116ad86610100604082015160608301510160808301510160a08301510160c0830151019101510290565b906116bb88838888856130f7565b976116e26116de6116d38a516001600160a01b031690565b60208b015190613ffc565b1590565b61180a575a8503116117b8576060926001600160a01b0361170e60e05a9a01516001600160a01b031690565b16151590816117b0575b50611779575b509360806117559460a061175095610579999561175c99604087015260608601525a9003910135019101525a906120af565b6128a0565b6064900490565b604051938493846040919493926060820195825260208201520152565b8198506105799692508460a06117509561179e899561175c9a6117559a608097613c92565b9c90969a50949850955050945061171e565b905038611718565b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b346103b95761187961187036610ed6565b92919091612b9d565b90610579604051928392151583526040602084015260408301906104a0565b346103b95760203660031901126103b9576001600160a01b036004356118bd816103ef565b16600052600060205265ffffffffffff604060002060018154910154908260405193849360a0850193855260ff8116151560208601526001600160701b03808260081c1616604086015263ffffffff808260781c1616606086015260981c161660808301520390f35b346103b95761194861193736610940565b809291611942612241565b506122c8565b6000198201918211610d2a576105799161196191611ef1565b51604051918291602083526020830190610d2f565b1561197d57565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b156119c857565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b600052601160045260246000fd5b906113888201809211610d2a57565b9060018201809211610d2a57565b91908201809211610d2a57565b15611a5357565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611a9e57565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b60405190611aef82610626565b606060408360008152600060208201520152565b60405190611b1082610605565b6000608083604051611b2181610642565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b90359061011e19813603018212156103b9570190565b6000198114610d2a5760010190565b93929093845190606082015181519081611d83575b505050505a900360808401510192600093845a835194611bcc86614949565b92611be160e08801516001600160a01b031690565b6001600160a01b038116919082611cb15750505050611c0785516001600160a01b031690565b925b5a8203019460a06060820151910151019160808501928351870390818111611c9c575b505085029460408501938451878110600014611c7157505050611c6d939450611c556000613b89565b5a9003905101905183611c688295614a42565b614973565b9190565b611c6d969295508780955060019450611c8c92910390613e69565b50611c976000613b89565b6149db565b9196916064919003600a020401943880611c2c565b95928051611cc2575b505050611c09565b9091929950611cd082613b89565b5a9260a089015190803b15611d7f579183929187848196948f611d25604051998a97889687947f7c627b2100000000000000000000000000000000000000000000000000000000865202908660048601613b98565b0393f19182611d65575b5050611d5957611806611d40613b45565b6040519182916365c8fd4d60e01b835260048301613bca565b5a900396388080611cba565b611d72611d78928261067b565b8061133f565b3880611d2f565b8380fd5b600080949360206001600160a01b0383965116910192f115611da85738808080611bad565b611806611db3613b45565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906104a0565b67ffffffffffffffff81116106215760051b60200190565b60405190610100820182811067ffffffffffffffff82111761062157604052606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b90611e6482611ded565b611e71604051918261067b565b8281528092611e82601f1991611ded565b019060005b828110611e9357505050565b602090611e9e611e05565b82828501015201611e87565b634e487b7160e01b600052603260045260246000fd5b90821015611ed7576104f39160051b810190611b73565b611eaa565b60405190611eeb60208361067b565b60008252565b8051821015611ed75760209160051b010190565b611f0e82611e5a565b9160005b818110611f1f5750505090565b611f2a818385611ec0565b6020906000604051611f3c848261067b565b52611f45611e05565b50600060028054146120825790612037600194939260028055611f66611b03565b92611f708161333b565b84611f7b85836128b6565b929091935a9088606081015191611f956060820182612618565b8a6003821161207a575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361206257505061125385638dd7712f60e01b9261123f6120029886015191604051958694850152604060248501526064840190612e6b565b93905b60806060980151986120156106bc565b998a52890152604088015285870152608086015260a0850152151560c0840152565b60e08201526120466001600255565b6120508287611ef1565b5261205b8186611ef1565b5001611f12565b612073965061125392503691610716565b9390612005565b508135611f9f565b80633ee5aeb560e01b60049252fd5b600319810191908211610d2a57565b600019810191908211610d2a57565b91908203918211610d2a57565b3d156120e7573d906120cd826106fa565b916120db604051938461067b565b82523d6000602084013e565b606090565b156120f357565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60208101356121f961214c6040840184612618565b908160405191823720916121eb6121666060860186612618565b90816040519182372060c086013560a0870135608088013561219461218e60e08b018b612618565b90614b74565b936040519889976001600160a01b0360208a019c35168c94919260e096939998979491996001600160a01b0361010088019b168752602087015260408601526060850152608084015260a083015260c08201520152565b03601f19810183528261067b565b5190206040805160208101928352309181019190915246606082015261222281608081016121eb565b51902090565b604051906122358261065f565b60006020838281520152565b6040519061224e82610605565b8160405161225b81610605565b60008152600060208201526000604082015260006060820152606060808201528152612285612228565b6020820152612292612228565b604082015261229f612228565b60608201526080604051916122b38361065f565b600083526122bf612228565b60208401520152565b6122d182611ded565b916122df604051938461067b565b808352601f196122ee82611ded565b0160005b81811061233857505060005b81811061230b5750505090565b8061231c6115ac6001938587611ec0565b6123268287611ef1565b526123318186611ef1565b50016122fe565b602090612343612241565b828288010152016122f2565b908092918237016000815290565b356104f3816103ef565b6040519061237660208361067b565b6000808352366020840137565b9061238d826106fa565b61239a604051918261067b565b82815280926123ab601f19916106fa565b0190602036910137565b906123c891969594939296610550611ae2565b6001600160a01b036123da8680611b73565b6124036020880135916123ec836103ef565b6123f4611b03565b906123fe8161333b565b6128b6565b5050501615612415576104f39461391a565b5050505050612422612367565b6040519061242f82610626565b6000825260006020830152604082015290565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b036124773485613e69565b936040519485521692a2565b1561248a57565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211610d2a57565b156124f357565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561253e57565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561258957565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156125d457565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b903590601e19813603018212156103b9570180359067ffffffffffffffff82116103b9576020019181360383136103b957565b906014116103b95790601490565b90929192836034116103b95783116103b957603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612696575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b604051906126c38261065f565b6003546001600160a01b031682526040516020836126e08361065f565b6004548352600554828401520152565b6126f8612241565b50612701611b03565b9061270b8161333b565b61271582826128b6565b509190926127238385613e91565b61274061273b60e0835101516001600160a01b031690565b613fb9565b9161276e61275a61273b84516001600160a01b0390511690565b91612763612228565b506040810190612618565b90601482106128495761279061278a6127969361273b9361264b565b90612676565b60601c90565b916001600160a01b0386169460808201519660606040840151930151926127bb61069d565b98895260208901526040880152606087015260808601526127da6126b6565b938015158061283e575b61280c575b506127f261069d565b948552602085015260408401526060830152608082015290565b90935061281881613fb9565b6128326128236106cc565b6001600160a01b039093168352565b602082015292386127e9565b5060018114156127e4565b50506127966000613fb9565b1561285c57565b606460405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b90607382029180830460731490151715610d2a57565b90916000915a938051916128ca8382612d40565b6128d381612137565b602083015260408301519561291f6effffffffffffffffffffffffffffff8860c08701511760608701511760808701511760a08701511761010087015117610120870151171115612855565b61294a84610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6129588882868660006130f7565b9761297b6116de61297088516001600160a01b031690565b602089015190613ffc565b612a72575a830311612a1e576060906001600160a01b036129a760e05a9801516001600160a01b031690565b16151580612a16575b6129e3575b6117509360a06104f39794879460809460406117559a015260608601525a9003910135019101525a906120af565b965050928260808360a06104f397612a048b61175599611750996000613c92565b9b9095985093509497505093506129b5565b5060016129b0565b604051631101335b60e11b815280611806600060048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b908060209392818452848401376000828201840152601f01601f1916010190565b6040906001600160a01b036104f395931681528160208201520191612ac6565b6040513d6000823e3d90fd5b908151811015611ed7570160200190565b81601f820112156103b9578051612b3a816106fa565b92612b48604051948561067b565b818452602082840101116103b9576104f3916020808501910161047d565b9190916040818403126103b9578051612b7e816115c5565b92602082015167ffffffffffffffff81116103b9576104f39201612b24565b91926000936001600160a01b036060941691823b156103b957612c1d93600080946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612ae7565b0393f19081612cd7575b5061096b575050612c366120bc565b906004825110612cc857612c52612c4d8351612091565b612383565b60045b8351811015612cb25780612c94612c6e60019387612b13565b517fff000000000000000000000000000000000000000000000000000000000000001690565b612cab612ca083612091565b9160001a9185612b13565b5301612c55565b5061096b91925060208082518301019101612b66565b9050612cd2612367565b600091565b80611d726000612ce69361067b565b38612c27565b61040b33612442565b15612cfc57565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b612dd790612d5d612d508261235d565b6001600160a01b03168452565b60208101356020840152612d8a6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c0840152612dc160c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612618565b908115612e1357612dfb8260e092612df6603461040b97961015612cf5565b61404e565b60a085015260808401526001600160a01b0316910152565b505060a081600060e0819401528260808201520152565b908160209103126103b9575190565b9035601e19823603018112156103b957016020813591019167ffffffffffffffff82116103b95781360383136103b957565b6104f391612e8981612e7c84610400565b6001600160a01b03169052565b60208201356020820152612f1f612f13612eda612ebf612eac6040870187612e39565b6101206040880152610120870191612ac6565b612ecc6060870187612e39565b908683036060880152612ac6565b6080850135608085015260a085013560a085015260c085013560c0850152612f0560e0860186612e39565b9085830360e0870152612ac6565b92610100810190612e39565b91610100818503910152612ac6565b612f4660409295949395606083526060830190612e6b565b9460208201520152565b60a0906104f39392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b92909161301e6020600095855193612fe860e0612fbf87516001600160a01b031690565b96612fda8a8c612fd26040890189612618565b9290916140ac565b01516001600160a01b031690565b91886001600160a01b038194161598896130bc575b85015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f185918161308b575b5061305f5784613042613b45565b906118066040519283926365c8fd4d60e01b845260048401612f50565b93919261306a575050565b613087906001600160a01b03166000526000602052604060002090565b5050565b6130ae91925060203d6020116130b5575b6130a6818361067b565b810190612e2a565b9038613034565b503d61309c565b93506130db876001600160a01b03166000526000602052604060002090565b5480156130ee575084815b949050612ffd565b859082036130e6565b949291939060206131679186519361312e60e061311b87516001600160a01b031690565b96612fda8b8d612fd26040890189612618565b916001600160a01b0360009316159889613234575b84600091015191604051968795869485936306608bdf60e21b855260048501612f2e565b03926001600160a01b03881690f160009181613213575b5061318c5785613042613b45565b94929361319857505050565b6131b5906001600160a01b03166000526000602052604060002090565b918254908183116131c65750039055565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b61322d91925060203d6020116130b5576130a6818361067b565b903861317e565b9250613253866001600160a01b03166000526000602052604060002090565b548781111561326b5750600084815b94915050613143565b846000918903613262565b9160005b828110156133355761328a611b03565b6000908260051b860135605e198736030181121561333157906132c560019493928801916132bb6105638480611b73565b6123fe8380611b73565b50505060208101906132e56132d98361235d565b6001600160a01b031690565b1561332957826133036132f8829461235d565b926040810190612618565b91906133146040518094819361234f565b03925af1506133216120bc565b505b0161327a565b505050613323565b8280fd5b50915050565b61336e9061334c6040820182612618565b9161336681359161335c836103ef565b60e0810190612618565b93909261434d565b80516133775750565b61180690604051918291631101335b60e11b8352600060048401526040602484015260448301906104a0565b9392916133c9906001600160a01b036040931686526060602087015260608601906104a0565b930152565b939490946133da611ae2565b5060009280156136335761341f93506133f1611edc565b509160006134015a8860026146e8565b5a906040519687928392631efc84dd60e31b84528c600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613612575b508294809381156135ef57505061347d909592919394955b85611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846134b588856120af565b106135c5575a6134c488611a22565b1161358c57918695939189959360008c8b6134f76134ee6134e8886135179f611a3f565b60011c90565b809b60026146e8565b835a936040519e8f9586948593631efc84dd60e31b8552600485016133a3565b03925af198891561358757600090819a613561575b501561354c5750505061353e846120a0565b95915b9390929495916134aa565b9396509461355b919750611a31565b94613541565b9061357f929a503d8091833e613577818361067b565b810190612b66565b98903861352c565b612b07565b7fe2c4d0be0000000000000000000000000000000000000000000000000000000060005260048290526024879052604483905260646000fd5b9650965050919550506135e791506135db6106db565b93845215156020840152565b604082015290565b965096505095505050506135e76136046106db565b600081529215156020840152565b90925061362991943d8091833e613577818361067b565b939093913861345f565b50613665915a91846136475a8960026146e8565b5a906040519687928392631efc84dd60e31b84528d600485016133a3565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956136cb575b505083946136b381945a906120af565b9481156135ef57505061347d90959291939495613477565b909194506136e49295503d8091833e613577818361067b565b9390939238806136a3565b939490946136fb611ae2565b50600092801561387c576137229350613712611edc565b509160006134015a8860036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af191821561358757600094859361385b575b508294809381156135ef57505061377f9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846137b788856120af565b106135c5575a6137c688611a22565b1161358c57918695939189959360008c8b6134f76137ea6134e8886137f39f611a3f565b809b60036146e8565b03925af198891561358757600090819a61383d575b50156138285750505061381a846120a0565b95915b9390929495916137ac565b93965094613837919750611a31565b9461381d565b90613853929a503d8091833e613577818361067b565b989038613808565b90925061387291943d8091833e613577818361067b565b9390939138613762565b50613890915a91846136475a8960036146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1938415613587578580956138f6575b505083946138de81945a906120af565b9481156135ef57505061377f90959291939495613477565b9091945061390f9295503d8091833e613577818361067b565b9390939238806138ce565b93949094613926611ae2565b506000928015613aa75761394d935061393d611edc565b509160006134015a8860016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1918215613587576000948593613a86575b508294809381156135ef5750506139aa9095929193949585611a3f565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846139e288856120af565b106135c5575a6139f188611a22565b1161358c57918695939189959360008c8b6134f7613a156134e888613a1e9f611a3f565b809b60016146e8565b03925af198891561358757600090819a613a68575b5015613a5357505050613a45846120a0565b95915b9390929495916139d7565b93965094613a62919750611a31565b94613a48565b90613a7e929a503d8091833e613577818361067b565b989038613a33565b909250613a9d91943d8091833e613577818361067b565b939093913861398d565b50613abb915a91846136475a8960016146e8565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af193841561358757858095613b21575b50508394613b0981945a906120af565b9481156135ef5750506139aa90959291939495613477565b90919450613b3a9295503d8091833e613577818361067b565b939093923880613af9565b3d6108008111613b6a575b604051906020818301016040528082526000602083013e90565b50610800613b50565b634e487b7160e01b600052602160045260246000fd5b60031115613b9357565b613b73565b90949392946003811015613b9357606092613bc09183526080602084015260808301906104a0565b9460408201520152565b9060a06104f3926000815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906104a0565b91906040838203126103b957825167ffffffffffffffff81116103b957602091613c41918501612b24565b92015190565b60a0906104f39392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906104a0565b929390915a92815190613caf60e08301516001600160a01b031690565b91613ccd836001600160a01b03166000526000602052604060002090565b8054898110613e14576001600160a01b0360206080600097958d9795613d2f9d9e8a960390550151970151926040519a8b96879586937f52b7512c00000000000000000000000000000000000000000000000000000000855260048501612f2e565b03931686f19384600091600096613ded575b50613d6c5785613d4f613b45565b906118066040519283926365c8fd4d60e01b845260048401613c47565b9491925a900311613d7a5750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b909550613e0d91503d806000833e613e05818361067b565b810190613c16565b9438613d41565b61180689604051918291631101335b60e11b835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6001600160a01b0316600052600060205260406000208054918201809211610d2a5781905590565b613ea26001600160a01b0391614a85565b9116613f6d57613f1957613ebd6001600160a01b0391614a85565b5016613ec557565b604051631101335b60e11b815280611806600060048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b815280611806600060048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b6084604051631101335b60e11b81526000600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b906001600160a01b03613fca612228565b9216600052600060205263ffffffff6001604060002001546001600160701b038160081c16845260781c166020830152565b6001600160a01b0316600052600160205267ffffffffffffffff61403a8260401c6040600020906001600160c01b0316600052602052604060002090565b9182549261404784611b89565b9055161490565b9091826014116103b957813591836024116103b9576014810135936034116103b95760609290921c92608090811c9260240135901c90565b908160209103126103b957516104f3816103ef565b9160206104f3938181520191612ac6565b929091816140bb575b50505050565b8251516001600160a01b031693843b61430057604084510151602060405180927f570e1a36000000000000000000000000000000000000000000000000000000008252816000816141108a8a6004840161409b565b03926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690f1908115613587576000916142d1575b506001600160a01b03811695861561427c576001600160a01b0316809603614227573b156141da575061279061278a7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d936141a79361264b565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a3388080806140b5565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61180682604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61180683604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6142f3915060203d6020116142f9575b6142eb818361067b565b810190614086565b3861414d565b503d6142e1565b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b50929192159081614402575b506143c5576014811015614372575b50506104f3611edc565b6014116103b9573560601c3b1561438a573880614368565b60405161439860408261067b565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b50506040516143d560408261067b565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b1538614359565b610120813603126103b95761441f6106ea565b9061442981610400565b825260208101356020830152604081013567ffffffffffffffff81116103b957614456903690830161074d565b6040830152606081013567ffffffffffffffff81116103b95761447c903690830161074d565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff81116103b9576144c0903690830161074d565b60e08301526101008101359067ffffffffffffffff82116103b9576144e79136910161074d565b61010082015290565b60041115613b9357565b91926fffffffffffffffffffffffffffffffff196034959481936bffffffffffffffffffffffff199060601b168552166014840152166024820152614548825180936020868501910161047d565b010190565b80516001600160a01b031682526104f391602082015160208201526101006145ce61459e61458c604086015161012060408701526101208601906104a0565b606086015185820360608701526104a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526104a0565b920151906101008184039101526104a0565b60806101a09161012081516145fe8682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015261465260e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b6146be6146b3610200939695949660008452610220602085015261022084019061454d565b9560408301906145e0565b0152565b610200906146be6146b3600094969596858452610220602085015261022084019061454d565b6146f0611b03565b6147026146fd8480611b73565b61440c565b61470b836144f0565b600283146148645761471c836144f0565b600383146147dd575050806147326001926144f0565b1461477c5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b806121eb6147a76147a061479560206104f3960161235d565b936040810190612618565b3691610716565b936040519485937f44403473000000000000000000000000000000000000000000000000000000006020860152602485016133a3565b9150926fffffffffffffffffffffffffffffffff61482461481d614804866104f397611b73565b608001356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526121eb6040519384927fc579f76b000000000000000000000000000000000000000000000000000000006020850152602484016146c2565b9150926121eb906fffffffffffffffffffffffffffffffff19846148ef6148e161489d61489761335c856104f39b611b73565b9061404e565b9291905060609060e08a0195603487515111614925575b5060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b1690602086016144fa565b03601f19810184528361067b565b526040519485937f21e60b370000000000000000000000000000000000000000000000000000000060208601526024850161468e565b61494291925061493b61335c826147a093611b73565b8091612659565b90386148b4565b61012061010082015191015180821461496f5748018082101561496a575090565b905090565b5090565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f608060208301519251946001600160a01b038651169460206001600160a01b0360e089015116970151916040519283526000602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9160208401519351956001600160a01b038751169560206001600160a01b0360e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e6020806001600160a01b03855116940151604051908152a3565b8015614b6b57600060408051614a9a81610626565b828152826020820152015265ffffffffffff8160a01c168015614b5e575b614b4090614b27614acf614ada614acf8660d01c90565b65ffffffffffff1690565b92614aff6001600160a01b03614aee6106db565b971687906001600160a01b03169052565b614b156020870194859065ffffffffffff169052565b65ffffffffffff166040860181905290565b4211908115614b43575b5091516001600160a01b031690565b91565b51614b56915065ffffffffffff16614acf565b421038614b31565b5065ffffffffffff614ab8565b50600090600090565b81604051918237209056fea2646970667358221220866dc43c4870dedc66bf343a4cd2aa2c82443a80802800def6bfb9d32efd32be64736f6c634300081c0033","sourceMap":"938:15710:18:-:0;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;2977:47:3;;2428:10;938:15710:18;2657:22:3;938:15710:18;2419:20:3;2428:10;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;2419:20:3;2457:19;2449:58;2457:19;;;2449:58;:::i;:::-;2517:114;2557:20;;;938:15710:18;;2538:39:3;938:15710:18;;;;;;;;;;;;;;2538:39:3;-1:-1:-1;2538:39:3;2517:114;:::i;:::-;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;-1:-1:-1;;;;;2670:9:3;938:15710:18;;2657:22:3;:::i;:::-;2697:9;2689:40;2697:9;;;2689:40;:::i;:::-;2739:53;-1:-1:-1;;;;;2747:26:3;;;2739:53;:::i;:::-;938:15710:18;;;:::i;:::-;;;;2557:20:3;938:15710:18;2825:137:3;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;2825:137:3;;;938:15710:18;;;;2825:137:3;;;938:15710:18;;2825:137:3;;;938:15710:18;2802:20:3;2428:10;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;2802:20:3;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;938:15710:18;;;;;;2825:137:3;938:15710:18;;;;;;;;;;;;;2428:10:3;;938:15710:18;;;;;;;2977:47:3;;;;938:15710:18;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;938:15710:18;;;;;:::o;:::-;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;10873:221;10788:13;938:15710;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;10648:73;938:15710;;:::i;:::-;10618:19;10601:15;;;;:::i;:::-;10618:19;;;;:::i;:::-;10678:15;;;;:::i;:::-;10711:9;;10648:73;;:::i;:::-;;10788:13;:::i;:::-;10839:15;;;;;:::i;:::-;;:::i;:::-;10873:221;:::i;:::-;938:15710;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;893:36:1;913:10;;-1:-1:-1;938:15710:18;893:19:1;938:15710:18;;;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;893:36:1;:38;938:15710:18;;893:38:1;:::i;:::-;938:15710:18;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2441:15;938:15710;;;2441:15;938:15710;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;938:15710:18;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;279:74:1;938:15710:18;;;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;-1:-1:-1;938:15710:18;279:74:1;938:15710:18;;;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;279:74:1;938:15710:18;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;:::i;:::-;;;4805:10:3;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;-1:-1:-1;938:15710:18;;;;4834:30:3;;;;938:15710:18;;-1:-1:-1;4919:29:3;;;-1:-1:-1;;;;;4919:29:3;;;;;5102:38;4919:29;;:::i;:::-;938:15710:18;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;4805:10:3;;4963:54;;;938:15710:18;5045:47:3;;;;:::i;:::-;;5102:38;:::i;938:15710:18:-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;16640:17:17;;;16695:7;;;;;:::i;:::-;16736:21;;;:::i;:::-;938:15710:18;16713:20:17;;938:15710:18;-1:-1:-1;;;;;16836:17:17;16794:28;;8690:20;8473:28;;;938:15710:18;8504:20:17;;;938:15710:18;1968:4:17;8543:37;;;938:15710:18;1968:4:17;8583:31;;;938:15710:18;1968:4:17;8617:26;;;938:15710:18;1968:4:17;8690:20;;938:15710:18;;8311:416:17;;16794:28;16836:17;;938:15710:18;;16832:188:17;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;16832:188:17;16936:73;;;;:::i;:::-;16883:126;;16832:188;;;;;;938:15710:18;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15097:25;938:15710;;;:::i;:::-;;;;;;:::i;:::-;;15043:33;;;:::i;:::-;;15097:25;:::i;:::-;-1:-1:-1;;938:15710:18;;;;;;;;15140:23;;;;:::i;:::-;;938:15710;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;-1:-1:-1;938:15710:18;507:19:1;938:15710:18;;507:32:1;938:15710:18;;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;507:32:1;938:15710:18;;;;;;;-1:-1:-1;;938:15710:18;507:55:1;938:15710:18;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;938:15710:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6019:27;;;;;:::i;:::-;6060:8;;6056:175;;938:15710;6056:175;938:15710;;6088:22;;;6084:36;;6134:87;;;938:15710;;;;;;-1:-1:-1;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;;:::i;:::-;;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;11563:152;11478:13;938:15710;;;:::i;:::-;;;;;;;;;;;:::i;11478:13::-;11529:15;;;;;:::i;:::-;11563:152;:::i;938:15710::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;938:15710:18;2702:7:14;938:15710:18;;2702:18:14;2698:86;;938:15710:18;;2702:7:14;938:15710:18;;;;:::i;:::-;13746:2;;;:::i;:::-;13870:40;;;;:::i;:::-;2782:1039:17;;3022:9;3089:20;;;938:15710:18;3160:15:17;;3089:20;3160:15;;;;:::i;:::-;3189:16;3219:144;;;;;938:15710:18;;;-1:-1:-1;;;3380:51:17;3393:38;;3535:17;;938:15710:18;3480:74:17;3611:53;3535:17;;;;938:15710:18;;;3480:74:17;;;-1:-1:-1;;;3535:17:17;3480:74;;;938:15710:18;3480:74:17;;;938:15710:18;;;;;;:::i;:::-;;;;;;3480:74:17;938:15710:18;;3480:74:17;;;;;;:::i;:::-;3611:53;:::i;:::-;3572:92;;3376:429;;14011:18:18;14039:25;3089:20:17;938:15710:18;-1:-1:-1;;;;;938:15710:18;;14074:110;;3376:429:17;14230:15:18;;;;;14201:270;14230:15;;;938:15710;;;;:::i;:::-;;;;14201:270;;;938:15710;14201:270;;;938:15710;3089:20:17;14201:270:18;;938:15710;14230:15;14201:270;;938:15710;14201:270;;;938:15710;;;14201:270;;;938:15710;;14201:270;;;;938:15710;2531:1:14;305::0;3068:21:14;938:15710:18;2888:208:14;2531:1;938:15710:18;;;;;;;:::i;14074:110::-;14201:270;14146:27;;;;;;;;;;;;;;;;14230:15;14146:27;;:::i;:::-;14114:59;14074:110;;;;;;;3376:429:17;3742:48;938:15710:18;;;;;;;;:::i;3742:48:17:-;3703:87;;3376:429;;;3219:144;-1:-1:-1;3219:144:17;;;;2698:86:14;2743:30;;-1:-1:-1;;;2743:30:14;;;938:15710:18;;;-1:-1:-1;;938:15710:18;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;3248:10:3;938:15710:18;;;;;3277:20:3;938:15710:18;;;3277:20:3;938:15710:18;;;;;;;3277:25:3;938:15710:18;;3400:46:3;;938:15710:18;;3327:41:3;938:15710:18;3498:19:3;938:15710:18;;;;;;3327:41:3;:::i;:::-;938:15710:18;;;;;;3400:46:3;938:15710:18;3407:15:3;938:15710:18;3400:46:3;:::i;:::-;938:15710:18;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;3498:19:3;938:15710:18;;;;;;;;3248:10:3;;3532:39;;938:15710:18;;;;3532:39:3;938:15710:18;;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;4419:44:3;-1:-1:-1;938:15710:18;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3934:10:3;3888:20;3897:10;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;3888:20:3;3934:10;938:15710:18;4264:14:3;938:15710:18;;;4079:110:3;938:15710:18;;3918:26:3;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;-1:-1:-1;;;;;938:15710:18;;;3918:26:3;3962:9;3954:42;3962:9;;;3954:42;:::i;:::-;938:15710:18;;;;;;;;4006:63:3;4014:21;;;4006:63;:::i;:::-;4121:15;-1:-1:-1;4100:36:3;4079:110;:::i;:::-;938:15710:18;;;;;;;4264:14:3;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;3897:10:3;;4293:50;;;938:15710:18;4371:38:3;;;;:::i;:::-;;4419:44;:::i;938:15710:18:-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;17717:9:17;;17766:17;;17821:7;;;;;:::i;:::-;17862:21;;;:::i;:::-;17839:20;;;938:15710:18;;18078:28:17;;938:15710:18;18139:26:17;18373:70;938:15710:18;18139:26:17;;;;938:15710:18;18139:49:17;18191:20;;;938:15710:18;18139:72:17;18226:37;;;938:15710:18;18139:124:17;18266:31;;;938:15710:18;18139:158:17;18300:20;;;938:15710:18;18139:181:17;18335:28;;;938:15710:18;18139:224:17;18381:33;;18373:70;:::i;:::-;18480:28;;8690:20;8473:28;;;938:15710:18;8504:20:17;;;938:15710:18;1968:4:17;8543:37;;;938:15710:18;1968:4:17;8583:31;;;938:15710:18;1968:4:17;8617:26;;;938:15710:18;1968:4:17;8690:20;;938:15710:18;;8311:416:17;;18480:28;18535:93;;;;;;;;:::i;:::-;938:15710:18;18643:55:17;18644:54;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;17839:20:17;18684:13;;938:15710:18;18644:54:17;;:::i;:::-;18643:55;;938:15710:18;18643:55:17;18639:140;;18826:9;1968:4;;18817:41;18813:138;;18191:20;19024:9;-1:-1:-1;;;;;938:15710:18;19047:17:17;19024:9;19047:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;;19047:31:17;;:62;;;;938:15710:18;19043:219:17;;;938:15710:18;19295:17:17;;18226:37;19535:32;19295:17;18266:31;19536:24;19295:17;938:15710:18;19295:17:17;;19534:40;19295:17;938:15710:18;19295:17:17;;938:15710:18;18191:20:17;19344:23;;938:15710:18;19445:9:17;1968:4;;19457:25;;938:15710:18;1968:4:17;19415:18;;938:15710:18;19551:9:17;19536:24;;:::i;:::-;19535:32;:::i;:::-;19571:3;938:15710:18;;;;19534:40:17;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;19043:219:17;19178:73;;;938:15710:18;19178:73:17;;;;18266:31;19536:24;19178:73;;;;19534:40;19178:73;19535:32;19178:73;18226:37;19178:73;;:::i;:::-;19125:126;;19043:219;;;;;;;;;;;;;19047:62;;;;;;18813:138;938:15710:18;;;-1:-1:-1;;;18885:51:17;;938:15710:18;18885:51:17;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;18885:51:17;;;;18639:140;18721:47;938:15710:18;;;18721:47:17;;;-1:-1:-1;;;18721:47:17;;938:15710:18;18721:47:17;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;;:::i;:::-;;-1:-1:-1;938:15710:18;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;507:47:3;938:15710:18;;507:47:3;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5789:31;938:15710;;;:::i;:::-;;;;;;:::i;:::-;;5789:31;:::i;:::-;-1:-1:-1;;938:15710:18;;;;;;;;5837:27;;;;:::i;:::-;;938:15710;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;9392:5;938:15710;;;;;;;:::o;:::-;;10105:1;938:15710;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;938:15710:18;;-1:-1:-1;938:15710:18;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;938:15710:18;;;;;;;:::o;5523:1160:17:-;;;;;5765:14;;5813:20;;;;938:15710:18;;;6221:19:17;;6217:290;;5523:1160;6570:9;;;;;1968:4;;6582:15;;;938:15710:18;1968:4:17;6618:48;-1:-1:-1;6618:48:17;20395:31;20455:9;20563:14;;20610:26;;;;:::i;:::-;20671:17;938:15710:18;20671:17:17;;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;-1:-1:-1;;;;;938:15710:18;;;;20706:23:17;938:15710:18;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;20702:1013:17;;21750:9;1968:4;;;21882:20;21905:31;21882:20;;;938:15710:18;21905:31:17;;938:15710:18;1968:4:17;21993:15;;;;938:15710:18;;;1968:4:17;;22146:36;;;;22142:274;;20702:1013;938:15710:18;;;;22512:14:17;;;;938:15710:18;;;22544:23:17;;;22540:880;22544:23;;;938:15710:18;;;23083:9:17;938:15710:18;;;;5765:14:17;938:15710:18;:::i;:::-;22882:9:17;1968:4;;938:15710:18;;1968:4:17;938:15710:18;;23001:6:17;;;;;:::i;:::-;23083:9;:::i;:::-;6611:55;5523:1160;:::o;22540:880::-;23395:9;1968:4;;;;;;;;23281:41;1968:4;;23208:40;1968:4;;;23208:40;;:::i;:::-;;938:15710:18;5765:14:17;938:15710:18;:::i;:::-;23395:9:17;:::i;22142:274::-;1968:4;;;19571:3;1968:4;;;2021:2;938:15710:18;;1968:4:17;22142:274;;;;;20702:1013;20818:25;;938:15710:18;;20861:840:17;;20702:1013;;;;;;20861:840;938:15710:18;;;;;;;;:::i;:::-;21064:9:17;21137:31;;;;938:15710:18;21103:160:17;;;;;;938:15710:18;;;;;;;;;;21103:160:17;938:15710:18;;21103:160:17;;;;;;;938:15710:18;21103:160:17;;938:15710:18;21103:160:17;;;;;;:::i;:::-;;;;;;;;20861:840;-1:-1:-1;;21099:486:17;;21408:150;21487:41;;:::i;:::-;938:15710:18;;21408:150:17;;;-1:-1:-1;;;21408:150:17;;21103:160;21408:150;;;:::i;21099:486::-;21651:9;1968:4;;20861:840;;;;;;21103:160;;;;;;:::i;:::-;;;:::i;:::-;;;;;;938:15710:18;;;6217:290:17;-1:-1:-1;938:15710:18;;;378:118:13;-1:-1:-1;;;;;938:15710:18;;;;378:118:13;;;;6341:8:17;6337:160;;6217:290;;;;;;6337:160;1968:4;6391:41;;:::i;:::-;938:15710:18;;6457:25:17;;;;;;378:118:13;6457:25:17;;;1968:4;;;;;;:::i;938:15710:18:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;938:15710:18;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;:::o;:::-;;;;;;;;;;;;;;;:::o;14484:400::-;14637:33;;;:::i;:::-;14686:13;14698:1;14701:14;;;;;;14863;;;14484:400;:::o;14717:3::-;14785:6;;;;;:::i;:::-;938:15710;;14698:1;938:15710;;;;;;:::i;:::-;;;;:::i;:::-;;14698:1;2702:7:14;938:15710:18;;2702:18:14;2698:86;;938:15710:18;14201:270;938:15710;;;;2702:7:14;938:15710:18;;;;:::i;:::-;13746:2;;;;:::i;:::-;13870:40;;;;;:::i;:::-;2782:1039:17;;;;3022:9;3089:20;;;;;938:15710:18;3160:15:17;;3089:20;3160:15;;;;:::i;:::-;3189:16;3219:144;;;;;14717:3:18;938:15710;;-1:-1:-1;;;3380:51:17;3393:38;;3535:17;;3480:74;3535:17;-1:-1:-1;;;3535:17:17;938:15710:18;3611:53:17;3535:17;;;938:15710:18;;;;3480:74:17;;;;;;938:15710:18;3480:74:17;;;938:15710:18;;;;;;:::i;3611:53:17:-;3572:92;;3376:429;14230:15:18;3089:20:17;14230:15:18;;938:15710;;;;:::i;:::-;;;;14201:270;;938:15710;;14201:270;;938:15710;14201:270;;;938:15710;14230:15;14201:270;;938:15710;14201:270;;;938:15710;;;14201:270;;;938:15710;;14201:270;;;;938:15710;2531:1:14;305::0;3068:21:14;938:15710:18;2888:208:14;2531:1;14823:19:18;;;;:::i;:::-;;;;;;:::i;:::-;;938:15710;14686:13;;3376:429:17;3742:48;938:15710:18;;;;;;;;:::i;3742:48:17:-;3703:87;;3376:429;;3219:144;-1:-1:-1;3219:144:17;;;;2698:86:14;2743:30;-1:-1:-1;;;2743:30:14;;;;938:15710:18;-1:-1:-1;;938:15710:18;;;;;;;;:::o;:::-;-1:-1:-1;;938:15710:18;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;938:15710:18;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;6721:180:17;1938:12:4;;;938:15710:18;2342:180:4;1998:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2062:15:4;2342:180;2062:15;;;;;;:::i;:::-;2961:193:0;;1998:15:4;2961:193:0;;;;;2230:14:4;;;938:15710:18;2177:25:4;;;938:15710:18;2115:23:4;;;938:15710:18;2285:39:4;2300:23;;;;2115;2300;:::i;:::-;2285:39;;:::i;:::-;938:15710:18;1998:15:4;938:15710:18;2342:180:4;;;-1:-1:-1;;;;;1938:12:4;2342:180;;823:61;;938:15710:18;2342:180:4;938:15710:18;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2342:180:4;;938:15710:18;;2342:180:4;;;;;;:::i;:::-;938:15710:18;4962:25:4;;1998:15;938:15710:18;;1938:12:4;6838:55:17;;938:15710:18;;;6872:4:17;938:15710:18;;;;;;;6879:13:17;938:15710:18;;;;6838:55:17;938:15710:18;;;;6838:55:17;938:15710:18;6838:55:17;938:15710:18;6828:66:17;;6721:180;:::o;938:15710:18:-;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;;;:::i;:::-;;;;;;;:::o;5175:427::-;938:15710;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;938:15710:18;;;:::i;:::-;;-1:-1:-1;938:15710:18;;;;;;5410:13;;-1:-1:-1;5425:18:18;;;;;;5581:14;;;5175:427;:::o;5445:3::-;5516:10;5497:30;5516:10;938:15710;5516:10;;;;:::i;5497:30::-;5541:19;;;;:::i;:::-;;;;;;:::i;:::-;;938:15710;5410:13;;938:15710;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;12937:15;938:15710;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;12496:945::-;;12824:13;12496:945;;;;;;;938:15710;;:::i;12824:13::-;-1:-1:-1;;;;;12937:15:18;;;;:::i;:::-;13124:40;12979:19;;;938:15710;;;;;:::i;:::-;;;:::i;:::-;13111:2;;;;:::i;:::-;13124:40;:::i;:::-;938:15710;;;;13179:20;13175:98;;13290:144;;;:::i;13175:98::-;13249:12;;;;;;;:::i;:::-;938:15710;;;;;;:::i;:::-;-1:-1:-1;938:15710:18;;-1:-1:-1;12979:19:18;13222:40;;938:15710;;13222:40;;938:15710;13215:47;:::o;1935:179:3:-;2077:30;938:15710:18;-1:-1:-1;;;;;2025:37:3;2052:9;2025:37;;:::i;:::-;938:15710:18;;;;;;;2077:30:3;;1935:179::o;938:15710:18:-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;2507:2;938:15710;;;;2507:2;938:15710;:::o;:::-;;;;;;490:2:4;938:15710:18;;;;;;;490:2:4;938:15710:18;;-1:-1:-1;;938:15710:18;;:::o;:::-;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;-1:-1:-1;938:15710:18:o;:::-;;;;;;;:::i;:::-;2988:14;938:15710;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1698:1620::-;938:15710;;:::i;:::-;;;;:::i;:::-;1879:6;;;;:::i;:::-;2032:47;;;;:::i;:::-;2090:98;;;;;;;;:::i;:::-;2232:42;938:15710;2246:27;:17;;:27;938:15710;-1:-1:-1;;;;;938:15710:18;;;;2232:42;:::i;:::-;2328:17;2441:15;2314:39;2328:24;:17;;-1:-1:-1;;;;;938:15710:18;;;;;2314:39;938:15710;;;:::i;:::-;;2441:15;;;;;:::i;:::-;2488:69;2507:2;2488:21;;2507:2;;2520:23;2528:14;2585:22;2528:14;2512:32;2528:14;;:::i;:::-;2520:23;;:::i;:::-;938:15710;;;;2585:22;938:15710;-1:-1:-1;;;;;938:15710:18;;2746:18;;;;938:15710;2778:17;2899:23;2441:15;2778:17;;938:15710;2899:23;;938:15710;;;;:::i;:::-;;;;2722:211;;;938:15710;2441:15;2722:211;;938:15710;2899:23;2722:211;;938:15710;2746:18;2722:211;;938:15710;;;:::i;:::-;3016:45;;;;:93;;;2488:69;3012:199;;2488:69;938:15710;;;:::i;:::-;;;;2722:211;3227:84;;938:15710;2441:15;3227:84;;938:15710;2899:23;3227:84;;938:15710;2746:18;3227:84;;938:15710;1698:1620;:::o;3012:199::-;3174:25;;;;;;:::i;:::-;3142:58;938:15710;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;;;;3142:58;2722:211;3142:58;;938:15710;3012:199;;;;3016:93;3065:44;2074:4;3065:44;;;3016:93;;2488:69;;;2585:22;-1:-1:-1;2585:22:18;:::i;938:15710::-;;;;:::o;:::-;;;;-1:-1:-1;;;938:15710:18;;;;;;;;;;;;;;;;;;;;19564:3:17;938:15710:18;;;;;;19564:3:17;938:15710:18;;;;;;;:::o;17394:2187:17:-;;;12937:15:18;17717:9:17;;17766:17;;;17821:7;;;;;:::i;:::-;17862:21;;;:::i;:::-;17839:20;;;938:15710:18;18078:28:17;;;938:15710:18;18139:26:17;18373:70;938:15710:18;18139:26:17;;;;938:15710:18;18139:49:17;18191:20;;;938:15710:18;18139:72:17;18226:37;;;938:15710:18;18139:124:17;18266:31;;;938:15710:18;18139:158:17;18300:20;;;938:15710:18;18139:181:17;18335:28;;;938:15710:18;18139:224:17;18381:33;;18373:70;:::i;:::-;18480:28;;8690:20;8473:28;;;938:15710:18;8504:20:17;;;938:15710:18;1968:4:17;8543:37;;;938:15710:18;1968:4:17;8583:31;;;938:15710:18;1968:4:17;8617:26;;;938:15710:18;1968:4:17;8690:20;;938:15710:18;;8311:416:17;;18480:28;18535:93;;;;;12937:15:18;18535:93:17;:::i;:::-;938:15710:18;18643:55:17;18644:54;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;17839:20:17;18684:13;;938:15710:18;18644:54:17;;:::i;18643:55::-;18639:140;;18826:9;1968:4;;18817:41;18813:138;;18191:20;19024:9;-1:-1:-1;;;;;938:15710:18;19047:17:17;19024:9;19047:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;;19047:31:17;;:62;;;17394:2187;19043:219;;17394:2187;19536:24;19295:17;18266:31;19534:40;19295:17;;;;18226:37;19295:17;18078:28;19535:32;19295:17;;938:15710:18;18191:20:17;19344:23;;938:15710:18;19445:9:17;1968:4;;19457:25;;938:15710:18;1968:4:17;19415:18;;938:15710:18;19551:9:17;19536:24;;:::i;19043:219::-;19178:73;;;;;18226:37;19178:73;18266:31;19534:40;19178:73;;;19535:32;19178:73;19536:24;19178:73;12937:15:18;19178:73:17;:::i;:::-;19125:126;;19043:219;;;;;;;;;;;;;19047:62;;13159:4:18;19047:62:17;;18813:138;18078:28;938:15710:18;-1:-1:-1;;;18885:51:17;;;;12937:15:18;18885:51:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;18639:140:17;18078:28;938:15710:18;-1:-1:-1;;;18721:47:17;;;;12937:15:18;18721:47:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;-1:-1:-1;;938:15710:18;;;;:::o;:::-;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;6331:742::-;;;938:15710;6458:19;-1:-1:-1;;;;;938:15710:18;;;6497:83;;;;;;;938:15710;;;;;;6497:83;;;;;;938:15710;6497:83;;-1:-1:-1;;;;;6557:12:18;938:15710;6497:83;;;;:::i;:::-;;;;;;;;6331:742;-1:-1:-1;6493:574:18;;6592:475;;;;:::i;:::-;938:15710;6497:83;938:15710;;6638:17;6634:164;;6838:28;6848:17;938:15710;;6848:17;:::i;:::-;6838:28;:::i;:::-;6497:83;6919:3;938:15710;;6900:17;;;;;6962:9;;;938:15710;6962:9;;;:::i;:::-;938:15710;;;;;6962:9;6942:29;6953:5;;;:::i;:::-;6942:29;938:15710;6942:29;;;;:::i;:::-;;938:15710;6885:13;;6900:17;;7019:37;6900:17;;;7019:37;938:15710;;;7019:37;;;;;;:::i;6634:164::-;6770:12;;;;:::i;:::-;938:15710;;6755:28::o;6497:83::-;;;938:15710;6497:83;;;:::i;:::-;;;;1279:65:3;1326:10;;;:::i;490:2:4:-;;;;:::o;:::-;;938:15710:18;;-1:-1:-1;;;490:2:4;;;;;;;;;;;938:15710:18;490:2:4;938:15710:18;;;490:2:4;;7091:1077:17;7613:23;7091:1077;7210:30;7227:13;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;;7210:30:17;7266:12;;;938:15710:18;7266:12:17;7250:13;;938:15710:18;7343:53:17;7372:23;;;938:15710:18;2535:183:4;938:15710:18;;;;;;2535:183:4;;7343:53:17;7319:20;;;938:15710:18;7289:28:17;;;938:15710:18;7435:25:17;;;938:15710:18;7406:26:17;;;938:15710:18;7525:44:17;7406:26;7554:14;;938:15710:18;2535:183:4;938:15710:18;;;;;;2535:183:4;;7525:44:17;7501:20;;;938:15710:18;7471:28:17;;;938:15710:18;7613:23:17;;;;;:::i;:::-;7650:27;;;;;7924:62;7701:65;7613:23;7701:65;7693:107;490:2:4;7814:172:17;7701:65;;;;7693:107;:::i;:::-;7924:62;:::i;:::-;7435:25;7873:31;;938:15710:18;7372:23:17;7834:37;;938:15710:18;-1:-1:-1;;;;;938:15710:18;7815:17:17;;938:15710:18;;7646:516:17;8017:17;;7435:25;8017:17;938:15710:18;7613:23:17;8017:17;;;938:15710:18;8061:37:17;7372:23;8061:37;;938:15710:18;8116:31:17;938:15710:18;7091:1077:17:o;938:15710:18:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10418:1498:17:-;;;;11170:102;11233:17;-1:-1:-1;10649:22:17;10737:14;;938:15710:18;;10895:17:17;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;10849:11:17;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;10895:17;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;10926:31:17;;-1:-1:-1;;;;;10926:31:17;938:15710:18;;10975:23:17;10971:182;;;;10418:1498;11233:17;;938:15710:18;;10849:11:17;938:15710:18;11170:102:17;;;;;;;-1:-1:-1;;;11170:102:17;;;;;;:::i;:::-;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;11170:102:17;;;;;;;10418:1498;-1:-1:-1;11166:352:17;;11461:41;;;:::i;:::-;938:15710:18;11416:87:17;10849:11;938:15710:18;11416:87:17;;;-1:-1:-1;;;11416:87:17;;11170:102;11416:87;;;:::i;11166:352::-;11337:32;;;11531:369;;10418:1498;;:::o;11531:369::-;11611:16;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;11611:16:17;-1:-1:-1;;10418:1498:17:o;11170:102::-;;;;;11233:17;11170:102;11233:17;11170:102;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;10971:182;1241:17:3;;;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;1241:17:3;938:15710:18;11089:21:17;;;;:49;;;;10971:182;;;;;11089:49;1968:4;;;;11089:49;;10418:1498;;;;;;11233:17;11170:102;10418:1498;10737:14;;938:15710:18;;10895:17:17;938:15710:18;;;-1:-1:-1;;;;;938:15710:18;;;;10849:11:17;;;;;;;;;;:::i;938:15710:18:-;10926:31:17;-1:-1:-1;;;;;938:15710:18;;;10975:23:17;10971:182;;;;10418:1498;11233:17;938:15710:18;11233:17:17;;938:15710:18;;10849:11:17;938:15710:18;11170:102:17;;;;;;;-1:-1:-1;;;11170:102:17;;;;;;:::i;:::-;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;11170:102:17;;938:15710:18;;11170:102:17;;;10418:1498;-1:-1:-1;11166:352:17;;11461:41;;;:::i;11166:352::-;11337:32;;;11531:369;;10418:1498;;;:::o;11531:369::-;11611:16;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;11611:16:17;938:15710:18;;;11703:25:17;;;;11699:123;;1968:4;;938:15710:18;;10418:1498:17:o;11699:123::-;10849:11;938:15710:18;;-1:-1:-1;;;11759:44:17;;11170:102;11759:44;;938:15710:18;;;;;;;;;;;;;;;;;;;;18885:51:17;11170:102;;;;;11233:17;11170:102;11233:17;11170:102;;;;;;;:::i;:::-;;;;;10971:182;1241:17:3;;;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;1241:17:3;938:15710:18;11089:21:17;;;;;;:49;938:15710:18;11089:49:17;;;10971:182;;;;;;11089:49;1968:4;938:15710:18;1968:4:17;;;11089:49;;7079:602:18;;7273:1;7302:3;7276:24;;;;;;938:15710;;:::i;:::-;7273:1;938:15710;;;;;;;;;;;;;;;;;;;7475:51;938:15710;;;;;;7453:7;;;;;;:::i;:::-;7498;;;;:::i;7475:51::-;7545:11;;;;;;;:25;:11;;;:::i;:::-;-1:-1:-1;;;;;938:15710:18;;;7545:25;;7541:72;;7627:11;7644:19;7627:11;;;;:::i;:::-;7644:19;;;;;;:::i;:::-;938:15710;;;7644:19;938:15710;;;;;;:::i;:::-;7627:37;;;;;;;:::i;:::-;;7261:13;938:15710;7261:13;;7541:72;7590:8;;;;;938:15710;;;;7276:24;;;;;7079:602::o;15176:332::-;15314:84;15176:332;15342:15;;;;;;:::i;:::-;938:15710;15374:23;938:15710;;;;;;:::i;:::-;15374:23;;;;;:::i;:::-;15314:84;;;;:::i;:::-;938:15710;;15408:94;;15176:332;:::o;15408:94::-;938:15710;;15342:15;938:15710;15466:25;;;-1:-1:-1;;;15466:25:18;;-1:-1:-1;15466:25:18;;;938:15710;15342:15;938:15710;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;7687:2525::-;;;;;938:15710;;:::i;:::-;-1:-1:-1;;;8066:17:18;;;;8330:57;938:15710;;;;:::i;:::-;;8274:9;-1:-1:-1;8227:57:18;8274:9;8227:57;10907:46;8227:57;:::i;:::-;8377:9;938:15710;;;8330:57;;;;;-1:-1:-1;;;8330:57:18;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;8330:12:18;938:15710;8330:57;;;;;;;-1:-1:-1;;;8330:57:18;;;8062:1101;8298:89;;;;8467:14;;;8463:108;;8062:1101;;9190:21;8062:1101;;;;;;;;9190:21;;:::i;:::-;9221:27;-1:-1:-1;;;;;9681:12:18;938:15710;9259:872;;9267:15;;;;;:::i;:::-;9266:35;;;9371:9;9383:14;;;:::i;:::-;-1:-1:-1;9367:118:18;;9517:15;;;;;;;;-1:-1:-1;9517:15:18;;9575:54;9516:21;9517:15;;9681:57;9517:15;;:::i;:::-;938:15710;;;;9516:21;9575:54;;10907:46;9575:54;:::i;:::-;9728:9;;938:15710;;;9681:57;;;;;;;-1:-1:-1;;;9681:57:18;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;9681:57:18;;;9259:872;-1:-1:-1;9753:368:18;;;9880:19;;;9926:10;9880:19;9926:10;:::i;:::-;9954:21;9753:368;;9259:872;;;;;;;;9753:368;10096:10;;;;;;;;;:::i;:::-;9753:368;;;9681:57;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;9367:118::-;9424:46;-1:-1:-1;9424:46:18;9681:57;938:15710;;;;;;;;;;;;-1:-1:-1;9424:46:18;9266:35;;;;;;;;;;10148:57;9266:35;;938:15710;;:::i;:::-;;;;;;10148:57;;;938:15710;;10148:57;938:15710;10148:57;;938:15710;7687:2525;:::o;8463:108::-;938:15710;;;;;;;;;;8508:48;938:15710;;:::i;:::-;-1:-1:-1;938:15710:18;;;;;8508:48;;;938:15710;;8330:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8062:1101;8716:9;8865:57;8716:9;;8809;;8762:57;8809:9;8762:57;10907:46;8762:57;:::i;:::-;8912:9;938:15710;;;8865:57;;;;;-1:-1:-1;;;8865:57:18;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;8865:12:18;938:15710;8865:57;;;;;;;;-1:-1:-1;8865:57:18;;;8062:1101;8833:89;;;;8945:24;8833:89;8960:9;;8945:24;;:::i;:::-;9049:14;;;9045:108;;8062:1101;;9190:21;8062:1101;;;;;;;;;8865:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;7687:2525;;;;;938:15710;;:::i;:::-;-1:-1:-1;;;8066:17:18;;;;8330:57;938:15710;;;;:::i;:::-;;8274:9;-1:-1:-1;8227:57:18;8274:9;8227:57;11597:37;8227:57;:::i;8330:::-;;:12;;-1:-1:-1;;;;;8330:12:18;938:15710;8330:57;;;;;;;-1:-1:-1;;;8330:57:18;;;8062:1101;8298:89;;;;8467:14;;;8463:108;;8062:1101;;9190:21;8062:1101;;;;;;;9190:21;;:::i;:::-;9221:27;-1:-1:-1;;;;;9681:12:18;938:15710;9259:872;;9267:15;;;;;:::i;:::-;9266:35;;;9371:9;9383:14;;;:::i;:::-;-1:-1:-1;9367:118:18;;9517:15;;;;;;;;-1:-1:-1;9517:15:18;;9575:54;9516:21;9517:15;;9681:57;9517:15;;:::i;9516:21::-;9575:54;;11597:37;9575:54;:::i;9681:57::-;;;;;;;;;;-1:-1:-1;;;9681:57:18;;;9259:872;-1:-1:-1;9753:368:18;;;9880:19;;;9926:10;9880:19;9926:10;:::i;:::-;9954:21;9753:368;;9259:872;;;;;;;;9753:368;10096:10;;;;;;;;;:::i;:::-;9753:368;;;9681:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;8330;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8062:1101;8716:9;8865:57;8716:9;;8809;;8762:57;8809:9;8762:57;11597:37;8762:57;:::i;8865:::-;;:12;;-1:-1:-1;;;;;8865:12:18;938:15710;8865:57;;;;;;;;-1:-1:-1;8865:57:18;;;8062:1101;8833:89;;;;8945:24;8833:89;8960:9;;8945:24;;:::i;:::-;9049:14;;;9045:108;;8062:1101;;9190:21;8062:1101;;;;;;;;;8865:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;7687:2525;;;;;938:15710;;:::i;:::-;-1:-1:-1;;;8066:17:18;;;;8330:57;938:15710;;;;:::i;:::-;;8274:9;-1:-1:-1;8227:57:18;8274:9;8227:57;13159:4;8227:57;:::i;8330:::-;;:12;;-1:-1:-1;;;;;8330:12:18;938:15710;8330:57;;;;;;;-1:-1:-1;;;8330:57:18;;;8062:1101;8298:89;;;;8467:14;;;8463:108;;8062:1101;;9190:21;8062:1101;;;;;;;9190:21;;:::i;:::-;9221:27;-1:-1:-1;;;;;9681:12:18;938:15710;9259:872;;9267:15;;;;;:::i;:::-;9266:35;;;9371:9;9383:14;;;:::i;:::-;-1:-1:-1;9367:118:18;;9517:15;;;;;;;;-1:-1:-1;9517:15:18;;9575:54;9516:21;9517:15;;9681:57;9517:15;;:::i;9516:21::-;9575:54;;13159:4;9575:54;:::i;9681:57::-;;;;;;;;;;-1:-1:-1;;;9681:57:18;;;9259:872;-1:-1:-1;9753:368:18;;;9880:19;;;9926:10;9880:19;9926:10;:::i;:::-;9954:21;9753:368;;9259:872;;;;;;;;9753:368;10096:10;;;;;;;;;:::i;:::-;9753:368;;;9681:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;8330;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8062:1101;8716:9;8865:57;8716:9;;8809;;8762:57;8809:9;8762:57;13159:4;8762:57;:::i;8865:::-;;:12;;-1:-1:-1;;;;;8865:12:18;938:15710;8865:57;;;;;;;;-1:-1:-1;8865:57:18;;;8062:1101;8833:89;;;;8945:24;8833:89;8960:9;;8945:24;;:::i;:::-;9049:14;;;9045:108;;8062:1101;;9190:21;8062:1101;;;;;;;;;8865:57;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1107:452:13;1204:349;1968:4:17;1204:349:13;;;;1107:452;1204:349;;;;;;;;;;;;;;;;;;1107:452;:::o;1204:349::-;;1968:4:17;1204:349:13;;938:15710:18;-1:-1:-1;;;938:15710:18;;;;;;;;;;-1:-1:-1;938:15710:18;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12481:1447:17:-;;;;;12773:9;12826:14;;;12874:17;938:15710:18;12874:17:17;;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;12941:19:17;;;-1:-1:-1;;;;;938:15710:18;2419:8:3;938:15710:18;2419:8:3;938:15710:18;;;2419:8:3;938:15710:18;;;12941:19:17;938:15710:18;;13031:25:17;;;13027:122;;-1:-1:-1;;;;;13409:17:17;13258:37;938:15710:18;1968:4:17;;;;;13313:144;1968:4;;;;;938:15710:18;;13258:37:17;938:15710:18;13409:17:17;;938:15710:18;;;;13313:144:17;;;;;;;938:15710:18;13313:144:17;;;;;;:::i;:::-;;938:15710:18;;13313:144:17;;;;938:15710:18;;;13313:144:17;;;12481:1447;-1:-1:-1;13309:441:17;;13693:41;;;:::i;:::-;938:15710:18;13648:87:17;938:15710:18;;13648:87:17;;;-1:-1:-1;;;13648:87:17;;13313:144;13648:87;;;:::i;13309:441::-;13533:18;;;13776:9;1968:4;;13767:43;13763:149;;12481:1447;:::o;13763:149::-;938:15710:18;;;-1:-1:-1;;;13837:60:17;;13313:144;13837:60;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;18885:51:17;13313:144;;;;;;;;;938:15710:18;13313:144:17;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;13027:122;13083:51;938:15710:18;;;13083:51:17;;;-1:-1:-1;;;13083:51:17;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;1559:259:3;-1:-1:-1;;;;;938:15710:18;1683:8:3;938:15710:18;1683:8:3;938:15710:18;;;1683:8:3;938:15710:18;;;;;;;;;;;;;;1559:259:3;:::o;14301:1187:17:-;14561:34;-1:-1:-1;;;;;14301:1187:17;14561:34;:::i;:::-;938:15710:18;;14605:111:17;;14725:96;;15123:43;-1:-1:-1;;;;;15123:43:17;;:::i;:::-;938:15710:18;;15176:105:17;;14301:1187::o;15176:105::-;938:15710:18;;-1:-1:-1;;;15229:41:17;;;;-1:-1:-1;15229:41:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;14725:96:17;938:15710:18;;-1:-1:-1;;;14766:44:17;;;;-1:-1:-1;14766:44:17;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;14605:111:17;14664:41;938:15710:18;;-1:-1:-1;;;14664:41:17;;-1:-1:-1;14664:41:17;;;938:15710:18;;;;;;;;;;;;;;;;14664:41:17;856:262:3;;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;997:8:3;938:15710:18;997:8:3;938:15710:18;;;1034:17:3;938:15710:18;997:8:3;938:15710:18;1034:17:3;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;1061:20:3;;938:15710:18;856:262:3:o;1187:234:1:-;-1:-1:-1;;;;;938:15710:18;-1:-1:-1;938:15710:18;1373:19:1;938:15710:18;;;1373:32:1;938:15710:18;1317:2:1;938:15710:18;1317:2:1;-1:-1:-1;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;1373:32:1;938:15710:18;;;1373:34:1;;;;:::i;:::-;938:15710:18;;;1373:41:1;1187:234;:::o;4234:507:4:-;;;938:15710:18;372:2:4;938:15710:18;;;;;;;434:2:4;938:15710:18;;;372:2:4;938:15710:18;;434:2:4;938:15710:18;490:2:4;938:15710:18;;;;;;;;;;;;;;434:2:4;938:15710:18;434:2:4;938:15710:18;;;4234:507:4:o;938:15710:18:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;8981:1012:17:-;;;;9103:20;9099:888;;8981:1012;;;;;:::o;9099:888::-;9156:14;;938:15710:18;-1:-1:-1;;;;;938:15710:18;9195:18:17;;;9191:121;;9377:35;:14;;:35;938:15710:18;9343:80:17;9377:35;938:15710:18;9343:80:17;;938:15710:18;9343:80:17;;;9122:1;9343:80;;;;;;;;:::i;:::-;;1525:14;-1:-1:-1;;;;;1525:14:17;938:15710:18;9343:80:17;;;;;;;9122:1;9343:80;;;9099:888;938:15710:18;-1:-1:-1;;;;;938:15710:18;;9441:21:17;;;9437:115;;-1:-1:-1;;;;;938:15710:18;9569:17:17;;;9565:116;;9698:19;:24;9694:123;;9864:14;9856:23;9864:14;9899:77;9864:14;9848:32;9864:14;;:::i;9848:32::-;9343:80;9915:17;;;938:15710:18;9951:14:17;;938:15710:18;9951:24:17;938:15710:18;9377:35:17;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;9377:35:17;9899:77;9099:888;;;;;;9694:123;9377:35;938:15710:18;;-1:-1:-1;;;9749:53:17;;9343:80;9749:53;;938:15710:18;;;;;;;;;;;;;;;;;;;;18885:51:17;9565:116;9613:53;938:15710:18;9377:35:17;938:15710:18;9613:53:17;;;-1:-1:-1;;;9613:53:17;;9343:80;9613:53;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;9437:115:17;9489:48;938:15710:18;9377:35:17;938:15710:18;9489:48:17;;;-1:-1:-1;;;9489:48:17;;9343:80;9489:48;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;9343:80:17;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;9191:121;938:15710:18;;;-1:-1:-1;;;9245:52:17;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;18885:51:17;15905:741:18;;;;;16096:20;:47;;;;15905:741;16092:183;;;16315:2;16288:29;;;16284:310;;15905:741;938:15710;;;;:::i;16284:310::-;16315:2;938:15710;;;;;;16411:21;:26;16407:177;;16284:310;;;;16407:177;938:15710;;;;;;:::i;:::-;;;;;;;;;16531:38;:::o;16092:183::-;938:15710;;;;;;;;:::i;:::-;;;;;;;;;16228:36;:::o;16096:47::-;16120:18;;;:23;16096:47;;;938:15710;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;938:15710:18;;;:::o;:::-;;;-1:-1:-1;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;938:15710:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;938:15710:18;;;;;;;;;;;;;;;;;:::i;3324:1845::-;938:15710;;:::i;:::-;3543:47;3575:15;;;;:::i;:::-;3543:47;:::i;:::-;938:15710;;;:::i;:::-;3613:46;3605:54;;3601:843;;938:15710;;;:::i;:::-;4466:37;4458:45;;4454:382;;938:15710;;;;4858:29;938:15710;;:::i;:::-;4850:37;4846:284;;938:15710;;-1:-1:-1;;;5140:22:18;;938:15710;5140:22;;;938:15710;;;;;;;;;;;;;18885:51:17;4846:284:18;4920:19;5031:88;938:15710;4983:27;4920:19;;5031:88;4920:19;;;:::i;:::-;4983:27;;;;;;:::i;:::-;938:15710;;;:::i;:::-;;4983:27;938:15710;5031:88;;;938:15710;4920:19;5031:88;;;;;;;:::i;4454:382::-;4542:15;;;938:15710;4628:19;4542:36;:15;;4746:79;4542:15;;:::i;:::-;3718:23:4;;938:15710:18;;;;3587:162:4;4542:36:18;4628:19;938:15710;;;;4628:19;938:15710;;4627:45;4644:3;4687:19;;938:15710;4746:79;938:15710;;4746:79;;;938:15710;4746:79;;;;;;;;:::i;3601:843::-;3783:15;;;4355:78;3783:15;-1:-1:-1;;3783:15:18;4234:99;;3738:78;3783:32;:15;;4355:78;3783:15;;:::i;:32::-;3738:78;;:::i;:::-;3865:26;;;;938:15710;3909:19;3783:32;3909:19;;;490:2:4;3909:19:18;;938:15710;3909:67;3905:195;;3601:843;938:15710;;;;;;;;;;-1:-1:-1;;938:15710:18;;;;4234:99;;;;;:::i;:::-;;938:15710;;4234:99;;;;;;:::i;:::-;4196:137;938:15710;;4355:78;;;938:15710;4234:99;4355:78;;;;;;;:::i;3905:195::-;938:15710;4012:15;;;:32;:15;;:73;:15;;:::i;:32::-;:73;;;:::i;938:15710::-;3905:195;;;;23680:517:17;23890:28;23825:20;;;938:15710:18;23890:28:17;;938:15710:18;23936:36:17;;;23932:173;;24166:13;1968:4;3338:5:0;;;;;;:13;23680:517:17;:::o;3338:13:0:-;;;23680:517:17;:::o;23932:173::-;24071:19;;:::o;3827:410::-;;;;3993:237;938:15710:18;4025:17:17;;;938:15710:18;4056:14:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;4091:24:17;4025:17;-1:-1:-1;;;;;4091:24:17;;;938:15710:18;;4129:20:17;;938:15710:18;;;;;;;;4025:17:17;938:15710:18;;;;;;;;;;;3993:237:17;3827:410::o;:::-;;938:15710:18;3993:237:17;3827:410;4025:17;;;938:15710:18;4056:14:17;;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;4091:24:17;4025:17;-1:-1:-1;;;;;4091:24:17;;;938:15710:18;;4129:20:17;;938:15710:18;;;;;;;;;4025:17:17;938:15710:18;;;;;;;;;;;3993:237:17;3827:410::o;4243:182::-;4355:17;;;938:15710:18;4374:14:17;;938:15710:18;4328:90:17;4355:17;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;4397:20:17;;938:15710:18;;;;;;4328:90:17;4243:182::o;15818:500::-;15976:19;;15972:76;;15994:1;938:15710:18;;;;;;:::i;:::-;;;;;;;;;;;;;1582:3:0;938:15710:18;;1596:15:0;;1592:67;;15818:500:17;938:15710:18;1691:28:0;16203:33:17;938:15710:18;1684:36:0;1691:28;;938:15710:18;;;;1691:28:0;938:15710:18;;;;1684:36:0;938:15710:18;1733:50:0;-1:-1:-1;;;;;938:15710:18;;:::i;:::-;;;1733:50:0;938:15710:18;-1:-1:-1;;;;;938:15710:18;;;;1733:50:0;;938:15710:18;1733:50:0;;;;938:15710:18;;;;;;1733:50:0;938:15710:18;;;1733:50:0;;938:15710:18;;;;;16203:33:17;:15;:33;:70;;;;;15818:500;16186:87;938:15710:18;;-1:-1:-1;;;;;938:15710:18;;;;15818:500:17;:::o;16203:70::-;938:15710:18;16240:33:17;;-1:-1:-1;938:15710:18;;;;16240:33:17;16203:15;16240:33;16203:70;;;1592:67:0;-1:-1:-1;938:15710:18;1592:67:0;;15972:76:17;16011:26;15994:1;16011:26;15994:1;16011:26;:::o;2879:281:0:-;2961:193;;;;;;;2879:281;:::o","linkReferences":{},"immutableReferences":{"1745":[{"start":16668,"length":32}],"3320":[{"start":11252,"length":32},{"start":13356,"length":32},{"start":13448,"length":32},{"start":13938,"length":32},{"start":14127,"length":32},{"start":14218,"length":32},{"start":14493,"length":32},{"start":14682,"length":32},{"start":14773,"length":32},{"start":15048,"length":32}]}},"methodIdentifiers":{"_paymasterValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))":"21e60b37","_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":"c579f76b","addStake(uint32)":"0396cb60","balanceOf(address)":"70a08231","binarySearchCallGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)":"7472949c","binarySearchPaymasterVerificationGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)":"03d1dcaf","binarySearchVerificationGasLimit(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)[],((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes),address,uint256,uint256,uint256)":"76ad6123","depositTo(address)":"b760faf9","deposits(address)":"fc7e286d","getDepositInfo(address)":"5287ce12","getNonce(address,uint192)":"35567e1a","getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"22cdde4c","incrementNonce(uint192)":"0bd28e3b","innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":"0da82661","nonceSequenceNumber(address,uint192)":"1b2e01b8","simulateCall(address,bytes,uint256)":"f7e426e8","simulateCallAndRevert(address,bytes,uint256)":"44403473","simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)":"97b2dcb9","simulateHandleOpBulk((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])":"0dbfc6bd","simulateHandleOpLast((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])":"263934db","simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"c3bce009","simulateValidationBulk((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])":"30ec25d1","simulateValidationLast((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[])":"fe2171cb","unlockStake()":"bb9fe6bf","withdrawStake(address)":"c23a5cea","withdrawTo(address,uint256)":"205c2878"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"CallPhaseReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"inner\",\"type\":\"bytes\"}],\"name\":\"FailedOpWithRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderAddressResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureValidationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"name\":\"SimulationOutOfGas\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingGas\",\"type\":\"uint256\"}],\"name\":\"innerCallResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"AccountDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDeposit\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"PostOpRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureAggregatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"}],\"name\":\"StakeUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasUsed\",\"type\":\"uint256\"}],\"name\":\"UserOperationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"UserOperationPrefundTooLow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"UserOperationRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_paymasterValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"validatePaymasterPrepayment\",\"type\":\"bool\"}],\"name\":\"_validatePrepayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct SimulationArgs\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGasLimit\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.TargetCallResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"getUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"opInfo\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preGas\",\"type\":\"uint256\"}],\"name\":\"innerHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"name\":\"nonceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCallAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"simulateHandleOpBulk\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"ops\",\"type\":\"tuple[]\"}],\"name\":\"simulateHandleOpLast\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"}],\"name\":\"simulateValidationBulk\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"}],\"name\":\"simulateValidationLast\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity.\"}}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"details\":\"note that inner is truncated to 2048 bytes\",\"params\":{\"inner\":\"- data from inner cought revert reason\",\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. see FailedOp(uint256,string), above\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SignatureValidationFailed(address)\":[{\"params\":{\"aggregator\":\"The aggregator that failed to verify the signature\"}}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"params\":{\"factory\":\"- The factory used to deploy this account (in the initCode)\",\"paymaster\":\"- The paymaster used by this UserOp\",\"sender\":\"- The account that is deployed\",\"userOpHash\":\"- The userOp that deployed this account. UserOperationEvent will follow.\"}},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"SignatureAggregatorChanged(address)\":{\"params\":{\"aggregator\":\"- The aggregator used for the following UserOperationEvents.\"}},\"UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)\":{\"params\":{\"actualGasCost\":\"- Actual amount paid (by account or paymaster) for this UserOperation.\",\"actualGasUsed\":\"- Total gas used by this UserOperation (including preVerification, creation, validation and execution).\",\"nonce\":\"- The nonce value from the request.\",\"paymaster\":\"- If non-null, the paymaster that pays for this request.\",\"sender\":\"- The account that generates this request.\",\"success\":\"- True if the sender transaction succeeded, false if reverted.\",\"userOpHash\":\"- Unique identifier for the request (hash its entire content, except signature).\"}},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}}},\"kind\":\"dev\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"params\":{\"opIndex\":\"- The index of this userOp into the \\\"opInfos\\\" array.\",\"userOp\":\"- The userOp to validate.\"}},\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"The new lock duration before the deposit can be withdrawn.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"_0\":\"- The deposit (for gas payment) of the account.\"}},\"depositTo(address)\":{\"params\":{\"account\":\"- The account to add to.\"}},\"getDepositInfo(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"info\":\" - Full deposit information of given account.\"}},\"getNonce(address,uint192)\":{\"params\":{\"key\":\"the high 192 bit of the nonce\",\"sender\":\"the account address\"},\"returns\":{\"nonce\":\"a full nonce to pass for next UserOp with this sender.\"}},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"params\":{\"userOp\":\"- The user operation to generate the request ID for.\"},\"returns\":{\"_0\":\"hash the hash of this UserOperation\"}},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"params\":{\"callData\":\"- The callData to execute.\",\"context\":\"- The context bytes.\",\"opInfo\":\"- The UserOpInfo struct.\"},\"returns\":{\"actualGasCost\":\"- the actual cost in eth this UserOperation paid for gas\"}},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"params\":{\"op\":\"The UserOperation to simulate.\"},\"returns\":{\"_0\":\"the execution result structure\"}},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"details\":\"The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.\",\"params\":{\"userOp\":\"- The user operation to validate.\"},\"returns\":{\"_0\":\"the validation result structure\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\",\"withdrawAmount\":\"- The amount to withdraw.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"notice\":\"A custom revert error of handleOps, to identify the offending op. Should be caught in off-chain handleOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts. NOTE: If simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"notice\":\"A custom revert error of handleOps, to report a revert by account or paymaster.\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"Error case when a signature aggregator fails to verify the aggregated signature it had created.\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"Account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"An event emitted by handleOps(), before starting the execution loop. Any event emitted before this event, is part of the validation.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation Paymaster's \\\"postOp\\\" call reverted with non-zero length.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"Signature aggregator used by the following UserOperationEvents within this bundle.\"},\"UserOperationEvent(bytes32,address,address,uint256,bool,uint256,uint256)\":{\"notice\":\"An event emitted after each successful request.\"},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"notice\":\"UserOp consumed more than prefund. The UserOperation is reverted, and no refund is made.\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length.\"}},\"kind\":\"user\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"notice\":\"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)\"},\"addStake(uint32)\":{\"notice\":\"Add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"Get account balance.\"},\"constructor\":{\"notice\":\"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures\"},\"depositTo(address)\":{\"notice\":\"Add to the deposit of the given account.\"},\"deposits(address)\":{\"notice\":\"maps paymaster to their deposits and stakes\"},\"getDepositInfo(address)\":{\"notice\":\"Get deposit info.\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid.\"},\"incrementNonce(uint192)\":{\"notice\":\"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \\\"initialize\\\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.\"},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"notice\":\"Inner function to handle a UserOperation. Must be declared \\\"external\\\" to open a call context, but it can only be called by handleOps.\"},\"nonceSequenceNumber(address,uint192)\":{\"notice\":\"The next valid sequence number for a given nonce key.\"},\"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"notice\":\"Simulate full execution of a UserOperation (including both validation and target execution) It performs full validation of the UserOperation, but ignores signature error. An optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted). Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events.\"},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp.\"},\"unlockStake()\":{\"notice\":\"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass.\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v07/EntryPointSimulations.sol\":\"EntryPointSimulations07\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.1.0/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v7/contracts/core/Helpers.sol\":{\"keccak256\":\"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e\",\"dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc\"]},\"lib/account-abstraction-v7/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6\",\"dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a\"]},\"lib/account-abstraction-v7/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238\",\"dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH\"]},\"lib/account-abstraction-v7/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c\",\"dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G\"]},\"lib/account-abstraction-v7/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc\",\"dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020\",\"dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol\":{\"keccak256\":\"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577\",\"dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8\",\"dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/v07/EntryPoint.sol\":{\"keccak256\":\"0xe67e8ce0af5e518732ca3f3ca14f2f7963547f3a27e6567c2f6b45c70ffb10f9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://77f0af329d36750a40ab832cb78bbaa2e1133048aeb23bd97c0f61426ecd859c\",\"dweb:/ipfs/QmUJiU774ZM9Wfs7BWtYZ2Xktf9baZQ7QhFsgdLPDJfYni\"]},\"src/v07/EntryPointSimulations.sol\":{\"keccak256\":\"0x0debae908adcb49cb5f725b794f152cee9978fd4929120460241a3848b1f5c7f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bb5a8d1e72fc65478563cd2e863c18235e6dba671338d858a65e43f9a0fdc062\",\"dweb:/ipfs/QmW3LKReUt3wSXFReDeNKtBdP6EKPjQ5vPMfbxw7o8PPrJ\"]},\"src/v07/IEntryPoint.sol\":{\"keccak256\":\"0xca38cd0a2ed294deb3f36c933de236524a597ffc72da21a925458780d0b13b2d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://01dc9ca228751a7ba99e72d88c8dd3bfcae6d9bb85180a9ea7efc0550e9237a0\",\"dweb:/ipfs/QmPsEVXWZAZCKWuys3eqShSXCtHZCSc1bYQhHGDHuABYc6\"]},\"src/v07/IEntryPointSimulations.sol\":{\"keccak256\":\"0x49c6650bcbc4d4725aaa3aad66381c1c20b2a5d8b0249dcfa95fc65337d7f0ab\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2aaf93b6816132dd0e098dbbec2c5ae11f561df8b373645f5d266d2106af9b77\",\"dweb:/ipfs/QmPMKdVZpub1sHSSXmSufmwC5ZfaL3v5GpcNU4QY6Hw6cN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"type":"error","name":"CallPhaseReverted"},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailedOp"},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"inner","type":"bytes"}],"type":"error","name":"FailedOpWithRevert"},{"inputs":[{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"PostOpReverted"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"SenderAddressResult"},{"inputs":[{"internalType":"address","name":"aggregator","type":"address"}],"type":"error","name":"SignatureValidationFailed"},{"inputs":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}],"type":"error","name":"SimulationOutOfGas"},{"inputs":[{"internalType":"uint256","name":"remainingGas","type":"uint256"}],"type":"error","name":"innerCallResult"},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"factory","type":"address","indexed":false},{"internalType":"address","name":"paymaster","type":"address","indexed":false}],"type":"event","name":"AccountDeployed","anonymous":false},{"inputs":[],"type":"event","name":"BeforeExecution","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"totalDeposit","type":"uint256","indexed":false}],"type":"event","name":"Deposited","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bytes","name":"revertReason","type":"bytes","indexed":false}],"type":"event","name":"PostOpRevertReason","anonymous":false},{"inputs":[{"internalType":"address","name":"aggregator","type":"address","indexed":true}],"type":"event","name":"SignatureAggregatorChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"totalStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256","indexed":false}],"type":"event","name":"StakeLocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"withdrawTime","type":"uint256","indexed":false}],"type":"event","name":"StakeUnlocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"withdrawAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"StakeWithdrawn","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"paymaster","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"uint256","name":"actualGasCost","type":"uint256","indexed":false},{"internalType":"uint256","name":"actualGasUsed","type":"uint256","indexed":false}],"type":"event","name":"UserOperationEvent","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false}],"type":"event","name":"UserOperationPrefundTooLow","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bytes","name":"revertReason","type":"bytes","indexed":false}],"type":"event","name":"UserOperationRevertReason","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"withdrawAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawn","anonymous":false},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct EntryPoint.UserOpInfo","name":"outOpInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"_paymasterValidation","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct EntryPoint.UserOpInfo","name":"outOpInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]},{"internalType":"bool","name":"validatePaymasterPrepayment","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_validatePrepayment","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"}],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SimulationArgs[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"struct SimulationArgs","name":"targetUserOp","type":"tuple","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchCallGasLimit","outputs":[{"internalType":"struct IEntryPointSimulations.TargetCallResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct SimulationArgs[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"struct SimulationArgs","name":"targetUserOp","type":"tuple","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchPaymasterVerificationGasLimit","outputs":[{"internalType":"struct IEntryPointSimulations.TargetCallResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct SimulationArgs[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"struct SimulationArgs","name":"targetUserOp","type":"tuple","components":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}]},{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchVerificationGasLimit","outputs":[{"internalType":"struct IEntryPointSimulations.TargetCallResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"payable","type":"function","name":"depositTo"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"bool","name":"staked","type":"bool"},{"internalType":"uint112","name":"stake","type":"uint112"},{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"},{"internalType":"uint48","name":"withdrawTime","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getDepositInfo","outputs":[{"internalType":"struct IStakeManager.DepositInfo","name":"info","type":"tuple","components":[{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"bool","name":"staked","type":"bool"},{"internalType":"uint112","name":"stake","type":"uint112"},{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"},{"internalType":"uint48","name":"withdrawTime","type":"uint48"}]}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint192","name":"key","type":"uint192"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"view","type":"function","name":"getUserOpHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint192","name":"key","type":"uint192"}],"stateMutability":"nonpayable","type":"function","name":"incrementNonce"},{"inputs":[{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"struct EntryPoint.UserOpInfo","name":"opInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]},{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"uint256","name":"preGas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"innerHandleOp","outputs":[{"internalType":"uint256","name":"actualGasCost","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint192","name":"","type":"uint192"}],"stateMutability":"view","type":"function","name":"nonceSequenceNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateCall","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateCallAndRevert"},{"inputs":[{"internalType":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOp","outputs":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"ops","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOpBulk","outputs":[{"internalType":"struct IEntryPointSimulations.ExecutionResult[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"ops","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOpLast","outputs":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]}]},{"inputs":[{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateValidation","outputs":[{"internalType":"struct IEntryPointSimulations.ValidationResult","name":"","type":"tuple","components":[{"internalType":"struct IEntryPoint.ReturnInfo","name":"returnInfo","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"bytes","name":"paymasterContext","type":"bytes"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"senderInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"factoryInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"paymasterInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IEntryPoint.AggregatorStakeInfo","name":"aggregatorInfo","type":"tuple","components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"struct IStakeManager.StakeInfo","name":"stakeInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateValidationBulk","outputs":[{"internalType":"struct IEntryPointSimulations.ValidationResult[]","name":"","type":"tuple[]","components":[{"internalType":"struct IEntryPoint.ReturnInfo","name":"returnInfo","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"bytes","name":"paymasterContext","type":"bytes"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"senderInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"factoryInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"paymasterInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IEntryPoint.AggregatorStakeInfo","name":"aggregatorInfo","type":"tuple","components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"struct IStakeManager.StakeInfo","name":"stakeInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateValidationLast","outputs":[{"internalType":"struct IEntryPointSimulations.ValidationResult","name":"","type":"tuple","components":[{"internalType":"struct IEntryPoint.ReturnInfo","name":"returnInfo","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"bytes","name":"paymasterContext","type":"bytes"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"senderInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"factoryInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"paymasterInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IEntryPoint.AggregatorStakeInfo","name":"aggregatorInfo","type":"tuple","components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"struct IStakeManager.StakeInfo","name":"stakeInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]}]}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unlockStake"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawStake"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":{"params":{"opIndex":"- The index of this userOp into the \"opInfos\" array.","userOp":"- The userOp to validate."}},"addStake(uint32)":{"params":{"unstakeDelaySec":"The new lock duration before the deposit can be withdrawn."}},"balanceOf(address)":{"params":{"account":"- The account to query."},"returns":{"_0":"- The deposit (for gas payment) of the account."}},"depositTo(address)":{"params":{"account":"- The account to add to."}},"getDepositInfo(address)":{"params":{"account":"- The account to query."},"returns":{"info":" - Full deposit information of given account."}},"getNonce(address,uint192)":{"params":{"key":"the high 192 bit of the nonce","sender":"the account address"},"returns":{"nonce":"a full nonce to pass for next UserOp with this sender."}},"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"params":{"userOp":"- The user operation to generate the request ID for."},"returns":{"_0":"hash the hash of this UserOperation"}},"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":{"params":{"callData":"- The callData to execute.","context":"- The context bytes.","opInfo":"- The UserOpInfo struct."},"returns":{"actualGasCost":"- the actual cost in eth this UserOperation paid for gas"}},"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)":{"params":{"op":"The UserOperation to simulate."},"returns":{"_0":"the execution result structure"}},"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"details":"The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.","params":{"userOp":"- The user operation to validate."},"returns":{"_0":"the validation result structure"}},"withdrawStake(address)":{"params":{"withdrawAddress":"- The address to send withdrawn value."}},"withdrawTo(address,uint256)":{"params":{"withdrawAddress":"- The address to send withdrawn value.","withdrawAmount":"- The amount to withdraw."}}},"version":1},"userdoc":{"kind":"user","methods":{"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":{"notice":"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)"},"addStake(uint32)":{"notice":"Add to the account's stake - amount and delay any pending unstake is first cancelled."},"balanceOf(address)":{"notice":"Get account balance."},"constructor":{"notice":"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures"},"depositTo(address)":{"notice":"Add to the deposit of the given account."},"deposits(address)":{"notice":"maps paymaster to their deposits and stakes"},"getDepositInfo(address)":{"notice":"Get deposit info."},"getNonce(address,uint192)":{"notice":"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order."},"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid."},"incrementNonce(uint192)":{"notice":"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \"initialize\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key."},"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":{"notice":"Inner function to handle a UserOperation. Must be declared \"external\" to open a call context, but it can only be called by handleOps."},"nonceSequenceNumber(address,uint192)":{"notice":"The next valid sequence number for a given nonce key."},"simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)":{"notice":"Simulate full execution of a UserOperation (including both validation and target execution) It performs full validation of the UserOperation, but ignores signature error. An optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted). Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events."},"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp."},"unlockStake()":{"notice":"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay."},"withdrawStake(address)":{"notice":"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass."},"withdrawTo(address,uint256)":{"notice":"Withdraw from the deposit."}},"version":1}},"settings":{"remappings":["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/","@account-abstraction-v7/=lib/account-abstraction-v7/contracts/","@account-abstraction-v8/=lib/account-abstraction-v8/contracts/","@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.1.0/contracts/","@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/","@test-utils/=lib/singleton-paymaster/test/utils/","account-abstraction-v6/=lib/account-abstraction-v6/contracts/","account-abstraction-v7/=lib/account-abstraction-v7/contracts/","account-abstraction-v8/=lib/account-abstraction-v8/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/","openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","singleton-paymaster/=lib/singleton-paymaster/src/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/v07/EntryPointSimulations.sol":"EntryPointSimulations07"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/account-abstraction-v7/contracts/core/Helpers.sol":{"keccak256":"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6","urls":["bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e","dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/NonceManager.sol":{"keccak256":"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9","urls":["bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6","dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/SenderCreator.sol":{"keccak256":"0xeb95afb6e4cf921c1ed105ecb9f549ca46bee57f68acd1d2f4f84607ac0db5c5","urls":["bzz-raw://d2ac91562f1fcabe4809a1b4256895efebcf46f89e08336a6c09ee2d29733238","dweb:/ipfs/QmPsQnPcCzioPwVtUhxkbnwKPC1bnhHSbAwK9GXVpjN3mH"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/core/StakeManager.sol":{"keccak256":"0x673eb19600058d8642605ca409c9e1d4cab13735564b856270b92c330ffb1b8d","urls":["bzz-raw://06599c57c7075ee8eb5f1710fccca3eb322876b968ec271e1fb34af41510ab2c","dweb:/ipfs/QmVsDEjmZYtzgXa4AYKxbQEYQVh6NBq8GmFJCariBUqK4G"],"license":"GPL-3.0-only"},"lib/account-abstraction-v7/contracts/core/UserOperationLib.sol":{"keccak256":"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b","urls":["bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc","dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol":{"keccak256":"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78","urls":["bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020","dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol":{"keccak256":"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c","urls":["bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577","dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol":{"keccak256":"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588","urls":["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155","dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4","urls":["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9","dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol":{"keccak256":"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb","urls":["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3","dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IPaymaster.sol":{"keccak256":"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f","urls":["bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8","dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04","urls":["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00","dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"],"license":"GPL-3.0-only"},"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359","urls":["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be","dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/utils/Exec.sol":{"keccak256":"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74","urls":["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77","dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"],"license":"LGPL-3.0-only"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/v07/EntryPoint.sol":{"keccak256":"0xe67e8ce0af5e518732ca3f3ca14f2f7963547f3a27e6567c2f6b45c70ffb10f9","urls":["bzz-raw://77f0af329d36750a40ab832cb78bbaa2e1133048aeb23bd97c0f61426ecd859c","dweb:/ipfs/QmUJiU774ZM9Wfs7BWtYZ2Xktf9baZQ7QhFsgdLPDJfYni"],"license":"GPL-3.0"},"src/v07/EntryPointSimulations.sol":{"keccak256":"0x0debae908adcb49cb5f725b794f152cee9978fd4929120460241a3848b1f5c7f","urls":["bzz-raw://bb5a8d1e72fc65478563cd2e863c18235e6dba671338d858a65e43f9a0fdc062","dweb:/ipfs/QmW3LKReUt3wSXFReDeNKtBdP6EKPjQ5vPMfbxw7o8PPrJ"],"license":"GPL-3.0"},"src/v07/IEntryPoint.sol":{"keccak256":"0xca38cd0a2ed294deb3f36c933de236524a597ffc72da21a925458780d0b13b2d","urls":["bzz-raw://01dc9ca228751a7ba99e72d88c8dd3bfcae6d9bb85180a9ea7efc0550e9237a0","dweb:/ipfs/QmPsEVXWZAZCKWuys3eqShSXCtHZCSc1bYQhHGDHuABYc6"],"license":"GPL-3.0"},"src/v07/IEntryPointSimulations.sol":{"keccak256":"0x49c6650bcbc4d4725aaa3aad66381c1c20b2a5d8b0249dcfa95fc65337d7f0ab","urls":["bzz-raw://2aaf93b6816132dd0e098dbbec2c5ae11f561df8b373645f5d266d2106af9b77","dweb:/ipfs/QmPMKdVZpub1sHSSXmSufmwC5ZfaL3v5GpcNU4QY6Hw6cN"],"license":"GPL-3.0"}},"version":1},"id":18}