@elizaos/autonomous 2.0.0-alpha.21 → 2.0.0-alpha.23

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 (1077) hide show
  1. package/package.json +14 -6
  2. package/test/agent-export.e2e.test.ts +376 -0
  3. package/test/agent-orchestration.e2e.test.ts +1568 -0
  4. package/test/agent-restart-recovery.e2e.test.ts +149 -0
  5. package/test/agent-runtime.e2e.test.ts +1515 -0
  6. package/test/anvil-contracts.e2e.test.ts +533 -0
  7. package/test/anvil-helper.ts +285 -0
  8. package/test/api-auth-live.e2e.test.ts +519 -0
  9. package/test/api-auth.e2e.test.ts +1039 -0
  10. package/test/api-server.e2e.test.ts +4582 -0
  11. package/test/apps-e2e.e2e.test.ts +1108 -0
  12. package/test/auth-modules.e2e.test.ts +71 -0
  13. package/test/cloud-auth-state.e2e.test.ts +145 -0
  14. package/test/cloud-persistence.e2e.test.ts +260 -0
  15. package/test/cloud-providers.e2e.test.ts +781 -0
  16. package/test/config-hot-reload.e2e.test.ts +131 -0
  17. package/test/contract-deployer.ts +151 -0
  18. package/test/contracts/MockMiladyAgentRegistry.sol +216 -0
  19. package/test/contracts/MockMiladyCollection.sol +195 -0
  20. package/test/contracts/cache/solidity-files-cache.json +1 -0
  21. package/test/contracts/foundry.toml +14 -0
  22. package/test/contracts/lib/openzeppelin-contracts/.changeset/config.json +12 -0
  23. package/test/contracts/lib/openzeppelin-contracts/.codecov.yml +12 -0
  24. package/test/contracts/lib/openzeppelin-contracts/.editorconfig +21 -0
  25. package/test/contracts/lib/openzeppelin-contracts/.eslintrc +20 -0
  26. package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
  27. package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
  28. package/test/contracts/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
  29. package/test/contracts/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
  30. package/test/contracts/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +49 -0
  31. package/test/contracts/lib/openzeppelin-contracts/.github/actions/setup/action.yml +19 -0
  32. package/test/contracts/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +55 -0
  33. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
  34. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
  35. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/checks.yml +111 -0
  36. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
  37. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +68 -0
  38. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +218 -0
  39. package/test/contracts/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +30 -0
  40. package/test/contracts/lib/openzeppelin-contracts/.gitmodules +7 -0
  41. package/test/contracts/lib/openzeppelin-contracts/.mocharc.js +4 -0
  42. package/test/contracts/lib/openzeppelin-contracts/.prettierrc +14 -0
  43. package/test/contracts/lib/openzeppelin-contracts/.solcover.js +13 -0
  44. package/test/contracts/lib/openzeppelin-contracts/.solhint.json +14 -0
  45. package/test/contracts/lib/openzeppelin-contracts/CHANGELOG.md +743 -0
  46. package/test/contracts/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
  47. package/test/contracts/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
  48. package/test/contracts/lib/openzeppelin-contracts/GUIDELINES.md +117 -0
  49. package/test/contracts/lib/openzeppelin-contracts/LICENSE +22 -0
  50. package/test/contracts/lib/openzeppelin-contracts/README.md +90 -0
  51. package/test/contracts/lib/openzeppelin-contracts/RELEASING.md +47 -0
  52. package/test/contracts/lib/openzeppelin-contracts/SECURITY.md +42 -0
  53. package/test/contracts/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
  54. package/test/contracts/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
  55. package/test/contracts/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
  56. package/test/contracts/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
  57. package/test/contracts/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
  58. package/test/contracts/lib/openzeppelin-contracts/audits/README.md +16 -0
  59. package/test/contracts/lib/openzeppelin-contracts/certora/Makefile +54 -0
  60. package/test/contracts/lib/openzeppelin-contracts/certora/README.md +60 -0
  61. package/test/contracts/lib/openzeppelin-contracts/certora/diff/token_ERC721_ERC721.sol.patch +14 -0
  62. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/AccessControlDefaultAdminRulesHarness.sol +47 -0
  63. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol +7 -0
  64. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/DoubleEndedQueueHarness.sol +59 -0
  65. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20FlashMintHarness.sol +36 -0
  66. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20PermitHarness.sol +17 -0
  67. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC20WrapperHarness.sol +25 -0
  68. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol +13 -0
  69. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC721Harness.sol +37 -0
  70. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol +11 -0
  71. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/EnumerableMapHarness.sol +55 -0
  72. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/EnumerableSetHarness.sol +35 -0
  73. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/InitializableHarness.sol +23 -0
  74. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol +9 -0
  75. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol +9 -0
  76. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol +19 -0
  77. package/test/contracts/lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol +12 -0
  78. package/test/contracts/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
  79. package/test/contracts/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
  80. package/test/contracts/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
  81. package/test/contracts/lib/openzeppelin-contracts/certora/run.js +146 -0
  82. package/test/contracts/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +126 -0
  83. package/test/contracts/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +500 -0
  84. package/test/contracts/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +366 -0
  85. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20.spec +414 -0
  86. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +48 -0
  87. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
  88. package/test/contracts/lib/openzeppelin-contracts/certora/specs/ERC721.spec +589 -0
  89. package/test/contracts/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +334 -0
  90. package/test/contracts/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +247 -0
  91. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
  92. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Ownable.spec +78 -0
  93. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
  94. package/test/contracts/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
  95. package/test/contracts/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +275 -0
  96. package/test/contracts/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +1 -0
  97. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +7 -0
  98. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
  99. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
  100. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
  101. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC3156.spec +5 -0
  102. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
  103. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +20 -0
  104. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
  105. package/test/contracts/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
  106. package/test/contracts/lib/openzeppelin-contracts/certora/specs.json +86 -0
  107. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControl.sol +248 -0
  108. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlCrossChain.sol +45 -0
  109. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlDefaultAdminRules.sol +383 -0
  110. package/test/contracts/lib/openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol +64 -0
  111. package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol +88 -0
  112. package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControlDefaultAdminRules.sol +172 -0
  113. package/test/contracts/lib/openzeppelin-contracts/contracts/access/IAccessControlEnumerable.sol +31 -0
  114. package/test/contracts/lib/openzeppelin-contracts/contracts/access/Ownable.sol +83 -0
  115. package/test/contracts/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol +57 -0
  116. package/test/contracts/lib/openzeppelin-contracts/contracts/access/README.adoc +27 -0
  117. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/CrossChainEnabled.sol +54 -0
  118. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/README.adoc +34 -0
  119. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/amb/CrossChainEnabledAMB.sol +49 -0
  120. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/amb/LibAMB.sol +35 -0
  121. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL1.sol +44 -0
  122. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/CrossChainEnabledArbitrumL2.sol +40 -0
  123. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL1.sol +42 -0
  124. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/arbitrum/LibArbitrumL2.sol +45 -0
  125. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/errors.sol +7 -0
  126. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/optimism/CrossChainEnabledOptimism.sol +41 -0
  127. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/optimism/LibOptimism.sol +36 -0
  128. package/test/contracts/lib/openzeppelin-contracts/contracts/crosschain/polygon/CrossChainEnabledPolygonChild.sol +72 -0
  129. package/test/contracts/lib/openzeppelin-contracts/contracts/finance/PaymentSplitter.sol +214 -0
  130. package/test/contracts/lib/openzeppelin-contracts/contracts/finance/README.adoc +20 -0
  131. package/test/contracts/lib/openzeppelin-contracts/contracts/finance/VestingWallet.sol +145 -0
  132. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/Governor.sol +723 -0
  133. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol +313 -0
  134. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/README.adoc +176 -0
  135. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol +422 -0
  136. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/compatibility/GovernorCompatibilityBravo.sol +333 -0
  137. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol +118 -0
  138. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sol +100 -0
  139. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sol +105 -0
  140. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorProposalThreshold.sol +23 -0
  141. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sol +110 -0
  142. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol +190 -0
  143. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol +166 -0
  144. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol +55 -0
  145. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesComp.sol +55 -0
  146. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +121 -0
  147. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/extensions/IGovernorTimelock.sol +26 -0
  148. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol +56 -0
  149. package/test/contracts/lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol +244 -0
  150. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol +6 -0
  151. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol +6 -0
  152. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol +6 -0
  153. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol +19 -0
  154. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol +80 -0
  155. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sol +35 -0
  156. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sol +29 -0
  157. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol +6 -0
  158. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol +6 -0
  159. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol +6 -0
  160. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol +26 -0
  161. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol +6 -0
  162. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol +6 -0
  163. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol +21 -0
  164. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol +8 -0
  165. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol +25 -0
  166. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol +7 -0
  167. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol +29 -0
  168. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol +43 -0
  169. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol +232 -0
  170. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol +20 -0
  171. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol +28 -0
  172. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol +18 -0
  173. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol +9 -0
  174. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol +17 -0
  175. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol +6 -0
  176. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol +6 -0
  177. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol +6 -0
  178. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol +6 -0
  179. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol +6 -0
  180. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol +6 -0
  181. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol +6 -0
  182. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +73 -0
  183. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol +20 -0
  184. package/test/contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC2612.sol +8 -0
  185. package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sol +54 -0
  186. package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/MinimalForwarder.sol +72 -0
  187. package/test/contracts/lib/openzeppelin-contracts/contracts/metatx/README.adoc +12 -0
  188. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/AccessControlCrossChainMock.sol +8 -0
  189. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ArraysMock.sol +51 -0
  190. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sol +19 -0
  191. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sol +61 -0
  192. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ConditionalEscrowMock.sol +18 -0
  193. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ContextMock.sol +35 -0
  194. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sol +57 -0
  195. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sol +16 -0
  196. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sol +26 -0
  197. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol +12 -0
  198. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol +7 -0
  199. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol +5 -0
  200. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol +18 -0
  201. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC20Mock.sol +16 -0
  202. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC20Reentrant.sol +43 -0
  203. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sol +27 -0
  204. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sol +53 -0
  205. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ERC4626Mock.sol +16 -0
  206. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol +17 -0
  207. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/InitializableMock.sol +130 -0
  208. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/MulticallTest.sol +23 -0
  209. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sol +131 -0
  210. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/PausableMock.sol +31 -0
  211. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/PullPaymentMock.sol +15 -0
  212. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol +12 -0
  213. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sol +51 -0
  214. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sol +61 -0
  215. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/SafeMathMemoryCheck.sol +72 -0
  216. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sol +49 -0
  217. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sol +77 -0
  218. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sol +26 -0
  219. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimersBlockNumberImpl.sol +39 -0
  220. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/TimersTimestampImpl.sol +39 -0
  221. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/VotesMock.sol +45 -0
  222. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sol +174 -0
  223. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/bridges.sol +94 -0
  224. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/crosschain/receivers.sol +54 -0
  225. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol +100 -0
  226. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol +88 -0
  227. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol +24 -0
  228. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol +35 -0
  229. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol +31 -0
  230. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCompMock.sol +20 -0
  231. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorCompatibilityBravoMock.sol +100 -0
  232. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sol +28 -0
  233. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sol +45 -0
  234. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sol +60 -0
  235. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sol +60 -0
  236. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sol +20 -0
  237. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sol +50 -0
  238. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol +11 -0
  239. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol +17 -0
  240. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSLegacy.sol +54 -0
  241. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sol +33 -0
  242. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sol +47 -0
  243. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol +17 -0
  244. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol +9 -0
  245. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sol +26 -0
  246. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol +13 -0
  247. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol +8 -0
  248. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sol +28 -0
  249. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20PermitNoRevertMock.sol +36 -0
  250. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol +19 -0
  251. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sol +262 -0
  252. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol +17 -0
  253. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sol +40 -0
  254. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sol +51 -0
  255. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sol +61 -0
  256. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sol +42 -0
  257. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol +17 -0
  258. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC777Mock.sol +13 -0
  259. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/ERC777SenderRecipientMock.sol +152 -0
  260. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/token/VotesTimestamp.sol +40 -0
  261. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor1.sol +79 -0
  262. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor2.sol +85 -0
  263. package/test/contracts/lib/openzeppelin-contracts/contracts/mocks/wizard/MyGovernor3.sol +94 -0
  264. package/test/contracts/lib/openzeppelin-contracts/contracts/package.json +32 -0
  265. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/Clones.sol +88 -0
  266. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol +32 -0
  267. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol +157 -0
  268. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol +86 -0
  269. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
  270. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol +61 -0
  271. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol +16 -0
  272. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol +65 -0
  273. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol +81 -0
  274. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +191 -0
  275. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol +166 -0
  276. package/test/contracts/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol +99 -0
  277. package/test/contracts/lib/openzeppelin-contracts/contracts/security/Pausable.sol +105 -0
  278. package/test/contracts/lib/openzeppelin-contracts/contracts/security/PullPayment.sol +74 -0
  279. package/test/contracts/lib/openzeppelin-contracts/contracts/security/README.adoc +20 -0
  280. package/test/contracts/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol +77 -0
  281. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol +497 -0
  282. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol +119 -0
  283. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol +58 -0
  284. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +49 -0
  285. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +32 -0
  286. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +44 -0
  287. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol +64 -0
  288. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +63 -0
  289. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +22 -0
  290. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol +114 -0
  291. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/presets/README.md +1 -0
  292. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol +36 -0
  293. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol +19 -0
  294. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol +365 -0
  295. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol +78 -0
  296. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +80 -0
  297. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol +39 -0
  298. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sol +37 -0
  299. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sol +109 -0
  300. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol +35 -0
  301. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol +95 -0
  302. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Snapshot.sol +191 -0
  303. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol +290 -0
  304. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20VotesComp.sol +46 -0
  305. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol +73 -0
  306. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol +256 -0
  307. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol +28 -0
  308. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol +90 -0
  309. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol +8 -0
  310. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol +8 -0
  311. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol +30 -0
  312. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol +94 -0
  313. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/presets/README.md +1 -0
  314. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol +143 -0
  315. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/TokenTimelock.sol +72 -0
  316. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol +466 -0
  317. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol +132 -0
  318. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol +27 -0
  319. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +73 -0
  320. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol +26 -0
  321. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol +148 -0
  322. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol +159 -0
  323. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sol +40 -0
  324. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sol +38 -0
  325. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol +74 -0
  326. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sol +43 -0
  327. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sol +97 -0
  328. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol +29 -0
  329. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol +27 -0
  330. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/draft-ERC721Votes.sol +9 -0
  331. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol +132 -0
  332. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/presets/README.md +1 -0
  333. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol +23 -0
  334. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/ERC777.sol +514 -0
  335. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777.sol +200 -0
  336. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Recipient.sol +35 -0
  337. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/IERC777Sender.sol +35 -0
  338. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/README.adoc +32 -0
  339. package/test/contracts/lib/openzeppelin-contracts/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol +30 -0
  340. package/test/contracts/lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol +107 -0
  341. package/test/contracts/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
  342. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol +244 -0
  343. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Arrays.sol +105 -0
  344. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Base64.sol +101 -0
  345. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Checkpoints.sol +560 -0
  346. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Context.sol +28 -0
  347. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Counters.sol +43 -0
  348. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Create2.sol +75 -0
  349. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Multicall.sol +39 -0
  350. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/README.adoc +113 -0
  351. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol +122 -0
  352. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol +138 -0
  353. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Strings.sol +85 -0
  354. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/Timers.sol +75 -0
  355. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol +217 -0
  356. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol +142 -0
  357. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol +227 -0
  358. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol +50 -0
  359. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol +8 -0
  360. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/ConditionalEscrow.sol +25 -0
  361. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/Escrow.sol +67 -0
  362. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/escrow/RefundEscrow.sol +100 -0
  363. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol +29 -0
  364. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol +126 -0
  365. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Storage.sol +42 -0
  366. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC1820Implementer.sol +43 -0
  367. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol +25 -0
  368. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Implementer.sol +20 -0
  369. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC1820Registry.sol +112 -0
  370. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/Math.sol +339 -0
  371. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol +1136 -0
  372. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol +215 -0
  373. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol +43 -0
  374. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/math/SignedSafeMath.sol +68 -0
  375. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol +51 -0
  376. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol +170 -0
  377. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol +598 -0
  378. package/test/contracts/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol +378 -0
  379. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/amb/IAMB.sol +41 -0
  380. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IArbSys.sol +134 -0
  381. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IBridge.sol +102 -0
  382. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IDelayedMessageProvider.sol +16 -0
  383. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IInbox.sol +152 -0
  384. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/arbitrum/IOutbox.sol +117 -0
  385. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sol +86 -0
  386. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
  387. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/optimism/ICrossDomainMessenger.sol +34 -0
  388. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/optimism/LICENSE +22 -0
  389. package/test/contracts/lib/openzeppelin-contracts/contracts/vendor/polygon/IFxMessageProcessor.sol +7 -0
  390. package/test/contracts/lib/openzeppelin-contracts/docs/README.md +16 -0
  391. package/test/contracts/lib/openzeppelin-contracts/docs/antora.yml +6 -0
  392. package/test/contracts/lib/openzeppelin-contracts/docs/config.js +21 -0
  393. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
  394. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
  395. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
  396. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
  397. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
  398. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
  399. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
  400. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
  401. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
  402. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
  403. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
  404. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +23 -0
  405. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +219 -0
  406. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crosschain.adoc +210 -0
  407. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +11 -0
  408. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +19 -0
  409. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +153 -0
  410. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +113 -0
  411. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +85 -0
  412. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
  413. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +90 -0
  414. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc777.adoc +75 -0
  415. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +131 -0
  416. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +237 -0
  417. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +65 -0
  418. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/releases-stability.adoc +85 -0
  419. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +32 -0
  420. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +73 -0
  421. package/test/contracts/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +190 -0
  422. package/test/contracts/lib/openzeppelin-contracts/docs/templates/contract.hbs +85 -0
  423. package/test/contracts/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
  424. package/test/contracts/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
  425. package/test/contracts/lib/openzeppelin-contracts/docs/templates/properties.js +45 -0
  426. package/test/contracts/lib/openzeppelin-contracts/foundry.toml +3 -0
  427. package/test/contracts/lib/openzeppelin-contracts/hardhat/env-artifacts.js +24 -0
  428. package/test/contracts/lib/openzeppelin-contracts/hardhat/env-contract.js +10 -0
  429. package/test/contracts/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
  430. package/test/contracts/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
  431. package/test/contracts/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
  432. package/test/contracts/lib/openzeppelin-contracts/hardhat.config.js +118 -0
  433. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.prop.sol +404 -0
  434. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.test.sol +349 -0
  435. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
  436. package/test/contracts/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
  437. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +92 -0
  438. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +3 -0
  439. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
  440. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
  441. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/README.md +250 -0
  442. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/foundry.toml +21 -0
  443. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/.github/workflows/build.yml +41 -0
  444. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/LICENSE +674 -0
  445. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/Makefile +14 -0
  446. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/default.nix +4 -0
  447. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/demo/demo.sol +222 -0
  448. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/package.json +15 -0
  449. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol +469 -0
  450. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.t.sol +313 -0
  451. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
  452. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Base.sol +33 -0
  453. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Script.sol +26 -0
  454. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol +376 -0
  455. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol +233 -0
  456. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol +624 -0
  457. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol +15 -0
  458. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol +92 -0
  459. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol +179 -0
  460. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol +43 -0
  461. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol +327 -0
  462. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol +333 -0
  463. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol +189 -0
  464. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Test.sol +32 -0
  465. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol +409 -0
  466. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console.sol +1533 -0
  467. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/console2.sol +1546 -0
  468. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
  469. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC165.sol +12 -0
  470. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC20.sol +43 -0
  471. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
  472. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC721.sol +164 -0
  473. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol +73 -0
  474. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol +954 -0
  475. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdChains.t.sol +160 -0
  476. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdCheats.t.sol +401 -0
  477. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdError.t.sol +118 -0
  478. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdMath.t.sol +197 -0
  479. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStorage.t.sol +283 -0
  480. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdStyle.t.sol +110 -0
  481. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/StdUtils.t.sol +297 -0
  482. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol +10 -0
  483. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +10 -0
  484. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol +10 -0
  485. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +10 -0
  486. package/test/contracts/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
  487. package/test/contracts/lib/openzeppelin-contracts/logo.svg +15 -0
  488. package/test/contracts/lib/openzeppelin-contracts/netlify.toml +3 -0
  489. package/test/contracts/lib/openzeppelin-contracts/package-lock.json +28833 -0
  490. package/test/contracts/lib/openzeppelin-contracts/package.json +96 -0
  491. package/test/contracts/lib/openzeppelin-contracts/remappings.txt +1 -0
  492. package/test/contracts/lib/openzeppelin-contracts/renovate.json +4 -0
  493. package/test/contracts/lib/openzeppelin-contracts/requirements.txt +1 -0
  494. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +19 -0
  495. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +243 -0
  496. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +40 -0
  497. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
  498. package/test/contracts/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +54 -0
  499. package/test/contracts/lib/openzeppelin-contracts/scripts/gen-nav.js +41 -0
  500. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
  501. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/run.js +49 -0
  502. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +304 -0
  503. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +22 -0
  504. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +256 -0
  505. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +310 -0
  506. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +250 -0
  507. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +163 -0
  508. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +87 -0
  509. package/test/contracts/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
  510. package/test/contracts/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
  511. package/test/contracts/lib/openzeppelin-contracts/scripts/helpers.js +37 -0
  512. package/test/contracts/lib/openzeppelin-contracts/scripts/migrate-imports.js +180 -0
  513. package/test/contracts/lib/openzeppelin-contracts/scripts/prepack.sh +12 -0
  514. package/test/contracts/lib/openzeppelin-contracts/scripts/prepare-contracts-package.sh +15 -0
  515. package/test/contracts/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
  516. package/test/contracts/lib/openzeppelin-contracts/scripts/prepare.sh +10 -0
  517. package/test/contracts/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
  518. package/test/contracts/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
  519. package/test/contracts/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
  520. package/test/contracts/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
  521. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
  522. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +47 -0
  523. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
  524. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
  525. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
  526. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
  527. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
  528. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
  529. package/test/contracts/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
  530. package/test/contracts/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
  531. package/test/contracts/lib/openzeppelin-contracts/scripts/update-docs-branch.js +63 -0
  532. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
  533. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
  534. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
  535. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +44 -0
  536. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +35 -0
  537. package/test/contracts/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +481 -0
  538. package/test/contracts/lib/openzeppelin-contracts/slither.config.json +5 -0
  539. package/test/contracts/lib/openzeppelin-contracts/test/TESTING.md +3 -0
  540. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControl.behavior.js +867 -0
  541. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControl.test.js +12 -0
  542. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlCrossChain.test.js +49 -0
  543. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlDefaultAdminRules.test.js +25 -0
  544. package/test/contracts/lib/openzeppelin-contracts/test/access/AccessControlEnumerable.test.js +17 -0
  545. package/test/contracts/lib/openzeppelin-contracts/test/access/Ownable.test.js +59 -0
  546. package/test/contracts/lib/openzeppelin-contracts/test/access/Ownable2Step.test.js +67 -0
  547. package/test/contracts/lib/openzeppelin-contracts/test/crosschain/CrossChainEnabled.test.js +78 -0
  548. package/test/contracts/lib/openzeppelin-contracts/test/finance/PaymentSplitter.test.js +217 -0
  549. package/test/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.behavior.js +59 -0
  550. package/test/contracts/lib/openzeppelin-contracts/test/finance/VestingWallet.test.js +67 -0
  551. package/test/contracts/lib/openzeppelin-contracts/test/governance/Governor.t.sol +55 -0
  552. package/test/contracts/lib/openzeppelin-contracts/test/governance/Governor.test.js +782 -0
  553. package/test/contracts/lib/openzeppelin-contracts/test/governance/TimelockController.test.js +1254 -0
  554. package/test/contracts/lib/openzeppelin-contracts/test/governance/compatibility/GovernorCompatibilityBravo.test.js +283 -0
  555. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorComp.test.js +88 -0
  556. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorERC721.test.js +115 -0
  557. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorPreventLateQuorum.test.js +189 -0
  558. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockCompound.test.js +352 -0
  559. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockControl.test.js +445 -0
  560. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesQuorumFraction.test.js +154 -0
  561. package/test/contracts/lib/openzeppelin-contracts/test/governance/extensions/GovernorWithParams.test.js +173 -0
  562. package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/EIP6372.behavior.js +23 -0
  563. package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.behavior.js +361 -0
  564. package/test/contracts/lib/openzeppelin-contracts/test/governance/utils/Votes.test.js +71 -0
  565. package/test/contracts/lib/openzeppelin-contracts/test/helpers/chainid.js +10 -0
  566. package/test/contracts/lib/openzeppelin-contracts/test/helpers/create2.js +11 -0
  567. package/test/contracts/lib/openzeppelin-contracts/test/helpers/crosschain.js +61 -0
  568. package/test/contracts/lib/openzeppelin-contracts/test/helpers/customError.js +24 -0
  569. package/test/contracts/lib/openzeppelin-contracts/test/helpers/eip712.js +67 -0
  570. package/test/contracts/lib/openzeppelin-contracts/test/helpers/enums.js +12 -0
  571. package/test/contracts/lib/openzeppelin-contracts/test/helpers/erc1967.js +24 -0
  572. package/test/contracts/lib/openzeppelin-contracts/test/helpers/governance.js +201 -0
  573. package/test/contracts/lib/openzeppelin-contracts/test/helpers/map-values.js +7 -0
  574. package/test/contracts/lib/openzeppelin-contracts/test/helpers/sign.js +63 -0
  575. package/test/contracts/lib/openzeppelin-contracts/test/helpers/time.js +17 -0
  576. package/test/contracts/lib/openzeppelin-contracts/test/helpers/txpool.js +38 -0
  577. package/test/contracts/lib/openzeppelin-contracts/test/metatx/ERC2771Context.test.js +175 -0
  578. package/test/contracts/lib/openzeppelin-contracts/test/metatx/MinimalForwarder.test.js +169 -0
  579. package/test/contracts/lib/openzeppelin-contracts/test/migrate-imports.test.js +33 -0
  580. package/test/contracts/lib/openzeppelin-contracts/test/proxy/Clones.behaviour.js +136 -0
  581. package/test/contracts/lib/openzeppelin-contracts/test/proxy/Clones.test.js +61 -0
  582. package/test/contracts/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js +13 -0
  583. package/test/contracts/lib/openzeppelin-contracts/test/proxy/Proxy.behaviour.js +225 -0
  584. package/test/contracts/lib/openzeppelin-contracts/test/proxy/beacon/BeaconProxy.test.js +139 -0
  585. package/test/contracts/lib/openzeppelin-contracts/test/proxy/beacon/UpgradeableBeacon.test.js +44 -0
  586. package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/ProxyAdmin.test.js +127 -0
  587. package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js +433 -0
  588. package/test/contracts/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.test.js +17 -0
  589. package/test/contracts/lib/openzeppelin-contracts/test/proxy/utils/Initializable.test.js +218 -0
  590. package/test/contracts/lib/openzeppelin-contracts/test/proxy/utils/UUPSUpgradeable.test.js +85 -0
  591. package/test/contracts/lib/openzeppelin-contracts/test/security/Pausable.test.js +85 -0
  592. package/test/contracts/lib/openzeppelin-contracts/test/security/PullPayment.test.js +51 -0
  593. package/test/contracts/lib/openzeppelin-contracts/test/security/ReentrancyGuard.test.js +43 -0
  594. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.behavior.js +767 -0
  595. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.test.js +235 -0
  596. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Burnable.test.js +67 -0
  597. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Pausable.test.js +108 -0
  598. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Supply.test.js +107 -0
  599. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155URIStorage.test.js +66 -0
  600. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/presets/ERC1155PresetMinterPauser.test.js +156 -0
  601. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Holder.test.js +64 -0
  602. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.behavior.js +322 -0
  603. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/ERC20.test.js +305 -0
  604. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.behavior.js +106 -0
  605. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.test.js +20 -0
  606. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.behavior.js +32 -0
  607. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.test.js +23 -0
  608. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20FlashMint.test.js +204 -0
  609. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Pausable.test.js +133 -0
  610. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Snapshot.test.js +207 -0
  611. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Votes.test.js +578 -0
  612. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20VotesComp.test.js +543 -0
  613. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Wrapper.test.js +190 -0
  614. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.t.sol +42 -0
  615. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.test.js +1031 -0
  616. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/extensions/draft-ERC20Permit.test.js +103 -0
  617. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetFixedSupply.test.js +42 -0
  618. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/presets/ERC20PresetMinterPauser.test.js +110 -0
  619. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/SafeERC20.test.js +350 -0
  620. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC20/utils/TokenTimelock.test.js +71 -0
  621. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.behavior.js +893 -0
  622. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js +15 -0
  623. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/ERC721Enumerable.test.js +20 -0
  624. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Burnable.test.js +70 -0
  625. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol +122 -0
  626. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.test.js +206 -0
  627. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Pausable.test.js +92 -0
  628. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Royalty.test.js +41 -0
  629. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721URIStorage.test.js +100 -0
  630. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Votes.test.js +184 -0
  631. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Wrapper.test.js +283 -0
  632. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/presets/ERC721PresetMinterPauserAutoId.test.js +122 -0
  633. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Holder.test.js +22 -0
  634. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/ERC777.behavior.js +597 -0
  635. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/ERC777.test.js +556 -0
  636. package/test/contracts/lib/openzeppelin-contracts/test/token/ERC777/presets/ERC777PresetFixedSupply.test.js +49 -0
  637. package/test/contracts/lib/openzeppelin-contracts/test/token/common/ERC2981.behavior.js +157 -0
  638. package/test/contracts/lib/openzeppelin-contracts/test/utils/Address.test.js +361 -0
  639. package/test/contracts/lib/openzeppelin-contracts/test/utils/Arrays.test.js +123 -0
  640. package/test/contracts/lib/openzeppelin-contracts/test/utils/Base64.test.js +43 -0
  641. package/test/contracts/lib/openzeppelin-contracts/test/utils/Checkpoints.t.sol +347 -0
  642. package/test/contracts/lib/openzeppelin-contracts/test/utils/Checkpoints.test.js +255 -0
  643. package/test/contracts/lib/openzeppelin-contracts/test/utils/Context.behavior.js +42 -0
  644. package/test/contracts/lib/openzeppelin-contracts/test/utils/Context.test.js +17 -0
  645. package/test/contracts/lib/openzeppelin-contracts/test/utils/Counters.test.js +84 -0
  646. package/test/contracts/lib/openzeppelin-contracts/test/utils/Create2.test.js +89 -0
  647. package/test/contracts/lib/openzeppelin-contracts/test/utils/Multicall.test.js +68 -0
  648. package/test/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.t.sol +55 -0
  649. package/test/contracts/lib/openzeppelin-contracts/test/utils/ShortStrings.test.js +55 -0
  650. package/test/contracts/lib/openzeppelin-contracts/test/utils/StorageSlot.test.js +210 -0
  651. package/test/contracts/lib/openzeppelin-contracts/test/utils/Strings.test.js +150 -0
  652. package/test/contracts/lib/openzeppelin-contracts/test/utils/TimersBlockNumberImpl.test.js +55 -0
  653. package/test/contracts/lib/openzeppelin-contracts/test/utils/TimersTimestamp.test.js +55 -0
  654. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/ECDSA.test.js +260 -0
  655. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/EIP712.test.js +103 -0
  656. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/MerkleProof.test.js +200 -0
  657. package/test/contracts/lib/openzeppelin-contracts/test/utils/cryptography/SignatureChecker.test.js +87 -0
  658. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/ConditionalEscrow.test.js +37 -0
  659. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/Escrow.behavior.js +90 -0
  660. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/Escrow.test.js +14 -0
  661. package/test/contracts/lib/openzeppelin-contracts/test/utils/escrow/RefundEscrow.test.js +143 -0
  662. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js +11 -0
  663. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Checker.test.js +302 -0
  664. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC165Storage.test.js +23 -0
  665. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/ERC1820Implementer.test.js +71 -0
  666. package/test/contracts/lib/openzeppelin-contracts/test/utils/introspection/SupportsInterface.behavior.js +146 -0
  667. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/Math.t.sol +217 -0
  668. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/Math.test.js +289 -0
  669. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SafeCast.test.js +152 -0
  670. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SafeMath.test.js +433 -0
  671. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SignedMath.test.js +95 -0
  672. package/test/contracts/lib/openzeppelin-contracts/test/utils/math/SignedSafeMath.test.js +152 -0
  673. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/BitMap.test.js +145 -0
  674. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/DoubleEndedQueue.test.js +99 -0
  675. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.behavior.js +185 -0
  676. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.test.js +154 -0
  677. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.behavior.js +129 -0
  678. package/test/contracts/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.test.js +79 -0
  679. package/test/contracts/out/AccessControl.sol/AccessControl.json +1 -0
  680. package/test/contracts/out/AccessControlCrossChain.sol/AccessControlCrossChain.json +1 -0
  681. package/test/contracts/out/AccessControlCrossChainMock.sol/AccessControlCrossChainMock.json +1 -0
  682. package/test/contracts/out/AccessControlDefaultAdminRules.sol/AccessControlDefaultAdminRules.json +1 -0
  683. package/test/contracts/out/AccessControlEnumerable.sol/AccessControlEnumerable.json +1 -0
  684. package/test/contracts/out/Address.sol/Address.json +1 -0
  685. package/test/contracts/out/Arrays.sol/Arrays.json +1 -0
  686. package/test/contracts/out/ArraysMock.sol/AddressArraysMock.json +1 -0
  687. package/test/contracts/out/ArraysMock.sol/Bytes32ArraysMock.json +1 -0
  688. package/test/contracts/out/ArraysMock.sol/Uint256ArraysMock.json +1 -0
  689. package/test/contracts/out/BadBeacon.sol/BadBeaconNoImpl.json +1 -0
  690. package/test/contracts/out/BadBeacon.sol/BadBeaconNotContract.json +1 -0
  691. package/test/contracts/out/Base.sol/CommonBase.json +1 -0
  692. package/test/contracts/out/Base.sol/ScriptBase.json +1 -0
  693. package/test/contracts/out/Base.sol/TestBase.json +1 -0
  694. package/test/contracts/out/Base64.sol/Base64.json +1 -0
  695. package/test/contracts/out/Base64Dirty.sol/Base64Dirty.json +1 -0
  696. package/test/contracts/out/BeaconProxy.sol/BeaconProxy.json +1 -0
  697. package/test/contracts/out/BitMaps.sol/BitMaps.json +1 -0
  698. package/test/contracts/out/CallReceiverMock.sol/CallReceiverMock.json +1 -0
  699. package/test/contracts/out/Checkpoints.sol/Checkpoints.json +1 -0
  700. package/test/contracts/out/Checkpoints.t.sol/CheckpointsHistoryTest.json +1 -0
  701. package/test/contracts/out/Checkpoints.t.sol/CheckpointsTrace160Test.json +1 -0
  702. package/test/contracts/out/Checkpoints.t.sol/CheckpointsTrace224Test.json +1 -0
  703. package/test/contracts/out/ClashingImplementation.sol/ClashingImplementation.json +1 -0
  704. package/test/contracts/out/Clones.sol/Clones.json +1 -0
  705. package/test/contracts/out/CompTimelock.sol/CompTimelock.json +1 -0
  706. package/test/contracts/out/CompilationScript.sol/CompilationScript.json +1 -0
  707. package/test/contracts/out/CompilationScriptBase.sol/CompilationScriptBase.json +1 -0
  708. package/test/contracts/out/CompilationTest.sol/CompilationTest.json +1 -0
  709. package/test/contracts/out/CompilationTestBase.sol/CompilationTestBase.json +1 -0
  710. package/test/contracts/out/ConditionalEscrow.sol/ConditionalEscrow.json +1 -0
  711. package/test/contracts/out/ConditionalEscrowMock.sol/ConditionalEscrowMock.json +1 -0
  712. package/test/contracts/out/Context.sol/Context.json +1 -0
  713. package/test/contracts/out/ContextMock.sol/ContextMock.json +1 -0
  714. package/test/contracts/out/ContextMock.sol/ContextMockCaller.json +1 -0
  715. package/test/contracts/out/Counters.sol/Counters.json +1 -0
  716. package/test/contracts/out/Create2.sol/Create2.json +1 -0
  717. package/test/contracts/out/CrossChainEnabled.sol/CrossChainEnabled.json +1 -0
  718. package/test/contracts/out/CrossChainEnabledAMB.sol/CrossChainEnabledAMB.json +1 -0
  719. package/test/contracts/out/CrossChainEnabledArbitrumL1.sol/CrossChainEnabledArbitrumL1.json +1 -0
  720. package/test/contracts/out/CrossChainEnabledArbitrumL2.sol/CrossChainEnabledArbitrumL2.json +1 -0
  721. package/test/contracts/out/CrossChainEnabledOptimism.sol/CrossChainEnabledOptimism.json +1 -0
  722. package/test/contracts/out/CrossChainEnabledPolygonChild.sol/CrossChainEnabledPolygonChild.json +1 -0
  723. package/test/contracts/out/DoubleEndedQueue.sol/DoubleEndedQueue.json +1 -0
  724. package/test/contracts/out/DummyImplementation.sol/DummyImplementation.json +1 -0
  725. package/test/contracts/out/DummyImplementation.sol/DummyImplementationV2.json +1 -0
  726. package/test/contracts/out/DummyImplementation.sol/Impl.json +1 -0
  727. package/test/contracts/out/ECDSA.sol/ECDSA.json +1 -0
  728. package/test/contracts/out/EIP712.sol/EIP712.json +1 -0
  729. package/test/contracts/out/EIP712Verifier.sol/EIP712Verifier.json +1 -0
  730. package/test/contracts/out/ERC1155.sol/ERC1155.json +1 -0
  731. package/test/contracts/out/ERC1155Burnable.sol/ERC1155Burnable.json +1 -0
  732. package/test/contracts/out/ERC1155Holder.sol/ERC1155Holder.json +1 -0
  733. package/test/contracts/out/ERC1155Pausable.sol/ERC1155Pausable.json +1 -0
  734. package/test/contracts/out/ERC1155PresetMinterPauser.sol/ERC1155PresetMinterPauser.json +1 -0
  735. package/test/contracts/out/ERC1155Receiver.sol/ERC1155Receiver.json +1 -0
  736. package/test/contracts/out/ERC1155ReceiverMock.sol/ERC1155ReceiverMock.json +1 -0
  737. package/test/contracts/out/ERC1155Supply.sol/ERC1155Supply.json +1 -0
  738. package/test/contracts/out/ERC1155URIStorage.sol/ERC1155URIStorage.json +1 -0
  739. package/test/contracts/out/ERC1271WalletMock.sol/ERC1271MaliciousMock.json +1 -0
  740. package/test/contracts/out/ERC1271WalletMock.sol/ERC1271WalletMock.json +1 -0
  741. package/test/contracts/out/ERC165.sol/ERC165.json +1 -0
  742. package/test/contracts/out/ERC165Checker.sol/ERC165Checker.json +1 -0
  743. package/test/contracts/out/ERC165MaliciousData.sol/ERC165MaliciousData.json +1 -0
  744. package/test/contracts/out/ERC165MissingData.sol/ERC165MissingData.json +1 -0
  745. package/test/contracts/out/ERC165NotSupported.sol/ERC165NotSupported.json +1 -0
  746. package/test/contracts/out/ERC165ReturnBomb.sol/ERC165ReturnBombMock.json +1 -0
  747. package/test/contracts/out/ERC165Storage.sol/ERC165Storage.json +1 -0
  748. package/test/contracts/out/ERC1820Implementer.sol/ERC1820Implementer.json +1 -0
  749. package/test/contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json +1 -0
  750. package/test/contracts/out/ERC1967Upgrade.sol/ERC1967Upgrade.json +1 -0
  751. package/test/contracts/out/ERC20.sol/ERC20.json +1 -0
  752. package/test/contracts/out/ERC20Burnable.sol/ERC20Burnable.json +1 -0
  753. package/test/contracts/out/ERC20Capped.sol/ERC20Capped.json +1 -0
  754. package/test/contracts/out/ERC20DecimalsMock.sol/ERC20DecimalsMock.json +1 -0
  755. package/test/contracts/out/ERC20ExcessDecimalsMock.sol/ERC20ExcessDecimalsMock.json +1 -0
  756. package/test/contracts/out/ERC20FlashMint.sol/ERC20FlashMint.json +1 -0
  757. package/test/contracts/out/ERC20FlashMintMock.sol/ERC20FlashMintMock.json +1 -0
  758. package/test/contracts/out/ERC20ForceApproveMock.sol/ERC20ForceApproveMock.json +1 -0
  759. package/test/contracts/out/ERC20Mock.sol/ERC20Mock.json +1 -0
  760. package/test/contracts/out/ERC20MulticallMock.sol/ERC20MulticallMock.json +1 -0
  761. package/test/contracts/out/ERC20NoReturnMock.sol/ERC20NoReturnMock.json +1 -0
  762. package/test/contracts/out/ERC20Pausable.sol/ERC20Pausable.json +1 -0
  763. package/test/contracts/out/ERC20Permit.sol/ERC20Permit.json +1 -0
  764. package/test/contracts/out/ERC20PermitNoRevertMock.sol/ERC20PermitNoRevertMock.json +1 -0
  765. package/test/contracts/out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json +1 -0
  766. package/test/contracts/out/ERC20PresetMinterPauser.sol/ERC20PresetMinterPauser.json +1 -0
  767. package/test/contracts/out/ERC20Reentrant.sol/ERC20Reentrant.json +1 -0
  768. package/test/contracts/out/ERC20ReturnFalseMock.sol/ERC20ReturnFalseMock.json +1 -0
  769. package/test/contracts/out/ERC20Snapshot.sol/ERC20Snapshot.json +1 -0
  770. package/test/contracts/out/ERC20Votes.sol/ERC20Votes.json +1 -0
  771. package/test/contracts/out/ERC20VotesComp.sol/ERC20VotesComp.json +1 -0
  772. package/test/contracts/out/ERC20VotesLegacyMock.sol/ERC20VotesLegacyMock.json +1 -0
  773. package/test/contracts/out/ERC20Wrapper.sol/ERC20Wrapper.json +1 -0
  774. package/test/contracts/out/ERC2771Context.sol/ERC2771Context.json +1 -0
  775. package/test/contracts/out/ERC2771ContextMock.sol/ERC2771ContextMock.json +1 -0
  776. package/test/contracts/out/ERC2981.sol/ERC2981.json +1 -0
  777. package/test/contracts/out/ERC3156FlashBorrowerMock.sol/ERC3156FlashBorrowerMock.json +1 -0
  778. package/test/contracts/out/ERC4626.prop.sol/ERC4626Prop.json +1 -0
  779. package/test/contracts/out/ERC4626.prop.sol/IERC20.json +1 -0
  780. package/test/contracts/out/ERC4626.prop.sol/IERC4626.json +1 -0
  781. package/test/contracts/out/ERC4626.sol/ERC4626.json +1 -0
  782. package/test/contracts/out/ERC4626.t.sol/ERC4626StdTest.json +1 -0
  783. package/test/contracts/out/ERC4626.t.sol/ERC4626VaultOffsetMock.json +1 -0
  784. package/test/contracts/out/ERC4626.test.sol/ERC4626Test.json +1 -0
  785. package/test/contracts/out/ERC4626.test.sol/IMockERC20.json +1 -0
  786. package/test/contracts/out/ERC4626Fees.sol/ERC4626Fees.json +1 -0
  787. package/test/contracts/out/ERC4626Mock.sol/ERC4626Mock.json +1 -0
  788. package/test/contracts/out/ERC4626OffsetMock.sol/ERC4626OffsetMock.json +1 -0
  789. package/test/contracts/out/ERC4646FeesMock.sol/ERC4626FeesMock.json +1 -0
  790. package/test/contracts/out/ERC721.sol/ERC721.json +1 -0
  791. package/test/contracts/out/ERC721Burnable.sol/ERC721Burnable.json +1 -0
  792. package/test/contracts/out/ERC721Consecutive.sol/ERC721Consecutive.json +1 -0
  793. package/test/contracts/out/ERC721Consecutive.t.sol/ERC721ConsecutiveTarget.json +1 -0
  794. package/test/contracts/out/ERC721Consecutive.t.sol/ERC721ConsecutiveTest.json +1 -0
  795. package/test/contracts/out/ERC721ConsecutiveEnumerableMock.sol/ERC721ConsecutiveEnumerableMock.json +1 -0
  796. package/test/contracts/out/ERC721ConsecutiveMock.sol/ERC721ConsecutiveMock.json +1 -0
  797. package/test/contracts/out/ERC721ConsecutiveMock.sol/ERC721ConsecutiveNoConstructorMintMock.json +1 -0
  798. package/test/contracts/out/ERC721Enumerable.sol/ERC721Enumerable.json +1 -0
  799. package/test/contracts/out/ERC721Holder.sol/ERC721Holder.json +1 -0
  800. package/test/contracts/out/ERC721Pausable.sol/ERC721Pausable.json +1 -0
  801. package/test/contracts/out/ERC721PresetMinterPauserAutoId.sol/ERC721PresetMinterPauserAutoId.json +1 -0
  802. package/test/contracts/out/ERC721ReceiverMock.sol/ERC721ReceiverMock.json +1 -0
  803. package/test/contracts/out/ERC721Royalty.sol/ERC721Royalty.json +1 -0
  804. package/test/contracts/out/ERC721URIStorage.sol/ERC721URIStorage.json +1 -0
  805. package/test/contracts/out/ERC721URIStorageMock.sol/ERC721URIStorageMock.json +1 -0
  806. package/test/contracts/out/ERC721Votes.sol/ERC721Votes.json +1 -0
  807. package/test/contracts/out/ERC721Wrapper.sol/ERC721Wrapper.json +1 -0
  808. package/test/contracts/out/ERC777.sol/ERC777.json +1 -0
  809. package/test/contracts/out/ERC777Mock.sol/ERC777Mock.json +1 -0
  810. package/test/contracts/out/ERC777PresetFixedSupply.sol/ERC777PresetFixedSupply.json +1 -0
  811. package/test/contracts/out/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock.json +1 -0
  812. package/test/contracts/out/EnumerableMap.sol/EnumerableMap.json +1 -0
  813. package/test/contracts/out/EnumerableSet.sol/EnumerableSet.json +1 -0
  814. package/test/contracts/out/Escrow.sol/Escrow.json +1 -0
  815. package/test/contracts/out/EtherReceiverMock.sol/EtherReceiverMock.json +1 -0
  816. package/test/contracts/out/Governor.sol/Governor.json +1 -0
  817. package/test/contracts/out/Governor.t.sol/GovernorInternalTest.json +1 -0
  818. package/test/contracts/out/GovernorCompMock.sol/GovernorCompMock.json +1 -0
  819. package/test/contracts/out/GovernorCompatibilityBravo.sol/GovernorCompatibilityBravo.json +1 -0
  820. package/test/contracts/out/GovernorCompatibilityBravoMock.sol/GovernorCompatibilityBravoMock.json +1 -0
  821. package/test/contracts/out/GovernorCountingSimple.sol/GovernorCountingSimple.json +1 -0
  822. package/test/contracts/out/GovernorMock.sol/GovernorMock.json +1 -0
  823. package/test/contracts/out/GovernorPreventLateQuorum.sol/GovernorPreventLateQuorum.json +1 -0
  824. package/test/contracts/out/GovernorPreventLateQuorumMock.sol/GovernorPreventLateQuorumMock.json +1 -0
  825. package/test/contracts/out/GovernorProposalThreshold.sol/GovernorProposalThreshold.json +1 -0
  826. package/test/contracts/out/GovernorSettings.sol/GovernorSettings.json +1 -0
  827. package/test/contracts/out/GovernorTimelockCompound.sol/GovernorTimelockCompound.json +1 -0
  828. package/test/contracts/out/GovernorTimelockCompoundMock.sol/GovernorTimelockCompoundMock.json +1 -0
  829. package/test/contracts/out/GovernorTimelockControl.sol/GovernorTimelockControl.json +1 -0
  830. package/test/contracts/out/GovernorTimelockControlMock.sol/GovernorTimelockControlMock.json +1 -0
  831. package/test/contracts/out/GovernorVoteMock.sol/GovernorVoteMocks.json +1 -0
  832. package/test/contracts/out/GovernorVotes.sol/GovernorVotes.json +1 -0
  833. package/test/contracts/out/GovernorVotesComp.sol/GovernorVotesComp.json +1 -0
  834. package/test/contracts/out/GovernorVotesQuorumFraction.sol/GovernorVotesQuorumFraction.json +1 -0
  835. package/test/contracts/out/GovernorWithParamsMock.sol/GovernorWithParamsMock.json +1 -0
  836. package/test/contracts/out/IAMB.sol/IAMB.json +1 -0
  837. package/test/contracts/out/IAccessControl.sol/IAccessControl.json +1 -0
  838. package/test/contracts/out/IAccessControlDefaultAdminRules.sol/IAccessControlDefaultAdminRules.json +1 -0
  839. package/test/contracts/out/IAccessControlEnumerable.sol/IAccessControlEnumerable.json +1 -0
  840. package/test/contracts/out/IArbSys.sol/IArbSys.json +1 -0
  841. package/test/contracts/out/IBeacon.sol/IBeacon.json +1 -0
  842. package/test/contracts/out/IBridge.sol/IBridge.json +1 -0
  843. package/test/contracts/out/ICompoundTimelock.sol/ICompoundTimelock.json +1 -0
  844. package/test/contracts/out/ICrossDomainMessenger.sol/ICrossDomainMessenger.json +1 -0
  845. package/test/contracts/out/IDelayedMessageProvider.sol/IDelayedMessageProvider.json +1 -0
  846. package/test/contracts/out/IERC1155.sol/IERC1155.json +1 -0
  847. package/test/contracts/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +1 -0
  848. package/test/contracts/out/IERC1155Receiver.sol/IERC1155Receiver.json +1 -0
  849. package/test/contracts/out/IERC1271.sol/IERC1271.json +1 -0
  850. package/test/contracts/out/IERC1363.sol/IERC1363.json +1 -0
  851. package/test/contracts/out/IERC1363Receiver.sol/IERC1363Receiver.json +1 -0
  852. package/test/contracts/out/IERC1363Spender.sol/IERC1363Spender.json +1 -0
  853. package/test/contracts/out/IERC165.sol/IERC165.json +1 -0
  854. package/test/contracts/out/IERC1820Implementer.sol/IERC1820Implementer.json +1 -0
  855. package/test/contracts/out/IERC1820Registry.sol/IERC1820Registry.json +1 -0
  856. package/test/contracts/out/IERC1967.sol/IERC1967.json +1 -0
  857. package/test/contracts/out/IERC20.sol/IERC20.json +1 -0
  858. package/test/contracts/out/IERC20Metadata.sol/IERC20Metadata.json +1 -0
  859. package/test/contracts/out/IERC20Permit.sol/IERC20Permit.json +1 -0
  860. package/test/contracts/out/IERC2309.sol/IERC2309.json +1 -0
  861. package/test/contracts/out/IERC2612.sol/IERC2612.json +1 -0
  862. package/test/contracts/out/IERC2981.sol/IERC2981.json +1 -0
  863. package/test/contracts/out/IERC3156FlashBorrower.sol/IERC3156FlashBorrower.json +1 -0
  864. package/test/contracts/out/IERC3156FlashLender.sol/IERC3156FlashLender.json +1 -0
  865. package/test/contracts/out/IERC4626.sol/IERC4626.json +1 -0
  866. package/test/contracts/out/IERC4906.sol/IERC4906.json +1 -0
  867. package/test/contracts/out/IERC5267.sol/IERC5267.json +1 -0
  868. package/test/contracts/out/IERC5313.sol/IERC5313.json +1 -0
  869. package/test/contracts/out/IERC5805.sol/IERC5805.json +1 -0
  870. package/test/contracts/out/IERC6372.sol/IERC6372.json +1 -0
  871. package/test/contracts/out/IERC721.sol/IERC721.json +1 -0
  872. package/test/contracts/out/IERC721.sol/IERC721Enumerable.json +1 -0
  873. package/test/contracts/out/IERC721.sol/IERC721Metadata.json +1 -0
  874. package/test/contracts/out/IERC721.sol/IERC721TokenReceiver.json +1 -0
  875. package/test/contracts/out/IERC721Enumerable.sol/IERC721Enumerable.json +1 -0
  876. package/test/contracts/out/IERC721Metadata.sol/IERC721Metadata.json +1 -0
  877. package/test/contracts/out/IERC721Receiver.sol/IERC721Receiver.json +1 -0
  878. package/test/contracts/out/IERC777.sol/IERC777.json +1 -0
  879. package/test/contracts/out/IERC777Recipient.sol/IERC777Recipient.json +1 -0
  880. package/test/contracts/out/IERC777Sender.sol/IERC777Sender.json +1 -0
  881. package/test/contracts/out/IFxMessageProcessor.sol/IFxMessageProcessor.json +1 -0
  882. package/test/contracts/out/IGovernor.sol/IGovernor.json +1 -0
  883. package/test/contracts/out/IGovernorCompatibilityBravo.sol/IGovernorCompatibilityBravo.json +1 -0
  884. package/test/contracts/out/IGovernorTimelock.sol/IGovernorTimelock.json +1 -0
  885. package/test/contracts/out/IInbox.sol/IInbox.json +1 -0
  886. package/test/contracts/out/IMulticall3.sol/IMulticall3.json +1 -0
  887. package/test/contracts/out/IOutbox.sol/IOutbox.json +1 -0
  888. package/test/contracts/out/IVotes.sol/IVotes.json +1 -0
  889. package/test/contracts/out/Initializable.sol/Initializable.json +1 -0
  890. package/test/contracts/out/InitializableMock.sol/ChildConstructorInitializableMock.json +1 -0
  891. package/test/contracts/out/InitializableMock.sol/ConstructorInitializableMock.json +1 -0
  892. package/test/contracts/out/InitializableMock.sol/DisableBad1.json +1 -0
  893. package/test/contracts/out/InitializableMock.sol/DisableBad2.json +1 -0
  894. package/test/contracts/out/InitializableMock.sol/DisableNew.json +1 -0
  895. package/test/contracts/out/InitializableMock.sol/DisableOk.json +1 -0
  896. package/test/contracts/out/InitializableMock.sol/DisableOld.json +1 -0
  897. package/test/contracts/out/InitializableMock.sol/InitializableMock.json +1 -0
  898. package/test/contracts/out/InitializableMock.sol/ReinitializerMock.json +1 -0
  899. package/test/contracts/out/LibAMB.sol/LibAMB.json +1 -0
  900. package/test/contracts/out/LibArbitrumL1.sol/LibArbitrumL1.json +1 -0
  901. package/test/contracts/out/LibArbitrumL2.sol/LibArbitrumL2.json +1 -0
  902. package/test/contracts/out/LibOptimism.sol/LibOptimism.json +1 -0
  903. package/test/contracts/out/Math.sol/Math.json +1 -0
  904. package/test/contracts/out/Math.t.sol/MathTest.json +1 -0
  905. package/test/contracts/out/MerkleProof.sol/MerkleProof.json +1 -0
  906. package/test/contracts/out/MinimalForwarder.sol/MinimalForwarder.json +1 -0
  907. package/test/contracts/out/MockMiladyAgentRegistry.sol/MockMiladyAgentRegistry.json +1 -0
  908. package/test/contracts/out/MockMiladyCollection.sol/MockMiladyCollection.json +1 -0
  909. package/test/contracts/out/Multicall.sol/Multicall.json +1 -0
  910. package/test/contracts/out/MulticallTest.sol/MulticallTest.json +1 -0
  911. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleChild.json +1 -0
  912. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleFather.json +1 -0
  913. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleGramps.json +1 -0
  914. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleHuman.json +1 -0
  915. package/test/contracts/out/MultipleInheritanceInitializableMocks.sol/SampleMother.json +1 -0
  916. package/test/contracts/out/MyGovernor.sol/MyGovernor.json +1 -0
  917. package/test/contracts/out/MyGovernor1.sol/MyGovernor1.json +1 -0
  918. package/test/contracts/out/MyGovernor2.sol/MyGovernor2.json +1 -0
  919. package/test/contracts/out/MyGovernor3.sol/MyGovernor3.json +1 -0
  920. package/test/contracts/out/MyToken.sol/MyToken.json +1 -0
  921. package/test/contracts/out/MyTokenTimestampBased.sol/MyTokenTimestampBased.json +1 -0
  922. package/test/contracts/out/MyTokenWrapped.sol/MyTokenWrapped.json +1 -0
  923. package/test/contracts/out/Ownable.sol/Ownable.json +1 -0
  924. package/test/contracts/out/Ownable2Step.sol/Ownable2Step.json +1 -0
  925. package/test/contracts/out/Pausable.sol/Pausable.json +1 -0
  926. package/test/contracts/out/PausableMock.sol/PausableMock.json +1 -0
  927. package/test/contracts/out/PaymentSplitter.sol/PaymentSplitter.json +1 -0
  928. package/test/contracts/out/Proxy.sol/Proxy.json +1 -0
  929. package/test/contracts/out/ProxyAdmin.sol/ProxyAdmin.json +1 -0
  930. package/test/contracts/out/PullPayment.sol/PullPayment.json +1 -0
  931. package/test/contracts/out/PullPaymentMock.sol/PullPaymentMock.json +1 -0
  932. package/test/contracts/out/ReentrancyAttack.sol/ReentrancyAttack.json +1 -0
  933. package/test/contracts/out/ReentrancyGuard.sol/ReentrancyGuard.json +1 -0
  934. package/test/contracts/out/ReentrancyMock.sol/ReentrancyMock.json +1 -0
  935. package/test/contracts/out/RefundEscrow.sol/RefundEscrow.json +1 -0
  936. package/test/contracts/out/RegressionImplementation.sol/Implementation1.json +1 -0
  937. package/test/contracts/out/RegressionImplementation.sol/Implementation2.json +1 -0
  938. package/test/contracts/out/RegressionImplementation.sol/Implementation3.json +1 -0
  939. package/test/contracts/out/RegressionImplementation.sol/Implementation4.json +1 -0
  940. package/test/contracts/out/SafeCast.sol/SafeCast.json +1 -0
  941. package/test/contracts/out/SafeERC20.sol/SafeERC20.json +1 -0
  942. package/test/contracts/out/SafeMath.sol/SafeMath.json +1 -0
  943. package/test/contracts/out/SafeMathMemoryCheck.sol/SafeMathMemoryCheck.json +1 -0
  944. package/test/contracts/out/Script.sol/Script.json +1 -0
  945. package/test/contracts/out/ShortStrings.sol/ShortStrings.json +1 -0
  946. package/test/contracts/out/ShortStrings.t.sol/ShortStringsTest.json +1 -0
  947. package/test/contracts/out/SignatureChecker.sol/SignatureChecker.json +1 -0
  948. package/test/contracts/out/SignedMath.sol/SignedMath.json +1 -0
  949. package/test/contracts/out/SignedSafeMath.sol/SignedSafeMath.json +1 -0
  950. package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV1.json +1 -0
  951. package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV2.json +1 -0
  952. package/test/contracts/out/SingleInheritanceInitializableMocks.sol/MigratableMockV3.json +1 -0
  953. package/test/contracts/out/StdAssertions.sol/StdAssertions.json +1 -0
  954. package/test/contracts/out/StdAssertions.t.sol/StdAssertionsTest.json +1 -0
  955. package/test/contracts/out/StdAssertions.t.sol/TestMockCall.json +1 -0
  956. package/test/contracts/out/StdAssertions.t.sol/TestTest.json +1 -0
  957. package/test/contracts/out/StdChains.sol/StdChains.json +1 -0
  958. package/test/contracts/out/StdChains.t.sol/StdChainsTest.json +1 -0
  959. package/test/contracts/out/StdCheats.sol/StdCheats.json +1 -0
  960. package/test/contracts/out/StdCheats.sol/StdCheatsSafe.json +1 -0
  961. package/test/contracts/out/StdCheats.t.sol/Bar.json +1 -0
  962. package/test/contracts/out/StdCheats.t.sol/BarERC1155.json +1 -0
  963. package/test/contracts/out/StdCheats.t.sol/BarERC721.json +1 -0
  964. package/test/contracts/out/StdCheats.t.sol/RevertingContract.json +1 -0
  965. package/test/contracts/out/StdCheats.t.sol/StdCheatsTest.json +1 -0
  966. package/test/contracts/out/StdError.sol/stdError.json +1 -0
  967. package/test/contracts/out/StdError.t.sol/ErrorsTest.json +1 -0
  968. package/test/contracts/out/StdError.t.sol/StdErrorsTest.json +1 -0
  969. package/test/contracts/out/StdInvariant.sol/StdInvariant.json +1 -0
  970. package/test/contracts/out/StdJson.sol/stdJson.json +1 -0
  971. package/test/contracts/out/StdMath.sol/stdMath.json +1 -0
  972. package/test/contracts/out/StdMath.t.sol/StdMathTest.json +1 -0
  973. package/test/contracts/out/StdStorage.sol/stdStorage.json +1 -0
  974. package/test/contracts/out/StdStorage.sol/stdStorageSafe.json +1 -0
  975. package/test/contracts/out/StdStorage.t.sol/StdStorageTest.json +1 -0
  976. package/test/contracts/out/StdStorage.t.sol/StorageTest.json +1 -0
  977. package/test/contracts/out/StdStyle.sol/StdStyle.json +1 -0
  978. package/test/contracts/out/StdStyle.t.sol/StdStyleTest.json +1 -0
  979. package/test/contracts/out/StdUtils.sol/StdUtils.json +1 -0
  980. package/test/contracts/out/StdUtils.t.sol/StdUtilsForkTest.json +1 -0
  981. package/test/contracts/out/StdUtils.t.sol/StdUtilsMock.json +1 -0
  982. package/test/contracts/out/StdUtils.t.sol/StdUtilsTest.json +1 -0
  983. package/test/contracts/out/StorageSlot.sol/StorageSlot.json +1 -0
  984. package/test/contracts/out/StorageSlotMock.sol/StorageSlotMock.json +1 -0
  985. package/test/contracts/out/Strings.sol/Strings.json +1 -0
  986. package/test/contracts/out/TimelockController.sol/TimelockController.json +1 -0
  987. package/test/contracts/out/TimelockReentrant.sol/TimelockReentrant.json +1 -0
  988. package/test/contracts/out/Timers.sol/Timers.json +1 -0
  989. package/test/contracts/out/TimersBlockNumberImpl.sol/TimersBlockNumberImpl.json +1 -0
  990. package/test/contracts/out/TimersTimestampImpl.sol/TimersTimestampImpl.json +1 -0
  991. package/test/contracts/out/TokenTimelock.sol/TokenTimelock.json +1 -0
  992. package/test/contracts/out/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -0
  993. package/test/contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +1 -0
  994. package/test/contracts/out/UUPSLegacy.sol/UUPSUpgradeableLegacyMock.json +1 -0
  995. package/test/contracts/out/UUPSUpgradeable.sol/UUPSUpgradeable.json +1 -0
  996. package/test/contracts/out/UUPSUpgradeableMock.sol/NonUpgradeableMock.json +1 -0
  997. package/test/contracts/out/UUPSUpgradeableMock.sol/UUPSUpgradeableMock.json +1 -0
  998. package/test/contracts/out/UUPSUpgradeableMock.sol/UUPSUpgradeableUnsafeMock.json +1 -0
  999. package/test/contracts/out/UpgradeableBeacon.sol/UpgradeableBeacon.json +1 -0
  1000. package/test/contracts/out/VestingWallet.sol/VestingWallet.json +1 -0
  1001. package/test/contracts/out/Vm.sol/Vm.json +1 -0
  1002. package/test/contracts/out/Vm.sol/VmSafe.json +1 -0
  1003. package/test/contracts/out/Votes.sol/Votes.json +1 -0
  1004. package/test/contracts/out/VotesMock.sol/VotesMock.json +1 -0
  1005. package/test/contracts/out/VotesMock.sol/VotesTimestampMock.json +1 -0
  1006. package/test/contracts/out/VotesTimestamp.sol/ERC20VotesCompTimestampMock.json +1 -0
  1007. package/test/contracts/out/VotesTimestamp.sol/ERC20VotesTimestampMock.json +1 -0
  1008. package/test/contracts/out/VotesTimestamp.sol/ERC721VotesTimestampMock.json +1 -0
  1009. package/test/contracts/out/bridges.sol/BaseRelayMock.json +1 -0
  1010. package/test/contracts/out/bridges.sol/BridgeAMBMock.json +1 -0
  1011. package/test/contracts/out/bridges.sol/BridgeArbitrumL1Inbox.json +1 -0
  1012. package/test/contracts/out/bridges.sol/BridgeArbitrumL1Mock.json +1 -0
  1013. package/test/contracts/out/bridges.sol/BridgeArbitrumL1Outbox.json +1 -0
  1014. package/test/contracts/out/bridges.sol/BridgeArbitrumL2Mock.json +1 -0
  1015. package/test/contracts/out/bridges.sol/BridgeOptimismMock.json +1 -0
  1016. package/test/contracts/out/bridges.sol/BridgePolygonChildMock.json +1 -0
  1017. package/test/contracts/out/build-info/2be03bb8eb1ccda1.json +1 -0
  1018. package/test/contracts/out/console.sol/console.json +1 -0
  1019. package/test/contracts/out/console2.sol/console2.json +1 -0
  1020. package/test/contracts/out/demo.sol/DemoTest.json +1 -0
  1021. package/test/contracts/out/demo.sol/DemoTestWithSetUp.json +1 -0
  1022. package/test/contracts/out/draft-IERC1822.sol/IERC1822Proxiable.json +1 -0
  1023. package/test/contracts/out/interfaces/IERC1155.sol/IERC1155.json +1 -0
  1024. package/test/contracts/out/interfaces/IERC165.sol/IERC165.json +1 -0
  1025. package/test/contracts/out/interfaces/IERC20.sol/IERC20.json +1 -0
  1026. package/test/contracts/out/interfaces/IERC4626.sol/IERC4626.json +1 -0
  1027. package/test/contracts/out/interfaces/IERC721.sol/IERC721.json +1 -0
  1028. package/test/contracts/out/receivers.sol/CrossChainEnabledAMBMock.json +1 -0
  1029. package/test/contracts/out/receivers.sol/CrossChainEnabledArbitrumL1Mock.json +1 -0
  1030. package/test/contracts/out/receivers.sol/CrossChainEnabledArbitrumL2Mock.json +1 -0
  1031. package/test/contracts/out/receivers.sol/CrossChainEnabledOptimismMock.json +1 -0
  1032. package/test/contracts/out/receivers.sol/CrossChainEnabledPolygonChildMock.json +1 -0
  1033. package/test/contracts/out/receivers.sol/Receiver.json +1 -0
  1034. package/test/contracts/out/test.sol/DSTest.json +1 -0
  1035. package/test/contracts/out/test.sol/Test.json +1 -0
  1036. package/test/contracts/out/test.t.sol/DemoTest.json +1 -0
  1037. package/test/database-api.e2e.test.ts +666 -0
  1038. package/test/debug-anvil.ts +44 -0
  1039. package/test/deferred-restart.e2e.test.ts +368 -0
  1040. package/test/discord-connector.e2e.test.ts +463 -0
  1041. package/test/e2e-global-setup.ts +29 -0
  1042. package/test/e2e-validation.e2e.test.ts +1588 -0
  1043. package/test/health-endpoint.e2e.test.ts +95 -0
  1044. package/test/knowledge-e2e-flow.e2e.test.ts +134 -0
  1045. package/test/knowledge-live.e2e.test.ts +405 -0
  1046. package/test/mcp-config.e2e.test.ts +630 -0
  1047. package/test/native-modules.e2e.test.ts +470 -0
  1048. package/test/permissions-api.e2e.test.ts +637 -0
  1049. package/test/plugin-install.e2e.test.ts +645 -0
  1050. package/test/plugin-lifecycle.e2e.test.ts +617 -0
  1051. package/test/plugin-management.e2e.test.ts +308 -0
  1052. package/test/provider-switch.e2e.test.ts +322 -0
  1053. package/test/scripts/test-force.ts +139 -0
  1054. package/test/scripts/test-parallel.mjs +192 -0
  1055. package/test/scripts/validate-all-features.sh +557 -0
  1056. package/test/setup.ts +122 -0
  1057. package/test/signal-connector.e2e.test.ts +229 -0
  1058. package/test/skills-marketplace-api.e2e.test.ts +585 -0
  1059. package/test/skills-marketplace-services.e2e.test.ts +518 -0
  1060. package/test/skills-marketplace.e2e.test.ts +268 -0
  1061. package/test/stubs/coding-agent-module.ts +18 -0
  1062. package/test/stubs/electron-module.ts +17 -0
  1063. package/test/stubs/empty-module.mjs +4 -0
  1064. package/test/stubs/pi-ai-module.ts +12 -0
  1065. package/test/subscription-auth.e2e.test.ts +747 -0
  1066. package/test/terminal-execution.e2e.test.ts +134 -0
  1067. package/test/terminal-run-limits.e2e.test.ts +132 -0
  1068. package/test/test-env.ts +156 -0
  1069. package/test/trajectory-collection.e2e.test.ts +800 -0
  1070. package/test/trajectory-database.e2e.test.ts +209 -0
  1071. package/test/trajectory-embedding-filter.e2e.test.ts +317 -0
  1072. package/test/trajectory-restart-carryover.e2e.test.ts +306 -0
  1073. package/test/trigger-execution-flow.e2e.test.ts +132 -0
  1074. package/test/trigger-runtime.e2e.test.ts +247 -0
  1075. package/test/wallet-api.e2e.test.ts +1295 -0
  1076. package/test/wallet-live.e2e.test.ts +428 -0
  1077. package/vitest.e2e.config.ts +71 -0
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_assertApproxEqAbs","inputs":[{"name":"a","type":"int256","internalType":"int256"},{"name":"b","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqAbs","inputs":[{"name":"a","type":"int256","internalType":"int256"},{"name":"b","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqAbs","inputs":[{"name":"a","type":"uint256","internalType":"uint256"},{"name":"b","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqAbs","inputs":[{"name":"a","type":"uint256","internalType":"uint256"},{"name":"b","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqAbsDecimal","inputs":[{"name":"a","type":"uint256","internalType":"uint256"},{"name":"b","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqAbsDecimal","inputs":[{"name":"a","type":"int256","internalType":"int256"},{"name":"b","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqAbsDecimal","inputs":[{"name":"a","type":"int256","internalType":"int256"},{"name":"b","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqAbsDecimal","inputs":[{"name":"a","type":"uint256","internalType":"uint256"},{"name":"b","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqRel","inputs":[{"name":"a","type":"int256","internalType":"int256"},{"name":"b","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqRel","inputs":[{"name":"a","type":"int256","internalType":"int256"},{"name":"b","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqRel","inputs":[{"name":"a","type":"uint256","internalType":"uint256"},{"name":"b","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqRel","inputs":[{"name":"a","type":"uint256","internalType":"uint256"},{"name":"b","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqRelDecimal","inputs":[{"name":"a","type":"uint256","internalType":"uint256"},{"name":"b","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqRelDecimal","inputs":[{"name":"a","type":"uint256","internalType":"uint256"},{"name":"b","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqRelDecimal","inputs":[{"name":"a","type":"int256","internalType":"int256"},{"name":"b","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertApproxEqRelDecimal","inputs":[{"name":"a","type":"int256","internalType":"int256"},{"name":"b","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEq","inputs":[{"name":"a","type":"address[]","internalType":"address[]"},{"name":"b","type":"address[]","internalType":"address[]"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEq","inputs":[{"name":"a","type":"bool","internalType":"bool"},{"name":"b","type":"bool","internalType":"bool"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEq","inputs":[{"name":"a","type":"uint256[]","internalType":"uint256[]"},{"name":"b","type":"uint256[]","internalType":"uint256[]"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEq","inputs":[{"name":"a","type":"bytes","internalType":"bytes"},{"name":"b","type":"bytes","internalType":"bytes"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEq","inputs":[{"name":"a","type":"uint256[]","internalType":"uint256[]"},{"name":"b","type":"uint256[]","internalType":"uint256[]"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEq","inputs":[{"name":"a","type":"address[]","internalType":"address[]"},{"name":"b","type":"address[]","internalType":"address[]"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEq","inputs":[{"name":"a","type":"bool","internalType":"bool"},{"name":"b","type":"bool","internalType":"bool"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEq","inputs":[{"name":"a","type":"int256[]","internalType":"int256[]"},{"name":"b","type":"int256[]","internalType":"int256[]"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEq","inputs":[{"name":"a","type":"bytes","internalType":"bytes"},{"name":"b","type":"bytes","internalType":"bytes"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEq","inputs":[{"name":"a","type":"int256[]","internalType":"int256[]"},{"name":"b","type":"int256[]","internalType":"int256[]"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertEqCall","inputs":[{"name":"targetA","type":"address","internalType":"address"},{"name":"targetB","type":"address","internalType":"address"},{"name":"callDataA","type":"bytes","internalType":"bytes"},{"name":"callDataB","type":"bytes","internalType":"bytes"},{"name":"returnDataA","type":"bytes","internalType":"bytes"},{"name":"returnDataB","type":"bytes","internalType":"bytes"},{"name":"strictRevertData","type":"bool","internalType":"bool"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertFalse","inputs":[{"name":"data","type":"bool","internalType":"bool"},{"name":"err","type":"string","internalType":"string"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_assertFalse","inputs":[{"name":"data","type":"bool","internalType":"bool"},{"name":"expectFail","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_fail","inputs":[{"name":"err","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040525f8054600160ff19918216811790925560048054909116909117905534801561002b575f80fd5b50614dc0806100395f395ff3fe608060405234801561000f575f80fd5b506004361061023f575f3560e01c8063825fcd5511610135578063cdfdd029116100b4578063f49ae07511610079578063f49ae075146104bb578063f5e5cdad146104ce578063f77c2b4d146104e1578063fa7626d4146104f4578063fb033bb514610500575f80fd5b8063cdfdd02914610467578063d4448e671461047a578063d46df40a1461048d578063e20c9f71146104a0578063e9f8c699146104a8575f80fd5b8063b5508aa9116100fa578063b5508aa91461040e578063b5f9080714610416578063ba414fa614610429578063bfe7025e14610441578063c387459f14610454575f80fd5b8063825fcd55146103b857806385226c81146103cb5780638da27ae2146103e0578063916a17c6146103f35780639cd7f336146103fb575f80fd5b80634291328a116101c15780635a3edf88116101865780635a3edf88146103575780635f2b2caa1461036a57806366d9a9a01461037d5780636c208b3d146103925780637cb850c2146103a5575f80fd5b80634291328a146102f85780634975e7721461030b5780634d49cb641461031e5780634e679c3c14610331578063562d01d514610344575f80fd5b8063341dc6b511610207578063341dc6b5146102af57806335dfe029146102c257806338b92241146102d55780633e5e3c23146102e85780633f7286f4146102f0575f80fd5b80630513e8561461024357806311ea40d8146102585780631ed7831c1461026b57806320b255e514610289578063224921c11461029c575b5f80fd5b610256610251366004613d02565b610513565b005b610256610266366004613d6b565b6106ff565b6102736108da565b6040516102809190613dde565b60405180910390f35b610256610297366004613df0565b61093a565b6102566102aa366004613e2e565b610b1b565b6102566102bd366004613f46565b610cff565b6102566102d0366004613fb8565b610ed5565b6102566102e3366004613d02565b610f65565b610273610ff5565b610273611053565b610256610306366004613df0565b6110b1565b610256610319366004613df0565b611140565b61025661032c366004613ff3565b6111cf565b61025661033f366004613df0565b61125d565b610256610352366004613e2e565b6112ec565b610256610365366004614088565b61137d565b610256610378366004613fb8565b61140c565b61038561149c565b6040516102809190614111565b6102566103a0366004613d02565b611586565b6102566103b3366004613e2e565b611616565b6102566103c63660046141c2565b6116a7565b6103d3611736565b6040516102809190614265565b6102566103ee366004613fb8565b611801565b610385611891565b610256610409366004613e2e565b611972565b6103d3611a03565b6102566104243660046142c5565b611ace565b610431611b5c565b6040519015158152602001610280565b61025661044f36600461431b565b611c75565b610256610462366004613fb8565b611d03565b61025661047536600461435e565b611d93565b6102566104883660046143b4565b611e22565b61025661049b366004614408565b611eb1565b610273612086565b6102566104b636600461443f565b6120e4565b6102566104c93660046142c5565b6122ca565b6102566104dc366004614525565b612358565b6102566104ef366004614088565b6123e6565b5f546104319060ff1681565b61025661050e366004613d02565b612475565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906105549083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561056f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105939190614594565b141590506105a387878787612505565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d70906105e29083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156105fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106219190614594565b141590508115156001036106365750506106f7565b82156106d6576001811515146106675760405162461bcd60e51b815260040161065e906145ab565b60405180910390fd5b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb906106a49083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b1580156106bb575f80fd5b505af11580156106cd573d5f803e3d5ffd5b505050506106f4565b80156106f45760405162461bcd60e51b815260040161065e90614603565b50505b505050505050565b604051630667f9d760e41b81526001905f9081905f80516020614ccb8339815191529063667f9d70906107419083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561075c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107809190614594565b1415905061078d83612549565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d70906107cc9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156107e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080b9190614594565b1415905081151560010361081f5750505050565b82156108b6576001811515146108475760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb906108849083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b15801561089b575f80fd5b505af11580156108ad573d5f803e3d5ffd5b505050506108d4565b80156108d45760405162461bcd60e51b815260040161065e90614603565b50505050565b6060600d80548060200260200160405190810160405280929190818152602001828054801561093057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610912575b5050505050905090565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d709061097b9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610996573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ba9190614594565b141590506109c9868686612578565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d7090610a089083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a479190614594565b14159050811515600103610a5c575050610b14565b8215610af357600181151514610a845760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb90610ac19083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b158015610ad8575f80fd5b505af1158015610aea573d5f803e3d5ffd5b50505050610b11565b8015610b115760405162461bcd60e51b815260040161065e90614603565b50505b5050505050565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090610b5c9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610b77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9b9190614594565b14159050610bac8888888888612686565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d7090610beb9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610c06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2a9190614594565b14159050811515600103610c3f575050610b11565b8215610cd657600181151514610c675760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb90610ca49083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b158015610cbb575f80fd5b505af1158015610ccd573d5f803e3d5ffd5b50505050610cf4565b8015610cf45760405162461bcd60e51b815260040161065e90614603565b505050505050505050565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090610d409083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610d5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7f9190614594565b14159050610d8d85856126e2565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d7090610dcc9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610de7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0b9190614594565b14159050811515600103610e205750506108d4565b8215610eb757600181151514610e485760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb90610e859083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b158015610e9c575f80fd5b505af1158015610eae573d5f803e3d5ffd5b505050506106f7565b80156106f75760405162461bcd60e51b815260040161065e90614603565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090610f169083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610f31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f559190614594565b141590506105a387878787612813565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090610fa69083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610fc1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe59190614594565b141590506105a387878787612902565b6060600f80548060200260200160405190810160405280929190818152602001828054801561093057602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610912575050505050905090565b6060600e80548060200260200160405190810160405280929190818152602001828054801561093057602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610912575050505050905090565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906110f29083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561110d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111319190614594565b141590506109c9868686612954565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906111819083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561119c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c09190614594565b141590506109c9868686612a2f565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906112109083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561122b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124f9190614594565b14159050610d8d8585612ab7565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d709061129e9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156112b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112dd9190614594565b141590506109c9868686612beb565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d709061132d9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611348573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136c9190614594565b14159050610bac8888888888612c62565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906113be9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156113d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fd9190614594565b141590506109c9868686612ca7565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d709061144d9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611468573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148c9190614594565b141590506105a387878787612d28565b60606012805480602002602001604051908101604052809291908181526020015f905b8282101561157d575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561156557602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116115275790505b505050505081525050815260200190600101906114bf565b50505050905090565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906115c79083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156115e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116069190614594565b141590506105a387878787612db4565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906116579083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611672573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116969190614594565b14159050610bac8888888888612df8565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906116e89083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611703573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117279190614594565b141590506109c9868686612e4f565b60606011805480602002602001604051908101604052809291908181526020015f905b8282101561157d578382905f5260205f2001805461177690614638565b80601f01602080910402602001604051908101604052809291908181526020018280546117a290614638565b80156117ed5780601f106117c4576101008083540402835291602001916117ed565b820191905f5260205f20905b8154815290600101906020018083116117d057829003601f168201915b505050505081526020019060010190611759565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906118429083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561185d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118819190614594565b141590506105a387878787612e5a565b60606013805480602002602001604051908101604052809291908181526020015f905b8282101561157d575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561195a57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161191c5790505b505050505081525050815260200190600101906118b4565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906119b39083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156119ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f29190614594565b14159050610bac8888888888612f21565b60606010805480602002602001604051908101604052809291908181526020015f905b8282101561157d578382905f5260205f20018054611a4390614638565b80601f0160208091040260200160405190810160405280929190818152602001828054611a6f90614638565b8015611aba5780601f10611a9157610100808354040283529160200191611aba565b820191905f5260205f20905b815481529060010190602001808311611a9d57829003601f168201915b505050505081526020019060010190611a26565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611b0f9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b4e9190614594565b14159050610d8d8585612f66565b5f8054610100900460ff1615611b7a57505f54610100900460ff1690565b5f5f80516020614ccb8339815191523b15611c70576040515f905f80516020614ccb833981519152907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc490611bde9083906519985a5b195960d21b9060200161457b565b60408051601f1981840301815290829052611bfc9291602001614670565b60408051601f1981840301815290829052611c16916146a0565b5f604051808303815f865af19150503d805f8114611c4f576040519150601f19603f3d011682016040523d82523d5f602084013e611c54565b606091505b5091505080806020019051810190611c6c91906146bb565b9150505b919050565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611cb69083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611cd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf59190614594565b14159050610d8d858561307e565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611d449083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611d5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d839190614594565b141590506105a387878787613089565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611dd49083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611def573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e139190614594565b141590506109c9868686613104565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611e639083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611e7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ea29190614594565b141590506109c9868686613185565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611ef29083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611f0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f319190614594565b14159050611f3e846131be565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d7090611f7d9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611f98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbc9190614594565b14159050811515600103611fd1575050505050565b821561206857600181151514611ff95760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb906120369083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b15801561204d575f80fd5b505af115801561205f573d5f803e3d5ffd5b50505050610b14565b8015610b145760405162461bcd60e51b815260040161065e90614603565b6060600c80548060200260200160405190810160405280929190818152602001828054801561093057602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610912575050505050905090565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906121259083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015612140573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121649190614594565b141590506121758a898b8a886131c8565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d70906121b49083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156121cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f39190614594565b14159050811515600103612208575050610cf4565b821561229f576001811515146122305760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb9061226d9083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b158015612284575f80fd5b505af1158015612296573d5f803e3d5ffd5b505050506122bd565b80156122bd5760405162461bcd60e51b815260040161065e90614603565b5050505050505050505050565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d709061230b9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015612326573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061234a9190614594565b14159050610d8d8585613493565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906123999083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156123b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d89190614594565b14159050610d8d85856135ac565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906124279083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015612442573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124669190614594565b141590506109c98686866135b6565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906124b69083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156124d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f59190614594565b141590506105a387878787613637565b5f612510858561368d565b905082811115610b14575f80516020614ceb8339815191528260405161253691906146dd565b60405180910390a1610b14858585612578565b5f80516020614ceb8339815191528160405161256591906146dd565b60405180910390a16125756136df565b50565b5f612583848461368d565b9050818111156108d4575f80516020614c8b8339815191526040516125a79061470b565b60405180910390a160408051818152600b818301526a080808080808081319599d60aa1b60608201526020810186905290515f80516020614d2b8339815191529181900360800190a160408051818152600b918101919091526a080808080808149a59da1d60aa1b6060820152602081018490525f80516020614d2b833981519152906080015b60405180910390a15f80516020614d6b83398151915282604051612652919061474c565b60405180910390a15f80516020614d6b833981519152816040516126769190614783565b60405180910390a16108d46136df565b835f0361269d576126988585836137d0565b610b14565b5f6126a88686613805565b9050838111156106f7575f80516020614ceb833981519152826040516126ce91906146dd565b60405180910390a16106f786868686612813565b806040516020016126f39190613dde565b604051602081830303815290604052805190602001208260405160200161271a9190613dde565b604051602081830303815290604052805190602001201461280f575f80516020614c8b8339815191526040516127919060208082526027908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015266726573735b5d5d60c81b606082015260800190565b60405180910390a17f3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd826040516127c891906147c9565b60405180910390a17f3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd816040516127ff9190614809565b60405180910390a161280f6136df565b5050565b825f03612829576128248484613838565b6108d4565b5f6128348585613805565b905082811115610b14575f80516020614c8b8339815191526040516128589061481a565b60405180910390a15f80516020614cab833981519152858360405161287e92919061485c565b60405180910390a15f80516020614cab83398151915284836040516128a4929190614897565b60405180910390a15f80516020614cab8339815191528360126040516128cb9291906148c2565b60405180910390a15f80516020614cab8339815191528160126040516128f29291906148f5565b60405180910390a1610b146136df565b825f03612914576128248484836138de565b5f61291f8585613913565b905082811115610b14575f80516020614ceb8339815191528260405161294591906146dd565b60405180910390a1610b148585855b815f0361296a576129658383613953565b505050565b5f6129758484613913565b9050818111156108d4575f80516020614c8b8339815191526040516129999061470b565b60405180910390a15f80516020614d2b833981519152846040516129bd9190614928565b60405180910390a15f80516020614d2b833981519152836040516129e19190614953565b60405180910390a15f80516020614cab833981519152826012604051612a089291906148c2565b60405180910390a15f80516020614cab8339815191528160126040516126769291906148f5565b815f03612a40576129658383613838565b5f612a4b8484613805565b9050818111156108d4575f80516020614c8b833981519152604051612a6f9061481a565b60405180910390a15f80516020614d6b83398151915284604051612a939190614928565b60405180910390a15f80516020614d6b833981519152836040516129e19190614953565b8015158215151461280f575f80516020614c8b833981519152604051612b199060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6040820152616c5d60f01b606082015260800190565b60405180910390a15f80516020614ceb83398151915282612b57576040518060400160405280600581526020016466616c736560d81b815250612b75565b604051806040016040528060048152602001637472756560e01b8152505b604051612b82919061497e565b60405180910390a15f80516020614ceb83398151915281612bc0576040518060400160405280600581526020016466616c736560d81b815250612bde565b604051806040016040528060048152602001637472756560e01b8152505b6040516127ff91906149a1565b5f612bf684846139f8565b9050818111156108d4575f80516020614c8b833981519152604051612c1a9061481a565b60405180910390a15f80516020614d6b83398151915284604051612c3e91906149b2565b60405180910390a15f80516020614d6b8339815191528360405161262e91906149c3565b5f612c6d86866139f8565b9050838111156106f7575f80516020614ceb83398151915282604051612c9391906146dd565b60405180910390a16106f786868686613089565b81604051602001612cb89190614a02565b6040516020818303038152906040528051906020012083604051602001612cdf9190614a02565b6040516020818303038152906040528051906020012014612965575f80516020614ceb83398151915281604051612d1691906146dd565b60405180910390a16129658383612f66565b825f03612d39576128248484613953565b5f612d448585613913565b905082811115610b14575f80516020614c8b833981519152604051612d689061470b565b60405180910390a15f80516020614d0b8339815191528583604051612d8e92919061485c565b60405180910390a15f80516020614d0b83398151915284836040516128a4929190614897565b5f612dbf85856139f8565b905082811115610b14575f80516020614ceb83398151915282604051612de591906146dd565b60405180910390a1610b14858585612beb565b835f03612e0a576126988585836138de565b5f612e158686613913565b9050838111156106f7575f80516020614ceb83398151915282604051612e3b91906146dd565b60405180910390a16106f786868686612d28565b612965838383613a19565b5f612e65858561368d565b905082811115610b14575f80516020614c8b833981519152604051612e899061470b565b60405180910390a15f80516020614d0b8339815191528583604051612eaf929190614a14565b60405180910390a15f80516020614d0b8339815191528483604051612ed5929190614a25565b60405180910390a15f80516020614cab8339815191528383604051612efb929190614a36565b60405180910390a15f80516020614cab83398151915281836040516128f2929190614a5f565b5f612f2c868661368d565b9050838111156106f7575f80516020614ceb83398151915282604051612f5291906146dd565b60405180910390a16106f786868686612e5a565b80604051602001612f779190614a02565b6040516020818303038152906040528051906020012082604051602001612f9e9190614a02565b604051602081830303815290604052805190602001201461280f575f80516020614c8b8339815191526040516130129060208082526024908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015263745b5d5d60e01b606082015260800190565b60405180910390a17eaaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb826040516130489190614a88565b60405180910390a17eaaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb816040516127ff9190614aab565b61280f821582613a55565b5f61309485856139f8565b905082811115610b14575f80516020614c8b8339815191526040516130b89061481a565b60405180910390a15f80516020614cab83398151915285836040516130de929190614a14565b60405180910390a15f80516020614cab8339815191528483604051612ed5929190614a25565b816040516020016131159190613dde565b604051602081830303815290604052805190602001208360405160200161313c9190613dde565b6040516020818303038152906040528051906020012014612965575f80516020614ceb8339815191528160405161317391906146dd565b60405180910390a161296583836126e2565b81151583151514612965575f80516020614ceb833981519152816040516131ac91906146dd565b60405180910390a16129658383612ab7565b6125758115613a83565b5f80866001600160a01b0316866040516131e291906146a0565b5f604051808303815f865af19150503d805f811461321b576040519150601f19603f3d011682016040523d82523d5f602084013e613220565b606091505b50915091505f80866001600160a01b03168660405161323f91906146a0565b5f604051808303815f865af19150503d805f8114613278576040519150601f19603f3d011682016040523d82523d5f602084013e61327d565b606091505b509150915083801561328c5750815b156132d1576132d183826040518060400160405280601f81526020017f43616c6c2072657475726e206461746120646f6573206e6f74206d6174636800815250612e4f565b831580156132dd575081155b80156132e65750845b1561332b5761332b83826040518060400160405280601f81526020017f43616c6c20726576657274206461746120646f6573206e6f74206d6174636800815250612e4f565b831580156133365750815b156133df575f80516020614c8b833981519152604051613387906020808252601b908201527f4572726f723a2043616c6c732077657265206e6f7420657175616c0000000000604082015260600190565b60405180910390a15f80516020614d4b833981519152836040516133ab9190614abc565b60405180910390a15f80516020614d4b833981519152816040516133cf9190614b02565b60405180910390a16133df6136df565b8380156133ea575081155b15610cf4575f80516020614c8b83398151915260405161343b906020808252601b908201527f4572726f723a2043616c6c732077657265206e6f7420657175616c0000000000604082015260600190565b60405180910390a15f80516020614d4b8339815191528360405161345f9190614b48565b60405180910390a15f80516020614d4b833981519152816040516134839190614b8e565b60405180910390a1610cf46136df565b806040516020016134a49190614a02565b60405160208183030381529060405280519060200120826040516020016134cb9190614a02565b604051602081830303815290604052805190602001201461280f575f80516020614c8b83398151915260405161353e9060208082526023908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e746040820152625b5d5d60e81b606082015260800190565b60405180910390a17fa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57826040516135759190614a88565b60405180910390a17fa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57816040516127ff9190614aab565b61280f8282613ad4565b816040516020016135c79190614a02565b60405160208183030381529060405280519060200120836040516020016135ee9190614a02565b6040516020818303038152906040528051906020012014612965575f80516020614ceb8339815191528160405161362591906146dd565b60405180910390a16129658383613493565b825f03613649576128248484836137d0565b5f6136548585613805565b905082811115610b14575f80516020614ceb8339815191528260405161367a91906146dd565b60405180910390a1610b14858585612a2f565b5f5f1982841813156136ba576136b36136a584613b82565b6136ae84613b82565b6139f8565b90506136d9565b6136c382613b82565b6136cc84613b82565b6136d69190614be8565b90505b92915050565b5f80516020614ccb8339815191523b156137c0576040515f905f80516020614ccb833981519152907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc4906137459083906519985a5b195960d21b906001906020016145e2565b60408051601f19818403018152908290526137639291602001614670565b60408051601f198184030181529082905261377d916146a0565b5f604051808303815f865af19150503d805f81146137b6576040519150601f19603f3d011682016040523d82523d5f602084013e6137bb565b606091505b505050505b5f805461ff001916610100179055565b818314612965575f80516020614ceb833981519152816040516137f391906146dd565b60405180910390a16129658383613838565b5f8061381184846139f8565b90508261382682670de0b6b3a7640000614bfb565b6138309190614c12565b949350505050565b80821461280f575f80516020614c8b8339815191526040516138969060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a15f80516020614d6b833981519152826040516138ba91906149b2565b60405180910390a15f80516020614d6b833981519152816040516127ff91906149c3565b818314612965575f80516020614ceb8339815191528160405161390191906146dd565b60405180910390a16129658383613953565b5f8061391f848461368d565b90505f61392b84613b82565b90508061394083670de0b6b3a7640000614bfb565b61394a9190614c12565b95945050505050565b80821461280f575f80516020614c8b8339815191526040516139b09060208082526021908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e746040820152605d60f81b606082015260800190565b60405180910390a15f80516020614d2b833981519152826040516139d491906149b2565b60405180910390a15f80516020614d2b833981519152816040516127ff91906149c3565b5f818311613a0f57613a0a8383614c31565b6136d6565b6136d68284614c31565b613a238383613bb2565b612965575f80516020614ceb83398151915281604051613a4391906146dd565b60405180910390a16129658383613ad4565b8161280f575f80516020614ceb83398151915281604051613a7691906146dd565b60405180910390a161280f825b80612575575f80516020614c8b8339815191526040516125659060208082526017908201527f4572726f723a20417373657274696f6e204661696c6564000000000000000000604082015260600190565b613ade8282613bb2565b61280f575f80516020614c8b833981519152604051613b3a9060208082526023908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b62797460408201526265735d60e81b606082015260800190565b60405180910390a15f80516020614d4b83398151915282604051613b5e919061497e565b60405180910390a15f80516020614d4b833981519152816040516127ff91906149a1565b5f600160ff1b8203613b995750600160ff1b919050565b5f8213613bae57613ba982614c44565b6136d9565b5090565b805182516001919003613c33575f5b8351811015613c2d57828181518110613bdc57613bdc614c5e565b602001015160f81c60f81b6001600160f81b031916848281518110613c0357613c03614c5e565b01602001516001600160f81b03191614613c1b575f91505b80613c2581614c72565b915050613bc1565b506136d9565b505f92915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715613c7757613c77613c3b565b604052919050565b5f82601f830112613c8e575f80fd5b81356001600160401b03811115613ca757613ca7613c3b565b613cba601f8201601f1916602001613c4f565b818152846020838601011115613cce575f80fd5b816020850160208301375f918101602001919091529392505050565b8015158114612575575f80fd5b8035611c7081613cea565b5f805f805f60a08688031215613d16575f80fd5b85359450602086013593506040860135925060608601356001600160401b03811115613d40575f80fd5b613d4c88828901613c7f565b9250506080860135613d5d81613cea565b809150509295509295909350565b5f60208284031215613d7b575f80fd5b81356001600160401b03811115613d90575f80fd5b61383084828501613c7f565b5f8151808452602080850194508084015f5b83811015613dd35781516001600160a01b031687529582019590820190600101613dae565b509495945050505050565b602081525f6136d66020830184613d9c565b5f805f8060808587031215613e03575f80fd5b8435935060208501359250604085013591506060850135613e2381613cea565b939692955090935050565b5f805f805f8060c08789031215613e43575f80fd5b8635955060208701359450604087013593506060870135925060808701356001600160401b03811115613e74575f80fd5b613e8089828a01613c7f565b92505060a0870135613e9181613cea565b809150509295509295509295565b5f6001600160401b03821115613eb757613eb7613c3b565b5060051b60200190565b80356001600160a01b0381168114611c70575f80fd5b5f82601f830112613ee6575f80fd5b81356020613efb613ef683613e9f565b613c4f565b82815260059290921b84018101918181019086841115613f19575f80fd5b8286015b84811015613f3b57613f2e81613ec1565b8352918301918301613f1d565b509695505050505050565b5f805f60608486031215613f58575f80fd5b83356001600160401b0380821115613f6e575f80fd5b613f7a87838801613ed7565b94506020860135915080821115613f8f575f80fd5b50613f9c86828701613ed7565b9250506040840135613fad81613cea565b809150509250925092565b5f805f805f60a08688031215613fcc575f80fd5b853594506020860135935060408601359250606086013591506080860135613d5d81613cea565b5f805f60608486031215614005575f80fd5b833561401081613cea565b9250602084013561402081613cea565b91506040840135613fad81613cea565b5f82601f83011261403f575f80fd5b8135602061404f613ef683613e9f565b82815260059290921b8401810191818101908684111561406d575f80fd5b8286015b84811015613f3b5780358352918301918301614071565b5f805f806080858703121561409b575f80fd5b84356001600160401b03808211156140b1575f80fd5b6140bd88838901614030565b955060208701359150808211156140d2575f80fd5b6140de88838901614030565b945060408701359150808211156140f3575f80fd5b5061410087828801613c7f565b9250506060850135613e2381613cea565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f805b848110156141b357898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b8083101561419e5783516001600160e01b0319168252928b019260019290920191908b0190614174565b50978a01979550505091870191600101614137565b50919998505050505050505050565b5f805f80608085870312156141d5575f80fd5b84356001600160401b03808211156141eb575f80fd5b6141f788838901613c7f565b9550602087013591508082111561420c575f80fd5b6140de88838901613c7f565b5f5b8381101561423257818101518382015260200161421a565b50505f910152565b5f8151808452614251816020860160208601614218565b601f01601f19169290920160200192915050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b828110156142b857603f198886030184526142a685835161423a565b9450928501929085019060010161428a565b5092979650505050505050565b5f805f606084860312156142d7575f80fd5b83356001600160401b03808211156142ed575f80fd5b6142f987838801614030565b9450602086013591508082111561430e575f80fd5b50613f9c86828701614030565b5f805f6060848603121561432d575f80fd5b833561433881613cea565b925060208401356001600160401b03811115614352575f80fd5b613f9c86828701613c7f565b5f805f8060808587031215614371575f80fd5b84356001600160401b0380821115614387575f80fd5b61439388838901613ed7565b955060208701359150808211156143a8575f80fd5b6140de88838901613ed7565b5f805f80608085870312156143c7575f80fd5b84356143d281613cea565b935060208501356143e281613cea565b925060408501356001600160401b038111156143fc575f80fd5b61410087828801613c7f565b5f8060408385031215614419575f80fd5b823561442481613cea565b9150602083013561443481613cea565b809150509250929050565b5f805f805f805f80610100898b031215614457575f80fd5b61446089613ec1565b975061446e60208a01613ec1565b965060408901356001600160401b0380821115614489575f80fd5b6144958c838d01613c7f565b975060608b01359150808211156144aa575f80fd5b6144b68c838d01613c7f565b965060808b01359150808211156144cb575f80fd5b6144d78c838d01613c7f565b955060a08b01359150808211156144ec575f80fd5b506144f98b828c01613c7f565b93505061450860c08a01613cf7565b915061451660e08a01613cf7565b90509295985092959890939650565b5f805f60608486031215614537575f80fd5b83356001600160401b038082111561454d575f80fd5b61455987838801613c7f565b9450602086013591508082111561456e575f80fd5b50613f9c86828701613c7f565b6001600160a01b03929092168252602082015260400190565b5f602082840312156145a4575f80fd5b5051919050565b6020808252601e908201527f6578706563746564206661696c757265206e6f74207472696767657265640000604082015260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6020808252818101527f756e6578706563746564206661696c7572652077617320747269676765726564604082015260600190565b600181811c9082168061464c57607f821691505b60208210810361466a57634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160e01b03198316815281515f90614692816004850160208701614218565b919091016004019392505050565b5f82516146b1818460208701614218565b9190910192915050565b5f602082840312156146cb575f80fd5b81516146d681613cea565b9392505050565b60408152600560408201526422b93937b960d91b6060820152608060208201525f6136d6608083018461423a565b60208082526021908201527f4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e746040820152605d60f81b606082015260800190565b604081525f61477560408301600a815269204d61782044656c746160b01b602082015260400190565b905082602083015292915050565b604081525f61477560408301600a815269202020202044656c746160b01b602082015260400190565b600a8152690808080808081319599d60b21b602082015260400190565b604081525f6147da604083016147ac565b82810360208401526138308185613d9c565b600a8152690808080808149a59da1d60b21b602082015260400190565b604081525f6147da604083016147ec565b60208082526022908201527f4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b606081525f61488760608301600c81526b08080808080808081319599d60a21b602082015260400190565b6020830194909452506040015290565b606081525f61488760608301600c81526b08080808080808149a59da1d60a21b602082015260400190565b6060808252600c908201526b204d617820252044656c746160a01b60808201526020810192909252604082015260a00190565b6060808252600c908201526b2020202020252044656c746160a01b60808201526020810192909252604082015260a00190565b604081525f61477560408301600c81526b08080808080808081319599d60a21b602082015260400190565b604081525f61477560408301600c81526b08080808080808149a59da1d60a21b602082015260400190565b604081525f61498f604083016147ac565b8281036020840152613830818561423a565b604081525f61498f604083016147ec565b604081525f614775604083016147ac565b604081525f614775604083016147ec565b5f8151808452602080850194508084015f5b83811015613dd3578151875295820195908201906001016149e6565b602081525f6136d660208301846149d4565b606081525f614887606083016147ac565b606081525f614887606083016147ec565b606081525f61488760608301600a815269204d61782044656c746160b01b602082015260400190565b606081525f61488760608301600a815269202020202044656c746160b01b602082015260400190565b604081525f614a99604083016147ac565b828103602084015261383081856149d4565b604081525f614a99604083016147ec565b60408152601760408201527f20204c6566742063616c6c2072657665727420646174610000000000000000006060820152608060208201525f6136d6608083018461423a565b60408152601760408201527f2052696768742063616c6c2072657475726e20646174610000000000000000006060820152608060208201525f6136d6608083018461423a565b60408152601760408201527f20204c6566742063616c6c2072657475726e20646174610000000000000000006060820152608060208201525f6136d6608083018461423a565b60408152601760408201527f2052696768742063616c6c2072657665727420646174610000000000000000006060820152608060208201525f6136d6608083018461423a565b634e487b7160e01b5f52601160045260245ffd5b808201808211156136d9576136d9614bd4565b80820281158282048414176136d9576136d9614bd4565b5f82614c2c57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156136d9576136d9614bd4565b5f600160ff1b8201614c5857614c58614bd4565b505f0390565b634e487b7160e01b5f52603260045260245ffd5b5f60018201614c8357614c83614bd4565b506001019056fe41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50eb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35835da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a952fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168d26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18b2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a26469706673582212201c0a7b9e4c80be5f849dc992bc1ea50f3f811d99c5eadadfac4b8de2cce58d6364736f6c63430008140033","sourceMap":"27288:6922:292:-:0;;;1572:26:268;;;1594:4;-1:-1:-1;;1572:26:268;;;;;;;;3288:44:273;;;;;;;;;;;27288:6922:292;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061023f575f3560e01c8063825fcd5511610135578063cdfdd029116100b4578063f49ae07511610079578063f49ae075146104bb578063f5e5cdad146104ce578063f77c2b4d146104e1578063fa7626d4146104f4578063fb033bb514610500575f80fd5b8063cdfdd02914610467578063d4448e671461047a578063d46df40a1461048d578063e20c9f71146104a0578063e9f8c699146104a8575f80fd5b8063b5508aa9116100fa578063b5508aa91461040e578063b5f9080714610416578063ba414fa614610429578063bfe7025e14610441578063c387459f14610454575f80fd5b8063825fcd55146103b857806385226c81146103cb5780638da27ae2146103e0578063916a17c6146103f35780639cd7f336146103fb575f80fd5b80634291328a116101c15780635a3edf88116101865780635a3edf88146103575780635f2b2caa1461036a57806366d9a9a01461037d5780636c208b3d146103925780637cb850c2146103a5575f80fd5b80634291328a146102f85780634975e7721461030b5780634d49cb641461031e5780634e679c3c14610331578063562d01d514610344575f80fd5b8063341dc6b511610207578063341dc6b5146102af57806335dfe029146102c257806338b92241146102d55780633e5e3c23146102e85780633f7286f4146102f0575f80fd5b80630513e8561461024357806311ea40d8146102585780631ed7831c1461026b57806320b255e514610289578063224921c11461029c575b5f80fd5b610256610251366004613d02565b610513565b005b610256610266366004613d6b565b6106ff565b6102736108da565b6040516102809190613dde565b60405180910390f35b610256610297366004613df0565b61093a565b6102566102aa366004613e2e565b610b1b565b6102566102bd366004613f46565b610cff565b6102566102d0366004613fb8565b610ed5565b6102566102e3366004613d02565b610f65565b610273610ff5565b610273611053565b610256610306366004613df0565b6110b1565b610256610319366004613df0565b611140565b61025661032c366004613ff3565b6111cf565b61025661033f366004613df0565b61125d565b610256610352366004613e2e565b6112ec565b610256610365366004614088565b61137d565b610256610378366004613fb8565b61140c565b61038561149c565b6040516102809190614111565b6102566103a0366004613d02565b611586565b6102566103b3366004613e2e565b611616565b6102566103c63660046141c2565b6116a7565b6103d3611736565b6040516102809190614265565b6102566103ee366004613fb8565b611801565b610385611891565b610256610409366004613e2e565b611972565b6103d3611a03565b6102566104243660046142c5565b611ace565b610431611b5c565b6040519015158152602001610280565b61025661044f36600461431b565b611c75565b610256610462366004613fb8565b611d03565b61025661047536600461435e565b611d93565b6102566104883660046143b4565b611e22565b61025661049b366004614408565b611eb1565b610273612086565b6102566104b636600461443f565b6120e4565b6102566104c93660046142c5565b6122ca565b6102566104dc366004614525565b612358565b6102566104ef366004614088565b6123e6565b5f546104319060ff1681565b61025661050e366004613d02565b612475565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906105549083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561056f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105939190614594565b141590506105a387878787612505565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d70906105e29083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156105fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106219190614594565b141590508115156001036106365750506106f7565b82156106d6576001811515146106675760405162461bcd60e51b815260040161065e906145ab565b60405180910390fd5b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb906106a49083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b1580156106bb575f80fd5b505af11580156106cd573d5f803e3d5ffd5b505050506106f4565b80156106f45760405162461bcd60e51b815260040161065e90614603565b50505b505050505050565b604051630667f9d760e41b81526001905f9081905f80516020614ccb8339815191529063667f9d70906107419083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561075c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107809190614594565b1415905061078d83612549565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d70906107cc9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156107e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080b9190614594565b1415905081151560010361081f5750505050565b82156108b6576001811515146108475760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb906108849083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b15801561089b575f80fd5b505af11580156108ad573d5f803e3d5ffd5b505050506108d4565b80156108d45760405162461bcd60e51b815260040161065e90614603565b50505050565b6060600d80548060200260200160405190810160405280929190818152602001828054801561093057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610912575b5050505050905090565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d709061097b9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610996573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ba9190614594565b141590506109c9868686612578565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d7090610a089083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a479190614594565b14159050811515600103610a5c575050610b14565b8215610af357600181151514610a845760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb90610ac19083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b158015610ad8575f80fd5b505af1158015610aea573d5f803e3d5ffd5b50505050610b11565b8015610b115760405162461bcd60e51b815260040161065e90614603565b50505b5050505050565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090610b5c9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610b77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9b9190614594565b14159050610bac8888888888612686565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d7090610beb9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610c06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2a9190614594565b14159050811515600103610c3f575050610b11565b8215610cd657600181151514610c675760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb90610ca49083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b158015610cbb575f80fd5b505af1158015610ccd573d5f803e3d5ffd5b50505050610cf4565b8015610cf45760405162461bcd60e51b815260040161065e90614603565b505050505050505050565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090610d409083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610d5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7f9190614594565b14159050610d8d85856126e2565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d7090610dcc9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610de7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0b9190614594565b14159050811515600103610e205750506108d4565b8215610eb757600181151514610e485760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb90610e859083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b158015610e9c575f80fd5b505af1158015610eae573d5f803e3d5ffd5b505050506106f7565b80156106f75760405162461bcd60e51b815260040161065e90614603565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090610f169083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610f31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f559190614594565b141590506105a387878787612813565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090610fa69083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015610fc1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe59190614594565b141590506105a387878787612902565b6060600f80548060200260200160405190810160405280929190818152602001828054801561093057602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610912575050505050905090565b6060600e80548060200260200160405190810160405280929190818152602001828054801561093057602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610912575050505050905090565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906110f29083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561110d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111319190614594565b141590506109c9868686612954565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906111819083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561119c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c09190614594565b141590506109c9868686612a2f565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906112109083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561122b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124f9190614594565b14159050610d8d8585612ab7565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d709061129e9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156112b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112dd9190614594565b141590506109c9868686612beb565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d709061132d9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611348573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136c9190614594565b14159050610bac8888888888612c62565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906113be9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156113d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fd9190614594565b141590506109c9868686612ca7565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d709061144d9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611468573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148c9190614594565b141590506105a387878787612d28565b60606012805480602002602001604051908101604052809291908181526020015f905b8282101561157d575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561156557602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116115275790505b505050505081525050815260200190600101906114bf565b50505050905090565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906115c79083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156115e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116069190614594565b141590506105a387878787612db4565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906116579083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611672573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116969190614594565b14159050610bac8888888888612df8565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906116e89083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611703573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117279190614594565b141590506109c9868686612e4f565b60606011805480602002602001604051908101604052809291908181526020015f905b8282101561157d578382905f5260205f2001805461177690614638565b80601f01602080910402602001604051908101604052809291908181526020018280546117a290614638565b80156117ed5780601f106117c4576101008083540402835291602001916117ed565b820191905f5260205f20905b8154815290600101906020018083116117d057829003601f168201915b505050505081526020019060010190611759565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906118429083906519985a5b195960d21b9060040161457b565b602060405180830381865afa15801561185d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118819190614594565b141590506105a387878787612e5a565b60606013805480602002602001604051908101604052809291908181526020015f905b8282101561157d575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561195a57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161191c5790505b505050505081525050815260200190600101906118b4565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906119b39083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156119ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f29190614594565b14159050610bac8888888888612f21565b60606010805480602002602001604051908101604052809291908181526020015f905b8282101561157d578382905f5260205f20018054611a4390614638565b80601f0160208091040260200160405190810160405280929190818152602001828054611a6f90614638565b8015611aba5780601f10611a9157610100808354040283529160200191611aba565b820191905f5260205f20905b815481529060010190602001808311611a9d57829003601f168201915b505050505081526020019060010190611a26565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611b0f9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b4e9190614594565b14159050610d8d8585612f66565b5f8054610100900460ff1615611b7a57505f54610100900460ff1690565b5f5f80516020614ccb8339815191523b15611c70576040515f905f80516020614ccb833981519152907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc490611bde9083906519985a5b195960d21b9060200161457b565b60408051601f1981840301815290829052611bfc9291602001614670565b60408051601f1981840301815290829052611c16916146a0565b5f604051808303815f865af19150503d805f8114611c4f576040519150601f19603f3d011682016040523d82523d5f602084013e611c54565b606091505b5091505080806020019051810190611c6c91906146bb565b9150505b919050565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611cb69083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611cd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf59190614594565b14159050610d8d858561307e565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611d449083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611d5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d839190614594565b141590506105a387878787613089565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611dd49083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611def573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e139190614594565b141590506109c9868686613104565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611e639083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611e7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ea29190614594565b141590506109c9868686613185565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d7090611ef29083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611f0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f319190614594565b14159050611f3e846131be565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d7090611f7d9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015611f98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbc9190614594565b14159050811515600103611fd1575050505050565b821561206857600181151514611ff95760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb906120369083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b15801561204d575f80fd5b505af115801561205f573d5f803e3d5ffd5b50505050610b14565b8015610b145760405162461bcd60e51b815260040161065e90614603565b6060600c80548060200260200160405190810160405280929190818152602001828054801561093057602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610912575050505050905090565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906121259083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015612140573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121649190614594565b141590506121758a898b8a886131c8565b604051630667f9d760e41b81525f9081905f80516020614ccb8339815191529063667f9d70906121b49083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156121cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f39190614594565b14159050811515600103612208575050610cf4565b821561229f576001811515146122305760405162461bcd60e51b815260040161065e906145ab565b6040516370ca10bb60e01b81525f80516020614ccb833981519152906370ca10bb9061226d9083906519985a5b195960d21b905f906004016145e2565b5f604051808303815f87803b158015612284575f80fd5b505af1158015612296573d5f803e3d5ffd5b505050506122bd565b80156122bd5760405162461bcd60e51b815260040161065e90614603565b5050505050505050505050565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d709061230b9083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015612326573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061234a9190614594565b14159050610d8d8585613493565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906123999083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156123b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d89190614594565b14159050610d8d85856135ac565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906124279083906519985a5b195960d21b9060040161457b565b602060405180830381865afa158015612442573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124669190614594565b141590506109c98686866135b6565b604051630667f9d760e41b815281905f9081905f80516020614ccb8339815191529063667f9d70906124b69083906519985a5b195960d21b9060040161457b565b602060405180830381865afa1580156124d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f59190614594565b141590506105a387878787613637565b5f612510858561368d565b905082811115610b14575f80516020614ceb8339815191528260405161253691906146dd565b60405180910390a1610b14858585612578565b5f80516020614ceb8339815191528160405161256591906146dd565b60405180910390a16125756136df565b50565b5f612583848461368d565b9050818111156108d4575f80516020614c8b8339815191526040516125a79061470b565b60405180910390a160408051818152600b818301526a080808080808081319599d60aa1b60608201526020810186905290515f80516020614d2b8339815191529181900360800190a160408051818152600b918101919091526a080808080808149a59da1d60aa1b6060820152602081018490525f80516020614d2b833981519152906080015b60405180910390a15f80516020614d6b83398151915282604051612652919061474c565b60405180910390a15f80516020614d6b833981519152816040516126769190614783565b60405180910390a16108d46136df565b835f0361269d576126988585836137d0565b610b14565b5f6126a88686613805565b9050838111156106f7575f80516020614ceb833981519152826040516126ce91906146dd565b60405180910390a16106f786868686612813565b806040516020016126f39190613dde565b604051602081830303815290604052805190602001208260405160200161271a9190613dde565b604051602081830303815290604052805190602001201461280f575f80516020614c8b8339815191526040516127919060208082526027908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464604082015266726573735b5d5d60c81b606082015260800190565b60405180910390a17f3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd826040516127c891906147c9565b60405180910390a17f3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd816040516127ff9190614809565b60405180910390a161280f6136df565b5050565b825f03612829576128248484613838565b6108d4565b5f6128348585613805565b905082811115610b14575f80516020614c8b8339815191526040516128589061481a565b60405180910390a15f80516020614cab833981519152858360405161287e92919061485c565b60405180910390a15f80516020614cab83398151915284836040516128a4929190614897565b60405180910390a15f80516020614cab8339815191528360126040516128cb9291906148c2565b60405180910390a15f80516020614cab8339815191528160126040516128f29291906148f5565b60405180910390a1610b146136df565b825f03612914576128248484836138de565b5f61291f8585613913565b905082811115610b14575f80516020614ceb8339815191528260405161294591906146dd565b60405180910390a1610b148585855b815f0361296a576129658383613953565b505050565b5f6129758484613913565b9050818111156108d4575f80516020614c8b8339815191526040516129999061470b565b60405180910390a15f80516020614d2b833981519152846040516129bd9190614928565b60405180910390a15f80516020614d2b833981519152836040516129e19190614953565b60405180910390a15f80516020614cab833981519152826012604051612a089291906148c2565b60405180910390a15f80516020614cab8339815191528160126040516126769291906148f5565b815f03612a40576129658383613838565b5f612a4b8484613805565b9050818111156108d4575f80516020614c8b833981519152604051612a6f9061481a565b60405180910390a15f80516020614d6b83398151915284604051612a939190614928565b60405180910390a15f80516020614d6b833981519152836040516129e19190614953565b8015158215151461280f575f80516020614c8b833981519152604051612b199060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6040820152616c5d60f01b606082015260800190565b60405180910390a15f80516020614ceb83398151915282612b57576040518060400160405280600581526020016466616c736560d81b815250612b75565b604051806040016040528060048152602001637472756560e01b8152505b604051612b82919061497e565b60405180910390a15f80516020614ceb83398151915281612bc0576040518060400160405280600581526020016466616c736560d81b815250612bde565b604051806040016040528060048152602001637472756560e01b8152505b6040516127ff91906149a1565b5f612bf684846139f8565b9050818111156108d4575f80516020614c8b833981519152604051612c1a9061481a565b60405180910390a15f80516020614d6b83398151915284604051612c3e91906149b2565b60405180910390a15f80516020614d6b8339815191528360405161262e91906149c3565b5f612c6d86866139f8565b9050838111156106f7575f80516020614ceb83398151915282604051612c9391906146dd565b60405180910390a16106f786868686613089565b81604051602001612cb89190614a02565b6040516020818303038152906040528051906020012083604051602001612cdf9190614a02565b6040516020818303038152906040528051906020012014612965575f80516020614ceb83398151915281604051612d1691906146dd565b60405180910390a16129658383612f66565b825f03612d39576128248484613953565b5f612d448585613913565b905082811115610b14575f80516020614c8b833981519152604051612d689061470b565b60405180910390a15f80516020614d0b8339815191528583604051612d8e92919061485c565b60405180910390a15f80516020614d0b83398151915284836040516128a4929190614897565b5f612dbf85856139f8565b905082811115610b14575f80516020614ceb83398151915282604051612de591906146dd565b60405180910390a1610b14858585612beb565b835f03612e0a576126988585836138de565b5f612e158686613913565b9050838111156106f7575f80516020614ceb83398151915282604051612e3b91906146dd565b60405180910390a16106f786868686612d28565b612965838383613a19565b5f612e65858561368d565b905082811115610b14575f80516020614c8b833981519152604051612e899061470b565b60405180910390a15f80516020614d0b8339815191528583604051612eaf929190614a14565b60405180910390a15f80516020614d0b8339815191528483604051612ed5929190614a25565b60405180910390a15f80516020614cab8339815191528383604051612efb929190614a36565b60405180910390a15f80516020614cab83398151915281836040516128f2929190614a5f565b5f612f2c868661368d565b9050838111156106f7575f80516020614ceb83398151915282604051612f5291906146dd565b60405180910390a16106f786868686612e5a565b80604051602001612f779190614a02565b6040516020818303038152906040528051906020012082604051602001612f9e9190614a02565b604051602081830303815290604052805190602001201461280f575f80516020614c8b8339815191526040516130129060208082526024908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015263745b5d5d60e01b606082015260800190565b60405180910390a17eaaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb826040516130489190614a88565b60405180910390a17eaaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb816040516127ff9190614aab565b61280f821582613a55565b5f61309485856139f8565b905082811115610b14575f80516020614c8b8339815191526040516130b89061481a565b60405180910390a15f80516020614cab83398151915285836040516130de929190614a14565b60405180910390a15f80516020614cab8339815191528483604051612ed5929190614a25565b816040516020016131159190613dde565b604051602081830303815290604052805190602001208360405160200161313c9190613dde565b6040516020818303038152906040528051906020012014612965575f80516020614ceb8339815191528160405161317391906146dd565b60405180910390a161296583836126e2565b81151583151514612965575f80516020614ceb833981519152816040516131ac91906146dd565b60405180910390a16129658383612ab7565b6125758115613a83565b5f80866001600160a01b0316866040516131e291906146a0565b5f604051808303815f865af19150503d805f811461321b576040519150601f19603f3d011682016040523d82523d5f602084013e613220565b606091505b50915091505f80866001600160a01b03168660405161323f91906146a0565b5f604051808303815f865af19150503d805f8114613278576040519150601f19603f3d011682016040523d82523d5f602084013e61327d565b606091505b509150915083801561328c5750815b156132d1576132d183826040518060400160405280601f81526020017f43616c6c2072657475726e206461746120646f6573206e6f74206d6174636800815250612e4f565b831580156132dd575081155b80156132e65750845b1561332b5761332b83826040518060400160405280601f81526020017f43616c6c20726576657274206461746120646f6573206e6f74206d6174636800815250612e4f565b831580156133365750815b156133df575f80516020614c8b833981519152604051613387906020808252601b908201527f4572726f723a2043616c6c732077657265206e6f7420657175616c0000000000604082015260600190565b60405180910390a15f80516020614d4b833981519152836040516133ab9190614abc565b60405180910390a15f80516020614d4b833981519152816040516133cf9190614b02565b60405180910390a16133df6136df565b8380156133ea575081155b15610cf4575f80516020614c8b83398151915260405161343b906020808252601b908201527f4572726f723a2043616c6c732077657265206e6f7420657175616c0000000000604082015260600190565b60405180910390a15f80516020614d4b8339815191528360405161345f9190614b48565b60405180910390a15f80516020614d4b833981519152816040516134839190614b8e565b60405180910390a1610cf46136df565b806040516020016134a49190614a02565b60405160208183030381529060405280519060200120826040516020016134cb9190614a02565b604051602081830303815290604052805190602001201461280f575f80516020614c8b83398151915260405161353e9060208082526023908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e746040820152625b5d5d60e81b606082015260800190565b60405180910390a17fa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57826040516135759190614a88565b60405180910390a17fa73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57816040516127ff9190614aab565b61280f8282613ad4565b816040516020016135c79190614a02565b60405160208183030381529060405280519060200120836040516020016135ee9190614a02565b6040516020818303038152906040528051906020012014612965575f80516020614ceb8339815191528160405161362591906146dd565b60405180910390a16129658383613493565b825f03613649576128248484836137d0565b5f6136548585613805565b905082811115610b14575f80516020614ceb8339815191528260405161367a91906146dd565b60405180910390a1610b14858585612a2f565b5f5f1982841813156136ba576136b36136a584613b82565b6136ae84613b82565b6139f8565b90506136d9565b6136c382613b82565b6136cc84613b82565b6136d69190614be8565b90505b92915050565b5f80516020614ccb8339815191523b156137c0576040515f905f80516020614ccb833981519152907f70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc4906137459083906519985a5b195960d21b906001906020016145e2565b60408051601f19818403018152908290526137639291602001614670565b60408051601f198184030181529082905261377d916146a0565b5f604051808303815f865af19150503d805f81146137b6576040519150601f19603f3d011682016040523d82523d5f602084013e6137bb565b606091505b505050505b5f805461ff001916610100179055565b818314612965575f80516020614ceb833981519152816040516137f391906146dd565b60405180910390a16129658383613838565b5f8061381184846139f8565b90508261382682670de0b6b3a7640000614bfb565b6138309190614c12565b949350505050565b80821461280f575f80516020614c8b8339815191526040516138969060208082526022908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b60405180910390a15f80516020614d6b833981519152826040516138ba91906149b2565b60405180910390a15f80516020614d6b833981519152816040516127ff91906149c3565b818314612965575f80516020614ceb8339815191528160405161390191906146dd565b60405180910390a16129658383613953565b5f8061391f848461368d565b90505f61392b84613b82565b90508061394083670de0b6b3a7640000614bfb565b61394a9190614c12565b95945050505050565b80821461280f575f80516020614c8b8339815191526040516139b09060208082526021908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e746040820152605d60f81b606082015260800190565b60405180910390a15f80516020614d2b833981519152826040516139d491906149b2565b60405180910390a15f80516020614d2b833981519152816040516127ff91906149c3565b5f818311613a0f57613a0a8383614c31565b6136d6565b6136d68284614c31565b613a238383613bb2565b612965575f80516020614ceb83398151915281604051613a4391906146dd565b60405180910390a16129658383613ad4565b8161280f575f80516020614ceb83398151915281604051613a7691906146dd565b60405180910390a161280f825b80612575575f80516020614c8b8339815191526040516125659060208082526017908201527f4572726f723a20417373657274696f6e204661696c6564000000000000000000604082015260600190565b613ade8282613bb2565b61280f575f80516020614c8b833981519152604051613b3a9060208082526023908201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b62797460408201526265735d60e81b606082015260800190565b60405180910390a15f80516020614d4b83398151915282604051613b5e919061497e565b60405180910390a15f80516020614d4b833981519152816040516127ff91906149a1565b5f600160ff1b8203613b995750600160ff1b919050565b5f8213613bae57613ba982614c44565b6136d9565b5090565b805182516001919003613c33575f5b8351811015613c2d57828181518110613bdc57613bdc614c5e565b602001015160f81c60f81b6001600160f81b031916848281518110613c0357613c03614c5e565b01602001516001600160f81b03191614613c1b575f91505b80613c2581614c72565b915050613bc1565b506136d9565b505f92915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715613c7757613c77613c3b565b604052919050565b5f82601f830112613c8e575f80fd5b81356001600160401b03811115613ca757613ca7613c3b565b613cba601f8201601f1916602001613c4f565b818152846020838601011115613cce575f80fd5b816020850160208301375f918101602001919091529392505050565b8015158114612575575f80fd5b8035611c7081613cea565b5f805f805f60a08688031215613d16575f80fd5b85359450602086013593506040860135925060608601356001600160401b03811115613d40575f80fd5b613d4c88828901613c7f565b9250506080860135613d5d81613cea565b809150509295509295909350565b5f60208284031215613d7b575f80fd5b81356001600160401b03811115613d90575f80fd5b61383084828501613c7f565b5f8151808452602080850194508084015f5b83811015613dd35781516001600160a01b031687529582019590820190600101613dae565b509495945050505050565b602081525f6136d66020830184613d9c565b5f805f8060808587031215613e03575f80fd5b8435935060208501359250604085013591506060850135613e2381613cea565b939692955090935050565b5f805f805f8060c08789031215613e43575f80fd5b8635955060208701359450604087013593506060870135925060808701356001600160401b03811115613e74575f80fd5b613e8089828a01613c7f565b92505060a0870135613e9181613cea565b809150509295509295509295565b5f6001600160401b03821115613eb757613eb7613c3b565b5060051b60200190565b80356001600160a01b0381168114611c70575f80fd5b5f82601f830112613ee6575f80fd5b81356020613efb613ef683613e9f565b613c4f565b82815260059290921b84018101918181019086841115613f19575f80fd5b8286015b84811015613f3b57613f2e81613ec1565b8352918301918301613f1d565b509695505050505050565b5f805f60608486031215613f58575f80fd5b83356001600160401b0380821115613f6e575f80fd5b613f7a87838801613ed7565b94506020860135915080821115613f8f575f80fd5b50613f9c86828701613ed7565b9250506040840135613fad81613cea565b809150509250925092565b5f805f805f60a08688031215613fcc575f80fd5b853594506020860135935060408601359250606086013591506080860135613d5d81613cea565b5f805f60608486031215614005575f80fd5b833561401081613cea565b9250602084013561402081613cea565b91506040840135613fad81613cea565b5f82601f83011261403f575f80fd5b8135602061404f613ef683613e9f565b82815260059290921b8401810191818101908684111561406d575f80fd5b8286015b84811015613f3b5780358352918301918301614071565b5f805f806080858703121561409b575f80fd5b84356001600160401b03808211156140b1575f80fd5b6140bd88838901614030565b955060208701359150808211156140d2575f80fd5b6140de88838901614030565b945060408701359150808211156140f3575f80fd5b5061410087828801613c7f565b9250506060850135613e2381613cea565b5f6020808301818452808551808352604092508286019150828160051b8701018488015f805b848110156141b357898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b8083101561419e5783516001600160e01b0319168252928b019260019290920191908b0190614174565b50978a01979550505091870191600101614137565b50919998505050505050505050565b5f805f80608085870312156141d5575f80fd5b84356001600160401b03808211156141eb575f80fd5b6141f788838901613c7f565b9550602087013591508082111561420c575f80fd5b6140de88838901613c7f565b5f5b8381101561423257818101518382015260200161421a565b50505f910152565b5f8151808452614251816020860160208601614218565b601f01601f19169290920160200192915050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b828110156142b857603f198886030184526142a685835161423a565b9450928501929085019060010161428a565b5092979650505050505050565b5f805f606084860312156142d7575f80fd5b83356001600160401b03808211156142ed575f80fd5b6142f987838801614030565b9450602086013591508082111561430e575f80fd5b50613f9c86828701614030565b5f805f6060848603121561432d575f80fd5b833561433881613cea565b925060208401356001600160401b03811115614352575f80fd5b613f9c86828701613c7f565b5f805f8060808587031215614371575f80fd5b84356001600160401b0380821115614387575f80fd5b61439388838901613ed7565b955060208701359150808211156143a8575f80fd5b6140de88838901613ed7565b5f805f80608085870312156143c7575f80fd5b84356143d281613cea565b935060208501356143e281613cea565b925060408501356001600160401b038111156143fc575f80fd5b61410087828801613c7f565b5f8060408385031215614419575f80fd5b823561442481613cea565b9150602083013561443481613cea565b809150509250929050565b5f805f805f805f80610100898b031215614457575f80fd5b61446089613ec1565b975061446e60208a01613ec1565b965060408901356001600160401b0380821115614489575f80fd5b6144958c838d01613c7f565b975060608b01359150808211156144aa575f80fd5b6144b68c838d01613c7f565b965060808b01359150808211156144cb575f80fd5b6144d78c838d01613c7f565b955060a08b01359150808211156144ec575f80fd5b506144f98b828c01613c7f565b93505061450860c08a01613cf7565b915061451660e08a01613cf7565b90509295985092959890939650565b5f805f60608486031215614537575f80fd5b83356001600160401b038082111561454d575f80fd5b61455987838801613c7f565b9450602086013591508082111561456e575f80fd5b50613f9c86828701613c7f565b6001600160a01b03929092168252602082015260400190565b5f602082840312156145a4575f80fd5b5051919050565b6020808252601e908201527f6578706563746564206661696c757265206e6f74207472696767657265640000604082015260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6020808252818101527f756e6578706563746564206661696c7572652077617320747269676765726564604082015260600190565b600181811c9082168061464c57607f821691505b60208210810361466a57634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160e01b03198316815281515f90614692816004850160208701614218565b919091016004019392505050565b5f82516146b1818460208701614218565b9190910192915050565b5f602082840312156146cb575f80fd5b81516146d681613cea565b9392505050565b60408152600560408201526422b93937b960d91b6060820152608060208201525f6136d6608083018461423a565b60208082526021908201527f4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e746040820152605d60f81b606082015260800190565b604081525f61477560408301600a815269204d61782044656c746160b01b602082015260400190565b905082602083015292915050565b604081525f61477560408301600a815269202020202044656c746160b01b602082015260400190565b600a8152690808080808081319599d60b21b602082015260400190565b604081525f6147da604083016147ac565b82810360208401526138308185613d9c565b600a8152690808080808149a59da1d60b21b602082015260400190565b604081525f6147da604083016147ec565b60208082526022908201527f4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e604082015261745d60f01b606082015260800190565b606081525f61488760608301600c81526b08080808080808081319599d60a21b602082015260400190565b6020830194909452506040015290565b606081525f61488760608301600c81526b08080808080808149a59da1d60a21b602082015260400190565b6060808252600c908201526b204d617820252044656c746160a01b60808201526020810192909252604082015260a00190565b6060808252600c908201526b2020202020252044656c746160a01b60808201526020810192909252604082015260a00190565b604081525f61477560408301600c81526b08080808080808081319599d60a21b602082015260400190565b604081525f61477560408301600c81526b08080808080808149a59da1d60a21b602082015260400190565b604081525f61498f604083016147ac565b8281036020840152613830818561423a565b604081525f61498f604083016147ec565b604081525f614775604083016147ac565b604081525f614775604083016147ec565b5f8151808452602080850194508084015f5b83811015613dd3578151875295820195908201906001016149e6565b602081525f6136d660208301846149d4565b606081525f614887606083016147ac565b606081525f614887606083016147ec565b606081525f61488760608301600a815269204d61782044656c746160b01b602082015260400190565b606081525f61488760608301600a815269202020202044656c746160b01b602082015260400190565b604081525f614a99604083016147ac565b828103602084015261383081856149d4565b604081525f614a99604083016147ec565b60408152601760408201527f20204c6566742063616c6c2072657665727420646174610000000000000000006060820152608060208201525f6136d6608083018461423a565b60408152601760408201527f2052696768742063616c6c2072657475726e20646174610000000000000000006060820152608060208201525f6136d6608083018461423a565b60408152601760408201527f20204c6566742063616c6c2072657475726e20646174610000000000000000006060820152608060208201525f6136d6608083018461423a565b60408152601760408201527f2052696768742063616c6c2072657665727420646174610000000000000000006060820152608060208201525f6136d6608083018461423a565b634e487b7160e01b5f52601160045260245ffd5b808201808211156136d9576136d9614bd4565b80820281158282048414176136d9576136d9614bd4565b5f82614c2c57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156136d9576136d9614bd4565b5f600160ff1b8201614c5857614c58614bd4565b505f0390565b634e487b7160e01b5f52603260045260245ffd5b5f60018201614c8357614c83614bd4565b506001019056fe41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50eb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf35835da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a952fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168d26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18b2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a26469706673582212201c0a7b9e4c80be5f849dc992bc1ea50f3f811d99c5eadadfac4b8de2cce58d6364736f6c63430008140033","sourceMap":"27288:6922:292:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31067:212;;;;;;:::i;:::-;;:::i;:::-;;27942:89;;;;;;:::i;:::-;;:::i;2161:134:276:-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30873:188:292;;;;;;:::i;:::-;;:::i;32511:304::-;;;;;;:::i;:::-;;:::i;29201:142::-;;;;;;:::i;:::-;;:::i;32259:246::-;;;;;;:::i;:::-;;:::i;33029:226::-;;;;;;:::i;:::-;;:::i;2930:133:276:-;;;:::i;2631:141::-;;;:::i;32821:202:292:-;;;;;;:::i;:::-;;:::i;31815:204::-;;;;;;:::i;:::-;;:::i;28311:118::-;;;;;;:::i;:::-;;:::i;29923:190::-;;;;;;:::i;:::-;;:::i;30577:290::-;;;;;;:::i;:::-;;:::i;29349:186::-;;;;;;:::i;:::-;;:::i;33261:244::-;;;;;;:::i;:::-;;:::i;2447:178:276:-;;;:::i;:::-;;;;;;;:::i;30119:214:292:-;;;;;;:::i;:::-;;:::i;33511:302::-;;;;;;:::i;:::-;;:::i;28723:178::-;;;;;;:::i;:::-;;:::i;2301:140:276:-;;;:::i;:::-;;;;;;;:::i;31285:230:292:-;;;;;;:::i;:::-;;:::i;2778:146:276:-;;;:::i;31521:288:292:-;;;;;;:::i;:::-;;:::i;1866:141:276:-;;;:::i;28907:142:292:-;;;;;;:::i;:::-;;:::i;1819:584:268:-;;;:::i;:::-;;;15561:14:310;;15554:22;15536:41;;15524:2;15509:18;1819:584:268;15396:187:310;28162:143:292;;;;;;:::i;:::-;;:::i;30339:232::-;;;;;;:::i;:::-;;:::i;29731:186::-;;;;;;:::i;:::-;;:::i;28435:142::-;;;;;;:::i;:::-;;:::i;28037:119::-;;;;;;:::i;:::-;;:::i;2013:142:276:-;;;:::i;33819:389:292:-;;;;;;:::i;:::-;;:::i;29055:140::-;;;;;;:::i;:::-;;:::i;28583:134::-;;;;;;:::i;:::-;;:::i;29541:184::-;;;;;;:::i;:::-;;:::i;1572:26:268:-;;;;;;;;;32025:228:292;;;;;;:::i;:::-;;:::i;31067:212::-;27386:40;;-1:-1:-1;;;27386:40:292;;31208:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;31234:38:::1;31252:1;31255;31258:8;31268:3;31234:17;:38::i;:::-;27481:40:::0;;-1:-1:-1;;;27481:40:292;;27464:14;;;;-1:-1:-1;;;;;;;;;;;27481:7:292;;;:40;;:7;;-1:-1:-1;;;27503:17:292;27481:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;-1:-1:-1;27553:16:292;;;27565:4;27553:16;27549:53;;27585:7;;;;27549:53;27616:10;27612:318;;;27663:4;27650:17;;;;27642:60;;;;-1:-1:-1;;;27642:60:292;;;;;;;:::i;:::-;;;;;;;;;27760:65;;-1:-1:-1;;;27760:65:292;;-1:-1:-1;;;;;;;;;;;27760:8:292;;;:65;;:8;;-1:-1:-1;;;27783:17:292;309:37:270;;27760:65:292;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27612:318;;;27864:18;;27856:63;;;;-1:-1:-1;;;27856:63:292;;;;;;;:::i;:::-;27360:576;;31067:212;;;;;;;:::o;27942:89::-;27386:40;;-1:-1:-1;;;27386:40:292;;27999:4;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;28015:9:::1;28020:3;28015:4;:9::i;:::-;27481:40:::0;;-1:-1:-1;;;27481:40:292;;27464:14;;;;-1:-1:-1;;;;;;;;;;;27481:7:292;;;:40;;:7;;-1:-1:-1;;;27503:17:292;27481:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;-1:-1:-1;27553:16:292;;;27565:4;27553:16;27549:53;;27585:7;;27942:89;;:::o;27549:53::-;27616:10;27612:318;;;27663:4;27650:17;;;;27642:60;;;;-1:-1:-1;;;27642:60:292;;;;;;;:::i;:::-;27760:65;;-1:-1:-1;;;27760:65:292;;-1:-1:-1;;;;;;;;;;;27760:8:292;;;:65;;:8;;-1:-1:-1;;;27783:17:292;309:37:270;;27760:65:292;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27612:318;;;27864:18;;27856:63;;;;-1:-1:-1;;;27856:63:292;;;;;;;:::i;:::-;27360:576;;27942:89;;:::o;2161:134:276:-;2208:33;2272:16;2253:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2253:35:276;;;;;;;;;;;;;;;;;;;;;;;2161:134;:::o;30873:188:292:-;27386:40;;-1:-1:-1;;;27386:40:292;;30995:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;31021:33:::1;31039:1;31042;31045:8;31021:17;:33::i;:::-;27481:40:::0;;-1:-1:-1;;;27481:40:292;;27464:14;;;;-1:-1:-1;;;;;;;;;;;27481:7:292;;;:40;;:7;;-1:-1:-1;;;27503:17:292;27481:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;-1:-1:-1;27553:16:292;;;27565:4;27553:16;27549:53;;27585:7;;;;27549:53;27616:10;27612:318;;;27663:4;27650:17;;;;27642:60;;;;-1:-1:-1;;;27642:60:292;;;;;;;:::i;:::-;27760:65;;-1:-1:-1;;;27760:65:292;;-1:-1:-1;;;;;;;;;;;27760:8:292;;;:65;;:8;;-1:-1:-1;;;27783:17:292;309:37:270;;27760:65:292;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27612:318;;;27864:18;;27856:63;;;;-1:-1:-1;;;27856:63:292;;;;;;;:::i;:::-;27360:576;;30873:188;;;;;;:::o;32511:304::-;27386:40;;-1:-1:-1;;;27386:40:292;;32724:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;32746:62:::1;32771:1;32774;32777:15;32794:8;32804:3;32746:24;:62::i;:::-;27481:40:::0;;-1:-1:-1;;;27481:40:292;;27464:14;;;;-1:-1:-1;;;;;;;;;;;27481:7:292;;;:40;;:7;;-1:-1:-1;;;27503:17:292;27481:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;-1:-1:-1;27553:16:292;;;27565:4;27553:16;27549:53;;27585:7;;;;27549:53;27616:10;27612:318;;;27663:4;27650:17;;;;27642:60;;;;-1:-1:-1;;;27642:60:292;;;;;;;:::i;:::-;27760:65;;-1:-1:-1;;;27760:65:292;;-1:-1:-1;;;;;;;;;;;27760:8:292;;;:65;;:8;;-1:-1:-1;;;27783:17:292;309:37:270;;27760:65:292;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27612:318;;;27864:18;;27856:63;;;;-1:-1:-1;;;27856:63:292;;;;;;;:::i;:::-;27360:576;;32511:304;;;;;;;:::o;29201:142::-;27386:40;;-1:-1:-1;;;27386:40:292;;29300:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;29322:14:::1;29331:1;29334;29322:8;:14::i;:::-;27481:40:::0;;-1:-1:-1;;;27481:40:292;;27464:14;;;;-1:-1:-1;;;;;;;;;;;27481:7:292;;;:40;;:7;;-1:-1:-1;;;27503:17:292;27481:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;-1:-1:-1;27553:16:292;;;27565:4;27553:16;27549:53;;27585:7;;;;27549:53;27616:10;27612:318;;;27663:4;27650:17;;;;27642:60;;;;-1:-1:-1;;;27642:60:292;;;;;;;:::i;:::-;27760:65;;-1:-1:-1;;;27760:65:292;;-1:-1:-1;;;;;;;;;;;27760:8:292;;;:65;;:8;;-1:-1:-1;;;27783:17:292;309:37:270;;27760:65:292;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27612:318;;;27864:18;;27856:63;;;;-1:-1:-1;;;27856:63:292;;;;;;;:::i;32259:246::-;27386:40;;-1:-1:-1;;;27386:40:292;;32415:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;32441:57:::1;32466:1;32469;32472:15;32489:8;32441:24;:57::i;33029:226::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;33177:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;33203:45:::1;33221:1;33224;33227:15;33244:3;33203:17;:45::i;2930:133:276:-:0;2976:33;3040:16;3021:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3021:35:276;;;;;;;;;;;;;;;;;;;;;;2930:133;:::o;2631:141::-;2679:35;2747:18;2726:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2726:39:276;;;;;;;;;;;;;;;;;;;;;;2631:141;:::o;32821:202:292:-;27386:40;;-1:-1:-1;;;27386:40:292;;32950:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;32976:40:::1;32994:1;32997;33000:15;32976:17;:40::i;31815:204::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;31946:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;31972:40:::1;31990:1;31993;31996:15;31972:17;:40::i;28311:118::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;28386:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;28408:14:::1;28417:1;28420;28408:8;:14::i;29923:190::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;30047:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;30073:33:::1;30091:1;30094;30097:8;30073:17;:33::i;30577:290::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;30783:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;30805:55:::1;30830:1;30833;30836:8;30846;30856:3;30805:24;:55::i;29349:186::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;29483:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;29509:19:::1;29518:1;29521;29524:3;29509:8;:19::i;33261:244::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;33415:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;33441:57:::1;33466:1;33469;33472:15;33489:8;33441:24;:57::i;2447:178:276:-:0;2503:48;2592:26;2563:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2563:55:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2563:55:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2447:178;:::o;30119:214:292:-;27386:40;;-1:-1:-1;;;27386:40:292;;30262:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;30288:38:::1;30306:1;30309;30312:8;30322:3;30288:17;:38::i;33511:302::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;33722:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;33744:62:::1;33769:1;33772;33775:15;33792:8;33802:3;33744:24;:62::i;28723:178::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;28849:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;28875:19:::1;28884:1;28887;28890:3;28875:8;:19::i;2301:140:276:-:0;2349:34;2416:18;2395:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31285:230:292;27386:40;;-1:-1:-1;;;27386:40:292;;31432:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;31458:50:::1;31483:1;31486;31489:8;31499;31458:24;:50::i;2778:146:276:-:0;2826:40;2899:18;2878:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2878:39:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2878:39:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31521:288:292;27386:40;;-1:-1:-1;;;27386:40:292;;31725:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;31747:55:::1;31772:1;31775;31778:8;31788;31798:3;31747:24;:55::i;1866:141:276:-:0;1915:34;1982:18;1961:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28907:142:292;27386:40;;-1:-1:-1;;;27386:40:292;;29006:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;29028:14:::1;29037:1;29040;29028:8;:14::i;1819:584:268:-:0;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:268;;;;;;;;1819:584::o;1869:528::-;1941:17;-1:-1:-1;;;;;;;;;;;2985:55:268;3066:16;1980:374;;2196:43;;2023:20;;-1:-1:-1;;;;;;;;;;;1671:64:268;2135:34;;2196:43;;1671:64;;-1:-1:-1;;;2221:17:268;2196:43;;;:::i;:::-;;;;-1:-1:-1;;2196:43:268;;;;;;;;;;2086:175;;;2196:43;2086:175;;:::i;:::-;;;;-1:-1:-1;;2086:175:268;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:268:o;28162:143:292:-;27386:40;;-1:-1:-1;;;27386:40:292;;28254:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;28276:22:::1;28288:4;28294:3;28276:11;:22::i;30339:232::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;30488:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;30514:50:::1;30539:1;30542;30545:8;30555;30514:24;:50::i;29731:186::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;29865:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;29891:19:::1;29900:1;29903;29906:3;29891:8;:19::i;28435:142::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;28529:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;28551:19:::1;28560:1;28563;28566:3;28551:8;:19::i;28037:119::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;28110:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;28132:17:::1;28144:4;28132:11;:17::i;:::-;27481:40:::0;;-1:-1:-1;;;27481:40:292;;27464:14;;;;-1:-1:-1;;;;;;;;;;;27481:7:292;;;:40;;:7;;-1:-1:-1;;;27503:17:292;27481:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;-1:-1:-1;27553:16:292;;;27565:4;27553:16;27549:53;;27585:7;;28037:119;;;:::o;27549:53::-;27616:10;27612:318;;;27663:4;27650:17;;;;27642:60;;;;-1:-1:-1;;;27642:60:292;;;;;;;:::i;:::-;27760:65;;-1:-1:-1;;;27760:65:292;;-1:-1:-1;;;;;;;;;;;27760:8:292;;;:65;;:8;;-1:-1:-1;;;27783:17:292;309:37:270;;27760:65:292;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27612:318;;;27864:18;;27856:63;;;;-1:-1:-1;;;27856:63:292;;;;;;;:::i;2013:142:276:-;2062:35;2130:18;2109:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2109:39:276;;;;;;;;;;;;;;;;;;;;;;2013:142;:::o;33819:389:292:-;27386:40;;-1:-1:-1;;;27386:40:292;;34109:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;34131:70:::1;34144:7;34153:9;34164:7;34173:9;34184:16;34131:12;:70::i;:::-;27481:40:::0;;-1:-1:-1;;;27481:40:292;;27464:14;;;;-1:-1:-1;;;;;;;;;;;27481:7:292;;;:40;;:7;;-1:-1:-1;;;27503:17:292;27481:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;-1:-1:-1;27553:16:292;;;27565:4;27553:16;27549:53;;27585:7;;;;27549:53;27616:10;27612:318;;;27663:4;27650:17;;;;27642:60;;;;-1:-1:-1;;;27642:60:292;;;;;;;:::i;:::-;27760:65;;-1:-1:-1;;;27760:65:292;;-1:-1:-1;;;;;;;;;;;27760:8:292;;;:65;;:8;;-1:-1:-1;;;27783:17:292;309:37:270;;27760:65:292;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27612:318;;;27864:18;;27856:63;;;;-1:-1:-1;;;27856:63:292;;;;;;;:::i;:::-;27360:576;;33819:389;;;;;;;;;:::o;29055:140::-;27386:40;;-1:-1:-1;;;27386:40:292;;29152:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;29174:14:::1;29183:1;29186;29174:8;:14::i;28583:134::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;28674:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;28696:14:::1;28705:1;28708;28696:8;:14::i;29541:184::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;29673:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;29699:19:::1;29708:1;29711;29714:3;29699:8;:19::i;32025:228::-:0;27386:40;;-1:-1:-1;;;27386:40:292;;32175:10;;27370:13;;;;-1:-1:-1;;;;;;;;;;;27386:7:292;;;:40;;:7;;-1:-1:-1;;;27408:17:292;27386:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;27370:73;;32201:45:::1;32219:1;32222;32225:15;32242:3;32201:17;:45::i;5688:292:272:-:0;5799:13;5815:19;5829:1;5832;5815:13;:19::i;:::-;5799:35;;5857:8;5849:5;:16;5845:129;;;-1:-1:-1;;;;;;;;;;;5912:3:272;5886:30;;;;;;:::i;:::-;;;;;;;;5930:33;5948:1;5951;5954:8;5930:17;:33::i;463:118::-;-1:-1:-1;;;;;;;;;;;554:3:272;528:30;;;;;;:::i;:::-;;;;;;;;568:6;:4;:6::i;:::-;463:118;:::o;5215:467::-;5307:13;5323:19;5337:1;5340;5323:13;:19::i;:::-;5307:35;;5365:8;5357:5;:16;5353:323;;;-1:-1:-1;;;;;;;;;;;5394:40:272;;;;;:::i;:::-;;;;;;;;5453:31;;;26359:21:310;;;26416:2;26396:18;;;26389:30;-1:-1:-1;;;26450:2:310;26435:18;;26428:41;26536:4;26521:20;;26514:36;;;5453:31:272;;-1:-1:-1;;;;;;;;;;;5453:31:272;;;;26501:3:310;5453:31:272;;;5503;;;26771:21:310;;;26828:2;26808:18;;;26801:30;;;;-1:-1:-1;;;26862:2:310;26847:18;;26840:41;26948:4;26933:20;;26926:36;;;-1:-1:-1;;;;;;;;;;;5503:31:272;26913:3:310;26898:19;5503:31:272;;;;;;;;-1:-1:-1;;;;;;;;;;;5582:8:272;5553:38;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5639:5:272;5610:35;;;;;;:::i;:::-;;;;;;;;5659:6;:4;:6::i;8962:569::-;9213:1;9218;9213:6;9209:38;;9228:19;9237:1;9240;9243:3;9228:8;:19::i;:::-;9221:26;;9209:38;9298:20;9321:26;9342:1;9345;9321:20;:26::i;:::-;9298:49;;9377:15;9362:12;:30;9358:167;;;-1:-1:-1;;;;;;;;;;;9439:3:272;9413:30;;;;;;:::i;:::-;;;;;;;;9457:57;9482:1;9485;9488:15;9505:8;9457:24;:57::i;2230:347::-;2368:1;2357:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;2347:24;;;;;;2340:1;2329:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;2319:24;;;;;;:52;2315:256;;-1:-1:-1;;;;;;;;;;;2392:46:272;;;;28209:2:310;28191:21;;;28248:2;28228:18;;;28221:30;28287:34;28282:2;28267:18;;28260:62;-1:-1:-1;;;28353:2:310;28338:18;;28331:37;28400:3;28385:19;;28007:403;2392:46:272;;;;;;;;2457:32;2487:1;2457:32;;;;;;:::i;:::-;;;;;;;;2508;2538:1;2508:32;;;;;;:::i;:::-;;;;;;;;2554:6;:4;:6::i;:::-;2230:347;;:::o;8166:790::-;8390:1;8395;8390:6;8386:33;;8405:14;8414:1;8417;8405:8;:14::i;:::-;8398:21;;8386:33;8470:20;8493:26;8514:1;8517;8493:20;:26::i;:::-;8470:49;;8549:15;8534:12;:30;8530:420;;;-1:-1:-1;;;;;;;;;;;8585:41:272;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;8684:1:272;8687:8;8645:51;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;8754:1:272;8757:8;8715:51;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;8824:15:272;8841:2;8785:59;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;8902:12:272;8916:2;8863:56;;;;;;;:::i;:::-;;;;;;;;8933:6;:4;:6::i;10173:423::-;10295:1;10300;10295:6;10291:38;;10310:19;10319:1;10322;10325:3;10310:8;:19::i;10291:38::-;10380:20;10403:26;10424:1;10427;10403:20;:26::i;:::-;10380:49;;10459:15;10444:12;:30;10440:150;;;-1:-1:-1;;;;;;;;;;;10521:3:272;10495:30;;;;;;:::i;:::-;;;;;;;;10539:40;10557:1;10560;10563:15;9537:630;9640:1;9645;9640:6;9636:33;;9655:14;9664:1;9667;9655:8;:14::i;:::-;9537:630;;;:::o;9636:33::-;9720:20;9743:26;9764:1;9767;9743:20;:26::i;:::-;9720:49;;9799:15;9784:12;:30;9780:381;;;-1:-1:-1;;;;;;;;;;;9835:40:272;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;9924:1:272;9894:32;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;9975:1:272;9945:32;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;10035:15:272;10052:2;9996:59;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;10113:12:272;10127:2;10074:56;;;;;;;:::i;6914:721::-;7105:1;7110;7105:6;7101:33;;7120:14;7129:1;7132;7120:8;:14::i;7101:33::-;7185:20;7208:26;7229:1;7232;7208:20;:26::i;:::-;7185:49;;7264:15;7249:12;:30;7245:384;;;-1:-1:-1;;;;;;;;;;;7300:41:272;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;7391:1:272;7360:33;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;7443:1:272;7412:33;;;;;;:::i;789:312::-;859:1;854:6;;:1;:6;;;850:245;;-1:-1:-1;;;;;;;;;;;881:41:272;;;;33900:2:310;33882:21;;;33939:2;33919:18;;;33912:30;33978:34;33973:2;33958:18;;33951:62;-1:-1:-1;;;34044:2:310;34029:18;;34022:32;34086:3;34071:19;;33698:398;881:41:272;;;;;;;;-1:-1:-1;;;;;;;;;;;972:1:272;:20;;;;;;;;;;;;;;;-1:-1:-1;;;972:20:272;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;972:20:272;;;;941:52;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;1043:1:272;:20;;;;;;;;;;;;;;;-1:-1:-1;;;1043:20:272;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1043:20:272;;;;1012:52;;;;;;:::i;3504:470::-;3598:13;3614:19;3628:1;3631;3614:13;:19::i;:::-;3598:35;;3656:8;3648:5;:16;3644:324;;;-1:-1:-1;;;;;;;;;;;3685:41:272;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;3774:1:272;3745:31;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;3824:1:272;3795:31;;;;;;:::i;4853:356::-;5011:13;5027:19;5041:1;5044;5027:13;:19::i;:::-;5011:35;;5069:8;5061:5;:16;5057:146;;;-1:-1:-1;;;;;;;;;;;5124:3:272;5098:30;;;;;;:::i;:::-;;;;;;;;5142:50;5167:1;5170;5173:8;5183;5142:24;:50::i;2583:256::-;2740:1;2729:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;2719:24;;;;;;2712:1;2701:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;2691:24;;;;;;:52;2687:146;;-1:-1:-1;;;;;;;;;;;2790:3:272;2764:30;;;;;;:::i;:::-;;;;;;;;2808:14;2817:1;2820;2808:8;:14::i;10602:691::-;10730:1;10735;10730:6;10726:33;;10745:14;10754:1;10757;10745:8;:14::i;10726:33::-;10810:20;10833:26;10854:1;10857;10833:20;:26::i;:::-;10810:49;;10889:15;10874:12;:30;10870:417;;;-1:-1:-1;;;;;;;;;;;10925:40:272;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;11022:1:272;11025:8;10984:50;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;11091:1:272;11094:8;11053:50;;;;;;;:::i;3980:294::-;4093:13;4109:19;4123:1;4126;4109:13;:19::i;:::-;4093:35;;4151:8;4143:5;:16;4139:129;;;-1:-1:-1;;;;;;;;;;;4206:3:272;4180:30;;;;;;:::i;:::-;;;;;;;;4224:33;4242:1;4245;4248:8;4224:17;:33::i;11299:485::-;11466:1;11471;11466:6;11462:38;;11481:19;11490:1;11493;11496:3;11481:8;:19::i;11462:38::-;11551:20;11574:26;11595:1;11598;11574:20;:26::i;:::-;11551:49;;11630:15;11615:12;:30;11611:167;;;-1:-1:-1;;;;;;;;;;;11692:3:272;11666:30;;;;;;:::i;:::-;;;;;;;;11710:57;11735:1;11738;11741:15;11758:8;11710:24;:57::i;1404:123::-;1500:20;1510:1;1513;1516:3;1500:9;:20::i;5986:562::-;6103:13;6119:19;6133:1;6136;6119:13;:19::i;:::-;6103:35;;6161:8;6153:5;:16;6149:393;;;-1:-1:-1;;;;;;;;;;;6190:40:272;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;6285:1:272;6288:8;6249:48;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;6352:1:272;6355:8;6316:48;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;6420:8:272;6430;6383:56;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;6495:5:272;6502:8;6458:53;;;;;;;:::i;6554:354::-;6710:13;6726:19;6740:1;6743;6726:13;:19::i;:::-;6710:35;;6768:8;6760:5;:16;6756:146;;;-1:-1:-1;;;;;;;;;;;6823:3:272;6797:30;;;;;;:::i;:::-;;;;;;;;6841:50;6866:1;6869;6872:8;6882;6841:24;:50::i;1533:344::-;1671:1;1660:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;1650:24;;;;;;1643:1;1632:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;1622:24;;;;;;:52;1618:253;;-1:-1:-1;;;;;;;;;;;1695:43:272;;;;39141:2:310;39123:21;;;39180:2;39160:18;;;39153:30;39219:34;39214:2;39199:18;;39192:62;-1:-1:-1;;;39285:2:310;39270:18;;39263:34;39329:3;39314:19;;38939:400;1695:43:272;;;;;;;;1757:32;1787:1;1757:32;;;;;;:::i;:::-;;;;;;;;1808;1838:1;1808:32;;;;;;:::i;676:107::-;754:22;766:4;765:5;772:3;754:10;:22::i;4280:567::-;4399:13;4415:19;4429:1;4432;4415:13;:19::i;:::-;4399:35;;4457:8;4449:5;:16;4445:396;;;-1:-1:-1;;;;;;;;;;;4486:41:272;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;4583:1:272;4586:8;4546:49;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;4651:1:272;4654:8;4614:49;;;;;;;:::i;3105:256::-;3262:1;3251:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;3241:24;;;;;;3234:1;3223:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;3213:24;;;;;;:52;3209:146;;-1:-1:-1;;;;;;;;;;;3312:3:272;3286:30;;;;;;:::i;:::-;;;;;;;;3330:14;3339:1;3342;3330:8;:14::i;1107:186::-;1196:1;1191:6;;:1;:6;;;1187:100;;-1:-1:-1;;;;;;;;;;;1244:3:272;1218:30;;;;;;:::i;:::-;;;;;;;;1262:14;1271:1;1274;1262:8;:14::i;587:83::-;646:17;658:4;657:5;646:10;:17::i;12431:1189::-;12632:13;12647:24;12683:7;-1:-1:-1;;;;;12675:21:272;12697:9;12675:32;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12631:76;;;;12718:13;12733:24;12769:7;-1:-1:-1;;;;;12761:21:272;12783:9;12761:32;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12717:76;;;;12808:8;:20;;;;;12820:8;12808:20;12804:120;;;12844:69;12853:11;12866;12844:69;;;;;;;;;;;;;;;;;:8;:69::i;:::-;12939:8;12938:9;:22;;;;;12952:8;12951:9;12938:22;:42;;;;;12964:16;12938:42;12934:142;;;12996:69;13005:11;13018;12996:69;;;;;;;;;;;;;;;;;:8;:69::i;:::-;13091:8;13090:9;:21;;;;;13103:8;13090:21;13086:259;;;-1:-1:-1;;;;;;;;;;;13132:34:272;;;;41366:2:310;41348:21;;;41405:2;41385:18;;;41378:30;41444:29;41439:2;41424:18;;41417:57;41506:2;41491:18;;41164:351;13132:34:272;;;;;;;;-1:-1:-1;;;;;;;;;;;13228:11:272;13185:55;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;13302:11:272;13259:55;;;;;;:::i;:::-;;;;;;;;13328:6;:4;:6::i;:::-;13359:8;:21;;;;;13372:8;13371:9;13359:21;13355:259;;;-1:-1:-1;;;;;;;;;;;13401:34:272;;;;41366:2:310;41348:21;;;41405:2;41385:18;;;41378:30;41444:29;41439:2;41424:18;;41417:57;41506:2;41491:18;;41164:351;13401:34:272;;;;;;;;-1:-1:-1;;;;;;;;;;;13497:11:272;13454:55;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;13571:11:272;13528:55;;;;;;:::i;:::-;;;;;;;;13597:6;:4;:6::i;1883:341::-;2019:1;2008:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;1998:24;;;;;;1991:1;1980:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;1970:24;;;;;;:52;1966:252;;-1:-1:-1;;;;;;;;;;;2043:42:272;;;;43858:2:310;43840:21;;;43897:2;43877:18;;;43870:30;43936:34;43931:2;43916:18;;43909:62;-1:-1:-1;;;44002:2:310;43987:18;;43980:33;44045:3;44030:19;;43656:399;2043:42:272;;;;;;;;2104:32;2134:1;2104:32;;;;;;:::i;:::-;;;;;;;;2155;2185:1;2155:32;;;;;;:::i;1299:99::-;1376:15;1386:1;1389;1376:9;:15::i;2845:254::-;3000:1;2989:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;2979:24;;;;;;2972:1;2961:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;2951:24;;;;;;:52;2947:146;;-1:-1:-1;;;;;;;;;;;3050:3:272;3024:30;;;;;;:::i;:::-;;;;;;;;3068:14;3077:1;3080;3068:8;:14::i;7641:519::-;7859:1;7864;7859:6;7855:38;;7874:19;7883:1;7886;7889:3;7874:8;:19::i;7855:38::-;7944:20;7967:26;7988:1;7991;7967:20;:26::i;:::-;7944:49;;8023:15;8008:12;:30;8004:150;;;-1:-1:-1;;;;;;;;;;;8085:3:272;8059:30;;;;;;:::i;:::-;;;;;;;;8103:40;8121:1;8124;8127:15;8103:17;:40::i;641:352:278:-;699:7;-1:-1:-1;;851:1:278;847;:5;846:12;842:71;;;881:21;887:6;891:1;887:3;:6::i;:::-;895;899:1;895:3;:6::i;:::-;881:5;:21::i;:::-;874:28;;;;842:71;980:6;984:1;980:3;:6::i;:::-;971;975:1;971:3;:6::i;:::-;:15;;;;:::i;:::-;964:22;;641:352;;;;;:::o;2409:432:268:-;-1:-1:-1;;;;;;;;;;;2985:55:268;3066:16;2452:359;;2652:67;;2489:11;;-1:-1:-1;;;;;;;;;;;1671:64:268;2586:43;;2652:67;;1671:64;;-1:-1:-1;;;2677:17:268;2712:4;;2652:67;;;:::i;:::-;;;;-1:-1:-1;;2652:67:268;;;;;;;;;;2541:196;;;2652:67;2541:196;;:::i;:::-;;;;-1:-1:-1;;2541:196:268;;;;;;;;;;2506:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2452:359:268;2820:7;:14;;-1:-1:-1;;2820:14:268;;;;;2409:432::o;5476:178::-;5557:1;5552;:6;5548:100;;-1:-1:-1;;;;;;;;;;;5605:3:268;5579:30;;;;;;:::i;:::-;;;;;;;;5623:14;5632:1;5635;5623:8;:14::i;999:160:278:-;1066:7;1085:16;1104:11;1110:1;1113;1104:5;:11::i;:::-;1085:30;-1:-1:-1;1151:1:278;1133:15;1085:30;1144:4;1133:15;:::i;:::-;:19;;;;:::i;:::-;1126:26;999:160;-1:-1:-1;;;;999:160:278:o;5209:262:268:-;5271:1;5266;:6;5262:203;;-1:-1:-1;;;;;;;;;;;5293:41:268;;;;45887:2:310;45869:21;;;45926:2;45906:18;;;45899:30;45965:34;45960:2;45945:18;;45938:62;-1:-1:-1;;;46031:2:310;46016:18;;46009:32;46073:3;46058:19;;45685:398;5293:41:268;;;;;;;;-1:-1:-1;;;;;;;;;;;5382:1:268;5353:31;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;5432:1:268;5403:31;;;;;;:::i;5028:176::-;5107:1;5102;:6;5098:100;;-1:-1:-1;;;;;;;;;;;5155:3:268;5129:30;;;;;;:::i;:::-;;;;;;;;5173:14;5182:1;5185;5173:8;:14::i;1165:192:278:-;1230:7;1249:16;1268:11;1274:1;1277;1268:5;:11::i;:::-;1249:30;;1289:12;1304:6;1308:1;1304:3;:6::i;:::-;1289:21;-1:-1:-1;1289:21:278;1328:15;:8;1339:4;1328:15;:::i;:::-;:22;;;;:::i;:::-;1321:29;1165:192;-1:-1:-1;;;;;1165:192:278:o;4766:257:268:-;4826:1;4821;:6;4817:200;;-1:-1:-1;;;;;;;;;;;4848:40:268;;;;46290:2:310;46272:21;;;46329:2;46309:18;;;46302:30;46368:34;46363:2;46348:18;;46341:62;-1:-1:-1;;;46434:2:310;46419:18;;46412:31;46475:3;46460:19;;46088:397;4848:40:268;;;;;;;;-1:-1:-1;;;;;;;;;;;4935:1:268;4907:30;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;4984:1:268;4956:30;;;;;;:::i;521:114:278:-;581:7;611:1;607;:5;:21;;623:5;627:1;623;:5;:::i;:::-;607:21;;;615:5;619:1;615;:5;:::i;15950:205:268:-;16044:14;16053:1;16056;16044:8;:14::i;:::-;16039:110;;-1:-1:-1;;;;;;;;;;;16105:3:268;16079:30;;;;;;:::i;:::-;;;;;;;;16123:15;16133:1;16136;16123:9;:15::i;3425:191::-;3504:9;3499:111;;-1:-1:-1;;;;;;;;;;;3560:3:268;3534:30;;;;;;:::i;:::-;;;;;;;;3578:21;3589:9;3262:157;3322:9;3317:96;;-1:-1:-1;;;;;;;;;;;3352:30:268;;;;47527:2:310;47509:21;;;47566:2;47546:18;;;47539:30;47605:25;47600:2;47585:18;;47578:53;47663:2;47648:18;;47325:347;15654:291:268;15729:14;15738:1;15741;15729:8;:14::i;:::-;15724:215;;-1:-1:-1;;;;;;;;;;;15764:42:268;;;;47879:2:310;47861:21;;;47918:2;47898:18;;;47891:30;47957:34;47952:2;47937:18;;47930:62;-1:-1:-1;;;48023:2:310;48008:18;;48001:33;48066:3;48051:19;;47677:399;15764:42:268;;;;;;;;-1:-1:-1;;;;;;;;;;;15855:1:268;15825:32;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;;;15906:1:268;15876:32;;;;;;:::i;209:306:278:-;255:7;-1:-1:-1;;;342:1:278;:15;338:130;;-1:-1:-1;;;;380:77:278;209:306;-1:-1:-1;209:306:278:o;338:130::-;497:1;493;:5;:14;;505:2;506:1;505:2;:::i;:::-;493:14;;;-1:-1:-1;501:1:278;209:306::o;15304:345:268:-;15431:8;;15419;;15401:4;;15419:20;;15415:228;;15460:6;15455:137;15476:1;:8;15472:1;:12;15455:137;;;15521:1;15523;15521:4;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15513:12:268;;:1;15515;15513:4;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;15513:4:268;:12;15509:69;;15554:5;15549:10;;15509:69;15486:3;;;;:::i;:::-;;;;15455:137;;;;15415:228;;;-1:-1:-1;15627:5:268;15304:345;;;;:::o;14:127:310:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:310;247:40;;-1:-1:-1;;;;;302:34:310;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:310:o;426:531::-;469:5;522:3;515:4;507:6;503:17;499:27;489:55;;540:1;537;530:12;489:55;576:6;563:20;-1:-1:-1;;;;;598:2:310;595:26;592:52;;;624:18;;:::i;:::-;668:55;711:2;692:13;;-1:-1:-1;;688:27:310;717:4;684:38;668:55;:::i;:::-;748:2;739:7;732:19;794:3;787:4;782:2;774:6;770:15;766:26;763:35;760:55;;;811:1;808;801:12;760:55;876:2;869:4;861:6;857:17;850:4;841:7;837:18;824:55;924:1;899:16;;;917:4;895:27;888:38;;;;903:7;426:531;-1:-1:-1;;;426:531:310:o;962:118::-;1048:5;1041:13;1034:21;1027:5;1024:32;1014:60;;1070:1;1067;1060:12;1085:128;1150:20;;1179:28;1150:20;1179:28;:::i;1218:655::-;1318:6;1326;1334;1342;1350;1403:3;1391:9;1382:7;1378:23;1374:33;1371:53;;;1420:1;1417;1410:12;1371:53;1456:9;1443:23;1433:33;;1513:2;1502:9;1498:18;1485:32;1475:42;;1564:2;1553:9;1549:18;1536:32;1526:42;;1619:2;1608:9;1604:18;1591:32;-1:-1:-1;;;;;1638:6:310;1635:30;1632:50;;;1678:1;1675;1668:12;1632:50;1701;1743:7;1734:6;1723:9;1719:22;1701:50;:::i;:::-;1691:60;;;1801:3;1790:9;1786:19;1773:33;1815:28;1837:5;1815:28;:::i;:::-;1862:5;1852:15;;;1218:655;;;;;;;;:::o;1878:322::-;1947:6;2000:2;1988:9;1979:7;1975:23;1971:32;1968:52;;;2016:1;2013;2006:12;1968:52;2056:9;2043:23;-1:-1:-1;;;;;2081:6:310;2078:30;2075:50;;;2121:1;2118;2111:12;2075:50;2144;2186:7;2177:6;2166:9;2162:22;2144:50;:::i;2205:461::-;2258:3;2296:5;2290:12;2323:6;2318:3;2311:19;2349:4;2378:2;2373:3;2369:12;2362:19;;2415:2;2408:5;2404:14;2436:1;2446:195;2460:6;2457:1;2454:13;2446:195;;;2525:13;;-1:-1:-1;;;;;2521:39:310;2509:52;;2581:12;;;;2616:15;;;;2557:1;2475:9;2446:195;;;-1:-1:-1;2657:3:310;;2205:461;-1:-1:-1;;;;;2205:461:310:o;2671:261::-;2850:2;2839:9;2832:21;2813:4;2870:56;2922:2;2911:9;2907:18;2899:6;2870:56;:::i;2937:444::-;3018:6;3026;3034;3042;3095:3;3083:9;3074:7;3070:23;3066:33;3063:53;;;3112:1;3109;3102:12;3063:53;3148:9;3135:23;3125:33;;3205:2;3194:9;3190:18;3177:32;3167:42;;3256:2;3245:9;3241:18;3228:32;3218:42;;3310:2;3299:9;3295:18;3282:32;3323:28;3345:5;3323:28;:::i;:::-;2937:444;;;;-1:-1:-1;2937:444:310;;-1:-1:-1;;2937:444:310:o;3386:726::-;3497:6;3505;3513;3521;3529;3537;3590:3;3578:9;3569:7;3565:23;3561:33;3558:53;;;3607:1;3604;3597:12;3558:53;3643:9;3630:23;3620:33;;3700:2;3689:9;3685:18;3672:32;3662:42;;3751:2;3740:9;3736:18;3723:32;3713:42;;3802:2;3791:9;3787:18;3774:32;3764:42;;3857:3;3846:9;3842:19;3829:33;-1:-1:-1;;;;;3877:6:310;3874:30;3871:50;;;3917:1;3914;3907:12;3871:50;3940;3982:7;3973:6;3962:9;3958:22;3940:50;:::i;:::-;3930:60;;;4040:3;4029:9;4025:19;4012:33;4054:28;4076:5;4054:28;:::i;:::-;4101:5;4091:15;;;3386:726;;;;;;;;:::o;4117:183::-;4177:4;-1:-1:-1;;;;;4202:6:310;4199:30;4196:56;;;4232:18;;:::i;:::-;-1:-1:-1;4277:1:310;4273:14;4289:4;4269:25;;4117:183::o;4305:173::-;4373:20;;-1:-1:-1;;;;;4422:31:310;;4412:42;;4402:70;;4468:1;4465;4458:12;4483:668;4537:5;4590:3;4583:4;4575:6;4571:17;4567:27;4557:55;;4608:1;4605;4598:12;4557:55;4644:6;4631:20;4670:4;4694:60;4710:43;4750:2;4710:43;:::i;:::-;4694:60;:::i;:::-;4788:15;;;4874:1;4870:10;;;;4858:23;;4854:32;;;4819:12;;;;4898:15;;;4895:35;;;4926:1;4923;4916:12;4895:35;4962:2;4954:6;4950:15;4974:148;4990:6;4985:3;4982:15;4974:148;;;5056:23;5075:3;5056:23;:::i;:::-;5044:36;;5100:12;;;;5007;;4974:148;;;-1:-1:-1;5140:5:310;4483:668;-1:-1:-1;;;;;;4483:668:310:o;5156:724::-;5280:6;5288;5296;5349:2;5337:9;5328:7;5324:23;5320:32;5317:52;;;5365:1;5362;5355:12;5317:52;5405:9;5392:23;-1:-1:-1;;;;;5475:2:310;5467:6;5464:14;5461:34;;;5491:1;5488;5481:12;5461:34;5514:61;5567:7;5558:6;5547:9;5543:22;5514:61;:::i;:::-;5504:71;;5628:2;5617:9;5613:18;5600:32;5584:48;;5657:2;5647:8;5644:16;5641:36;;;5673:1;5670;5663:12;5641:36;;5696:63;5751:7;5740:8;5729:9;5725:24;5696:63;:::i;:::-;5686:73;;;5809:2;5798:9;5794:18;5781:32;5822:28;5844:5;5822:28;:::i;:::-;5869:5;5859:15;;;5156:724;;;;;:::o;5885:515::-;5977:6;5985;5993;6001;6009;6062:3;6050:9;6041:7;6037:23;6033:33;6030:53;;;6079:1;6076;6069:12;6030:53;6115:9;6102:23;6092:33;;6172:2;6161:9;6157:18;6144:32;6134:42;;6223:2;6212:9;6208:18;6195:32;6185:42;;6274:2;6263:9;6259:18;6246:32;6236:42;;6328:3;6317:9;6313:19;6300:33;6342:28;6364:5;6342:28;:::i;6856:511::-;6924:6;6932;6940;6993:2;6981:9;6972:7;6968:23;6964:32;6961:52;;;7009:1;7006;6999:12;6961:52;7048:9;7035:23;7067:28;7089:5;7067:28;:::i;:::-;7114:5;-1:-1:-1;7171:2:310;7156:18;;7143:32;7184:30;7143:32;7184:30;:::i;:::-;7233:7;-1:-1:-1;7292:2:310;7277:18;;7264:32;7305:30;7264:32;7305:30;:::i;7372:662::-;7426:5;7479:3;7472:4;7464:6;7460:17;7456:27;7446:55;;7497:1;7494;7487:12;7446:55;7533:6;7520:20;7559:4;7583:60;7599:43;7639:2;7599:43;:::i;7583:60::-;7677:15;;;7763:1;7759:10;;;;7747:23;;7743:32;;;7708:12;;;;7787:15;;;7784:35;;;7815:1;7812;7805:12;7784:35;7851:2;7843:6;7839:15;7863:142;7879:6;7874:3;7871:15;7863:142;;;7945:17;;7933:30;;7983:12;;;;7896;;7863:142;;8039:925;8182:6;8190;8198;8206;8259:3;8247:9;8238:7;8234:23;8230:33;8227:53;;;8276:1;8273;8266:12;8227:53;8316:9;8303:23;-1:-1:-1;;;;;8386:2:310;8378:6;8375:14;8372:34;;;8402:1;8399;8392:12;8372:34;8425:61;8478:7;8469:6;8458:9;8454:22;8425:61;:::i;:::-;8415:71;;8539:2;8528:9;8524:18;8511:32;8495:48;;8568:2;8558:8;8555:16;8552:36;;;8584:1;8581;8574:12;8552:36;8607:63;8662:7;8651:8;8640:9;8636:24;8607:63;:::i;:::-;8597:73;;8723:2;8712:9;8708:18;8695:32;8679:48;;8752:2;8742:8;8739:16;8736:36;;;8768:1;8765;8758:12;8736:36;;8791:52;8835:7;8824:8;8813:9;8809:24;8791:52;:::i;:::-;8781:62;;;8893:2;8882:9;8878:18;8865:32;8906:28;8928:5;8906:28;:::i;9487:1569::-;9691:4;9720:2;9760;9749:9;9745:18;9790:2;9779:9;9772:21;9813:6;9848;9842:13;9879:6;9871;9864:22;9905:2;9895:12;;9938:2;9927:9;9923:18;9916:25;;10000:2;9990:6;9987:1;9983:14;9972:9;9968:30;9964:39;10038:2;10030:6;10026:15;10059:1;10080;10090:937;10106:6;10101:3;10098:15;10090:937;;;10175:22;;;-1:-1:-1;;10171:36:310;10159:49;;10231:13;;10318:9;;-1:-1:-1;;;;;10314:35:310;10299:51;;10389:11;;10383:18;10421:15;;;10414:27;;;10502:19;;10271:15;;;10534:24;;;10624:21;;;;10669:1;;10592:2;10580:15;;;10683:236;10699:8;10694:3;10691:17;10683:236;;;10780:15;;-1:-1:-1;;;;;;10776:42:310;10762:57;;10888:17;;;;10727:1;10718:11;;;;;10845:14;;;;10683:236;;;-1:-1:-1;11005:12:310;;;;10942:5;-1:-1:-1;;;10970:15:310;;;;10132:1;10123:11;10090:937;;;-1:-1:-1;11044:6:310;;9487:1569;-1:-1:-1;;;;;;;;;9487:1569:310:o;12452:871::-;12563:6;12571;12579;12587;12640:3;12628:9;12619:7;12615:23;12611:33;12608:53;;;12657:1;12654;12647:12;12608:53;12697:9;12684:23;-1:-1:-1;;;;;12767:2:310;12759:6;12756:14;12753:34;;;12783:1;12780;12773:12;12753:34;12806:50;12848:7;12839:6;12828:9;12824:22;12806:50;:::i;:::-;12796:60;;12909:2;12898:9;12894:18;12881:32;12865:48;;12938:2;12928:8;12925:16;12922:36;;;12954:1;12951;12944:12;12922:36;12977:52;13021:7;13010:8;12999:9;12995:24;12977:52;:::i;13328:250::-;13413:1;13423:113;13437:6;13434:1;13431:13;13423:113;;;13513:11;;;13507:18;13494:11;;;13487:39;13459:2;13452:10;13423:113;;;-1:-1:-1;;13570:1:310;13552:16;;13545:27;13328:250::o;13583:271::-;13625:3;13663:5;13657:12;13690:6;13685:3;13678:19;13706:76;13775:6;13768:4;13763:3;13759:14;13752:4;13745:5;13741:16;13706:76;:::i;:::-;13836:2;13815:15;-1:-1:-1;;13811:29:310;13802:39;;;;13843:4;13798:50;;13583:271;-1:-1:-1;;13583:271:310:o;13859:803::-;14021:4;14050:2;14090;14079:9;14075:18;14120:2;14109:9;14102:21;14143:6;14178;14172:13;14209:6;14201;14194:22;14247:2;14236:9;14232:18;14225:25;;14309:2;14299:6;14296:1;14292:14;14281:9;14277:30;14273:39;14259:53;;14347:2;14339:6;14335:15;14368:1;14378:255;14392:6;14389:1;14386:13;14378:255;;;14485:2;14481:7;14469:9;14461:6;14457:22;14453:36;14448:3;14441:49;14513:40;14546:6;14537;14531:13;14513:40;:::i;:::-;14503:50;-1:-1:-1;14611:12:310;;;;14576:15;;;;14414:1;14407:9;14378:255;;;-1:-1:-1;14650:6:310;;13859:803;-1:-1:-1;;;;;;;13859:803:310:o;14667:724::-;14791:6;14799;14807;14860:2;14848:9;14839:7;14835:23;14831:32;14828:52;;;14876:1;14873;14866:12;14828:52;14916:9;14903:23;-1:-1:-1;;;;;14986:2:310;14978:6;14975:14;14972:34;;;15002:1;14999;14992:12;14972:34;15025:61;15078:7;15069:6;15058:9;15054:22;15025:61;:::i;:::-;15015:71;;15139:2;15128:9;15124:18;15111:32;15095:48;;15168:2;15158:8;15155:16;15152:36;;;15184:1;15181;15174:12;15152:36;;15207:63;15262:7;15251:8;15240:9;15236:24;15207:63;:::i;15588:586::-;15669:6;15677;15685;15738:2;15726:9;15717:7;15713:23;15709:32;15706:52;;;15754:1;15751;15744:12;15706:52;15793:9;15780:23;15812:28;15834:5;15812:28;:::i;:::-;15859:5;-1:-1:-1;15915:2:310;15900:18;;15887:32;-1:-1:-1;;;;;15931:30:310;;15928:50;;;15974:1;15971;15964:12;15928:50;15997;16039:7;16030:6;16019:9;16015:22;15997:50;:::i;16179:925::-;16322:6;16330;16338;16346;16399:3;16387:9;16378:7;16374:23;16370:33;16367:53;;;16416:1;16413;16406:12;16367:53;16456:9;16443:23;-1:-1:-1;;;;;16526:2:310;16518:6;16515:14;16512:34;;;16542:1;16539;16532:12;16512:34;16565:61;16618:7;16609:6;16598:9;16594:22;16565:61;:::i;:::-;16555:71;;16679:2;16668:9;16664:18;16651:32;16635:48;;16708:2;16698:8;16695:16;16692:36;;;16724:1;16721;16714:12;16692:36;16747:63;16802:7;16791:8;16780:9;16776:24;16747:63;:::i;17109:722::-;17196:6;17204;17212;17220;17273:3;17261:9;17252:7;17248:23;17244:33;17241:53;;;17290:1;17287;17280:12;17241:53;17329:9;17316:23;17348:28;17370:5;17348:28;:::i;:::-;17395:5;-1:-1:-1;17452:2:310;17437:18;;17424:32;17465:30;17424:32;17465:30;:::i;:::-;17514:7;-1:-1:-1;17572:2:310;17557:18;;17544:32;-1:-1:-1;;;;;17588:30:310;;17585:50;;;17631:1;17628;17621:12;17585:50;17654;17696:7;17687:6;17676:9;17672:22;17654:50;:::i;17836:376::-;17898:6;17906;17959:2;17947:9;17938:7;17934:23;17930:32;17927:52;;;17975:1;17972;17965:12;17927:52;18014:9;18001:23;18033:28;18055:5;18033:28;:::i;:::-;18080:5;-1:-1:-1;18137:2:310;18122:18;;18109:32;18150:30;18109:32;18150:30;:::i;:::-;18199:7;18189:17;;;17836:376;;;;;:::o;18217:1228::-;18369:6;18377;18385;18393;18401;18409;18417;18425;18478:3;18466:9;18457:7;18453:23;18449:33;18446:53;;;18495:1;18492;18485:12;18446:53;18518:29;18537:9;18518:29;:::i;:::-;18508:39;;18566:38;18600:2;18589:9;18585:18;18566:38;:::i;:::-;18556:48;;18655:2;18644:9;18640:18;18627:32;-1:-1:-1;;;;;18719:2:310;18711:6;18708:14;18705:34;;;18735:1;18732;18725:12;18705:34;18758:50;18800:7;18791:6;18780:9;18776:22;18758:50;:::i;:::-;18748:60;;18861:2;18850:9;18846:18;18833:32;18817:48;;18890:2;18880:8;18877:16;18874:36;;;18906:1;18903;18896:12;18874:36;18929:52;18973:7;18962:8;18951:9;18947:24;18929:52;:::i;:::-;18919:62;;19034:3;19023:9;19019:19;19006:33;18990:49;;19064:2;19054:8;19051:16;19048:36;;;19080:1;19077;19070:12;19048:36;19103:52;19147:7;19136:8;19125:9;19121:24;19103:52;:::i;:::-;19093:62;;19208:3;19197:9;19193:19;19180:33;19164:49;;19238:2;19228:8;19225:16;19222:36;;;19254:1;19251;19244:12;19222:36;;19277:52;19321:7;19310:8;19299:9;19295:24;19277:52;:::i;:::-;19267:62;;;19348:36;19379:3;19368:9;19364:19;19348:36;:::i;:::-;19338:46;;19403:36;19434:3;19423:9;19419:19;19403:36;:::i;:::-;19393:46;;18217:1228;;;;;;;;;;;:::o;20841:670::-;20933:6;20941;20949;21002:2;20990:9;20981:7;20977:23;20973:32;20970:52;;;21018:1;21015;21008:12;20970:52;21058:9;21045:23;-1:-1:-1;;;;;21128:2:310;21120:6;21117:14;21114:34;;;21144:1;21141;21134:12;21114:34;21167:50;21209:7;21200:6;21189:9;21185:22;21167:50;:::i;:::-;21157:60;;21270:2;21259:9;21255:18;21242:32;21226:48;;21299:2;21289:8;21286:16;21283:36;;;21315:1;21312;21305:12;21283:36;;21338:52;21382:7;21371:8;21360:9;21356:24;21338:52;:::i;22442:274::-;-1:-1:-1;;;;;22634:32:310;;;;22616:51;;22698:2;22683:18;;22676:34;22604:2;22589:18;;22442:274::o;22721:184::-;22791:6;22844:2;22832:9;22823:7;22819:23;22815:32;22812:52;;;22860:1;22857;22850:12;22812:52;-1:-1:-1;22883:16:310;;22721:184;-1:-1:-1;22721:184:310:o;22910:354::-;23112:2;23094:21;;;23151:2;23131:18;;;23124:30;23190:32;23185:2;23170:18;;23163:60;23255:2;23240:18;;22910:354::o;23269:345::-;-1:-1:-1;;;;;23489:32:310;;;;23471:51;;23553:2;23538:18;;23531:34;;;;23596:2;23581:18;;23574:34;23459:2;23444:18;;23269:345::o;23619:356::-;23821:2;23803:21;;;23840:18;;;23833:30;23899:34;23894:2;23879:18;;23872:62;23966:2;23951:18;;23619:356::o;23980:380::-;24059:1;24055:12;;;;24102;;;24123:61;;24177:4;24169:6;24165:17;24155:27;;24123:61;24230:2;24222:6;24219:14;24199:18;24196:38;24193:161;;24276:10;24271:3;24267:20;24264:1;24257:31;24311:4;24308:1;24301:15;24339:4;24336:1;24329:15;24193:161;;23980:380;;;:::o;24365:384::-;-1:-1:-1;;;;;;24550:33:310;;24538:46;;24607:13;;24520:3;;24629:74;24607:13;24692:1;24683:11;;24676:4;24664:17;;24629:74;:::i;:::-;24723:16;;;;24741:1;24719:24;;24365:384;-1:-1:-1;;;24365:384:310:o;24754:287::-;24883:3;24921:6;24915:13;24937:66;24996:6;24991:3;24984:4;24976:6;24972:17;24937:66;:::i;:::-;25019:16;;;;;24754:287;-1:-1:-1;;24754:287:310:o;25046:245::-;25113:6;25166:2;25154:9;25145:7;25141:23;25137:32;25134:52;;;25182:1;25179;25172:12;25134:52;25214:9;25208:16;25233:28;25255:5;25233:28;:::i;:::-;25280:5;25046:245;-1:-1:-1;;;25046:245:310:o;25296:446::-;25546:2;25535:9;25528:21;25585:1;25580:2;25569:9;25565:18;25558:29;-1:-1:-1;;;25618:2:310;25607:9;25603:18;25596:35;25669:3;25662:4;25651:9;25647:20;25640:33;25509:4;25690:46;25731:3;25720:9;25716:19;25708:6;25690:46;:::i;25747:397::-;25949:2;25931:21;;;25988:2;25968:18;;;25961:30;26027:34;26022:2;26007:18;;26000:62;-1:-1:-1;;;26093:2:310;26078:18;;26071:31;26134:3;26119:19;;25747:397::o;27137:348::-;27367:2;27356:9;27349:21;27330:4;27387:49;27432:2;27421:9;27417:18;27050:2;27038:15;;-1:-1:-1;;;27078:4:310;27069:14;;27062:36;27123:2;27114:12;;26973:159;27387:49;27379:57;;27472:6;27467:2;27456:9;27452:18;27445:34;27137:348;;;;:::o;27654:::-;27884:2;27873:9;27866:21;27847:4;27904:49;27949:2;27938:9;27934:18;27567:2;27555:15;;-1:-1:-1;;;27595:4:310;27586:14;;27579:36;27640:2;27631:12;;27490:159;28415;28492:2;28480:15;;-1:-1:-1;;;28520:4:310;28511:14;;28504:36;28565:2;28556:12;;28415:159::o;28579:481::-;28859:2;28848:9;28841:21;28822:4;28885:49;28930:2;28919:9;28915:18;28885:49;:::i;:::-;28982:9;28974:6;28970:22;28965:2;28954:9;28950:18;28943:50;29010:44;29047:6;29039;29010:44;:::i;29065:159::-;29142:2;29130:15;;-1:-1:-1;;;29170:4:310;29161:14;;29154:36;29215:2;29206:12;;29065:159::o;29229:481::-;29509:2;29498:9;29491:21;29472:4;29535:49;29580:2;29569:9;29565:18;29535:49;:::i;29715:398::-;29917:2;29899:21;;;29956:2;29936:18;;;29929:30;29995:34;29990:2;29975:18;;29968:62;-1:-1:-1;;;30061:2:310;30046:18;;30039:32;30103:3;30088:19;;29715:398::o;30284:419::-;30542:2;30531:9;30524:21;30505:4;30562:49;30607:2;30596:9;30592:18;30195:2;30183:15;;-1:-1:-1;;;30223:4:310;30214:14;;30207:38;30270:2;30261:12;;30118:161;30562:49;30642:2;30627:18;;30620:34;;;;-1:-1:-1;30685:2:310;30670:18;30663:34;30554:57;30284:419::o;30874:::-;31132:2;31121:9;31114:21;31095:4;31152:49;31197:2;31186:9;31182:18;30785:2;30773:15;;-1:-1:-1;;;30813:4:310;30804:14;;30797:38;30860:2;30851:12;;30708:161;31298:491;31565:2;31547:21;;;31604:2;31584:18;;;31577:30;-1:-1:-1;;;31638:3:310;31623:19;;31616:43;31726:4;31711:20;;31704:36;;;;-1:-1:-1;31756:18:310;;31749:34;31691:3;31676:19;;31298:491::o;31794:::-;32061:2;32043:21;;;32100:2;32080:18;;;32073:30;-1:-1:-1;;;32134:3:310;32119:19;;32112:43;32222:4;32207:20;;32200:36;;;;-1:-1:-1;32252:18:310;;32245:34;32187:3;32172:19;;31794:491::o;32290:346::-;32518:2;32507:9;32500:21;32481:4;32538:49;32583:2;32572:9;32568:18;30195:2;30183:15;;-1:-1:-1;;;30223:4:310;30214:14;;30207:38;30270:2;30261:12;;30118:161;32641:346;32869:2;32858:9;32851:21;32832:4;32889:49;32934:2;32923:9;32919:18;30785:2;30773:15;;-1:-1:-1;;;30813:4:310;30804:14;;30797:38;30860:2;30851:12;;30708:161;34101:440;34351:2;34340:9;34333:21;34314:4;34377:49;34422:2;34411:9;34407:18;34377:49;:::i;:::-;34474:9;34466:6;34462:22;34457:2;34446:9;34442:18;34435:50;34502:33;34528:6;34520;34502:33;:::i;34546:440::-;34796:2;34785:9;34778:21;34759:4;34822:49;34867:2;34856:9;34852:18;34822:49;:::i;34991:348::-;35221:2;35210:9;35203:21;35184:4;35241:49;35286:2;35275:9;35271:18;35241:49;:::i;35344:348::-;35574:2;35563:9;35556:21;35537:4;35594:49;35639:2;35628:9;35624:18;35594:49;:::i;35697:435::-;35750:3;35788:5;35782:12;35815:6;35810:3;35803:19;35841:4;35870:2;35865:3;35861:12;35854:19;;35907:2;35900:5;35896:14;35928:1;35938:169;35952:6;35949:1;35946:13;35938:169;;;36013:13;;36001:26;;36047:12;;;;36082:15;;;;35974:1;35967:9;35938:169;;36137:261;36316:2;36305:9;36298:21;36279:4;36336:56;36388:2;36377:9;36373:18;36365:6;36336:56;:::i;37247:417::-;37503:2;37492:9;37485:21;37466:4;37523:49;37568:2;37557:9;37553:18;37523:49;:::i;37669:417::-;37925:2;37914:9;37907:21;37888:4;37945:49;37990:2;37979:9;37975:18;37945:49;:::i;38091:419::-;38349:2;38338:9;38331:21;38312:4;38369:49;38414:2;38403:9;38399:18;27050:2;27038:15;;-1:-1:-1;;;27078:4:310;27069:14;;27062:36;27123:2;27114:12;;26973:159;38515:419;38773:2;38762:9;38755:21;38736:4;38793:49;38838:2;38827:9;38823:18;27567:2;27555:15;;-1:-1:-1;;;27595:4:310;27586:14;;27579:36;27640:2;27631:12;;27490:159;39344:481;39624:2;39613:9;39606:21;39587:4;39650:49;39695:2;39684:9;39680:18;39650:49;:::i;:::-;39747:9;39739:6;39735:22;39730:2;39719:9;39715:18;39708:50;39775:44;39812:6;39804;39775:44;:::i;39830:481::-;40110:2;40099:9;40092:21;40073:4;40136:49;40181:2;40170:9;40166:18;40136:49;:::i;41520:463::-;41768:2;41757:9;41750:21;41807:2;41802;41791:9;41787:18;41780:30;41846:25;41841:2;41830:9;41826:18;41819:53;41910:3;41903:4;41892:9;41888:20;41881:33;41731:4;41931:46;41972:3;41961:9;41957:19;41949:6;41931:46;:::i;41988:463::-;42236:2;42225:9;42218:21;42275:2;42270;42259:9;42255:18;42248:30;42314:25;42309:2;42298:9;42294:18;42287:53;42378:3;42371:4;42360:9;42356:20;42349:33;42199:4;42399:46;42440:3;42429:9;42425:19;42417:6;42399:46;:::i;42456:463::-;42704:2;42693:9;42686:21;42743:2;42738;42727:9;42723:18;42716:30;42782:25;42777:2;42766:9;42762:18;42755:53;42846:3;42839:4;42828:9;42824:20;42817:33;42667:4;42867:46;42908:3;42897:9;42893:19;42885:6;42867:46;:::i;42924:463::-;43172:2;43161:9;43154:21;43211:2;43206;43195:9;43191:18;43184:30;43250:25;43245:2;43234:9;43230:18;43223:53;43314:3;43307:4;43296:9;43292:20;43285:33;43135:4;43335:46;43376:3;43365:9;43361:19;43353:6;43335:46;:::i;45028:127::-;45089:10;45084:3;45080:20;45077:1;45070:31;45120:4;45117:1;45110:15;45144:4;45141:1;45134:15;45160:125;45225:9;;;45246:10;;;45243:36;;;45259:18;;:::i;45290:168::-;45363:9;;;45394;;45411:15;;;45405:22;;45391:37;45381:71;;45432:18;;:::i;45463:217::-;45503:1;45529;45519:132;;45573:10;45568:3;45564:20;45561:1;45554:31;45608:4;45605:1;45598:15;45636:4;45633:1;45626:15;45519:132;-1:-1:-1;45665:9:310;;45463:217::o;47192:128::-;47259:9;;;47280:11;;;47277:37;;;47294:18;;:::i;48967:136::-;49002:3;-1:-1:-1;;;49023:22:310;;49020:48;;49048:18;;:::i;:::-;-1:-1:-1;49088:1:310;49084:13;;48967:136::o;49108:127::-;49169:10;49164:3;49160:20;49157:1;49150:31;49200:4;49197:1;49190:15;49224:4;49221:1;49214:15;49240:135;49279:3;49300:17;;;49297:43;;49320:18;;:::i;:::-;-1:-1:-1;49367:1:310;49356:13;;49240:135::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","_assertApproxEqAbs(int256,int256,uint256,bool)":"20b255e5","_assertApproxEqAbs(int256,int256,uint256,string,bool)":"0513e856","_assertApproxEqAbs(uint256,uint256,uint256,bool)":"4e679c3c","_assertApproxEqAbs(uint256,uint256,uint256,string,bool)":"6c208b3d","_assertApproxEqAbsDecimal(int256,int256,uint256,uint256,bool)":"8da27ae2","_assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string,bool)":"9cd7f336","_assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,bool)":"c387459f","_assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string,bool)":"562d01d5","_assertApproxEqRel(int256,int256,uint256,bool)":"4291328a","_assertApproxEqRel(int256,int256,uint256,string,bool)":"38b92241","_assertApproxEqRel(uint256,uint256,uint256,bool)":"4975e772","_assertApproxEqRel(uint256,uint256,uint256,string,bool)":"fb033bb5","_assertApproxEqRelDecimal(int256,int256,uint256,uint256,bool)":"5f2b2caa","_assertApproxEqRelDecimal(int256,int256,uint256,uint256,string,bool)":"7cb850c2","_assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,bool)":"35dfe029","_assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string,bool)":"224921c1","_assertEq(address[],address[],bool)":"341dc6b5","_assertEq(address[],address[],string,bool)":"cdfdd029","_assertEq(bool,bool,bool)":"4d49cb64","_assertEq(bool,bool,string,bool)":"d4448e67","_assertEq(bytes,bytes,bool)":"f5e5cdad","_assertEq(bytes,bytes,string,bool)":"825fcd55","_assertEq(int256[],int256[],bool)":"f49ae075","_assertEq(int256[],int256[],string,bool)":"f77c2b4d","_assertEq(uint256[],uint256[],bool)":"b5f90807","_assertEq(uint256[],uint256[],string,bool)":"5a3edf88","_assertEqCall(address,address,bytes,bytes,bytes,bytes,bool,bool)":"e9f8c699","_assertFalse(bool,bool)":"d46df40a","_assertFalse(bool,string,bool)":"bfe7025e","_fail(string)":"11ea40d8","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"a\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"b\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"a\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"b\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"a\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"b\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"a\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"b\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"a\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"b\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"a\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"b\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"a\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"b\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"a\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"b\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"a\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"b\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"a\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"b\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"a\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"b\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"a\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"b\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"a\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"b\",\"type\":\"uint256[]\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"a\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"b\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"a\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"b\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"a\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"b\",\"type\":\"int256[]\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"a\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"b\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"a\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"b\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEq\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"targetA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"targetB\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callDataA\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callDataB\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnDataA\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnDataB\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"strictRevertData\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertEqCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"data\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertFalse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"data\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"expectFail\",\"type\":\"bool\"}],\"name\":\"_assertFalse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"err\",\"type\":\"string\"}],\"name\":\"_fail\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol\":\"TestTest\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x4c1915908e867ed8ed9fe731dff0e1d4980f5a11a1fd1894f2800b2ae2070154\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c9d7f9295364406115e820a14be670e54603f00fc9474093613409743db53749\",\"dweb:/ipfs/QmNjUUo9DK6xnfLjXYPc3qUznJv2PmSbaEXZCyyGRf5v5V\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xdb05fd11858f232b8b5c6c9175229bdd061c277c34f13b0bdc64d333bcbd2617\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08ae865564d9c1fa1012b61db77a2da2844ac1ae0a216b16c9fe9ab65ddf80af\",\"dweb:/ipfs/QmfFfmkjb2Qfc5dPJvwQgjTMbeQ12dTPFeAQ8Gb944U44g\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x097b75f7171af89f433407e040d11b22fc26e2fe03793c2cfe18cad390d7af8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19d1dca7b398e517499ffa65ad44df69cdd016f37dc57e2d07d50279d3ddee17\",\"dweb:/ipfs/QmfMFR25367GB5PoBi1KZxWs1hZcJtC3eANiioG3dKj8ah\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xa9a389ae870e108986d72d760a792d011516a7091ab48da20a5982f8ae2e2575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6de722b90ec6b39fe65e121db1735234c8a123fd7bee0ed5daa646b0e6e14a5\",\"dweb:/ipfs/QmQfrW7sP3snKdoxtEVWh5CAxApwhBs6uLvDhiJLTza1Lp\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x6584855fecbe5b6a9f8ebdb26b37c58532c5bc5cc6e1737dfa7c8a045087be55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40a35a4d292b4fed02e11d5f25fb474f10a7c4eb99f75b5383dc23fcb6e55d3c\",\"dweb:/ipfs/QmYZ2nz1EmNh4xLWf4YybZoa1Da1z3Wq3w4pneMhkouMi4\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x4ba6040f75ea4425c4cf5f77a8ea99f3a7a0fcb5bf13d0186d0952cf505b8203\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://363bd98c4de695b34709e318213b2955d8a493d0249857701c05966c81341b10\",\"dweb:/ipfs/QmdtS71RFemQhq8WYT3WP5UQ4FAsCnaw2JbiPJ3vTUYYRu\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol\":{\"keccak256\":\"0x5812697c98bc498694c737f20187bdfccb2263cd213f9c7d98375b7719465fb0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://863784aa87e520d062f6a521ef36ce71f3c499a1dfd06b42d31e22085246006e\",\"dweb:/ipfs/QmZ5XVZpPDtcaiNcNSLyiydsQX3JrRPHdUW31m3F1ojXGY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"int256","name":"a","type":"int256"},{"internalType":"int256","name":"b","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"a","type":"int256"},{"internalType":"int256","name":"b","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"a","type":"int256"},{"internalType":"int256","name":"b","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"a","type":"int256"},{"internalType":"int256","name":"b","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"a","type":"int256"},{"internalType":"int256","name":"b","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"a","type":"int256"},{"internalType":"int256","name":"b","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"a","type":"int256"},{"internalType":"int256","name":"b","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"a","type":"int256"},{"internalType":"int256","name":"b","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertApproxEqRelDecimal"},{"inputs":[{"internalType":"address[]","name":"a","type":"address[]"},{"internalType":"address[]","name":"b","type":"address[]"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEq"},{"inputs":[{"internalType":"bool","name":"a","type":"bool"},{"internalType":"bool","name":"b","type":"bool"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEq"},{"inputs":[{"internalType":"uint256[]","name":"a","type":"uint256[]"},{"internalType":"uint256[]","name":"b","type":"uint256[]"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEq"},{"inputs":[{"internalType":"bytes","name":"a","type":"bytes"},{"internalType":"bytes","name":"b","type":"bytes"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEq"},{"inputs":[{"internalType":"uint256[]","name":"a","type":"uint256[]"},{"internalType":"uint256[]","name":"b","type":"uint256[]"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEq"},{"inputs":[{"internalType":"address[]","name":"a","type":"address[]"},{"internalType":"address[]","name":"b","type":"address[]"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEq"},{"inputs":[{"internalType":"bool","name":"a","type":"bool"},{"internalType":"bool","name":"b","type":"bool"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEq"},{"inputs":[{"internalType":"int256[]","name":"a","type":"int256[]"},{"internalType":"int256[]","name":"b","type":"int256[]"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEq"},{"inputs":[{"internalType":"bytes","name":"a","type":"bytes"},{"internalType":"bytes","name":"b","type":"bytes"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEq"},{"inputs":[{"internalType":"int256[]","name":"a","type":"int256[]"},{"internalType":"int256[]","name":"b","type":"int256[]"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEq"},{"inputs":[{"internalType":"address","name":"targetA","type":"address"},{"internalType":"address","name":"targetB","type":"address"},{"internalType":"bytes","name":"callDataA","type":"bytes"},{"internalType":"bytes","name":"callDataB","type":"bytes"},{"internalType":"bytes","name":"returnDataA","type":"bytes"},{"internalType":"bytes","name":"returnDataB","type":"bytes"},{"internalType":"bool","name":"strictRevertData","type":"bool"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertEqCall"},{"inputs":[{"internalType":"bool","name":"data","type":"bool"},{"internalType":"string","name":"err","type":"string"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertFalse"},{"inputs":[{"internalType":"bool","name":"data","type":"bool"},{"internalType":"bool","name":"expectFail","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_assertFalse"},{"inputs":[{"internalType":"string","name":"err","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"_fail"},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol":"TestTest"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x4c1915908e867ed8ed9fe731dff0e1d4980f5a11a1fd1894f2800b2ae2070154","urls":["bzz-raw://c9d7f9295364406115e820a14be670e54603f00fc9474093613409743db53749","dweb:/ipfs/QmNjUUo9DK6xnfLjXYPc3qUznJv2PmSbaEXZCyyGRf5v5V"],"license":"GPL-3.0-or-later"},"lib/openzeppelin-contracts/lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xdb05fd11858f232b8b5c6c9175229bdd061c277c34f13b0bdc64d333bcbd2617","urls":["bzz-raw://08ae865564d9c1fa1012b61db77a2da2844ac1ae0a216b16c9fe9ab65ddf80af","dweb:/ipfs/QmfFfmkjb2Qfc5dPJvwQgjTMbeQ12dTPFeAQ8Gb944U44g"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":{"keccak256":"0x097b75f7171af89f433407e040d11b22fc26e2fe03793c2cfe18cad390d7af8b","urls":["bzz-raw://19d1dca7b398e517499ffa65ad44df69cdd016f37dc57e2d07d50279d3ddee17","dweb:/ipfs/QmfMFR25367GB5PoBi1KZxWs1hZcJtC3eANiioG3dKj8ah"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol":{"keccak256":"0xa9a389ae870e108986d72d760a792d011516a7091ab48da20a5982f8ae2e2575","urls":["bzz-raw://d6de722b90ec6b39fe65e121db1735234c8a123fd7bee0ed5daa646b0e6e14a5","dweb:/ipfs/QmQfrW7sP3snKdoxtEVWh5CAxApwhBs6uLvDhiJLTza1Lp"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdInvariant.sol":{"keccak256":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol":{"keccak256":"0x6584855fecbe5b6a9f8ebdb26b37c58532c5bc5cc6e1737dfa7c8a045087be55","urls":["bzz-raw://40a35a4d292b4fed02e11d5f25fb474f10a7c4eb99f75b5383dc23fcb6e55d3c","dweb:/ipfs/QmYZ2nz1EmNh4xLWf4YybZoa1Da1z3Wq3w4pneMhkouMi4"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x4ba6040f75ea4425c4cf5f77a8ea99f3a7a0fcb5bf13d0186d0952cf505b8203","urls":["bzz-raw://363bd98c4de695b34709e318213b2955d8a493d0249857701c05966c81341b10","dweb:/ipfs/QmdtS71RFemQhq8WYT3WP5UQ4FAsCnaw2JbiPJ3vTUYYRu"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol":{"keccak256":"0x5812697c98bc498694c737f20187bdfccb2263cd213f9c7d98375b7719465fb0","urls":["bzz-raw://863784aa87e520d062f6a521ef36ce71f3c499a1dfd06b42d31e22085246006e","dweb:/ipfs/QmZ5XVZpPDtcaiNcNSLyiydsQX3JrRPHdUW31m3F1ojXGY"],"license":"MIT"}},"version":1},"id":292}
@@ -0,0 +1 @@
1
+ {"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"StdChains provides information about EVM compatible chains that can be used in scripts/tests. For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the alias used in this contract, which can be found as the first argument to the `setChainWithDefaultRpcUrl` call in the `initialize` function. There are two main ways to use this contract: 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or `setChain(string memory chainAlias, Chain memory chain)` 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`. The first time either of those are used, chains are initialized with the default set of RPC URLs. This is done in `initialize`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in `defaultRpcUrls`. The `setChain` function is straightforward, and it simply saves off the given chain data. The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say we want to retrieve `mainnet`'s RPC URL: - If you haven't set any mainnet chain info with `setChain`, you haven't specified that chain in `foundry.toml` and no env var is set, the default data and RPC URL will be returned. - If you have set a mainnet RPC URL in `foundry.toml` it will return that, if valid (e.g. if a URL is given or if an environment variable is given and that environment variable exists). Otherwise, the default data is returned. - If you specified data with `setChain` it will return that. Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":\"StdChains\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x097b75f7171af89f433407e040d11b22fc26e2fe03793c2cfe18cad390d7af8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19d1dca7b398e517499ffa65ad44df69cdd016f37dc57e2d07d50279d3ddee17\",\"dweb:/ipfs/QmfMFR25367GB5PoBi1KZxWs1hZcJtC3eANiioG3dKj8ah\"]},\"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x4ba6040f75ea4425c4cf5f77a8ea99f3a7a0fcb5bf13d0186d0952cf505b8203\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://363bd98c4de695b34709e318213b2955d8a493d0249857701c05966c81341b10\",\"dweb:/ipfs/QmdtS71RFemQhq8WYT3WP5UQ4FAsCnaw2JbiPJ3vTUYYRu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":"StdChains"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol":{"keccak256":"0x097b75f7171af89f433407e040d11b22fc26e2fe03793c2cfe18cad390d7af8b","urls":["bzz-raw://19d1dca7b398e517499ffa65ad44df69cdd016f37dc57e2d07d50279d3ddee17","dweb:/ipfs/QmfMFR25367GB5PoBi1KZxWs1hZcJtC3eANiioG3dKj8ah"],"license":"MIT"},"lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol":{"keccak256":"0x4ba6040f75ea4425c4cf5f77a8ea99f3a7a0fcb5bf13d0186d0952cf505b8203","urls":["bzz-raw://363bd98c4de695b34709e318213b2955d8a493d0249857701c05966c81341b10","dweb:/ipfs/QmdtS71RFemQhq8WYT3WP5UQ4FAsCnaw2JbiPJ3vTUYYRu"],"license":"MIT"}},"version":1},"id":273}