@pimlico/alto 0.0.0-main.20251204T111226 → 0.0.0-main.20260101T133101

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 (156) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -1
  2. package/contracts/ERC165.sol/ERC165.json +1 -1
  3. package/contracts/ERC20.sol/ERC20.json +1 -1
  4. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
  5. package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  8. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  9. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  10. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  11. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  12. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  13. package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  14. package/contracts/Exec.sol/Exec.json +1 -1
  15. package/contracts/IAccount.sol/IAccount.json +1 -1
  16. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
  17. package/contracts/IAggregator.sol/IAggregator.json +1 -1
  18. package/contracts/IERC165.sol/IERC165.json +1 -1
  19. package/contracts/IERC5267.sol/IERC5267.json +1 -1
  20. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
  21. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -1
  22. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
  23. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
  24. package/contracts/INonceManager.sol/INonceManager.json +1 -1
  25. package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
  26. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
  27. package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
  28. package/contracts/LibBytes.sol/LibBytes.json +1 -1
  29. package/contracts/Math.sol/Math.json +1 -1
  30. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
  31. package/contracts/NonceManager.sol/NonceManager.json +1 -1
  32. package/contracts/Panic.sol/Panic.json +1 -1
  33. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  34. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  35. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
  36. package/contracts/SafeCast.sol/SafeCast.json +1 -1
  37. package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
  38. package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
  39. package/contracts/SignedMath.sol/SignedMath.json +1 -1
  40. package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -1
  41. package/contracts/StakeManager.sol/StakeManager.json +1 -1
  42. package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
  43. package/contracts/Strings.sol/Strings.json +1 -1
  44. package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
  45. package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
  46. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
  47. package/contracts/account-abstraction-v9/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  48. package/contracts/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  49. package/contracts/account-abstraction-v9/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  50. package/contracts/account-abstraction-v9/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  51. package/contracts/build-info/{006aa55b425148d5.json → 338795fc743ca612.json} +1 -1
  52. package/contracts/build-info/44a9648cfe32a468.json +1 -0
  53. package/contracts/build-info/{416ffb069999d6eb.json → 8dbf8a4ad39019b5.json} +1 -1
  54. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  55. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  56. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  57. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  58. package/contracts/core/Eip7702Support.sol/Eip7702Support.json +1 -0
  59. package/contracts/core/NonceManager.sol/NonceManager.json +1 -0
  60. package/contracts/core/SenderCreator.sol/SenderCreator.json +1 -0
  61. package/contracts/core/StakeManager.sol/StakeManager.json +1 -0
  62. package/contracts/core/UserOperationLib.sol/UserOperationLib.json +1 -0
  63. package/contracts/interfaces/IAccount.sol/IAccount.json +1 -0
  64. package/contracts/interfaces/IAccountExecute.sol/IAccountExecute.json +1 -0
  65. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  66. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  67. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  68. package/contracts/interfaces/IPaymaster.sol/IPaymaster.json +1 -0
  69. package/contracts/interfaces/ISenderCreator.sol/ISenderCreator.json +1 -0
  70. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  71. package/contracts/overrides/Eip7702Support.sol/Eip7702Support.json +1 -0
  72. package/contracts/overrides/NonceManager.sol/NonceManager.json +1 -0
  73. package/contracts/overrides/SenderCreator.sol/SenderCreator.json +1 -0
  74. package/contracts/overrides/StakeManager.sol/StakeManager.json +1 -0
  75. package/contracts/overrides/UserOperationLib.sol/UserOperationLib.json +1 -0
  76. package/contracts/utils/Exec.sol/Exec.json +1 -1
  77. package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -1
  78. package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
  79. package/esm/cli/config/bundler.d.ts +68 -50
  80. package/esm/cli/config/bundler.js +5 -2
  81. package/esm/cli/config/bundler.js.map +1 -1
  82. package/esm/cli/config/options.js +17 -1
  83. package/esm/cli/config/options.js.map +1 -1
  84. package/esm/cli/deploySimulationsContract.d.ts +1 -0
  85. package/esm/cli/deploySimulationsContract.js +41 -5
  86. package/esm/cli/deploySimulationsContract.js.map +1 -1
  87. package/esm/cli/handler.js +14 -0
  88. package/esm/cli/handler.js.map +1 -1
  89. package/esm/cli/setupServer.js +3 -4
  90. package/esm/cli/setupServer.js.map +1 -1
  91. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  92. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  93. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  94. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  95. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  96. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  97. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  98. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  99. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  100. package/esm/executor/bundleManager.js +1 -2
  101. package/esm/executor/bundleManager.js.map +1 -1
  102. package/esm/executor/filterOpsAndEstimateGas.js +12 -0
  103. package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
  104. package/esm/executor/utils.js +2 -2
  105. package/esm/executor/utils.js.map +1 -1
  106. package/esm/handlers/eventManager.d.ts +6 -6
  107. package/esm/handlers/eventManager.js +47 -57
  108. package/esm/handlers/eventManager.js.map +1 -1
  109. package/esm/mempool/mempool.d.ts +34 -0
  110. package/esm/mempool/mempool.js +14 -4
  111. package/esm/mempool/mempool.js.map +1 -1
  112. package/esm/rpc/estimation/gasEstimations07.js +7 -6
  113. package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
  114. package/esm/rpc/estimation/preVerificationGasCalculator.js +1 -1
  115. package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -1
  116. package/esm/rpc/methods/boost_sendUserOperation.d.ts +304 -0
  117. package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
  118. package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +622 -14
  119. package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
  120. package/esm/rpc/methods/eth_sendUserOperation.d.ts +304 -0
  121. package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +304 -0
  122. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +3 -12
  123. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  124. package/esm/rpc/methods/pimlico_simulateAssetChange.d.ts +620 -12
  125. package/esm/rpc/validation/SafeValidator.js +5 -5
  126. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  127. package/esm/store/createMempoolStore.js +8 -2
  128. package/esm/store/createMempoolStore.js.map +1 -1
  129. package/esm/store/outstanding/memory.js +26 -17
  130. package/esm/store/outstanding/memory.js.map +1 -1
  131. package/esm/store/outstanding/redis.js +46 -18
  132. package/esm/store/outstanding/redis.js.map +1 -1
  133. package/esm/store/outstanding/types.d.ts +2 -1
  134. package/esm/store/processing/memory.d.ts +3 -1
  135. package/esm/store/processing/memory.js +14 -2
  136. package/esm/store/processing/memory.js.map +1 -1
  137. package/esm/store/processing/redis.d.ts +4 -2
  138. package/esm/store/processing/redis.js +20 -4
  139. package/esm/store/processing/redis.js.map +1 -1
  140. package/esm/store/processing/types.d.ts +2 -1
  141. package/esm/store/types.d.ts +1 -0
  142. package/esm/types/contracts/PimlicoSimulations.d.ts +81 -0
  143. package/esm/types/contracts/PimlicoSimulations.js +105 -0
  144. package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
  145. package/esm/types/schemas.d.ts +13039 -4597
  146. package/esm/types/schemas.js +92 -2
  147. package/esm/types/schemas.js.map +1 -1
  148. package/esm/utils/entryPointOverrides.js +7 -0
  149. package/esm/utils/entryPointOverrides.js.map +1 -1
  150. package/esm/utils/metrics.d.ts +0 -1
  151. package/esm/utils/metrics.js +0 -7
  152. package/esm/utils/metrics.js.map +1 -1
  153. package/esm/utils/userop.d.ts +76 -2
  154. package/esm/utils/userop.js +71 -79
  155. package/esm/utils/userop.js.map +1 -1
  156. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ { "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "receive", "stateMutability": "payable" }, { "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": "delegateAndRevert", "inputs": [{ "name": "target", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "depositTo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "getCurrentUserOpHash", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "getDepositInfo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "info", "type": "tuple", "internalType": "struct IStakeManager.DepositInfo", "components": [{ "name": "deposit", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }] }], "stateMutability": "view" }, { "type": "function", "name": "getDomainSeparatorV4", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "getNonce", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "nonce", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getPackedUserOpTypeHash", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "pure" }, { "type": "function", "name": "getSenderAddress", "inputs": [{ "name": "initCode", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "getUserOpHash", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct PackedUserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "handleAggregatedOps", "inputs": [{ "name": "opsPerAggregator", "type": "tuple[]", "internalType": "struct IEntryPoint.UserOpsPerAggregator[]", "components": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "aggregator", "type": "address", "internalType": "contract IAggregator" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "handleOps", "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" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "incrementNonce", "inputs": [{ "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "initDomainSeparator", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "innerHandleOp", "inputs": [{ "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "opInfo", "type": "tuple", "internalType": "struct EntryPointFilterOpsOverride09.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPointFilterOpsOverride09.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" }], "outputs": [{ "name": "actualGasCost", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "nonceSequenceNumber", "inputs": [{ "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "senderCreator", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract ISenderCreator" }], "stateMutability": "view" }, { "type": "function", "name": "supportsInterface", "inputs": [{ "name": "interfaceId", "type": "bytes4", "internalType": "bytes4" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "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": "EIP7702AccountInitialized", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "delegate", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "IgnoredInitCode", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "unusedFactory", "type": "address", "indexed": false, "internalType": "address" }], "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": "DelegateAndRevert", "inputs": [{ "name": "success", "type": "bool", "internalType": "bool" }, { "name": "ret", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "DepositWithdrawalFailed", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "Eip7702SenderNotDelegate", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "Eip7702SenderWithoutCode", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }] }, { "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": "FailedSendToBeneficiary", "inputs": [{ "name": "beneficiary", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }, { "name": "revertData", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "InsufficientDeposit", "inputs": [{ "name": "currentDeposit", "type": "uint256", "internalType": "uint256" }, { "name": "withdrawAmount", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InternalFunction", "inputs": [] }, { "type": "error", "name": "InvalidBeneficiary", "inputs": [{ "name": "beneficiary", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "InvalidPaymaster", "inputs": [{ "name": "paymaster", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "InvalidPaymasterData", "inputs": [{ "name": "paymasterAndDataLength", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InvalidPaymasterSignatureLength", "inputs": [{ "name": "dataLength", "type": "uint256", "internalType": "uint256" }, { "name": "pmSignatureLength", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InvalidStake", "inputs": [{ "name": "msgValue", "type": "uint256", "internalType": "uint256" }, { "name": "currentStake", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InvalidUnstakeDelay", "inputs": [{ "name": "newUnstakeDelaySec", "type": "uint256", "internalType": "uint256" }, { "name": "currentUnstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "NotStaked", "inputs": [{ "name": "currentStake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }, { "name": "staked", "type": "bool", "internalType": "bool" }] }, { "type": "error", "name": "PostOpReverted", "inputs": [{ "name": "returnData", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "Reentrancy", "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": "StakeNotUnlocked", "inputs": [{ "name": "withdrawTime", "type": "uint256", "internalType": "uint256" }, { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "StakeWithdrawalFailed", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }, { "name": "withdrawAddress", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "WithdrawalNotDue", "inputs": [{ "name": "withdrawTime", "type": "uint256", "internalType": "uint256" }, { "name": "blockTimestamp", "type": "uint256", "internalType": "uint256" }] }], "bytecode": { "object": "0x60a080604052346067576104ee8181016001600160401b03811183821017605357829161548b833903905ff0801560485760805260405161541f908161006c8239608051815050f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6101606040526004361015610024575b3615610019575f80fd5b6100223361303e565b005b5f610140525f3560e01c806242dc531461236757806301ffc9a7146122155780630396cb6014611fb657806309ccb88014611f5d5780630bd28e3b14611ec157806313c65a6e14611e83578063154e58dc14611e285780631b2e01b814611d92578063205c287814611c4357806322cdde4c14611bbf57806335567e1a14611b055780635287ce12146119e557806370a082311461197a578063765e827f146118e5578063850aaf62146118205780639b249f69146116d2578063b0a398d114611692578063b760faf914611658578063bb9fe6bf14611502578063c23a5cea14611322578063d12e825d1461121e5763dbed18e00361000f5734610fc45761012c36612ae0565b6101005260e0526101405190815b60e0518110610ffd575061014d82612e84565b61012052610140516080526101405160c0525b60e05160c05110610278577fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f9726101405161014051a161014051608081905290815b60e05181106101be576101b78361010051614837565b6101405180f35b6102206101ce8260e05185613106565b73ffffffffffffffffffffffffffffffffffffffff6101ef6020830161319a565b167f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d6101405161014051a280613146565b9061014051915b808310610239575050506001016101a1565b90919460019061026661024d888587612f53565b61025c60805161012051612fc0565b519060805161415c565b01958160805101608052019190610227565b61028760c05160e05183613106565b73ffffffffffffffffffffffffffffffffffffffff6102b560206102ab8480613146565b60a052930161319a565b61014051911691905b60a05181106102e25750505060a05160805101608052600160c0510160c052610160565b6102f3816080510161012051612fc0565b516103018260a05185612f53565b61014051915a81519273ffffffffffffffffffffffffffffffffffffffff6103288261319a565b168452602081810135908501526fffffffffffffffffffffffffffffffff6080808301358281166060880152811c604087015260a083013560c0808801919091528301359182166101008701521c61012085015261038960e08201826131bb565b9081610f23575b50506040519361039f82612d38565b6020850152846040526040810151946effffffffffffffffffffffffffffff8660c08401511760608401511760808401511760a084015117610100840151176101208401511711610ebd5750604081015160608201510160808201510160a08201510160c0820151016101008201510294856040860152845173ffffffffffffffffffffffffffffffffffffffff60e08183511692610452898d61044660408b018b6131bb565b92909160805101614f08565b0151169661014051978015610e8c575b87516040810151905173ffffffffffffffffffffffffffffffffffffffff169061014051506040519a8b8960208d01519260208301937f19822f7c00000000000000000000000000000000000000000000000000000000855260248401926104c993615395565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018d526104f9908d6129b7565b61014051908c5190846101405190602095f161014051519a3d602003610e81575b60405215610d8e575015610d10575b505073ffffffffffffffffffffffffffffffffffffffff825116602083015190610140515260016020526040610140512077ffffffffffffffffffffffffffffffffffffffffffffffff8260401c165f5260205267ffffffffffffffff60405f209182549261059784612c94565b90551603610ca7575a840311610c3e5760e0015160609073ffffffffffffffffffffffffffffffffffffffff166108e2575b73ffffffffffffffffffffffffffffffffffffffff949260a0859360809360606105fe9801520135905a900301910152614c44565b929091168603610879576107a5575061062b73ffffffffffffffffffffffffffffffffffffffff91614c44565b9290911661073c5761064057506001016102be565b6106d35760a490604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f65000000000000000000000000000000000000000000000000000000000000006084820152fd5b608490604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152602060448201527f41413337207061796d617374657220696e76616c20626c6f636b2072616e67656064820152fd5b608483604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601460448201527f41413334207369676e6174757265206572726f720000000000000000000000006064820152fd5b8260849161081357604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601760448201527f414132322065787069726564206f72206e6f74206475650000000000000000006064820152fd5b604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601e60448201527f41413237206f7574736964652076616c696420626c6f636b2072616e676500006064820152fd5b608484604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b9897969594505a9883519961091673ffffffffffffffffffffffffffffffffffffffff60e08d0151166040870151906153b7565b15610bd55760807f52b7512c000000000000000000000000000000000000000000000000000000009798999a9b01516040516109978161096b60208a015160408b015190602084019d8e528960248501615395565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826129b7565b8651608073ffffffffffffffffffffffffffffffffffffffff60e08301511691015161014051918b61014051928551926101405191f1983d908161014051843e519482519a604084019b8c519115610b535760401490811591610b21575b50610a9c5750601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09101160191826040525a900311610a365750946105c9565b80887f220266b6000000000000000000000000000000000000000000000000000000006084935260805101600482015260406024820152602060448201527f41413336206f76657220706d566572696669636174696f6e4761734c696d69746064820152fd5b8b610b1d610aa861333d565b6040519384937f65c8fd4d0000000000000000000000000000000000000000000000000000000085526080510160048501526024840152601d60648401527f41413335206d616c666f726d6564207061796d61737465722064617461000000608484015260a0604484015260a4830190612b73565b0390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09150601f011681018214155f6109f5565b828e610b1d610b6061333d565b6040519384937f65c8fd4d0000000000000000000000000000000000000000000000000000000085526080510160048501526024840152600d60648401527f4141333320726576657274656400000000000000000000000000000000000000608484015260a0604484015260a4830190612b73565b608487604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b608487604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d697400006064820152fd5b608488604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152fd5b610d19916153b7565b15610d25578b80610529565b608488604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152fd5b8b903b610dfe57608490604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152fd5b610e0661333d565b90610b1d6040519283927f65c8fd4d00000000000000000000000000000000000000000000000000000000845260805101600484015260606024840152600d60648401527f4141323320726576657274656400000000000000000000000000000000000000608484015260a0604484015260a4830190612b73565b61014051915061051a565b6101408051849052516020819052604090205490985081811115610eb65750610140515b97610462565b8103610eb0565b80887f220266b6000000000000000000000000000000000000000000000000000000006084935260805101600482015260406024820152601860448201527f41413934206761732076616c756573206f766572666c6f7700000000000000006064820152fd5b60348210610fcb5781601411610fc45780359160248110610fc457603411610fc4576024810135608090811c60a0880152601490910135811c90860152606081901c15610f795760601c60e08501528980610390565b73ffffffffffffffffffffffffffffffffffffffff907fd8ccb29200000000000000000000000000000000000000000000000000000000610140515260601c16600452602461014051fd5b6101405180fd5b507f120aaab5000000000000000000000000000000000000000000000000000000006101405152600452602461014051fd5b61100a8160e05184613106565b926110158480613146565b919073ffffffffffffffffffffffffffffffffffffffff6110386020880161319a565b1695600187146111ec5786611055575b505001925060010161013a565b8060406110639201906131bb565b91873b15610fc457916040519283917f2dd8113300000000000000000000000000000000000000000000000000000000835286604484016040600486015252606483019160648860051b8501019281610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee182360301915b8b821061119257505050505081611123917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc858095030160248501526101405195613000565b0381610140518a5af19081611177575b5061116a57847f86a9f750000000000000000000000000000000000000000000000000000000006101405152600452602461014051fd5b929350839260015f611048565b61014051611184916129b7565b61014051610fc4575f611133565b9193967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c90879294969703018552863584811215610fc45760206111db6001938583940161325c565b9801950192018896959493916110dd565b867f86a9f750000000000000000000000000000000000000000000000000000000006101405152600452602461014051fd5b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576040805160079060209061126384826129b7565b8281527f4552433433333700000000000000000000000000000000000000000000000000910190815220815160019060209061129f85826129b7565b828152017f310000000000000000000000000000000000000000000000000000000000000081522082519160208301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f855283015260608201524660808201523060a082015260a0815261131560c0826129b7565b5190206002556101405180f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc457611359612a68565b33610140515261014051602052600160406101405120019081549165ffffffffffff6dffffffffffffffffffffffffffff8460081c16936113aa60ff821663ffffffff8360781c16878015156130b1565b60981c1680156114cd57428111611498575080547fffffffffffffff000000000000000000000000000000000000000000000000ff1690556040805173ffffffffffffffffffffffffffffffffffffffff831681526020810184905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2610140518080808573ffffffffffffffffffffffffffffffffffffffff86165af1611454612cce565b9015611461576101405180f35b610b1d906040519384937f0dcf087c0000000000000000000000000000000000000000000000000000000085523360048601612cfd565b7f561d331200000000000000000000000000000000000000000000000000000000610140515260045242602452604461014051fd5b7ffbd021d600000000000000000000000000000000000000000000000000000000610140515260045242602452604461014051fd5b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4573361014051526101405160205260016040610140512001805461158863ffffffff8260781c16918260ff6dffffffffffffffffffffffffffff8360081c169216916115828383838115156130b1565b826130b1565b65ffffffffffff4216019065ffffffffffff82116116255780547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001678ffffffffffff00000000000000000000000000000000000000609884901b1617905560405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a90602090a26101405180f35b7f4e487b710000000000000000000000000000000000000000000000000000000061014051526011600452602461014051fd5b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576101b761168d612a68565b61303e565b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576020610140515c604051908152f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45760043567ffffffffffffffff8111610fc4576020611726611781923690600401612a8b565b73ffffffffffffffffffffffffffffffffffffffff61174361336a565b16906040518095819482937f570e1a360000000000000000000000000000000000000000000000000000000084528760048501526024840191613000565b039161014051905af180156118125773ffffffffffffffffffffffffffffffffffffffff9161014051916117e3575b507f6ca7b80600000000000000000000000000000000000000000000000000000000610140515216600452602461014051fd5b611805915060203d60201161180b575b6117fd81836129b7565b810190612fd4565b826117b0565b503d6117f3565b6040513d61014051823e3d90fd5b34610fc45760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc457611857612a68565b60243567ffffffffffffffff8111610fc457611877903690600401612a8b565b604051929181908437820190610140518252610140519280610140519303915af46118a0612cce565b90610b1d6040519283927f9941055400000000000000000000000000000000000000000000000000000000845215156004840152604060248401526044830190612b73565b34610fc4576118f336612ae0565b6118fe829392612e84565b6119098185856134fc565b5061014051927fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f9728480a161014051915b85831061194a576101b78585614837565b90919360019061197061195e878987612f53565b6119688886612fc0565b51908861415c565b0194019190611939565b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45773ffffffffffffffffffffffffffffffffffffffff6119c6612a68565b1661014051526101405160205260206040610140512054604051908152f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45773ffffffffffffffffffffffffffffffffffffffff611a31612a68565b604051611a3d81612935565b6101405181526101405160208201526101405160408201526101405160608201526080610140519101521661014051526101405160205260a06040610140512065ffffffffffff604051611a9081612935565b63ffffffff60018454948584520154916dffffffffffffffffffffffffffff6020820160ff8516151581526040830190828660081c1682528660806060860195878960781c168752019660981c1686526040519788525115156020880152511660408601525116606084015251166080820152f35b34610fc45760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576020611b3e612a68565b73ffffffffffffffffffffffffffffffffffffffff611b5b612ab9565b91166101405152600182526040610140512077ffffffffffffffffffffffffffffffffffffffffffffffff82165f52825260405f20547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006040519260401b16178152f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45760043567ffffffffffffffff8111610fc4576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8236030112610fc457611c3b602091600401612d38565b604051908152f35b34610fc45760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc457611c7a612a68565b602435903361014051526101405160205260406101405120828154808211611d5e5790611ca691612cc1565b90556040805173ffffffffffffffffffffffffffffffffffffffff831681526020810184905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2610140518080808573ffffffffffffffffffffffffffffffffffffffff86165af1611d1a612cce565b9015611d27576101405180f35b610b1d906040519384937f9f3d69330000000000000000000000000000000000000000000000000000000085523360048601612cfd565b7f25c3f46e000000000000000000000000000000000000000000000000000000006101405152600452602452604461014051fd5b34610fc45760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc457611dc9612a68565b73ffffffffffffffffffffffffffffffffffffffff611de6612ab9565b91166101405152600160205277ffffffffffffffffffffffffffffffffffffffffffffffff6040610140512091165f52602052602060405f2054604051908152f35b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576020600254604051908152f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45760043577ffffffffffffffffffffffffffffffffffffffffffffffff81168103610fc457336101405152600160205277ffffffffffffffffffffffffffffffffffffffffffffffff6040610140512091165f5260205260405f20611f548154612c94565b90556101405180f35b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc457602073ffffffffffffffffffffffffffffffffffffffff611fad61336a565b16604051908152f35b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45760043563ffffffff8116808203610fc457336101405152610140516020526121dd6dffffffffffffffffffffffffffff604061014051209361204260018601549163ffffffff8360781c16906120398282891515612bd0565b81871015612bd0565b60081c169261207a6120543486612c11565b946120628134881515612c4b565b346dffffffffffffffffffffffffffff871115612c4b565b546040519061208882612935565b815265ffffffffffff602082019160018352604081016dffffffffffffffffffffffffffff87168152606082019086825260016080840193610140518552336101405152610140516020526040610140512090518155019451151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008754169116178555517fffffffffffffffffffffffffffffffffff0000000000000000000000000000ff6effffffffffffffffffffffffffff008087549360081b16169116178455517fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff72ffffffff0000000000000000000000000000008086549360781b1616911617835551167fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff78ffffffffffff0000000000000000000000000000000000000083549260981b169116179055565b60405191825260208201527fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c0160403392a26101405180f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610fc457807fd9934b3f000000000000000000000000000000000000000000000000000000006020921490811561233d575b8115612313575b81156122e9575b81156122bf575b506040519015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014826122b4565b7f3e84f02100000000000000000000000000000000000000000000000000000000811491506122ad565b7fcf28ef9700000000000000000000000000000000000000000000000000000000811491506122a6565b7f283f5489000000000000000000000000000000000000000000000000000000008114915061229f565b346127ec576102007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126127ec5760043567ffffffffffffffff81116127ec57366023820112156127ec576123c8903690602481600401359101612a32565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36016101c081126127ec576101406040519161240483612935565b126127ec576040516124158161297e565b60243573ffffffffffffffffffffffffffffffffffffffff811681036127ec57815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526101043573ffffffffffffffffffffffffffffffffffffffff811681036127ec5760e082015261012435610100820152610144356101208201528152602081019161016435835260408201906101843582526101a435606084015260808301916101c43583526101e43567ffffffffffffffff81116127ec576124ee903690600401612a8b565b955a9030330361290d578651606081015195603f5a0260061c61271060a0840151890101116128e5575f968151918261282b575b50505050509061253a915a9003855101963691612a32565b925a9385516101008101516101208201517f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480155f14612825575048905b018082101561281d5750975b6125b273ffffffffffffffffffffffffffffffffffffffff60e084015116945182036060840151906148e4565b01925f92816126c85750505173ffffffffffffffffffffffffffffffffffffffff16945b5a900301019485029051928184105f146126745750506003811015612641576002036126135760209281611c3b929361260e81614a05565b614903565b7fdeadaa51000000000000000000000000000000000000000000000000000000006101405152602061014051fd5b7f4e487b710000000000000000000000000000000000000000000000000000000061014051526021600452602461014051fd5b816126aa929594969396039073ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f209081540180915590565b50600384101561264157826126c3926020951590614984565b611c3b565b9096918782516126db575b5050506125d6565b90919293505a9260038810156127f05760028803612711575b505060a0612708925a9003910151906148e4565b908880806126d3565b60a083015191803b156127ec578b925f928361276d938c8b88604051998a98899788957f7c627b210000000000000000000000000000000000000000000000000000000087526004870152608060248701526084860190612b73565b9202604484015260648301520393f190816127d7575b506127cd57610b1d61279361333d565b6040519182917fad7954bc000000000000000000000000000000000000000000000000000000008352602060048401526024830190612b73565b60a06127086126f4565b5f6127e1916129b7565b5f610140528a612783565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b905097612585565b90612579565b915f9291838093602073ffffffffffffffffffffffffffffffffffffffff885116910192f11561285e575b808080612522565b61253a939295506040519161287161333d565b90815161288a575b505050604052600193909188612856565b7f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a201905191602073ffffffffffffffffffffffffffffffffffffffff8551169401516128da60405192839283612bb6565b0390a3888080612879565b7fdeaddead000000000000000000000000000000000000000000000000000000005f5260205ffd5b7f9fbdaa09000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761295157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610140810190811067ffffffffffffffff82111761295157604052565b6060810190811067ffffffffffffffff82111761295157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761295157604052565b67ffffffffffffffff811161295157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192612a3e826129f8565b91612a4c60405193846129b7565b8294818452818301116127ec578281602093845f960137010152565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036127ec57565b9181601f840112156127ec5782359167ffffffffffffffff83116127ec57602083818601950101116127ec57565b6024359077ffffffffffffffffffffffffffffffffffffffffffffffff821682036127ec57565b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126127ec5760043567ffffffffffffffff81116127ec5760040182601f820112156127ec5780359267ffffffffffffffff84116127ec576020808301928560051b0101116127ec57919060243573ffffffffffffffffffffffffffffffffffffffff811681036127ec5790565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b604090612bcd939281528160208201520190612b73565b90565b15612bd9575050565b9063ffffffff80927fe1823bce000000000000000000000000000000000000000000000000000000005f52166004521660245260445ffd5b91908201809211612c1e57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b15612c54575050565b6dffffffffffffffffffffffffffff92507f0e10009c000000000000000000000000000000000000000000000000000000005f526004521660245260445ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612c1e5760010190565b91908203918211612c1e57565b3d15612cf8573d90612cdf826129f8565b91612ced60405193846129b7565b82523d5f602084013e565b606090565b909273ffffffffffffffffffffffffffffffffffffffff60809381612bcd979616845216602083015260408201528160608201520190612b73565b604290612d44816133d8565b60025491612d518161319a565b918015612e4f57905b60c0612d6960608301836131bb565b90816040519182372091612d89612d8360e08301836131bb565b90614b8e565b926040519473ffffffffffffffffffffffffffffffffffffffff60208701977f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216604087015260208301356060870152608086015260a085015260808101358285015260a081013560e085015201356101008301526101208201526101208152612e17610140826129b7565b519020604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b50612e5d60408201826131bb565b90816040519182372090612d5a565b67ffffffffffffffff81116129515760051b60200190565b90612e8e82612e6c565b612e9b60405191826129b7565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0612ec98294612e6c565b01905f5b828110612ed957505050565b602090604051612ee881612935565b604051612ef48161297e565b5f81525f848201525f60408201525f60608201525f60808201525f60a08201525f60c08201525f60e08201525f6101008201525f61012082015281525f838201525f60408201525f60608201525f608082015282828501015201612ecd565b9190811015612f935760051b810135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee1813603018212156127ec570190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8051821015612f935760209160051b010190565b908160209103126127ec575173ffffffffffffffffffffffffffffffffffffffff811681036127ec5790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4602073ffffffffffffffffffffffffffffffffffffffff6130a5348573ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f209081540180915590565b936040519485521692a2565b156130bb57505050565b906dffffffffffffffffffffffffffff63ffffffff927f8421e8e5000000000000000000000000000000000000000000000000000000005f521660045216602452151560445260645ffd5b9190811015612f935760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1813603018212156127ec570190565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156127ec570180359067ffffffffffffffff82116127ec57602001918160051b360383136127ec57565b3573ffffffffffffffffffffffffffffffffffffffff811681036127ec5790565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156127ec570180359067ffffffffffffffff82116127ec576020019181360383136127ec57565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112156127ec57016020813591019167ffffffffffffffff82116127ec5781360383136127ec57565b80359173ffffffffffffffffffffffffffffffffffffffff831683036127ec5773ffffffffffffffffffffffffffffffffffffffff612bcd931681526020820135602082015261332e6133226132e96132ce6132bb604087018761320c565b6101206040880152610120870191613000565b6132db606087018761320c565b908683036060880152613000565b6080850135608085015260a085013560a085015260c085013560c085015261331460e086018661320c565b9085830360e0870152613000565b9261010081019061320c565b91610100818503910152613000565b3d6108008111613361575b604051906020818301016040528082525f602083013e90565b50610800613348565b7fbc79d710c27c417daea28cbdc16e638da2309ea2f5542218b102827c395d15d45473ffffffffffffffffffffffffffffffffffffffff1680612bcd5750730a630a99df908a81115a3022927be82f9299987e90565b909392938483116127ec5784116127ec578101920390565b6133e560408201826131bb565b90916133f18284614a55565b156134f5576134026134079161319a565b614aaa565b91601482116134565750506040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b168252601481526134506034826129b7565b51902090565b816014116127ec576020613450916040519384917fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008484019760601b16875260147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec83019101603484013781015f8382015203017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826129b7565b5050505f90565b92919092835f5b8181106135105750505050565b61351a8185612fc0565b51613526828486612f53565b5f915a81519273ffffffffffffffffffffffffffffffffffffffff61354a8261319a565b168452602081013560208501526080810135936fffffffffffffffffffffffffffffffff8560801c951694604082019060608301968752815260c0820160a0840135815260c0840135906fffffffffffffffffffffffffffffffff8260801c921691610120850190610100860193845281526135c960e08701876131bb565b908161409f575b50506040516135de87612d38565b9960208a019a8b528160405285519586855117825117926effffffffffffffffffffffffffffff60808a01948551179560a08b01968751178951179051171161403d5750519051019051019051019051019051029560408601918783528973ffffffffffffffffffffffffffffffffffffffff60e089516136738b848351169561366b60408d018d6131bb565b929091614f08565b015116985f998015614016575b89516040810151905173ffffffffffffffffffffffffffffffffffffffff1680916040519d8e808d8b519360208301947f19822f7c00000000000000000000000000000000000000000000000000000000865260248401926136e193615395565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101825261371190826129b7565b51905f6020948194f15f519c3d60200361400e575b60405215613f23575015613ea9575b505073ffffffffffffffffffffffffffffffffffffffff8451166020850151905f52600160205260405f2077ffffffffffffffffffffffffffffffffffffffffffffffff8260401c165f5260205267ffffffffffffffff60405f209182549261379d84612c94565b90551603613e44575a860311613ddf5773ffffffffffffffffffffffffffffffffffffffff60e0606094015116613ad0575b505073ffffffffffffffffffffffffffffffffffffffff949260a0859360809360606138069801520135905a900301910152614c44565b92909116613a6b5761399f575061383173ffffffffffffffffffffffffffffffffffffffff91614c44565b9290911661393a576138465750600101613503565b6138d55760a490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f65000000000000000000000000000000000000000000000000000000000000006084820152fd5b608490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602060448201527f41413337207061796d617374657220696e76616c20626c6f636b2072616e67656064820152fd5b608483604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601460448201527f41413334207369676e6174757265206572726f720000000000000000000000006064820152fd5b82608491613a0957604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601760448201527f414132322065787069726564206f72206e6f74206475650000000000000000006064820152fd5b604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601e60448201527f41413237206f7574736964652076616c696420626c6f636b2072616e676500006064820152fd5b608484604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b909c9b9a99989796505a9085519d60e08f015173ffffffffffffffffffffffffffffffffffffffff168151613b04916153b7565b15613d7a57613b577f52b7512c00000000000000000000000000000000000000000000000000000000999a9b9c9d9e9f608001519261096b60405193849251905190602084019d8e528960248501615395565b5f8088518b82608073ffffffffffffffffffffffffffffffffffffffff60e08501511693015192865193f1983d90815f843e519482519a604084019b8c519115613cfc5760401490811591613cca575b50613c4d5750601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09101160191826040525a900311613beb5750948260a06137cf565b80887f220266b60000000000000000000000000000000000000000000000000000000060849352600482015260406024820152602060448201527f41413336206f76657220706d566572696669636174696f6e4761734c696d69746064820152fd5b8b610b1d613c5961333d565b6040519384937f65c8fd4d00000000000000000000000000000000000000000000000000000000855260048501526024840152601d60648401527f41413335206d616c666f726d6564207061796d61737465722064617461000000608484015260a0604484015260a4830190612b73565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09150601f011681018214155f613ba7565b828e610b1d613d0961333d565b6040519384937f65c8fd4d00000000000000000000000000000000000000000000000000000000855260048501526024840152600d60648401527f4141333320726576657274656400000000000000000000000000000000000000608484015260a0604484015260a4830190612b73565b608489604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b608489604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d697400006064820152fd5b60848a604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152fd5b613eb2916153b7565b15613ebe575f80613735565b60848a604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152fd5b8d903b613f8f57608490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152fd5b613f9761333d565b90610b1d6040519283927f65c8fd4d000000000000000000000000000000000000000000000000000000008452600484015260606024840152600d60648401527f4141323320726576657274656400000000000000000000000000000000000000608484015260a0604484015260a4830190612b73565b5f9150613726565b9950815f525f60205260405f20548181115f1461403657505f5b99613680565b8103614030565b808f7f220266b60000000000000000000000000000000000000000000000000000000060849352600482015260406024820152601860448201527f41413934206761732076616c756573206f766572666c6f7700000000000000006064820152fd5b6034821061413057816014116127ec57803560601c91602481106127ec576014820135906034116127ec576fffffffffffffffffffffffffffffffff60248193013560801c1660a089015260801c16608087015280156141055760e08601525f806135d0565b7fd8ccb292000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b507f120aaab5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9092915a6020820180515f5d606083015190604051968761418060608301836131bb565b5f6003821161482f575b7fffffffff00000000000000000000000000000000000000000000000000000000167f8dd7712f00000000000000000000000000000000000000000000000000000000036146c1575050505f61429561438961422361425560209587516040519384927f8dd7712f000000000000000000000000000000000000000000000000000000008a85015260406024850152606484019061325c565b906044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826129b7565b61096b6040519384927e42dc5300000000000000000000000000000000000000000000000000000000888501526102006024850152610224840190612b73565b614358604484018c60806101a091610120815173ffffffffffffffffffffffffffffffffffffffff8151168652602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015273ffffffffffffffffffffffffffffffffffffffff60e08201511660e087015261010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8382030161020484015288612b73565b828151910182305af15f5197604052156143a5575b5050505050565b909192939495505f3d6020146146b4575b7fdeaddead00000000000000000000000000000000000000000000000000000000810361444257608486604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152600f60448201527f41413935206f7574206f662067617300000000000000000000000000000000006064820152fd5b7fdeadaa5100000000000000000000000000000000000000000000000000000000919293949550145f146144aa57505061448e61448361449e925a90612cc1565b608084015190612c11565b60408301518361260e8295614a05565b905b5f8080808061439e565b9161451b919260405190518551907ff62676f440ff169a3a9afdbf812e89e7f95975ee8e5c31214ffdef631c5f4792602073ffffffffffffffffffffffffffffffffffffffff8451169301516144fe61333d565b9061450e60405192839283612bb6565b0390a36040525a90612cc1565b61452b6080840191825190612c11565b915f905a9285516101008101516101208201517f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480155f146146ae575048905b01808210156146a65750955b6145a573ffffffffffffffffffffffffffffffffffffffff60e084015116935182036060840151906148e4565b01925f92806146775750505173ffffffffffffffffffffffffffffffffffffffff16935b5a900301019283026040850151928184105f1461462b575050806145fe575090816145f8929361260e81614a05565b906144a0565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526021600452fd5b614660908284939795039073ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f209081540180915590565b506145fe575090825f61467293614984565b6145f8565b95919051614686575b506145c9565b9350905061469f5a9360a05f955a9003910151906148e4565b905f614680565b905095614578565b9061456c565b5060205f803e5f516143b6565b61482693506147fa91614706917e42dc530000000000000000000000000000000000000000000000000000000060208601526102006024860152610224850191613000565b6147c9604484018960806101a091610120815173ffffffffffffffffffffffffffffffffffffffff8151168652602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015273ffffffffffffffffffffffffffffffffffffffff60e08201511660e087015261010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8382030161020484015285612b73565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018952886129b7565b60205f88614389565b50813561418a565b73ffffffffffffffffffffffffffffffffffffffff1680156148b9575f805d5f80808085855af1614866612cce565b901561487157505050565b610b1d906040519384937f40848e6100000000000000000000000000000000000000000000000000000000855260048501526024840152606060448401526064830190612b73565b7f1a3b45fd000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b90619c4082018111156148fd57606491600a9103020490565b50505f90565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f6080602083015192519473ffffffffffffffffffffffffffffffffffffffff86511694602073ffffffffffffffffffffffffffffffffffffffff60e089015116970151916040519283525f602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f91602084015193519573ffffffffffffffffffffffffffffffffffffffff87511695602073ffffffffffffffffffffffffffffffffffffffff60e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e60208073ffffffffffffffffffffffffffffffffffffffff855116940151604051908152a3565b90600211614aa557357fffffffffffffffffffffffffffffffffffffffff000000000000000000000000167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000831603614b19575060481c73ffffffffffffffffffffffffffffffffffffffff1690565b8073ffffffffffffffffffffffffffffffffffffffff913b15614b62577f9f4e4cc9000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7fe5819b95000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b614b988282614d70565b80614ba95750816040519182372090565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe919203604051927ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff682019084377f22e325a2974396560000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6828501015201902090565b8015614d67575f60408051614c588161299b565b8281528260208201520152604073ffffffffffffffffffffffffffffffffffffffff82169165ffffffffffff8160a01c16908115614d59575b60d01c908251614ca08161299b565b84815282602082015265ffffffffffff821693849101526580000000000082101580614d49575b15614cfa57657fffffffffff16431191508115614ce7575b509060019092565b657fffffffffff9150164311155f614cdf565b507f182d361d27e8fee91541f8630840b9272bdb770c7bb6239b09cd74563c4053415480614d43575042915b8211918215614d38575b5050905f9092565b111590505f80614d30565b91614d26565b5065800000000000831015614cc7565b65ffffffffffff9150614c91565b505f905f905f90565b603e82106148fd577f22e325a2974396560000000000000000000000000000000000000000000000007fffffffffffffffff000000000000000000000000000000000000000000000000614de8847ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8810181866133c0565b90358281169160088110614ef3575b505016036148fd5781614e2e91817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff68101916133c0565b90357fffff00000000000000000000000000000000000000000000000000000000000081169160028110614ebe575b505060f01c907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc281018211614e90575090565b7f07b9a191000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fffff0000000000000000000000000000000000000000000000000000000000009250829060020360031b1b16165f80614e5d565b839250829060080360031b1b16165f80614df7565b929091925f82614f19575050505050565b83519473ffffffffffffffffffffffffffffffffffffffff86511695614f3f8583614a55565b6152585750601484106151f357836014116151ef57803560601c93863b6151b957614fca9160209173ffffffffffffffffffffffffffffffffffffffff614f8461336a565b16908560408a510151926040518097819682957f570e1a360000000000000000000000000000000000000000000000000000000084528960048501526024840191613000565b0393f19182156151ad579161518e575b5073ffffffffffffffffffffffffffffffffffffffff811680156151295785036150c4573b1561505f575060407fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d9173ffffffffffffffffffffffffffffffffffffffff60e06020860151955101511682519182526020820152a35f8080808061439e565b608490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152fd5b608482604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602060448201527f4141313420696e6974436f6465206d7573742072657475726e2073656e6465726064820152fd5b608483604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601b60448201527f4141313320696e6974436f6465206661696c6564206f72204f4f4700000000006064820152fd5b6151a7915060203d60201161180b576117fd81836129b7565b5f614fda565b604051903d90823e3d90fd5b50505050906020807fa39bcda08ffd11bafb11c4f170ef24fc6dc1a9d1b0394d90dbd19e0b919050e992015192604051908152a3565b5080fd5b608483604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601760448201527f4141393920696e6974436f646520746f6f20736d616c6c0000000000000000006064820152fd5b9195949390925060148111615270575b505050505050565b604073ffffffffffffffffffffffffffffffffffffffff61528f61336a565b16920151816014116127ec57823b156127ec57615312935f80946040518097819682957fc09ad0d90000000000000000000000000000000000000000000000000000000084528c60048501526040602485015260147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6044860193019101613000565b0393f1801561538a57615375575b507f7c9f9ade6a03a0bba484e52df872467a270e798ffc1adab9dfaa8d0e627f054473ffffffffffffffffffffffffffffffffffffffff602061536285614aaa565b93015192169380a45f8080808080615268565b6153829193505f906129b7565b5f915f615320565b6040513d5f823e3d90fd5b6153ad6040929594939560608352606083019061325c565b9460208201520152565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f209081548181106134f55703905560019056fea2646970667358221220e3c97fad07ea6550b07d0ed38eee12263e6fda5e1775f61a77f7586bcb1901bd64736f6c634300081c003360a08060405234602f57336080526104ba9081610034823960805181818160c30152818161023701526102cf0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063570e1a361461025b578063b0d691fe146101ed5763c09ad0d91461003a575f80fd5b346101e95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101e95760043573ffffffffffffffffffffffffffffffffffffffff811681036101e95760243567ffffffffffffffff81116101e957366023820112156101e9575f916100bd8392369060248160040135910161038a565b906101027f0000000000000000000000000000000000000000000000000000000000000000303373ffffffffffffffffffffffffffffffffffffffff8316331461042c565b82602083519301915af11561011357005b3d61080081116101e0575b60c460405160208382010160405282815260208101925f843e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6040519485937f65c8fd4d0000000000000000000000000000000000000000000000000000000085525f6004860152606060248601528260648601527f4141313320454950373730322073656e64657220696e6974206661696c656400608486015260a060448601525180918160a48701528686015e5f85828601015201168101030190fd5b5061080061011e565b5f80fd5b346101e9575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101e957602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101e95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101e95760043567ffffffffffffffff81116101e957366023820112156101e95780600401359067ffffffffffffffff82116101e95736602483830101116101e9575f9161030e7f0000000000000000000000000000000000000000000000000000000000000000303373ffffffffffffffffffffffffffffffffffffffff8316331461042c565b806014116101e95760209161034b5f927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3691016038840161038a565b90826024858451940192013560601c5af1610382575b60209073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b505f51610361565b92919267ffffffffffffffff82116103ff57604051917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f81601f8401160116830183811067ffffffffffffffff8211176103ff576040528294818452818301116101e9578281602093845f960137010152565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b1561043657505050565b73ffffffffffffffffffffffffffffffffffffffff92918380927ffe34a6d3000000000000000000000000000000000000000000000000000000005f5216600452166024521660445260645ffdfea2646970667358221220e1d84167821daba7b59fe2eab2e25bba6c7efd2e7b4d431ec1fce87b1086786564736f6c634300081c0033", "sourceMap": "1387:40866:30:-:0;;;;;;;2472:19;;;;-1:-1:-1;;;;;2472:19:30;;;;;;;;;;;;;;;;;;;;;;;1387:40866;;;;;;;;2472:19;1387:40866;;;;;2472:19;1387:40866;;;2472:19;1387:40866;;;;;2472:19;1387:40866;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x6101606040526004361015610024575b3615610019575f80fd5b6100223361303e565b005b5f610140525f3560e01c806242dc531461236757806301ffc9a7146122155780630396cb6014611fb657806309ccb88014611f5d5780630bd28e3b14611ec157806313c65a6e14611e83578063154e58dc14611e285780631b2e01b814611d92578063205c287814611c4357806322cdde4c14611bbf57806335567e1a14611b055780635287ce12146119e557806370a082311461197a578063765e827f146118e5578063850aaf62146118205780639b249f69146116d2578063b0a398d114611692578063b760faf914611658578063bb9fe6bf14611502578063c23a5cea14611322578063d12e825d1461121e5763dbed18e00361000f5734610fc45761012c36612ae0565b6101005260e0526101405190815b60e0518110610ffd575061014d82612e84565b61012052610140516080526101405160c0525b60e05160c05110610278577fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f9726101405161014051a161014051608081905290815b60e05181106101be576101b78361010051614837565b6101405180f35b6102206101ce8260e05185613106565b73ffffffffffffffffffffffffffffffffffffffff6101ef6020830161319a565b167f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d6101405161014051a280613146565b9061014051915b808310610239575050506001016101a1565b90919460019061026661024d888587612f53565b61025c60805161012051612fc0565b519060805161415c565b01958160805101608052019190610227565b61028760c05160e05183613106565b73ffffffffffffffffffffffffffffffffffffffff6102b560206102ab8480613146565b60a052930161319a565b61014051911691905b60a05181106102e25750505060a05160805101608052600160c0510160c052610160565b6102f3816080510161012051612fc0565b516103018260a05185612f53565b61014051915a81519273ffffffffffffffffffffffffffffffffffffffff6103288261319a565b168452602081810135908501526fffffffffffffffffffffffffffffffff6080808301358281166060880152811c604087015260a083013560c0808801919091528301359182166101008701521c61012085015261038960e08201826131bb565b9081610f23575b50506040519361039f82612d38565b6020850152846040526040810151946effffffffffffffffffffffffffffff8660c08401511760608401511760808401511760a084015117610100840151176101208401511711610ebd5750604081015160608201510160808201510160a08201510160c0820151016101008201510294856040860152845173ffffffffffffffffffffffffffffffffffffffff60e08183511692610452898d61044660408b018b6131bb565b92909160805101614f08565b0151169661014051978015610e8c575b87516040810151905173ffffffffffffffffffffffffffffffffffffffff169061014051506040519a8b8960208d01519260208301937f19822f7c00000000000000000000000000000000000000000000000000000000855260248401926104c993615395565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018d526104f9908d6129b7565b61014051908c5190846101405190602095f161014051519a3d602003610e81575b60405215610d8e575015610d10575b505073ffffffffffffffffffffffffffffffffffffffff825116602083015190610140515260016020526040610140512077ffffffffffffffffffffffffffffffffffffffffffffffff8260401c165f5260205267ffffffffffffffff60405f209182549261059784612c94565b90551603610ca7575a840311610c3e5760e0015160609073ffffffffffffffffffffffffffffffffffffffff166108e2575b73ffffffffffffffffffffffffffffffffffffffff949260a0859360809360606105fe9801520135905a900301910152614c44565b929091168603610879576107a5575061062b73ffffffffffffffffffffffffffffffffffffffff91614c44565b9290911661073c5761064057506001016102be565b6106d35760a490604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f65000000000000000000000000000000000000000000000000000000000000006084820152fd5b608490604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152602060448201527f41413337207061796d617374657220696e76616c20626c6f636b2072616e67656064820152fd5b608483604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601460448201527f41413334207369676e6174757265206572726f720000000000000000000000006064820152fd5b8260849161081357604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601760448201527f414132322065787069726564206f72206e6f74206475650000000000000000006064820152fd5b604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601e60448201527f41413237206f7574736964652076616c696420626c6f636b2072616e676500006064820152fd5b608484604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b9897969594505a9883519961091673ffffffffffffffffffffffffffffffffffffffff60e08d0151166040870151906153b7565b15610bd55760807f52b7512c000000000000000000000000000000000000000000000000000000009798999a9b01516040516109978161096b60208a015160408b015190602084019d8e528960248501615395565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826129b7565b8651608073ffffffffffffffffffffffffffffffffffffffff60e08301511691015161014051918b61014051928551926101405191f1983d908161014051843e519482519a604084019b8c519115610b535760401490811591610b21575b50610a9c5750601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09101160191826040525a900311610a365750946105c9565b80887f220266b6000000000000000000000000000000000000000000000000000000006084935260805101600482015260406024820152602060448201527f41413336206f76657220706d566572696669636174696f6e4761734c696d69746064820152fd5b8b610b1d610aa861333d565b6040519384937f65c8fd4d0000000000000000000000000000000000000000000000000000000085526080510160048501526024840152601d60648401527f41413335206d616c666f726d6564207061796d61737465722064617461000000608484015260a0604484015260a4830190612b73565b0390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09150601f011681018214155f6109f5565b828e610b1d610b6061333d565b6040519384937f65c8fd4d0000000000000000000000000000000000000000000000000000000085526080510160048501526024840152600d60648401527f4141333320726576657274656400000000000000000000000000000000000000608484015260a0604484015260a4830190612b73565b608487604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b608487604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d697400006064820152fd5b608488604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152fd5b610d19916153b7565b15610d25578b80610529565b608488604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152fd5b8b903b610dfe57608490604051907f220266b600000000000000000000000000000000000000000000000000000000825260805101600482015260406024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152fd5b610e0661333d565b90610b1d6040519283927f65c8fd4d00000000000000000000000000000000000000000000000000000000845260805101600484015260606024840152600d60648401527f4141323320726576657274656400000000000000000000000000000000000000608484015260a0604484015260a4830190612b73565b61014051915061051a565b6101408051849052516020819052604090205490985081811115610eb65750610140515b97610462565b8103610eb0565b80887f220266b6000000000000000000000000000000000000000000000000000000006084935260805101600482015260406024820152601860448201527f41413934206761732076616c756573206f766572666c6f7700000000000000006064820152fd5b60348210610fcb5781601411610fc45780359160248110610fc457603411610fc4576024810135608090811c60a0880152601490910135811c90860152606081901c15610f795760601c60e08501528980610390565b73ffffffffffffffffffffffffffffffffffffffff907fd8ccb29200000000000000000000000000000000000000000000000000000000610140515260601c16600452602461014051fd5b6101405180fd5b507f120aaab5000000000000000000000000000000000000000000000000000000006101405152600452602461014051fd5b61100a8160e05184613106565b926110158480613146565b919073ffffffffffffffffffffffffffffffffffffffff6110386020880161319a565b1695600187146111ec5786611055575b505001925060010161013a565b8060406110639201906131bb565b91873b15610fc457916040519283917f2dd8113300000000000000000000000000000000000000000000000000000000835286604484016040600486015252606483019160648860051b8501019281610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee182360301915b8b821061119257505050505081611123917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc858095030160248501526101405195613000565b0381610140518a5af19081611177575b5061116a57847f86a9f750000000000000000000000000000000000000000000000000000000006101405152600452602461014051fd5b929350839260015f611048565b61014051611184916129b7565b61014051610fc4575f611133565b9193967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c90879294969703018552863584811215610fc45760206111db6001938583940161325c565b9801950192018896959493916110dd565b867f86a9f750000000000000000000000000000000000000000000000000000000006101405152600452602461014051fd5b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576040805160079060209061126384826129b7565b8281527f4552433433333700000000000000000000000000000000000000000000000000910190815220815160019060209061129f85826129b7565b828152017f310000000000000000000000000000000000000000000000000000000000000081522082519160208301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f855283015260608201524660808201523060a082015260a0815261131560c0826129b7565b5190206002556101405180f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc457611359612a68565b33610140515261014051602052600160406101405120019081549165ffffffffffff6dffffffffffffffffffffffffffff8460081c16936113aa60ff821663ffffffff8360781c16878015156130b1565b60981c1680156114cd57428111611498575080547fffffffffffffff000000000000000000000000000000000000000000000000ff1690556040805173ffffffffffffffffffffffffffffffffffffffff831681526020810184905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2610140518080808573ffffffffffffffffffffffffffffffffffffffff86165af1611454612cce565b9015611461576101405180f35b610b1d906040519384937f0dcf087c0000000000000000000000000000000000000000000000000000000085523360048601612cfd565b7f561d331200000000000000000000000000000000000000000000000000000000610140515260045242602452604461014051fd5b7ffbd021d600000000000000000000000000000000000000000000000000000000610140515260045242602452604461014051fd5b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4573361014051526101405160205260016040610140512001805461158863ffffffff8260781c16918260ff6dffffffffffffffffffffffffffff8360081c169216916115828383838115156130b1565b826130b1565b65ffffffffffff4216019065ffffffffffff82116116255780547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001678ffffffffffff00000000000000000000000000000000000000609884901b1617905560405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a90602090a26101405180f35b7f4e487b710000000000000000000000000000000000000000000000000000000061014051526011600452602461014051fd5b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576101b761168d612a68565b61303e565b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576020610140515c604051908152f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45760043567ffffffffffffffff8111610fc4576020611726611781923690600401612a8b565b73ffffffffffffffffffffffffffffffffffffffff61174361336a565b16906040518095819482937f570e1a360000000000000000000000000000000000000000000000000000000084528760048501526024840191613000565b039161014051905af180156118125773ffffffffffffffffffffffffffffffffffffffff9161014051916117e3575b507f6ca7b80600000000000000000000000000000000000000000000000000000000610140515216600452602461014051fd5b611805915060203d60201161180b575b6117fd81836129b7565b810190612fd4565b826117b0565b503d6117f3565b6040513d61014051823e3d90fd5b34610fc45760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc457611857612a68565b60243567ffffffffffffffff8111610fc457611877903690600401612a8b565b604051929181908437820190610140518252610140519280610140519303915af46118a0612cce565b90610b1d6040519283927f9941055400000000000000000000000000000000000000000000000000000000845215156004840152604060248401526044830190612b73565b34610fc4576118f336612ae0565b6118fe829392612e84565b6119098185856134fc565b5061014051927fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f9728480a161014051915b85831061194a576101b78585614837565b90919360019061197061195e878987612f53565b6119688886612fc0565b51908861415c565b0194019190611939565b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45773ffffffffffffffffffffffffffffffffffffffff6119c6612a68565b1661014051526101405160205260206040610140512054604051908152f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45773ffffffffffffffffffffffffffffffffffffffff611a31612a68565b604051611a3d81612935565b6101405181526101405160208201526101405160408201526101405160608201526080610140519101521661014051526101405160205260a06040610140512065ffffffffffff604051611a9081612935565b63ffffffff60018454948584520154916dffffffffffffffffffffffffffff6020820160ff8516151581526040830190828660081c1682528660806060860195878960781c168752019660981c1686526040519788525115156020880152511660408601525116606084015251166080820152f35b34610fc45760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576020611b3e612a68565b73ffffffffffffffffffffffffffffffffffffffff611b5b612ab9565b91166101405152600182526040610140512077ffffffffffffffffffffffffffffffffffffffffffffffff82165f52825260405f20547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006040519260401b16178152f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45760043567ffffffffffffffff8111610fc4576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8236030112610fc457611c3b602091600401612d38565b604051908152f35b34610fc45760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc457611c7a612a68565b602435903361014051526101405160205260406101405120828154808211611d5e5790611ca691612cc1565b90556040805173ffffffffffffffffffffffffffffffffffffffff831681526020810184905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2610140518080808573ffffffffffffffffffffffffffffffffffffffff86165af1611d1a612cce565b9015611d27576101405180f35b610b1d906040519384937f9f3d69330000000000000000000000000000000000000000000000000000000085523360048601612cfd565b7f25c3f46e000000000000000000000000000000000000000000000000000000006101405152600452602452604461014051fd5b34610fc45760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc457611dc9612a68565b73ffffffffffffffffffffffffffffffffffffffff611de6612ab9565b91166101405152600160205277ffffffffffffffffffffffffffffffffffffffffffffffff6040610140512091165f52602052602060405f2054604051908152f35b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576020600254604051908152f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45760043577ffffffffffffffffffffffffffffffffffffffffffffffff81168103610fc457336101405152600160205277ffffffffffffffffffffffffffffffffffffffffffffffff6040610140512091165f5260205260405f20611f548154612c94565b90556101405180f35b34610fc457610140517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc457602073ffffffffffffffffffffffffffffffffffffffff611fad61336a565b16604051908152f35b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc45760043563ffffffff8116808203610fc457336101405152610140516020526121dd6dffffffffffffffffffffffffffff604061014051209361204260018601549163ffffffff8360781c16906120398282891515612bd0565b81871015612bd0565b60081c169261207a6120543486612c11565b946120628134881515612c4b565b346dffffffffffffffffffffffffffff871115612c4b565b546040519061208882612935565b815265ffffffffffff602082019160018352604081016dffffffffffffffffffffffffffff87168152606082019086825260016080840193610140518552336101405152610140516020526040610140512090518155019451151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008754169116178555517fffffffffffffffffffffffffffffffffff0000000000000000000000000000ff6effffffffffffffffffffffffffff008087549360081b16169116178455517fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff72ffffffff0000000000000000000000000000008086549360781b1616911617835551167fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff78ffffffffffff0000000000000000000000000000000000000083549260981b169116179055565b60405191825260208201527fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c0160403392a26101405180f35b34610fc45760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610fc4576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610fc457807fd9934b3f000000000000000000000000000000000000000000000000000000006020921490811561233d575b8115612313575b81156122e9575b81156122bf575b506040519015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014826122b4565b7f3e84f02100000000000000000000000000000000000000000000000000000000811491506122ad565b7fcf28ef9700000000000000000000000000000000000000000000000000000000811491506122a6565b7f283f5489000000000000000000000000000000000000000000000000000000008114915061229f565b346127ec576102007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126127ec5760043567ffffffffffffffff81116127ec57366023820112156127ec576123c8903690602481600401359101612a32565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36016101c081126127ec576101406040519161240483612935565b126127ec576040516124158161297e565b60243573ffffffffffffffffffffffffffffffffffffffff811681036127ec57815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526101043573ffffffffffffffffffffffffffffffffffffffff811681036127ec5760e082015261012435610100820152610144356101208201528152602081019161016435835260408201906101843582526101a435606084015260808301916101c43583526101e43567ffffffffffffffff81116127ec576124ee903690600401612a8b565b955a9030330361290d578651606081015195603f5a0260061c61271060a0840151890101116128e5575f968151918261282b575b50505050509061253a915a9003855101963691612a32565b925a9385516101008101516101208201517f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480155f14612825575048905b018082101561281d5750975b6125b273ffffffffffffffffffffffffffffffffffffffff60e084015116945182036060840151906148e4565b01925f92816126c85750505173ffffffffffffffffffffffffffffffffffffffff16945b5a900301019485029051928184105f146126745750506003811015612641576002036126135760209281611c3b929361260e81614a05565b614903565b7fdeadaa51000000000000000000000000000000000000000000000000000000006101405152602061014051fd5b7f4e487b710000000000000000000000000000000000000000000000000000000061014051526021600452602461014051fd5b816126aa929594969396039073ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f209081540180915590565b50600384101561264157826126c3926020951590614984565b611c3b565b9096918782516126db575b5050506125d6565b90919293505a9260038810156127f05760028803612711575b505060a0612708925a9003910151906148e4565b908880806126d3565b60a083015191803b156127ec578b925f928361276d938c8b88604051998a98899788957f7c627b210000000000000000000000000000000000000000000000000000000087526004870152608060248701526084860190612b73565b9202604484015260648301520393f190816127d7575b506127cd57610b1d61279361333d565b6040519182917fad7954bc000000000000000000000000000000000000000000000000000000008352602060048401526024830190612b73565b60a06127086126f4565b5f6127e1916129b7565b5f610140528a612783565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b905097612585565b90612579565b915f9291838093602073ffffffffffffffffffffffffffffffffffffffff885116910192f11561285e575b808080612522565b61253a939295506040519161287161333d565b90815161288a575b505050604052600193909188612856565b7f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a201905191602073ffffffffffffffffffffffffffffffffffffffff8551169401516128da60405192839283612bb6565b0390a3888080612879565b7fdeaddead000000000000000000000000000000000000000000000000000000005f5260205ffd5b7f9fbdaa09000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761295157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610140810190811067ffffffffffffffff82111761295157604052565b6060810190811067ffffffffffffffff82111761295157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761295157604052565b67ffffffffffffffff811161295157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192612a3e826129f8565b91612a4c60405193846129b7565b8294818452818301116127ec578281602093845f960137010152565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036127ec57565b9181601f840112156127ec5782359167ffffffffffffffff83116127ec57602083818601950101116127ec57565b6024359077ffffffffffffffffffffffffffffffffffffffffffffffff821682036127ec57565b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126127ec5760043567ffffffffffffffff81116127ec5760040182601f820112156127ec5780359267ffffffffffffffff84116127ec576020808301928560051b0101116127ec57919060243573ffffffffffffffffffffffffffffffffffffffff811681036127ec5790565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b604090612bcd939281528160208201520190612b73565b90565b15612bd9575050565b9063ffffffff80927fe1823bce000000000000000000000000000000000000000000000000000000005f52166004521660245260445ffd5b91908201809211612c1e57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b15612c54575050565b6dffffffffffffffffffffffffffff92507f0e10009c000000000000000000000000000000000000000000000000000000005f526004521660245260445ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612c1e5760010190565b91908203918211612c1e57565b3d15612cf8573d90612cdf826129f8565b91612ced60405193846129b7565b82523d5f602084013e565b606090565b909273ffffffffffffffffffffffffffffffffffffffff60809381612bcd979616845216602083015260408201528160608201520190612b73565b604290612d44816133d8565b60025491612d518161319a565b918015612e4f57905b60c0612d6960608301836131bb565b90816040519182372091612d89612d8360e08301836131bb565b90614b8e565b926040519473ffffffffffffffffffffffffffffffffffffffff60208701977f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216604087015260208301356060870152608086015260a085015260808101358285015260a081013560e085015201356101008301526101208201526101208152612e17610140826129b7565b519020604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b50612e5d60408201826131bb565b90816040519182372090612d5a565b67ffffffffffffffff81116129515760051b60200190565b90612e8e82612e6c565b612e9b60405191826129b7565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0612ec98294612e6c565b01905f5b828110612ed957505050565b602090604051612ee881612935565b604051612ef48161297e565b5f81525f848201525f60408201525f60608201525f60808201525f60a08201525f60c08201525f60e08201525f6101008201525f61012082015281525f838201525f60408201525f60608201525f608082015282828501015201612ecd565b9190811015612f935760051b810135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee1813603018212156127ec570190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8051821015612f935760209160051b010190565b908160209103126127ec575173ffffffffffffffffffffffffffffffffffffffff811681036127ec5790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4602073ffffffffffffffffffffffffffffffffffffffff6130a5348573ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f209081540180915590565b936040519485521692a2565b156130bb57505050565b906dffffffffffffffffffffffffffff63ffffffff927f8421e8e5000000000000000000000000000000000000000000000000000000005f521660045216602452151560445260645ffd5b9190811015612f935760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1813603018212156127ec570190565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156127ec570180359067ffffffffffffffff82116127ec57602001918160051b360383136127ec57565b3573ffffffffffffffffffffffffffffffffffffffff811681036127ec5790565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156127ec570180359067ffffffffffffffff82116127ec576020019181360383136127ec57565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112156127ec57016020813591019167ffffffffffffffff82116127ec5781360383136127ec57565b80359173ffffffffffffffffffffffffffffffffffffffff831683036127ec5773ffffffffffffffffffffffffffffffffffffffff612bcd931681526020820135602082015261332e6133226132e96132ce6132bb604087018761320c565b6101206040880152610120870191613000565b6132db606087018761320c565b908683036060880152613000565b6080850135608085015260a085013560a085015260c085013560c085015261331460e086018661320c565b9085830360e0870152613000565b9261010081019061320c565b91610100818503910152613000565b3d6108008111613361575b604051906020818301016040528082525f602083013e90565b50610800613348565b7fbc79d710c27c417daea28cbdc16e638da2309ea2f5542218b102827c395d15d45473ffffffffffffffffffffffffffffffffffffffff1680612bcd5750730a630a99df908a81115a3022927be82f9299987e90565b909392938483116127ec5784116127ec578101920390565b6133e560408201826131bb565b90916133f18284614a55565b156134f5576134026134079161319a565b614aaa565b91601482116134565750506040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b168252601481526134506034826129b7565b51902090565b816014116127ec576020613450916040519384917fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008484019760601b16875260147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec83019101603484013781015f8382015203017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826129b7565b5050505f90565b92919092835f5b8181106135105750505050565b61351a8185612fc0565b51613526828486612f53565b5f915a81519273ffffffffffffffffffffffffffffffffffffffff61354a8261319a565b168452602081013560208501526080810135936fffffffffffffffffffffffffffffffff8560801c951694604082019060608301968752815260c0820160a0840135815260c0840135906fffffffffffffffffffffffffffffffff8260801c921691610120850190610100860193845281526135c960e08701876131bb565b908161409f575b50506040516135de87612d38565b9960208a019a8b528160405285519586855117825117926effffffffffffffffffffffffffffff60808a01948551179560a08b01968751178951179051171161403d5750519051019051019051019051019051029560408601918783528973ffffffffffffffffffffffffffffffffffffffff60e089516136738b848351169561366b60408d018d6131bb565b929091614f08565b015116985f998015614016575b89516040810151905173ffffffffffffffffffffffffffffffffffffffff1680916040519d8e808d8b519360208301947f19822f7c00000000000000000000000000000000000000000000000000000000865260248401926136e193615395565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101825261371190826129b7565b51905f6020948194f15f519c3d60200361400e575b60405215613f23575015613ea9575b505073ffffffffffffffffffffffffffffffffffffffff8451166020850151905f52600160205260405f2077ffffffffffffffffffffffffffffffffffffffffffffffff8260401c165f5260205267ffffffffffffffff60405f209182549261379d84612c94565b90551603613e44575a860311613ddf5773ffffffffffffffffffffffffffffffffffffffff60e0606094015116613ad0575b505073ffffffffffffffffffffffffffffffffffffffff949260a0859360809360606138069801520135905a900301910152614c44565b92909116613a6b5761399f575061383173ffffffffffffffffffffffffffffffffffffffff91614c44565b9290911661393a576138465750600101613503565b6138d55760a490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f65000000000000000000000000000000000000000000000000000000000000006084820152fd5b608490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602060448201527f41413337207061796d617374657220696e76616c20626c6f636b2072616e67656064820152fd5b608483604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601460448201527f41413334207369676e6174757265206572726f720000000000000000000000006064820152fd5b82608491613a0957604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601760448201527f414132322065787069726564206f72206e6f74206475650000000000000000006064820152fd5b604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601e60448201527f41413237206f7574736964652076616c696420626c6f636b2072616e676500006064820152fd5b608484604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601460448201527f41413234207369676e6174757265206572726f720000000000000000000000006064820152fd5b909c9b9a99989796505a9085519d60e08f015173ffffffffffffffffffffffffffffffffffffffff168151613b04916153b7565b15613d7a57613b577f52b7512c00000000000000000000000000000000000000000000000000000000999a9b9c9d9e9f608001519261096b60405193849251905190602084019d8e528960248501615395565b5f8088518b82608073ffffffffffffffffffffffffffffffffffffffff60e08501511693015192865193f1983d90815f843e519482519a604084019b8c519115613cfc5760401490811591613cca575b50613c4d5750601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09101160191826040525a900311613beb5750948260a06137cf565b80887f220266b60000000000000000000000000000000000000000000000000000000060849352600482015260406024820152602060448201527f41413336206f76657220706d566572696669636174696f6e4761734c696d69746064820152fd5b8b610b1d613c5961333d565b6040519384937f65c8fd4d00000000000000000000000000000000000000000000000000000000855260048501526024840152601d60648401527f41413335206d616c666f726d6564207061796d61737465722064617461000000608484015260a0604484015260a4830190612b73565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09150601f011681018214155f613ba7565b828e610b1d613d0961333d565b6040519384937f65c8fd4d00000000000000000000000000000000000000000000000000000000855260048501526024840152600d60648401527f4141333320726576657274656400000000000000000000000000000000000000608484015260a0604484015260a4830190612b73565b608489604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b608489604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d697400006064820152fd5b60848a604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152fd5b613eb2916153b7565b15613ebe575f80613735565b60848a604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152fd5b8d903b613f8f57608490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152fd5b613f9761333d565b90610b1d6040519283927f65c8fd4d000000000000000000000000000000000000000000000000000000008452600484015260606024840152600d60648401527f4141323320726576657274656400000000000000000000000000000000000000608484015260a0604484015260a4830190612b73565b5f9150613726565b9950815f525f60205260405f20548181115f1461403657505f5b99613680565b8103614030565b808f7f220266b60000000000000000000000000000000000000000000000000000000060849352600482015260406024820152601860448201527f41413934206761732076616c756573206f766572666c6f7700000000000000006064820152fd5b6034821061413057816014116127ec57803560601c91602481106127ec576014820135906034116127ec576fffffffffffffffffffffffffffffffff60248193013560801c1660a089015260801c16608087015280156141055760e08601525f806135d0565b7fd8ccb292000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b507f120aaab5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9092915a6020820180515f5d606083015190604051968761418060608301836131bb565b5f6003821161482f575b7fffffffff00000000000000000000000000000000000000000000000000000000167f8dd7712f00000000000000000000000000000000000000000000000000000000036146c1575050505f61429561438961422361425560209587516040519384927f8dd7712f000000000000000000000000000000000000000000000000000000008a85015260406024850152606484019061325c565b906044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826129b7565b61096b6040519384927e42dc5300000000000000000000000000000000000000000000000000000000888501526102006024850152610224840190612b73565b614358604484018c60806101a091610120815173ffffffffffffffffffffffffffffffffffffffff8151168652602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015273ffffffffffffffffffffffffffffffffffffffff60e08201511660e087015261010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8382030161020484015288612b73565b828151910182305af15f5197604052156143a5575b5050505050565b909192939495505f3d6020146146b4575b7fdeaddead00000000000000000000000000000000000000000000000000000000810361444257608486604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152600f60448201527f41413935206f7574206f662067617300000000000000000000000000000000006064820152fd5b7fdeadaa5100000000000000000000000000000000000000000000000000000000919293949550145f146144aa57505061448e61448361449e925a90612cc1565b608084015190612c11565b60408301518361260e8295614a05565b905b5f8080808061439e565b9161451b919260405190518551907ff62676f440ff169a3a9afdbf812e89e7f95975ee8e5c31214ffdef631c5f4792602073ffffffffffffffffffffffffffffffffffffffff8451169301516144fe61333d565b9061450e60405192839283612bb6565b0390a36040525a90612cc1565b61452b6080840191825190612c11565b915f905a9285516101008101516101208201517f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480155f146146ae575048905b01808210156146a65750955b6145a573ffffffffffffffffffffffffffffffffffffffff60e084015116935182036060840151906148e4565b01925f92806146775750505173ffffffffffffffffffffffffffffffffffffffff16935b5a900301019283026040850151928184105f1461462b575050806145fe575090816145f8929361260e81614a05565b906144a0565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526021600452fd5b614660908284939795039073ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f209081540180915590565b506145fe575090825f61467293614984565b6145f8565b95919051614686575b506145c9565b9350905061469f5a9360a05f955a9003910151906148e4565b905f614680565b905095614578565b9061456c565b5060205f803e5f516143b6565b61482693506147fa91614706917e42dc530000000000000000000000000000000000000000000000000000000060208601526102006024860152610224850191613000565b6147c9604484018960806101a091610120815173ffffffffffffffffffffffffffffffffffffffff8151168652602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c087015273ffffffffffffffffffffffffffffffffffffffff60e08201511660e087015261010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8382030161020484015285612b73565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018952886129b7565b60205f88614389565b50813561418a565b73ffffffffffffffffffffffffffffffffffffffff1680156148b9575f805d5f80808085855af1614866612cce565b901561487157505050565b610b1d906040519384937f40848e6100000000000000000000000000000000000000000000000000000000855260048501526024840152606060448401526064830190612b73565b7f1a3b45fd000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b90619c4082018111156148fd57606491600a9103020490565b50505f90565b9190917f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f6080602083015192519473ffffffffffffffffffffffffffffffffffffffff86511694602073ffffffffffffffffffffffffffffffffffffffff60e089015116970151916040519283525f602084015260408301526060820152a4565b9060807f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f91602084015193519573ffffffffffffffffffffffffffffffffffffffff87511695602073ffffffffffffffffffffffffffffffffffffffff60e08a015116980151926040519384521515602084015260408301526060820152a4565b60208101519051907f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e60208073ffffffffffffffffffffffffffffffffffffffff855116940151604051908152a3565b90600211614aa557357fffffffffffffffffffffffffffffffffffffffff000000000000000000000000167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000831603614b19575060481c73ffffffffffffffffffffffffffffffffffffffff1690565b8073ffffffffffffffffffffffffffffffffffffffff913b15614b62577f9f4e4cc9000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7fe5819b95000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b614b988282614d70565b80614ba95750816040519182372090565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe919203604051927ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff682019084377f22e325a2974396560000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6828501015201902090565b8015614d67575f60408051614c588161299b565b8281528260208201520152604073ffffffffffffffffffffffffffffffffffffffff82169165ffffffffffff8160a01c16908115614d59575b60d01c908251614ca08161299b565b84815282602082015265ffffffffffff821693849101526580000000000082101580614d49575b15614cfa57657fffffffffff16431191508115614ce7575b509060019092565b657fffffffffff9150164311155f614cdf565b507f182d361d27e8fee91541f8630840b9272bdb770c7bb6239b09cd74563c4053415480614d43575042915b8211918215614d38575b5050905f9092565b111590505f80614d30565b91614d26565b5065800000000000831015614cc7565b65ffffffffffff9150614c91565b505f905f905f90565b603e82106148fd577f22e325a2974396560000000000000000000000000000000000000000000000007fffffffffffffffff000000000000000000000000000000000000000000000000614de8847ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8810181866133c0565b90358281169160088110614ef3575b505016036148fd5781614e2e91817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff68101916133c0565b90357fffff00000000000000000000000000000000000000000000000000000000000081169160028110614ebe575b505060f01c907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc281018211614e90575090565b7f07b9a191000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fffff0000000000000000000000000000000000000000000000000000000000009250829060020360031b1b16165f80614e5d565b839250829060080360031b1b16165f80614df7565b929091925f82614f19575050505050565b83519473ffffffffffffffffffffffffffffffffffffffff86511695614f3f8583614a55565b6152585750601484106151f357836014116151ef57803560601c93863b6151b957614fca9160209173ffffffffffffffffffffffffffffffffffffffff614f8461336a565b16908560408a510151926040518097819682957f570e1a360000000000000000000000000000000000000000000000000000000084528960048501526024840191613000565b0393f19182156151ad579161518e575b5073ffffffffffffffffffffffffffffffffffffffff811680156151295785036150c4573b1561505f575060407fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d9173ffffffffffffffffffffffffffffffffffffffff60e06020860151955101511682519182526020820152a35f8080808061439e565b608490604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152fd5b608482604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152602060448201527f4141313420696e6974436f6465206d7573742072657475726e2073656e6465726064820152fd5b608483604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601b60448201527f4141313320696e6974436f6465206661696c6564206f72204f4f4700000000006064820152fd5b6151a7915060203d60201161180b576117fd81836129b7565b5f614fda565b604051903d90823e3d90fd5b50505050906020807fa39bcda08ffd11bafb11c4f170ef24fc6dc1a9d1b0394d90dbd19e0b919050e992015192604051908152a3565b5080fd5b608483604051907f220266b6000000000000000000000000000000000000000000000000000000008252600482015260406024820152601760448201527f4141393920696e6974436f646520746f6f20736d616c6c0000000000000000006064820152fd5b9195949390925060148111615270575b505050505050565b604073ffffffffffffffffffffffffffffffffffffffff61528f61336a565b16920151816014116127ec57823b156127ec57615312935f80946040518097819682957fc09ad0d90000000000000000000000000000000000000000000000000000000084528c60048501526040602485015260147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec6044860193019101613000565b0393f1801561538a57615375575b507f7c9f9ade6a03a0bba484e52df872467a270e798ffc1adab9dfaa8d0e627f054473ffffffffffffffffffffffffffffffffffffffff602061536285614aaa565b93015192169380a45f8080808080615268565b6153829193505f906129b7565b5f915f615320565b6040513d5f823e3d90fd5b6153ad6040929594939560608352606083019061325c565b9460208201520152565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f209081548181106134f55703905560019056fea2646970667358221220e3c97fad07ea6550b07d0ed38eee12263e6fda5e1775f61a77f7586bcb1901bd64736f6c634300081c0033", "sourceMap": "1387:40866:30:-:0;;;;;;;;;-1:-1:-1;1387:40866:30;;;;;;;;1348:10:4;;;:::i;:::-;1387:40866:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8194:31;1387:40866;8194:31;;;1387:40866;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;5123:11;;;;;;;5962:26;;;;:::i;:::-;;;1387:40866;;6003:19;;1387:40866;;6041:13;;6056:11;;;;;;;;6401:17;1387:40866;;;;6401:17;1387:40866;;6468:11;;;;1387:40866;;6513:11;;;;;;;7032:9;;;;;:::i;:::-;1387:40866;;;;6526:3;6733:11;6585:19;;;;;;:::i;:::-;1387:40866;6662:14;5323;6662;;;:::i;:::-;1387:40866;6627:51;1387:40866;;;;6627:51;6733:11;;:::i;:::-;1387:40866;;;6808:171;6828:10;;;;;;6526:3;;;5464:1;1387:40866;6498:13;;6840:3;6904:6;;;5464:1;6904:6;6880:49;6904:6;;;;;:::i;:::-;6912:16;;;;;;:::i;:::-;;6880:49;;;;:::i;:::-;1387:40866;6951:9;;;;1387:40866;6951:9;;1387:40866;6813:13;;;;6069:3;6128:19;;;;;;;:::i;:::-;1387:40866;6256:14;5323;6202:11;;;;:::i;:::-;;;6256:14;;;:::i;:::-;-1:-1:-1;;1387:40866:30;;;-1:-1:-1;15136:10:30;;;;;;;1387:40866;;;;;;;;6289:78;;5464:1;6069:3;;1387:40866;6069:3;;6041:13;;15148:3;15198:26;15206:17;;;1387:40866;15198:26;;;:::i;:::-;;15354:6;;;;;;:::i;:::-;15133:1;;;34055:9;34104:17;;18607:13;1387:40866;18607:13;;;:::i;:::-;1387:40866;;;5323:14;18646:12;;;1387:40866;18630:13;;;1387:40866;494:2:5;18752:23:30;;;;1387:40866;494:2:5;;;18699:20:30;;;1387:40866;;;;18669:28;;1387:40866;18815:25;;;1387:40866;18786:26;;;;1387:40866;;;;18934:14;;1387:40866;494:2:5;;;18881:20:30;;;1387:40866;;18851:28;;;1387:40866;18993:23;1387:40866;18993:23;;18646:12;18993:23;:::i;:::-;19030:27;;19026:552;;15148:3;41469:67;;1387:40866;41469:67;34363:21;;;;:::i;:::-;5323:14;34340:20;;1387:40866;41752:66;1387:40866;41752:66;1387:40866;18669:28;;1387:40866;18786:26;1387:40866;18786:26;;;;1387:40866;34674:49;18699:20;;;1387:40866;34674:72;18752:23;34761:37;;1387:40866;34674:124;18815:25;34801:31;;1387:40866;34674:158;18881:20;;;1387:40866;34674:181;18851:28;;;1387:40866;34674:224;34916:33;1387:40866;;18669:28;1387:40866;18669:28;;1387:40866;18699:20;;;1387:40866;;18752:23;34761:37;;1387:40866;;18815:25;34801:31;;1387:40866;;18786:26;;;1387:40866;;18881:20;;;1387:40866;;35072:17;;1387:40866;35072:17;;1387:40866;23167:14;;1387:40866;;1773:5;;;1387:40866;23279:11;;;;;1387:40866;23279:11;;;;:::i;:::-;15206:17;;;;;1387:40866;23279:11;:::i;:::-;23325:17;1773:5;1387:40866;15133:1;;;23405:23;;;23401:182;;15148:3;24613:14;;1387:40866;24613:35;;1387:40866;1773:5;;1387:40866;;15133:1;;;41469:67;1387:40866;41469:67;34340:20;;;5323:14;34340:20;;2019:4;24831:85;5323:14;24831:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15133:1;;24930:362;;;15133:1;;;;24930:362;5323:14;24930:362;;15133:1;;24930:362;;;5323:14;24930:362;;;15148:3;1387:40866;41752:66;25357:8;25353:286;;23405:23;;23688:205;;15148:3;1773:5;;1387:40866;1773:5;;1387:40866;5323:14;18630:13;;1387:40866;15133:1;;;1387:40866;5464:1;5323:14;1387:40866;;15133:1;;1387:40866;;;;;;-1:-1:-1;1387:40866:30;;;;;-1:-1:-1;1387:40866:30;;;;1178:34:2;;;;:::i;:::-;1387:40866:30;;;1178:41:2;1387:40866:30;;35376:9;2019:4;;35367:41;35363:138;;1387:40866;35555:17;1773:5;18699:20;;1387:40866;;35551:155;;15148:3;1387:40866;35739:23;;18815:25;35739:23;;18752;35739;18699:20;30422:34;35739:23;;1387:40866;18815:25;1387:40866;35841:9;;2019:4;;1387:40866;35811:18;;1387:40866;30422:34;:::i;:::-;1387:40866;;;;30470:32;;30466:111;;30586:222;;31128:43;;1387:40866;31128:43;;:::i;:::-;1387:40866;;;;31181:105;;31295:293;;15148:3;5464:1;1387:40866;15121:13;;31295:293;31333:111;;31523:54;1387:40866;;;31523:54;;;;15206:17;;1387:40866;;31523:54;;1387:40866;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;;;;;;31523:54;31333:111;31376:53;1387:40866;;;31376:53;;;;15206:17;;1387:40866;;31376:53;;1387:40866;;24831:85;1387:40866;;;5323:14;1387:40866;;;2019:4;1387:40866;2019:4;;;1387:40866;31376:53;31181:105;31234:41;1387:40866;;;31234:41;;;;15206:17;;1387:40866;;31234:41;;1387:40866;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;31234:41;30586:222;30624:109;30753:44;30624:109;;;1387:40866;;30753:44;;;;15206:17;;1387:40866;;30753:44;;1387:40866;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;30753:44;30624:109;1387:40866;;30667:51;;;;15206:17;;1387:40866;;30667:51;;1387:40866;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;30667:51;30466:111;30525:41;1387:40866;;;30525:41;;;;15206:17;;1387:40866;;30525:41;;1387:40866;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;30525:41;35551:155;26602:9;;;;;;;26655:14;;;26703:17;26793:48;1387:40866;;26703:17;;1773:5;1387:40866;;35072:17;;1387:40866;26793:48;;:::i;:::-;26792:49;26788:146;;18752:23;27600:91;26980:37;;;;;;1387:40866;;41469:67;27600:91;34340:20;27600:91;5323:14;34340:20;;2019:4;1387:40866;35072:17;;1387:40866;27600:91;5323:14;27600:91;;;;;;24831:85;27600:91;;;:::i;:::-;;24831:85;27600:91;;;;;;:::i;:::-;27721:14;;18752:23;1387:40866;;27721:24;;1773:5;1387:40866;27795:44;;1387:40866;15133:1;;;;;;27954:1143;;;15133:1;;;27954:1143;;;;15133:1;;;;27954:1143;;;;;;;1387:40866;27954:1143;;;;;29135:8;;29131:141;;1387:40866;29465:19;;;;:52;;;35551:155;29461:239;;;1387:40866;29433:2;24831:85;1387:40866;;;6114:413:1;;;1387:40866:30;6114:413:1;27135:9:30;2019:4;;27126:43;27122:142;;-1:-1:-1;35602:93:30;35551:155;;27122:142;27196:53;;;;;;15206:17;;1387:40866;;27196:53;;1387:40866;;24831:85;1387:40866;;;5323:14;1387:40866;;;2019:4;1387:40866;2019:4;;;1387:40866;27196:53;29461:239;29626:41;1387:40866;29626:41;;:::i;:::-;1387:40866;;29544:141;;;;;;15206:17;;1387:40866;;29544:141;;1387:40866;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;18815:25;1387:40866;;;;;;;;;:::i;:::-;29544:141;;;29465:52;24831:85;1387:40866;;29433:2;1387:40866;;;;29488:29;;;29465:52;;;29131:141;29215:41;;1387:40866;29215:41;;:::i;:::-;1387:40866;;29170:87;;;;;;15206:17;;1387:40866;;29170:87;;1387:40866;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;18815:25;1387:40866;;;;;;;;;:::i;26788:146::-;26868:51;1387:40866;;;26868:51;;;;15206:17;;1387:40866;;26868:51;;1387:40866;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;26868:51;35363:138;35435:51;1387:40866;;;35435:51;;;;15206:17;;1387:40866;;35435:51;;1387:40866;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;35435:51;1387:40866;;;;;;;;;15206:17;;1387:40866;;;;;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;;23688:205;23740:45;;;:::i;:::-;23739:46;23735:144;;23688:205;;;;23735:144;23816:44;1387:40866;;;23816:44;;;;15206:17;;1387:40866;;23816:44;;1387:40866;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;23816:44;25353:286;25385:18;;;;;25435:46;1387:40866;;;25435:46;;;;15206:17;;1387:40866;;25435:46;;1387:40866;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;25435:46;25381:248;25572:41;;:::i;:::-;1387:40866;;;;25527:87;;;;;;15206:17;;1387:40866;;25527:87;;1387:40866;18699:20;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;18815:25;1387:40866;;;;;;;;;:::i;24930:362::-;15133:1;;;-1:-1:-1;24930:362:30;;23401:182;15133:1;;;1387:40866;;;15133:1;5323:14;1387:40866;;;;;;;15133:1;;-1:-1:-1;23519:21:30;;;;;;15133:1;;;23519:49;23401:182;;;23519:49;2019:4;;23519:49;;1387:40866;;;;;;;15206:17;;1387:40866;;;;;;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;;19026:552;550:2:5;19098:65:30;;550:2:5;;1387:40866:30;432:2:5;1387:40866:30;;;432:2:5;;;24831:85:30;1387:40866;-1:-1:-1;1387:40866:30;;550:2:5;1387:40866:30;;;24831:85;1387:40866;;494:2:5;18752:23:30;494:2:5;;;18815:25:30;19336:31;;1387:40866;432:2:5;1387:40866:30;;;494:2:5;;;19297:37:30;;;1387:40866;18699:20;415:8:0;;;19471:23:30;550:2:5;;18699:20:30;415:8:0;1387:40866:30;19538:17;;1387:40866;19026:552;;;;550:2:5;1387:40866:30;15133:1;550:2:5;15133:1:30;;550:2:5;18699:20:30;415:8:0;;1387:40866:30;;24831:85;15133:1;;550:2:5;1387:40866:30;15133:1;;;1387:40866;550:2:5;15133:1:30;550:2:5;15133:1:30;;550:2:5;1387:40866:30;;24831:85;15133:1;;550:2:5;5136:3:30;5195:19;;;;;;:::i;:::-;5269:11;;;;;:::i;:::-;5323:14;;1387:40866;5323:14;;;;;:::i;:::-;1387:40866;5433:33;5464:1;5433:33;;1387:40866;;5538:33;5534:329;;5136:3;-1:-1:-1;;1387:40866:30;;-1:-1:-1;5464:1:30;1387:40866;5108:13;;5534:329;5699:13;1387:40866;5699:13;;;;;:::i;:::-;5664:49;;;;;;1387:40866;;;5664:49;;;1387:40866;5664:49;;1387:40866;;;;;;5664:49;;1387:40866;2019:4;;;;1387:40866;2019:4;1387:40866;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5664:49;1387:40866;;;5664:49;;;;;;;1387:40866;-1:-1:-1;5660:185:30;;1387:40866;5776:46;1387:40866;;5776:46;1387:40866;;;;;5776:46;5660:185;;;-1:-1:-1;5660:185:30;;5464:1;5534:329;;;5664:49;1387:40866;;5664:49;;;:::i;:::-;1387:40866;;;;5664:49;;;1387:40866;;;;;;;;;;;;;;;;;;;;;;;5323:14;1387:40866;5464:1;1387:40866;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3362:29;1387:40866;;2537:9;;1387:40866;;;;;;:::i;:::-;;;;2537:9;;;;3426:32;1387:40866;;3485:80;1387:40866;3485:80;;1387:40866;3163:95;1387:40866;;3163:95;;1387:40866;3163:95;;;1387:40866;3536:13;3163:95;;;1387:40866;3559:4;3163:95;;;1387:40866;3163:95;3485:80;;;;;;:::i;:::-;1773:5;3475:91;;3759:46;1387:40866;;;;;;;;;;;;;;;;;;:::i;:::-;4333:10:4;1387:40866:30;;;;;;;4370:10:4;1387:40866:30;;;;4370:10:4;1387:40866:30;;;;;;;;;;;4390:76:4;1387:40866:30;;;;;;;;4398:9:4;;;;4390:76;:::i;:::-;1387:40866:30;;;4484:21:4;;1387:40866:30;;4543:15:4;4591:36;;1387:40866:30;;-1:-1:-1;1387:40866:30;;;;;;;;;;;;;;;;;;;;4333:10:4;;4807:50;;;1387:40866:30;;;;;;;;;4902:38:4;;;;:::i;:::-;1387:40866:30;;;;;;;;;;;;;;;;;;;4333:10:4;1387:40866:30;;;;:::i;:::-;;;;;;;4543:15:4;1387:40866:30;;;;;;;;;;;;;4543:15:4;1387:40866:30;;;;;;;;;;;;;;;;;;3763:10:4;1387:40866:30;;;;;;;3792:20:4;1387:40866:30;;;;3792:20:4;1387:40866:30;;3886:78:4;1387:40866:30;;;;;;;;;;;;;;;3792:25:4;3784:92;3792:25;;;;;;3784:92;:::i;:::-;3886:78;;:::i;:::-;1387:40866:30;4003:15:4;1387:40866:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3763:10:4;;4128:39;;1387:40866:30;;4128:39:4;1387:40866:30;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7896:45;;:::i;:::-;1387:40866;;;;7671:38;;;;;;1387:40866;7671:38;;;1387:40866;7671:38;;1387:40866;;;;;;:::i;:::-;7671:38;1387:40866;;;7671:38;;;;;;;1387:40866;;;;7671:38;;;1387:40866;;7726:27;1387:40866;;7726:27;1387:40866;;;;;;7726:27;7671:38;;;;1387:40866;7671:38;1387:40866;7671:38;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1387:40866;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;8152:25;;;;;;;:::i;:::-;1387:40866;;;;8194:31;;;;;;1387:40866;;;8194:31;;1387:40866;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;4414:24;;;;;:::i;:::-;4472:52;;;;;:::i;:::-;-1:-1:-1;1387:40866:30;;;4579:17;1387:40866;;4579:17;1387:40866;;4611:120;4631:10;;;;;;4770:9;;;;:::i;4643:3::-;4697:6;;;1387:40866;4697:6;4679:37;4697:6;;;;;:::i;:::-;4705:10;;;;:::i;:::-;;4679:37;;;:::i;:::-;1387:40866;4643:3;1387:40866;4616:13;;;;1387:40866;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;515:19:2;1387:40866:30;;;;;;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;;;;;;515:55:2;1387:40866:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;5239:10:4;;1387:40866:30;;;;;;;;;;;;;;5315:32:4;;;1387:40866:30;;5426:31:4;;;;:::i;:::-;1387:40866:30;;;;;;;;;;;;;;;;5239:10:4;;5472:54;;;1387:40866:30;;;;;;;;;5571:47:4;;;;:::i;:::-;1387:40866:30;;;;;;;;;;;;;;;;;;;5239:10:4;1387:40866:30;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;279:74:2;1387:40866:30;;;;;;;279:74:2;1387:40866:30;-1:-1:-1;1387:40866:30;;;;;-1:-1:-1;1387:40866:30;;;;;;;;;;;;;;;;;;;;;;;1662:197:5;1387:40866:30;;;;;;;;;;;;;;;;3897:19;1387:40866;;;;;;;;;;;;;;;;;;;;;;;;;;;710:10:2;1387:40866:30;;;690:19:2;1387:40866:30;;;;;;;690:36:2;1387:40866:30;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;690:38:2;1387:40866:30;;690:38:2;:::i;:::-;1387:40866:30;;;;;;;;;;;;;;;;;;;;7896:45;;:::i;:::-;1387:40866;;;;;;;;;;;;;;;;;;;;;;;;;2942:10:4;1387:40866:30;;;;;;;;;;;;;3029:20:4;3061:142;3029:20;;;1387:40866:30;;;;;;;2971:19:4;2963:88;2971:19;;;;;2963:88;:::i;:::-;3082:39;;;;3061:142;:::i;:::-;1387:40866:30;;;3242:9:4;3326:72;3229:22;3242:9;3229:22;;:::i;:::-;3242:9;3261:55;3242:9;;3269;;;3261:55;:::i;:::-;3242:9;1387:40866:30;3334:26:4;;;3326:72;:::i;:::-;1387:40866:30;;;;;;;:::i;:::-;;;;;3431:137:4;;1387:40866:30;3029:20:4;1387:40866:30;;;3431:137:4;;1387:40866:30;;;;;3431:137:4;;;1387:40866:30;;;;3029:20:4;3431:137;;;1387:40866:30;;;;;2942:10:4;1387:40866:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3583:47:4;1387:40866:30;2942:10:4;3583:47;;1387:40866:30;;;;;;;;;;;;;;;;;;;;;;;;;8637:130;8669:97;1387:40866;8637:130;;:190;;;;;1387:40866;8637:240;;;;1387:40866;8637:302;;;;1387:40866;8637:342;;;;1387:40866;;;;;;;;;;8637:342;877:25:24;862:40;;;8637:342:30;;;:302;8735:31;8893:46;;;-1:-1:-1;8637:302:30;;:240;8701:31;8831:46;;;-1:-1:-1;8637:240:30;;:190;8669:29;8783:44;;;-1:-1:-1;8637:190:30;;1387:40866;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16869:9;;16918:4;;16896:10;:27;1387:40866;;16984:14;;1387:40866;17032:20;;1387:40866;17171:9;17183:2;17171:9;1387:40866;;;1773:5;1387:40866;17208:31;;1387:40866;;;;-1:-1:-1;17167:253:30;;1387:40866;1773:5;;;17516:19;;17512:557;;1387:40866;18132:9;;;;;;2019:4;18132:9;;2019:4;;1387:40866;;;;;2019:4;;:::i;:::-;18180:48;36838:9;36881:21;36946:14;;1387:40866;40182:20;;1387:40866;;40247:28;;1387:40866;405:35:29;1387:40866:30;2492:12:29;;:38;:12;;;2507:13;;2492:38;;1387:40866:30;5790:5:1;;;;;;:13;;;37367:60:30;1387:40866;;37055:17;;1773:5;1387:40866;;;2019:4;;1387:40866;37406:20;;1387:40866;37367:60;;:::i;:::-;1387:40866;;;;37503:23;1387:40866;;-1:-1:-1;;1773:5:30;1387:40866;;;37499:1282;38816:9;2019:4;;1387:40866;;;;;;;38964:23;;;;38960:796;38964:23;;;1387:40866;;;;;;;;39019:36;39011:44;39019:36;;1387:40866;39079:23;;39226:9;39079:23;39143:6;;;;:::i;:::-;39226:9;:::i;39007:440::-;39283:146;1387:40866;;39283:146;1387:40866;;;39283:146;1387:40866;;;;;;;;;;;;38960:796;2019:4;39543:40;2019:4;;;;;;;39543:40;1387:40866;;1737:8:4;1387:40866:30;1737:8:4;1387:40866:30;;;1737:8:4;1387:40866:30;;;;;;;;1581:313:4;;39543:40:30;;1387:40866;;;;;;39616:41;39731:9;39616:41;1387:40866;39616:41;;39731:9;;:::i;:::-;38960:796;;37499:1282;37615:25;;;;1773:5;;37658:1109;;37499:1282;;;;;;37658:1109;37785:9;;;;;;1387:40866;;;;;;;37828:36;37820:44;;37816:569;;37658:1109;38624:9;;1387:40866;38680:68;38624:9;;2019:4;;38716:31;;1387:40866;38680:68;;:::i;:::-;37658:1109;;;;;;37816:569;1387:40866;37930:31;;1387:40866;37896:160;;;;;;1387:40866;;;;;;;;;;;;37896:160;;;;;;;1387:40866;37896:160;;1387:40866;37896:160;;1387:40866;;;;;;;;;;;:::i;:::-;;;;;;;;;;;37896:160;;;;;;;37816:569;-1:-1:-1;37892:471:30;;1387:40866;38236:41;;:::i;:::-;1387:40866;;38314:22;;;;;;1387:40866;;38314:22;;1387:40866;;;;;;:::i;37892:471::-;1387:40866;38680:68;37816:569;;37896:160;1387:40866;37896:160;;;:::i;:::-;1387:40866;;;37896:160;;;;1387:40866;;;;;;;;;;;;;5790:13:1;;;;;;2492:38:29;;;;17512:557:30;1773:5;1387:40866;1773:5;;;;;1387:40866;;1773:5;;1387:40866;368:118:15;;;;17636:8:30;17632:427;;17512:557;;;;;;17632:427;2019:4;41469:67;;;;1387:40866;41469:67;17735:41;;;:::i;:::-;1773:5;;;17794:152;;17632:427;41752:66;;;1387:40866;41752:66;1387:40866;17632:427;;;;;;17794:152;17844:83;2019:4;;1773:5;1387:40866;;1773:5;;1387:40866;17905:13;;1387:40866;17844:83;1387:40866;;17844:83;;;;;:::i;:::-;;;;17794:152;;;;;17167:253;17280:126;1387:40866;17280:126;1387:40866;;17280:126;1387:40866;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1387:40866:30;;;;;-1:-1:-1;1387:40866:30;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1387:40866:30;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2019:4::-;;1387:40866;;2019:4;;;1773:5;;2019:4;;;;;;;;;;;-1:-1:-1;2019:4:30;;;;;;1387:40866;;2019:4;;;:::o;:::-;;;;;;1387:40866;;2019:4;;;;;;;;:::i;:::-;;:::o;1387:40866::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1387:40866:30;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7097:300::-;3445:249:23;7097:300:30;7228:54;;;:::i;:::-;3897:19;1387:40866;2265:13:5;;;;:::i;:::-;2349:82;:25;;;;:82;;2647:14;2479:15;;;;;;:::i;:::-;3346:173:1;;;;;;;;2722:23:5;2702:44;2722:23;;;;;;:::i;:::-;2702:44;;:::i;:::-;1387:40866:30;3346:173:1;1387:40866:30;2764:233:5;1387:40866:30;2304:12:5;2764:233;;1387:40866:30;1662:197:5;1387:40866:30;;;3346:173:1;1387:40866:30;;;2304:12:5;;;1387:40866:30;2479:15:5;1387:40866:30;;;2532:23:5;1387:40866:30;;;2594:25:5;1387:40866:30;;;2532:23:5;;;1387:40866:30;;;;;2594:25:5;;;1387:40866:30;2722:23:5;1387:40866:30;;;2647:14:5;1387:40866:30;;;;;;;;;;2764:233:5;;;;;;:::i;:::-;1773:5:30;9525:47:5;;3346:173:1;3445:249:23;;;;;3897:19:30;3445:249:23;;;;;;;;7097:300:30;:::o;2349:82:5:-;2415:15;;;;;;;:::i;:::-;3346:173:1;;2415:15:5;3346:173:1;;;;;2349:82:5;;;1387:40866:30;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;1387:40866:30;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;1387:40866:30;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;-1:-1:-1;1387:40866:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;1773:5;;1387:40866;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;2019:4;1387:40866;;;;2019:4;;;;;;1387:40866;-1:-1:-1;1387:40866:30;;;;;;;;;;;:::o;2610:179:4:-;2752:30;1387:40866:30;;2700:37:4;2727:9;2700:37;1387:40866:30;;1737:8:4;1387:40866:30;1737:8:4;1387:40866:30;;;1737:8:4;1387:40866:30;;;;;;;;1581:313:4;;2700:37;1387:40866:30;;;;;;;2752:30:4;;2610:179::o;1387:40866:30:-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;1176:508:15:-;1273:405;2019:4:30;1273:405:15;;;;1176:508;1273:405;;;;;;;;;;;;;;;;;;1176:508;:::o;1273:405::-;;2019:4:30;1273:405:15;;1971:226:29;317:27;;1387:40866:30;;2131:21:29;1387:40866:30;;2131:59:29;998:42;1971:226;:::o;1387:40866:30:-;;;;;;;;;;;;;;;;;;;:::o;862:488:0:-;1008:15;;;;;;:::i;:::-;1038:28;;;;;;:::i;:::-;1037:29;1033:68;;1149:13;1129:34;1149:13;;:::i;:::-;1129:34;:::i;:::-;1177:21;1196:2;1177:21;;1196:2;;1387:40866:30;;1008:15:0;1387:40866:30;;1229:26:0;;;1387:40866:30;;;;;;1196:2:0;1229:26;;;;;;:::i;:::-;1773:5:30;1219:37:0;;1212:44;:::o;1173:170::-;1387:40866:30;1196:2:0;1387:40866:30;;;1300:42:0;;1387:40866:30;1008:15:0;1387:40866:30;1300:42:0;;;1387:40866:30;1300:42:0;;;1387:40866:30;;;;;;1196:2:0;1387:40866:30;;;;;;;;;;;;;;;;1300:42:0;;;;;;;;;:::i;1033:68::-;1082:8;;;1387:40866:30;1082:8:0;:::o;14820:751:30:-;;;;;15083:19;1387:40866;15136:10;;;;;;14820:751;;;;:::o;15148:3::-;15198:26;;;;:::i;:::-;;15354:6;;;;;:::i;:::-;1387:40866;34055:9;;34104:17;;18607:13;1387:40866;18607:13;;;:::i;:::-;1387:40866;;;18646:12;;;1387:40866;18646:12;18630:13;;1387:40866;18752:23;;;1387:40866;18723:53;494:2:5;1387:40866:30;18752:23;1387:40866;494:2:5;;3127:52;18669:28:30;;;18699:20;;;;1387:40866;;;;;18786:26;;;18815:25;;;1387:40866;;;18786:26;18934:14;;1387:40866;18905:44;494:2:5;1387:40866:30;18752:23;1387:40866;494:2:5;;3127:52;18851:28:30;;;18881:20;;;;1387:40866;;;;;18993:23;;;;;;:::i;:::-;19030:27;;19026:552;;15148:3;41469:67;;18669:28;41469:67;34363:21;;;:::i;:::-;34340:20;18646:12;34340:20;;1387:40866;;;41752:66;18669:28;41752:66;1387:40866;;;;;;34674:49;1387:40866;;34674:72;34761:37;1387:40866;18752:23;34761:37;;1387:40866;;;34674:124;34801:31;18815:25;34801:31;;1387:40866;;;34674:158;1387:40866;;34674:181;1387:40866;;34674:224;34916:33;1387:40866;;;;;;;;;;;;;;;;;;;35072:17;18669:28;35072:17;;1387:40866;;;;23167:14;1387:40866;18993:23;23167:14;;23279:11;1773:5;;;;1387:40866;23279:11;;18669:28;23279:11;;;;:::i;:::-;;;;;:::i;:::-;23325:17;1773:5;1387:40866;23356:31;1387:40866;23405:23;;;23401:182;;15148:3;24613:14;;18669:28;24613:35;;1387:40866;1773:5;;1387:40866;;24706:12;;18669:28;41469:67;2019:4;;;;;;24831:85;18646:12;24831:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;24930:362;;1387:40866;18646:12;24930:362;;;;1387:40866;24930:362;;;18646:12;24930:362;;;15148:3;18669:28;41752:66;25357:8;25353:286;;23405:23;;23688:205;;15148:3;1773:5;;1387:40866;1773:5;;1387:40866;18646:12;18630:13;;1387:40866;;;;;18646:12;1387:40866;18669:28;1387:40866;;;;18669:28;1387:40866;;-1:-1:-1;1387:40866:30;;;;;-1:-1:-1;1387:40866:30;;;;1178:34:2;;;;:::i;:::-;1387:40866:30;;;1178:41:2;1387:40866:30;;35376:9;2019:4;;35367:41;35363:138;;1387:40866;18993:23;18699:20;35555:17;;1773:5;1387:40866;35551:155;;15148:3;35739:23;;1387:40866;35739:23;;18815:25;35739:23;;18752;35739;18699:20;30422:34;35739:23;;1387:40866;18815:25;1387:40866;35841:9;;2019:4;;1387:40866;35811:18;;1387:40866;30422:34;:::i;:::-;1387:40866;;;;30466:111;;30586:222;;31128:43;;1387:40866;31128:43;;:::i;:::-;1387:40866;;;;31181:105;;31295:293;;15148:3;1387:40866;;15121:13;;31295:293;31333:111;;31523:54;1387:40866;18669:28;1387:40866;31523:54;;;;;;;1387:40866;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;;;;;;31523:54;31333:111;31376:53;1387:40866;18669:28;1387:40866;31376:53;;;;;;;1387:40866;18669:28;24831:85;1387:40866;;;18646:12;1387:40866;;;2019:4;1387:40866;2019:4;;;1387:40866;31376:53;31181:105;31234:41;1387:40866;18669:28;1387:40866;31234:41;;;;;;;1387:40866;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;31234:41;30586:222;30624:109;30753:44;30624:109;;;18669:28;1387:40866;30753:44;;;;;;;1387:40866;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;30753:44;30624:109;18669:28;1387:40866;30667:51;;;;;;;1387:40866;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;30667:51;30466:111;30525:41;1387:40866;18669:28;1387:40866;30525:41;;;;;;;1387:40866;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;30525:41;35551:155;26602:9;;;;;;;;;;26655:14;;;26703:17;18993:23;26703:17;;1773:5;1387:40866;;;;26793:48;;;:::i;:::-;26792:49;26788:146;;27600:91;;26980:37;;;;;;;18752:23;26980:37;1387:40866;41469:67;27600:91;18669:28;41469:67;2019:4;;;;1387:40866;;27600:91;18646:12;27600:91;;;;;;24831:85;27600:91;;;:::i;:::-;1387:40866;27721:14;;;:24;;18752:23;1387:40866;18993:23;27721:24;;1773:5;1387:40866;27795:44;;1387:40866;27954:1143;;;;;;;;;1387:40866;27954:1143;;;;;;;18669:28;27954:1143;;;;;29135:8;;29131:141;;18669:28;29465:19;;;;:52;;;35551:155;29461:239;;;1387:40866;29433:2;24831:85;1387:40866;;;6114:413:1;;;18669:28:30;6114:413:1;27135:9:30;2019:4;;27126:43;27122:142;;-1:-1:-1;35602:93:30;;18815:25;35551:155;;27122:142;27196:53;;;;;;;;;1387:40866;18669:28;24831:85;1387:40866;;;18646:12;1387:40866;;;2019:4;1387:40866;2019:4;;;1387:40866;27196:53;29461:239;29626:41;1387:40866;29626:41;;:::i;:::-;18669:28;1387:40866;29544:141;;;;;;27600:91;29544:141;;1387:40866;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;18815:25;1387:40866;;;;;;;;;:::i;29465:52::-;24831:85;1387:40866;;29433:2;1387:40866;;;;29488:29;;;29465:52;;;29131:141;29215:41;;1387:40866;29215:41;;:::i;:::-;18669:28;1387:40866;29170:87;;;;;;27600:91;29170:87;;1387:40866;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;18815:25;1387:40866;;;;;;;;;:::i;26788:146::-;26868:51;1387:40866;18669:28;1387:40866;26868:51;;;;;;;1387:40866;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;26868:51;35363:138;35435:51;1387:40866;18669:28;1387:40866;35435:51;;;;;;;1387:40866;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;35435:51;1387:40866;;;18669:28;1387:40866;;;;;;;;;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;;23688:205;23740:45;;;:::i;:::-;23739:46;23735:144;;23688:205;;;;23735:144;23816:44;1387:40866;18669:28;1387:40866;23816:44;;;;;;;1387:40866;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;23816:44;25353:286;25385:18;;;;;25435:46;1387:40866;18669:28;1387:40866;25435:46;;;;24831:85;25435:46;;1387:40866;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;25435:46;25381:248;25572:41;;:::i;:::-;1387:40866;;18669:28;1387:40866;25527:87;;;;;;24831:85;25527:87;;1387:40866;18699:20;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;18815:25;1387:40866;;;;;;;;;:::i;24930:362::-;1387:40866;;-1:-1:-1;24930:362:30;;23401:182;1387:40866;;;;;;18646:12;1387:40866;18669:28;1387:40866;;;23519:21;;;:49;:21;;;:49;1387:40866;23519:49;23401:182;;;23519:49;2019:4;;23519:49;;1387:40866;;;;;;;;;;;18669:28;24831:85;1387:40866;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;;19026:552;550:2:5;19098:65:30;;550:2:5;;1387:40866:30;432:2:5;1387:40866:30;;;432:2:5;;18699:20:30;415:8:0;;24831:85:30;1387:40866;-1:-1:-1;1387:40866:30;;432:2:5;1387:40866:30;;494:2:5;;550;1387:40866:30;;;494:2:5;24831:85:30;5114:78:5;;1387:40866:30;494:2:5;18752:23:30;494:2:5;;18815:25:30;19336:31;;1387:40866;18752:23;494:2:5;;18752:23:30;19297:37;;1387:40866;19471:23;;550:2:5;;18993:23:30;19538:17;;1387:40866;19026:552;;;;550:2:5;;1387:40866:30;550:2:5;;1387:40866:30;24831:85;1387:40866;550:2:5;;;;1387:40866:30;550:2:5;;1387:40866:30;24831:85;1387:40866;550:2:5;9886:3040:30;;;;10090:9;10129:17;;;2019:4;;1387:40866;;10205:20;;;1387:40866;41469:67;;;10347:15;;;10205:20;10347:15;;;;:::i;:::-;1387:40866;10442:196;;;;;9886:3040;1387:40866;;10668:38;10655:51;10668:38;;2019:4;;;1387:40866;;10859:68;1387:40866;10755:74;10129:17;2019:4;;;41469:67;1387:40866;10755:74;;;10668:38;10755:74;;;;41469:67;10755:74;;;1387:40866;;;;;;:::i;:::-;;;;;;10755:74;;;;;;;;:::i;:::-;1387:40866;41469:67;1387:40866;10859:68;;;1387:40866;10859:68;;;;1387:40866;10755:74;10859:68;;1387:40866;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10859:68::-;11069:178;;;;;;;;;1387:40866;11069:178;41752:66;41469:67;41752:66;11312:8;11308:1612;;10651:405;9886:3040;;;;;:::o;11308:1612::-;11336:23;;;;;;;1387:40866;11373:228;10129:17;11373:228;;;11308:1612;1387:40866;11618:35;;1387:40866;;11854:36;1387:40866;41469:67;1387:40866;11854:36;;;;;;;1387:40866;41469:67;1950:13;;;;;;;;2019:4;1950:13;2019:4;;;1950:13;11854:36;11614:1296;1879:13;11915:43;;;;;;;11911:999;1879:13;;;12100:9;;12091:36;:18;12299:9;12100;;12091:18;;:::i;:::-;12112:15;;;1387:40866;12091:36;;:::i;:::-;41469:67;12169:14;;1387:40866;12220:6;;;;;:::i;12299:9::-;11911:999;;11308:1612;;;;;;;11911:999;41469:67;12749:18;41469:67;;;;2019:4;;12524:14;;1773:5;12445:223;10129:17;1387:40866;1773:5;;1387:40866;12567:20;;1387:40866;12609:41;;:::i;:::-;1387:40866;12445:223;41469:67;1387:40866;12445:223;;;;;:::i;:::-;;;;41469:67;41752:66;12758:9;12749:18;;:::i;:::-;:36;12770:15;;;1387:40866;;;12749:36;;:::i;:::-;12815:80;1387:40866;36838:9;;36881:21;36946:14;;40182:20;;;1387:40866;40247:28;;;1387:40866;405:35:29;1387:40866:30;2492:12:29;;:38;:12;;;2507:13;;2492:38;;1387:40866:30;5790:5:1;;;;;;:13;;;37367:60:30;1387:40866;37055:17;;;1773:5;1387:40866;;;2019:4;;10205:20;37406;;1387:40866;37367:60;;:::i;:::-;1387:40866;;;;37503:23;1387:40866;;-1:-1:-1;;1773:5:30;1387:40866;;;37499:1282;38816:9;2019:4;;1387:40866;;;;;41469:67;38932:14;;1387:40866;38964:23;;;;38960:796;38964:23;;;1387:40866;;;;;39079:23;;;39226:9;39079:23;39143:6;;;;:::i;39226:9::-;11911:999;;;1387:40866;;;;;;;;;;38960:796;39543:40;2019:4;;;;;;;39543:40;1387:40866;;1737:8:4;1387:40866:30;1737:8:4;1387:40866:30;;;1737:8:4;1387:40866:30;;;;;;;;1581:313:4;;39543:40:30;;1387:40866;;39731:9;;;1387:40866;39731:9;;;:::i;:::-;38960:796;;37499:1282;37615:25;;;1773:5;37658:1109;;37499:1282;;;;37658:1109;37785:9;;;;38680:68;37785:9;1387:40866;38716:31;1387:40866;38624:9;;2019:4;;38716:31;;1387:40866;38680:68;;:::i;:::-;37658:1109;;;;5790:13:1;;;;;;2492:38:29;;;;11373:228:30;;10129:17;1387:40866;11373:228;;1387:40866;11373:228;;;10651:405;10978:63;;;1387:40866;10978:63;1387:40866;10978:63;1387:40866;10129:17;10978:63;;;1387:40866;10978:63;;;1387:40866;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10978:63;;;;;;;;:::i;:::-;10129:17;1387:40866;10966:75;10651:405;;10442:196;-1:-1:-1;10442:196:30;;;;9215:364;1387:40866;;9316:25;;1387:40866;;9339:1;1387:40866;;9339:1;9460:35;;;;;;;;;:::i;:::-;1387:40866;;;;9215:364;;;:::o;1387:40866::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9339:1;1387:40866;;;;9339:1;1387:40866;41830:421;;2266:5;1387:40866;;41973:43;;;41969:90;;42194:3;2019:4;2152:2;2019:4;;1387:40866;;41830:421;:::o;41969:90::-;42036:8;;1387:40866;42036:8;:::o;13359:411::-;;;;13526:237;1387:40866;13558:17;;;2019:4;13589:14;;1773:5;1387:40866;1773:5;;1387:40866;13624:24;13558:17;1387:40866;13624:24;;;1773:5;1387:40866;13662:20;;1387:40866;;;;;;;;13558:17;1387:40866;;;;;;;;;;;13526:237;13359:411::o;:::-;;1387:40866;13526:237;13359:411;13558:17;;;2019:4;13589:14;;1773:5;1387:40866;1773:5;;1387:40866;13624:24;13558:17;1387:40866;13624:24;;;1773:5;1387:40866;13662:20;;1387:40866;;;;;;;;;13558:17;1387:40866;;;;;;;;;;;13526:237;13359:411::o;13942:183::-;14055:17;;;2019:4;14074:14;;1773:5;14028:90;14055:17;1773:5;1387:40866;1773:5;;1387:40866;14097:20;;1387:40866;;;;;;14028:90;13942:183::o;1663:552:0:-;;1778:1;-1:-1:-1;1756:62:0;;1967:95;551:6;;1387:40866:30;2159:49:0;;1663:552::o;1756:62::-;1795:12;1387:40866:30;1795:12:0;:::o;2524:606::-;2641:113;-1:-1:-1;2641:113:0;;;-1:-1:-1;2641:113:0;1387:40866:30;;;;;2892:36:0;2888:185;;-1:-1:-1;415:8:0;;1387:40866:30;415:8:0;;2524:606::o;2888:185::-;2952:18;1387:40866:30;2952:18:0;;:22;415:8;;3030:32;-1:-1:-1;3030:32:0;1387:40866:30;3030:32:0;1387:40866:30;;-1:-1:-1;3030:32:0;415:8;;-1:-1:-1;415:8:0;1387:40866:30;415:8:0;1387:40866:30;;-1:-1:-1;415:8:0;5072:508:1;5183:34;;;;:::i;:::-;5227:21;5223:322;;3346:173;;;;;;;;5072:508;:::o;5223:322::-;4297:207;2019:4:30;;;4297:207:1;;2019:4:30;;;;4297:207:1;;;667:27:5;2019:4:30;4297:207:1;;;;;;;;5378:150;:::o;31928:1210:30:-;32125:19;;32121:83;;32143:1;1387:40866;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1733:3:1;1387:40866:30;;1747:15:1;;;1743:67;;31928:1210:30;1861:8:1;1387:40866:30;;;;;;;:::i;:::-;;;;1884:50:1;1387:40866:30;1884:50:1;;1387:40866:30;;;;1884:50:1;;;;1387:40866:30;2330:14;32396:44;;;:92;;;31928:1210;32392:702;;;2402:14;32611:43;32689:12;:30;;-1:-1:-1;32689:65:30;;;;32392:702;32668:86;32768:19;32783:4;32392:702;31928:1210;:::o;32689:65::-;2402:14;32529:43;;;32689:12;32723:31;;32689:65;;;32392:702;-1:-1:-1;494:28:29;1387:40866:30;2824:14:29;;;2841:15;;2824:44;;32980:32:30;;:69;;;;;2824:44:29;32959:90:30;;33063:20;32143:1;32392:702;31928:1210;:::o;32980:69::-;33016:33;;;-1:-1:-1;32980:69:30;;;;2824:44:29;;;;32396:92:30;32444:44;2330:14;32444:44;;;32396:92;;1743:67:1;1387:40866:30;;-1:-1:-1;1743:67:1;;32121:83:30;32160:33;32143:1;32160:33;32143:1;32160:33;32143:1;32160:33;:::o;5443:954:5:-;1387:40866:30;5680:47:5;;5676:94;;667:27;;5807:67;2019:4:30;;;;5807:67:5;;;:::i;:::-;5800:75;915:44;667:27;;;915:44;611:1;915:44;;;;5443:954;667:27;;;5893:30;5889:77;;2019:4:30;6021:53:5;2019:4:30;;;;;6021:53:5;;:::i;:::-;6014:61;915:44;1387:40866:30;;;915:44:5;693:1;915:44;;;;5443:954;915:44;;;;2019:4:30;;;;6095:67:5;;6091:252;;6356:24;5443:954;:::o;6091:252::-;6266:62;1387:40866:30;6266:62:5;;1387:40866:30;;;;;6266:62:5;915:44;1387:40866:30;915:44:5;;;;693:1;915:44;;;1387:40866:30;915:44:5;;;;;;;;;;;;611:1;915:44;;;1387:40866:30;915:44:5;;;;;;20466:1925:30;;;;;20635:1;20616:20;20612:1773;;20466:1925;;;;;:::o;20612:1773::-;20669:14;;1773:5;1387:40866;1773:5;;1387:40866;20708:43;;;;;:::i;:::-;20704:653;;21374:20;21392:2;21374:20;;21370:110;;1387:40866;21392:2;1387:40866;;;432:2:5;;415:8:0;;;21561:18:30;;21557:217;;1387:40866;7896:45;1387:40866;7896:45;1387:40866;7896:45;;:::i;:::-;1387:40866;21839:14;;:35;:14;;:35;1387:40866;;21839:35;1387:40866;21805:80;;;;;;1387:40866;21805:80;;;;;;1387:40866;;;;;;:::i;:::-;21805:80;;;;;;;;;;;20612:1773;1387:40866;;;;21903:21;;21899:115;;22031:17;;22027:116;;22160:19;:24;22156:123;;22313:17;21839:35;22297:77;22313:17;1387:40866;;;22313:17;;2019:4;22349:14;;:24;1773:5;1387:40866;;;;;;;;;;22297:77;20612:1773;;;;;;;22156:123;22211:53;1387:40866;21839:35;1387:40866;22211:53;;;;21805:80;22211:53;;1387:40866;21839:35;1387:40866;;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;22211:53;22027:116;22075:53;1387:40866;21839:35;1387:40866;22075:53;;;;21805:80;22075:53;;1387:40866;21839:35;1387:40866;;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;22075:53;21899:115;21951:48;1387:40866;21839:35;1387:40866;21951:48;;;;21805:80;21951:48;;1387:40866;21839:35;1387:40866;;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;21951:48;21805:80;;;;1387:40866;21805:80;1387:40866;21805:80;;;;;;;:::i;:::-;;;;;21839:35;1387:40866;;;;;;;;;21557:217;21700:17;;;;;;;21684:51;21700:17;;2019:4;1387:40866;;;;;;21684:51;21753:7::o;1387:40866::-;;;;21370:110;21421:44;1387:40866;;;21421:44;;;;;;;1387:40866;;;;;;;;;;2019:4;1387:40866;2019:4;;;1387:40866;21421:44;20704:653;20775:20;;;;;;;20793:2;20775:20;;20771:548;;20704:653;21336:7;;;;;;:::o;20771:548::-;21083:35;1387:40866;7896:45;;:::i;:::-;1387:40866;21083:35;;1387:40866;;20793:2;1387:40866;;;21044:98;;;;;1387:40866;;20635:1;1387:40866;;21083:35;1387:40866;21044:98;;;;;;1387:40866;21044:98;;;;;;1387:40866;21083:35;1387:40866;;;;20793:2;1387:40866;;;;;;;;;:::i;:::-;21044:98;;;;;;;;;20771:548;21183:28;21238:62;1387:40866;;21183:28;;;:::i;:::-;21264:17;;2019:4;1387:40866;;21238:62;;;20771:548;;;;;;;;21044:98;;;;;20635:1;21044:98;;:::i;:::-;20635:1;21044:98;;;;;21083:35;1387:40866;;20635:1;1387:40866;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;2165:405:4:-;1387:40866:30;;;;;;;;;;;;;2407:23:4;;;2403:74;;2019:4:30;1387:40866;;2549:4:4;2165:405;:::o", "linkReferences": {} }, "methodIdentifiers": { "addStake(uint32)": "0396cb60", "balanceOf(address)": "70a08231", "delegateAndRevert(address,bytes)": "850aaf62", "depositTo(address)": "b760faf9", "getCurrentUserOpHash()": "b0a398d1", "getDepositInfo(address)": "5287ce12", "getDomainSeparatorV4()": "13c65a6e", "getNonce(address,uint192)": "35567e1a", "getPackedUserOpTypeHash()": "154e58dc", "getSenderAddress(bytes)": "9b249f69", "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": "22cdde4c", "handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)": "dbed18e0", "handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)": "765e827f", "incrementNonce(uint192)": "0bd28e3b", "initDomainSeparator()": "d12e825d", "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes)": "0042dc53", "nonceSequenceNumber(address,uint192)": "1b2e01b8", "senderCreator()": "09ccb880", "supportsInterface(bytes4)": "01ffc9a7", "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\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ret\",\"type\":\"bytes\"}],\"name\":\"DelegateAndRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"DepositWithdrawalFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Eip7702SenderNotDelegate\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Eip7702SenderWithoutCode\",\"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\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"FailedSendToBeneficiary\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InternalFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"InvalidBeneficiary\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"InvalidPaymaster\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"paymasterAndDataLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPaymasterData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pmSignatureLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPaymasterSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentStake\",\"type\":\"uint256\"}],\"name\":\"InvalidStake\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newUnstakeDelaySec\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentUnstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"InvalidUnstakeDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"}],\"name\":\"NotStaked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"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\":\"withdrawTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"name\":\"StakeNotUnlocked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"StakeWithdrawalFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"name\":\"WithdrawalNotDue\",\"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\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"}],\"name\":\"EIP7702AccountInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"unusedFactory\",\"type\":\"address\"}],\"name\":\"IgnoredInitCode\",\"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\":\"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\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegateAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeparatorV4\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPackedUserOpTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"}],\"name\":\"getSenderAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"getUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"contract IAggregator\",\"name\":\"aggregator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.UserOpsPerAggregator[]\",\"name\":\"opsPerAggregator\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"handleAggregatedOps\",\"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\":\"ops\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"handleOps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initDomainSeparator\",\"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 EntryPointFilterOpsOverride09.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 EntryPointFilterOpsOverride09.UserOpInfo\",\"name\":\"opInfo\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"}],\"name\":\"innerHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"name\":\"nonceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"senderCreator\",\"outputs\":[{\"internalType\":\"contract ISenderCreator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"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\":{\"custom:security-contact\":\"https://bounty.ethereum.org\",\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- Index into the array of ops to the failed one. When using 'simulateValidation', this value is always zero.\",\"reason\":\"- Revert reason. The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account, \\\"3\\\" for paymaster, and \\\"9\\\" for other 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\":\"- Revert data caught from the inner revert reason of an entity contract.\",\"opIndex\":\"- Index of the failed UserOperation in the array of ops. In simulateValidation, this value is always zero.\",\"reason\":\"- Revert reason. See the 'FailedOp(uint256,string)' error above.\"}}],\"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.\"}},\"EIP7702AccountInitialized(bytes32,address,address)\":{\"params\":{\"sender\":\"- The account that was supposed to be deployed.\",\"userOpHash\":\"- The current userOp. UserOperationEvent will follow.\"}},\"IgnoredInitCode(bytes32,address,address)\":{\"params\":{\"sender\":\"- The account that was supposed to be deployed.\",\"unusedFactory\":\"- The factory contract that was not used but was specified in the 'initCode'.\",\"userOpHash\":\"- The current userOp. 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 \\\"postOp\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"SignatureAggregatorChanged(address)\":{\"params\":{\"aggregator\":\"- The aggregator used for the following UserOperationEvents.\"}},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the reverted \\\"callData\\\" call.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}}},\"kind\":\"dev\",\"methods\":{\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"- The new lock duration before the deposit can be withdrawn.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"_0\":\"- The deposit (for gas payment) of the account.\"}},\"delegateAndRevert(address,bytes)\":{\"details\":\"calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.\",\"params\":{\"data\":\"data to pass to target in a delegatecall\",\"target\":\"a target contract to make a delegatecall from entrypoint\"}},\"depositTo(address)\":{\"params\":{\"account\":\"- The account to add to.\"}},\"getCurrentUserOpHash()\":{\"returns\":{\"_0\":\"hash - the hash of the currently running UserOperation, or 0 if none.\"}},\"getDepositInfo(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"info\":\" - Full deposit information of given account.\"}},\"getNonce(address,uint192)\":{\"params\":{\"key\":\"the high 192 bit of the nonce\",\"sender\":\"the account address\"},\"returns\":{\"nonce\":\"a full nonce to pass for next UserOp with this sender.\"}},\"getSenderAddress(bytes)\":{\"params\":{\"initCode\":\"- The constructor code to be passed into the UserOperation.\"}},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"params\":{\"userOp\":\"- The user operation to generate the request ID for.\"},\"returns\":{\"_0\":\"hash the hash of this UserOperation\"}},\"handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)\":{\"params\":{\"beneficiary\":\"- The address to receive the fees.\",\"opsPerAggregator\":\"- The operations to execute, grouped by aggregator (or address(0) for no-aggregator accounts).\"}},\"handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)\":{\"params\":{\"beneficiary\":\"- The address to receive the fees.\",\"ops\":\"- The operations to execute.\"}},\"incrementNonce(uint192)\":{\"params\":{\"key\":\"- the \\\"nonce key\\\" to increment the \\\"nonce sequence\\\" for.\"}},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes)\":{\"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\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\",\"withdrawAmount\":\"- The amount to withdraw.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"notice\":\"A custom revert error of 'handleOps' and 'handleAggregatedOps', to identify the offending UserOperation. Should be caught in off-chain 'handleOps'/'handleAggregatedOps' simulation and should 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 revert as well.\"}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"notice\":\"A custom revert error of handleOps and handleAggregatedOps, to report a revert by account or paymaster.\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"Error case when a signature aggregator fails to verify the aggregated signature it had created.\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"Account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"An event emitted by handleOps() and handleAggregatedOps(), before starting the execution loop. Any event emitted before this event, is part of the validation.\"},\"EIP7702AccountInitialized(bytes32,address,address)\":{\"notice\":\"Account \\\"sender\\\" is an EIP-7702 account that was initialized during this UserOperation.\"},\"IgnoredInitCode(bytes32,address,address)\":{\"notice\":\"Account \\\"sender\\\" already exists and the 'initCode' was ignored.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation Paymaster's \\\"postOp\\\" call reverted with non-zero length.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"Signature aggregator used by the following UserOperationEvents within this bundle.\"},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"notice\":\"UserOp consumed more than prefund. The UserOperation is reverted, and no refund is made.\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length.\"}},\"kind\":\"user\",\"methods\":{\"addStake(uint32)\":{\"notice\":\"Add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"Get account balance.\"},\"delegateAndRevert(address,bytes)\":{\"notice\":\"Helper method for dry-run testing.\"},\"depositTo(address)\":{\"notice\":\"Add to the deposit of the given account.\"},\"getCurrentUserOpHash()\":{\"notice\":\"Allows the AA-aware contracts to query the hash of the currently running UserOperation.\"},\"getDepositInfo(address)\":{\"notice\":\"Get deposit info.\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getSenderAddress(bytes)\":{\"notice\":\"Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. This method always revert, and returns the address in SenderAddressResult error.this method cannot be used for EIP-7702 derived contracts.\"},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), entrypoint address, chainId and (optionally) 7702 delegate address\"},\"handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)\":{\"notice\":\"Execute a batch of UserOperation with Aggregators\"},\"handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)\":{\"notice\":\"Execute a batch of UserOperations. No signature aggregator is used. If any account requires an aggregator (that is, it returned an aggregator when performing simulateValidation), then handleAggregatedOps() must be used instead.\"},\"incrementNonce(uint192)\":{\"notice\":\"Manually increment the nonce of the sender. This method is exposed just for completeness. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \\\"initialize\\\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.\"},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes)\":{\"notice\":\"Inner function to handle a UserOperation. Must be declared \\\"external\\\" to open a call context, but it can only be called by handleOps.\"},\"nonceSequenceNumber(address,uint192)\":{\"notice\":\"The next valid sequence number for a given nonce key.\"},\"senderCreator()\":{\"notice\":\"Retrieves the immutable SenderCreator contract which is responsible for deployment of sender contracts.\"},\"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.\"}},\"notice\":\"Always verify the EntryPoint addresses across multiple trusted sources. Visit https://docs.erc4337.io/ for instructions and official documentation. Account-Abstraction (EIP-4337) singleton EntryPoint v0.9 implementation. Only one instance required on each chain.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v09/EntryPointFilterOpsOverride.sol\":\"EntryPointFilterOpsOverride09\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@account-abstraction-v9/=lib/account-abstraction-v9/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":account-abstraction-v9/=lib/account-abstraction-v9/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v9/contracts/core/Eip7702Support.sol\":{\"keccak256\":\"0x09e062445daa6954b6657391bd58ebf7e3f8f5fe4e76aaea504f05c0b417c7ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8f3875a01f9d1a37aedc2c23118f31ee38ef57bb0aac2c70e440578edb00703\",\"dweb:/ipfs/QmbmQZyJu3YiMEW8XAN1a1cH9hEch6WBTvA2XPnxtofMi2\"]},\"lib/account-abstraction-v9/contracts/core/Helpers.sol\":{\"keccak256\":\"0x7adaeb6171ca7833cb756fde7da9a225899bf5a6e790d111965f4eeae3dbcf51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4345ccd562a9a4f1f912f3bcd73eae0dc1c1604c401d1338ce3ab58765bc3678\",\"dweb:/ipfs/QmYU88GHmAnejw7u3bZFTQTxyHruh9YmPwYPufBkbP7u12\"]},\"lib/account-abstraction-v9/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x70f5f84221d307cff3a0b8250332749c825240ef8e7a778952ea572d8b547ea8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6abbb0bacd32b4232e5b30e7b96de99f098424764da27609f3f6bb74fe676eb2\",\"dweb:/ipfs/QmSnA9zpeskiXwvkrajX8WkTSVDCLSkXDVbYxJBCBdFzf5\"]},\"lib/account-abstraction-v9/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0x26f8bc44331c67a4a7b46336daabb3fba993906b302c4b443888e4846e25b458\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://8ed4f70065a531cb3a0ac99499dd43e66f71e5f785ff93963cd210614c3e72b2\",\"dweb:/ipfs/Qmf1cQNjWPtUCedm8cvdDM5weB7aKA9fw5oYbhHytd1569\"]},\"lib/account-abstraction-v9/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x44dcc6cbcb422cefeba3dab28e71a28206369e87398f6291e1f241ac3677d157\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://790a6660d7ea11dab493e69d6336564e84495d1fd3b76d9cde3a2b588d4fcad5\",\"dweb:/ipfs/QmT38DvSTaRm8TeMXkMau73wNR6qmixYGcaUxgjBR5YFte\"]},\"lib/account-abstraction-v9/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x37a1469c2ccb80238a7fb176a8ce420a9e38bda2a8cefb53d21e20d93ee7e94c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ee83a7eda55d9e6dcd299556b4b97c4f956ffab25dd4ce607cd7f5dd3efeccb\",\"dweb:/ipfs/QmetiE5J5K6KooYSVw9Lhfs2eLSLPm5egxWJPx2BCm2JSn\"]},\"lib/account-abstraction-v9/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x1030b464b49ce80da46b5b6c9af357c2d526f308de61391db6a4ec767d33b864\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://671945f8e18e7305797312b5a209506be3c9bd1d9b9b561c1e8863bccfa61319\",\"dweb:/ipfs/QmVanLK5Aenrb7J94doiE1C9oHwo86jvv8NrpDeNHwvnii\"]},\"lib/account-abstraction-v9/contracts/interfaces/IAccountExecute.sol\":{\"keccak256\":\"0xc313afc1e1b6823126be317611c3a868dc69eb29df43c658464b7188890c40e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3c2a7fac3764500a7e57cf4b9a610b14125edc4d87371772ec1b3407e89eced\",\"dweb:/ipfs/Qmc2Au3LvywAB5uaEc8ttuGVRZU4Mrgn1XWyqDa2zxtCHp\"]},\"lib/account-abstraction-v9/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x62f739f59c661f48b750e1d67d96f209056bbc2e4b5e48cbcd0656d162e566cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee103fb0c5103bc001171303bac9f80659c5f0efc4ebf4cfa22e1adc831c68ce\",\"dweb:/ipfs/QmbiosncMJBe3skD8KsCXE9Y3C6NdKthHq83ba3Sw6RP4U\"]},\"lib/account-abstraction-v9/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x0a93a26e990e3da5762c461f5f500bec0f6e216bb42c55f07d95651bd85d5f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76343b1e306ed0ed2a5f49b578b8c30d1c6aecac260c8b71d30665021f93961\",\"dweb:/ipfs/QmPo7xaetd9koekFkNoapGUE2omFH1HhxF35PstTH6fG3J\"]},\"lib/account-abstraction-v9/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x6be37abc0760d60a41124e2e3f46185a0d3df48b32bd73174790981f76fbdae8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c144ba15a63883c7da41fc0729a46108f7d5487dbac2da0bde00aed67f5a2f00\",\"dweb:/ipfs/Qmdh7MzQmCQLh7wz719xMuG2yvMUkKDVwyN44P7pLofJfS\"]},\"lib/account-abstraction-v9/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v9/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xcbac5ac68fb0582d743c4172cc78afc530f750ed529386327ebfa909be067111\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95ec6059800b3c9a645c1fdc33061f7a48c2b49b9f8bce53d55fc840092dd964\",\"dweb:/ipfs/Qmb33bEcx36hdhXpVCcsUGFmk3AGEU1rto9FU7VBu5S941\"]},\"lib/account-abstraction-v9/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xa262abaec9b922c33e54dd8cd88d4fd1989915e16127959736af966884b4d441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb49a30d699867fd6efa3e349b5802dd1ec1a57379e70077e38fe001e19008d\",\"dweb:/ipfs/QmdsY3et68ceJAyuDScz8iWJfimXmApf6Qcp3BmqDjNSzc\"]},\"lib/account-abstraction-v9/contracts/utils/Exec.sol\":{\"keccak256\":\"0x9c724ee22011193ea7f92d3c3c467ee6aa27139d3ddc225c7f1254d241e6ccdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96cc246fe944a212cbb9ba82065b2d380ec80954fcdb5d8d982b476bd5b72868\",\"dweb:/ipfs/QmZ25eFixEhukbfWGz5TBjsp7YohxUqD5i2rxhaghfvHt8\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/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\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66\",\"dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf\"]},\"src/v09/EntryPointFilterOpsOverride.sol\":{\"keccak256\":\"0xb7ebb752b9c86f285242cb7e5cbb89abcee75b154257b819e2968d3dec4df01e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f2ad2799656aa12b7ded080316592706d2221d10162c25e2009a0b1346623e38\",\"dweb:/ipfs/QmVvWpR6MC7sk5brFMxaDVafE6cmq5qNeGzQvzkPfU4ZSy\"]},\"src/v09/IEntryPointFilterOpsOverride.sol\":{\"keccak256\":\"0x650c3d21c5c2cf5df86280c280361470636fa01aa697928d8c9cb6e3d304121a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://099ac0bd696fa0a16ade75f8bac3d0e60cdee9d8cec1c44f2b231095f566104f\",\"dweb:/ipfs/QmNf3jPVQ3bZtGpKtuR1aqV8bT16MhZSj4qmxUbmSiBXR5\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [{ "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "ret", "type": "bytes" }], "type": "error", "name": "DelegateAndRevert" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "withdrawAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }], "type": "error", "name": "DepositWithdrawalFailed" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "Eip7702SenderNotDelegate" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "Eip7702SenderWithoutCode" }, { "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": "address", "name": "beneficiary", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "revertData", "type": "bytes" }], "type": "error", "name": "FailedSendToBeneficiary" }, { "inputs": [{ "internalType": "uint256", "name": "currentDeposit", "type": "uint256" }, { "internalType": "uint256", "name": "withdrawAmount", "type": "uint256" }], "type": "error", "name": "InsufficientDeposit" }, { "inputs": [], "type": "error", "name": "InternalFunction" }, { "inputs": [{ "internalType": "address", "name": "beneficiary", "type": "address" }], "type": "error", "name": "InvalidBeneficiary" }, { "inputs": [{ "internalType": "address", "name": "paymaster", "type": "address" }], "type": "error", "name": "InvalidPaymaster" }, { "inputs": [{ "internalType": "uint256", "name": "paymasterAndDataLength", "type": "uint256" }], "type": "error", "name": "InvalidPaymasterData" }, { "inputs": [{ "internalType": "uint256", "name": "dataLength", "type": "uint256" }, { "internalType": "uint256", "name": "pmSignatureLength", "type": "uint256" }], "type": "error", "name": "InvalidPaymasterSignatureLength" }, { "inputs": [{ "internalType": "uint256", "name": "msgValue", "type": "uint256" }, { "internalType": "uint256", "name": "currentStake", "type": "uint256" }], "type": "error", "name": "InvalidStake" }, { "inputs": [{ "internalType": "uint256", "name": "newUnstakeDelaySec", "type": "uint256" }, { "internalType": "uint256", "name": "currentUnstakeDelaySec", "type": "uint256" }], "type": "error", "name": "InvalidUnstakeDelay" }, { "inputs": [{ "internalType": "uint256", "name": "currentStake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" }], "type": "error", "name": "NotStaked" }, { "inputs": [{ "internalType": "bytes", "name": "returnData", "type": "bytes" }], "type": "error", "name": "PostOpReverted" }, { "inputs": [], "type": "error", "name": "Reentrancy" }, { "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": "withdrawTime", "type": "uint256" }, { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" }], "type": "error", "name": "StakeNotUnlocked" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "withdrawAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }], "type": "error", "name": "StakeWithdrawalFailed" }, { "inputs": [{ "internalType": "uint256", "name": "withdrawTime", "type": "uint256" }, { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" }], "type": "error", "name": "WithdrawalNotDue" }, { "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": "address", "name": "delegate", "type": "address", "indexed": true }], "type": "event", "name": "EIP7702AccountInitialized", "anonymous": false }, { "inputs": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true }, { "internalType": "address", "name": "unusedFactory", "type": "address", "indexed": false }], "type": "event", "name": "IgnoredInitCode", "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": "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": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "delegateAndRevert" }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "payable", "type": "function", "name": "depositTo" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getCurrentUserOpHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "getDepositInfo", "outputs": [{ "internalType": "struct IStakeManager.DepositInfo", "name": "info", "type": "tuple", "components": [{ "internalType": "uint256", "name": "deposit", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getDomainSeparatorV4", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "getNonce", "outputs": [{ "internalType": "uint256", "name": "nonce", "type": "uint256" }] }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "getPackedUserOpTypeHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "bytes", "name": "initCode", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "getSenderAddress" }, { "inputs": [{ "internalType": "struct PackedUserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "view", "type": "function", "name": "getUserOpHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "struct IEntryPoint.UserOpsPerAggregator[]", "name": "opsPerAggregator", "type": "tuple[]", "components": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "contract IAggregator", "name": "aggregator", "type": "address" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "handleAggregatedOps" }, { "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" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "handleOps" }, { "inputs": [{ "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "nonpayable", "type": "function", "name": "incrementNonce" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "initDomainSeparator" }, { "inputs": [{ "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "struct EntryPointFilterOpsOverride09.UserOpInfo", "name": "opInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPointFilterOpsOverride09.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" }], "stateMutability": "nonpayable", "type": "function", "name": "innerHandleOp", "outputs": [{ "internalType": "uint256", "name": "actualGasCost", "type": "uint256" }] }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint192", "name": "", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "nonceSequenceNumber", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "senderCreator", "outputs": [{ "internalType": "contract ISenderCreator", "name": "", "type": "address" }] }, { "inputs": [{ "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }], "stateMutability": "view", "type": "function", "name": "supportsInterface", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] }, { "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": { "addStake(uint32)": { "params": { "unstakeDelaySec": "- The new lock duration before the deposit can be withdrawn." } }, "balanceOf(address)": { "params": { "account": "- The account to query." }, "returns": { "_0": "- The deposit (for gas payment) of the account." } }, "delegateAndRevert(address,bytes)": { "details": "calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.", "params": { "data": "data to pass to target in a delegatecall", "target": "a target contract to make a delegatecall from entrypoint" } }, "depositTo(address)": { "params": { "account": "- The account to add to." } }, "getCurrentUserOpHash()": { "returns": { "_0": "hash - the hash of the currently running UserOperation, or 0 if none." } }, "getDepositInfo(address)": { "params": { "account": "- The account to query." }, "returns": { "info": " - Full deposit information of given account." } }, "getNonce(address,uint192)": { "params": { "key": "the high 192 bit of the nonce", "sender": "the account address" }, "returns": { "nonce": "a full nonce to pass for next UserOp with this sender." } }, "getSenderAddress(bytes)": { "params": { "initCode": "- The constructor code to be passed into the UserOperation." } }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "params": { "userOp": "- The user operation to generate the request ID for." }, "returns": { "_0": "hash the hash of this UserOperation" } }, "handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)": { "params": { "beneficiary": "- The address to receive the fees.", "opsPerAggregator": "- The operations to execute, grouped by aggregator (or address(0) for no-aggregator accounts)." } }, "handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)": { "params": { "beneficiary": "- The address to receive the fees.", "ops": "- The operations to execute." } }, "incrementNonce(uint192)": { "params": { "key": "- the \"nonce key\" to increment the \"nonce sequence\" for." } }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes)": { "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" } }, "supportsInterface(bytes4)": { "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas." }, "withdrawStake(address)": { "params": { "withdrawAddress": "- The address to send withdrawn value." } }, "withdrawTo(address,uint256)": { "params": { "withdrawAddress": "- The address to send withdrawn value.", "withdrawAmount": "- The amount to withdraw." } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "addStake(uint32)": { "notice": "Add to the account's stake - amount and delay any pending unstake is first cancelled." }, "balanceOf(address)": { "notice": "Get account balance." }, "delegateAndRevert(address,bytes)": { "notice": "Helper method for dry-run testing." }, "depositTo(address)": { "notice": "Add to the deposit of the given account." }, "getCurrentUserOpHash()": { "notice": "Allows the AA-aware contracts to query the hash of the currently running UserOperation." }, "getDepositInfo(address)": { "notice": "Get deposit info." }, "getNonce(address,uint192)": { "notice": "Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order." }, "getSenderAddress(bytes)": { "notice": "Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. This method always revert, and returns the address in SenderAddressResult error.this method cannot be used for EIP-7702 derived contracts." }, "getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))": { "notice": "Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), entrypoint address, chainId and (optionally) 7702 delegate address" }, "handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)": { "notice": "Execute a batch of UserOperation with Aggregators" }, "handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)": { "notice": "Execute a batch of UserOperations. No signature aggregator is used. If any account requires an aggregator (that is, it returned an aggregator when performing simulateValidation), then handleAggregatedOps() must be used instead." }, "incrementNonce(uint192)": { "notice": "Manually increment the nonce of the sender. This method is exposed just for completeness. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \"initialize\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key." }, "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes)": { "notice": "Inner function to handle a UserOperation. Must be declared \"external\" to open a call context, but it can only be called by handleOps." }, "nonceSequenceNumber(address,uint192)": { "notice": "The next valid sequence number for a given nonce key." }, "senderCreator()": { "notice": "Retrieves the immutable SenderCreator contract which is responsible for deployment of sender contracts." }, "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/", "@account-abstraction-v9/=lib/account-abstraction-v9/contracts/", "@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/", "@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/", "@test-utils/=lib/singleton-paymaster/test/utils/", "account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "account-abstraction-v9/=lib/account-abstraction-v9/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "singleton-paymaster/=lib/singleton-paymaster/src/", "solady/=lib/solady/src/"], "optimizer": { "enabled": true, "runs": 1000000 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/v09/EntryPointFilterOpsOverride.sol": "EntryPointFilterOpsOverride09" }, "evmVersion": "cancun", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v9/contracts/core/Eip7702Support.sol": { "keccak256": "0x09e062445daa6954b6657391bd58ebf7e3f8f5fe4e76aaea504f05c0b417c7ee", "urls": ["bzz-raw://c8f3875a01f9d1a37aedc2c23118f31ee38ef57bb0aac2c70e440578edb00703", "dweb:/ipfs/QmbmQZyJu3YiMEW8XAN1a1cH9hEch6WBTvA2XPnxtofMi2"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/core/Helpers.sol": { "keccak256": "0x7adaeb6171ca7833cb756fde7da9a225899bf5a6e790d111965f4eeae3dbcf51", "urls": ["bzz-raw://4345ccd562a9a4f1f912f3bcd73eae0dc1c1604c401d1338ce3ab58765bc3678", "dweb:/ipfs/QmYU88GHmAnejw7u3bZFTQTxyHruh9YmPwYPufBkbP7u12"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/core/NonceManager.sol": { "keccak256": "0x70f5f84221d307cff3a0b8250332749c825240ef8e7a778952ea572d8b547ea8", "urls": ["bzz-raw://6abbb0bacd32b4232e5b30e7b96de99f098424764da27609f3f6bb74fe676eb2", "dweb:/ipfs/QmSnA9zpeskiXwvkrajX8WkTSVDCLSkXDVbYxJBCBdFzf5"], "license": "GPL-3.0" }, "lib/account-abstraction-v9/contracts/core/SenderCreator.sol": { "keccak256": "0x26f8bc44331c67a4a7b46336daabb3fba993906b302c4b443888e4846e25b458", "urls": ["bzz-raw://8ed4f70065a531cb3a0ac99499dd43e66f71e5f785ff93963cd210614c3e72b2", "dweb:/ipfs/Qmf1cQNjWPtUCedm8cvdDM5weB7aKA9fw5oYbhHytd1569"], "license": "GPL-3.0" }, "lib/account-abstraction-v9/contracts/core/StakeManager.sol": { "keccak256": "0x44dcc6cbcb422cefeba3dab28e71a28206369e87398f6291e1f241ac3677d157", "urls": ["bzz-raw://790a6660d7ea11dab493e69d6336564e84495d1fd3b76d9cde3a2b588d4fcad5", "dweb:/ipfs/QmT38DvSTaRm8TeMXkMau73wNR6qmixYGcaUxgjBR5YFte"], "license": "GPL-3.0" }, "lib/account-abstraction-v9/contracts/core/UserOperationLib.sol": { "keccak256": "0x37a1469c2ccb80238a7fb176a8ce420a9e38bda2a8cefb53d21e20d93ee7e94c", "urls": ["bzz-raw://0ee83a7eda55d9e6dcd299556b4b97c4f956ffab25dd4ce607cd7f5dd3efeccb", "dweb:/ipfs/QmetiE5J5K6KooYSVw9Lhfs2eLSLPm5egxWJPx2BCm2JSn"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IAccount.sol": { "keccak256": "0x1030b464b49ce80da46b5b6c9af357c2d526f308de61391db6a4ec767d33b864", "urls": ["bzz-raw://671945f8e18e7305797312b5a209506be3c9bd1d9b9b561c1e8863bccfa61319", "dweb:/ipfs/QmVanLK5Aenrb7J94doiE1C9oHwo86jvv8NrpDeNHwvnii"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IAccountExecute.sol": { "keccak256": "0xc313afc1e1b6823126be317611c3a868dc69eb29df43c658464b7188890c40e0", "urls": ["bzz-raw://f3c2a7fac3764500a7e57cf4b9a610b14125edc4d87371772ec1b3407e89eced", "dweb:/ipfs/Qmc2Au3LvywAB5uaEc8ttuGVRZU4Mrgn1XWyqDa2zxtCHp"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IAggregator.sol": { "keccak256": "0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf", "urls": ["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77", "dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x62f739f59c661f48b750e1d67d96f209056bbc2e4b5e48cbcd0656d162e566cd", "urls": ["bzz-raw://ee103fb0c5103bc001171303bac9f80659c5f0efc4ebf4cfa22e1adc831c68ce", "dweb:/ipfs/QmbiosncMJBe3skD8KsCXE9Y3C6NdKthHq83ba3Sw6RP4U"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/INonceManager.sol": { "keccak256": "0x0a93a26e990e3da5762c461f5f500bec0f6e216bb42c55f07d95651bd85d5f74", "urls": ["bzz-raw://d76343b1e306ed0ed2a5f49b578b8c30d1c6aecac260c8b71d30665021f93961", "dweb:/ipfs/QmPo7xaetd9koekFkNoapGUE2omFH1HhxF35PstTH6fG3J"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IPaymaster.sol": { "keccak256": "0x6be37abc0760d60a41124e2e3f46185a0d3df48b32bd73174790981f76fbdae8", "urls": ["bzz-raw://c144ba15a63883c7da41fc0729a46108f7d5487dbac2da0bde00aed67f5a2f00", "dweb:/ipfs/Qmdh7MzQmCQLh7wz719xMuG2yvMUkKDVwyN44P7pLofJfS"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/ISenderCreator.sol": { "keccak256": "0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4", "urls": ["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570", "dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xcbac5ac68fb0582d743c4172cc78afc530f750ed529386327ebfa909be067111", "urls": ["bzz-raw://95ec6059800b3c9a645c1fdc33061f7a48c2b49b9f8bce53d55fc840092dd964", "dweb:/ipfs/Qmb33bEcx36hdhXpVCcsUGFmk3AGEU1rto9FU7VBu5S941"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0xa262abaec9b922c33e54dd8cd88d4fd1989915e16127959736af966884b4d441", "urls": ["bzz-raw://8cb49a30d699867fd6efa3e349b5802dd1ec1a57379e70077e38fe001e19008d", "dweb:/ipfs/QmdsY3et68ceJAyuDScz8iWJfimXmApf6Qcp3BmqDjNSzc"], "license": "MIT" }, "lib/account-abstraction-v9/contracts/utils/Exec.sol": { "keccak256": "0x9c724ee22011193ea7f92d3c3c467ee6aa27139d3ddc225c7f1254d241e6ccdd", "urls": ["bzz-raw://96cc246fe944a212cbb9ba82065b2d380ec80954fcdb5d8d982b476bd5b72868", "dweb:/ipfs/QmZ25eFixEhukbfWGz5TBjsp7YohxUqD5i2rxhaghfvHt8"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol": { "keccak256": "0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d", "urls": ["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4", "dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/interfaces/IERC5267.sol": { "keccak256": "0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92", "urls": ["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a", "dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol": { "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a", "urls": ["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a", "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol": { "keccak256": "0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549", "urls": ["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a", "dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol": { "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97", "urls": ["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b", "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol": { "keccak256": "0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed", "urls": ["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0", "dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol": { "keccak256": "0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d", "urls": ["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c", "dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol": { "keccak256": "0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575", "urls": ["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e", "dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/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" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol": { "keccak256": "0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea", "urls": ["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d", "dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol": { "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54", "urls": ["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8", "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"], "license": "MIT" }, "lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol": { "keccak256": "0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3", "urls": ["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03", "dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"], "license": "MIT" }, "src/SimulationOverrideHelper.sol": { "keccak256": "0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774", "urls": ["bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66", "dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf"], "license": "MIT" }, "src/v09/EntryPointFilterOpsOverride.sol": { "keccak256": "0xb7ebb752b9c86f285242cb7e5cbb89abcee75b154257b819e2968d3dec4df01e", "urls": ["bzz-raw://f2ad2799656aa12b7ded080316592706d2221d10162c25e2009a0b1346623e38", "dweb:/ipfs/QmVvWpR6MC7sk5brFMxaDVafE6cmq5qNeGzQvzkPfU4ZSy"], "license": "GPL-3.0" }, "src/v09/IEntryPointFilterOpsOverride.sol": { "keccak256": "0x650c3d21c5c2cf5df86280c280361470636fa01aa697928d8c9cb6e3d304121a", "urls": ["bzz-raw://099ac0bd696fa0a16ade75f8bac3d0e60cdee9d8cec1c44f2b231095f566104f", "dweb:/ipfs/QmNf3jPVQ3bZtGpKtuR1aqV8bT16MhZSj4qmxUbmSiBXR5"], "license": "MIT" } }, "version": 1 }, "id": 30 }