@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
@@ -1 +1 @@
1
- { "abi": [{ "type": "receive", "stateMutability": "payable" }, { "type": "function", "name": "SIG_VALIDATION_FAILED", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "_validateSenderAndPaymaster", "inputs": [{ "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "sender", "type": "address", "internalType": "address" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "view" }, { "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": "depositTo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "deposits", "inputs": [{ "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "deposit", "type": "uint112", "internalType": "uint112" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }], "stateMutability": "view" }, { "type": "function", "name": "getDepositInfo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "info", "type": "tuple", "internalType": "struct IStakeManager.DepositInfo", "components": [{ "name": "deposit", "type": "uint112", "internalType": "uint112" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }] }], "stateMutability": "view" }, { "type": "function", "name": "getNonce", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "nonce", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getSenderAddress", "inputs": [{ "name": "initCode", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "getUserOpHash", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct UserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "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 UserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "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 UserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "incrementNonce", "inputs": [{ "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "innerHandleOp", "inputs": [{ "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "opInfo", "type": "tuple", "internalType": "struct EntryPointFilterOpsOverride06.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPointFilterOpsOverride06.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "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": "simulateHandleOp", "inputs": [{ "name": "op", "type": "tuple", "internalType": "struct UserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct UserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "unlockStake", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawStake", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawTo", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }, { "name": "withdrawAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "AccountDeployed", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "factory", "type": "address", "indexed": false, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "BeforeExecution", "inputs": [], "anonymous": false }, { "type": "event", "name": "Deposited", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalDeposit", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "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": "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": "ExecutionResult", "inputs": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "validAfter", "type": "uint48", "internalType": "uint48" }, { "name": "validUntil", "type": "uint48", "internalType": "uint48" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "FailedOp", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }] }, { "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": "ValidationResult", "inputs": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "sigFailed", "type": "bool", "internalType": "bool" }, { "name": "validAfter", "type": "uint48", "internalType": "uint48" }, { "name": "validUntil", "type": "uint48", "internalType": "uint48" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }, { "type": "error", "name": "ValidationResultWithAggregation", "inputs": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "sigFailed", "type": "bool", "internalType": "bool" }, { "name": "validAfter", "type": "uint48", "internalType": "uint48" }, { "name": "validUntil", "type": "uint48", "internalType": "uint48" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "bytecode": { "object": "0x6080806040523461001c576001600255615bfa9081620000228239f35b600080fdfe60806040526004361015610023575b361561001957600080fd5b610021611cd7565b005b60003560e01c80630396cb60146101b35780630bd28e3b146101aa5780631b2e01b8146101a15780631d732756146101985780631fad948c1461018f578063205c28781461018657806335567e1a1461017d5780634b1d7cf5146101745780635287ce121461016b57806370a08231146101625780638f41ec5a14610159578063957122ab146101505780639b249f6914610147578063a61935311461013e578063b760faf914610135578063bb9fe6bf1461012c578063c23a5cea14610123578063d6383f941461011a578063ee219423146101115763fc7e286d0361000e5761010c611bb7565b61000e565b5061010c61199f565b5061010c611837565b5061010c61169e565b5061010c611520565b5061010c6114e1565b5061010c6114c0565b5061010c611337565b5061010c611164565b5061010c611129565b5061010c6110a4565b5061010c610f54565b5061010c610bf8565b5061010c610b33565b5061010c610994565b5061010c6108ba565b5061010c6106e7565b5061010c610467565b5061010c610385565b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043563ffffffff8116808203610359576103547fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916102716102413373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b9161024d811515611e4e565b61026a610261600185015463ffffffff1690565b63ffffffff1690565b1115611eb3565b54926103366dffffffffffffffffffffffffffff946102f461029834888460781c16611d48565b966102a4881515611f18565b6102b081891115611f7d565b6102d4816102bc6105ec565b941684906dffffffffffffffffffffffffffff169052565b6001602084015287166dffffffffffffffffffffffffffff166040830152565b63ffffffff83166060820152600060808201526103313373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b611fe2565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b6024359077ffffffffffffffffffffffffffffffffffffffffffffffff8216820361035957565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043577ffffffffffffffffffffffffffffffffffffffffffffffff81168103610359576104149033600052600160205260406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b61041e8154611c9d565b9055005b73ffffffffffffffffffffffffffffffffffffffff81160361035957565b6024359061044d82610422565b565b60c4359061044d82610422565b359061044d82610422565b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760206104fc6004356104a881610422565b73ffffffffffffffffffffffffffffffffffffffff6104c561035e565b91166000526001835260406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54604051908152f35b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761055157604052565b610559610505565b604052565b610100810190811067ffffffffffffffff82111761055157604052565b67ffffffffffffffff811161055157604052565b6060810190811067ffffffffffffffff82111761055157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761055157604052565b6040519061044d82610535565b6040519060c0820182811067ffffffffffffffff82111761055157604052565b604051906040820182811067ffffffffffffffff82111761055157604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610675575b01160190565b61067d610505565b61066f565b92919261068e82610639565b9161069c60405193846105ab565b829481845281830111610359578281602093846000960137010152565b9181601f840112156103595782359167ffffffffffffffff8311610359576020838186019501011161035957565b5034610359576101c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595767ffffffffffffffff60043581811161035957366023820112156103595761074a903690602481600401359101610682565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36016101808112610359576101006040519161078783610535565b12610359576040516107988161055e565b6107a0610440565b815260443560208201526064356040820152608435606082015260a43560808201526107ca61044f565b60a082015260e43560c08201526101043560e082015281526101243560208201526101443560408201526101643560608201526101843560808201526101a4359182116103595761083e9261082661082e9336906004016106b9565b929091612f85565b6040519081529081906020820190565b0390f35b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103595760043567ffffffffffffffff9283821161035957806023830112156103595781600401359384116103595760248460051b830101116103595760240191906024356108b781610422565b90565b5034610359576108c936610842565b6108d49291926125b2565b6108dd836124a5565b60005b84811061095d57506000927fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f9728480a183915b85831061092d57610923858561261f565b6100216001600255565b909193600190610953610941878987612564565b61094b8886612542565b5190886129ad565b0194019190610912565b8061098b610984610972600194869896612542565b5161097e848a88612564565b84613c5a565b90836136fb565b019290926108e0565b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576004356109d081610422565b6024359060009133835282602052604083206dffffffffffffffffffffffffffff81541692838311610ad557848373ffffffffffffffffffffffffffffffffffffffff829593610a788496610a3f610a2c8798610ad29c612389565b6dffffffffffffffffffffffffffff1690565b6dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610acc6122f4565b50612396565b80f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576020600435610b7181610422565b73ffffffffffffffffffffffffffffffffffffffff610b8e61035e565b911660005260018252610bc98160406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006040519260401b16178152f35b503461035957610c0736610842565b610c0f6125b2565b6000805b838210610df657610c2491506124a5565b7fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972600080a16000805b848110610d5c57505060008093815b818110610c9357610923868660007f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d8180a261261f565b610cf7610ca182848a612a73565b610ccc610cb3610cb360208401612b15565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d600080a280612ac1565b906000915b808310610d1457505050610d0f90611c9d565b610c5c565b90919497610d4f610d49610d5592610d438c8b610d3c82610d368e8b8d612564565b92612542565b51916129ad565b90611d48565b99611c9d565b95611c9d565b9190610cfc565b610d67818688612a73565b6020610d7f610d768380612ac1565b92909301612b15565b9173ffffffffffffffffffffffffffffffffffffffff60009316905b828410610db45750505050610daf90611c9d565b610c4d565b90919294610d4f81610de985610de2610dd0610dee968d612542565b51610ddc8c8b8a612564565b85613c5a565b908b613913565b611c9d565b929190610d9b565b610e01828587612a73565b90610e0c8280612ac1565b92610e1c610cb360208301612b15565b9173ffffffffffffffffffffffffffffffffffffffff8316610e416001821415612b1f565b610e62575b505050610e5c91610e5691611d48565b91611c9d565b90610c13565b909592610e7b6040999693999895989788810190612710565b92908a3b156103595789938b918a5193849283927fe3563a4f00000000000000000000000000000000000000000000000000000000845260049e8f850193610ec294612cb9565b03815a93600094fa9081610f3b575b50610f255786517f86a9f75000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a16818a0190815281906020010390fd5b0390fd5b9497509295509093509181610e56610e5c610e46565b80610f48610f4e9261057b565b8061111e565b38610ed1565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595761083e73ffffffffffffffffffffffffffffffffffffffff600435610fa881610422565b608060409283928351610fba81610535565b60009381858093528260208201528287820152826060820152015216815280602052209061104965ffffffffffff6001835194610ff686610535565b80546dffffffffffffffffffffffffffff8082168852607082901c60ff161515602089015260789190911c1685870152015463ffffffff8116606086015260201c16608084019065ffffffffffff169052565b5191829182919091608065ffffffffffff8160a08401956dffffffffffffffffffffffffffff808251168652602082015115156020870152604082015116604086015263ffffffff6060820151166060860152015116910152565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595773ffffffffffffffffffffffffffffffffffffffff6004356110f581610422565b16600052600060205260206dffffffffffffffffffffffffffff60406000205416604051908152f35b600091031261035957565b50346103595760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035957602060405160018152f35b50346103595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035957600467ffffffffffffffff8135818111610359576111b590369084016106b9565b9050602435916111c483610422565b604435908111610359576111db90369085016106b9565b92909115908161132d575b506112c6576014821015611236575b610f21836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160409060208152600060208201520190565b6112466112529261124c926132a8565b906132b6565b60601c90565b3b1561125f5738806111f5565b610f21906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601b60208201527f41413330207061796d6173746572206e6f74206465706c6f796564000000000060408201520190565b610f21836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601960208201527f41413230206163636f756e74206e6f74206465706c6f7965640000000000000060408201520190565b90503b15386111e6565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043567ffffffffffffffff8111610359576113e7602061138e60249336906004016106b9565b73ffffffffffffffffffffffffffffffffffffffff9291836113ae6134b2565b169060006040518097819582947f570e1a36000000000000000000000000000000000000000000000000000000008452600484016134a1565b03925af191821561145b575b60009261142b575b50604051917f6ca7b806000000000000000000000000000000000000000000000000000000008352166004820152fd5b61144d91925060203d8111611454575b61144581836105ab565b81019061348c565b90386113fb565b503d61143b565b6114636128cb565b6113f3565b90816101609103126103595790565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610359576004359067ffffffffffffffff8211610359576108b791600401611468565b50346103595760206114d96114d436611477565b613121565b604051908152f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595761002160043561151b81610422565b611cdc565b5034610359576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261169b573381528060205260408120600181019063ffffffff82541690811561163d576115da61159f6116029361159161158c855460ff9060701c1690565b612146565b65ffffffffffff42166121ab565b84547fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff16602082901b69ffffffffffff000000001617909455565b7fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff8154169055565b60405165ffffffffffff91909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a90602090a280f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b80fd5b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576004356116da81610422565b610ad273ffffffffffffffffffffffffffffffffffffffff61171c3373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b926117d461173f610a2c86546dffffffffffffffffffffffffffff9060781c1690565b9461174b8615156121c5565b6117ac6001820161178465ffffffffffff611770835465ffffffffffff9060201c1690565b1661177c81151561222a565b42101561228f565b80547fffffffffffffffffffffffffffffffffffffffffffff00000000000000000000169055565b7fffffff0000000000000000000000000000ffffffffffffffffffffffffffffff8154169055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810186905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2600080809581948294165af16118316122f4565b50612324565b50346103595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595767ffffffffffffffff60043581811161035957611888903690600401611468565b6024359161189583610422565b604435908111610359576118b0610f219136906004016106b9565b6118b8612422565b6118c1856135f6565b6118d46118ce8287613a52565b90612de4565b946118e4826000924384526128d8565b96438252819360609573ffffffffffffffffffffffffffffffffffffffff831661196b575b505050506080015193611938604061192a602084015165ffffffffffff1690565b92015165ffffffffffff1690565b906040519687967f8b7ac98000000000000000000000000000000000000000000000000000000000885260048801612d89565b839550839496506119856040949293945180948193612d7b565b03925af19060806119946122f4565b929190388080611909565b5034610359576119ae36611477565b6119b6612422565b6119bf826135f6565b6119c98183613a52565b825160a001519193916119f69073ffffffffffffffffffffffffffffffffffffffff16613437565b613437565b90611a1a6119f1855173ffffffffffffffffffffffffffffffffffffffff90511690565b94611a23613270565b50611a52611a3660409586810190612710565b90600060148310611baf57506112466119f19261124c926132a8565b91611a5c91612de4565b805173ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff821660018114916080880151978781015191886020820151611ab19065ffffffffffff1690565b91015165ffffffffffff16916060015192611aca6105f9565b9a8b5260208b0152841515898b015265ffffffffffff1660608a015265ffffffffffff16608089015260a088015215159081611ba6575b50611b3b5750610f2192519485947fe0cff05f000000000000000000000000000000000000000000000000000000008652600486016133dd565b9190610f2193611b4a84613437565b611b71611b55610619565b73ffffffffffffffffffffffffffffffffffffffff9096168652565b6020850152519586957ffaecb4e40000000000000000000000000000000000000000000000000000000087526004870161334b565b90501538611b01565b915050613437565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595773ffffffffffffffffffffffffffffffffffffffff600435611c0881610422565b16600052600060205260a0604060002065ffffffffffff60018254920154604051926dffffffffffffffffffffffffffff90818116855260ff8160701c161515602086015260781c16604084015263ffffffff8116606084015260201c166080820152f35b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611ccb570190565b611cd3611c6d565b0190565b61044d335b73ffffffffffffffffffffffffffffffffffffffff90611cfc3482611d5d565b168060005260006020527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206dffffffffffffffffffffffffffff60406000205416604051908152a2565b91908201809211611d5557565b61044d611c6d565b73ffffffffffffffffffffffffffffffffffffffff16600052600060205260406000206dffffffffffffffffffffffffffff80825416928301809311611e41575b808311611de35761044d92166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6465706f736974206f766572666c6f77000000000000000000000000000000006044820152fd5b611e49611c6d565b611d9e565b15611e5557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611eba57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b15611f1f57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611f8457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b9065ffffffffffff6080600161044d946120426dffffffffffffffffffffffffffff86511682906dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b602085015115156eff000000000000000000000000000082549160701b16807fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff83161783557fffffff000000000000000000000000000000ffffffffffffffffffffffffffff7cffffffffffffffffffffffffffff000000000000000000000000000000604089015160781b16921617178155019263ffffffff6060820151167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008554161784550151167fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff69ffffffffffff0000000083549260201b169116179055565b1561214d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b91909165ffffffffffff80809416911601918211611d5557565b156121cc57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561223157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561229657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b3d1561231f573d9061230582610639565b9161231360405193846105ab565b82523d6000602084013e565b606090565b1561232b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b91908203918211611d5557565b1561239d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60209067ffffffffffffffff8111612415575b60051b0190565b61241d610505565b61240e565b6040519061242f82610535565b604051608083610100830167ffffffffffffffff811184821017612498575b60405260009283815283602082015283604082015283606082015283838201528360a08201528360c08201528360e082015281528260208201528260408201528260608201520152565b6124a0610505565b61244e565b906124af826123fb565b6124bc60405191826105ab565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06124ea82946123fb565b019060005b8281106124fb57505050565b602090612506612422565b828285010152016124ef565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020918151811015612557575b60051b010190565b61255f612512565b61254f565b91908110156125a5575b60051b810135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea181360301821215610359570190565b6125ad612512565b61256e565b60028054146125c15760028055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff1680156126b257600080809381935af161264c6122f4565b501561265457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f41413931206661696c65642073656e6420746f2062656e6566696369617279006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4141393020696e76616c69642062656e656669636961727900000000000000006044820152fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610359570180359067ffffffffffffffff82116103595760200191813603831361035957565b90816020910312610359575190565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b60005b8381106127c25750506000910152565b81810151838201526020016127b2565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361280e815180928187528780880191016127af565b0116010190565b9061282f6080916108b796946101c0808652850191612770565b9360e0815173ffffffffffffffffffffffffffffffffffffffff80825116602087015260208201516040870152604082015160608701526060820151858701528482015160a087015260a08201511660c086015260c081015182860152015161010084015260208101516101208401526040810151610140840152606081015161016084015201516101808201526101a08184039101526127d2565b506040513d6000823e3d90fd5b905a918160206128f16060830151936060810190612710565b9061292a8560405195869485947f1d73275600000000000000000000000000000000000000000000000000000000865260048601612815565b03816000305af16000918161297d575b5061297657506129636108b79360206000803e5a8103908111612969575b608084015190611d48565b91615350565b612971611c6d565b612958565b9250505090565b61299f91925060203d81116129a6575b61299781836105ab565b810190612761565b903861293a565b503d61298d565b905a928060206129c66060830151946060810190612710565b906129ff8660405195869485947f1d73275600000000000000000000000000000000000000000000000000000000865260048601612815565b03816000305af160009181612a53575b50612a4b5750612a386108b79460206000803e5a8103908111612a3e575b608083015190611d48565b92615633565b612a46611c6d565b612a2d565b935050505090565b612a6c91925060203d81116129a65761299781836105ab565b9038612a0f565b9190811015612ab4575b60051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa181360301821215610359570190565b612abc612512565b612a7d565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610359570180359067ffffffffffffffff821161035957602001918160051b3603831361035957565b356108b781610422565b15612b2657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393620696e76616c69642061676772656761746f720000000000000000006044820152fd5b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561035957016020813591019167ffffffffffffffff821161035957813603831361035957565b6108b791612bff81612be58461045c565b73ffffffffffffffffffffffffffffffffffffffff169052565b60208201356020820152612c9a612c4b612c30612c1f6040860186612b84565b610160806040880152860191612770565b612c3d6060860186612b84565b908583036060870152612770565b6080840135608084015260a084013560a084015260c084013560c084015260e084013560e08401526101008085013590840152610120612c8d81860186612b84565b9185840390860152612770565b91612cab6101409182810190612b84565b929091818503910152612770565b949391929083604087016040885252606086019360608160051b8801019482600090815b848310612cfc575050505050508460206108b795968503910152612770565b9091929394977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08b820301855288357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea184360301811215612d775760019184612d659201612bd4565b98602090810196950193019190612cdd565b8280fd5b908092918237016000815290565b9290936108b796959260c0958552602085015265ffffffffffff8092166040850152166060830152151560808201528160a082015201906127d2565b60405190612dd28261058f565b60006040838281528260208201520152565b612df9612dff91612df3612dc5565b50612e96565b91612e96565b9073ffffffffffffffffffffffffffffffffffffffff9182825116928315612e8b575b65ffffffffffff928391826040816020850151169301511693836040816020840151169201511690808410612e83575b50808511612e7b575b5060405195612e698761058f565b16855216602084015216604082015290565b935038612e5b565b925038612e52565b815181169350612e22565b612e9e612dc5565b5065ffffffffffff808260a01c168015612eea575b60405192612ec08461058f565b73ffffffffffffffffffffffffffffffffffffffff8116845260d01c602084015216604082015290565b5080612eb3565b15612ef857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393220696e7465726e616c2063616c6c206f6e6c790000000000000000006044820152fd5b9060406108b7926000815281602082015201906127d2565b6040906108b79392815281602082015201906127d2565b909291925a93612f96303314612ef1565b8151946040860151955a6113886060830151890101116130b6576108b7966000958051612fdd575b50505090612fd7915a9003608084015101943691610682565b9161589b565b61300c9161300891613003855173ffffffffffffffffffffffffffffffffffffffff1690565b6130e0565b1590565b613018575b8080612fbe565b612fd7929194506130276130f2565b90815161303b575b50506001939091613011565b7f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a20173ffffffffffffffffffffffffffffffffffffffff6020870151926130ac602061309a835173ffffffffffffffffffffffffffffffffffffffff1690565b92015195604051938493169683612f6e565b0390a3388061302f565b7fdeaddead0000000000000000000000000000000000000000000000000000000060005260206000fd5b9060009283809360208451940192f190565b3d610800808211613119575b50604051906020818301016040528082526000602083013e90565b9050386130fe565b6131376131316040830183612710565b90613265565b906131486131316060830183612710565b906131fe61315d613131610120840184612710565b60405194859360208501956101008201359260e08301359260c08101359260a08201359260808301359273ffffffffffffffffffffffffffffffffffffffff60208201359135168c9693909a9998959261012098959273ffffffffffffffffffffffffffffffffffffffff6101408a019d168952602089015260408801526060870152608086015260a085015260c084015260e08301526101008201520152565b03916132307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938481018352826105ab565b5190206040805160208101928352309181019190915246606082015260809283018152909161325f90826105ab565b51902090565b816040519182372090565b604051906040820182811067ffffffffffffffff82111761329b575b60405260006020838281520152565b6132a3610505565b61328c565b906014116103595790601490565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090358181169392601481106132eb57505050565b60140360031b82901b16169150565b9060c060a06108b793805184526020810151602085015260408101511515604085015265ffffffffffff80606083015116606086015260808201511660808501520151918160a082015201906127d2565b92946133ac61044d9561339a610100959998613388613374602097610140808c528b01906132fa565b9b878a019060208091805184520151910152565b80516060890152602001516080880152565b805160a08701526020015160c0860152565b73ffffffffffffffffffffffffffffffffffffffff81511660e0850152015191019060208091805184520151910152565b61342661044d946134146133ff60a0959998969960e0865260e08601906132fa565b98602085019060208091805184520151910152565b80516060840152602001516080830152565b019060208091805184520151910152565b9073ffffffffffffffffffffffffffffffffffffffff613455613270565b9216600052600060205263ffffffff600160406000206dffffffffffffffffffffffffffff815460781c1685520154166020830152565b9081602091031261035957516108b781610422565b9160206108b7938181520191612770565b7fbc79d710c27c417daea28cbdc16e638da2309ea2f5542218b102827c395d15d45473ffffffffffffffffffffffffffffffffffffffff16806108b75750737fc98430eaedbb6070b35b39d79872504908834890565b9061353773ffffffffffffffffffffffffffffffffffffffff916108b797959694606085526060850191612770565b941660208201526040818503910152612770565b60009060033d1161355857565b905060046000803e60005160e01c90565b600060443d106108b7576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc91823d016004833e815167ffffffffffffffff918282113d6024840111176135e5578184019485519384116135ed573d850101602084870101116135e557506108b7929101602001906105ab565b949350505050565b50949350505050565b6136036040820182612710565b61361b61360f84612b15565b93610120810190612710565b9290303b156103595760009361365f9160405196879586957f957122ab00000000000000000000000000000000000000000000000000000000875260048701613508565b0381305afa90816136e8575b5061044d57600161367a61354b565b6308c379a014613693575b61368b57565b61044d6128cb565b61369b613569565b806136a7575b50613685565b805160009250156136a157610f21906040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612f56565b80610f486136f59261057b565b3861366b565b91906137069061394a565b73ffffffffffffffffffffffffffffffffffffffff929183166138a557613837576137309061394a565b91166137c95761373d5750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b610f21836040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b92919061391f9061394a565b909273ffffffffffffffffffffffffffffffffffffffff808095169116036138a55761383757613730905b80156139e45761395990612e96565b7f182d361d27e8fee91541f8630840b9272bdb770c7bb6239b09cd74563c40534154806139c9575073ffffffffffffffffffffffffffffffffffffffff425b65ffffffffffff908160408501511681119182156139b9575b505091511691565b60208501511611905038806139b1565b73ffffffffffffffffffffffffffffffffffffffff90613998565b50600090600090565b156139f457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b916000915a93815190613a658282613f35565b613a6e81613121565b6020840152613aac6effffffffffffffffffffffffffffff60808401516060850151176040850151176101008401359060e0850135171711156139ed565b613ab582613ff7565b613ac08185846140b8565b9790613af1613008613ae6875173ffffffffffffffffffffffffffffffffffffffff1690565b602088015190613e60565b613bed57613afe43600052565b73ffffffffffffffffffffffffffffffffffffffff613b3660a0606097015173ffffffffffffffffffffffffffffffffffffffff1690565b16613bd3575b505a810360a084013510613b665760809360c092604087015260608601525a900391013501910152565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601e60408201527f41413430206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b90935081613be49297508584614db0565b95909238613b3c565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b9290916000925a8251613c6d8184613f35565b613c7683613121565b6020850152613cb46effffffffffffffffffffffffffffff60808301516060840151176040840151176101008601359060e0870135171711156139ed565b613cbd81613ff7565b613cc98186868b614424565b9890613cfa613008613cef865173ffffffffffffffffffffffffffffffffffffffff1690565b602087015190613e60565b613df257613d0743600052565b73ffffffffffffffffffffffffffffffffffffffff613d3f60a0606096015173ffffffffffffffffffffffffffffffffffffffff1690565b16613dd7575b505a840360a086013510613d715750604085015260608401526080919060c0905a900391013501910152565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601e60448201527f41413430206f76657220766572696669636174696f6e4761734c696d697400006064820152608490fd5b90925081613de9929850868685615043565b96909138613d45565b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b73ffffffffffffffffffffffffffffffffffffffff16600052600160205267ffffffffffffffff613ebc8260401c60406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b91825492613ec984611c9d565b9055161490565b15613ed757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613fa790613f5f613f4582612b15565b73ffffffffffffffffffffffffffffffffffffffff168452565b602081013560208401526080810135604084015260a0810135606084015260c0810135608084015260e081013560c084015261010081013560e0840152610120810190612710565b908115613fec57613fd161124c6112468460a094613fcc601461044d99981015613ed0565b6132a8565b73ffffffffffffffffffffffffffffffffffffffff16910152565b505060a06000910152565b60a081015173ffffffffffffffffffffffffffffffffffffffff16156140395760c060035b60ff60408401519116606084015102016080830151019101510290565b60c0600161401c565b61405a60409295949395606083526060830190612bd4565b9460208201520152565b9061044d602f60405180947f414132332072657665727465643a20000000000000000000000000000000000060208301526140a881518092602086860191016127af565b810103600f8101855201836105ab565b916000926000925a9361418660208351936140e7855173ffffffffffffffffffffffffffffffffffffffff1690565b956140ff6140f86040830183612710565b908461468f565b60a086015173ffffffffffffffffffffffffffffffffffffffff169061412443600052565b85809373ffffffffffffffffffffffffffffffffffffffff8094161598896143bc575b60600151908601516040517f3a871cdd000000000000000000000000000000000000000000000000000000008152978896879586939060048501614042565b03938a1690f182918161439c575b5061439357506001906141a561354b565b6308c379a01461433f575b506142d2575b6141c3575b50505a900391565b6141ed9073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b614208610a2c82546dffffffffffffffffffffffffffff1690565b8083116142655761425e926dffffffffffffffffffffffffffff9103166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b38806141bb565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614347613569565b908161435357506141b0565b610f21916143619150614064565b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612f56565b95506141b69050565b6143b591925060203d81116129a65761299781836105ab565b9038614194565b9450614402610a2c6143ee8c73ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b546dffffffffffffffffffffffffffff1690565b8b8111156144195750856060835b96915050614147565b606087918d03614410565b90926000936000935a9461446d6020835193614454855173ffffffffffffffffffffffffffffffffffffffff1690565b956140ff6144656040830183612710565b90848c614996565b03938a1690f182918161466f575b50614666575060019061448c61354b565b6308c379a014614610575b506145a2575b6144ab575b5050505a900391565b6144d59073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b916144f1610a2c84546dffffffffffffffffffffffffffff1690565b9081831161453c575082547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000169190036dffffffffffffffffffffffffffff161790553880806144a2565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614618613569565b90816146245750614497565b86916146309150614064565b90610f216040519283927f220266b600000000000000000000000000000000000000000000000000000000845260048401612f6e565b965061449d9050565b61468891925060203d81116129a65761299781836105ab565b903861447b565b90918061469b57505050565b81515173ffffffffffffffffffffffffffffffffffffffff1692833b61492957600060206146cd610cb3610cb36134b2565b606086510151604051809481937f570e1a360000000000000000000000000000000000000000000000000000000083528261470c8a8a600484016134a1565b0393f190811561491c575b6000916148fe575b5073ffffffffffffffffffffffffffffffffffffffff8082169586156148915716809503614824573b156147b75761124c6112467fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d9361477e936132a8565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a3565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f4141313520696e6974436f6465206d757374206372656174652073656e64657260608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614916915060203d81116114545761144581836105ab565b3861471f565b6149246128cb565b614717565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601f60408201527f414131302073656e64657220616c726561647920636f6e73747275637465640060608201520190565b929091816149a5575b50505050565b82515173ffffffffffffffffffffffffffffffffffffffff1693843b614c3657600060206149d7610cb3610cb36134b2565b606087510151604051809481937f570e1a3600000000000000000000000000000000000000000000000000000000835282614a168b8b600484016134a1565b0393f1908115614c29575b600091614c0b575b5073ffffffffffffffffffffffffffffffffffffffff808216968715614b9d5716809603614b2f573b15614ac9575061124c6112467fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614a89936132a8565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a33880808061499f565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614c23915060203d81116114545761144581836105ab565b38614a29565b614c316128cb565b614a21565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b15614ca357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4141343120746f6f206c6974746c6520766572696669636174696f6e476173006044820152fd5b919060408382031261035957825167ffffffffffffffff81116103595783019080601f8301121561035957815191614d3883610639565b91614d4660405193846105ab565b8383526020848301011161035957602092614d66918480850191016127af565b92015190565b9061044d602f60405180947f414133332072657665727465643a20000000000000000000000000000000000060208301526140a881518092602086860191016127af565b939192606094600094600093805192614def60a08a86015195614dd4888811614c9c565b015173ffffffffffffffffffffffffffffffffffffffff1690565b91614e1a8373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b94614e36610a2c87546dffffffffffffffffffffffffffff1690565b96858810614fd65773ffffffffffffffffffffffffffffffffffffffff60208a9894614eac8a966dffffffffffffffffffffffffffff8b614ee59e03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b015194604051998a98899788937ff465c77e00000000000000000000000000000000000000000000000000000000855260048501614042565b0395169103f1908183918493614fb0575b50614fa9575050600190614f0861354b565b6308c379a014614f87575b50614f1a57565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601660408201527f4141333320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614f8f613569565b9081614f9b5750614f13565b610f21916143619150614d6c565b9450925050565b909250614fcf91503d8085833e614fc781836105ab565b810190614d01565b9138614ef6565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b91949293909360609560009560009382519061506a60a08b84015193614dd4848611614c9c565b936150958573ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b6150b0610a2c82546dffffffffffffffffffffffffffff1690565b87811061520b579273ffffffffffffffffffffffffffffffffffffffff60208a98969394614eac8a966dffffffffffffffffffffffffffff8d61512a9e9c9a03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b0395169103f19081839184936151ed575b506151e557505060019061514d61354b565b6308c379a0146151c6575b506151605750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601660448201527f4141333320726576657274656420286f72204f4f4729000000000000000000006064820152608490fd5b6151ce613569565b90816151da5750615158565b614630925050614d6c565b955093505050565b90925061520491503d8085833e614fc781836105ab565b913861513b565b610f218a6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6003111561528357565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9291906152d0604091600286526060602087015260608601906127d2565b930152565b939291906003811015615283576040916152d09186526060602087015260608601906127d2565b9061044d603660405180947f4141353020706f73744f702072657665727465643a2000000000000000000000602083015261534081518092602086860191016127af565b81010360168101855201836105ab565b929190925a9360009180519161536583615b6c565b9260a0810195615389875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff939084811690816154f8575050506153ca825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a9003019384029760408401908982511061548b577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f946154166020928c61548695510390611d5d565b01519489602061545861543d865173ffffffffffffffffffffffffffffffffffffffff1690565b9a5173ffffffffffffffffffffffffffffffffffffffff1690565b9401519785604051968796169a16988590949392606092608083019683521515602083015260408201520152565b0390a4565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f414135312070726566756e642062656c6f772061637475616c476173436f737460608201520190565b9a918051615508575b50506153cc565b6060850151600099509091803b1561562f57918991898361555b956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c0290600484016152b2565b0393f1908161561c575b5061561757600161557461354b565b6308c379a0146155f8575b61558b575b3880615501565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b615600613569565b8061560b575061557f565b614361610f21916152fc565b615584565b80610f486156299261057b565b38615565565b8980fd5b9392915a9060009280519061564782615b6c565b9360a083019661566b885173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff95908681169081615761575050506156ac845173ffffffffffffffffffffffffffffffffffffffff1690565b915b5a9003019485029860408301908a8251106156fb57507f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f949392615416615486938c602094510390611d5d565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f414135312070726566756e642062656c6f772061637475616c476173436f73746064820152608490fd5b93918051615771575b50506156ae565b606087015160009a509091803b1561589757918a918a836157c4956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c0290600484016152b2565b0393f19081615884575b5061587f5760016157dd61354b565b6308c379a014615862575b6157f4575b388061576a565b610f218b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b61586a613569565b8061587557506157e8565b6146308d916152fc565b6157ed565b80610f486158919261057b565b386157ce565b8a80fd5b909392915a948051916158ad83615b6c565b9260a08101956158d1875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9381851691826159b957505050615911825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a9003019384029760408401908982511061548b577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9461595d6020928c61548695510390611d5d565b61596688615279565b01519489602061598d61543d865173ffffffffffffffffffffffffffffffffffffffff1690565b940151604080519182529815602082015297880152606087015290821695909116939081906080820190565b9a9181516159c9575b5050615913565b8784026159d58a615279565b60028a14615a60576060860151823b1561035957615a2893600080948d604051978896879586937fa9a23409000000000000000000000000000000000000000000000000000000008552600485016152d5565b0393f18015615a53575b615a40575b505b38806159c2565b80610f48615a4d9261057b565b38615a37565b615a5b6128cb565b615a32565b6060860151823b1561035957615aab93600080948d604051978896879586937fa9a23409000000000000000000000000000000000000000000000000000000008552600485016152d5565b0393f19081615b59575b50615b54576001615ac461354b565b6308c379a014615b41575b15615a39576040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b615b49613569565b8061560b5750615acf565b615a39565b80610f48615b669261057b565b38615ab5565b60e060c0820151910151808214615bc0577f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480615bba575048905b0180821015615bb5575090565b905090565b90615ba8565b509056fea26469706673582212200ef28e512fa2e31405a7b73d9d44e8d679c5ba4b233d1bc9dd8979dd248f8a5d64736f6c63430008110033", "sourceMap": "830:29053:15:-:0;;;;;;;1716:1:12;1821:22;1716:1;830:29053:15;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x60806040526004361015610023575b361561001957600080fd5b610021611cd7565b005b60003560e01c80630396cb60146101b35780630bd28e3b146101aa5780631b2e01b8146101a15780631d732756146101985780631fad948c1461018f578063205c28781461018657806335567e1a1461017d5780634b1d7cf5146101745780635287ce121461016b57806370a08231146101625780638f41ec5a14610159578063957122ab146101505780639b249f6914610147578063a61935311461013e578063b760faf914610135578063bb9fe6bf1461012c578063c23a5cea14610123578063d6383f941461011a578063ee219423146101115763fc7e286d0361000e5761010c611bb7565b61000e565b5061010c61199f565b5061010c611837565b5061010c61169e565b5061010c611520565b5061010c6114e1565b5061010c6114c0565b5061010c611337565b5061010c611164565b5061010c611129565b5061010c6110a4565b5061010c610f54565b5061010c610bf8565b5061010c610b33565b5061010c610994565b5061010c6108ba565b5061010c6106e7565b5061010c610467565b5061010c610385565b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043563ffffffff8116808203610359576103547fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916102716102413373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b9161024d811515611e4e565b61026a610261600185015463ffffffff1690565b63ffffffff1690565b1115611eb3565b54926103366dffffffffffffffffffffffffffff946102f461029834888460781c16611d48565b966102a4881515611f18565b6102b081891115611f7d565b6102d4816102bc6105ec565b941684906dffffffffffffffffffffffffffff169052565b6001602084015287166dffffffffffffffffffffffffffff166040830152565b63ffffffff83166060820152600060808201526103313373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b611fe2565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b6024359077ffffffffffffffffffffffffffffffffffffffffffffffff8216820361035957565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043577ffffffffffffffffffffffffffffffffffffffffffffffff81168103610359576104149033600052600160205260406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b61041e8154611c9d565b9055005b73ffffffffffffffffffffffffffffffffffffffff81160361035957565b6024359061044d82610422565b565b60c4359061044d82610422565b359061044d82610422565b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760206104fc6004356104a881610422565b73ffffffffffffffffffffffffffffffffffffffff6104c561035e565b91166000526001835260406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54604051908152f35b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761055157604052565b610559610505565b604052565b610100810190811067ffffffffffffffff82111761055157604052565b67ffffffffffffffff811161055157604052565b6060810190811067ffffffffffffffff82111761055157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761055157604052565b6040519061044d82610535565b6040519060c0820182811067ffffffffffffffff82111761055157604052565b604051906040820182811067ffffffffffffffff82111761055157604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610675575b01160190565b61067d610505565b61066f565b92919261068e82610639565b9161069c60405193846105ab565b829481845281830111610359578281602093846000960137010152565b9181601f840112156103595782359167ffffffffffffffff8311610359576020838186019501011161035957565b5034610359576101c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595767ffffffffffffffff60043581811161035957366023820112156103595761074a903690602481600401359101610682565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36016101808112610359576101006040519161078783610535565b12610359576040516107988161055e565b6107a0610440565b815260443560208201526064356040820152608435606082015260a43560808201526107ca61044f565b60a082015260e43560c08201526101043560e082015281526101243560208201526101443560408201526101643560608201526101843560808201526101a4359182116103595761083e9261082661082e9336906004016106b9565b929091612f85565b6040519081529081906020820190565b0390f35b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103595760043567ffffffffffffffff9283821161035957806023830112156103595781600401359384116103595760248460051b830101116103595760240191906024356108b781610422565b90565b5034610359576108c936610842565b6108d49291926125b2565b6108dd836124a5565b60005b84811061095d57506000927fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f9728480a183915b85831061092d57610923858561261f565b6100216001600255565b909193600190610953610941878987612564565b61094b8886612542565b5190886129ad565b0194019190610912565b8061098b610984610972600194869896612542565b5161097e848a88612564565b84613c5a565b90836136fb565b019290926108e0565b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576004356109d081610422565b6024359060009133835282602052604083206dffffffffffffffffffffffffffff81541692838311610ad557848373ffffffffffffffffffffffffffffffffffffffff829593610a788496610a3f610a2c8798610ad29c612389565b6dffffffffffffffffffffffffffff1690565b6dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610acc6122f4565b50612396565b80f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576020600435610b7181610422565b73ffffffffffffffffffffffffffffffffffffffff610b8e61035e565b911660005260018252610bc98160406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006040519260401b16178152f35b503461035957610c0736610842565b610c0f6125b2565b6000805b838210610df657610c2491506124a5565b7fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972600080a16000805b848110610d5c57505060008093815b818110610c9357610923868660007f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d8180a261261f565b610cf7610ca182848a612a73565b610ccc610cb3610cb360208401612b15565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d600080a280612ac1565b906000915b808310610d1457505050610d0f90611c9d565b610c5c565b90919497610d4f610d49610d5592610d438c8b610d3c82610d368e8b8d612564565b92612542565b51916129ad565b90611d48565b99611c9d565b95611c9d565b9190610cfc565b610d67818688612a73565b6020610d7f610d768380612ac1565b92909301612b15565b9173ffffffffffffffffffffffffffffffffffffffff60009316905b828410610db45750505050610daf90611c9d565b610c4d565b90919294610d4f81610de985610de2610dd0610dee968d612542565b51610ddc8c8b8a612564565b85613c5a565b908b613913565b611c9d565b929190610d9b565b610e01828587612a73565b90610e0c8280612ac1565b92610e1c610cb360208301612b15565b9173ffffffffffffffffffffffffffffffffffffffff8316610e416001821415612b1f565b610e62575b505050610e5c91610e5691611d48565b91611c9d565b90610c13565b909592610e7b6040999693999895989788810190612710565b92908a3b156103595789938b918a5193849283927fe3563a4f00000000000000000000000000000000000000000000000000000000845260049e8f850193610ec294612cb9565b03815a93600094fa9081610f3b575b50610f255786517f86a9f75000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a16818a0190815281906020010390fd5b0390fd5b9497509295509093509181610e56610e5c610e46565b80610f48610f4e9261057b565b8061111e565b38610ed1565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595761083e73ffffffffffffffffffffffffffffffffffffffff600435610fa881610422565b608060409283928351610fba81610535565b60009381858093528260208201528287820152826060820152015216815280602052209061104965ffffffffffff6001835194610ff686610535565b80546dffffffffffffffffffffffffffff8082168852607082901c60ff161515602089015260789190911c1685870152015463ffffffff8116606086015260201c16608084019065ffffffffffff169052565b5191829182919091608065ffffffffffff8160a08401956dffffffffffffffffffffffffffff808251168652602082015115156020870152604082015116604086015263ffffffff6060820151166060860152015116910152565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595773ffffffffffffffffffffffffffffffffffffffff6004356110f581610422565b16600052600060205260206dffffffffffffffffffffffffffff60406000205416604051908152f35b600091031261035957565b50346103595760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035957602060405160018152f35b50346103595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035957600467ffffffffffffffff8135818111610359576111b590369084016106b9565b9050602435916111c483610422565b604435908111610359576111db90369085016106b9565b92909115908161132d575b506112c6576014821015611236575b610f21836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160409060208152600060208201520190565b6112466112529261124c926132a8565b906132b6565b60601c90565b3b1561125f5738806111f5565b610f21906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601b60208201527f41413330207061796d6173746572206e6f74206465706c6f796564000000000060408201520190565b610f21836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601960208201527f41413230206163636f756e74206e6f74206465706c6f7965640000000000000060408201520190565b90503b15386111e6565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043567ffffffffffffffff8111610359576113e7602061138e60249336906004016106b9565b73ffffffffffffffffffffffffffffffffffffffff9291836113ae6134b2565b169060006040518097819582947f570e1a36000000000000000000000000000000000000000000000000000000008452600484016134a1565b03925af191821561145b575b60009261142b575b50604051917f6ca7b806000000000000000000000000000000000000000000000000000000008352166004820152fd5b61144d91925060203d8111611454575b61144581836105ab565b81019061348c565b90386113fb565b503d61143b565b6114636128cb565b6113f3565b90816101609103126103595790565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610359576004359067ffffffffffffffff8211610359576108b791600401611468565b50346103595760206114d96114d436611477565b613121565b604051908152f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595761002160043561151b81610422565b611cdc565b5034610359576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261169b573381528060205260408120600181019063ffffffff82541690811561163d576115da61159f6116029361159161158c855460ff9060701c1690565b612146565b65ffffffffffff42166121ab565b84547fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff16602082901b69ffffffffffff000000001617909455565b7fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff8154169055565b60405165ffffffffffff91909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a90602090a280f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b80fd5b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576004356116da81610422565b610ad273ffffffffffffffffffffffffffffffffffffffff61171c3373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b926117d461173f610a2c86546dffffffffffffffffffffffffffff9060781c1690565b9461174b8615156121c5565b6117ac6001820161178465ffffffffffff611770835465ffffffffffff9060201c1690565b1661177c81151561222a565b42101561228f565b80547fffffffffffffffffffffffffffffffffffffffffffff00000000000000000000169055565b7fffffff0000000000000000000000000000ffffffffffffffffffffffffffffff8154169055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810186905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2600080809581948294165af16118316122f4565b50612324565b50346103595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595767ffffffffffffffff60043581811161035957611888903690600401611468565b6024359161189583610422565b604435908111610359576118b0610f219136906004016106b9565b6118b8612422565b6118c1856135f6565b6118d46118ce8287613a52565b90612de4565b946118e4826000924384526128d8565b96438252819360609573ffffffffffffffffffffffffffffffffffffffff831661196b575b505050506080015193611938604061192a602084015165ffffffffffff1690565b92015165ffffffffffff1690565b906040519687967f8b7ac98000000000000000000000000000000000000000000000000000000000885260048801612d89565b839550839496506119856040949293945180948193612d7b565b03925af19060806119946122f4565b929190388080611909565b5034610359576119ae36611477565b6119b6612422565b6119bf826135f6565b6119c98183613a52565b825160a001519193916119f69073ffffffffffffffffffffffffffffffffffffffff16613437565b613437565b90611a1a6119f1855173ffffffffffffffffffffffffffffffffffffffff90511690565b94611a23613270565b50611a52611a3660409586810190612710565b90600060148310611baf57506112466119f19261124c926132a8565b91611a5c91612de4565b805173ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff821660018114916080880151978781015191886020820151611ab19065ffffffffffff1690565b91015165ffffffffffff16916060015192611aca6105f9565b9a8b5260208b0152841515898b015265ffffffffffff1660608a015265ffffffffffff16608089015260a088015215159081611ba6575b50611b3b5750610f2192519485947fe0cff05f000000000000000000000000000000000000000000000000000000008652600486016133dd565b9190610f2193611b4a84613437565b611b71611b55610619565b73ffffffffffffffffffffffffffffffffffffffff9096168652565b6020850152519586957ffaecb4e40000000000000000000000000000000000000000000000000000000087526004870161334b565b90501538611b01565b915050613437565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595773ffffffffffffffffffffffffffffffffffffffff600435611c0881610422565b16600052600060205260a0604060002065ffffffffffff60018254920154604051926dffffffffffffffffffffffffffff90818116855260ff8160701c161515602086015260781c16604084015263ffffffff8116606084015260201c166080820152f35b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611ccb570190565b611cd3611c6d565b0190565b61044d335b73ffffffffffffffffffffffffffffffffffffffff90611cfc3482611d5d565b168060005260006020527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206dffffffffffffffffffffffffffff60406000205416604051908152a2565b91908201809211611d5557565b61044d611c6d565b73ffffffffffffffffffffffffffffffffffffffff16600052600060205260406000206dffffffffffffffffffffffffffff80825416928301809311611e41575b808311611de35761044d92166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6465706f736974206f766572666c6f77000000000000000000000000000000006044820152fd5b611e49611c6d565b611d9e565b15611e5557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611eba57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b15611f1f57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611f8457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b9065ffffffffffff6080600161044d946120426dffffffffffffffffffffffffffff86511682906dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b602085015115156eff000000000000000000000000000082549160701b16807fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff83161783557fffffff000000000000000000000000000000ffffffffffffffffffffffffffff7cffffffffffffffffffffffffffff000000000000000000000000000000604089015160781b16921617178155019263ffffffff6060820151167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008554161784550151167fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff69ffffffffffff0000000083549260201b169116179055565b1561214d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b91909165ffffffffffff80809416911601918211611d5557565b156121cc57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561223157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561229657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b3d1561231f573d9061230582610639565b9161231360405193846105ab565b82523d6000602084013e565b606090565b1561232b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b91908203918211611d5557565b1561239d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60209067ffffffffffffffff8111612415575b60051b0190565b61241d610505565b61240e565b6040519061242f82610535565b604051608083610100830167ffffffffffffffff811184821017612498575b60405260009283815283602082015283604082015283606082015283838201528360a08201528360c08201528360e082015281528260208201528260408201528260608201520152565b6124a0610505565b61244e565b906124af826123fb565b6124bc60405191826105ab565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06124ea82946123fb565b019060005b8281106124fb57505050565b602090612506612422565b828285010152016124ef565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020918151811015612557575b60051b010190565b61255f612512565b61254f565b91908110156125a5575b60051b810135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea181360301821215610359570190565b6125ad612512565b61256e565b60028054146125c15760028055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff1680156126b257600080809381935af161264c6122f4565b501561265457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f41413931206661696c65642073656e6420746f2062656e6566696369617279006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4141393020696e76616c69642062656e656669636961727900000000000000006044820152fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610359570180359067ffffffffffffffff82116103595760200191813603831361035957565b90816020910312610359575190565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b60005b8381106127c25750506000910152565b81810151838201526020016127b2565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361280e815180928187528780880191016127af565b0116010190565b9061282f6080916108b796946101c0808652850191612770565b9360e0815173ffffffffffffffffffffffffffffffffffffffff80825116602087015260208201516040870152604082015160608701526060820151858701528482015160a087015260a08201511660c086015260c081015182860152015161010084015260208101516101208401526040810151610140840152606081015161016084015201516101808201526101a08184039101526127d2565b506040513d6000823e3d90fd5b905a918160206128f16060830151936060810190612710565b9061292a8560405195869485947f1d73275600000000000000000000000000000000000000000000000000000000865260048601612815565b03816000305af16000918161297d575b5061297657506129636108b79360206000803e5a8103908111612969575b608084015190611d48565b91615350565b612971611c6d565b612958565b9250505090565b61299f91925060203d81116129a6575b61299781836105ab565b810190612761565b903861293a565b503d61298d565b905a928060206129c66060830151946060810190612710565b906129ff8660405195869485947f1d73275600000000000000000000000000000000000000000000000000000000865260048601612815565b03816000305af160009181612a53575b50612a4b5750612a386108b79460206000803e5a8103908111612a3e575b608083015190611d48565b92615633565b612a46611c6d565b612a2d565b935050505090565b612a6c91925060203d81116129a65761299781836105ab565b9038612a0f565b9190811015612ab4575b60051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa181360301821215610359570190565b612abc612512565b612a7d565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610359570180359067ffffffffffffffff821161035957602001918160051b3603831361035957565b356108b781610422565b15612b2657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393620696e76616c69642061676772656761746f720000000000000000006044820152fd5b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561035957016020813591019167ffffffffffffffff821161035957813603831361035957565b6108b791612bff81612be58461045c565b73ffffffffffffffffffffffffffffffffffffffff169052565b60208201356020820152612c9a612c4b612c30612c1f6040860186612b84565b610160806040880152860191612770565b612c3d6060860186612b84565b908583036060870152612770565b6080840135608084015260a084013560a084015260c084013560c084015260e084013560e08401526101008085013590840152610120612c8d81860186612b84565b9185840390860152612770565b91612cab6101409182810190612b84565b929091818503910152612770565b949391929083604087016040885252606086019360608160051b8801019482600090815b848310612cfc575050505050508460206108b795968503910152612770565b9091929394977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08b820301855288357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea184360301811215612d775760019184612d659201612bd4565b98602090810196950193019190612cdd565b8280fd5b908092918237016000815290565b9290936108b796959260c0958552602085015265ffffffffffff8092166040850152166060830152151560808201528160a082015201906127d2565b60405190612dd28261058f565b60006040838281528260208201520152565b612df9612dff91612df3612dc5565b50612e96565b91612e96565b9073ffffffffffffffffffffffffffffffffffffffff9182825116928315612e8b575b65ffffffffffff928391826040816020850151169301511693836040816020840151169201511690808410612e83575b50808511612e7b575b5060405195612e698761058f565b16855216602084015216604082015290565b935038612e5b565b925038612e52565b815181169350612e22565b612e9e612dc5565b5065ffffffffffff808260a01c168015612eea575b60405192612ec08461058f565b73ffffffffffffffffffffffffffffffffffffffff8116845260d01c602084015216604082015290565b5080612eb3565b15612ef857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393220696e7465726e616c2063616c6c206f6e6c790000000000000000006044820152fd5b9060406108b7926000815281602082015201906127d2565b6040906108b79392815281602082015201906127d2565b909291925a93612f96303314612ef1565b8151946040860151955a6113886060830151890101116130b6576108b7966000958051612fdd575b50505090612fd7915a9003608084015101943691610682565b9161589b565b61300c9161300891613003855173ffffffffffffffffffffffffffffffffffffffff1690565b6130e0565b1590565b613018575b8080612fbe565b612fd7929194506130276130f2565b90815161303b575b50506001939091613011565b7f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a20173ffffffffffffffffffffffffffffffffffffffff6020870151926130ac602061309a835173ffffffffffffffffffffffffffffffffffffffff1690565b92015195604051938493169683612f6e565b0390a3388061302f565b7fdeaddead0000000000000000000000000000000000000000000000000000000060005260206000fd5b9060009283809360208451940192f190565b3d610800808211613119575b50604051906020818301016040528082526000602083013e90565b9050386130fe565b6131376131316040830183612710565b90613265565b906131486131316060830183612710565b906131fe61315d613131610120840184612710565b60405194859360208501956101008201359260e08301359260c08101359260a08201359260808301359273ffffffffffffffffffffffffffffffffffffffff60208201359135168c9693909a9998959261012098959273ffffffffffffffffffffffffffffffffffffffff6101408a019d168952602089015260408801526060870152608086015260a085015260c084015260e08301526101008201520152565b03916132307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938481018352826105ab565b5190206040805160208101928352309181019190915246606082015260809283018152909161325f90826105ab565b51902090565b816040519182372090565b604051906040820182811067ffffffffffffffff82111761329b575b60405260006020838281520152565b6132a3610505565b61328c565b906014116103595790601490565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090358181169392601481106132eb57505050565b60140360031b82901b16169150565b9060c060a06108b793805184526020810151602085015260408101511515604085015265ffffffffffff80606083015116606086015260808201511660808501520151918160a082015201906127d2565b92946133ac61044d9561339a610100959998613388613374602097610140808c528b01906132fa565b9b878a019060208091805184520151910152565b80516060890152602001516080880152565b805160a08701526020015160c0860152565b73ffffffffffffffffffffffffffffffffffffffff81511660e0850152015191019060208091805184520151910152565b61342661044d946134146133ff60a0959998969960e0865260e08601906132fa565b98602085019060208091805184520151910152565b80516060840152602001516080830152565b019060208091805184520151910152565b9073ffffffffffffffffffffffffffffffffffffffff613455613270565b9216600052600060205263ffffffff600160406000206dffffffffffffffffffffffffffff815460781c1685520154166020830152565b9081602091031261035957516108b781610422565b9160206108b7938181520191612770565b7fbc79d710c27c417daea28cbdc16e638da2309ea2f5542218b102827c395d15d45473ffffffffffffffffffffffffffffffffffffffff16806108b75750737fc98430eaedbb6070b35b39d79872504908834890565b9061353773ffffffffffffffffffffffffffffffffffffffff916108b797959694606085526060850191612770565b941660208201526040818503910152612770565b60009060033d1161355857565b905060046000803e60005160e01c90565b600060443d106108b7576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc91823d016004833e815167ffffffffffffffff918282113d6024840111176135e5578184019485519384116135ed573d850101602084870101116135e557506108b7929101602001906105ab565b949350505050565b50949350505050565b6136036040820182612710565b61361b61360f84612b15565b93610120810190612710565b9290303b156103595760009361365f9160405196879586957f957122ab00000000000000000000000000000000000000000000000000000000875260048701613508565b0381305afa90816136e8575b5061044d57600161367a61354b565b6308c379a014613693575b61368b57565b61044d6128cb565b61369b613569565b806136a7575b50613685565b805160009250156136a157610f21906040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612f56565b80610f486136f59261057b565b3861366b565b91906137069061394a565b73ffffffffffffffffffffffffffffffffffffffff929183166138a557613837576137309061394a565b91166137c95761373d5750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b610f21836040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b92919061391f9061394a565b909273ffffffffffffffffffffffffffffffffffffffff808095169116036138a55761383757613730905b80156139e45761395990612e96565b7f182d361d27e8fee91541f8630840b9272bdb770c7bb6239b09cd74563c40534154806139c9575073ffffffffffffffffffffffffffffffffffffffff425b65ffffffffffff908160408501511681119182156139b9575b505091511691565b60208501511611905038806139b1565b73ffffffffffffffffffffffffffffffffffffffff90613998565b50600090600090565b156139f457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b916000915a93815190613a658282613f35565b613a6e81613121565b6020840152613aac6effffffffffffffffffffffffffffff60808401516060850151176040850151176101008401359060e0850135171711156139ed565b613ab582613ff7565b613ac08185846140b8565b9790613af1613008613ae6875173ffffffffffffffffffffffffffffffffffffffff1690565b602088015190613e60565b613bed57613afe43600052565b73ffffffffffffffffffffffffffffffffffffffff613b3660a0606097015173ffffffffffffffffffffffffffffffffffffffff1690565b16613bd3575b505a810360a084013510613b665760809360c092604087015260608601525a900391013501910152565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601e60408201527f41413430206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b90935081613be49297508584614db0565b95909238613b3c565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b9290916000925a8251613c6d8184613f35565b613c7683613121565b6020850152613cb46effffffffffffffffffffffffffffff60808301516060840151176040840151176101008601359060e0870135171711156139ed565b613cbd81613ff7565b613cc98186868b614424565b9890613cfa613008613cef865173ffffffffffffffffffffffffffffffffffffffff1690565b602087015190613e60565b613df257613d0743600052565b73ffffffffffffffffffffffffffffffffffffffff613d3f60a0606096015173ffffffffffffffffffffffffffffffffffffffff1690565b16613dd7575b505a840360a086013510613d715750604085015260608401526080919060c0905a900391013501910152565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601e60448201527f41413430206f76657220766572696669636174696f6e4761734c696d697400006064820152608490fd5b90925081613de9929850868685615043565b96909138613d45565b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b73ffffffffffffffffffffffffffffffffffffffff16600052600160205267ffffffffffffffff613ebc8260401c60406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b91825492613ec984611c9d565b9055161490565b15613ed757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613fa790613f5f613f4582612b15565b73ffffffffffffffffffffffffffffffffffffffff168452565b602081013560208401526080810135604084015260a0810135606084015260c0810135608084015260e081013560c084015261010081013560e0840152610120810190612710565b908115613fec57613fd161124c6112468460a094613fcc601461044d99981015613ed0565b6132a8565b73ffffffffffffffffffffffffffffffffffffffff16910152565b505060a06000910152565b60a081015173ffffffffffffffffffffffffffffffffffffffff16156140395760c060035b60ff60408401519116606084015102016080830151019101510290565b60c0600161401c565b61405a60409295949395606083526060830190612bd4565b9460208201520152565b9061044d602f60405180947f414132332072657665727465643a20000000000000000000000000000000000060208301526140a881518092602086860191016127af565b810103600f8101855201836105ab565b916000926000925a9361418660208351936140e7855173ffffffffffffffffffffffffffffffffffffffff1690565b956140ff6140f86040830183612710565b908461468f565b60a086015173ffffffffffffffffffffffffffffffffffffffff169061412443600052565b85809373ffffffffffffffffffffffffffffffffffffffff8094161598896143bc575b60600151908601516040517f3a871cdd000000000000000000000000000000000000000000000000000000008152978896879586939060048501614042565b03938a1690f182918161439c575b5061439357506001906141a561354b565b6308c379a01461433f575b506142d2575b6141c3575b50505a900391565b6141ed9073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b614208610a2c82546dffffffffffffffffffffffffffff1690565b8083116142655761425e926dffffffffffffffffffffffffffff9103166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b38806141bb565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614347613569565b908161435357506141b0565b610f21916143619150614064565b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612f56565b95506141b69050565b6143b591925060203d81116129a65761299781836105ab565b9038614194565b9450614402610a2c6143ee8c73ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b546dffffffffffffffffffffffffffff1690565b8b8111156144195750856060835b96915050614147565b606087918d03614410565b90926000936000935a9461446d6020835193614454855173ffffffffffffffffffffffffffffffffffffffff1690565b956140ff6144656040830183612710565b90848c614996565b03938a1690f182918161466f575b50614666575060019061448c61354b565b6308c379a014614610575b506145a2575b6144ab575b5050505a900391565b6144d59073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b916144f1610a2c84546dffffffffffffffffffffffffffff1690565b9081831161453c575082547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000169190036dffffffffffffffffffffffffffff161790553880806144a2565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614618613569565b90816146245750614497565b86916146309150614064565b90610f216040519283927f220266b600000000000000000000000000000000000000000000000000000000845260048401612f6e565b965061449d9050565b61468891925060203d81116129a65761299781836105ab565b903861447b565b90918061469b57505050565b81515173ffffffffffffffffffffffffffffffffffffffff1692833b61492957600060206146cd610cb3610cb36134b2565b606086510151604051809481937f570e1a360000000000000000000000000000000000000000000000000000000083528261470c8a8a600484016134a1565b0393f190811561491c575b6000916148fe575b5073ffffffffffffffffffffffffffffffffffffffff8082169586156148915716809503614824573b156147b75761124c6112467fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d9361477e936132a8565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a3565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f4141313520696e6974436f6465206d757374206372656174652073656e64657260608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614916915060203d81116114545761144581836105ab565b3861471f565b6149246128cb565b614717565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601f60408201527f414131302073656e64657220616c726561647920636f6e73747275637465640060608201520190565b929091816149a5575b50505050565b82515173ffffffffffffffffffffffffffffffffffffffff1693843b614c3657600060206149d7610cb3610cb36134b2565b606087510151604051809481937f570e1a3600000000000000000000000000000000000000000000000000000000835282614a168b8b600484016134a1565b0393f1908115614c29575b600091614c0b575b5073ffffffffffffffffffffffffffffffffffffffff808216968715614b9d5716809603614b2f573b15614ac9575061124c6112467fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614a89936132a8565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a33880808061499f565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614c23915060203d81116114545761144581836105ab565b38614a29565b614c316128cb565b614a21565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b15614ca357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4141343120746f6f206c6974746c6520766572696669636174696f6e476173006044820152fd5b919060408382031261035957825167ffffffffffffffff81116103595783019080601f8301121561035957815191614d3883610639565b91614d4660405193846105ab565b8383526020848301011161035957602092614d66918480850191016127af565b92015190565b9061044d602f60405180947f414133332072657665727465643a20000000000000000000000000000000000060208301526140a881518092602086860191016127af565b939192606094600094600093805192614def60a08a86015195614dd4888811614c9c565b015173ffffffffffffffffffffffffffffffffffffffff1690565b91614e1a8373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b94614e36610a2c87546dffffffffffffffffffffffffffff1690565b96858810614fd65773ffffffffffffffffffffffffffffffffffffffff60208a9894614eac8a966dffffffffffffffffffffffffffff8b614ee59e03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b015194604051998a98899788937ff465c77e00000000000000000000000000000000000000000000000000000000855260048501614042565b0395169103f1908183918493614fb0575b50614fa9575050600190614f0861354b565b6308c379a014614f87575b50614f1a57565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601660408201527f4141333320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614f8f613569565b9081614f9b5750614f13565b610f21916143619150614d6c565b9450925050565b909250614fcf91503d8085833e614fc781836105ab565b810190614d01565b9138614ef6565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b91949293909360609560009560009382519061506a60a08b84015193614dd4848611614c9c565b936150958573ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b6150b0610a2c82546dffffffffffffffffffffffffffff1690565b87811061520b579273ffffffffffffffffffffffffffffffffffffffff60208a98969394614eac8a966dffffffffffffffffffffffffffff8d61512a9e9c9a03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b0395169103f19081839184936151ed575b506151e557505060019061514d61354b565b6308c379a0146151c6575b506151605750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601660448201527f4141333320726576657274656420286f72204f4f4729000000000000000000006064820152608490fd5b6151ce613569565b90816151da5750615158565b614630925050614d6c565b955093505050565b90925061520491503d8085833e614fc781836105ab565b913861513b565b610f218a6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6003111561528357565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9291906152d0604091600286526060602087015260608601906127d2565b930152565b939291906003811015615283576040916152d09186526060602087015260608601906127d2565b9061044d603660405180947f4141353020706f73744f702072657665727465643a2000000000000000000000602083015261534081518092602086860191016127af565b81010360168101855201836105ab565b929190925a9360009180519161536583615b6c565b9260a0810195615389875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff939084811690816154f8575050506153ca825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a9003019384029760408401908982511061548b577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f946154166020928c61548695510390611d5d565b01519489602061545861543d865173ffffffffffffffffffffffffffffffffffffffff1690565b9a5173ffffffffffffffffffffffffffffffffffffffff1690565b9401519785604051968796169a16988590949392606092608083019683521515602083015260408201520152565b0390a4565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f414135312070726566756e642062656c6f772061637475616c476173436f737460608201520190565b9a918051615508575b50506153cc565b6060850151600099509091803b1561562f57918991898361555b956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c0290600484016152b2565b0393f1908161561c575b5061561757600161557461354b565b6308c379a0146155f8575b61558b575b3880615501565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b615600613569565b8061560b575061557f565b614361610f21916152fc565b615584565b80610f486156299261057b565b38615565565b8980fd5b9392915a9060009280519061564782615b6c565b9360a083019661566b885173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff95908681169081615761575050506156ac845173ffffffffffffffffffffffffffffffffffffffff1690565b915b5a9003019485029860408301908a8251106156fb57507f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f949392615416615486938c602094510390611d5d565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f414135312070726566756e642062656c6f772061637475616c476173436f73746064820152608490fd5b93918051615771575b50506156ae565b606087015160009a509091803b1561589757918a918a836157c4956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c0290600484016152b2565b0393f19081615884575b5061587f5760016157dd61354b565b6308c379a014615862575b6157f4575b388061576a565b610f218b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b61586a613569565b8061587557506157e8565b6146308d916152fc565b6157ed565b80610f486158919261057b565b386157ce565b8a80fd5b909392915a948051916158ad83615b6c565b9260a08101956158d1875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9381851691826159b957505050615911825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a9003019384029760408401908982511061548b577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9461595d6020928c61548695510390611d5d565b61596688615279565b01519489602061598d61543d865173ffffffffffffffffffffffffffffffffffffffff1690565b940151604080519182529815602082015297880152606087015290821695909116939081906080820190565b9a9181516159c9575b5050615913565b8784026159d58a615279565b60028a14615a60576060860151823b1561035957615a2893600080948d604051978896879586937fa9a23409000000000000000000000000000000000000000000000000000000008552600485016152d5565b0393f18015615a53575b615a40575b505b38806159c2565b80610f48615a4d9261057b565b38615a37565b615a5b6128cb565b615a32565b6060860151823b1561035957615aab93600080948d604051978896879586937fa9a23409000000000000000000000000000000000000000000000000000000008552600485016152d5565b0393f19081615b59575b50615b54576001615ac461354b565b6308c379a014615b41575b15615a39576040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b615b49613569565b8061560b5750615acf565b615a39565b80610f48615b669261057b565b38615ab5565b60e060c0820151910151808214615bc0577f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480615bba575048905b0180821015615bb5575090565b905090565b90615ba8565b509056fea26469706673582212200ef28e512fa2e31405a7b73d9d44e8d679c5ba4b233d1bc9dd8979dd248f8a5d64736f6c63430008110033", "sourceMap": "830:29053:15:-:0;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2684:47:3;;2169:10;2258:80;2160:20;2169:10;830:29053:15;;2160:8:3;830:29053:15;2160:8:3;830:29053:15;;;2160:8:3;830:29053:15;;;2160:20:3;2198:19;2190:58;2198:19;;;2190:58;:::i;:::-;2266:39;830:29053:15;2285:20:3;;;830:29053:15;;;;;;;;;;2266:39:3;-1:-1:-1;2266:39:3;2258:80;:::i;:::-;830:29053:15;;;;2377:9:3;2532:137;2364:22;2377:9;830:29053:15;;;;;2364:22:3;:::i;:::-;2404:9;2396:40;2404:9;;;2396:40;:::i;:::-;2446:53;2454:26;;;;2446:53;:::i;:::-;2532:137;830:29053:15;;;:::i;:::-;;;2532:137:3;830:29053:15;;;;;;2532:137:3;2285:20;830:29053:15;2532:137:3;;830:29053:15;;;;;2532:137:3;;;830:29053:15;;2532:137:3;830:29053:15;;;2532:137:3;;;830:29053:15;;2532:137:3;;;830:29053:15;2509:20:3;2169:10;830:29053:15;;2160:8:3;830:29053:15;2160:8:3;830:29053:15;;;2160:8:3;830:29053:15;;;2509:20:3;830:29053:15;:::i;:::-;2532:137:3;830:29053:15;;;;;;;;;;;;;2169:10:3;;830:29053:15;;;;;;;2684:47:3;;;;830:29053:15;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;848:36:1;868:10;;-1:-1:-1;830:29053:15;848:19:1;830:29053:15;;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;848:36:1;:38;830:29053:15;;848:38:1;:::i;:::-;830:29053:15;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;268:74:1;830:29053:15;;;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;830:29053:15;268:74:1;830:29053:15;;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;268:74:1;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;12806:15;830:29053;;12806:15;830:29053;;;;;;;;;;;12806:15;830:29053;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;2227:103:12;;;;;:::i;:::-;4015:24:15;;;:::i;:::-;4091:1;4094:10;;;;;;4413:21;4091:1;4453:17;;;;;4490:13;4485:120;4505:10;;;;;;4644:9;;;;:::i;:::-;2292:1:12;1517::15;2809:22:12;830:29053:15;2629:209:12;4517:3:15;4571:6;;;830:29053;4571:6;4553:37;4571:6;;;;;:::i;:::-;4579:10;;;;:::i;:::-;;4553:37;;;:::i;:::-;830:29053;4517:3;830:29053;4490:13;;;;4106:3;4156:10;4373;4237:38;4156:10;830:29053;4156:10;;;;;:::i;:::-;;4260:6;;;;;:::i;:::-;4237:38;;:::i;:::-;4373:10;;;:::i;:::-;830:29053;4079:13;;;;;830:29053;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4450:10:3;;830:29053:15;;;;;;;;;;;;4479:30:3;;;;830:29053:15;;4572:29:3;;830:29053:15;4572:29:3;;;4549:53;4572:29;;4564:38;4572:29;;;4757:38;4572:29;;:::i;:::-;830:29053:15;;;;4564:38:3;830:29053:15;;;;;;;;;;4549:53:3;830:29053:15;;;;;;;;;;;;;;4450:10:3;;4617:54;;;830:29053:15;4699:48:3;;;;:::i;:::-;;4757:38;:::i;:::-;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;830:29053:15;462:19:1;830:29053:15;;462:32:1;830:29053:15;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;462:32:1;830:29053:15;;;;;;;;462:55:1;830:29053:15;;;;;;;;;;;:::i;:::-;2227:103:12;;:::i;:::-;5171:1:15;5187:13;5202:11;;;;;;5953:26;;;;:::i;:::-;5995:17;5171:1;5995:17;;5171:1;6057:13;6072:11;;;;;;6800;;5171:1;6769:21;6826:13;;6841:11;;;;;;7367:9;7293:38;;5171:1;6947:51;7293:38;;;7367:9;:::i;6854:3::-;7043:11;6909:19;;;;;:::i;:::-;6947:51;6974:23;6982:14;5384;6982;;;:::i;:::-;830:29053;;;;6947:51;;5171:1;6947:51;;7043:11;;:::i;:::-;7115:13;5171:1;7110:159;7130:10;;;;;;6854:3;;;;;;:::i;:::-;6826:13;;7142:3;7202:6;;;;7245:9;7165:62;7142:3;7202:6;7178:49;7202:6;;7210:16;7202:6;;;;;;:::i;:::-;7210:16;;:::i;:::-;;7178:49;;:::i;:::-;7165:62;;:::i;:::-;7245:9;;:::i;:::-;7142:3;;:::i;:::-;7115:13;;;;6085:3;6140:19;;;;;:::i;:::-;5384:14;6254;6204:11;;;;:::i;:::-;6254:14;;;;;:::i;:::-;6329:13;830:29053;5171:1;830:29053;;6324:425;6344:10;;;;;;6085:3;;;;;;;:::i;:::-;6057:13;;6356:3;6406:16;;;;6725:9;6406:16;6670:19;6406:16;6500:44;6406:16;6356:3;6406:16;;;:::i;:::-;;6529:6;;;;;:::i;:::-;6500:44;;:::i;:::-;6670:19;;;:::i;:::-;6725:9;:::i;6356:3::-;6329:13;;;;;5215:3;5270:19;;;;;:::i;:::-;5334:11;;;;;:::i;:::-;5384:14;5485:19;5384:14;;;;;:::i;5485:19::-;830:29053;;;;5477:69;5516:1;5485:33;;;5477:69;:::i;:::-;5561:305;;5215:3;5880:22;;;5215:3;5880:22;;;;:::i;:::-;5215:3;;:::i;:::-;5187:13;;;5561:305;5718:13;;;;;;;;;;;;;;;;;;:::i;:::-;5683:49;;;;;;;830:29053;;;;;;5683:49;;;;;830:29053;5683:49;;830:29053;5683:49;;;;;;;;:::i;:::-;;;;;5171:1;5683:49;;;;;;5561:305;-1:-1:-1;5679:173:15;;830:29053;;5787:46;;;830:29053;;;5787:46;;;830:29053;;;;;;;5787:46;;;;;;;5679:173;;;-1:-1:-1;5679:173:15;;-1:-1:-1;5679:173:15;;-1:-1:-1;5679:173:15;;5880:22;5215:3;5561:305;;5683:49;;;;;;:::i;:::-;;;:::i;:::-;;;;830:29053;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;830:29053:15;-1:-1:-1;830:29053:15;;;;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;1517:1;830:29053;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17022:20;;;;:47;;;;830:29053;17018:182;;;17240:2;17213:29;;;17209:308;;830:29053;17551:10;830:29053;;;17551:10;;;;;;;;830:29053;;;;;;;;;;;;;17209:308;17294:22;17278:40;17294:22;17286:31;17294:22;;:::i;:::-;17286:31;;:::i;:::-;830:29053;;;;17278:40;17336:21;:26;17332:175;;17209:308;;;;17332:175;17455:37;830:29053;;;17455:37;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;17018:182;17154:35;830:29053;;;17154:35;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;17022:47;17046:18;;;:23;17022:47;;;830:29053;;;;;;;;;;;;;;;;;;;16170:45;830:29053;;;;;;;;;:::i;:::-;;;;16098:45;;;:::i;:::-;830:29053;;-1:-1:-1;830:29053:15;;16170:45;;;;;;830:29053;16170:45;;830:29053;16170:45;;;:::i;:::-;;;;;;;;;;830:29053;-1:-1:-1;16170:45:15;;;830:29053;;;;16233:27;;;;830:29053;;16233:27;;830:29053;16233:27;16170:45;;;;;830:29053;16170:45;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;830:29053;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;2955:10:3;830:29053:15;;;;;;;;2984:20:3;;;830:29053:15;;;;;2984:25:3;;;830:29053:15;;3163:32:3;3107:46;3205:19;830:29053:15;3034:41:3;830:29053:15;;;;;;;;;;;3034:41:3;:::i;:::-;830:29053:15;3114:15:3;830:29053:15;3107:46:3;:::i;:::-;830:29053:15;;;;;;;;;;;;;;;3163:32:3;830:29053:15;;;;;;;3205:19:3;830:29053:15;;;;;;;;;2955:10:3;;3239:39;;830:29053:15;;3239:39:3;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4091:44:3;830:29053:15;3593:20:3;3602:10;830:29053:15;;2160:8:3;830:29053:15;2160:8:3;830:29053:15;;;2160:8:3;830:29053:15;;;3593:20:3;830:29053:15;3935:14:3;3623:26;830:29053:15;;;;;;;;;;3623:26:3;3667:9;3659:42;3667:9;;;3659:42;:::i;:::-;3904:21;3719:17;;;3784:76;830:29053:15;;;;;;;;;;;;;3711:63:3;3719:21;;;3711:63;:::i;:::-;3813:15;-1:-1:-1;3792:36:3;3784:76;:::i;:::-;830:29053:15;;;;;;;3904:21:3;830:29053:15;;;;;;;3935:14:3;830:29053:15;;;;;;;;;;;;;;3602:10:3;;3964:50;;;-1:-1:-1;830:29053:15;;;;;;;;4042:39:3;;;;:::i;:::-;;4091:44;:::i;830:29053:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;8139:101;830:29053;;;;;;:::i;:::-;;;:::i;:::-;7631:2;;;:::i;:::-;7777:60;7704:34;;;;:::i;:::-;7777:60;;:::i;:::-;-1:-1:-1;7887:29:15;-1:-1:-1;;29823:52:15;;;;7887:29;:::i;:::-;29823:52;;;;7950:18;7978:25;830:29053;;;;;8013:110;;830:29053;8155:15;;;;;;830:29053;8178:15;830:29053;;;;8178:15;;830:29053;;;;;;8195:15;;830:29053;;;;;;;;;8139:101;;;;;;830:29053;8139:101;;;:::i;8013:110::-;830:29053;;;;;;;;;;;;;;;;;;;:::i;:::-;8085:27;;;;;8155:15;8085:27;;:::i;:::-;8053:59;8013:110;;;;;;;830:29053;;;;;;;;:::i;:::-;;;:::i;:::-;12436:6;;;:::i;:::-;12513:41;;;;:::i;:::-;12611:17;;:27;;830:29053;12611:17;;;12597:42;;830:29053;;12597:42;:::i;12611:27::-;12597:42;:::i;:::-;12693:17;12679:39;12693:24;:17;;830:29053;;;;;;12679:39;830:29053;;;:::i;:::-;;12950:22;12806:15;;;;;;;;:::i;:::-;12853:69;-1:-1:-1;12872:2:15;12853:21;;12872:2;;12893:14;;12877:32;12893:14;12885:23;12893:14;;:::i;12950:22::-;13022:60;;;;:::i;:::-;830:29053;;;;;;;;13177:1;13155:24;;13244:18;;;;830:29053;13276:17;;;;830:29053;13330:15;;;;;830:29053;;;;;;;;13359:15;;830:29053;;;13413:23;;;830:29053;;;;:::i;:::-;;;;13330:15;13220:227;;830:29053;;;;13220:227;;;830:29053;;;13413:23;13220:227;;830:29053;;;13244:18;13220:227;;830:29053;12611:27;13220:227;;830:29053;13462:24;;:52;;;;12853:69;13458:305;;;830:29053;13779:68;830:29053;;13779:68;;;;;;830:29053;13779:68;;;:::i;13458:305::-;13606:25;;13653:99;13606:25;;;;:::i;:::-;13574:58;830:29053;;:::i;:::-;;;;;;;;13574:58;13330:15;13574:58;;830:29053;;13653:99;;;;;;830:29053;13653:99;;;:::i;13462:52::-;13490:24;;;13462:52;;;12853:69;;;;12950:22;:::i;830:29053::-;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;830:29053:15;-1:-1:-1;830:29053:15;;;;-1:-1:-1;830:29053:15;;506:47:3;830:29053:15;;506:47:3;;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;:::o;1216:65:3:-;1263:10;;1649:206;830:29053:15;1649:206:3;1737:9;;;;:::i;:::-;830:29053:15;;1784:8:3;830:29053:15;1784:8:3;830:29053:15;;1816:32:3;830:29053:15;;;1784:8:3;830:29053:15;;;;;;;;1816:32:3;1649:206::o;830:29053:15:-;;;;;;;;;;:::o;:::-;;;:::i;1287:293:3:-;830:29053:15;;1393:8:3;830:29053:15;1393:8:3;830:29053:15;;;1393:8:3;830:29053:15;;;;;;;;;;;;;;1287:293:3;1479:30;;;830:29053:15;;1540:33:3;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;830:29053:15;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;830:29053:15;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;2336:287:12;2468:7;830:29053:15;;2468:19:12;1759:1;;2468:7;830:29053:15;;2336:287:12:o;1759:1::-;;830:29053:15;;1759:1:12;;;;;;;;;;;;830:29053:15;1759:1:12;830:29053:15;;;1759:1:12;;1738:278:15;830:29053;;1831:25;;830:29053;;1854:1;1913:35;;;;;;;;;:::i;:::-;;830:29053;;;1738:278::o;830:29053::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;830:29053:15;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;2294:1166;;2475:9;2542:20;;2578:52;2597:15;2542:20;;;830:29053;2597:15;2542:20;2597:15;;;;:::i;:::-;830:29053;2578:52;830:29053;;;2578:52;;;;;830:29053;2578:52;;;;;;:::i;:::-;;:4;-1:-1:-1;2578:4:15;:52;;-1:-1:-1;;2578:52:15;;;2294:1166;-1:-1:-1;2574:880:15;;2773:109;3293:36;3355:88;2773:109;2578:52;-1:-1:-1;2773:109:15;;3302:9;830:29053;;;;;;;2574:880;3314:15;;;830:29053;3293:36;;:::i;:::-;3355:88;;:::i;830:29053::-;;;:::i;:::-;;;2574:880;2678:26;;;;2574:880;2294:1166::o;2578:52::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2294:1166;;2475:9;2542:20;;2578:52;2597:15;2542:20;;;830:29053;2597:15;2542:20;2597:15;;;;:::i;:::-;830:29053;2578:52;830:29053;;;2578:52;;;;;830:29053;2578:52;;;;;;:::i;:::-;;:4;-1:-1:-1;2578:4:15;:52;;-1:-1:-1;;2578:52:15;;;2294:1166;-1:-1:-1;2574:880:15;;2773:109;3293:36;3355:88;2773:109;2578:52;-1:-1:-1;2773:109:15;;3302:9;830:29053;;;;;;;2574:880;3314:15;;;830:29053;3293:36;;:::i;:::-;3355:88;;:::i;830:29053::-;;;:::i;:::-;;;2574:880;2678:26;;;;;2574:880;2294:1166::o;2578:52::-;;;;;;;;;;;;;;;:::i;:::-;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;830:29053:15;;;;;;;;;;;;:::o;1392:927:0:-;1571:36;1658:45;1392:927;830:29053:15;;:::i;:::-;;1571:36:0;:::i;:::-;1658:45;;:::i;:::-;830:29053:15;;;;;;;1780:24:0;;;1776:95;;1392:927;830:29053:15;1900:32:0;;;;1962;1900;;;;830:29053:15;;1962:32:0;;830:29053:15;;2026:27:0;;1962:32;2026:27;1900:32;2026:27;;830:29053:15;;2085:27:0;;830:29053:15;;2127:25:0;;;;2123:56;;1392:927;2193:25;;;;2189:56;;1392:927;830:29053:15;1962:32:0;830:29053:15;;;;;:::i;:::-;;;;;1900:32:0;2262:50;;830:29053:15;;1962:32:0;2262:50;;830:29053:15;1392:927:0;:::o;2189:56::-;2220:25;-1:-1:-1;2189:56:0;;;2123;2154:25;-1:-1:-1;2123:56:0;;;1776:95;830:29053:15;;;;;-1:-1:-1;1776:95:0;;904:439;830:29053:15;;:::i;:::-;;;;;1115:3:0;830:29053:15;;1133:15:0;;1129:75;;904:439;830:29053:15;;;;;;:::i;:::-;;;;;;1259:8:0;830:29053:15;1286:50:0;;;830:29053:15;;;1286:50:0;;830:29053:15;904:439:0;:::o;1129:75::-;1164:29;;1129:75;;830:29053:15;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;1286:4;;;;;9319:14;830:29053;;1286:4;;;;;;;;:::i;:::-;;;;;;830:29053;;1286:4;;;;;;;;:::i;9013:1563::-;;;;;9197:9;9246:4;9216:63;9246:4;9224:10;:27;9216:63;:::i;:::-;9319:14;;9367:20;;;;830:29053;9506:9;;9564:4;9533:28;;;830:29053;;;;-1:-1:-1;9502:210:15;;10509:50;9732:62;-1:-1:-1;830:29053:15;;;9804:466;;9013:1563;10333:9;;;;1286:4;10333:9;;1286:4;;10345:15;;;830:29053;;1286:4;;;;:::i;:::-;10509:50;;:::i;9804:466::-;9928:8;830:29053;9858:52;830:29053;;;;;;;;;9858:52;:::i;:::-;9928:8;;830:29053;9928:8;9924:336;;9804:466;;;;;9924:336;1286:4;9978:41;;;;;;:::i;:::-;830:29053;;;10037:152;;9924:336;10206:39;;10213:32;9924:336;;;;;10037:152;10087:83;830:29053;10113:17;;;1286:4;830:29053;10087:83;10113:17;830:29053;;;;;;;;10148:13;;830:29053;;9367:20;830:29053;;;;;10087:83;;;:::i;:::-;;;;10037:152;;;;9502:210;9588:110;-1:-1:-1;9588:110:15;;-1:-1:-1;9588:110:15;230:263:11;;9319:14:15;230:263:11;;;;385:102;;;;;;;230:263;:::o;1066:436::-;1163:333;1286:4:15;1163:333:11;;;;;1066:436;1163:333;;;;;;;;;;;;;;;;;;;1066:436;:::o;1163:333::-;;;;;;10784:174:15;2762:31:10;2777:15;;;;;;:::i;:::-;2762:31;;:::i;:::-;2841:15;2826:31;2841:15;;;;;;:::i;2826:31::-;3217:23;3259:237;3202:39;3217:23;;;;;;:::i;3202:39::-;2777:15;830:29053:15;3259:237:10;;;2717:12;3259:237;;3134:27;;;;830:29053:15;3074:19:10;;;;830:29053:15;3016:25:10;;;;830:29053:15;2950:27:10;;;;830:29053:15;2890:19:10;;;;830:29053:15;2717:12:10;830:29053:15;2717:12:10;;;830:29053:15;1859:39:10;;830:29053:15;3259:237:10;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3259:237:10;;;;;;;;;;;;;:::i;:::-;830:29053:15;3603:23:10;;2777:15;830:29053:15;;2717:12:10;10895:55:15;;830:29053;;;10929:4;830:29053;;;;;;;10936:13;830:29053;;;;;10895:55;;;;;;;;;830:29053;10895:55;:::i;:::-;830:29053;10885:66;;10784:174;:::o;3357:265:0:-;3439:177;;;;;;;3357:265;:::o;830:29053:15:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;;:::o;:::-;;;:::i;:::-;;;;;17240:2;830:29053;;;;17240:2;830:29053;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;830:29053:15:o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:248:3;;830:29053:15;;;:::i;:::-;;;908:8:3;830:29053:15;908:8:3;830:29053:15;;;995:27:3;830:29053:15;908:8:3;830:29053:15;;;;;;;;;995:27:3;830:29053:15;;;972:20:3;;830:29053:15;781:248:3:o;830:29053:15:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;1003:226:14:-;317:27;;830:29053:15;;1163:21:14;830:29053:15;;1163:59:14;695:42;1003:226;:::o;830:29053:15:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;:::o;16273:421::-;16454:15;;;;;;:::i;:::-;16486:23;16471:13;;;:::i;:::-;16486:23;;;;;;:::i;:::-;16421:4;;;:89;;;;16471:13;830:29053;16421:89;830:29053;16454:15;830:29053;16421:89;;;;;830:29053;16421:89;;;;;;:::i;:::-;;:4;;:89;;;;;;16273:421;-1:-1:-1;16417:271:15;;;;;:::i;:::-;;;;;;;;16273:421::o;16417:271::-;;;:::i;:::-;16522:166;;:::i;:::-;;;;16417:271;;;;16522:166;830:29053;;16471:13;;-1:-1:-1;16576:102:15;16522:166;16576:102;16638:25;830:29053;16454:15;830:29053;16638:25;;;;;;16421:89;16638:25;;;:::i;16421:89::-;;;;;;:::i;:::-;;;;21467:1099;;;21727:34;21467:1099;21727:34;:::i;:::-;830:29053;;;;;21771:111;;21891:96;;22287:43;;;:::i;:::-;830:29053;;22340:105;;22454:106;;21467:1099;:::o;22454:106::-;830:29053;;;22495:54;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;;;;5787:46;22340:105;22393:41;830:29053;;;22393:41;;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;21891:96;21932:44;830:29053;;;21932:44;;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;21771:111;21830:41;830:29053;;;21830:41;;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;21467:1099;;;;21727:34;21467:1099;21727:34;:::i;:::-;830:29053;;;;;;;;;21775:32;21771:111;;21891:96;;22287:43;;22572:523;22730:19;;22726:76;;22840:36;;;:::i;:::-;494:28:14;830:29053:15;2434:14:14;;;2451:15;830:29053:15;2451:15:14;2434:44;830:29053:15;22999:15;;;;;830:29053;;22982:32;;:68;;;;;2434:44:14;22965:85:15;;830:29053;;;22572:523;:::o;22982:68::-;23035:15;;;830:29053;;-1:-1:-1;;;22982:68:15;;;;2434:44:14;830:29053:15;2434:44:14;;;22726:76:15;22765:26;22748:1;22765:26;22748:1;22765:26;:::o;830:29053::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;23452:2125;;-1:-1:-1;23679:9:15;;23728:17;;;23783:7;;;;;:::i;:::-;23824:21;;;:::i;:::-;23801:20;;;830:29053;24185:70;830:29053;24031:26;;;830:29053;24060:28;;;830:29053;24031:57;24091:20;;;830:29053;24031:80;24148:27;;;830:29053;24126:19;;;;830:29053;24031:114;:144;24193:33;;24185:70;:::i;:::-;24346:28;;;:::i;:::-;24451:71;;;;;:::i;:::-;24384:138;;24537:55;24538:54;830:29053;;;;;;;;23801:20;24578:13;;830:29053;24538:54;;:::i;24537:55::-;24533:140;;;29823:52;;;29775:106;24533:140;830:29053;;24908:17;24060:28;24908:17;;830:29053;;;;;;;24904:238;;23452:2125;25202:9;;1286:4;;24908:17;25230:27;;830:29053;25230:37;25226:134;;24031:26;25373:17;25535:25;25373:17;24091:20;25373:17;;830:29053;24060:28;25422:23;;830:29053;25523:9;1286:4;;25535:25;;830:29053;;25493:18;;830:29053;23452:2125::o;25226:134::-;24091:20;830:29053;25294:51;;;;;;;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;24904:238;24992:139;;;;;;;;;;;:::i;:::-;24955:176;;24904:238;;;;24533:140;24091:20;830:29053;24615:47;;;;;;;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;23452:2125;;;;830:29053;23679:9;;23728:17;;23783:7;;;;:::i;:::-;23824:21;;;:::i;:::-;23801:20;;;830:29053;24185:70;830:29053;24031:26;;;830:29053;24060:28;;;830:29053;24031:57;24091:20;;;830:29053;24031:80;24148:27;;;830:29053;24126:19;;;;830:29053;24031:114;:144;24193:33;;24185:70;:::i;:::-;24346:28;;;:::i;:::-;24451:71;;;;;;:::i;:::-;24384:138;;24537:55;24538:54;830:29053;;;;;;;;23801:20;24578:13;;830:29053;24538:54;;:::i;24537:55::-;24533:140;;;29823:52;;;29775:106;24533:140;830:29053;;24908:17;24060:28;24908:17;;830:29053;;;;;;;24904:238;;23452:2125;25202:9;;1286:4;;24908:17;25230:27;;830:29053;25230:37;25226:134;;-1:-1:-1;24091:20:15;25373:17;;830:29053;24060:28;25422:23;;830:29053;24031:26;;25373:17;25535:25;;25523:9;1286:4;;25535:25;;830:29053;;25493:18;;830:29053;23452:2125::o;25226:134::-;24091:20;830:29053;;25294:51;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;24904:238;24992:139;;;;;;;;;;;;:::i;:::-;24955:176;;24904:238;;;;24533:140;24615:47;830:29053;24091:20;830:29053;24615:47;;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;1008:234:1;830:29053:15;;-1:-1:-1;830:29053:15;1194:19:1;830:29053:15;;;1194:32:1;830:29053:15;1138:2:1;830:29053:15;1138:2:1;-1:-1:-1;830:29053:15;;;;;;;;;;;;;1194:32:1;830:29053:15;;;1194:34:1;;;;:::i;:::-;830:29053:15;;;1194:41:1;1008:234;:::o;830:29053:15:-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;11053:831;11582:23;11053:831;11166:30;11183:13;;;:::i;:::-;830:29053;;;;;11166:30;11222:12;;;830:29053;11222:12;11206:13;;830:29053;11267:19;;;830:29053;11244:20;;;830:29053;11327:27;;;830:29053;11296:28;;;830:29053;11393:25;;;830:29053;11267:19;11364:26;;830:29053;11451:19;;;830:29053;11393:25;11428:20;;830:29053;11511:27;;;830:29053;11451:19;11480:28;;830:29053;11582:23;;;;;:::i;:::-;11619:27;;;;;11767:39;11775:30;11783:21;11670:29;11327:27;11670:29;11662:71;11697:2;11747:59;11670:29;;;;11662:71;:::i;:::-;11783:21;:::i;11767:39::-;830:29053;;11747:17;;830:29053;;11615:263;11837:17;;11327:27;830:29053;11837:17;;830:29053;11053:831::o;13860:579::-;14194:17;;;830:29053;;;14194:31;:39;;14402:20;14228:1;14194:39;830:29053;14269:20;;;830:29053;;;14292:28;;;830:29053;;;14329:26;;;830:29053;;14402:20;;830:29053;;13860:579;:::o;14194:39::-;14402:20;14232:1;14194:39;;830:29053;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;17774:1772::-;;-1:-1:-1;18005:22:15;-1:-1:-1;18080:9:15;;18133:14;18594:140;18682:17;18133:14;;830:29053;;;;;;;;;18245:11;;;;;;;;:::i;:::-;;;;:::i;:::-;18291:17;;;830:29053;;;18271:37;;29823:52;;;29775:106;18271:37;18350:31;;830:29053;;;;;18399:23;18395:182;;;;17774:1772;18631:28;;830:29053;18682:17;;;1286:4;18245:11;830:29053;;18594:140;;830:29053;;;;;;;1286:4;18594:140;;;;:::i;:::-;;830:29053;;;18594:140;;;;;;;17774:1772;-1:-1:-1;18590:480:15;;;;;;;:::i;:::-;;;;;;;;;;19083:378;;18590:480;19520:9;;;1286:4;;17774:1772;:::o;19083:378::-;19163:16;;830:29053;;;;;;;;;;;;19163:16;19197:36;830:29053;;;;;;;19197:36;19255:25;;;19251:123;;19391:55;1286:4;830:29053;1286:4;;830:29053;;;;;;;;;;;19391:55;19083:378;;;;19251:123;18245:11;830:29053;19311:44;;;;;18594:140;19311:44;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;18590:480;18245:11;830:29053;19012:43;;;;;18594:140;19012:43;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;18590:480;18835:145;;:::i;:::-;;;;;18590:480;;;18835:145;18900:65;18835:145;18918:46;18835:145;18918:46;;:::i;:::-;18245:11;830:29053;18900:65;;;;;;18594:140;18900:65;;;:::i;18590:480::-;18787:32;-1:-1:-1;18590:480:15;;-1:-1:-1;18590:480:15;18594:140;;;;;18682:17;18594:140;;;;;;;;;:::i;:::-;;;;;18395:182;1178:17:3;;1171:32;1178:25;:17;;830:29053:15;;;;;;;;;;;;1178:17:3;830:29053:15;;;;;1171:32:3;18513:21:15;;;;;;:49;;18631:28;18513:49;;18395:182;;;;;;18513:49;18631:28;1286:4;;;;18513:49;;17774:1772;;;830:29053;18005:22;830:29053;18080:9;;18133:14;18594:140;18682:17;18133:14;;830:29053;;;;;;;;;18245:11;;;;;;;;:::i;:::-;;;;;:::i;18594:140::-;;830:29053;;;18594:140;;;;;;;17774:1772;-1:-1:-1;18590:480:15;;;;;;;:::i;:::-;;;;;;;;;;19083:378;;18590:480;19520:9;;;;1286:4;;17774:1772;:::o;19083:378::-;19163:16;;830:29053;;;;;;;;;;;;19163:16;830:29053;19197:36;830:29053;;;;;;;19197:36;19255:25;;;;19251:123;;-1:-1:-1;830:29053:15;;;;1286:4;;;830:29053;;;;;19083:378;;;;;19251:123;18245:11;830:29053;;19311:44;;;18594:140;19311:44;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;18590:480;19012:43;830:29053;18245:11;830:29053;19012:43;;;;;;18594:140;19012:43;;830:29053;;;;;;;;;;;;;;;;;;;;;;18590:480;18835:145;;:::i;:::-;;;;;18590:480;;;18835:145;;;18918:46;18835:145;18918:46;;:::i;:::-;830:29053;18900:65;18245:11;830:29053;18900:65;;;;;;18594:140;18900:65;;;:::i;18590:480::-;18787:32;-1:-1:-1;18590:480:15;;-1:-1:-1;18590:480:15;18594:140;;;;;18682:17;18594:140;;;;;;;;;:::i;:::-;;;;;14492:1073;;;14614:20;14610:949;;14492:1073;;;:::o;14610:949::-;14667:14;;830:29053;;;14706:18;;;14702:88;;-1:-1:-1;15003:87:15;:35;:22;14926:45;;:::i;15003:35::-;15044;:14;;:35;830:29053;;;15003:87;;;;830:29053;15003:87;;;;;;;;;;:::i;:::-;;;;;;;;;14610:949;-1:-1:-1;15003:87:15;;;14610:949;830:29053;;;;;15109:21;;;15105:82;;830:29053;15205:17;;;15201:83;;15302:19;:24;15298:90;;15428:23;15436:14;15471:77;15436:14;15420:32;15436:14;;:::i;15420:32::-;15003:87;15487:17;;;1286:4;15523:14;;:24;;830:29053;;;;;;;;;;;;;;;;;;;;;;15471:77;14492:1073::o;15298:90::-;830:29053;;15335:53;;;;;15003:87;15335:53;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;15201:83;830:29053;;15231:53;;;;;15003:87;15231:53;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;15105:82;830:29053;;15139:48;;;;;15003:87;15139:48;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;15003:87;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;14702:88;830:29053;;14738:52;;;;;;;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;14492:1073;;;;14614:20;14610:949;;14492:1073;;;;;:::o;14610:949::-;14667:14;;830:29053;;;14706:18;;;14702:88;;14633:1;15003:87;:35;:22;14926:45;;:::i;15003:35::-;15044;:14;;:35;830:29053;;;15003:87;;;;830:29053;15003:87;;;;;;;;;;:::i;:::-;;;;;;;;;14610:949;14633:1;15003:87;;;14610:949;830:29053;;;;;15109:21;;;15105:82;;830:29053;15205:17;;;15201:83;;15302:19;:24;15298:90;;15436:14;15428:23;15436:14;15471:77;15436:14;15420:32;15436:14;;:::i;15420:32::-;15003:87;15487:17;;;1286:4;15523:14;;:24;;830:29053;;;;;;;;;;;;;;;;;;;;;;15471:77;14610:949;;;;;;15298:90;830:29053;;;15335:53;;;15003:87;15335:53;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;15201:83;15231:53;830:29053;;;15231:53;;;;;;15003:87;15231:53;;830:29053;;;;;;;;;;;;;;;;;;;;;;15105:82;15139:48;830:29053;;;15139:48;;;;;;15003:87;15139:48;;830:29053;;;;;;;;;;;;;;;;;;;;;;15003:87;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;14702:88;830:29053;;;14738:52;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;830:29053;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19804:1555::-;;;;830:29053;20067:22;-1:-1:-1;20067:22:15;-1:-1:-1;20155:14:15;;;20214:28;830:29053;20477:17;20214:28;;;830:29053;20264:57;20256:101;20264:57;;;20256:101;:::i;:::-;20477:17;830:29053;;;;;;20544:19;;;830:29053;;;;;;;;;;;;20544:19;830:29053;20577:39;830:29053;;;;;;;20577:39;20634:25;;;;20630:122;;830:29053;20901:17;1286:4;;;20765:58;1286:4;;830:29053;1286:4;20841:95;1286:4;;830:29053;;;;;;;;;;;20765:58;20901:17;1286:4;830:29053;;;20841:95;;;;;;;830:29053;20841:95;;;;;;:::i;:::-;;830:29053;;1286:4;;20841:95;;;;-1:-1:-1;;20841:95:15;;;19804:1555;-1:-1:-1;20837:506:15;;;;;;;;:::i;:::-;;;;;;;;;19804:1555::o;20837:506::-;830:29053;;21285:43;;;;;20841:95;21285:43;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;20837:506;21108:145;;:::i;:::-;;;;;20837:506;;;21108:145;21173:65;21108:145;21191:46;21108:145;21191:46;;:::i;20837:506::-;21024:18;-1:-1:-1;21024:18:15;-1:-1:-1;;19804:1555:15:o;20841:95::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;20630:122;830:29053;;20686:51;;;;;;;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;19804:1555;;;;;;;830:29053;20067:22;830:29053;20067:22;830:29053;20155:14;;;20214:28;830:29053;20477:17;20214:28;;;830:29053;20264:57;20256:101;20264:57;;;20256:101;:::i;830:29053::-;20544:19;;;830:29053;;;;;;;;;;;;20544:19;20577:39;830:29053;;;;;;;20577:39;20634:25;;;20630:122;;1286:4;830:29053;20901:17;1286:4;;;;;20765:58;1286:4;;830:29053;1286:4;20841:95;1286:4;;;;830:29053;;;;;;;;;;;20841:95;;830:29053;;1286:4;;20841:95;;;;830:29053;;20841:95;;;19804:1555;-1:-1:-1;20837:506:15;;;;;;;;:::i;:::-;;;;;;;;;;19804:1555::o;20837:506::-;830:29053;;;21285:43;;;20841:95;21285:43;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;20837:506;21108:145;;:::i;:::-;;;;;20837:506;;;21108:145;21191:46;21108:145;;21191:46;;:::i;20837:506::-;21024:18;-1:-1:-1;21024:18:15;-1:-1:-1;;;19804:1555:15:o;20841:95::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;20630:122;20686:51;830:29053;;;20686:51;;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;:::o;:::-;;;;;;;;;;;;;;;;;3378:36;830:29053;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;26221:2156::-;;;;;26469:9;26512:21;-1:-1:-1;26577:14:15;;;26624:26;;;;:::i;:::-;26685:17;;;;830:29053;;;;;;;;;;;;;;;;26720:23;830:29053;;;;;;;;;;;;;26716:1039;;27790:9;1286:4;;830:29053;;;;27867:14;;;;830:29053;;;;27867:30;27863:129;;28195:152;830:29053;28099:6;28231:17;830:29053;;28195:152;830:29053;;1286:4;28099:6;;:::i;:::-;28231:17;1286:4;830:29053;;28231:17;830:29053;;;;;;;;;;;;;;;;28285:13;;830:29053;;;27867:14;830:29053;;;;;;;28195:152;;830:29053;;;;;;;;;;;;;;;;;;;;;;;;;28195:152;;;;26221:2156::o;27863:129::-;27867:14;830:29053;27924:53;;;;;;;;830:29053;;9319:14;830:29053;;;;;;;;;;;;;;;;;;;;26716:1039;26832:25;;830:29053;;26875:866;;26716:1039;;;;;26875:866;27310:28;;;830:29053;-1:-1:-1;;;26979:744:15;;27276:147;;;;;830:29053;;;;;27276:147;830:29053;;;27276:147;;;;;;830:29053;27276:147;;830:29053;;27276:147;;;;;:::i;:::-;;;;;;;;26875:866;-1:-1:-1;27272:429:15;;26983:44;27272:429;;:::i;:::-;;;;;;;;;26875:866;;;;27272:429;830:29053;;27635:39;;;;;27276:147;27635:39;;830:29053;;9319:14;830:29053;;;;;;;;;;;;;;;;;;;;27272:429;27427:164;;:::i;:::-;;;;27272:429;;;27427:164;27516:47;27498:66;27427:164;27516:47;:::i;27272:429::-;;;27276:147;;;;;;:::i;:::-;;;;;830:29053;;;26221:2156;;;;26469:9;26512:21;-1:-1:-1;26577:14:15;;;26624:26;;;;:::i;:::-;26685:17;;;;830:29053;;;;;;;;;;;;;;;;26720:23;830:29053;;;;;;;;;;;;;26716:1039;;27790:9;1286:4;;830:29053;;;;27867:14;;;;830:29053;;;;27867:30;27863:129;;830:29053;28195:152;830:29053;;;28099:6;28195:152;830:29053;;28231:17;830:29053;;1286:4;28099:6;;:::i;27863:129::-;27867:14;830:29053;;27924:53;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;26716:1039;26832:25;;830:29053;;26875:866;;26716:1039;;;;;26875:866;27310:28;;;830:29053;-1:-1:-1;;;26979:744:15;;27276:147;;;;;830:29053;;;;;27276:147;830:29053;;;27276:147;;;;;;830:29053;27276:147;;830:29053;;27276:147;;;;;:::i;:::-;;;;;;;;26875:866;-1:-1:-1;27272:429:15;;26983:44;27272:429;;:::i;:::-;;;;;;;;;26875:866;;;;27272:429;27635:39;830:29053;;;27635:39;;;;;;27276:147;27635:39;;830:29053;;;;;;;;;;;;;;;;;;;;;;27272:429;27427:164;;:::i;:::-;;;;27272:429;;;27427:164;27516:47;27427:164;;27516:47;:::i;27272:429::-;;;27276:147;;;;;;:::i;:::-;;;;;830:29053;;;26221:2156;;;;;26469:9;26512:21;26577:14;;26624:26;;;;:::i;:::-;26685:17;;;;830:29053;;;;;;;;;;;;;;;26720:23;830:29053;;;;;;;;;;;;;26716:1039;;27790:9;1286:4;;830:29053;;;;27867:14;;;;830:29053;;;;27867:30;27863:129;;28195:152;830:29053;28099:6;28231:17;830:29053;;28195:152;830:29053;;1286:4;28099:6;;:::i;:::-;830:29053;;;:::i;:::-;28231:17;1286:4;830:29053;;28231:17;830:29053;;;;;;;;;28285:13;;830:29053;27867:14;830:29053;;;;;28135:41;;830:29053;;;;;;;;;;;;;;;;;;;;;;;;;;;;26716:1039;26832:25;;830:29053;;26875:866;;26716:1039;;;;;26875:866;830:29053;;;;;;:::i;:::-;26991:36;26983:44;;26991:36;;27089:28;;;830:29053;27055:93;;;;;;830:29053;9319:14;830:29053;;;;;27055:93;;;;;;;830:29053;27055:93;;;;;;:::i;:::-;;;;;;;;26979:744;27055:93;;26979:744;;;26875:866;;;;27055:93;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;26979:744;27310:28;;;830:29053;27276:147;;;;;;830:29053;9319:14;830:29053;;;;;27276:147;;;;;;;830:29053;27276:147;;;;;;:::i;:::-;;;;;;;;26979:744;-1:-1:-1;27272:429:15;;;;;:::i;:::-;;;;;;;26979:744;27272:429;830:29053;;27635:39;;;;;27276:147;27635:39;;830:29053;;9319:14;830:29053;;;;;;;;;;;;;;;;;;;;27272:429;27427:164;;:::i;:::-;;;;27272:429;;;;26979:744;;27276:147;;;;;;:::i;:::-;;;;28545:607;28755:28;28690:20;;;830:29053;28755:28;;830:29053;28801:36;;;28797:173;;405:35:14;830:29053:15;2102:12:14;;;2117:13;;2102:38;;830:29053:15;29242:5;;;;;;:13;28545:607;:::o;29242:13::-;;;28545:607;:::o;2102:38:14:-;;;;28797:173:15;28936:19;;:::o", "linkReferences": {} }, "methodIdentifiers": { "SIG_VALIDATION_FAILED()": "8f41ec5a", "_validateSenderAndPaymaster(bytes,address,bytes)": "957122ab", "addStake(uint32)": "0396cb60", "balanceOf(address)": "70a08231", "depositTo(address)": "b760faf9", "deposits(address)": "fc7e286d", "getDepositInfo(address)": "5287ce12", "getNonce(address,uint192)": "35567e1a", "getSenderAddress(bytes)": "9b249f69", "getUserOpHash((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": "a6193531", "handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes)[],address)": "4b1d7cf5", "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)": "1fad948c", "incrementNonce(uint192)": "0bd28e3b", "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes)": "1d732756", "nonceSequenceNumber(address,uint192)": "1b2e01b8", "simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)": "d6383f94", "simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": "ee219423", "unlockStake()": "bb9fe6bf", "withdrawStake(address)": "c23a5cea", "withdrawTo(address,uint256)": "205c2878" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"name\":\"ExecutionResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"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\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"sigFailed\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"}],\"name\":\"ValidationResult\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"sigFailed\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"name\":\"ValidationResultWithAggregation\",\"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\":\"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\"},{\"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\":[],\"name\":\"SIG_VALIDATION_FAILED\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"}],\"name\":\"_validateSenderAndPaymaster\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"deposit\",\"type\":\"uint112\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint112\",\"name\":\"deposit\",\"type\":\"uint112\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"}],\"name\":\"getSenderAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"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\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"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\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"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\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"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 EntryPointFilterOpsOverride06.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 EntryPointFilterOpsOverride06.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\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"name\":\"simulateHandleOp\",\"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\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- index into the array of ops to the failed one (in simulateValidation, this is always zero)\",\"reason\":\"- revert reason The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity. Should be caught in off-chain handleOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts.\"}}],\"ValidationResult((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256))\":[{\"params\":{\"factoryInfo\":\"stake information about the factory (if any)\",\"paymasterInfo\":\"stake information about the paymaster (if any)\",\"returnInfo\":\"gas and time-range returned values\",\"senderInfo\":\"stake information about the sender\"}}],\"ValidationResultWithAggregation((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256),(address,(uint256,uint256)))\":[{\"params\":{\"aggregatorInfo\":\"signature aggregation info (if the account requires signature aggregator) bundler MUST use it to verify the signature, or reject the UserOperation\",\"factoryInfo\":\"stake information about the factory (if any)\",\"paymasterInfo\":\"stake information about the paymaster (if any)\",\"returnInfo\":\"gas and time-range returned values\",\"senderInfo\":\"stake information about the sender\"}}]},\"kind\":\"dev\",\"methods\":{\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"the new lock duration before the deposit can be withdrawn.\"}},\"getDepositInfo(address)\":{\"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.\"}},\"handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,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,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)\":{\"params\":{\"beneficiary\":\"the address to receive the fees\",\"ops\":\"the operations to execute\"}},\"simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)\":{\"params\":{\"op\":\"the UserOperation to simulate\",\"target\":\"if nonzero, a target address to call after userop simulation. If called, the targetSuccess and targetResult are set to the return from that call.\",\"targetCallData\":\"callData to pass to target address\"}},\"simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\":{\"details\":\"this method always revert. Successful result is ValidationResult error. other errors are failures.The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.\",\"params\":{\"userOp\":\"the user operation to validate.\"}},\"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\":{\"ExecutionResult(uint256,uint256,uint48,uint48,bool,bytes)\":[{\"notice\":\"return value of simulateHandleOp\"}],\"FailedOp(uint256,string)\":[{\"notice\":\"a custom revert error of handleOps, to identify the offending op. NOTE: if simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"SenderAddressResult(address)\":[{\"notice\":\"return value of getSenderAddress\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"error case when a signature aggregator fails to verify the aggregated signature it had created.\"}],\"ValidationResult((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256))\":[{\"notice\":\"Successful result from simulateValidation.\"}],\"ValidationResultWithAggregation((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256),(address,(uint256,uint256)))\":[{\"notice\":\"Successful result from simulateValidation, if the account returns a signature aggregator\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"an event emitted by handleOps(), before starting the execution loop. any event emitted before this event, is part of the validation.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"signature aggregator used by the following UserOperationEvents within this bundle.\"},\"StakeLocked(address,uint256,uint256)\":{\"notice\":\"Emitted when stake or unstake delay are modified\"},\"StakeUnlocked(address,uint256)\":{\"notice\":\"Emitted once a stake is scheduled for withdrawal\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length\"}},\"kind\":\"user\",\"methods\":{\"SIG_VALIDATION_FAILED()\":{\"notice\":\"for simulation purposes, validateUserOp (and validatePaymasterUserOp) must return this value in case of signature failure, instead of revert.\"},\"_validateSenderAndPaymaster(bytes,address,bytes)\":{\"notice\":\"Called only during simulation. This function always reverts to prevent warm/cold storage differentiation in simulation vs execution.\"},\"addStake(uint32)\":{\"notice\":\"add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"return the deposit (for gas payment) of the account\"},\"depositTo(address)\":{\"notice\":\"add to the deposit of the given account\"},\"deposits(address)\":{\"notice\":\"maps paymaster to their deposits and stakes\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getSenderAddress(bytes)\":{\"notice\":\"Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. this method always revert, and returns the address in SenderAddressResult error\"},\"getUserOpHash((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\":{\"notice\":\"generate a request Id - unique identifier for this request. the request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid.\"},\"handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes)[],address)\":{\"notice\":\"Execute a batch of UserOperation with Aggregators\"},\"handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,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,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.\"},\"simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)\":{\"notice\":\"simulate full execution of a UserOperation (including both validation and target execution) this method will always revert with \\\"ExecutionResult\\\". it performs full validation of the UserOperation, but ignores signature error. an optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted) Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events.\"},\"simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\":{\"notice\":\"Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp.\"},\"unlockStake()\":{\"notice\":\"attempt to unlock the stake. the value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"withdraw from the (unlocked) stake. must first call unlockStake and wait for the unstakeDelay to pass\"},\"withdrawTo(address,uint256)\":{\"notice\":\"withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v06/EntryPointFilterOpsOverride.sol\":\"EntryPointFilterOpsOverride06\"},\"evmVersion\":\"london\",\"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/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/core/NonceManager.sol\":{\"keccak256\":\"0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7\",\"dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1\"]},\"lib/account-abstraction-v6/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612\",\"dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x\"]},\"lib/account-abstraction-v6/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a\",\"dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4\",\"dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8\",\"dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v6/contracts/utils/Exec.sol\":{\"keccak256\":\"0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe\",\"dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559\",\"dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep\"]},\"src/v06/EntryPointFilterOpsOverride.sol\":{\"keccak256\":\"0xbe780ce014e391fd3049e45f803c79a6813f833708b9db1cc5cdab968c1eddc2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4d34db85c5be26d9382cc8ee80c23d2824a344319827aeaab552b9a9e7395153\",\"dweb:/ipfs/QmYHEJ9iaAhF6WWXNSQv4bAN9kS1DvwbB4BWUmCswnA9Bh\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" }, "language": "Solidity", "output": { "abi": [{ "inputs": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint48", "name": "validAfter", "type": "uint48" }, { "internalType": "uint48", "name": "validUntil", "type": "uint48" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }], "type": "error", "name": "ExecutionResult" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }], "type": "error", "name": "FailedOp" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "SenderAddressResult" }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address" }], "type": "error", "name": "SignatureValidationFailed" }, { "inputs": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "bool", "name": "sigFailed", "type": "bool" }, { "internalType": "uint48", "name": "validAfter", "type": "uint48" }, { "internalType": "uint48", "name": "validUntil", "type": "uint48" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }], "type": "error", "name": "ValidationResult" }, { "inputs": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "bool", "name": "sigFailed", "type": "bool" }, { "internalType": "uint48", "name": "validAfter", "type": "uint48" }, { "internalType": "uint48", "name": "validUntil", "type": "uint48" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPoint.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }], "type": "error", "name": "ValidationResultWithAggregation" }, { "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": "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 }, { "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": [], "stateMutability": "view", "type": "function", "name": "SIG_VALIDATION_FAILED", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }], "stateMutability": "view", "type": "function", "name": "_validateSenderAndPaymaster" }, { "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": "account", "type": "address" }], "stateMutability": "payable", "type": "function", "name": "depositTo" }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function", "name": "deposits", "outputs": [{ "internalType": "uint112", "name": "deposit", "type": "uint112" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "getDepositInfo", "outputs": [{ "internalType": "struct IStakeManager.DepositInfo", "name": "info", "type": "tuple", "components": [{ "internalType": "uint112", "name": "deposit", "type": "uint112" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }] }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "getNonce", "outputs": [{ "internalType": "uint256", "name": "nonce", "type": "uint256" }] }, { "inputs": [{ "internalType": "bytes", "name": "initCode", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "getSenderAddress" }, { "inputs": [{ "internalType": "struct UserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "view", "type": "function", "name": "getUserOpHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "struct IEntryPoint.UserOpsPerAggregator[]", "name": "opsPerAggregator", "type": "tuple[]", "components": [{ "internalType": "struct UserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "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 UserOperation[]", "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": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "handleOps" }, { "inputs": [{ "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "nonpayable", "type": "function", "name": "incrementNonce" }, { "inputs": [{ "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "struct EntryPointFilterOpsOverride06.UserOpInfo", "name": "opInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPointFilterOpsOverride06.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "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": [{ "internalType": "struct UserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOp" }, { "inputs": [{ "internalType": "struct UserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidation" }, { "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." } }, "getDepositInfo(address)": { "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." } }, "handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,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,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)": { "params": { "beneficiary": "the address to receive the fees", "ops": "the operations to execute" } }, "simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)": { "params": { "op": "the UserOperation to simulate", "target": "if nonzero, a target address to call after userop simulation. If called, the targetSuccess and targetResult are set to the return from that call.", "targetCallData": "callData to pass to target address" } }, "simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": { "details": "this method always revert. Successful result is ValidationResult error. other errors are failures.The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.", "params": { "userOp": "the user operation to validate." } }, "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": { "SIG_VALIDATION_FAILED()": { "notice": "for simulation purposes, validateUserOp (and validatePaymasterUserOp) must return this value in case of signature failure, instead of revert." }, "_validateSenderAndPaymaster(bytes,address,bytes)": { "notice": "Called only during simulation. This function always reverts to prevent warm/cold storage differentiation in simulation vs execution." }, "addStake(uint32)": { "notice": "add to the account's stake - amount and delay any pending unstake is first cancelled." }, "balanceOf(address)": { "notice": "return the deposit (for gas payment) of the account" }, "depositTo(address)": { "notice": "add to the deposit of the given account" }, "deposits(address)": { "notice": "maps paymaster to their deposits and stakes" }, "getNonce(address,uint192)": { "notice": "Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order." }, "getSenderAddress(bytes)": { "notice": "Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. this method always revert, and returns the address in SenderAddressResult error" }, "getUserOpHash((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": { "notice": "generate a request Id - unique identifier for this request. the request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid." }, "handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes)[],address)": { "notice": "Execute a batch of UserOperation with Aggregators" }, "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,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,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." }, "simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)": { "notice": "simulate full execution of a UserOperation (including both validation and target execution) this method will always revert with \"ExecutionResult\". it performs full validation of the UserOperation, but ignores signature error. an optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted) Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events." }, "simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": { "notice": "Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp." }, "unlockStake()": { "notice": "attempt to unlock the stake. the value can be withdrawn (using withdrawStake) after the unstake delay." }, "withdrawStake(address)": { "notice": "withdraw from the (unlocked) stake. must first call unlockStake and wait for the unstakeDelay to pass" }, "withdrawTo(address,uint256)": { "notice": "withdraw from the deposit." } }, "version": 1 } }, "settings": { "remappings": ["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "@account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "@account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/", "@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/", "@test-utils/=lib/singleton-paymaster/test/utils/", "account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "singleton-paymaster/=lib/singleton-paymaster/src/", "solady/=lib/solady/src/"], "optimizer": { "enabled": true, "runs": 1000000 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/v06/EntryPointFilterOpsOverride.sol": "EntryPointFilterOpsOverride06" }, "evmVersion": "london", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v6/contracts/core/Helpers.sol": { "keccak256": "0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a", "urls": ["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746", "dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/NonceManager.sol": { "keccak256": "0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25", "urls": ["bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7", "dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/SenderCreator.sol": { "keccak256": "0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2", "urls": ["bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612", "dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/StakeManager.sol": { "keccak256": "0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a", "urls": ["bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a", "dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/IAccount.sol": { "keccak256": "0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418", "urls": ["bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4", "dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol": { "keccak256": "0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a", "urls": ["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b", "dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8", "urls": ["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf", "dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol": { "keccak256": "0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12", "urls": ["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2", "dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol": { "keccak256": "0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456", "urls": ["bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8", "dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f", "urls": ["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3", "dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol": { "keccak256": "0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c", "urls": ["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c", "dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/utils/Exec.sol": { "keccak256": "0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1", "urls": ["bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe", "dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy"], "license": "LGPL-3.0-only" }, "lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol": { "keccak256": "0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc", "urls": ["bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010", "dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol": { "keccak256": "0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d", "urls": ["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4", "dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"], "license": "MIT" }, "src/SimulationOverrideHelper.sol": { "keccak256": "0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5", "urls": ["bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559", "dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep"], "license": "MIT" }, "src/v06/EntryPointFilterOpsOverride.sol": { "keccak256": "0xbe780ce014e391fd3049e45f803c79a6813f833708b9db1cc5cdab968c1eddc2", "urls": ["bzz-raw://4d34db85c5be26d9382cc8ee80c23d2824a344319827aeaab552b9a9e7395153", "dweb:/ipfs/QmYHEJ9iaAhF6WWXNSQv4bAN9kS1DvwbB4BWUmCswnA9Bh"], "license": "GPL-3.0" } }, "version": 1 }, "id": 15 }
1
+ { "abi": [{ "type": "receive", "stateMutability": "payable" }, { "type": "function", "name": "SIG_VALIDATION_FAILED", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "_validateSenderAndPaymaster", "inputs": [{ "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "sender", "type": "address", "internalType": "address" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "view" }, { "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": "depositTo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "deposits", "inputs": [{ "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "deposit", "type": "uint112", "internalType": "uint112" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }], "stateMutability": "view" }, { "type": "function", "name": "getDepositInfo", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "info", "type": "tuple", "internalType": "struct IStakeManager.DepositInfo", "components": [{ "name": "deposit", "type": "uint112", "internalType": "uint112" }, { "name": "staked", "type": "bool", "internalType": "bool" }, { "name": "stake", "type": "uint112", "internalType": "uint112" }, { "name": "unstakeDelaySec", "type": "uint32", "internalType": "uint32" }, { "name": "withdrawTime", "type": "uint48", "internalType": "uint48" }] }], "stateMutability": "view" }, { "type": "function", "name": "getNonce", "inputs": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [{ "name": "nonce", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getSenderAddress", "inputs": [{ "name": "initCode", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "getUserOpHash", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct UserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "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 UserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "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 UserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "incrementNonce", "inputs": [{ "name": "key", "type": "uint192", "internalType": "uint192" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "innerHandleOp", "inputs": [{ "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "opInfo", "type": "tuple", "internalType": "struct EntryPointFilterOpsOverride06.UserOpInfo", "components": [{ "name": "mUserOp", "type": "tuple", "internalType": "struct EntryPointFilterOpsOverride06.MemoryUserOp", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "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": "simulateHandleOp", "inputs": [{ "name": "op", "type": "tuple", "internalType": "struct UserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "target", "type": "address", "internalType": "address" }, { "name": "targetCallData", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateValidation", "inputs": [{ "name": "userOp", "type": "tuple", "internalType": "struct UserOperation", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "unlockStake", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawStake", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawTo", "inputs": [{ "name": "withdrawAddress", "type": "address", "internalType": "address payable" }, { "name": "withdrawAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "AccountDeployed", "inputs": [{ "name": "userOpHash", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "factory", "type": "address", "indexed": false, "internalType": "address" }, { "name": "paymaster", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "BeforeExecution", "inputs": [], "anonymous": false }, { "type": "event", "name": "Deposited", "inputs": [{ "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "totalDeposit", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "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": "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": "ExecutionResult", "inputs": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "paid", "type": "uint256", "internalType": "uint256" }, { "name": "validAfter", "type": "uint48", "internalType": "uint48" }, { "name": "validUntil", "type": "uint48", "internalType": "uint48" }, { "name": "targetSuccess", "type": "bool", "internalType": "bool" }, { "name": "targetResult", "type": "bytes", "internalType": "bytes" }] }, { "type": "error", "name": "FailedOp", "inputs": [{ "name": "opIndex", "type": "uint256", "internalType": "uint256" }, { "name": "reason", "type": "string", "internalType": "string" }] }, { "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": "ValidationResult", "inputs": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "sigFailed", "type": "bool", "internalType": "bool" }, { "name": "validAfter", "type": "uint48", "internalType": "uint48" }, { "name": "validUntil", "type": "uint48", "internalType": "uint48" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }, { "type": "error", "name": "ValidationResultWithAggregation", "inputs": [{ "name": "returnInfo", "type": "tuple", "internalType": "struct IEntryPoint.ReturnInfo", "components": [{ "name": "preOpGas", "type": "uint256", "internalType": "uint256" }, { "name": "prefund", "type": "uint256", "internalType": "uint256" }, { "name": "sigFailed", "type": "bool", "internalType": "bool" }, { "name": "validAfter", "type": "uint48", "internalType": "uint48" }, { "name": "validUntil", "type": "uint48", "internalType": "uint48" }, { "name": "paymasterContext", "type": "bytes", "internalType": "bytes" }] }, { "name": "senderInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "factoryInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "paymasterInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }, { "name": "aggregatorInfo", "type": "tuple", "internalType": "struct IEntryPoint.AggregatorStakeInfo", "components": [{ "name": "aggregator", "type": "address", "internalType": "address" }, { "name": "stakeInfo", "type": "tuple", "internalType": "struct IStakeManager.StakeInfo", "components": [{ "name": "stake", "type": "uint256", "internalType": "uint256" }, { "name": "unstakeDelaySec", "type": "uint256", "internalType": "uint256" }] }] }] }], "bytecode": { "object": "0x6080806040523461001c576001600255615bfa9081620000228239f35b600080fdfe60806040526004361015610023575b361561001957600080fd5b610021611cd7565b005b60003560e01c80630396cb60146101b35780630bd28e3b146101aa5780631b2e01b8146101a15780631d732756146101985780631fad948c1461018f578063205c28781461018657806335567e1a1461017d5780634b1d7cf5146101745780635287ce121461016b57806370a08231146101625780638f41ec5a14610159578063957122ab146101505780639b249f6914610147578063a61935311461013e578063b760faf914610135578063bb9fe6bf1461012c578063c23a5cea14610123578063d6383f941461011a578063ee219423146101115763fc7e286d0361000e5761010c611bb7565b61000e565b5061010c61199f565b5061010c611837565b5061010c61169e565b5061010c611520565b5061010c6114e1565b5061010c6114c0565b5061010c611337565b5061010c611164565b5061010c611129565b5061010c6110a4565b5061010c610f54565b5061010c610bf8565b5061010c610b33565b5061010c610994565b5061010c6108ba565b5061010c6106e7565b5061010c610467565b5061010c610385565b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043563ffffffff8116808203610359576103547fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916102716102413373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b9161024d811515611e4e565b61026a610261600185015463ffffffff1690565b63ffffffff1690565b1115611eb3565b54926103366dffffffffffffffffffffffffffff946102f461029834888460781c16611d48565b966102a4881515611f18565b6102b081891115611f7d565b6102d4816102bc6105ec565b941684906dffffffffffffffffffffffffffff169052565b6001602084015287166dffffffffffffffffffffffffffff166040830152565b63ffffffff83166060820152600060808201526103313373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b611fe2565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b6024359077ffffffffffffffffffffffffffffffffffffffffffffffff8216820361035957565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043577ffffffffffffffffffffffffffffffffffffffffffffffff81168103610359576104149033600052600160205260406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b61041e8154611c9d565b9055005b73ffffffffffffffffffffffffffffffffffffffff81160361035957565b6024359061044d82610422565b565b60c4359061044d82610422565b359061044d82610422565b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760206104fc6004356104a881610422565b73ffffffffffffffffffffffffffffffffffffffff6104c561035e565b91166000526001835260406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54604051908152f35b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761055157604052565b610559610505565b604052565b610100810190811067ffffffffffffffff82111761055157604052565b67ffffffffffffffff811161055157604052565b6060810190811067ffffffffffffffff82111761055157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761055157604052565b6040519061044d82610535565b6040519060c0820182811067ffffffffffffffff82111761055157604052565b604051906040820182811067ffffffffffffffff82111761055157604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610675575b01160190565b61067d610505565b61066f565b92919261068e82610639565b9161069c60405193846105ab565b829481845281830111610359578281602093846000960137010152565b9181601f840112156103595782359167ffffffffffffffff8311610359576020838186019501011161035957565b5034610359576101c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595767ffffffffffffffff60043581811161035957366023820112156103595761074a903690602481600401359101610682565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36016101808112610359576101006040519161078783610535565b12610359576040516107988161055e565b6107a0610440565b815260443560208201526064356040820152608435606082015260a43560808201526107ca61044f565b60a082015260e43560c08201526101043560e082015281526101243560208201526101443560408201526101643560608201526101843560808201526101a4359182116103595761083e9261082661082e9336906004016106b9565b929091612f85565b6040519081529081906020820190565b0390f35b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103595760043567ffffffffffffffff9283821161035957806023830112156103595781600401359384116103595760248460051b830101116103595760240191906024356108b781610422565b90565b5034610359576108c936610842565b6108d49291926125b2565b6108dd836124a5565b60005b84811061095d57506000927fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f9728480a183915b85831061092d57610923858561261f565b6100216001600255565b909193600190610953610941878987612564565b61094b8886612542565b5190886129ad565b0194019190610912565b8061098b610984610972600194869896612542565b5161097e848a88612564565b84613c5a565b90836136fb565b019290926108e0565b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576004356109d081610422565b6024359060009133835282602052604083206dffffffffffffffffffffffffffff81541692838311610ad557848373ffffffffffffffffffffffffffffffffffffffff829593610a788496610a3f610a2c8798610ad29c612389565b6dffffffffffffffffffffffffffff1690565b6dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610acc6122f4565b50612396565b80f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576020600435610b7181610422565b73ffffffffffffffffffffffffffffffffffffffff610b8e61035e565b911660005260018252610bc98160406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006040519260401b16178152f35b503461035957610c0736610842565b610c0f6125b2565b6000805b838210610df657610c2491506124a5565b7fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972600080a16000805b848110610d5c57505060008093815b818110610c9357610923868660007f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d8180a261261f565b610cf7610ca182848a612a73565b610ccc610cb3610cb360208401612b15565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d600080a280612ac1565b906000915b808310610d1457505050610d0f90611c9d565b610c5c565b90919497610d4f610d49610d5592610d438c8b610d3c82610d368e8b8d612564565b92612542565b51916129ad565b90611d48565b99611c9d565b95611c9d565b9190610cfc565b610d67818688612a73565b6020610d7f610d768380612ac1565b92909301612b15565b9173ffffffffffffffffffffffffffffffffffffffff60009316905b828410610db45750505050610daf90611c9d565b610c4d565b90919294610d4f81610de985610de2610dd0610dee968d612542565b51610ddc8c8b8a612564565b85613c5a565b908b613913565b611c9d565b929190610d9b565b610e01828587612a73565b90610e0c8280612ac1565b92610e1c610cb360208301612b15565b9173ffffffffffffffffffffffffffffffffffffffff8316610e416001821415612b1f565b610e62575b505050610e5c91610e5691611d48565b91611c9d565b90610c13565b909592610e7b6040999693999895989788810190612710565b92908a3b156103595789938b918a5193849283927fe3563a4f00000000000000000000000000000000000000000000000000000000845260049e8f850193610ec294612cb9565b03815a93600094fa9081610f3b575b50610f255786517f86a9f75000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a16818a0190815281906020010390fd5b0390fd5b9497509295509093509181610e56610e5c610e46565b80610f48610f4e9261057b565b8061111e565b38610ed1565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595761083e73ffffffffffffffffffffffffffffffffffffffff600435610fa881610422565b608060409283928351610fba81610535565b60009381858093528260208201528287820152826060820152015216815280602052209061104965ffffffffffff6001835194610ff686610535565b80546dffffffffffffffffffffffffffff8082168852607082901c60ff161515602089015260789190911c1685870152015463ffffffff8116606086015260201c16608084019065ffffffffffff169052565b5191829182919091608065ffffffffffff8160a08401956dffffffffffffffffffffffffffff808251168652602082015115156020870152604082015116604086015263ffffffff6060820151166060860152015116910152565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595773ffffffffffffffffffffffffffffffffffffffff6004356110f581610422565b16600052600060205260206dffffffffffffffffffffffffffff60406000205416604051908152f35b600091031261035957565b50346103595760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035957602060405160018152f35b50346103595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035957600467ffffffffffffffff8135818111610359576111b590369084016106b9565b9050602435916111c483610422565b604435908111610359576111db90369085016106b9565b92909115908161132d575b506112c6576014821015611236575b610f21836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160409060208152600060208201520190565b6112466112529261124c926132a8565b906132b6565b60601c90565b3b1561125f5738806111f5565b610f21906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601b60208201527f41413330207061796d6173746572206e6f74206465706c6f796564000000000060408201520190565b610f21836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601960208201527f41413230206163636f756e74206e6f74206465706c6f7965640000000000000060408201520190565b90503b15386111e6565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043567ffffffffffffffff8111610359576113e7602061138e60249336906004016106b9565b73ffffffffffffffffffffffffffffffffffffffff9291836113ae6134b2565b169060006040518097819582947f570e1a36000000000000000000000000000000000000000000000000000000008452600484016134a1565b03925af191821561145b575b60009261142b575b50604051917f6ca7b806000000000000000000000000000000000000000000000000000000008352166004820152fd5b61144d91925060203d8111611454575b61144581836105ab565b81019061348c565b90386113fb565b503d61143b565b6114636128cb565b6113f3565b90816101609103126103595790565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610359576004359067ffffffffffffffff8211610359576108b791600401611468565b50346103595760206114d96114d436611477565b613121565b604051908152f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595761002160043561151b81610422565b611cdc565b5034610359576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261169b573381528060205260408120600181019063ffffffff82541690811561163d576115da61159f6116029361159161158c855460ff9060701c1690565b612146565b65ffffffffffff42166121ab565b84547fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff16602082901b69ffffffffffff000000001617909455565b7fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff8154169055565b60405165ffffffffffff91909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a90602090a280f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b80fd5b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576004356116da81610422565b610ad273ffffffffffffffffffffffffffffffffffffffff61171c3373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b926117d461173f610a2c86546dffffffffffffffffffffffffffff9060781c1690565b9461174b8615156121c5565b6117ac6001820161178465ffffffffffff611770835465ffffffffffff9060201c1690565b1661177c81151561222a565b42101561228f565b80547fffffffffffffffffffffffffffffffffffffffffffff00000000000000000000169055565b7fffffff0000000000000000000000000000ffffffffffffffffffffffffffffff8154169055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810186905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2600080809581948294165af16118316122f4565b50612324565b50346103595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595767ffffffffffffffff60043581811161035957611888903690600401611468565b6024359161189583610422565b604435908111610359576118b0610f219136906004016106b9565b6118b8612422565b6118c1856135f6565b6118d46118ce8287613a52565b90612de4565b946118e4826000924384526128d8565b96438252819360609573ffffffffffffffffffffffffffffffffffffffff831661196b575b505050506080015193611938604061192a602084015165ffffffffffff1690565b92015165ffffffffffff1690565b906040519687967f8b7ac98000000000000000000000000000000000000000000000000000000000885260048801612d89565b839550839496506119856040949293945180948193612d7b565b03925af19060806119946122f4565b929190388080611909565b5034610359576119ae36611477565b6119b6612422565b6119bf826135f6565b6119c98183613a52565b825160a001519193916119f69073ffffffffffffffffffffffffffffffffffffffff16613437565b613437565b90611a1a6119f1855173ffffffffffffffffffffffffffffffffffffffff90511690565b94611a23613270565b50611a52611a3660409586810190612710565b90600060148310611baf57506112466119f19261124c926132a8565b91611a5c91612de4565b805173ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff821660018114916080880151978781015191886020820151611ab19065ffffffffffff1690565b91015165ffffffffffff16916060015192611aca6105f9565b9a8b5260208b0152841515898b015265ffffffffffff1660608a015265ffffffffffff16608089015260a088015215159081611ba6575b50611b3b5750610f2192519485947fe0cff05f000000000000000000000000000000000000000000000000000000008652600486016133dd565b9190610f2193611b4a84613437565b611b71611b55610619565b73ffffffffffffffffffffffffffffffffffffffff9096168652565b6020850152519586957ffaecb4e40000000000000000000000000000000000000000000000000000000087526004870161334b565b90501538611b01565b915050613437565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595773ffffffffffffffffffffffffffffffffffffffff600435611c0881610422565b16600052600060205260a0604060002065ffffffffffff60018254920154604051926dffffffffffffffffffffffffffff90818116855260ff8160701c161515602086015260781c16604084015263ffffffff8116606084015260201c166080820152f35b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611ccb570190565b611cd3611c6d565b0190565b61044d335b73ffffffffffffffffffffffffffffffffffffffff90611cfc3482611d5d565b168060005260006020527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206dffffffffffffffffffffffffffff60406000205416604051908152a2565b91908201809211611d5557565b61044d611c6d565b73ffffffffffffffffffffffffffffffffffffffff16600052600060205260406000206dffffffffffffffffffffffffffff80825416928301809311611e41575b808311611de35761044d92166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6465706f736974206f766572666c6f77000000000000000000000000000000006044820152fd5b611e49611c6d565b611d9e565b15611e5557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611eba57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b15611f1f57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611f8457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b9065ffffffffffff6080600161044d946120426dffffffffffffffffffffffffffff86511682906dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b602085015115156eff000000000000000000000000000082549160701b16807fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff83161783557fffffff000000000000000000000000000000ffffffffffffffffffffffffffff7cffffffffffffffffffffffffffff000000000000000000000000000000604089015160781b16921617178155019263ffffffff6060820151167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008554161784550151167fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff69ffffffffffff0000000083549260201b169116179055565b1561214d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b91909165ffffffffffff80809416911601918211611d5557565b156121cc57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561223157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561229657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b3d1561231f573d9061230582610639565b9161231360405193846105ab565b82523d6000602084013e565b606090565b1561232b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b91908203918211611d5557565b1561239d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60209067ffffffffffffffff8111612415575b60051b0190565b61241d610505565b61240e565b6040519061242f82610535565b604051608083610100830167ffffffffffffffff811184821017612498575b60405260009283815283602082015283604082015283606082015283838201528360a08201528360c08201528360e082015281528260208201528260408201528260608201520152565b6124a0610505565b61244e565b906124af826123fb565b6124bc60405191826105ab565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06124ea82946123fb565b019060005b8281106124fb57505050565b602090612506612422565b828285010152016124ef565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020918151811015612557575b60051b010190565b61255f612512565b61254f565b91908110156125a5575b60051b810135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea181360301821215610359570190565b6125ad612512565b61256e565b60028054146125c15760028055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff1680156126b257600080809381935af161264c6122f4565b501561265457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f41413931206661696c65642073656e6420746f2062656e6566696369617279006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4141393020696e76616c69642062656e656669636961727900000000000000006044820152fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610359570180359067ffffffffffffffff82116103595760200191813603831361035957565b90816020910312610359575190565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b60005b8381106127c25750506000910152565b81810151838201526020016127b2565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361280e815180928187528780880191016127af565b0116010190565b9061282f6080916108b796946101c0808652850191612770565b9360e0815173ffffffffffffffffffffffffffffffffffffffff80825116602087015260208201516040870152604082015160608701526060820151858701528482015160a087015260a08201511660c086015260c081015182860152015161010084015260208101516101208401526040810151610140840152606081015161016084015201516101808201526101a08184039101526127d2565b506040513d6000823e3d90fd5b905a918160206128f16060830151936060810190612710565b9061292a8560405195869485947f1d73275600000000000000000000000000000000000000000000000000000000865260048601612815565b03816000305af16000918161297d575b5061297657506129636108b79360206000803e5a8103908111612969575b608084015190611d48565b91615350565b612971611c6d565b612958565b9250505090565b61299f91925060203d81116129a6575b61299781836105ab565b810190612761565b903861293a565b503d61298d565b905a928060206129c66060830151946060810190612710565b906129ff8660405195869485947f1d73275600000000000000000000000000000000000000000000000000000000865260048601612815565b03816000305af160009181612a53575b50612a4b5750612a386108b79460206000803e5a8103908111612a3e575b608083015190611d48565b92615633565b612a46611c6d565b612a2d565b935050505090565b612a6c91925060203d81116129a65761299781836105ab565b9038612a0f565b9190811015612ab4575b60051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa181360301821215610359570190565b612abc612512565b612a7d565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610359570180359067ffffffffffffffff821161035957602001918160051b3603831361035957565b356108b781610422565b15612b2657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393620696e76616c69642061676772656761746f720000000000000000006044820152fd5b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561035957016020813591019167ffffffffffffffff821161035957813603831361035957565b6108b791612bff81612be58461045c565b73ffffffffffffffffffffffffffffffffffffffff169052565b60208201356020820152612c9a612c4b612c30612c1f6040860186612b84565b610160806040880152860191612770565b612c3d6060860186612b84565b908583036060870152612770565b6080840135608084015260a084013560a084015260c084013560c084015260e084013560e08401526101008085013590840152610120612c8d81860186612b84565b9185840390860152612770565b91612cab6101409182810190612b84565b929091818503910152612770565b949391929083604087016040885252606086019360608160051b8801019482600090815b848310612cfc575050505050508460206108b795968503910152612770565b9091929394977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08b820301855288357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea184360301811215612d775760019184612d659201612bd4565b98602090810196950193019190612cdd565b8280fd5b908092918237016000815290565b9290936108b796959260c0958552602085015265ffffffffffff8092166040850152166060830152151560808201528160a082015201906127d2565b60405190612dd28261058f565b60006040838281528260208201520152565b612df9612dff91612df3612dc5565b50612e96565b91612e96565b9073ffffffffffffffffffffffffffffffffffffffff9182825116928315612e8b575b65ffffffffffff928391826040816020850151169301511693836040816020840151169201511690808410612e83575b50808511612e7b575b5060405195612e698761058f565b16855216602084015216604082015290565b935038612e5b565b925038612e52565b815181169350612e22565b612e9e612dc5565b5065ffffffffffff808260a01c168015612eea575b60405192612ec08461058f565b73ffffffffffffffffffffffffffffffffffffffff8116845260d01c602084015216604082015290565b5080612eb3565b15612ef857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393220696e7465726e616c2063616c6c206f6e6c790000000000000000006044820152fd5b9060406108b7926000815281602082015201906127d2565b6040906108b79392815281602082015201906127d2565b909291925a93612f96303314612ef1565b8151946040860151955a6113886060830151890101116130b6576108b7966000958051612fdd575b50505090612fd7915a9003608084015101943691610682565b9161589b565b61300c9161300891613003855173ffffffffffffffffffffffffffffffffffffffff1690565b6130e0565b1590565b613018575b8080612fbe565b612fd7929194506130276130f2565b90815161303b575b50506001939091613011565b7f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a20173ffffffffffffffffffffffffffffffffffffffff6020870151926130ac602061309a835173ffffffffffffffffffffffffffffffffffffffff1690565b92015195604051938493169683612f6e565b0390a3388061302f565b7fdeaddead0000000000000000000000000000000000000000000000000000000060005260206000fd5b9060009283809360208451940192f190565b3d610800808211613119575b50604051906020818301016040528082526000602083013e90565b9050386130fe565b6131376131316040830183612710565b90613265565b906131486131316060830183612710565b906131fe61315d613131610120840184612710565b60405194859360208501956101008201359260e08301359260c08101359260a08201359260808301359273ffffffffffffffffffffffffffffffffffffffff60208201359135168c9693909a9998959261012098959273ffffffffffffffffffffffffffffffffffffffff6101408a019d168952602089015260408801526060870152608086015260a085015260c084015260e08301526101008201520152565b03916132307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938481018352826105ab565b5190206040805160208101928352309181019190915246606082015260809283018152909161325f90826105ab565b51902090565b816040519182372090565b604051906040820182811067ffffffffffffffff82111761329b575b60405260006020838281520152565b6132a3610505565b61328c565b906014116103595790601490565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090358181169392601481106132eb57505050565b60140360031b82901b16169150565b9060c060a06108b793805184526020810151602085015260408101511515604085015265ffffffffffff80606083015116606086015260808201511660808501520151918160a082015201906127d2565b92946133ac61044d9561339a610100959998613388613374602097610140808c528b01906132fa565b9b878a019060208091805184520151910152565b80516060890152602001516080880152565b805160a08701526020015160c0860152565b73ffffffffffffffffffffffffffffffffffffffff81511660e0850152015191019060208091805184520151910152565b61342661044d946134146133ff60a0959998969960e0865260e08601906132fa565b98602085019060208091805184520151910152565b80516060840152602001516080830152565b019060208091805184520151910152565b9073ffffffffffffffffffffffffffffffffffffffff613455613270565b9216600052600060205263ffffffff600160406000206dffffffffffffffffffffffffffff815460781c1685520154166020830152565b9081602091031261035957516108b781610422565b9160206108b7938181520191612770565b7fbc79d710c27c417daea28cbdc16e638da2309ea2f5542218b102827c395d15d45473ffffffffffffffffffffffffffffffffffffffff16806108b75750737fc98430eaedbb6070b35b39d79872504908834890565b9061353773ffffffffffffffffffffffffffffffffffffffff916108b797959694606085526060850191612770565b941660208201526040818503910152612770565b60009060033d1161355857565b905060046000803e60005160e01c90565b600060443d106108b7576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc91823d016004833e815167ffffffffffffffff918282113d6024840111176135e5578184019485519384116135ed573d850101602084870101116135e557506108b7929101602001906105ab565b949350505050565b50949350505050565b6136036040820182612710565b61361b61360f84612b15565b93610120810190612710565b9290303b156103595760009361365f9160405196879586957f957122ab00000000000000000000000000000000000000000000000000000000875260048701613508565b0381305afa90816136e8575b5061044d57600161367a61354b565b6308c379a014613693575b61368b57565b61044d6128cb565b61369b613569565b806136a7575b50613685565b805160009250156136a157610f21906040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612f56565b80610f486136f59261057b565b3861366b565b91906137069061394a565b73ffffffffffffffffffffffffffffffffffffffff929183166138a557613837576137309061394a565b91166137c95761373d5750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b610f21836040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b92919061391f9061394a565b909273ffffffffffffffffffffffffffffffffffffffff808095169116036138a55761383757613730905b80156139e45761395990612e96565b7f182d361d27e8fee91541f8630840b9272bdb770c7bb6239b09cd74563c40534154806139c9575073ffffffffffffffffffffffffffffffffffffffff425b65ffffffffffff908160408501511681119182156139b9575b505091511691565b60208501511611905038806139b1565b73ffffffffffffffffffffffffffffffffffffffff90613998565b50600090600090565b156139f457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b916000915a93815190613a658282613f35565b613a6e81613121565b6020840152613aac6effffffffffffffffffffffffffffff60808401516060850151176040850151176101008401359060e0850135171711156139ed565b613ab582613ff7565b613ac08185846140b8565b9790613af1613008613ae6875173ffffffffffffffffffffffffffffffffffffffff1690565b602088015190613e60565b613bed57613afe43600052565b73ffffffffffffffffffffffffffffffffffffffff613b3660a0606097015173ffffffffffffffffffffffffffffffffffffffff1690565b16613bd3575b505a810360a084013510613b665760809360c092604087015260608601525a900391013501910152565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601e60408201527f41413430206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b90935081613be49297508584614db0565b95909238613b3c565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b9290916000925a8251613c6d8184613f35565b613c7683613121565b6020850152613cb46effffffffffffffffffffffffffffff60808301516060840151176040840151176101008601359060e0870135171711156139ed565b613cbd81613ff7565b613cc98186868b614424565b9890613cfa613008613cef865173ffffffffffffffffffffffffffffffffffffffff1690565b602087015190613e60565b613df257613d0743600052565b73ffffffffffffffffffffffffffffffffffffffff613d3f60a0606096015173ffffffffffffffffffffffffffffffffffffffff1690565b16613dd7575b505a840360a086013510613d715750604085015260608401526080919060c0905a900391013501910152565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601e60448201527f41413430206f76657220766572696669636174696f6e4761734c696d697400006064820152608490fd5b90925081613de9929850868685615043565b96909138613d45565b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b73ffffffffffffffffffffffffffffffffffffffff16600052600160205267ffffffffffffffff613ebc8260401c60406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b91825492613ec984611c9d565b9055161490565b15613ed757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613fa790613f5f613f4582612b15565b73ffffffffffffffffffffffffffffffffffffffff168452565b602081013560208401526080810135604084015260a0810135606084015260c0810135608084015260e081013560c084015261010081013560e0840152610120810190612710565b908115613fec57613fd161124c6112468460a094613fcc601461044d99981015613ed0565b6132a8565b73ffffffffffffffffffffffffffffffffffffffff16910152565b505060a06000910152565b60a081015173ffffffffffffffffffffffffffffffffffffffff16156140395760c060035b60ff60408401519116606084015102016080830151019101510290565b60c0600161401c565b61405a60409295949395606083526060830190612bd4565b9460208201520152565b9061044d602f60405180947f414132332072657665727465643a20000000000000000000000000000000000060208301526140a881518092602086860191016127af565b810103600f8101855201836105ab565b916000926000925a9361418660208351936140e7855173ffffffffffffffffffffffffffffffffffffffff1690565b956140ff6140f86040830183612710565b908461468f565b60a086015173ffffffffffffffffffffffffffffffffffffffff169061412443600052565b85809373ffffffffffffffffffffffffffffffffffffffff8094161598896143bc575b60600151908601516040517f3a871cdd000000000000000000000000000000000000000000000000000000008152978896879586939060048501614042565b03938a1690f182918161439c575b5061439357506001906141a561354b565b6308c379a01461433f575b506142d2575b6141c3575b50505a900391565b6141ed9073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b614208610a2c82546dffffffffffffffffffffffffffff1690565b8083116142655761425e926dffffffffffffffffffffffffffff9103166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b38806141bb565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614347613569565b908161435357506141b0565b610f21916143619150614064565b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612f56565b95506141b69050565b6143b591925060203d81116129a65761299781836105ab565b9038614194565b9450614402610a2c6143ee8c73ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b546dffffffffffffffffffffffffffff1690565b8b8111156144195750856060835b96915050614147565b606087918d03614410565b90926000936000935a9461446d6020835193614454855173ffffffffffffffffffffffffffffffffffffffff1690565b956140ff6144656040830183612710565b90848c614996565b03938a1690f182918161466f575b50614666575060019061448c61354b565b6308c379a014614610575b506145a2575b6144ab575b5050505a900391565b6144d59073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b916144f1610a2c84546dffffffffffffffffffffffffffff1690565b9081831161453c575082547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000169190036dffffffffffffffffffffffffffff161790553880806144a2565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614618613569565b90816146245750614497565b86916146309150614064565b90610f216040519283927f220266b600000000000000000000000000000000000000000000000000000000845260048401612f6e565b965061449d9050565b61468891925060203d81116129a65761299781836105ab565b903861447b565b90918061469b57505050565b81515173ffffffffffffffffffffffffffffffffffffffff1692833b61492957600060206146cd610cb3610cb36134b2565b606086510151604051809481937f570e1a360000000000000000000000000000000000000000000000000000000083528261470c8a8a600484016134a1565b0393f190811561491c575b6000916148fe575b5073ffffffffffffffffffffffffffffffffffffffff8082169586156148915716809503614824573b156147b75761124c6112467fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d9361477e936132a8565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a3565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f4141313520696e6974436f6465206d757374206372656174652073656e64657260608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614916915060203d81116114545761144581836105ab565b3861471f565b6149246128cb565b614717565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601f60408201527f414131302073656e64657220616c726561647920636f6e73747275637465640060608201520190565b929091816149a5575b50505050565b82515173ffffffffffffffffffffffffffffffffffffffff1693843b614c3657600060206149d7610cb3610cb36134b2565b606087510151604051809481937f570e1a3600000000000000000000000000000000000000000000000000000000835282614a168b8b600484016134a1565b0393f1908115614c29575b600091614c0b575b5073ffffffffffffffffffffffffffffffffffffffff808216968715614b9d5716809603614b2f573b15614ac9575061124c6112467fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614a89936132a8565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a33880808061499f565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614c23915060203d81116114545761144581836105ab565b38614a29565b614c316128cb565b614a21565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b15614ca357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4141343120746f6f206c6974746c6520766572696669636174696f6e476173006044820152fd5b919060408382031261035957825167ffffffffffffffff81116103595783019080601f8301121561035957815191614d3883610639565b91614d4660405193846105ab565b8383526020848301011161035957602092614d66918480850191016127af565b92015190565b9061044d602f60405180947f414133332072657665727465643a20000000000000000000000000000000000060208301526140a881518092602086860191016127af565b939192606094600094600093805192614def60a08a86015195614dd4888811614c9c565b015173ffffffffffffffffffffffffffffffffffffffff1690565b91614e1a8373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b94614e36610a2c87546dffffffffffffffffffffffffffff1690565b96858810614fd65773ffffffffffffffffffffffffffffffffffffffff60208a9894614eac8a966dffffffffffffffffffffffffffff8b614ee59e03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b015194604051998a98899788937ff465c77e00000000000000000000000000000000000000000000000000000000855260048501614042565b0395169103f1908183918493614fb0575b50614fa9575050600190614f0861354b565b6308c379a014614f87575b50614f1a57565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601660408201527f4141333320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614f8f613569565b9081614f9b5750614f13565b610f21916143619150614d6c565b9450925050565b909250614fcf91503d8085833e614fc781836105ab565b810190614d01565b9138614ef6565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b91949293909360609560009560009382519061506a60a08b84015193614dd4848611614c9c565b936150958573ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b6150b0610a2c82546dffffffffffffffffffffffffffff1690565b87811061520b579273ffffffffffffffffffffffffffffffffffffffff60208a98969394614eac8a966dffffffffffffffffffffffffffff8d61512a9e9c9a03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b0395169103f19081839184936151ed575b506151e557505060019061514d61354b565b6308c379a0146151c6575b506151605750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601660448201527f4141333320726576657274656420286f72204f4f4729000000000000000000006064820152608490fd5b6151ce613569565b90816151da5750615158565b614630925050614d6c565b955093505050565b90925061520491503d8085833e614fc781836105ab565b913861513b565b610f218a6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6003111561528357565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9291906152d0604091600286526060602087015260608601906127d2565b930152565b939291906003811015615283576040916152d09186526060602087015260608601906127d2565b9061044d603660405180947f4141353020706f73744f702072657665727465643a2000000000000000000000602083015261534081518092602086860191016127af565b81010360168101855201836105ab565b929190925a9360009180519161536583615b6c565b9260a0810195615389875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff939084811690816154f8575050506153ca825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a9003019384029760408401908982511061548b577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f946154166020928c61548695510390611d5d565b01519489602061545861543d865173ffffffffffffffffffffffffffffffffffffffff1690565b9a5173ffffffffffffffffffffffffffffffffffffffff1690565b9401519785604051968796169a16988590949392606092608083019683521515602083015260408201520152565b0390a4565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f414135312070726566756e642062656c6f772061637475616c476173436f737460608201520190565b9a918051615508575b50506153cc565b6060850151600099509091803b1561562f57918991898361555b956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c0290600484016152b2565b0393f1908161561c575b5061561757600161557461354b565b6308c379a0146155f8575b61558b575b3880615501565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b615600613569565b8061560b575061557f565b614361610f21916152fc565b615584565b80610f486156299261057b565b38615565565b8980fd5b9392915a9060009280519061564782615b6c565b9360a083019661566b885173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff95908681169081615761575050506156ac845173ffffffffffffffffffffffffffffffffffffffff1690565b915b5a9003019485029860408301908a8251106156fb57507f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f949392615416615486938c602094510390611d5d565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f414135312070726566756e642062656c6f772061637475616c476173436f73746064820152608490fd5b93918051615771575b50506156ae565b606087015160009a509091803b1561589757918a918a836157c4956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c0290600484016152b2565b0393f19081615884575b5061587f5760016157dd61354b565b6308c379a014615862575b6157f4575b388061576a565b610f218b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b61586a613569565b8061587557506157e8565b6146308d916152fc565b6157ed565b80610f486158919261057b565b386157ce565b8a80fd5b909392915a948051916158ad83615b6c565b9260a08101956158d1875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9381851691826159b957505050615911825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a9003019384029760408401908982511061548b577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9461595d6020928c61548695510390611d5d565b61596688615279565b01519489602061598d61543d865173ffffffffffffffffffffffffffffffffffffffff1690565b940151604080519182529815602082015297880152606087015290821695909116939081906080820190565b9a9181516159c9575b5050615913565b8784026159d58a615279565b60028a14615a60576060860151823b1561035957615a2893600080948d604051978896879586937fa9a23409000000000000000000000000000000000000000000000000000000008552600485016152d5565b0393f18015615a53575b615a40575b505b38806159c2565b80610f48615a4d9261057b565b38615a37565b615a5b6128cb565b615a32565b6060860151823b1561035957615aab93600080948d604051978896879586937fa9a23409000000000000000000000000000000000000000000000000000000008552600485016152d5565b0393f19081615b59575b50615b54576001615ac461354b565b6308c379a014615b41575b15615a39576040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b615b49613569565b8061560b5750615acf565b615a39565b80610f48615b669261057b565b38615ab5565b60e060c0820151910151808214615bc0577f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480615bba575048905b0180821015615bb5575090565b905090565b90615ba8565b509056fea264697066735822122005e264b022d919bf4ff1b91eae23e88ac6d04e701b956ed95f4abe4ffd80ecae64736f6c63430008110033", "sourceMap": "830:29053:15:-:0;;;;;;;1716:1:12;1821:22;1716:1;830:29053:15;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x60806040526004361015610023575b361561001957600080fd5b610021611cd7565b005b60003560e01c80630396cb60146101b35780630bd28e3b146101aa5780631b2e01b8146101a15780631d732756146101985780631fad948c1461018f578063205c28781461018657806335567e1a1461017d5780634b1d7cf5146101745780635287ce121461016b57806370a08231146101625780638f41ec5a14610159578063957122ab146101505780639b249f6914610147578063a61935311461013e578063b760faf914610135578063bb9fe6bf1461012c578063c23a5cea14610123578063d6383f941461011a578063ee219423146101115763fc7e286d0361000e5761010c611bb7565b61000e565b5061010c61199f565b5061010c611837565b5061010c61169e565b5061010c611520565b5061010c6114e1565b5061010c6114c0565b5061010c611337565b5061010c611164565b5061010c611129565b5061010c6110a4565b5061010c610f54565b5061010c610bf8565b5061010c610b33565b5061010c610994565b5061010c6108ba565b5061010c6106e7565b5061010c610467565b5061010c610385565b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043563ffffffff8116808203610359576103547fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916102716102413373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b9161024d811515611e4e565b61026a610261600185015463ffffffff1690565b63ffffffff1690565b1115611eb3565b54926103366dffffffffffffffffffffffffffff946102f461029834888460781c16611d48565b966102a4881515611f18565b6102b081891115611f7d565b6102d4816102bc6105ec565b941684906dffffffffffffffffffffffffffff169052565b6001602084015287166dffffffffffffffffffffffffffff166040830152565b63ffffffff83166060820152600060808201526103313373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b611fe2565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b600080fd5b6024359077ffffffffffffffffffffffffffffffffffffffffffffffff8216820361035957565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043577ffffffffffffffffffffffffffffffffffffffffffffffff81168103610359576104149033600052600160205260406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b61041e8154611c9d565b9055005b73ffffffffffffffffffffffffffffffffffffffff81160361035957565b6024359061044d82610422565b565b60c4359061044d82610422565b359061044d82610422565b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760206104fc6004356104a881610422565b73ffffffffffffffffffffffffffffffffffffffff6104c561035e565b91166000526001835260406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54604051908152f35b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761055157604052565b610559610505565b604052565b610100810190811067ffffffffffffffff82111761055157604052565b67ffffffffffffffff811161055157604052565b6060810190811067ffffffffffffffff82111761055157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761055157604052565b6040519061044d82610535565b6040519060c0820182811067ffffffffffffffff82111761055157604052565b604051906040820182811067ffffffffffffffff82111761055157604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111610675575b01160190565b61067d610505565b61066f565b92919261068e82610639565b9161069c60405193846105ab565b829481845281830111610359578281602093846000960137010152565b9181601f840112156103595782359167ffffffffffffffff8311610359576020838186019501011161035957565b5034610359576101c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595767ffffffffffffffff60043581811161035957366023820112156103595761074a903690602481600401359101610682565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36016101808112610359576101006040519161078783610535565b12610359576040516107988161055e565b6107a0610440565b815260443560208201526064356040820152608435606082015260a43560808201526107ca61044f565b60a082015260e43560c08201526101043560e082015281526101243560208201526101443560408201526101643560608201526101843560808201526101a4359182116103595761083e9261082661082e9336906004016106b9565b929091612f85565b6040519081529081906020820190565b0390f35b9060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103595760043567ffffffffffffffff9283821161035957806023830112156103595781600401359384116103595760248460051b830101116103595760240191906024356108b781610422565b90565b5034610359576108c936610842565b6108d49291926125b2565b6108dd836124a5565b60005b84811061095d57506000927fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f9728480a183915b85831061092d57610923858561261f565b6100216001600255565b909193600190610953610941878987612564565b61094b8886612542565b5190886129ad565b0194019190610912565b8061098b610984610972600194869896612542565b5161097e848a88612564565b84613c5a565b90836136fb565b019290926108e0565b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576004356109d081610422565b6024359060009133835282602052604083206dffffffffffffffffffffffffffff81541692838311610ad557848373ffffffffffffffffffffffffffffffffffffffff829593610a788496610a3f610a2c8798610ad29c612389565b6dffffffffffffffffffffffffffff1690565b6dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af1610acc6122f4565b50612396565b80f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b50346103595760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576020600435610b7181610422565b73ffffffffffffffffffffffffffffffffffffffff610b8e61035e565b911660005260018252610bc98160406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006040519260401b16178152f35b503461035957610c0736610842565b610c0f6125b2565b6000805b838210610df657610c2491506124a5565b7fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972600080a16000805b848110610d5c57505060008093815b818110610c9357610923868660007f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d8180a261261f565b610cf7610ca182848a612a73565b610ccc610cb3610cb360208401612b15565b73ffffffffffffffffffffffffffffffffffffffff1690565b7f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d600080a280612ac1565b906000915b808310610d1457505050610d0f90611c9d565b610c5c565b90919497610d4f610d49610d5592610d438c8b610d3c82610d368e8b8d612564565b92612542565b51916129ad565b90611d48565b99611c9d565b95611c9d565b9190610cfc565b610d67818688612a73565b6020610d7f610d768380612ac1565b92909301612b15565b9173ffffffffffffffffffffffffffffffffffffffff60009316905b828410610db45750505050610daf90611c9d565b610c4d565b90919294610d4f81610de985610de2610dd0610dee968d612542565b51610ddc8c8b8a612564565b85613c5a565b908b613913565b611c9d565b929190610d9b565b610e01828587612a73565b90610e0c8280612ac1565b92610e1c610cb360208301612b15565b9173ffffffffffffffffffffffffffffffffffffffff8316610e416001821415612b1f565b610e62575b505050610e5c91610e5691611d48565b91611c9d565b90610c13565b909592610e7b6040999693999895989788810190612710565b92908a3b156103595789938b918a5193849283927fe3563a4f00000000000000000000000000000000000000000000000000000000845260049e8f850193610ec294612cb9565b03815a93600094fa9081610f3b575b50610f255786517f86a9f75000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a16818a0190815281906020010390fd5b0390fd5b9497509295509093509181610e56610e5c610e46565b80610f48610f4e9261057b565b8061111e565b38610ed1565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595761083e73ffffffffffffffffffffffffffffffffffffffff600435610fa881610422565b608060409283928351610fba81610535565b60009381858093528260208201528287820152826060820152015216815280602052209061104965ffffffffffff6001835194610ff686610535565b80546dffffffffffffffffffffffffffff8082168852607082901c60ff161515602089015260789190911c1685870152015463ffffffff8116606086015260201c16608084019065ffffffffffff169052565b5191829182919091608065ffffffffffff8160a08401956dffffffffffffffffffffffffffff808251168652602082015115156020870152604082015116604086015263ffffffff6060820151166060860152015116910152565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595773ffffffffffffffffffffffffffffffffffffffff6004356110f581610422565b16600052600060205260206dffffffffffffffffffffffffffff60406000205416604051908152f35b600091031261035957565b50346103595760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035957602060405160018152f35b50346103595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261035957600467ffffffffffffffff8135818111610359576111b590369084016106b9565b9050602435916111c483610422565b604435908111610359576111db90369085016106b9565b92909115908161132d575b506112c6576014821015611236575b610f21836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160409060208152600060208201520190565b6112466112529261124c926132a8565b906132b6565b60601c90565b3b1561125f5738806111f5565b610f21906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601b60208201527f41413330207061796d6173746572206e6f74206465706c6f796564000000000060408201520190565b610f21836040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352820160609060208152601960208201527f41413230206163636f756e74206e6f74206465706c6f7965640000000000000060408201520190565b90503b15386111e6565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595760043567ffffffffffffffff8111610359576113e7602061138e60249336906004016106b9565b73ffffffffffffffffffffffffffffffffffffffff9291836113ae6134b2565b169060006040518097819582947f570e1a36000000000000000000000000000000000000000000000000000000008452600484016134a1565b03925af191821561145b575b60009261142b575b50604051917f6ca7b806000000000000000000000000000000000000000000000000000000008352166004820152fd5b61144d91925060203d8111611454575b61144581836105ab565b81019061348c565b90386113fb565b503d61143b565b6114636128cb565b6113f3565b90816101609103126103595790565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610359576004359067ffffffffffffffff8211610359576108b791600401611468565b50346103595760206114d96114d436611477565b613121565b604051908152f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595761002160043561151b81610422565b611cdc565b5034610359576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261169b573381528060205260408120600181019063ffffffff82541690811561163d576115da61159f6116029361159161158c855460ff9060701c1690565b612146565b65ffffffffffff42166121ab565b84547fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff16602082901b69ffffffffffff000000001617909455565b7fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff8154169055565b60405165ffffffffffff91909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a90602090a280f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b80fd5b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610359576004356116da81610422565b610ad273ffffffffffffffffffffffffffffffffffffffff61171c3373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b926117d461173f610a2c86546dffffffffffffffffffffffffffff9060781c1690565b9461174b8615156121c5565b6117ac6001820161178465ffffffffffff611770835465ffffffffffff9060201c1690565b1661177c81151561222a565b42101561228f565b80547fffffffffffffffffffffffffffffffffffffffffffff00000000000000000000169055565b7fffffff0000000000000000000000000000ffffffffffffffffffffffffffffff8154169055565b6040805173ffffffffffffffffffffffffffffffffffffffff831681526020810186905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2600080809581948294165af16118316122f4565b50612324565b50346103595760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595767ffffffffffffffff60043581811161035957611888903690600401611468565b6024359161189583610422565b604435908111610359576118b0610f219136906004016106b9565b6118b8612422565b6118c1856135f6565b6118d46118ce8287613a52565b90612de4565b946118e4826000924384526128d8565b96438252819360609573ffffffffffffffffffffffffffffffffffffffff831661196b575b505050506080015193611938604061192a602084015165ffffffffffff1690565b92015165ffffffffffff1690565b906040519687967f8b7ac98000000000000000000000000000000000000000000000000000000000885260048801612d89565b839550839496506119856040949293945180948193612d7b565b03925af19060806119946122f4565b929190388080611909565b5034610359576119ae36611477565b6119b6612422565b6119bf826135f6565b6119c98183613a52565b825160a001519193916119f69073ffffffffffffffffffffffffffffffffffffffff16613437565b613437565b90611a1a6119f1855173ffffffffffffffffffffffffffffffffffffffff90511690565b94611a23613270565b50611a52611a3660409586810190612710565b90600060148310611baf57506112466119f19261124c926132a8565b91611a5c91612de4565b805173ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff821660018114916080880151978781015191886020820151611ab19065ffffffffffff1690565b91015165ffffffffffff16916060015192611aca6105f9565b9a8b5260208b0152841515898b015265ffffffffffff1660608a015265ffffffffffff16608089015260a088015215159081611ba6575b50611b3b5750610f2192519485947fe0cff05f000000000000000000000000000000000000000000000000000000008652600486016133dd565b9190610f2193611b4a84613437565b611b71611b55610619565b73ffffffffffffffffffffffffffffffffffffffff9096168652565b6020850152519586957ffaecb4e40000000000000000000000000000000000000000000000000000000087526004870161334b565b90501538611b01565b915050613437565b50346103595760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103595773ffffffffffffffffffffffffffffffffffffffff600435611c0881610422565b16600052600060205260a0604060002065ffffffffffff60018254920154604051926dffffffffffffffffffffffffffff90818116855260ff8160701c161515602086015260781c16604084015263ffffffff8116606084015260201c166080820152f35b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611ccb570190565b611cd3611c6d565b0190565b61044d335b73ffffffffffffffffffffffffffffffffffffffff90611cfc3482611d5d565b168060005260006020527f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206dffffffffffffffffffffffffffff60406000205416604051908152a2565b91908201809211611d5557565b61044d611c6d565b73ffffffffffffffffffffffffffffffffffffffff16600052600060205260406000206dffffffffffffffffffffffffffff80825416928301809311611e41575b808311611de35761044d92166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6465706f736974206f766572666c6f77000000000000000000000000000000006044820152fd5b611e49611c6d565b611d9e565b15611e5557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611eba57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b15611f1f57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611f8457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b9065ffffffffffff6080600161044d946120426dffffffffffffffffffffffffffff86511682906dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b602085015115156eff000000000000000000000000000082549160701b16807fffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff83161783557fffffff000000000000000000000000000000ffffffffffffffffffffffffffff7cffffffffffffffffffffffffffff000000000000000000000000000000604089015160781b16921617178155019263ffffffff6060820151167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008554161784550151167fffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff69ffffffffffff0000000083549260201b169116179055565b1561214d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b91909165ffffffffffff80809416911601918211611d5557565b156121cc57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561223157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561229657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b3d1561231f573d9061230582610639565b9161231360405193846105ab565b82523d6000602084013e565b606090565b1561232b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b91908203918211611d5557565b1561239d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60209067ffffffffffffffff8111612415575b60051b0190565b61241d610505565b61240e565b6040519061242f82610535565b604051608083610100830167ffffffffffffffff811184821017612498575b60405260009283815283602082015283604082015283606082015283838201528360a08201528360c08201528360e082015281528260208201528260408201528260608201520152565b6124a0610505565b61244e565b906124af826123fb565b6124bc60405191826105ab565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06124ea82946123fb565b019060005b8281106124fb57505050565b602090612506612422565b828285010152016124ef565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020918151811015612557575b60051b010190565b61255f612512565b61254f565b91908110156125a5575b60051b810135907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea181360301821215610359570190565b6125ad612512565b61256e565b60028054146125c15760028055565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff1680156126b257600080809381935af161264c6122f4565b501561265457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f41413931206661696c65642073656e6420746f2062656e6566696369617279006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4141393020696e76616c69642062656e656669636961727900000000000000006044820152fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610359570180359067ffffffffffffffff82116103595760200191813603831361035957565b90816020910312610359575190565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b60005b8381106127c25750506000910152565b81810151838201526020016127b2565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361280e815180928187528780880191016127af565b0116010190565b9061282f6080916108b796946101c0808652850191612770565b9360e0815173ffffffffffffffffffffffffffffffffffffffff80825116602087015260208201516040870152604082015160608701526060820151858701528482015160a087015260a08201511660c086015260c081015182860152015161010084015260208101516101208401526040810151610140840152606081015161016084015201516101808201526101a08184039101526127d2565b506040513d6000823e3d90fd5b905a918160206128f16060830151936060810190612710565b9061292a8560405195869485947f1d73275600000000000000000000000000000000000000000000000000000000865260048601612815565b03816000305af16000918161297d575b5061297657506129636108b79360206000803e5a8103908111612969575b608084015190611d48565b91615350565b612971611c6d565b612958565b9250505090565b61299f91925060203d81116129a6575b61299781836105ab565b810190612761565b903861293a565b503d61298d565b905a928060206129c66060830151946060810190612710565b906129ff8660405195869485947f1d73275600000000000000000000000000000000000000000000000000000000865260048601612815565b03816000305af160009181612a53575b50612a4b5750612a386108b79460206000803e5a8103908111612a3e575b608083015190611d48565b92615633565b612a46611c6d565b612a2d565b935050505090565b612a6c91925060203d81116129a65761299781836105ab565b9038612a0f565b9190811015612ab4575b60051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa181360301821215610359570190565b612abc612512565b612a7d565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610359570180359067ffffffffffffffff821161035957602001918160051b3603831361035957565b356108b781610422565b15612b2657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393620696e76616c69642061676772656761746f720000000000000000006044820152fd5b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561035957016020813591019167ffffffffffffffff821161035957813603831361035957565b6108b791612bff81612be58461045c565b73ffffffffffffffffffffffffffffffffffffffff169052565b60208201356020820152612c9a612c4b612c30612c1f6040860186612b84565b610160806040880152860191612770565b612c3d6060860186612b84565b908583036060870152612770565b6080840135608084015260a084013560a084015260c084013560c084015260e084013560e08401526101008085013590840152610120612c8d81860186612b84565b9185840390860152612770565b91612cab6101409182810190612b84565b929091818503910152612770565b949391929083604087016040885252606086019360608160051b8801019482600090815b848310612cfc575050505050508460206108b795968503910152612770565b9091929394977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08b820301855288357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea184360301811215612d775760019184612d659201612bd4565b98602090810196950193019190612cdd565b8280fd5b908092918237016000815290565b9290936108b796959260c0958552602085015265ffffffffffff8092166040850152166060830152151560808201528160a082015201906127d2565b60405190612dd28261058f565b60006040838281528260208201520152565b612df9612dff91612df3612dc5565b50612e96565b91612e96565b9073ffffffffffffffffffffffffffffffffffffffff9182825116928315612e8b575b65ffffffffffff928391826040816020850151169301511693836040816020840151169201511690808410612e83575b50808511612e7b575b5060405195612e698761058f565b16855216602084015216604082015290565b935038612e5b565b925038612e52565b815181169350612e22565b612e9e612dc5565b5065ffffffffffff808260a01c168015612eea575b60405192612ec08461058f565b73ffffffffffffffffffffffffffffffffffffffff8116845260d01c602084015216604082015290565b5080612eb3565b15612ef857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4141393220696e7465726e616c2063616c6c206f6e6c790000000000000000006044820152fd5b9060406108b7926000815281602082015201906127d2565b6040906108b79392815281602082015201906127d2565b909291925a93612f96303314612ef1565b8151946040860151955a6113886060830151890101116130b6576108b7966000958051612fdd575b50505090612fd7915a9003608084015101943691610682565b9161589b565b61300c9161300891613003855173ffffffffffffffffffffffffffffffffffffffff1690565b6130e0565b1590565b613018575b8080612fbe565b612fd7929194506130276130f2565b90815161303b575b50506001939091613011565b7f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a20173ffffffffffffffffffffffffffffffffffffffff6020870151926130ac602061309a835173ffffffffffffffffffffffffffffffffffffffff1690565b92015195604051938493169683612f6e565b0390a3388061302f565b7fdeaddead0000000000000000000000000000000000000000000000000000000060005260206000fd5b9060009283809360208451940192f190565b3d610800808211613119575b50604051906020818301016040528082526000602083013e90565b9050386130fe565b6131376131316040830183612710565b90613265565b906131486131316060830183612710565b906131fe61315d613131610120840184612710565b60405194859360208501956101008201359260e08301359260c08101359260a08201359260808301359273ffffffffffffffffffffffffffffffffffffffff60208201359135168c9693909a9998959261012098959273ffffffffffffffffffffffffffffffffffffffff6101408a019d168952602089015260408801526060870152608086015260a085015260c084015260e08301526101008201520152565b03916132307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938481018352826105ab565b5190206040805160208101928352309181019190915246606082015260809283018152909161325f90826105ab565b51902090565b816040519182372090565b604051906040820182811067ffffffffffffffff82111761329b575b60405260006020838281520152565b6132a3610505565b61328c565b906014116103595790601490565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090358181169392601481106132eb57505050565b60140360031b82901b16169150565b9060c060a06108b793805184526020810151602085015260408101511515604085015265ffffffffffff80606083015116606086015260808201511660808501520151918160a082015201906127d2565b92946133ac61044d9561339a610100959998613388613374602097610140808c528b01906132fa565b9b878a019060208091805184520151910152565b80516060890152602001516080880152565b805160a08701526020015160c0860152565b73ffffffffffffffffffffffffffffffffffffffff81511660e0850152015191019060208091805184520151910152565b61342661044d946134146133ff60a0959998969960e0865260e08601906132fa565b98602085019060208091805184520151910152565b80516060840152602001516080830152565b019060208091805184520151910152565b9073ffffffffffffffffffffffffffffffffffffffff613455613270565b9216600052600060205263ffffffff600160406000206dffffffffffffffffffffffffffff815460781c1685520154166020830152565b9081602091031261035957516108b781610422565b9160206108b7938181520191612770565b7fbc79d710c27c417daea28cbdc16e638da2309ea2f5542218b102827c395d15d45473ffffffffffffffffffffffffffffffffffffffff16806108b75750737fc98430eaedbb6070b35b39d79872504908834890565b9061353773ffffffffffffffffffffffffffffffffffffffff916108b797959694606085526060850191612770565b941660208201526040818503910152612770565b60009060033d1161355857565b905060046000803e60005160e01c90565b600060443d106108b7576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc91823d016004833e815167ffffffffffffffff918282113d6024840111176135e5578184019485519384116135ed573d850101602084870101116135e557506108b7929101602001906105ab565b949350505050565b50949350505050565b6136036040820182612710565b61361b61360f84612b15565b93610120810190612710565b9290303b156103595760009361365f9160405196879586957f957122ab00000000000000000000000000000000000000000000000000000000875260048701613508565b0381305afa90816136e8575b5061044d57600161367a61354b565b6308c379a014613693575b61368b57565b61044d6128cb565b61369b613569565b806136a7575b50613685565b805160009250156136a157610f21906040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612f56565b80610f486136f59261057b565b3861366b565b91906137069061394a565b73ffffffffffffffffffffffffffffffffffffffff929183166138a557613837576137309061394a565b91166137c95761373d5750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602160448201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560648201527f6500000000000000000000000000000000000000000000000000000000000000608482015260a490fd5b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b610f21836040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b92919061391f9061394a565b909273ffffffffffffffffffffffffffffffffffffffff808095169116036138a55761383757613730905b80156139e45761395990612e96565b7f182d361d27e8fee91541f8630840b9272bdb770c7bb6239b09cd74563c40534154806139c9575073ffffffffffffffffffffffffffffffffffffffff425b65ffffffffffff908160408501511681119182156139b9575b505091511691565b60208501511611905038806139b1565b73ffffffffffffffffffffffffffffffffffffffff90613998565b50600090600090565b156139f457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152fd5b916000915a93815190613a658282613f35565b613a6e81613121565b6020840152613aac6effffffffffffffffffffffffffffff60808401516060850151176040850151176101008401359060e0850135171711156139ed565b613ab582613ff7565b613ac08185846140b8565b9790613af1613008613ae6875173ffffffffffffffffffffffffffffffffffffffff1690565b602088015190613e60565b613bed57613afe43600052565b73ffffffffffffffffffffffffffffffffffffffff613b3660a0606097015173ffffffffffffffffffffffffffffffffffffffff1690565b16613bd3575b505a810360a084013510613b665760809360c092604087015260608601525a900391013501910152565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601e60408201527f41413430206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b90935081613be49297508584614db0565b95909238613b3c565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b9290916000925a8251613c6d8184613f35565b613c7683613121565b6020850152613cb46effffffffffffffffffffffffffffff60808301516060840151176040840151176101008601359060e0870135171711156139ed565b613cbd81613ff7565b613cc98186868b614424565b9890613cfa613008613cef865173ffffffffffffffffffffffffffffffffffffffff1690565b602087015190613e60565b613df257613d0743600052565b73ffffffffffffffffffffffffffffffffffffffff613d3f60a0606096015173ffffffffffffffffffffffffffffffffffffffff1690565b16613dd7575b505a840360a086013510613d715750604085015260608401526080919060c0905a900391013501910152565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601e60448201527f41413430206f76657220766572696669636174696f6e4761734c696d697400006064820152608490fd5b90925081613de9929850868685615043565b96909138613d45565b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b73ffffffffffffffffffffffffffffffffffffffff16600052600160205267ffffffffffffffff613ebc8260401c60406000209077ffffffffffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b91825492613ec984611c9d565b9055161490565b15613ed757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b613fa790613f5f613f4582612b15565b73ffffffffffffffffffffffffffffffffffffffff168452565b602081013560208401526080810135604084015260a0810135606084015260c0810135608084015260e081013560c084015261010081013560e0840152610120810190612710565b908115613fec57613fd161124c6112468460a094613fcc601461044d99981015613ed0565b6132a8565b73ffffffffffffffffffffffffffffffffffffffff16910152565b505060a06000910152565b60a081015173ffffffffffffffffffffffffffffffffffffffff16156140395760c060035b60ff60408401519116606084015102016080830151019101510290565b60c0600161401c565b61405a60409295949395606083526060830190612bd4565b9460208201520152565b9061044d602f60405180947f414132332072657665727465643a20000000000000000000000000000000000060208301526140a881518092602086860191016127af565b810103600f8101855201836105ab565b916000926000925a9361418660208351936140e7855173ffffffffffffffffffffffffffffffffffffffff1690565b956140ff6140f86040830183612710565b908461468f565b60a086015173ffffffffffffffffffffffffffffffffffffffff169061412443600052565b85809373ffffffffffffffffffffffffffffffffffffffff8094161598896143bc575b60600151908601516040517f3a871cdd000000000000000000000000000000000000000000000000000000008152978896879586939060048501614042565b03938a1690f182918161439c575b5061439357506001906141a561354b565b6308c379a01461433f575b506142d2575b6141c3575b50505a900391565b6141ed9073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b614208610a2c82546dffffffffffffffffffffffffffff1690565b8083116142655761425e926dffffffffffffffffffffffffffff9103166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b38806141bb565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614347613569565b908161435357506141b0565b610f21916143619150614064565b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301612f56565b95506141b69050565b6143b591925060203d81116129a65761299781836105ab565b9038614194565b9450614402610a2c6143ee8c73ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b546dffffffffffffffffffffffffffff1690565b8b8111156144195750856060835b96915050614147565b606087918d03614410565b90926000936000935a9461446d6020835193614454855173ffffffffffffffffffffffffffffffffffffffff1690565b956140ff6144656040830183612710565b90848c614996565b03938a1690f182918161466f575b50614666575060019061448c61354b565b6308c379a014614610575b506145a2575b6144ab575b5050505a900391565b6144d59073ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b916144f1610a2c84546dffffffffffffffffffffffffffff1690565b9081831161453c575082547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000169190036dffffffffffffffffffffffffffff161790553880806144a2565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601660408201527f4141323320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614618613569565b90816146245750614497565b86916146309150614064565b90610f216040519283927f220266b600000000000000000000000000000000000000000000000000000000845260048401612f6e565b965061449d9050565b61468891925060203d81116129a65761299781836105ab565b903861447b565b90918061469b57505050565b81515173ffffffffffffffffffffffffffffffffffffffff1692833b61492957600060206146cd610cb3610cb36134b2565b606086510151604051809481937f570e1a360000000000000000000000000000000000000000000000000000000083528261470c8a8a600484016134a1565b0393f190811561491c575b6000916148fe575b5073ffffffffffffffffffffffffffffffffffffffff8082169586156148915716809503614824573b156147b75761124c6112467fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d9361477e936132a8565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a3565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f4141313520696e6974436f6465206d757374206372656174652073656e64657260608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614916915060203d81116114545761144581836105ab565b3861471f565b6149246128cb565b614717565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601f60408201527f414131302073656e64657220616c726561647920636f6e73747275637465640060608201520190565b929091816149a5575b50505050565b82515173ffffffffffffffffffffffffffffffffffffffff1693843b614c3657600060206149d7610cb3610cb36134b2565b606087510151604051809481937f570e1a3600000000000000000000000000000000000000000000000000000000835282614a168b8b600484016134a1565b0393f1908115614c29575b600091614c0b575b5073ffffffffffffffffffffffffffffffffffffffff808216968715614b9d5716809603614b2f573b15614ac9575061124c6112467fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614a89936132a8565b602083810151935160a001516040805173ffffffffffffffffffffffffffffffffffffffff9485168152939091169183019190915290a33880808061499f565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b610f21826040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b610f21846040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b614c23915060203d81116114545761144581836105ab565b38614a29565b614c316128cb565b614a21565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b15614ca357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4141343120746f6f206c6974746c6520766572696669636174696f6e476173006044820152fd5b919060408382031261035957825167ffffffffffffffff81116103595783019080601f8301121561035957815191614d3883610639565b91614d4660405193846105ab565b8383526020848301011161035957602092614d66918480850191016127af565b92015190565b9061044d602f60405180947f414133332072657665727465643a20000000000000000000000000000000000060208301526140a881518092602086860191016127af565b939192606094600094600093805192614def60a08a86015195614dd4888811614c9c565b015173ffffffffffffffffffffffffffffffffffffffff1690565b91614e1a8373ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b94614e36610a2c87546dffffffffffffffffffffffffffff1690565b96858810614fd65773ffffffffffffffffffffffffffffffffffffffff60208a9894614eac8a966dffffffffffffffffffffffffffff8b614ee59e03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b015194604051998a98899788937ff465c77e00000000000000000000000000000000000000000000000000000000855260048501614042565b0395169103f1908183918493614fb0575b50614fa9575050600190614f0861354b565b6308c379a014614f87575b50614f1a57565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601660408201527f4141333320726576657274656420286f72204f4f47290000000000000000000060608201520190565b614f8f613569565b9081614f9b5750614f13565b610f21916143619150614d6c565b9450925050565b909250614fcf91503d8085833e614fc781836105ab565b810190614d01565b9138614ef6565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b91949293909360609560009560009382519061506a60a08b84015193614dd4848611614c9c565b936150958573ffffffffffffffffffffffffffffffffffffffff166000526000602052604060002090565b6150b0610a2c82546dffffffffffffffffffffffffffff1690565b87811061520b579273ffffffffffffffffffffffffffffffffffffffff60208a98969394614eac8a966dffffffffffffffffffffffffffff8d61512a9e9c9a03166dffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffff0000000000000000000000000000825416179055565b0395169103f19081839184936151ed575b506151e557505060019061514d61354b565b6308c379a0146151c6575b506151605750565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152601660448201527f4141333320726576657274656420286f72204f4f4729000000000000000000006064820152608490fd5b6151ce613569565b90816151da5750615158565b614630925050614d6c565b955093505050565b90925061520491503d8085833e614fc781836105ab565b913861513b565b610f218a6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601e60408201527f41413331207061796d6173746572206465706f73697420746f6f206c6f77000060608201520190565b6003111561528357565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9291906152d0604091600286526060602087015260608601906127d2565b930152565b939291906003811015615283576040916152d09186526060602087015260608601906127d2565b9061044d603660405180947f4141353020706f73744f702072657665727465643a2000000000000000000000602083015261534081518092602086860191016127af565b81010360168101855201836105ab565b929190925a9360009180519161536583615b6c565b9260a0810195615389875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff939084811690816154f8575050506153ca825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a9003019384029760408401908982511061548b577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f946154166020928c61548695510390611d5d565b01519489602061545861543d865173ffffffffffffffffffffffffffffffffffffffff1690565b9a5173ffffffffffffffffffffffffffffffffffffffff1690565b9401519785604051968796169a16988590949392606092608083019683521515602083015260408201520152565b0390a4565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152602060408201527f414135312070726566756e642062656c6f772061637475616c476173436f737460608201520190565b9a918051615508575b50506153cc565b6060850151600099509091803b1561562f57918991898361555b956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c0290600484016152b2565b0393f1908161561c575b5061561757600161557461354b565b6308c379a0146155f8575b61558b575b3880615501565b6040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b615600613569565b8061560b575061557f565b614361610f21916152fc565b615584565b80610f486156299261057b565b38615565565b8980fd5b9392915a9060009280519061564782615b6c565b9360a083019661566b885173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff95908681169081615761575050506156ac845173ffffffffffffffffffffffffffffffffffffffff1690565b915b5a9003019485029860408301908a8251106156fb57507f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f949392615416615486938c602094510390611d5d565b604080517f220266b600000000000000000000000000000000000000000000000000000000815260048101929092526024820152602060448201527f414135312070726566756e642062656c6f772061637475616c476173436f73746064820152608490fd5b93918051615771575b50506156ae565b606087015160009a509091803b1561589757918a918a836157c4956040518097819682957fa9a234090000000000000000000000000000000000000000000000000000000084528c0290600484016152b2565b0393f19081615884575b5061587f5760016157dd61354b565b6308c379a014615862575b6157f4575b388061576a565b610f218b6040519182917f220266b600000000000000000000000000000000000000000000000000000000835260048301608091815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b61586a613569565b8061587557506157e8565b6146308d916152fc565b6157ed565b80610f486158919261057b565b386157ce565b8a80fd5b909392915a948051916158ad83615b6c565b9260a08101956158d1875173ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff9381851691826159b957505050615911825173ffffffffffffffffffffffffffffffffffffffff1690565b985b5a9003019384029760408401908982511061548b577f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f9461595d6020928c61548695510390611d5d565b61596688615279565b01519489602061598d61543d865173ffffffffffffffffffffffffffffffffffffffff1690565b940151604080519182529815602082015297880152606087015290821695909116939081906080820190565b9a9181516159c9575b5050615913565b8784026159d58a615279565b60028a14615a60576060860151823b1561035957615a2893600080948d604051978896879586937fa9a23409000000000000000000000000000000000000000000000000000000008552600485016152d5565b0393f18015615a53575b615a40575b505b38806159c2565b80610f48615a4d9261057b565b38615a37565b615a5b6128cb565b615a32565b6060860151823b1561035957615aab93600080948d604051978896879586937fa9a23409000000000000000000000000000000000000000000000000000000008552600485016152d5565b0393f19081615b59575b50615b54576001615ac461354b565b6308c379a014615b41575b15615a39576040517f220266b600000000000000000000000000000000000000000000000000000000815280610f21600482016080906000815260406020820152601260408201527f4141353020706f73744f7020726576657274000000000000000000000000000060608201520190565b615b49613569565b8061560b5750615acf565b615a39565b80610f48615b669261057b565b38615ab5565b60e060c0820151910151808214615bc0577f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480615bba575048905b0180821015615bb5575090565b905090565b90615ba8565b509056fea264697066735822122005e264b022d919bf4ff1b91eae23e88ac6d04e701b956ed95f4abe4ffd80ecae64736f6c63430008110033", "sourceMap": "830:29053:15:-:0;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2684:47:3;;2169:10;2258:80;2160:20;2169:10;830:29053:15;;2160:8:3;830:29053:15;2160:8:3;830:29053:15;;;2160:8:3;830:29053:15;;;2160:20:3;2198:19;2190:58;2198:19;;;2190:58;:::i;:::-;2266:39;830:29053:15;2285:20:3;;;830:29053:15;;;;;;;;;;2266:39:3;-1:-1:-1;2266:39:3;2258:80;:::i;:::-;830:29053:15;;;;2377:9:3;2532:137;2364:22;2377:9;830:29053:15;;;;;2364:22:3;:::i;:::-;2404:9;2396:40;2404:9;;;2396:40;:::i;:::-;2446:53;2454:26;;;;2446:53;:::i;:::-;2532:137;830:29053:15;;;:::i;:::-;;;2532:137:3;830:29053:15;;;;;;2532:137:3;2285:20;830:29053:15;2532:137:3;;830:29053:15;;;;;2532:137:3;;;830:29053:15;;2532:137:3;830:29053:15;;;2532:137:3;;;830:29053:15;;2532:137:3;;;830:29053:15;2509:20:3;2169:10;830:29053:15;;2160:8:3;830:29053:15;2160:8:3;830:29053:15;;;2160:8:3;830:29053:15;;;2509:20:3;830:29053:15;:::i;:::-;2532:137:3;830:29053:15;;;;;;;;;;;;;2169:10:3;;830:29053:15;;;;;;;2684:47:3;;;;830:29053:15;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;848:36:1;868:10;;-1:-1:-1;830:29053:15;848:19:1;830:29053:15;;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;848:36:1;:38;830:29053:15;;848:38:1;:::i;:::-;830:29053:15;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;268:74:1;830:29053:15;;;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;830:29053:15;268:74:1;830:29053:15;;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;268:74:1;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;12806:15;830:29053;;12806:15;830:29053;;;;;;;;;;;12806:15;830:29053;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;2227:103:12;;;;;:::i;:::-;4015:24:15;;;:::i;:::-;4091:1;4094:10;;;;;;4413:21;4091:1;4453:17;;;;;4490:13;4485:120;4505:10;;;;;;4644:9;;;;:::i;:::-;2292:1:12;1517::15;2809:22:12;830:29053:15;2629:209:12;4517:3:15;4571:6;;;830:29053;4571:6;4553:37;4571:6;;;;;:::i;:::-;4579:10;;;;:::i;:::-;;4553:37;;;:::i;:::-;830:29053;4517:3;830:29053;4490:13;;;;4106:3;4156:10;4373;4237:38;4156:10;830:29053;4156:10;;;;;:::i;:::-;;4260:6;;;;;:::i;:::-;4237:38;;:::i;:::-;4373:10;;;:::i;:::-;830:29053;4079:13;;;;;830:29053;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4450:10:3;;830:29053:15;;;;;;;;;;;;4479:30:3;;;;830:29053:15;;4572:29:3;;830:29053:15;4572:29:3;;;4549:53;4572:29;;4564:38;4572:29;;;4757:38;4572:29;;:::i;:::-;830:29053:15;;;;4564:38:3;830:29053:15;;;;;;;;;;4549:53:3;830:29053:15;;;;;;;;;;;;;;4450:10:3;;4617:54;;;830:29053:15;4699:48:3;;;;:::i;:::-;;4757:38;:::i;:::-;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;830:29053:15;462:19:1;830:29053:15;;462:32:1;830:29053:15;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;462:32:1;830:29053:15;;;;;;;;462:55:1;830:29053:15;;;;;;;;;;;:::i;:::-;2227:103:12;;:::i;:::-;5171:1:15;5187:13;5202:11;;;;;;5953:26;;;;:::i;:::-;5995:17;5171:1;5995:17;;5171:1;6057:13;6072:11;;;;;;6800;;5171:1;6769:21;6826:13;;6841:11;;;;;;7367:9;7293:38;;5171:1;6947:51;7293:38;;;7367:9;:::i;6854:3::-;7043:11;6909:19;;;;;:::i;:::-;6947:51;6974:23;6982:14;5384;6982;;;:::i;:::-;830:29053;;;;6947:51;;5171:1;6947:51;;7043:11;;:::i;:::-;7115:13;5171:1;7110:159;7130:10;;;;;;6854:3;;;;;;:::i;:::-;6826:13;;7142:3;7202:6;;;;7245:9;7165:62;7142:3;7202:6;7178:49;7202:6;;7210:16;7202:6;;;;;;:::i;:::-;7210:16;;:::i;:::-;;7178:49;;:::i;:::-;7165:62;;:::i;:::-;7245:9;;:::i;:::-;7142:3;;:::i;:::-;7115:13;;;;6085:3;6140:19;;;;;:::i;:::-;5384:14;6254;6204:11;;;;:::i;:::-;6254:14;;;;;:::i;:::-;6329:13;830:29053;5171:1;830:29053;;6324:425;6344:10;;;;;;6085:3;;;;;;;:::i;:::-;6057:13;;6356:3;6406:16;;;;6725:9;6406:16;6670:19;6406:16;6500:44;6406:16;6356:3;6406:16;;;:::i;:::-;;6529:6;;;;;:::i;:::-;6500:44;;:::i;:::-;6670:19;;;:::i;:::-;6725:9;:::i;6356:3::-;6329:13;;;;;5215:3;5270:19;;;;;:::i;:::-;5334:11;;;;;:::i;:::-;5384:14;5485:19;5384:14;;;;;:::i;5485:19::-;830:29053;;;;5477:69;5516:1;5485:33;;;5477:69;:::i;:::-;5561:305;;5215:3;5880:22;;;5215:3;5880:22;;;;:::i;:::-;5215:3;;:::i;:::-;5187:13;;;5561:305;5718:13;;;;;;;;;;;;;;;;;;:::i;:::-;5683:49;;;;;;;830:29053;;;;;;5683:49;;;;;830:29053;5683:49;;830:29053;5683:49;;;;;;;;:::i;:::-;;;;;5171:1;5683:49;;;;;;5561:305;-1:-1:-1;5679:173:15;;830:29053;;5787:46;;;830:29053;;;5787:46;;;830:29053;;;;;;;5787:46;;;;;;;5679:173;;;-1:-1:-1;5679:173:15;;-1:-1:-1;5679:173:15;;-1:-1:-1;5679:173:15;;5880:22;5215:3;5561:305;;5683:49;;;;;;:::i;:::-;;;:::i;:::-;;;;830:29053;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;830:29053:15;-1:-1:-1;830:29053:15;;;;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;1517:1;830:29053;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17022:20;;;;:47;;;;830:29053;17018:182;;;17240:2;17213:29;;;17209:308;;830:29053;17551:10;830:29053;;;17551:10;;;;;;;;830:29053;;;;;;;;;;;;;17209:308;17294:22;17278:40;17294:22;17286:31;17294:22;;:::i;:::-;17286:31;;:::i;:::-;830:29053;;;;17278:40;17336:21;:26;17332:175;;17209:308;;;;17332:175;17455:37;830:29053;;;17455:37;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;17018:182;17154:35;830:29053;;;17154:35;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;17022:47;17046:18;;;:23;17022:47;;;830:29053;;;;;;;;;;;;;;;;;;;16170:45;830:29053;;;;;;;;;:::i;:::-;;;;16098:45;;;:::i;:::-;830:29053;;-1:-1:-1;830:29053:15;;16170:45;;;;;;830:29053;16170:45;;830:29053;16170:45;;;:::i;:::-;;;;;;;;;;830:29053;-1:-1:-1;16170:45:15;;;830:29053;;;;16233:27;;;;830:29053;;16233:27;;830:29053;16233:27;16170:45;;;;;830:29053;16170:45;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;830:29053;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;2955:10:3;830:29053:15;;;;;;;;2984:20:3;;;830:29053:15;;;;;2984:25:3;;;830:29053:15;;3163:32:3;3107:46;3205:19;830:29053:15;3034:41:3;830:29053:15;;;;;;;;;;;3034:41:3;:::i;:::-;830:29053:15;3114:15:3;830:29053:15;3107:46:3;:::i;:::-;830:29053:15;;;;;;;;;;;;;;;3163:32:3;830:29053:15;;;;;;;3205:19:3;830:29053:15;;;;;;;;;2955:10:3;;3239:39;;830:29053:15;;3239:39:3;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4091:44:3;830:29053:15;3593:20:3;3602:10;830:29053:15;;2160:8:3;830:29053:15;2160:8:3;830:29053:15;;;2160:8:3;830:29053:15;;;3593:20:3;830:29053:15;3935:14:3;3623:26;830:29053:15;;;;;;;;;;3623:26:3;3667:9;3659:42;3667:9;;;3659:42;:::i;:::-;3904:21;3719:17;;;3784:76;830:29053:15;;;;;;;;;;;;;3711:63:3;3719:21;;;3711:63;:::i;:::-;3813:15;-1:-1:-1;3792:36:3;3784:76;:::i;:::-;830:29053:15;;;;;;;3904:21:3;830:29053:15;;;;;;;3935:14:3;830:29053:15;;;;;;;;;;;;;;3602:10:3;;3964:50;;;-1:-1:-1;830:29053:15;;;;;;;;4042:39:3;;;;:::i;:::-;;4091:44;:::i;830:29053:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;8139:101;830:29053;;;;;;:::i;:::-;;;:::i;:::-;7631:2;;;:::i;:::-;7777:60;7704:34;;;;:::i;:::-;7777:60;;:::i;:::-;-1:-1:-1;7887:29:15;-1:-1:-1;;29823:52:15;;;;7887:29;:::i;:::-;29823:52;;;;7950:18;7978:25;830:29053;;;;;8013:110;;830:29053;8155:15;;;;;;830:29053;8178:15;830:29053;;;;8178:15;;830:29053;;;;;;8195:15;;830:29053;;;;;;;;;8139:101;;;;;;830:29053;8139:101;;;:::i;8013:110::-;830:29053;;;;;;;;;;;;;;;;;;;:::i;:::-;8085:27;;;;;8155:15;8085:27;;:::i;:::-;8053:59;8013:110;;;;;;;830:29053;;;;;;;;:::i;:::-;;;:::i;:::-;12436:6;;;:::i;:::-;12513:41;;;;:::i;:::-;12611:17;;:27;;830:29053;12611:17;;;12597:42;;830:29053;;12597:42;:::i;12611:27::-;12597:42;:::i;:::-;12693:17;12679:39;12693:24;:17;;830:29053;;;;;;12679:39;830:29053;;;:::i;:::-;;12950:22;12806:15;;;;;;;;:::i;:::-;12853:69;-1:-1:-1;12872:2:15;12853:21;;12872:2;;12893:14;;12877:32;12893:14;12885:23;12893:14;;:::i;12950:22::-;13022:60;;;;:::i;:::-;830:29053;;;;;;;;13177:1;13155:24;;13244:18;;;;830:29053;13276:17;;;;830:29053;13330:15;;;;;830:29053;;;;;;;;13359:15;;830:29053;;;13413:23;;;830:29053;;;;:::i;:::-;;;;13330:15;13220:227;;830:29053;;;;13220:227;;;830:29053;;;13413:23;13220:227;;830:29053;;;13244:18;13220:227;;830:29053;12611:27;13220:227;;830:29053;13462:24;;:52;;;;12853:69;13458:305;;;830:29053;13779:68;830:29053;;13779:68;;;;;;830:29053;13779:68;;;:::i;13458:305::-;13606:25;;13653:99;13606:25;;;;:::i;:::-;13574:58;830:29053;;:::i;:::-;;;;;;;;13574:58;13330:15;13574:58;;830:29053;;13653:99;;;;;;830:29053;13653:99;;;:::i;13462:52::-;13490:24;;;13462:52;;;12853:69;;;;12950:22;:::i;830:29053::-;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;830:29053:15;-1:-1:-1;830:29053:15;;;;-1:-1:-1;830:29053:15;;506:47:3;830:29053:15;;506:47:3;;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;:::o;1216:65:3:-;1263:10;;1649:206;830:29053:15;1649:206:3;1737:9;;;;:::i;:::-;830:29053:15;;1784:8:3;830:29053:15;1784:8:3;830:29053:15;;1816:32:3;830:29053:15;;;1784:8:3;830:29053:15;;;;;;;;1816:32:3;1649:206::o;830:29053:15:-;;;;;;;;;;:::o;:::-;;;:::i;1287:293:3:-;830:29053:15;;1393:8:3;830:29053:15;1393:8:3;830:29053:15;;;1393:8:3;830:29053:15;;;;;;;;;;;;;;1287:293:3;1479:30;;;830:29053:15;;1540:33:3;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;830:29053:15;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;830:29053:15;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;2336:287:12;2468:7;830:29053:15;;2468:19:12;1759:1;;2468:7;830:29053:15;;2336:287:12:o;1759:1::-;;830:29053:15;;1759:1:12;;;;;;;;;;;;830:29053:15;1759:1:12;830:29053:15;;;1759:1:12;;1738:278:15;830:29053;;1831:25;;830:29053;;1854:1;1913:35;;;;;;;;;:::i;:::-;;830:29053;;;1738:278::o;830:29053::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;830:29053:15;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;2294:1166;;2475:9;2542:20;;2578:52;2597:15;2542:20;;;830:29053;2597:15;2542:20;2597:15;;;;:::i;:::-;830:29053;2578:52;830:29053;;;2578:52;;;;;830:29053;2578:52;;;;;;:::i;:::-;;:4;-1:-1:-1;2578:4:15;:52;;-1:-1:-1;;2578:52:15;;;2294:1166;-1:-1:-1;2574:880:15;;2773:109;3293:36;3355:88;2773:109;2578:52;-1:-1:-1;2773:109:15;;3302:9;830:29053;;;;;;;2574:880;3314:15;;;830:29053;3293:36;;:::i;:::-;3355:88;;:::i;830:29053::-;;;:::i;:::-;;;2574:880;2678:26;;;;2574:880;2294:1166::o;2578:52::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2294:1166;;2475:9;2542:20;;2578:52;2597:15;2542:20;;;830:29053;2597:15;2542:20;2597:15;;;;:::i;:::-;830:29053;2578:52;830:29053;;;2578:52;;;;;830:29053;2578:52;;;;;;:::i;:::-;;:4;-1:-1:-1;2578:4:15;:52;;-1:-1:-1;;2578:52:15;;;2294:1166;-1:-1:-1;2574:880:15;;2773:109;3293:36;3355:88;2773:109;2578:52;-1:-1:-1;2773:109:15;;3302:9;830:29053;;;;;;;2574:880;3314:15;;;830:29053;3293:36;;:::i;:::-;3355:88;;:::i;830:29053::-;;;:::i;:::-;;;2574:880;2678:26;;;;;2574:880;2294:1166::o;2578:52::-;;;;;;;;;;;;;;;:::i;:::-;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;830:29053:15;;;;;;;;;;;;:::o;1392:927:0:-;1571:36;1658:45;1392:927;830:29053:15;;:::i;:::-;;1571:36:0;:::i;:::-;1658:45;;:::i;:::-;830:29053:15;;;;;;;1780:24:0;;;1776:95;;1392:927;830:29053:15;1900:32:0;;;;1962;1900;;;;830:29053:15;;1962:32:0;;830:29053:15;;2026:27:0;;1962:32;2026:27;1900:32;2026:27;;830:29053:15;;2085:27:0;;830:29053:15;;2127:25:0;;;;2123:56;;1392:927;2193:25;;;;2189:56;;1392:927;830:29053:15;1962:32:0;830:29053:15;;;;;:::i;:::-;;;;;1900:32:0;2262:50;;830:29053:15;;1962:32:0;2262:50;;830:29053:15;1392:927:0;:::o;2189:56::-;2220:25;-1:-1:-1;2189:56:0;;;2123;2154:25;-1:-1:-1;2123:56:0;;;1776:95;830:29053:15;;;;;-1:-1:-1;1776:95:0;;904:439;830:29053:15;;:::i;:::-;;;;;1115:3:0;830:29053:15;;1133:15:0;;1129:75;;904:439;830:29053:15;;;;;;:::i;:::-;;;;;;1259:8:0;830:29053:15;1286:50:0;;;830:29053:15;;;1286:50:0;;830:29053:15;904:439:0;:::o;1129:75::-;1164:29;;1129:75;;830:29053:15;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;1286:4;;;;;9319:14;830:29053;;1286:4;;;;;;;;:::i;:::-;;;;;;830:29053;;1286:4;;;;;;;;:::i;9013:1563::-;;;;;9197:9;9246:4;9216:63;9246:4;9224:10;:27;9216:63;:::i;:::-;9319:14;;9367:20;;;;830:29053;9506:9;;9564:4;9533:28;;;830:29053;;;;-1:-1:-1;9502:210:15;;10509:50;9732:62;-1:-1:-1;830:29053:15;;;9804:466;;9013:1563;10333:9;;;;1286:4;10333:9;;1286:4;;10345:15;;;830:29053;;1286:4;;;;:::i;:::-;10509:50;;:::i;9804:466::-;9928:8;830:29053;9858:52;830:29053;;;;;;;;;9858:52;:::i;:::-;9928:8;;830:29053;9928:8;9924:336;;9804:466;;;;;9924:336;1286:4;9978:41;;;;;;:::i;:::-;830:29053;;;10037:152;;9924:336;10206:39;;10213:32;9924:336;;;;;10037:152;10087:83;830:29053;10113:17;;;1286:4;830:29053;10087:83;10113:17;830:29053;;;;;;;;10148:13;;830:29053;;9367:20;830:29053;;;;;10087:83;;;:::i;:::-;;;;10037:152;;;;9502:210;9588:110;-1:-1:-1;9588:110:15;;-1:-1:-1;9588:110:15;230:263:11;;9319:14:15;230:263:11;;;;385:102;;;;;;;230:263;:::o;1066:436::-;1163:333;1286:4:15;1163:333:11;;;;;1066:436;1163:333;;;;;;;;;;;;;;;;;;;1066:436;:::o;1163:333::-;;;;;;10784:174:15;2762:31:10;2777:15;;;;;;:::i;:::-;2762:31;;:::i;:::-;2841:15;2826:31;2841:15;;;;;;:::i;2826:31::-;3217:23;3259:237;3202:39;3217:23;;;;;;:::i;3202:39::-;2777:15;830:29053:15;3259:237:10;;;2717:12;3259:237;;3134:27;;;;830:29053:15;3074:19:10;;;;830:29053:15;3016:25:10;;;;830:29053:15;2950:27:10;;;;830:29053:15;2890:19:10;;;;830:29053:15;2717:12:10;830:29053:15;2717:12:10;;;830:29053:15;1859:39:10;;830:29053:15;3259:237:10;830:29053:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3259:237:10;;;;;;;;;;;;;:::i;:::-;830:29053:15;3603:23:10;;2777:15;830:29053:15;;2717:12:10;10895:55:15;;830:29053;;;10929:4;830:29053;;;;;;;10936:13;830:29053;;;;;10895:55;;;;;;;;;830:29053;10895:55;:::i;:::-;830:29053;10885:66;;10784:174;:::o;3357:265:0:-;3439:177;;;;;;;3357:265;:::o;830:29053:15:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;;:::o;:::-;;;:::i;:::-;;;;;17240:2;830:29053;;;;17240:2;830:29053;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;830:29053:15:o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:248:3;;830:29053:15;;;:::i;:::-;;;908:8:3;830:29053:15;908:8:3;830:29053:15;;;995:27:3;830:29053:15;908:8:3;830:29053:15;;;;;;;;;995:27:3;830:29053:15;;;972:20:3;;830:29053:15;781:248:3:o;830:29053:15:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;1104:226:14:-;317:27;;830:29053:15;;1264:21:14;830:29053:15;;1264:59:14;695:42;1104:226;:::o;830:29053:15:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;:::o;16273:421::-;16454:15;;;;;;:::i;:::-;16486:23;16471:13;;;:::i;:::-;16486:23;;;;;;:::i;:::-;16421:4;;;:89;;;;16471:13;830:29053;16421:89;830:29053;16454:15;830:29053;16421:89;;;;;830:29053;16421:89;;;;;;:::i;:::-;;:4;;:89;;;;;;16273:421;-1:-1:-1;16417:271:15;;;;;:::i;:::-;;;;;;;;16273:421::o;16417:271::-;;;:::i;:::-;16522:166;;:::i;:::-;;;;16417:271;;;;16522:166;830:29053;;16471:13;;-1:-1:-1;16576:102:15;16522:166;16576:102;16638:25;830:29053;16454:15;830:29053;16638:25;;;;;;16421:89;16638:25;;;:::i;16421:89::-;;;;;;:::i;:::-;;;;21467:1099;;;21727:34;21467:1099;21727:34;:::i;:::-;830:29053;;;;;21771:111;;21891:96;;22287:43;;;:::i;:::-;830:29053;;22340:105;;22454:106;;21467:1099;:::o;22454:106::-;830:29053;;;22495:54;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;;;;5787:46;22340:105;22393:41;830:29053;;;22393:41;;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;21891:96;21932:44;830:29053;;;21932:44;;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;21771:111;21830:41;830:29053;;;21830:41;;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;21467:1099;;;;21727:34;21467:1099;21727:34;:::i;:::-;830:29053;;;;;;;;;21775:32;21771:111;;21891:96;;22287:43;;22572:523;22730:19;;22726:76;;22840:36;;;:::i;:::-;494:28:14;830:29053:15;2824:14:14;;;2841:15;830:29053:15;2841:15:14;2824:44;830:29053:15;22999:15;;;;;830:29053;;22982:32;;:68;;;;;2824:44:14;22965:85:15;;830:29053;;;22572:523;:::o;22982:68::-;23035:15;;;830:29053;;-1:-1:-1;;;22982:68:15;;;;2824:44:14;830:29053:15;2824:44:14;;;22726:76:15;22765:26;22748:1;22765:26;22748:1;22765:26;:::o;830:29053::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;23452:2125;;-1:-1:-1;23679:9:15;;23728:17;;;23783:7;;;;;:::i;:::-;23824:21;;;:::i;:::-;23801:20;;;830:29053;24185:70;830:29053;24031:26;;;830:29053;24060:28;;;830:29053;24031:57;24091:20;;;830:29053;24031:80;24148:27;;;830:29053;24126:19;;;;830:29053;24031:114;:144;24193:33;;24185:70;:::i;:::-;24346:28;;;:::i;:::-;24451:71;;;;;:::i;:::-;24384:138;;24537:55;24538:54;830:29053;;;;;;;;23801:20;24578:13;;830:29053;24538:54;;:::i;24537:55::-;24533:140;;;29823:52;;;29775:106;24533:140;830:29053;;24908:17;24060:28;24908:17;;830:29053;;;;;;;24904:238;;23452:2125;25202:9;;1286:4;;24908:17;25230:27;;830:29053;25230:37;25226:134;;24031:26;25373:17;25535:25;25373:17;24091:20;25373:17;;830:29053;24060:28;25422:23;;830:29053;25523:9;1286:4;;25535:25;;830:29053;;25493:18;;830:29053;23452:2125::o;25226:134::-;24091:20;830:29053;25294:51;;;;;;;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;24904:238;24992:139;;;;;;;;;;;:::i;:::-;24955:176;;24904:238;;;;24533:140;24091:20;830:29053;24615:47;;;;;;;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;23452:2125;;;;830:29053;23679:9;;23728:17;;23783:7;;;;:::i;:::-;23824:21;;;:::i;:::-;23801:20;;;830:29053;24185:70;830:29053;24031:26;;;830:29053;24060:28;;;830:29053;24031:57;24091:20;;;830:29053;24031:80;24148:27;;;830:29053;24126:19;;;;830:29053;24031:114;:144;24193:33;;24185:70;:::i;:::-;24346:28;;;:::i;:::-;24451:71;;;;;;:::i;:::-;24384:138;;24537:55;24538:54;830:29053;;;;;;;;23801:20;24578:13;;830:29053;24538:54;;:::i;24537:55::-;24533:140;;;29823:52;;;29775:106;24533:140;830:29053;;24908:17;24060:28;24908:17;;830:29053;;;;;;;24904:238;;23452:2125;25202:9;;1286:4;;24908:17;25230:27;;830:29053;25230:37;25226:134;;-1:-1:-1;24091:20:15;25373:17;;830:29053;24060:28;25422:23;;830:29053;24031:26;;25373:17;25535:25;;25523:9;1286:4;;25535:25;;830:29053;;25493:18;;830:29053;23452:2125::o;25226:134::-;24091:20;830:29053;;25294:51;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;24904:238;24992:139;;;;;;;;;;;;:::i;:::-;24955:176;;24904:238;;;;24533:140;24615:47;830:29053;24091:20;830:29053;24615:47;;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;1008:234:1;830:29053:15;;-1:-1:-1;830:29053:15;1194:19:1;830:29053:15;;;1194:32:1;830:29053:15;1138:2:1;830:29053:15;1138:2:1;-1:-1:-1;830:29053:15;;;;;;;;;;;;;1194:32:1;830:29053:15;;;1194:34:1;;;;:::i;:::-;830:29053:15;;;1194:41:1;1008:234;:::o;830:29053:15:-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;11053:831;11582:23;11053:831;11166:30;11183:13;;;:::i;:::-;830:29053;;;;;11166:30;11222:12;;;830:29053;11222:12;11206:13;;830:29053;11267:19;;;830:29053;11244:20;;;830:29053;11327:27;;;830:29053;11296:28;;;830:29053;11393:25;;;830:29053;11267:19;11364:26;;830:29053;11451:19;;;830:29053;11393:25;11428:20;;830:29053;11511:27;;;830:29053;11451:19;11480:28;;830:29053;11582:23;;;;;:::i;:::-;11619:27;;;;;11767:39;11775:30;11783:21;11670:29;11327:27;11670:29;11662:71;11697:2;11747:59;11670:29;;;;11662:71;:::i;:::-;11783:21;:::i;11767:39::-;830:29053;;11747:17;;830:29053;;11615:263;11837:17;;11327:27;830:29053;11837:17;;830:29053;11053:831::o;13860:579::-;14194:17;;;830:29053;;;14194:31;:39;;14402:20;14228:1;14194:39;830:29053;14269:20;;;830:29053;;;14292:28;;;830:29053;;;14329:26;;;830:29053;;14402:20;;830:29053;;13860:579;:::o;14194:39::-;14402:20;14232:1;14194:39;;830:29053;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;17774:1772::-;;-1:-1:-1;18005:22:15;-1:-1:-1;18080:9:15;;18133:14;18594:140;18682:17;18133:14;;830:29053;;;;;;;;;18245:11;;;;;;;;:::i;:::-;;;;:::i;:::-;18291:17;;;830:29053;;;18271:37;;29823:52;;;29775:106;18271:37;18350:31;;830:29053;;;;;18399:23;18395:182;;;;17774:1772;18631:28;;830:29053;18682:17;;;1286:4;18245:11;830:29053;;18594:140;;830:29053;;;;;;;1286:4;18594:140;;;;:::i;:::-;;830:29053;;;18594:140;;;;;;;17774:1772;-1:-1:-1;18590:480:15;;;;;;;:::i;:::-;;;;;;;;;;19083:378;;18590:480;19520:9;;;1286:4;;17774:1772;:::o;19083:378::-;19163:16;;830:29053;;;;;;;;;;;;19163:16;19197:36;830:29053;;;;;;;19197:36;19255:25;;;19251:123;;19391:55;1286:4;830:29053;1286:4;;830:29053;;;;;;;;;;;19391:55;19083:378;;;;19251:123;18245:11;830:29053;19311:44;;;;;18594:140;19311:44;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;18590:480;18245:11;830:29053;19012:43;;;;;18594:140;19012:43;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;18590:480;18835:145;;:::i;:::-;;;;;18590:480;;;18835:145;18900:65;18835:145;18918:46;18835:145;18918:46;;:::i;:::-;18245:11;830:29053;18900:65;;;;;;18594:140;18900:65;;;:::i;18590:480::-;18787:32;-1:-1:-1;18590:480:15;;-1:-1:-1;18590:480:15;18594:140;;;;;18682:17;18594:140;;;;;;;;;:::i;:::-;;;;;18395:182;1178:17:3;;1171:32;1178:25;:17;;830:29053:15;;;;;;;;;;;;1178:17:3;830:29053:15;;;;;1171:32:3;18513:21:15;;;;;;:49;;18631:28;18513:49;;18395:182;;;;;;18513:49;18631:28;1286:4;;;;18513:49;;17774:1772;;;830:29053;18005:22;830:29053;18080:9;;18133:14;18594:140;18682:17;18133:14;;830:29053;;;;;;;;;18245:11;;;;;;;;:::i;:::-;;;;;:::i;18594:140::-;;830:29053;;;18594:140;;;;;;;17774:1772;-1:-1:-1;18590:480:15;;;;;;;:::i;:::-;;;;;;;;;;19083:378;;18590:480;19520:9;;;;1286:4;;17774:1772;:::o;19083:378::-;19163:16;;830:29053;;;;;;;;;;;;19163:16;830:29053;19197:36;830:29053;;;;;;;19197:36;19255:25;;;;19251:123;;-1:-1:-1;830:29053:15;;;;1286:4;;;830:29053;;;;;19083:378;;;;;19251:123;18245:11;830:29053;;19311:44;;;18594:140;19311:44;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;18590:480;19012:43;830:29053;18245:11;830:29053;19012:43;;;;;;18594:140;19012:43;;830:29053;;;;;;;;;;;;;;;;;;;;;;18590:480;18835:145;;:::i;:::-;;;;;18590:480;;;18835:145;;;18918:46;18835:145;18918:46;;:::i;:::-;830:29053;18900:65;18245:11;830:29053;18900:65;;;;;;18594:140;18900:65;;;:::i;18590:480::-;18787:32;-1:-1:-1;18590:480:15;;-1:-1:-1;18590:480:15;18594:140;;;;;18682:17;18594:140;;;;;;;;;:::i;:::-;;;;;14492:1073;;;14614:20;14610:949;;14492:1073;;;:::o;14610:949::-;14667:14;;830:29053;;;14706:18;;;14702:88;;-1:-1:-1;15003:87:15;:35;:22;14926:45;;:::i;15003:35::-;15044;:14;;:35;830:29053;;;15003:87;;;;830:29053;15003:87;;;;;;;;;;:::i;:::-;;;;;;;;;14610:949;-1:-1:-1;15003:87:15;;;14610:949;830:29053;;;;;15109:21;;;15105:82;;830:29053;15205:17;;;15201:83;;15302:19;:24;15298:90;;15428:23;15436:14;15471:77;15436:14;15420:32;15436:14;;:::i;15420:32::-;15003:87;15487:17;;;1286:4;15523:14;;:24;;830:29053;;;;;;;;;;;;;;;;;;;;;;15471:77;14492:1073::o;15298:90::-;830:29053;;15335:53;;;;;15003:87;15335:53;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;15201:83;830:29053;;15231:53;;;;;15003:87;15231:53;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;15105:82;830:29053;;15139:48;;;;;15003:87;15139:48;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;15003:87;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;14702:88;830:29053;;14738:52;;;;;;;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;14492:1073;;;;14614:20;14610:949;;14492:1073;;;;;:::o;14610:949::-;14667:14;;830:29053;;;14706:18;;;14702:88;;14633:1;15003:87;:35;:22;14926:45;;:::i;15003:35::-;15044;:14;;:35;830:29053;;;15003:87;;;;830:29053;15003:87;;;;;;;;;;:::i;:::-;;;;;;;;;14610:949;14633:1;15003:87;;;14610:949;830:29053;;;;;15109:21;;;15105:82;;830:29053;15205:17;;;15201:83;;15302:19;:24;15298:90;;15436:14;15428:23;15436:14;15471:77;15436:14;15420:32;15436:14;;:::i;15420:32::-;15003:87;15487:17;;;1286:4;15523:14;;:24;;830:29053;;;;;;;;;;;;;;;;;;;;;;15471:77;14610:949;;;;;;15298:90;830:29053;;;15335:53;;;15003:87;15335:53;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;15201:83;15231:53;830:29053;;;15231:53;;;;;;15003:87;15231:53;;830:29053;;;;;;;;;;;;;;;;;;;;;;15105:82;15139:48;830:29053;;;15139:48;;;;;;15003:87;15139:48;;830:29053;;;;;;;;;;;;;;;;;;;;;;15003:87;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;14702:88;830:29053;;;14738:52;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;830:29053;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19804:1555::-;;;;830:29053;20067:22;-1:-1:-1;20067:22:15;-1:-1:-1;20155:14:15;;;20214:28;830:29053;20477:17;20214:28;;;830:29053;20264:57;20256:101;20264:57;;;20256:101;:::i;:::-;20477:17;830:29053;;;;;;20544:19;;;830:29053;;;;;;;;;;;;20544:19;830:29053;20577:39;830:29053;;;;;;;20577:39;20634:25;;;;20630:122;;830:29053;20901:17;1286:4;;;20765:58;1286:4;;830:29053;1286:4;20841:95;1286:4;;830:29053;;;;;;;;;;;20765:58;20901:17;1286:4;830:29053;;;20841:95;;;;;;;830:29053;20841:95;;;;;;:::i;:::-;;830:29053;;1286:4;;20841:95;;;;-1:-1:-1;;20841:95:15;;;19804:1555;-1:-1:-1;20837:506:15;;;;;;;;:::i;:::-;;;;;;;;;19804:1555::o;20837:506::-;830:29053;;21285:43;;;;;20841:95;21285:43;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;20837:506;21108:145;;:::i;:::-;;;;;20837:506;;;21108:145;21173:65;21108:145;21191:46;21108:145;21191:46;;:::i;20837:506::-;21024:18;-1:-1:-1;21024:18:15;-1:-1:-1;;19804:1555:15:o;20841:95::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;20630:122;830:29053;;20686:51;;;;;;;;830:29053;;-1:-1:-1;830:29053:15;;;;;;;;;;;;;;;;;;;;19804:1555;;;;;;;830:29053;20067:22;830:29053;20067:22;830:29053;20155:14;;;20214:28;830:29053;20477:17;20214:28;;;830:29053;20264:57;20256:101;20264:57;;;20256:101;:::i;830:29053::-;20544:19;;;830:29053;;;;;;;;;;;;20544:19;20577:39;830:29053;;;;;;;20577:39;20634:25;;;20630:122;;1286:4;830:29053;20901:17;1286:4;;;;;20765:58;1286:4;;830:29053;1286:4;20841:95;1286:4;;;;830:29053;;;;;;;;;;;20841:95;;830:29053;;1286:4;;20841:95;;;;830:29053;;20841:95;;;19804:1555;-1:-1:-1;20837:506:15;;;;;;;;:::i;:::-;;;;;;;;;;19804:1555::o;20837:506::-;830:29053;;;21285:43;;;20841:95;21285:43;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;20837:506;21108:145;;:::i;:::-;;;;;20837:506;;;21108:145;21191:46;21108:145;;21191:46;;:::i;20837:506::-;21024:18;-1:-1:-1;21024:18:15;-1:-1:-1;;;19804:1555:15:o;20841:95::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;20630:122;20686:51;830:29053;;;20686:51;;;;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;830:29053:15;;;:::o;:::-;;;;;;;;;;;;;;;;;3378:36;830:29053;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;26221:2156::-;;;;;26469:9;26512:21;-1:-1:-1;26577:14:15;;;26624:26;;;;:::i;:::-;26685:17;;;;830:29053;;;;;;;;;;;;;;;;26720:23;830:29053;;;;;;;;;;;;;26716:1039;;27790:9;1286:4;;830:29053;;;;27867:14;;;;830:29053;;;;27867:30;27863:129;;28195:152;830:29053;28099:6;28231:17;830:29053;;28195:152;830:29053;;1286:4;28099:6;;:::i;:::-;28231:17;1286:4;830:29053;;28231:17;830:29053;;;;;;;;;;;;;;;;28285:13;;830:29053;;;27867:14;830:29053;;;;;;;28195:152;;830:29053;;;;;;;;;;;;;;;;;;;;;;;;;28195:152;;;;26221:2156::o;27863:129::-;27867:14;830:29053;27924:53;;;;;;;;830:29053;;9319:14;830:29053;;;;;;;;;;;;;;;;;;;;26716:1039;26832:25;;830:29053;;26875:866;;26716:1039;;;;;26875:866;27310:28;;;830:29053;-1:-1:-1;;;26979:744:15;;27276:147;;;;;830:29053;;;;;27276:147;830:29053;;;27276:147;;;;;;830:29053;27276:147;;830:29053;;27276:147;;;;;:::i;:::-;;;;;;;;26875:866;-1:-1:-1;27272:429:15;;26983:44;27272:429;;:::i;:::-;;;;;;;;;26875:866;;;;27272:429;830:29053;;27635:39;;;;;27276:147;27635:39;;830:29053;;9319:14;830:29053;;;;;;;;;;;;;;;;;;;;27272:429;27427:164;;:::i;:::-;;;;27272:429;;;27427:164;27516:47;27498:66;27427:164;27516:47;:::i;27272:429::-;;;27276:147;;;;;;:::i;:::-;;;;;830:29053;;;26221:2156;;;;26469:9;26512:21;-1:-1:-1;26577:14:15;;;26624:26;;;;:::i;:::-;26685:17;;;;830:29053;;;;;;;;;;;;;;;;26720:23;830:29053;;;;;;;;;;;;;26716:1039;;27790:9;1286:4;;830:29053;;;;27867:14;;;;830:29053;;;;27867:30;27863:129;;830:29053;28195:152;830:29053;;;28099:6;28195:152;830:29053;;28231:17;830:29053;;1286:4;28099:6;;:::i;27863:129::-;27867:14;830:29053;;27924:53;;;;;;830:29053;;;;;;;;;;;;;;;;;;;;5787:46;26716:1039;26832:25;;830:29053;;26875:866;;26716:1039;;;;;26875:866;27310:28;;;830:29053;-1:-1:-1;;;26979:744:15;;27276:147;;;;;830:29053;;;;;27276:147;830:29053;;;27276:147;;;;;;830:29053;27276:147;;830:29053;;27276:147;;;;;:::i;:::-;;;;;;;;26875:866;-1:-1:-1;27272:429:15;;26983:44;27272:429;;:::i;:::-;;;;;;;;;26875:866;;;;27272:429;27635:39;830:29053;;;27635:39;;;;;;27276:147;27635:39;;830:29053;;;;;;;;;;;;;;;;;;;;;;27272:429;27427:164;;:::i;:::-;;;;27272:429;;;27427:164;27516:47;27427:164;;27516:47;:::i;27272:429::-;;;27276:147;;;;;;:::i;:::-;;;;;830:29053;;;26221:2156;;;;;26469:9;26512:21;26577:14;;26624:26;;;;:::i;:::-;26685:17;;;;830:29053;;;;;;;;;;;;;;;26720:23;830:29053;;;;;;;;;;;;;26716:1039;;27790:9;1286:4;;830:29053;;;;27867:14;;;;830:29053;;;;27867:30;27863:129;;28195:152;830:29053;28099:6;28231:17;830:29053;;28195:152;830:29053;;1286:4;28099:6;;:::i;:::-;830:29053;;;:::i;:::-;28231:17;1286:4;830:29053;;28231:17;830:29053;;;;;;;;;28285:13;;830:29053;27867:14;830:29053;;;;;28135:41;;830:29053;;;;;;;;;;;;;;;;;;;;;;;;;;;;26716:1039;26832:25;;830:29053;;26875:866;;26716:1039;;;;;26875:866;830:29053;;;;;;:::i;:::-;26991:36;26983:44;;26991:36;;27089:28;;;830:29053;27055:93;;;;;;830:29053;9319:14;830:29053;;;;;27055:93;;;;;;;830:29053;27055:93;;;;;;:::i;:::-;;;;;;;;26979:744;27055:93;;26979:744;;;26875:866;;;;27055:93;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;26979:744;27310:28;;;830:29053;27276:147;;;;;;830:29053;9319:14;830:29053;;;;;27276:147;;;;;;;830:29053;27276:147;;;;;;:::i;:::-;;;;;;;;26979:744;-1:-1:-1;27272:429:15;;;;;:::i;:::-;;;;;;;26979:744;27272:429;830:29053;;27635:39;;;;;27276:147;27635:39;;830:29053;;9319:14;830:29053;;;;;;;;;;;;;;;;;;;;27272:429;27427:164;;:::i;:::-;;;;27272:429;;;;26979:744;;27276:147;;;;;;:::i;:::-;;;;28545:607;28755:28;28690:20;;;830:29053;28755:28;;830:29053;28801:36;;;28797:173;;405:35:14;830:29053:15;2492:12:14;;;2507:13;;2492:38;;830:29053:15;29242:5;;;;;;:13;28545:607;:::o;29242:13::-;;;28545:607;:::o;2492:38:14:-;;;;28797:173:15;28936:19;;:::o", "linkReferences": {} }, "methodIdentifiers": { "SIG_VALIDATION_FAILED()": "8f41ec5a", "_validateSenderAndPaymaster(bytes,address,bytes)": "957122ab", "addStake(uint32)": "0396cb60", "balanceOf(address)": "70a08231", "depositTo(address)": "b760faf9", "deposits(address)": "fc7e286d", "getDepositInfo(address)": "5287ce12", "getNonce(address,uint192)": "35567e1a", "getSenderAddress(bytes)": "9b249f69", "getUserOpHash((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": "a6193531", "handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes)[],address)": "4b1d7cf5", "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)": "1fad948c", "incrementNonce(uint192)": "0bd28e3b", "innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes)": "1d732756", "nonceSequenceNumber(address,uint192)": "1b2e01b8", "simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)": "d6383f94", "simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": "ee219423", "unlockStake()": "bb9fe6bf", "withdrawStake(address)": "c23a5cea", "withdrawTo(address,uint256)": "205c2878" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"name\":\"ExecutionResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"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\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"sigFailed\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"}],\"name\":\"ValidationResult\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"sigFailed\",\"type\":\"bool\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"name\":\"ValidationResultWithAggregation\",\"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\":\"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\"},{\"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\":[],\"name\":\"SIG_VALIDATION_FAILED\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"}],\"name\":\"_validateSenderAndPaymaster\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"deposit\",\"type\":\"uint112\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint112\",\"name\":\"deposit\",\"type\":\"uint112\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"}],\"name\":\"getSenderAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"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\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"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\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"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\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"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 EntryPointFilterOpsOverride06.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 EntryPointFilterOpsOverride06.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\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"name\":\"simulateHandleOp\",\"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\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- index into the array of ops to the failed one (in simulateValidation, this is always zero)\",\"reason\":\"- revert reason The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity. Should be caught in off-chain handleOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts.\"}}],\"ValidationResult((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256))\":[{\"params\":{\"factoryInfo\":\"stake information about the factory (if any)\",\"paymasterInfo\":\"stake information about the paymaster (if any)\",\"returnInfo\":\"gas and time-range returned values\",\"senderInfo\":\"stake information about the sender\"}}],\"ValidationResultWithAggregation((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256),(address,(uint256,uint256)))\":[{\"params\":{\"aggregatorInfo\":\"signature aggregation info (if the account requires signature aggregator) bundler MUST use it to verify the signature, or reject the UserOperation\",\"factoryInfo\":\"stake information about the factory (if any)\",\"paymasterInfo\":\"stake information about the paymaster (if any)\",\"returnInfo\":\"gas and time-range returned values\",\"senderInfo\":\"stake information about the sender\"}}]},\"kind\":\"dev\",\"methods\":{\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"the new lock duration before the deposit can be withdrawn.\"}},\"getDepositInfo(address)\":{\"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.\"}},\"handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,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,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)\":{\"params\":{\"beneficiary\":\"the address to receive the fees\",\"ops\":\"the operations to execute\"}},\"simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)\":{\"params\":{\"op\":\"the UserOperation to simulate\",\"target\":\"if nonzero, a target address to call after userop simulation. If called, the targetSuccess and targetResult are set to the return from that call.\",\"targetCallData\":\"callData to pass to target address\"}},\"simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\":{\"details\":\"this method always revert. Successful result is ValidationResult error. other errors are failures.The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.\",\"params\":{\"userOp\":\"the user operation to validate.\"}},\"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\":{\"ExecutionResult(uint256,uint256,uint48,uint48,bool,bytes)\":[{\"notice\":\"return value of simulateHandleOp\"}],\"FailedOp(uint256,string)\":[{\"notice\":\"a custom revert error of handleOps, to identify the offending op. NOTE: if simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"SenderAddressResult(address)\":[{\"notice\":\"return value of getSenderAddress\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"error case when a signature aggregator fails to verify the aggregated signature it had created.\"}],\"ValidationResult((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256))\":[{\"notice\":\"Successful result from simulateValidation.\"}],\"ValidationResultWithAggregation((uint256,uint256,bool,uint48,uint48,bytes),(uint256,uint256),(uint256,uint256),(uint256,uint256),(address,(uint256,uint256)))\":[{\"notice\":\"Successful result from simulateValidation, if the account returns a signature aggregator\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"an event emitted by handleOps(), before starting the execution loop. any event emitted before this event, is part of the validation.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"signature aggregator used by the following UserOperationEvents within this bundle.\"},\"StakeLocked(address,uint256,uint256)\":{\"notice\":\"Emitted when stake or unstake delay are modified\"},\"StakeUnlocked(address,uint256)\":{\"notice\":\"Emitted once a stake is scheduled for withdrawal\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length\"}},\"kind\":\"user\",\"methods\":{\"SIG_VALIDATION_FAILED()\":{\"notice\":\"for simulation purposes, validateUserOp (and validatePaymasterUserOp) must return this value in case of signature failure, instead of revert.\"},\"_validateSenderAndPaymaster(bytes,address,bytes)\":{\"notice\":\"Called only during simulation. This function always reverts to prevent warm/cold storage differentiation in simulation vs execution.\"},\"addStake(uint32)\":{\"notice\":\"add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"return the deposit (for gas payment) of the account\"},\"depositTo(address)\":{\"notice\":\"add to the deposit of the given account\"},\"deposits(address)\":{\"notice\":\"maps paymaster to their deposits and stakes\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getSenderAddress(bytes)\":{\"notice\":\"Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. this method always revert, and returns the address in SenderAddressResult error\"},\"getUserOpHash((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\":{\"notice\":\"generate a request Id - unique identifier for this request. the request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid.\"},\"handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes)[],address)\":{\"notice\":\"Execute a batch of UserOperation with Aggregators\"},\"handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,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,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.\"},\"simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)\":{\"notice\":\"simulate full execution of a UserOperation (including both validation and target execution) this method will always revert with \\\"ExecutionResult\\\". it performs full validation of the UserOperation, but ignores signature error. an optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted) Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events.\"},\"simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\":{\"notice\":\"Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp.\"},\"unlockStake()\":{\"notice\":\"attempt to unlock the stake. the value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"withdraw from the (unlocked) stake. must first call unlockStake and wait for the unstakeDelay to pass\"},\"withdrawTo(address,uint256)\":{\"notice\":\"withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v06/EntryPointFilterOpsOverride.sol\":\"EntryPointFilterOpsOverride06\"},\"evmVersion\":\"london\",\"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-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/core/NonceManager.sol\":{\"keccak256\":\"0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7\",\"dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1\"]},\"lib/account-abstraction-v6/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612\",\"dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x\"]},\"lib/account-abstraction-v6/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a\",\"dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4\",\"dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8\",\"dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v6/contracts/utils/Exec.sol\":{\"keccak256\":\"0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe\",\"dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66\",\"dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf\"]},\"src/v06/EntryPointFilterOpsOverride.sol\":{\"keccak256\":\"0xbe780ce014e391fd3049e45f803c79a6813f833708b9db1cc5cdab968c1eddc2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://4d34db85c5be26d9382cc8ee80c23d2824a344319827aeaab552b9a9e7395153\",\"dweb:/ipfs/QmYHEJ9iaAhF6WWXNSQv4bAN9kS1DvwbB4BWUmCswnA9Bh\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" }, "language": "Solidity", "output": { "abi": [{ "inputs": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "paid", "type": "uint256" }, { "internalType": "uint48", "name": "validAfter", "type": "uint48" }, { "internalType": "uint48", "name": "validUntil", "type": "uint48" }, { "internalType": "bool", "name": "targetSuccess", "type": "bool" }, { "internalType": "bytes", "name": "targetResult", "type": "bytes" }], "type": "error", "name": "ExecutionResult" }, { "inputs": [{ "internalType": "uint256", "name": "opIndex", "type": "uint256" }, { "internalType": "string", "name": "reason", "type": "string" }], "type": "error", "name": "FailedOp" }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }], "type": "error", "name": "SenderAddressResult" }, { "inputs": [{ "internalType": "address", "name": "aggregator", "type": "address" }], "type": "error", "name": "SignatureValidationFailed" }, { "inputs": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "bool", "name": "sigFailed", "type": "bool" }, { "internalType": "uint48", "name": "validAfter", "type": "uint48" }, { "internalType": "uint48", "name": "validUntil", "type": "uint48" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }], "type": "error", "name": "ValidationResult" }, { "inputs": [{ "internalType": "struct IEntryPoint.ReturnInfo", "name": "returnInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "preOpGas", "type": "uint256" }, { "internalType": "uint256", "name": "prefund", "type": "uint256" }, { "internalType": "bool", "name": "sigFailed", "type": "bool" }, { "internalType": "uint48", "name": "validAfter", "type": "uint48" }, { "internalType": "uint48", "name": "validUntil", "type": "uint48" }, { "internalType": "bytes", "name": "paymasterContext", "type": "bytes" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "senderInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "factoryInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IStakeManager.StakeInfo", "name": "paymasterInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }, { "internalType": "struct IEntryPoint.AggregatorStakeInfo", "name": "aggregatorInfo", "type": "tuple", "components": [{ "internalType": "address", "name": "aggregator", "type": "address" }, { "internalType": "struct IStakeManager.StakeInfo", "name": "stakeInfo", "type": "tuple", "components": [{ "internalType": "uint256", "name": "stake", "type": "uint256" }, { "internalType": "uint256", "name": "unstakeDelaySec", "type": "uint256" }] }] }], "type": "error", "name": "ValidationResultWithAggregation" }, { "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": "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 }, { "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": [], "stateMutability": "view", "type": "function", "name": "SIG_VALIDATION_FAILED", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }], "stateMutability": "view", "type": "function", "name": "_validateSenderAndPaymaster" }, { "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": "account", "type": "address" }], "stateMutability": "payable", "type": "function", "name": "depositTo" }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function", "name": "deposits", "outputs": [{ "internalType": "uint112", "name": "deposit", "type": "uint112" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }, { "inputs": [{ "internalType": "address", "name": "account", "type": "address" }], "stateMutability": "view", "type": "function", "name": "getDepositInfo", "outputs": [{ "internalType": "struct IStakeManager.DepositInfo", "name": "info", "type": "tuple", "components": [{ "internalType": "uint112", "name": "deposit", "type": "uint112" }, { "internalType": "bool", "name": "staked", "type": "bool" }, { "internalType": "uint112", "name": "stake", "type": "uint112" }, { "internalType": "uint32", "name": "unstakeDelaySec", "type": "uint32" }, { "internalType": "uint48", "name": "withdrawTime", "type": "uint48" }] }] }, { "inputs": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "view", "type": "function", "name": "getNonce", "outputs": [{ "internalType": "uint256", "name": "nonce", "type": "uint256" }] }, { "inputs": [{ "internalType": "bytes", "name": "initCode", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "getSenderAddress" }, { "inputs": [{ "internalType": "struct UserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "view", "type": "function", "name": "getUserOpHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }] }, { "inputs": [{ "internalType": "struct IEntryPoint.UserOpsPerAggregator[]", "name": "opsPerAggregator", "type": "tuple[]", "components": [{ "internalType": "struct UserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "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 UserOperation[]", "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": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "handleOps" }, { "inputs": [{ "internalType": "uint192", "name": "key", "type": "uint192" }], "stateMutability": "nonpayable", "type": "function", "name": "incrementNonce" }, { "inputs": [{ "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "struct EntryPointFilterOpsOverride06.UserOpInfo", "name": "opInfo", "type": "tuple", "components": [{ "internalType": "struct EntryPointFilterOpsOverride06.MemoryUserOp", "name": "mUserOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "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": [{ "internalType": "struct UserOperation", "name": "op", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "targetCallData", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateHandleOp" }, { "inputs": [{ "internalType": "struct UserOperation", "name": "userOp", "type": "tuple", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }], "stateMutability": "nonpayable", "type": "function", "name": "simulateValidation" }, { "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." } }, "getDepositInfo(address)": { "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." } }, "handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,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,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)": { "params": { "beneficiary": "the address to receive the fees", "ops": "the operations to execute" } }, "simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)": { "params": { "op": "the UserOperation to simulate", "target": "if nonzero, a target address to call after userop simulation. If called, the targetSuccess and targetResult are set to the return from that call.", "targetCallData": "callData to pass to target address" } }, "simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": { "details": "this method always revert. Successful result is ValidationResult error. other errors are failures.The node must also verify it doesn't use banned opcodes, and that it doesn't reference storage outside the account's data.", "params": { "userOp": "the user operation to validate." } }, "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": { "SIG_VALIDATION_FAILED()": { "notice": "for simulation purposes, validateUserOp (and validatePaymasterUserOp) must return this value in case of signature failure, instead of revert." }, "_validateSenderAndPaymaster(bytes,address,bytes)": { "notice": "Called only during simulation. This function always reverts to prevent warm/cold storage differentiation in simulation vs execution." }, "addStake(uint32)": { "notice": "add to the account's stake - amount and delay any pending unstake is first cancelled." }, "balanceOf(address)": { "notice": "return the deposit (for gas payment) of the account" }, "depositTo(address)": { "notice": "add to the deposit of the given account" }, "deposits(address)": { "notice": "maps paymaster to their deposits and stakes" }, "getNonce(address,uint192)": { "notice": "Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order." }, "getSenderAddress(bytes)": { "notice": "Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. this method always revert, and returns the address in SenderAddressResult error" }, "getUserOpHash((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": { "notice": "generate a request Id - unique identifier for this request. the request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid." }, "handleAggregatedOps(((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes)[],address)": { "notice": "Execute a batch of UserOperation with Aggregators" }, "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,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,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." }, "simulateHandleOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,bytes)": { "notice": "simulate full execution of a UserOperation (including both validation and target execution) this method will always revert with \"ExecutionResult\". it performs full validation of the UserOperation, but ignores signature error. an optional target address is called after the userop succeeds, and its value is returned (before the entire call is reverted) Note that in order to collect the the success/failure of the target call, it must be executed with trace enabled to track the emitted events." }, "simulateValidation((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes))": { "notice": "Simulate a call to account.validateUserOp and paymaster.validatePaymasterUserOp." }, "unlockStake()": { "notice": "attempt to unlock the stake. the value can be withdrawn (using withdrawStake) after the unstake delay." }, "withdrawStake(address)": { "notice": "withdraw from the (unlocked) stake. must first call unlockStake and wait for the unstakeDelay to pass" }, "withdrawTo(address,uint256)": { "notice": "withdraw from the deposit." } }, "version": 1 } }, "settings": { "remappings": ["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "@account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "@account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "@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/v06/EntryPointFilterOpsOverride.sol": "EntryPointFilterOpsOverride06" }, "evmVersion": "london", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v6/contracts/core/Helpers.sol": { "keccak256": "0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a", "urls": ["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746", "dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/NonceManager.sol": { "keccak256": "0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25", "urls": ["bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7", "dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/SenderCreator.sol": { "keccak256": "0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2", "urls": ["bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612", "dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/core/StakeManager.sol": { "keccak256": "0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a", "urls": ["bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a", "dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/IAccount.sol": { "keccak256": "0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418", "urls": ["bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4", "dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol": { "keccak256": "0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a", "urls": ["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b", "dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8", "urls": ["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf", "dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol": { "keccak256": "0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12", "urls": ["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2", "dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol": { "keccak256": "0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456", "urls": ["bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8", "dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f", "urls": ["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3", "dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol": { "keccak256": "0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c", "urls": ["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c", "dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/utils/Exec.sol": { "keccak256": "0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1", "urls": ["bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe", "dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy"], "license": "LGPL-3.0-only" }, "lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol": { "keccak256": "0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc", "urls": ["bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010", "dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u"], "license": "MIT" }, "lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol": { "keccak256": "0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d", "urls": ["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4", "dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"], "license": "MIT" }, "src/SimulationOverrideHelper.sol": { "keccak256": "0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774", "urls": ["bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66", "dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf"], "license": "MIT" }, "src/v06/EntryPointFilterOpsOverride.sol": { "keccak256": "0xbe780ce014e391fd3049e45f803c79a6813f833708b9db1cc5cdab968c1eddc2", "urls": ["bzz-raw://4d34db85c5be26d9382cc8ee80c23d2824a344319827aeaab552b9a9e7395153", "dweb:/ipfs/QmYHEJ9iaAhF6WWXNSQv4bAN9kS1DvwbB4BWUmCswnA9Bh"], "license": "GPL-3.0" } }, "version": 1 }, "id": 15 }