@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":"constructor","inputs":[{"name":"_token","type":"address","internalType":"contract IVotes"},{"name":"_timelock","type":"address","internalType":"contract TimelockController"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"BALLOT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"CLOCK_MODE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTING_MODE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"EXTENDED_BALLOT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"cancel","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancel","inputs":[{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"},{"name":"descriptionHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"castVote","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"support","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"castVoteBySig","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"support","type":"uint8","internalType":"uint8"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"castVoteWithReason","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"support","type":"uint8","internalType":"uint8"},{"name":"reason","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"castVoteWithReasonAndParams","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"support","type":"uint8","internalType":"uint8"},{"name":"reason","type":"string","internalType":"string"},{"name":"params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"castVoteWithReasonAndParamsBySig","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"support","type":"uint8","internalType":"uint8"},{"name":"reason","type":"string","internalType":"string"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"clock","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"execute","inputs":[{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"},{"name":"descriptionHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"execute","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getActions","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"signatures","type":"string[]","internalType":"string[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"getReceipt","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IGovernorCompatibilityBravo.Receipt","components":[{"name":"hasVoted","type":"bool","internalType":"bool"},{"name":"support","type":"uint8","internalType":"uint8"},{"name":"votes","type":"uint96","internalType":"uint96"}]}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVotesWithParams","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timepoint","type":"uint256","internalType":"uint256"},{"name":"params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"hasVoted","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hashProposal","inputs":[{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"},{"name":"descriptionHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"onERC1155BatchReceived","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256[]","internalType":"uint256[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"proposalDeadline","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalEta","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalProposer","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalSnapshot","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"proposals","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"proposer","type":"address","internalType":"address"},{"name":"eta","type":"uint256","internalType":"uint256"},{"name":"startBlock","type":"uint256","internalType":"uint256"},{"name":"endBlock","type":"uint256","internalType":"uint256"},{"name":"forVotes","type":"uint256","internalType":"uint256"},{"name":"againstVotes","type":"uint256","internalType":"uint256"},{"name":"abstainVotes","type":"uint256","internalType":"uint256"},{"name":"canceled","type":"bool","internalType":"bool"},{"name":"executed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"propose","inputs":[{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"},{"name":"description","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"propose","inputs":[{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"signatures","type":"string[]","internalType":"string[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"},{"name":"description","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"queue","inputs":[{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"},{"name":"descriptionHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"queue","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"quorum","inputs":[{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"quorumDenominator","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"quorumNumerator","inputs":[{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"quorumNumerator","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"quorumVotes","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"relay","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"state","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IGovernor.ProposalState"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"timelock","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC5805"}],"stateMutability":"view"},{"type":"function","name":"updateQuorumNumerator","inputs":[{"name":"newQuorumNumerator","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTimelock","inputs":[{"name":"newTimelock","type":"address","internalType":"contract TimelockController"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"votingDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"votingPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"ProposalCanceled","inputs":[{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"proposer","type":"address","indexed":false,"internalType":"address"},{"name":"targets","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"signatures","type":"string[]","indexed":false,"internalType":"string[]"},{"name":"calldatas","type":"bytes[]","indexed":false,"internalType":"bytes[]"},{"name":"voteStart","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"voteEnd","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"description","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"ProposalExecuted","inputs":[{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalQueued","inputs":[{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"eta","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"QuorumNumeratorUpdated","inputs":[{"name":"oldQuorumNumerator","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newQuorumNumerator","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TimelockChange","inputs":[{"name":"oldTimelock","type":"address","indexed":false,"internalType":"address"},{"name":"newTimelock","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VoteCast","inputs":[{"name":"voter","type":"address","indexed":true,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"support","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"weight","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"VoteCastWithParams","inputs":[{"name":"voter","type":"address","indexed":true,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"support","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"weight","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reason","type":"string","indexed":false,"internalType":"string"},{"name":"params","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"Empty","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x61018060405234801562000011575f80fd5b5060405162005cb738038062005cb78339810160408190526200003491620007e5565b806004836040518060400160405280600a81526020016926bca3b7bb32b93737b960b11b815250806200006c6200015c60201b60201c565b62000078825f62000177565b610120526200008981600162000177565b61014052815160208084019190912060e052815190820120610100524660a0526200011660e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c05260026200012d8282620008c2565b50506001600160a01b0316610160526200014781620001af565b5062000153816200032f565b50505062000a42565b6040805180820190915260018152603160f81b602082015290565b5f60208351101562000196576200018e8362000398565b9050620001a9565b81620001a38482620008c2565b5060ff90505b92915050565b6064811115620002385760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a4015b60405180910390fd5b5f62000243620003da565b90508015801590620002555750600854155b15620002bb57604080518082019091525f8152600890602081016200027a8462000408565b6001600160e01b0390811690915282546001810184555f938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b620002f0620002db620002cd62000476565b65ffffffffffff16620004ec565b620002e68462000408565b6008919062000552565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b600954604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600980546001600160a01b0319166001600160a01b0392909216919091179055565b5f80829050601f81511115620003c5578260405163305a27a960e01b81526004016200022f91906200098a565b8051620003d282620009d7565b179392505050565b6008545f9015620003ff57620003f160086200056e565b6001600160e01b0316905090565b6007545b905090565b5f6001600160e01b03821115620004725760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016200022f565b5090565b5f610160516001600160a01b03166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620004d7575060408051601f3d908101601f19168201909252620004d491810190620009fb565b60015b620004e7576200040343620005b9565b919050565b5f63ffffffff821115620004725760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016200022f565b5f806200056185858562000621565b915091505b935093915050565b80545f908015620005b05762000598836200058b60018462000a22565b5f91825260209091200190565b5464010000000090046001600160e01b0316620005b2565b5f5b9392505050565b5f65ffffffffffff821115620004725760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b60648201526084016200022f565b82545f908190801562000773575f62000641876200058b60018562000a22565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b031660208401529192509087161015620006c55760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b657973000000000060448201526064016200022f565b805163ffffffff808816911603620007135784620006ea886200058b60018662000a22565b80546001600160e01b03929092166401000000000263ffffffff90921691909117905562000762565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d555f8d81529190912094519151909216640100000000029216919091179101555b602001519250839150620005669050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a81529182209551925190931664010000000002919093161792019190915590508162000566565b6001600160a01b0381168114620007e2575f80fd5b50565b5f8060408385031215620007f7575f80fd5b82516200080481620007cd565b60208401519092506200081781620007cd565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200084b57607f821691505b6020821081036200086a57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620008bd575f81815260208120601f850160051c81016020861015620008985750805b601f850160051c820191505b81811015620008b957828155600101620008a4565b5050505b505050565b81516001600160401b03811115620008de57620008de62000822565b620008f681620008ef845462000836565b8462000870565b602080601f8311600181146200092c575f8415620009145750858301515b5f19600386901b1c1916600185901b178555620008b9565b5f85815260208120601f198616915b828110156200095c578886015182559484019460019091019084016200093b565b50858210156200097a57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020808352835180828501525f5b81811015620009b75785810183015185820160400152820162000999565b505f604082860101526040601f19601f8301168501019250505092915050565b805160208083015191908110156200086a575f1960209190910360031b1b16919050565b5f6020828403121562000a0c575f80fd5b815165ffffffffffff81168114620005b2575f80fd5b81810381811115620001a957634e487b7160e01b5f52601160045260245ffd5b60805160a05160c05160e051610100516101205161014051610160516151fd62000aba5f395f8181610b16015281816114940152818161175301528181611b5e01526127e601525f61170101525f6116d701525f612c6001525f612c3801525f612b9301525f612bbd01525f612be701526151fd5ff3fe6080604052600436106102c2575f3560e01c80637b3c71d31161016f578063c28bc2fa116100d8578063deaaa7cc11610092578063f23a6e611161006d578063f23a6e6114610abb578063f8ce560a14610ae6578063fc0c546a14610b05578063fe0d94c114610b38575f80fd5b8063deaaa7cc146109a2578063e23a9a52146109d5578063eb9019d414610a9c575f80fd5b8063c28bc2fa146108d0578063c59057e4146108e3578063d33219b414610902578063da95691a1461091f578063dd4e2ba51461093e578063ddf0b00914610983575f80fd5b8063a7713a7011610129578063a7713a701461080a578063a890c9101461081e578063ab58fb8e1461083d578063b58131b01461085c578063bc197c811461086e578063c01f9e3714610899575f80fd5b80637b3c71d3146107485780637d5e81e21461076757806384b0196e1461078657806391ddadf4146107ad57806397c3d334146107d85780639a802a6d146107eb575f80fd5b80632fe3e2611161022b57806343859632116101e557806354fd4d50116101c057806354fd4d50146106c257806356781388146106eb5780635f398a141461070a57806360c4247f14610729575f80fd5b80634385963214610647578063452115d61461068f5780634bf5d7e9146106ae575f80fd5b80632fe3e26114610567578063328dd9821461059a5780633932abb1146105c95780633bccf4fd146105dd5780633e4f49e6146105fc57806340e58ee514610628575f80fd5b8063143489d01161027c578063143489d014610457578063150b7a02146104aa578063160cbed7146104ed57806324bc1a641461050c5780632656227d146105205780632d63f69314610533575f80fd5b8063013cf08b1461033157806301ffc9a7146103ab57806302a251a3146103da57806303420181146103f857806306f3f9e61461041757806306fdde0314610436575f80fd5b3661032d57306102d0610b4b565b6001600160a01b03161461032b5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b5f80fd5b34801561033c575f80fd5b5061035061034b36600461409a565b610b63565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156103b6575f80fd5b506103ca6103c53660046140b1565b610c2c565b60405190151581526020016103a2565b3480156103e5575f80fd5b5061c4e05b6040519081526020016103a2565b348015610403575f80fd5b506103ea6104123660046141e8565b610c3c565b348015610422575f80fd5b5061032b61043136600461409a565b610d32565b348015610441575f80fd5b5061044a610dbb565b6040516103a291906142d4565b348015610462575f80fd5b5061049261047136600461409a565b5f90815260036020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016103a2565b3480156104b5575f80fd5b506104d46104c43660046142fa565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016103a2565b3480156104f8575f80fd5b506103ea6105073660046144c2565b610e4b565b348015610517575f80fd5b506103ea61103f565b6103ea61052e3660046144c2565b611064565b34801561053e575f80fd5b506103ea61054d36600461409a565b5f908152600360205260409020546001600160401b031690565b348015610572575f80fd5b506103ea7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b3480156105a5575f80fd5b506105b96105b436600461409a565b611153565b6040516103a29493929190614611565b3480156105d4575f80fd5b50611c206103ea565b3480156105e8575f80fd5b506103ea6105f736600461465d565b6113d3565b348015610607575f80fd5b5061061b61061636600461409a565b611447565b6040516103a291906146bb565b348015610633575f80fd5b5061032b61064236600461409a565b611451565b348015610652575f80fd5b506103ca6106613660046146e1565b5f8281526006602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561069a575f80fd5b506103ea6106a93660046144c2565b61147a565b3480156106b9575f80fd5b5061044a611490565b3480156106cd575f80fd5b506040805180820190915260018152603160f81b602082015261044a565b3480156106f6575f80fd5b506103ea61070536600461470f565b611550565b348015610715575f80fd5b506103ea610724366004614739565b611577565b348015610734575f80fd5b506103ea61074336600461409a565b6115bf565b348015610753575f80fd5b506103ea6107623660046147b6565b61166d565b348015610772575f80fd5b506103ea61078136600461480b565b6116bd565b348015610791575f80fd5b5061079a6116ca565b6040516103a297969594939291906148a4565b3480156107b8575f80fd5b506107c1611750565b60405165ffffffffffff90911681526020016103a2565b3480156107e3575f80fd5b5060646103ea565b3480156107f6575f80fd5b506103ea610805366004614905565b6117d8565b348015610815575f80fd5b506103ea6117ee565b348015610829575f80fd5b5061032b610838366004614959565b611817565b348015610848575f80fd5b506103ea61085736600461409a565b61189d565b348015610867575f80fd5b505f6103ea565b348015610879575f80fd5b506104d4610888366004614974565b63bc197c8160e01b95945050505050565b3480156108a4575f80fd5b506103ea6108b336600461409a565b5f908152600360205260409020600101546001600160401b031690565b61032b6108de366004614a00565b611933565b3480156108ee575f80fd5b506103ea6108fd3660046144c2565b611a3d565b34801561090d575f80fd5b506009546001600160a01b0316610492565b34801561092a575f80fd5b506103ea610939366004614aba565b611a76565b348015610949575f80fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f000000000000602082015261044a565b34801561098e575f80fd5b5061032b61099d36600461409a565b611afc565b3480156109ad575f80fd5b506103ea7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b3480156109e0575f80fd5b50610a6c6109ef3660046146e1565b604080516060810182525f8082526020820181905291810191909152505f9182526006602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016103a2565b348015610aa7575f80fd5b506103ea610ab6366004614b53565b611b1d565b348015610ac6575f80fd5b506104d4610ad5366004614b7d565b63f23a6e6160e01b95945050505050565b348015610af1575f80fd5b506103ea610b0036600461409a565b611b3c565b348015610b10575f80fd5b506104927f000000000000000000000000000000000000000000000000000000000000000081565b61032b610b4636600461409a565b611be3565b5f610b5e6009546001600160a01b031690565b905090565b805f8080808080808080610b768a61189d565b5f8c8152600360205260409020549098506001600160401b03165f8c8152600360205260409020600101549097506001600160401b03165f8c81526006602081905260408220805460058201549282015460078301546001600160a01b039092169e50949a509198509296509450610bed8d611447565b90506002816007811115610c0357610c036146a7565b1493506007816007811115610c1a57610c1a6146a7565b14925050509193959799509193959799565b5f610c3682611c04565b92915050565b5f80610cdf610cd77fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610c77929190614be0565b60405180910390208b80519060200120604051602001610cbc959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120611c28565b868686611c54565b9050610d248a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508d9250611c70915050565b9a9950505050505050505050565b610d3a610b4b565b6001600160a01b0316336001600160a01b031614610d6a5760405162461bcd60e51b815260040161032290614bef565b30610d73610b4b565b6001600160a01b031614610daf575f8036604051610d92929190614be0565b604051809103902090505b80610da86004611dc2565b03610d9d57505b610db881611e3f565b50565b606060028054610dca90614c26565b80601f0160208091040260200160405190810160405280929190818152602001828054610df690614c26565b8015610e415780601f10610e1857610100808354040283529160200191610e41565b820191905f5260205f20905b815481529060010190602001808311610e2457829003601f168201915b5050505050905090565b5f80610e5986868686611a3d565b90506004610e6682611447565b6007811115610e7757610e776146a7565b14610e945760405162461bcd60e51b815260040161032290614c5e565b6009546040805163793d064960e11b815290515f926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa158015610edb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eff9190614c9f565b60095460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790610f38908a908a908a905f908b90600401614cb6565b602060405180830381865afa158015610f53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f779190614c9f565b5f838152600a60205260408082209290925560095491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091610fc1918b918b918b91908b908990600401614d03565b5f604051808303815f87803b158015610fd8575f80fd5b505af1158015610fea573d5f803e3d5ffd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289282824261101c9190614d6e565b604080519283526020830191909152015b60405180910390a15095945050505050565b5f610b5e600161104d611750565b6110579190614d81565b65ffffffffffff16611b3c565b5f8061107286868686611a3d565b90505f61107e82611447565b90506004816007811115611094576110946146a7565b14806110b1575060058160078111156110af576110af6146a7565b145b6110cd5760405162461bcd60e51b815260040161032290614c5e565b5f8281526003602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f9061111a9084815260200190565b60405180910390a161112f8288888888611faa565b61113c8288888888612049565b6111498288888888612056565b5095945050505050565b6060806060805f60065f8781526020019081526020015f20905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156111d057602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116111b2575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561122057602002820191905f5260205f20905b81548152602001906001019080831161120c575b5050505050925081805480602002602001604051908101604052809291908181526020015f905b828210156112ef578382905f5260205f2001805461126490614c26565b80601f016020809104026020016040519081016040528092919081815260200182805461129090614c26565b80156112db5780601f106112b2576101008083540402835291602001916112db565b820191905f5260205f20905b8154815290600101906020018083116112be57829003601f168201915b505050505081526020019060010190611247565b50505050915080805480602002602001604051908101604052809291908181526020015f905b828210156113bd578382905f5260205f2001805461133290614c26565b80601f016020809104026020016040519081016040528092919081815260200182805461135e90614c26565b80156113a95780601f10611380576101008083540402835291602001916113a9565b820191905f5260205f20905b81548152906001019060200180831161138c57829003601f168201915b505050505081526020019060010190611315565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201525f90819061142090610cd790608001610cbc565b905061143c87828860405180602001604052805f81525061208e565b979650505050505050565b5f610c36826120af565b5f805f8061145e856121f3565b93509350935093506114728484848461147a565b505050505050565b5f61148785858585612472565b95945050505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634bf5d7e96040518163ffffffff1660e01b81526004015f60405180830381865afa92505050801561150f57506040513d5f823e601f3d908101601f1916820160405261150c9190810190614da7565b60015b61154b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b5f8033905061156f84828560405180602001604052805f81525061208e565b949350505050565b5f8033905061143c87828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a9250611c70915050565b6008545f908082036115d5575050600754919050565b5f60086115e3600184614e0f565b815481106115f3576115f3614e22565b5f9182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b0316928201929092529150841061164857602001516001600160e01b03169392505050565b61165c61165485612533565b60089061259b565b6001600160e01b0316949350505050565b5f803390506116b386828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061208e92505050565b9695505050505050565b5f61148785858585612648565b5f606080828080836116fc7f0000000000000000000000000000000000000000000000000000000000000000836126af565b6117277f000000000000000000000000000000000000000000000000000000000000000060016126af565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156117cb575060408051601f3d908101601f191682019092526117c891810190614e36565b60015b61154b57610b5e43612758565b5f6117e48484846127be565b90505b9392505050565b6008545f9015611810576118026008612851565b6001600160e01b0316905090565b5060075490565b61181f610b4b565b6001600160a01b0316336001600160a01b03161461184f5760405162461bcd60e51b815260040161032290614bef565b30611858610b4b565b6001600160a01b031614611894575f8036604051611877929190614be0565b604051809103902090505b8061188d6004611dc2565b0361188257505b610db881612880565b6009545f828152600a602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa1580156118f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191b9190614c9f565b90508060011461192b57806117e7565b5f9392505050565b61193b610b4b565b6001600160a01b0316336001600160a01b03161461196b5760405162461bcd60e51b815260040161032290614bef565b30611974610b4b565b6001600160a01b0316146119b0575f8036604051611993929190614be0565b604051809103902090505b806119a96004611dc2565b0361199e57505b5f80856001600160a01b03168585856040516119cd929190614be0565b5f6040518083038185875af1925050503d805f8114611a07576040519150601f19603f3d011682016040523d82523d5f602084013e611a0c565b606091505b5091509150611a3482826040518060600160405280602881526020016151a0602891396128e9565b50505050505050565b5f84848484604051602001611a559493929190614e5b565b60408051601f19818403018152919052805160209091012095945050505050565b5f8251845114611ad95760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610322565b611ae7338787878787612902565b6116b38686611af687876129bd565b856116bd565b5f805f80611b09856121f3565b935093509350935061147284848484610e4b565b5f6117e78383611b3760408051602081019091525f815290565b6127be565b5f6064611b48836115bf565b604051632394e7a360e21b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638e539e8c90602401602060405180830381865afa158015611bab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bcf9190614c9f565b611bd99190614ea5565b610c369190614ed0565b5f805f80611bf0856121f3565b935093509350935061147284848484611064565b5f6001600160e01b03198216636e665ced60e01b1480610c365750610c3682612aec565b5f610c36611c34612b87565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f611c6387878787612cb0565b9150915061114981612d6d565b5f8581526003602052604081206001611c8888611447565b6007811115611c9957611c996146a7565b14611cf25760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610322565b80545f90611d0b9088906001600160401b0316866127be565b9050611d1a8888888488612eb6565b83515f03611d6e57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda489888489604051611d619493929190614eef565b60405180910390a261143c565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87128988848989604051611daf959493929190614f16565b60405180910390a2979650505050505050565b5f611ddc8254600f81810b600160801b909204900b131590565b15611dfa57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115611ec25760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610322565b5f611ecb6117ee565b90508015801590611edc5750600854155b15611f3e57604080518082019091525f815260089060208101611efe8461304e565b6001600160e01b0390811690915282546001810184555f93845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b611f6b611f59611f4c611750565b65ffffffffffff16612533565b611f628461304e565b600891906130b6565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b30611fb3610b4b565b6001600160a01b031614612042575f5b845181101561147257306001600160a01b0316858281518110611fe857611fe8614e22565b60200260200101516001600160a01b0316036120325761203283828151811061201357612013614e22565b60200260200101518051906020012060046130d090919063ffffffff16565b61203b81614f5b565b9050611fc3565b5050505050565b612042858585858561310b565b3061205f610b4b565b6001600160a01b03161461204257600454600f81810b600160801b909204900b1315612042575f600455612042565b5f611487858585856120aa60408051602081019091525f815290565b611c70565b5f806120ba8361317a565b905060048160078111156120d0576120d06146a7565b146120db5792915050565b5f838152600a6020526040902054806120f5575092915050565b600954604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa15801561213c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121609190614f73565b1561216f575060079392505050565b600954604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa1580156121b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121da9190614f73565b156121e9575060059392505050565b5060029392505050565b60608060605f8060065f8781526020019081526020015f20905080600101816002016123b783600301805480602002602001604051908101604052809291908181526020015f905b828210156122e3578382905f5260205f2001805461225890614c26565b80601f016020809104026020016040519081016040528092919081815260200182805461228490614c26565b80156122cf5780601f106122a6576101008083540402835291602001916122cf565b820191905f5260205f20905b8154815290600101906020018083116122b257829003601f168201915b50505050508152602001906001019061223b565b5050506004860180546040805160208084028201810190925282815293505f9084015b828210156123ae578382905f5260205f2001805461232390614c26565b80601f016020809104026020016040519081016040528092919081815260200182805461234f90614c26565b801561239a5780601f106123715761010080835404028352916020019161239a565b820191905f5260205f20905b81548152906001019060200180831161237d57829003601f168201915b505050505081526020019060010190612306565b505050506129bd565b600984015483546040805160208084028201810190925282815291869183018282801561240b57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116123ed575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561245b57602002820191905f5260205f20905b815481526020019060010190808311612447575b505050505092509450945094509450509193509193565b5f8061248086868686611a3d565b5f818152600660205260409020549091506001600160a01b0316338114806124cb57505f6124c98260016124b2611750565b6124bc9190614d81565b65ffffffffffff16611b1d565b105b6125275760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610322565b61143c878787876132b9565b5f63ffffffff8211156125975760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610322565b5090565b81545f90818160058111156125f5575f6125b4846132c6565b6125be9085614e0f565b5f8881526020902090915081015463ffffffff90811690871610156125e5578091506125f3565b6125f0816001614d6e565b92505b505b5f612602878785856133aa565b9050801561263c5761262687612619600184614e0f565b5f91825260209091200190565b54600160201b90046001600160e01b031661143c565b5f979650505050505050565b5f6126a333868686516001600160401b038111156126685761266861412c565b60405190808252806020026020018201604052801561269b57816020015b60608152602001906001900390816126865790505b508787612902565b611487858585856133fd565b606060ff83146126c9576126c2836137ba565b9050610c36565b8180546126d590614c26565b80601f016020809104026020016040519081016040528092919081815260200182805461270190614c26565b801561274c5780601f106127235761010080835404028352916020019161274c565b820191905f5260205f20905b81548152906001019060200180831161272f57829003601f168201915b50505050509050610c36565b5f65ffffffffffff8211156125975760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610322565b604051630748d63560e31b81526001600160a01b038481166004830152602482018490525f917f000000000000000000000000000000000000000000000000000000000000000090911690633a46b1a890604401602060405180830381865afa15801561282d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e49190614c9f565b80545f90801561192b5761286a83612619600184614e0f565b54600160201b90046001600160e01b03166117e7565b600954604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600980546001600160a01b0319166001600160a01b0392909216919091179055565b606083156128f85750816117e7565b6117e783836137f7565b805160208201205f61291f878761291988886129bd565b85611a3d565b5f8181526006602052604090206009810154919250906129b25780546001600160a01b0319166001600160a01b038a16178155875161296790600183019060208b0190613edf565b50865161297d90600283019060208a0190613f3e565b5085516129939060038301906020890190613f77565b5084516129a99060048301906020880190613fc7565b50600981018390555b505050505050505050565b60605f82516001600160401b038111156129d9576129d961412c565b604051908082528060200260200182016040528015612a0c57816020015b60608152602001906001900390816129f75790505b5090505f5b8151811015612ae457848181518110612a2c57612a2c614e22565b6020026020010151515f14612a9b57848181518110612a4d57612a4d614e22565b602002602001015180519060200120848281518110612a6e57612a6e614e22565b6020026020010151604051602001612a87929190614f92565b604051602081830303815290604052612ab6565b838181518110612aad57612aad614e22565b60200260200101515b828281518110612ac857612ac8614e22565b602002602001018190525080612add90614f5b565b9050612a11565b509392505050565b5f63288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b03198616821480612b3157506001600160e01b0319868116908216145b80612b4857506001600160e01b0319868116908516145b80612b6357506001600160e01b03198616630271189760e51b145b806116b357506301ffc9a760e01b6001600160e01b03198716149695505050505050565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612bdf57507f000000000000000000000000000000000000000000000000000000000000000046145b15612c0957507f000000000000000000000000000000000000000000000000000000000000000090565b610b5e604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612ce557505f90506003612d64565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612d36573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116612d5e575f60019250925050612d64565b91505f90505b94509492505050565b5f816004811115612d8057612d806146a7565b03612d885750565b6001816004811115612d9c57612d9c6146a7565b03612de95760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610322565b6002816004811115612dfd57612dfd6146a7565b03612e4a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610322565b6003816004811115612e5e57612e5e6146a7565b03610db85760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610322565b5f8581526006602090815260408083206001600160a01b038816845260088101909252909120805460ff1615612f445760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610322565b805460ff86166101000261ffff19909116176001178155612f6484613821565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff8516612fb35783826006015f828254612fa89190614d6e565b90915550611a349050565b5f1960ff861601612fd15783826005015f828254612fa89190614d6e565b60011960ff861601612ff05783826007015f828254612fa89190614d6e565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610322565b5f6001600160e01b038211156125975760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610322565b5f806130c3858585613888565b915091505b935093915050565b8154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b60095460405163e38335e560e01b81526001600160a01b039091169063e38335e5903490613145908890889088905f908990600401614cb6565b5f604051808303818588803b15801561315c575f80fd5b505af115801561316e573d5f803e3d5ffd5b50505050505050505050565b5f818152600360205260408120600281015460ff161561319d5750600792915050565b6002810154610100900460ff16156131b85750600292915050565b5f838152600360205260408120546001600160401b03169081900361321f5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610322565b5f613228611750565b65ffffffffffff16905080821061324357505f949350505050565b5f858152600360205260409020600101546001600160401b03168181106132705750600195945050505050565b61327986613a23565b801561329c57505f86815260066020819052604090912090810154600590910154115b156132ad5750600495945050505050565b50600395945050505050565b5f61148785858585613a5f565b5f815f036132d557505f919050565b5f60016132e184613b08565b901c6001901b905060018184816132fa576132fa614ebc565b048201901c9050600181848161331257613312614ebc565b048201901c9050600181848161332a5761332a614ebc565b048201901c9050600181848161334257613342614ebc565b048201901c9050600181848161335a5761335a614ebc565b048201901c9050600181848161337257613372614ebc565b048201901c9050600181848161338a5761338a614ebc565b048201901c90506117e7818285816133a4576133a4614ebc565b04613b9b565b5f5b81831015612ae4575f6133bf8484613bb0565b5f8781526020902090915063ffffffff86169082015463ffffffff1611156133e9578092506133f7565b6133f4816001614d6e565b93505b506133ac565b5f336134098184613bca565b6134555760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610322565b5f61345e611750565b65ffffffffffff1690505f61347883610ab6600185614e0f565b10156134e05760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610322565b5f6134f48888888880519060200120611a3d565b905086518851146135175760405162461bcd60e51b815260040161032290614fc2565b85518851146135385760405162461bcd60e51b815260040161032290614fc2565b5f8851116135885760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610322565b5f818152600360205260409020546001600160401b0316156135f65760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610322565b5f613603611c2084614d6e565b90505f61361261c4e083614d6e565b90506040518060e0016040528061362884613cb8565b6001600160401b031681526001600160a01b03871660208201525f604082015260600161365483613cb8565b6001600160401b0390811682525f60208084018290526040808501839052606094850183905288835260038252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e918111156137575761375761412c565b60405190808252806020026020018201604052801561378a57816020015b60608152602001906001900390816137755790505b508d88888f6040516137a499989796959493929190615003565b60405180910390a1509098975050505050505050565b60605f6137c683613d1f565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b8151156138075781518083602001fd5b8060405162461bcd60e51b815260040161032291906142d4565b5f6001600160601b038211156125975760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610322565b82545f90819080156139cb575f6138a487612619600185614e0f565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156139255760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610322565b805163ffffffff80881691160361396d578461394688612619600186614e0f565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790556139bb565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d555f8d81529190912094519151909216600160201b029216919091179101555b6020015192508391506130c89050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160201b0291909316179201919091559050816130c8565b5f8181526006602052604081206005810154613a56610b00855f908152600360205260409020546001600160401b031690565b11159392505050565b5f80613a6d86868686613d46565b5f818152600a602052604090205490915015611487576009545f828152600a60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f591613ac49160040190815260200190565b5f604051808303815f87803b158015613adb575f80fd5b505af1158015613aed573d5f803e3d5ffd5b5050505f828152600a60205260408120555095945050505050565b5f80608083901c15613b1c57608092831c92015b604083901c15613b2e57604092831c92015b602083901c15613b4057602092831c92015b601083901c15613b5257601092831c92015b600883901c15613b6457600892831c92015b600483901c15613b7657600492831c92015b600283901c15613b8857600292831c92015b600183901c15610c365760010192915050565b5f818310613ba957816117e7565b5090919050565b5f613bbe6002848418614ed0565b6117e790848416614d6e565b80515f906034811015613be1576001915050610c36565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b14613c1457600192505050610c36565b5f80613c21602885614e0f565b90505b83811015613c97575f80613c57888481518110613c4357613c43614e22565b01602001516001600160f81b031916613e4f565b9150915081613c6f5760019650505050505050610c36565b8060ff166004856001600160a01b0316901b179350505080613c9090614f5b565b9050613c24565b50856001600160a01b0316816001600160a01b031614935050505092915050565b5f6001600160401b038211156125975760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610322565b5f60ff8216601f811115610c3657604051632cd44ac360e21b815260040160405180910390fd5b5f80613d5486868686611a3d565b90505f613d6082611447565b90506002816007811115613d7657613d766146a7565b14158015613d9657506006816007811115613d9357613d936146a7565b14155b8015613db457506007816007811115613db157613db16146a7565b14155b613e005760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610322565b5f8281526003602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c9061102d9084815260200190565b5f8060f883901c602f81118015613e695750603a8160ff16105b15613e7e57600194602f199091019350915050565b8060ff166040108015613e94575060478160ff16105b15613ea9576001946036199091019350915050565b8060ff166060108015613ebf575060678160ff16105b15613ed4576001946056199091019350915050565b505f93849350915050565b828054828255905f5260205f20908101928215613f32579160200282015b82811115613f3257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613efd565b50612597929150614017565b828054828255905f5260205f20908101928215613f32579160200282015b82811115613f32578251825591602001919060010190613f5c565b828054828255905f5260205f20908101928215613fbb579160200282015b82811115613fbb5782518290613fab90826150e4565b5091602001919060010190613f95565b5061259792915061402b565b828054828255905f5260205f2090810192821561400b579160200282015b8281111561400b5782518290613ffb90826150e4565b5091602001919060010190613fe5565b50612597929150614047565b5b80821115612597575f8155600101614018565b80821115612597575f61403e8282614063565b5060010161402b565b80821115612597575f61405a8282614063565b50600101614047565b50805461406f90614c26565b5f825580601f1061407e575050565b601f0160209004905f5260205f2090810190610db89190614017565b5f602082840312156140aa575f80fd5b5035919050565b5f602082840312156140c1575f80fd5b81356001600160e01b0319811681146117e7575f80fd5b803560ff8116811461154b575f80fd5b5f8083601f8401126140f8575f80fd5b5081356001600160401b0381111561410e575f80fd5b602083019150836020828501011115614125575f80fd5b9250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156141685761416861412c565b604052919050565b5f6001600160401b038211156141885761418861412c565b50601f01601f191660200190565b5f82601f8301126141a5575f80fd5b81356141b86141b382614170565b614140565b8181528460208386010111156141cc575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f8060e0898b0312156141ff575f80fd5b8835975061420f60208a016140d8565b965060408901356001600160401b038082111561422a575f80fd5b6142368c838d016140e8565b909850965060608b013591508082111561424e575f80fd5b5061425b8b828c01614196565b94505061426a60808a016140d8565b925060a0890135915060c089013590509295985092959890939650565b5f5b838110156142a1578181015183820152602001614289565b50505f910152565b5f81518084526142c0816020860160208601614287565b601f01601f19169290920160200192915050565b602081525f6117e760208301846142a9565b6001600160a01b0381168114610db8575f80fd5b5f805f806080858703121561430d575f80fd5b8435614318816142e6565b93506020850135614328816142e6565b92506040850135915060608501356001600160401b03811115614349575f80fd5b61435587828801614196565b91505092959194509250565b5f6001600160401b038211156143795761437961412c565b5060051b60200190565b5f82601f830112614392575f80fd5b813560206143a26141b383614361565b82815260059290921b840181019181810190868411156143c0575f80fd5b8286015b848110156143e45780356143d7816142e6565b83529183019183016143c4565b509695505050505050565b5f82601f8301126143fe575f80fd5b8135602061440e6141b383614361565b82815260059290921b8401810191818101908684111561442c575f80fd5b8286015b848110156143e45780358352918301918301614430565b5f82601f830112614456575f80fd5b813560206144666141b383614361565b82815260059290921b84018101918181019086841115614484575f80fd5b8286015b848110156143e45780356001600160401b038111156144a6575f8081fd5b6144b48986838b0101614196565b845250918301918301614488565b5f805f80608085870312156144d5575f80fd5b84356001600160401b03808211156144eb575f80fd5b6144f788838901614383565b9550602087013591508082111561450c575f80fd5b614518888389016143ef565b9450604087013591508082111561452d575f80fd5b5061453a87828801614447565b949793965093946060013593505050565b5f8151808452602080850194508084015f5b838110156145825781516001600160a01b03168752958201959082019060010161455d565b509495945050505050565b5f8151808452602080850194508084015f5b838110156145825781518752958201959082019060010161459f565b5f82825180855260208086019550808260051b8401018186015f5b8481101561460457601f198684030189526145f28383516142a9565b988401989250908301906001016145d6565b5090979650505050505050565b608081525f614623608083018761454b565b8281036020840152614635818761458d565b9050828103604084015261464981866145bb565b9050828103606084015261143c81856145bb565b5f805f805f60a08688031215614671575f80fd5b85359450614681602087016140d8565b935061468f604087016140d8565b94979396509394606081013594506080013592915050565b634e487b7160e01b5f52602160045260245ffd5b60208101600883106146db57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f80604083850312156146f2575f80fd5b823591506020830135614704816142e6565b809150509250929050565b5f8060408385031215614720575f80fd5b82359150614730602084016140d8565b90509250929050565b5f805f805f6080868803121561474d575f80fd5b8535945061475d602087016140d8565b935060408601356001600160401b0380821115614778575f80fd5b61478489838a016140e8565b9095509350606088013591508082111561479c575f80fd5b506147a988828901614196565b9150509295509295909350565b5f805f80606085870312156147c9575f80fd5b843593506147d9602086016140d8565b925060408501356001600160401b038111156147f3575f80fd5b6147ff878288016140e8565b95989497509550505050565b5f805f806080858703121561481e575f80fd5b84356001600160401b0380821115614834575f80fd5b61484088838901614383565b95506020870135915080821115614855575f80fd5b614861888389016143ef565b94506040870135915080821115614876575f80fd5b61488288838901614447565b93506060870135915080821115614897575f80fd5b5061435587828801614196565b60ff60f81b8816815260e060208201525f6148c260e08301896142a9565b82810360408401526148d481896142a9565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501529050610d24818561458d565b5f805f60608486031215614917575f80fd5b8335614922816142e6565b92506020840135915060408401356001600160401b03811115614943575f80fd5b61494f86828701614196565b9150509250925092565b5f60208284031215614969575f80fd5b81356117e7816142e6565b5f805f805f60a08688031215614988575f80fd5b8535614993816142e6565b945060208601356149a3816142e6565b935060408601356001600160401b03808211156149be575f80fd5b6149ca89838a016143ef565b945060608801359150808211156149df575f80fd5b6149eb89838a016143ef565b9350608088013591508082111561479c575f80fd5b5f805f8060608587031215614a13575f80fd5b8435614a1e816142e6565b93506020850135925060408501356001600160401b038111156147f3575f80fd5b5f82601f830112614a4e575f80fd5b81356020614a5e6141b383614361565b82815260059290921b84018101918181019086841115614a7c575f80fd5b8286015b848110156143e45780356001600160401b03811115614a9e575f8081fd5b614aac8986838b0101614196565b845250918301918301614a80565b5f805f805f60a08688031215614ace575f80fd5b85356001600160401b0380821115614ae4575f80fd5b614af089838a01614383565b96506020880135915080821115614b05575f80fd5b614b1189838a016143ef565b95506040880135915080821115614b26575f80fd5b614b3289838a01614a3f565b94506060880135915080821115614b47575f80fd5b6149eb89838a01614447565b5f8060408385031215614b64575f80fd5b8235614b6f816142e6565b946020939093013593505050565b5f805f805f60a08688031215614b91575f80fd5b8535614b9c816142e6565b94506020860135614bac816142e6565b9350604086013592506060860135915060808601356001600160401b03811115614bd4575f80fd5b6147a988828901614196565b818382375f9101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c90821680614c3a57607f821691505b602082108103614c5857634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b5f60208284031215614caf575f80fd5b5051919050565b60a081525f614cc860a083018861454b565b8281036020840152614cda818861458d565b90508281036040840152614cee81876145bb565b60608401959095525050608001529392505050565b60c081525f614d1560c083018961454b565b8281036020840152614d27818961458d565b90508281036040840152614d3b81886145bb565b60608401969096525050608081019290925260a0909101529392505050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c3657610c36614d5a565b65ffffffffffff828116828216039080821115614da057614da0614d5a565b5092915050565b5f60208284031215614db7575f80fd5b81516001600160401b03811115614dcc575f80fd5b8201601f81018413614ddc575f80fd5b8051614dea6141b382614170565b818152856020838501011115614dfe575f80fd5b611487826020830160208601614287565b81810381811115610c3657610c36614d5a565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215614e46575f80fd5b815165ffffffffffff811681146117e7575f80fd5b608081525f614e6d608083018761454b565b8281036020840152614e7f818761458d565b90508281036040840152614e9381866145bb565b91505082606083015295945050505050565b8082028115828204841417610c3657610c36614d5a565b634e487b7160e01b5f52601260045260245ffd5b5f82614eea57634e487b7160e01b5f52601260045260245ffd5b500490565b84815260ff84166020820152826040820152608060608201525f6116b360808301846142a9565b85815260ff8516602082015283604082015260a060608201525f614f3d60a08301856142a9565b8281036080840152614f4f81856142a9565b98975050505050505050565b5f60018201614f6c57614f6c614d5a565b5060010190565b5f60208284031215614f83575f80fd5b815180151581146117e7575f80fd5b6001600160e01b03198316815281515f90614fb4816004850160208701614287565b919091016004019392505050565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b0389166020820152610120604082018190525f9061502d8382018b61454b565b90508281036060840152615041818a61458d565b9050828103608084015261505581896145bb565b905082810360a084015261506981886145bb565b90508560c08401528460e084015282810361010084015261508a81856142a9565b9c9b505050505050505050505050565b601f8211156150df575f81815260208120601f850160051c810160208610156150c05750805b601f850160051c820191505b81811015611472578281556001016150cc565b505050565b81516001600160401b038111156150fd576150fd61412c565b6151118161510b8454614c26565b8461509a565b602080601f831160018114615144575f841561512d5750858301515b5f19600386901b1c1916600185901b178555611472565b5f85815260208120601f198616915b8281101561517257888601518255948401946001909101908401615153565b508582101561518f57878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a2646970667358221220c043ae4c3bef20c872d6387aacbb0a6a6f21d53c90b40681dc93eaacc71716d064736f6c63430008140033","sourceMap":"377:2570:115:-:0;;;532:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;711:9;684:1;648:6;3771:88:24;;;;;;;;;;;;;-1:-1:-1;;;3771:88:24;;;3811:5;3818:9;:7;;;:9;;:::i;:::-;3251:45:233;:4;3282:13;3251:30;:45::i;:::-;3243:53;;3317:51;:7;3351:16;3317:33;:51::i;:::-;3306:62;;3392:22;;;;;;;;;;3378:36;;3441:25;;;;;;3424:42;;3494:13;3477:30;;3542:23;4077:11;;4090:14;;4054:81;;;1929:95;4054:81;;;3586:25:310;3627:18;;;3620:34;;;;3670:18;;;3663:34;4106:13:233;3713:18:310;;;3706:34;4129:4:233;3756:19:310;;;3749:61;4018:7:233;;3558:19:310;;4054:81:233;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;;3542:23;3517:48;;-1:-1:-1;;3597:4:233;3575:27;;3839:5:24::1;:13;3847:5:::0;3839;:13:::1;:::i;:::-;-1:-1:-1::0;;;;;;;511:39:35;;;1300:44:37;1323:20;1300:22;:44::i;:::-;-1:-1:-1;1780:32:34;1796:15;1780;:32::i;:::-;1722:97;532:192:115;;377:2570;;5525:99:24;5607:10;;;;;;;;;;;;-1:-1:-1;;;5607:10:24;;;;;5525:99::o;2895:341:228:-;2991:11;3040:2;3024:5;3018:19;:24;3014:216;;;3065:20;3079:5;3065:13;:20::i;:::-;3058:27;;;;3014:216;3142:5;3116:46;3157:5;3142;3116:46;:::i;:::-;-1:-1:-1;1371:66:228;;-1:-1:-1;3014:216:228;2895:341;;;;:::o;3592:930:37:-;2606:3;3700:18;:41;;3679:155;;;;-1:-1:-1;;;3679:155:37;;4023:2:310;3679:155:37;;;4005:21:310;4062:2;4042:18;;;4035:30;4101:34;4081:18;;;4074:62;4172:34;4152:18;;;4145:62;-1:-1:-1;;;4223:19:310;;;4216:34;4267:19;;3679:155:37;;;;;;;;;3845:26;3874:17;:15;:17::i;:::-;3845:46;-1:-1:-1;4025:23:37;;;;;:75;;-1:-1:-1;4052:23:37;:43;:48;4025:75;4021:263;;;4175:84;;;;;;;;;4116:36;4175:84;;4116:23;;4175:84;;;4219:38;4238:18;4219;:38::i;:::-;-1:-1:-1;;;;;4175:84:37;;;;;;4116:157;;;;;;;-1:-1:-1;4116:157:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4021:263;4341:96;4370:26;4388:7;:5;:7::i;:::-;4370:26;;:17;:26::i;:::-;4398:38;4417:18;4398;:38::i;:::-;4341:23;;:96;:28;:96::i;:::-;-1:-1:-1;;4453:62:37;;;4471:25:310;;;4527:2;4512:18;;4505:34;;;4453:62:37;;4444:18:310;4453:62:37;;;;;;;3669:853;3592:930;:::o;6409:176:34:-;6512:9;;6489:56;;;-1:-1:-1;;;;;6512:9:34;;;4762:34:310;;4832:15;;;4827:2;4812:18;;4805:43;6489:56:34;;4697:18:310;6489:56:34;;;;;;;6555:9;:23;;-1:-1:-1;;;;;;6555:23:34;-1:-1:-1;;;;;6555:23:34;;;;;;;;;;6409:176::o;1689:286:228:-;1754:11;1777:17;1803:3;1777:30;;1835:2;1821:4;:11;:16;1817:72;;;1874:3;1860:18;;-1:-1:-1;;;1860:18:228;;;;;;;;:::i;1817:72::-;1955:11;;1938:13;1955:4;1938:13;:::i;:::-;1930:36;;1689:286;-1:-1:-1;;;1689:286:228:o;1448:191:37:-;1530:23;:43;1504:7;;1530:48;:102;;1600:32;:23;:30;:32::i;:::-;-1:-1:-1;;;;;1530:102:37;1523:109;;1448:191;:::o;1530:102::-;1581:16;;1530:102;1523:109;;1448:191;:::o;2836:192:248:-;2893:7;-1:-1:-1;;;;;2920:26:248;;;2912:78;;;;-1:-1:-1;;;2912:78:248;;5916:2:310;2912:78:248;;;5898:21:310;5955:2;5935:18;;;5928:30;5994:34;5974:18;;;5967:62;-1:-1:-1;;;6045:18:310;;;6038:37;6092:19;;2912:78:248;5714:403:310;2912:78:248;-1:-1:-1;3015:5:248;2836:192::o;734:235:35:-;789:6;811:5;;-1:-1:-1;;;;;811:11:35;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:13:35;;;;;;;;-1:-1:-1;;811:13:35;;;;;;;;;;;;:::i;:::-;;;807:156;;921:31;939:12;921:17;:31::i;807:156::-;873:9;734:235;-1:-1:-1;734:235:35:o;15264:187:248:-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:248;;6613:2:310;15338:76:248;;;6595:21:310;6652:2;6632:18;;;6625:30;6691:34;6671:18;;;6664:62;-1:-1:-1;;;6742:18:310;;;6735:36;6788:19;;15338:76:248;6411:402:310;8063:162:223;8145:7;;8180:38;8188:4;8207:3;8212:5;8180:7;:38::i;:::-;8173:45;;;;8063:162;;;;;;;:::o;10152:206::-;10247:24;;10214:7;;10288:8;;:63;;10303:41;10317:4;10336:7;10342:1;10336:3;:7;:::i;:::-;13936:28;13999:20;;;14064:4;14051:18;;;14047:28;;13826:265;10303:41;:48;;;;-1:-1:-1;;;;;10303:48:223;10288:63;;;10299:1;10288:63;10281:70;10152:206;-1:-1:-1;;;10152:206:223:o;14240:187:248:-;14296:6;14331:16;14322:25;;;14314:76;;;;-1:-1:-1;;;14314:76:248;;7250:2:310;14314:76:248;;;7232:21:310;7289:2;7269:18;;;7262:30;7328:34;7308:18;;;7301:62;-1:-1:-1;;;7379:18:310;;;7372:36;7425:19;;14314:76:248;7048:402:310;11288:836:223;11421:11;;11379:7;;;;11447;;11443:675;;11522:25;11550:28;11564:4;11570:7;11576:1;11570:3;:7;:::i;11550:28::-;11522:56;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11522:56:223;;;;;;;-1:-1:-1;11656:16:223;;;-1:-1:-1;11656:16:223;11648:56;;;;-1:-1:-1;;;11648:56:223;;7657:2:310;11648:56:223;;;7639:21:310;7696:2;7676:18;;;7669:30;7735:29;7715:18;;;7708:57;7782:18;;11648:56:223;7455:351:310;11648:56:223;11768:9;;:16;;;;;;;11764:189;;11842:5;11804:28;11818:4;11824:7;11830:1;11824:3;:7;:::i;11804:28::-;:43;;-1:-1:-1;;;;;11804:43:223;;;;;;;;;;;;;;;;11764:189;;;11896:41;;;;;;;;;;;;;;;-1:-1:-1;;;;;11896:41:223;;;;;;;;;;11886:52;;;;;;;-1:-1:-1;11886:52:223;;;;;;;;;;;;;;;;;;;;;;;;;11764:189;11974:11;;;;-1:-1:-1;11987:5:223;;-1:-1:-1;11966:27:223;;-1:-1:-1;11966:27:223;11443:675;-1:-1:-1;;12034:41:223;;;;;;;;;;;;;;;-1:-1:-1;;;;;12034:41:223;;;;;;;;;;12024:52;;;;;;;-1:-1:-1;12024:52:223;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12068:5:223;12090:17;;14:139:310;-1:-1:-1;;;;;97:31:310;;87:42;;77:70;;143:1;140;133:12;77:70;14:139;:::o;158:443::-;279:6;287;340:2;328:9;319:7;315:23;311:32;308:52;;;356:1;353;346:12;308:52;388:9;382:16;407:39;440:5;407:39;:::i;:::-;515:2;500:18;;494:25;465:5;;-1:-1:-1;528:41:310;494:25;528:41;:::i;:::-;588:7;578:17;;;158:443;;;;;:::o;606:127::-;667:10;662:3;658:20;655:1;648:31;698:4;695:1;688:15;722:4;719:1;712:15;738:380;817:1;813:12;;;;860;;;881:61;;935:4;927:6;923:17;913:27;;881:61;988:2;980:6;977:14;957:18;954:38;951:161;;1034:10;1029:3;1025:20;1022:1;1015:31;1069:4;1066:1;1059:15;1097:4;1094:1;1087:15;951:161;;738:380;;;:::o;1249:545::-;1351:2;1346:3;1343:11;1340:448;;;1387:1;1412:5;1408:2;1401:17;1457:4;1453:2;1443:19;1527:2;1515:10;1511:19;1508:1;1504:27;1498:4;1494:38;1563:4;1551:10;1548:20;1545:47;;;-1:-1:-1;1586:4:310;1545:47;1641:2;1636:3;1632:12;1629:1;1625:20;1619:4;1615:31;1605:41;;1696:82;1714:2;1707:5;1704:13;1696:82;;;1759:17;;;1740:1;1729:13;1696:82;;;1700:3;;;1340:448;1249:545;;;:::o;1970:1352::-;2090:10;;-1:-1:-1;;;;;2112:30:310;;2109:56;;;2145:18;;:::i;:::-;2174:97;2264:6;2224:38;2256:4;2250:11;2224:38;:::i;:::-;2218:4;2174:97;:::i;:::-;2326:4;;2390:2;2379:14;;2407:1;2402:663;;;;3109:1;3126:6;3123:89;;;-1:-1:-1;3178:19:310;;;3172:26;3123:89;-1:-1:-1;;1927:1:310;1923:11;;;1919:24;1915:29;1905:40;1951:1;1947:11;;;1902:57;3225:81;;2372:944;;2402:663;1196:1;1189:14;;;1233:4;1220:18;;-1:-1:-1;;2438:20:310;;;2556:236;2570:7;2567:1;2564:14;2556:236;;;2659:19;;;2653:26;2638:42;;2751:27;;;;2719:1;2707:14;;;;2586:19;;2556:236;;;2560:3;2820:6;2811:7;2808:19;2805:201;;;2881:19;;;2875:26;-1:-1:-1;;2964:1:310;2960:14;;;2976:3;2956:24;2952:37;2948:42;2933:58;2918:74;;2805:201;-1:-1:-1;;;;;3052:1:310;3036:14;;;3032:22;3019:36;;-1:-1:-1;1970:1352:310:o;4859:548::-;4971:4;5000:2;5029;5018:9;5011:21;5061:6;5055:13;5104:6;5099:2;5088:9;5084:18;5077:34;5129:1;5139:140;5153:6;5150:1;5147:13;5139:140;;;5248:14;;;5244:23;;5238:30;5214:17;;;5233:2;5210:26;5203:66;5168:10;;5139:140;;;5143:3;5328:1;5323:2;5314:6;5303:9;5299:22;5295:31;5288:42;5398:2;5391;5387:7;5382:2;5374:6;5370:15;5366:29;5355:9;5351:45;5347:54;5339:62;;;;4859:548;;;;:::o;5412:297::-;5530:12;;5577:4;5566:16;;;5560:23;;5530:12;5595:16;;5592:111;;;-1:-1:-1;;5669:4:310;5665:17;;;;5662:1;5658:25;5654:38;5643:50;;5412:297;-1:-1:-1;5412:297:310:o;6122:284::-;6191:6;6244:2;6232:9;6223:7;6219:23;6215:32;6212:52;;;6260:1;6257;6250:12;6212:52;6292:9;6286:16;6342:14;6335:5;6331:26;6324:5;6321:37;6311:65;;6372:1;6369;6362:12;6818:225;6885:9;;;6906:11;;;6903:134;;;6959:10;6954:3;6950:20;6947:1;6940:31;6994:4;6991:1;6984:15;7022:4;7019:1;7012:15;7455:351;377:2570:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106102c2575f3560e01c80637b3c71d31161016f578063c28bc2fa116100d8578063deaaa7cc11610092578063f23a6e611161006d578063f23a6e6114610abb578063f8ce560a14610ae6578063fc0c546a14610b05578063fe0d94c114610b38575f80fd5b8063deaaa7cc146109a2578063e23a9a52146109d5578063eb9019d414610a9c575f80fd5b8063c28bc2fa146108d0578063c59057e4146108e3578063d33219b414610902578063da95691a1461091f578063dd4e2ba51461093e578063ddf0b00914610983575f80fd5b8063a7713a7011610129578063a7713a701461080a578063a890c9101461081e578063ab58fb8e1461083d578063b58131b01461085c578063bc197c811461086e578063c01f9e3714610899575f80fd5b80637b3c71d3146107485780637d5e81e21461076757806384b0196e1461078657806391ddadf4146107ad57806397c3d334146107d85780639a802a6d146107eb575f80fd5b80632fe3e2611161022b57806343859632116101e557806354fd4d50116101c057806354fd4d50146106c257806356781388146106eb5780635f398a141461070a57806360c4247f14610729575f80fd5b80634385963214610647578063452115d61461068f5780634bf5d7e9146106ae575f80fd5b80632fe3e26114610567578063328dd9821461059a5780633932abb1146105c95780633bccf4fd146105dd5780633e4f49e6146105fc57806340e58ee514610628575f80fd5b8063143489d01161027c578063143489d014610457578063150b7a02146104aa578063160cbed7146104ed57806324bc1a641461050c5780632656227d146105205780632d63f69314610533575f80fd5b8063013cf08b1461033157806301ffc9a7146103ab57806302a251a3146103da57806303420181146103f857806306f3f9e61461041757806306fdde0314610436575f80fd5b3661032d57306102d0610b4b565b6001600160a01b03161461032b5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b5f80fd5b34801561033c575f80fd5b5061035061034b36600461409a565b610b63565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156103b6575f80fd5b506103ca6103c53660046140b1565b610c2c565b60405190151581526020016103a2565b3480156103e5575f80fd5b5061c4e05b6040519081526020016103a2565b348015610403575f80fd5b506103ea6104123660046141e8565b610c3c565b348015610422575f80fd5b5061032b61043136600461409a565b610d32565b348015610441575f80fd5b5061044a610dbb565b6040516103a291906142d4565b348015610462575f80fd5b5061049261047136600461409a565b5f90815260036020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016103a2565b3480156104b5575f80fd5b506104d46104c43660046142fa565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016103a2565b3480156104f8575f80fd5b506103ea6105073660046144c2565b610e4b565b348015610517575f80fd5b506103ea61103f565b6103ea61052e3660046144c2565b611064565b34801561053e575f80fd5b506103ea61054d36600461409a565b5f908152600360205260409020546001600160401b031690565b348015610572575f80fd5b506103ea7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b3480156105a5575f80fd5b506105b96105b436600461409a565b611153565b6040516103a29493929190614611565b3480156105d4575f80fd5b50611c206103ea565b3480156105e8575f80fd5b506103ea6105f736600461465d565b6113d3565b348015610607575f80fd5b5061061b61061636600461409a565b611447565b6040516103a291906146bb565b348015610633575f80fd5b5061032b61064236600461409a565b611451565b348015610652575f80fd5b506103ca6106613660046146e1565b5f8281526006602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561069a575f80fd5b506103ea6106a93660046144c2565b61147a565b3480156106b9575f80fd5b5061044a611490565b3480156106cd575f80fd5b506040805180820190915260018152603160f81b602082015261044a565b3480156106f6575f80fd5b506103ea61070536600461470f565b611550565b348015610715575f80fd5b506103ea610724366004614739565b611577565b348015610734575f80fd5b506103ea61074336600461409a565b6115bf565b348015610753575f80fd5b506103ea6107623660046147b6565b61166d565b348015610772575f80fd5b506103ea61078136600461480b565b6116bd565b348015610791575f80fd5b5061079a6116ca565b6040516103a297969594939291906148a4565b3480156107b8575f80fd5b506107c1611750565b60405165ffffffffffff90911681526020016103a2565b3480156107e3575f80fd5b5060646103ea565b3480156107f6575f80fd5b506103ea610805366004614905565b6117d8565b348015610815575f80fd5b506103ea6117ee565b348015610829575f80fd5b5061032b610838366004614959565b611817565b348015610848575f80fd5b506103ea61085736600461409a565b61189d565b348015610867575f80fd5b505f6103ea565b348015610879575f80fd5b506104d4610888366004614974565b63bc197c8160e01b95945050505050565b3480156108a4575f80fd5b506103ea6108b336600461409a565b5f908152600360205260409020600101546001600160401b031690565b61032b6108de366004614a00565b611933565b3480156108ee575f80fd5b506103ea6108fd3660046144c2565b611a3d565b34801561090d575f80fd5b506009546001600160a01b0316610492565b34801561092a575f80fd5b506103ea610939366004614aba565b611a76565b348015610949575f80fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f000000000000602082015261044a565b34801561098e575f80fd5b5061032b61099d36600461409a565b611afc565b3480156109ad575f80fd5b506103ea7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b3480156109e0575f80fd5b50610a6c6109ef3660046146e1565b604080516060810182525f8082526020820181905291810191909152505f9182526006602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016103a2565b348015610aa7575f80fd5b506103ea610ab6366004614b53565b611b1d565b348015610ac6575f80fd5b506104d4610ad5366004614b7d565b63f23a6e6160e01b95945050505050565b348015610af1575f80fd5b506103ea610b0036600461409a565b611b3c565b348015610b10575f80fd5b506104927f000000000000000000000000000000000000000000000000000000000000000081565b61032b610b4636600461409a565b611be3565b5f610b5e6009546001600160a01b031690565b905090565b805f8080808080808080610b768a61189d565b5f8c8152600360205260409020549098506001600160401b03165f8c8152600360205260409020600101549097506001600160401b03165f8c81526006602081905260408220805460058201549282015460078301546001600160a01b039092169e50949a509198509296509450610bed8d611447565b90506002816007811115610c0357610c036146a7565b1493506007816007811115610c1a57610c1a6146a7565b14925050509193959799509193959799565b5f610c3682611c04565b92915050565b5f80610cdf610cd77fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610c77929190614be0565b60405180910390208b80519060200120604051602001610cbc959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120611c28565b868686611c54565b9050610d248a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508d9250611c70915050565b9a9950505050505050505050565b610d3a610b4b565b6001600160a01b0316336001600160a01b031614610d6a5760405162461bcd60e51b815260040161032290614bef565b30610d73610b4b565b6001600160a01b031614610daf575f8036604051610d92929190614be0565b604051809103902090505b80610da86004611dc2565b03610d9d57505b610db881611e3f565b50565b606060028054610dca90614c26565b80601f0160208091040260200160405190810160405280929190818152602001828054610df690614c26565b8015610e415780601f10610e1857610100808354040283529160200191610e41565b820191905f5260205f20905b815481529060010190602001808311610e2457829003601f168201915b5050505050905090565b5f80610e5986868686611a3d565b90506004610e6682611447565b6007811115610e7757610e776146a7565b14610e945760405162461bcd60e51b815260040161032290614c5e565b6009546040805163793d064960e11b815290515f926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa158015610edb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eff9190614c9f565b60095460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790610f38908a908a908a905f908b90600401614cb6565b602060405180830381865afa158015610f53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f779190614c9f565b5f838152600a60205260408082209290925560095491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091610fc1918b918b918b91908b908990600401614d03565b5f604051808303815f87803b158015610fd8575f80fd5b505af1158015610fea573d5f803e3d5ffd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289282824261101c9190614d6e565b604080519283526020830191909152015b60405180910390a15095945050505050565b5f610b5e600161104d611750565b6110579190614d81565b65ffffffffffff16611b3c565b5f8061107286868686611a3d565b90505f61107e82611447565b90506004816007811115611094576110946146a7565b14806110b1575060058160078111156110af576110af6146a7565b145b6110cd5760405162461bcd60e51b815260040161032290614c5e565b5f8281526003602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f9061111a9084815260200190565b60405180910390a161112f8288888888611faa565b61113c8288888888612049565b6111498288888888612056565b5095945050505050565b6060806060805f60065f8781526020019081526020015f20905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156111d057602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116111b2575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561122057602002820191905f5260205f20905b81548152602001906001019080831161120c575b5050505050925081805480602002602001604051908101604052809291908181526020015f905b828210156112ef578382905f5260205f2001805461126490614c26565b80601f016020809104026020016040519081016040528092919081815260200182805461129090614c26565b80156112db5780601f106112b2576101008083540402835291602001916112db565b820191905f5260205f20905b8154815290600101906020018083116112be57829003601f168201915b505050505081526020019060010190611247565b50505050915080805480602002602001604051908101604052809291908181526020015f905b828210156113bd578382905f5260205f2001805461133290614c26565b80601f016020809104026020016040519081016040528092919081815260200182805461135e90614c26565b80156113a95780601f10611380576101008083540402835291602001916113a9565b820191905f5260205f20905b81548152906001019060200180831161138c57829003601f168201915b505050505081526020019060010190611315565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201525f90819061142090610cd790608001610cbc565b905061143c87828860405180602001604052805f81525061208e565b979650505050505050565b5f610c36826120af565b5f805f8061145e856121f3565b93509350935093506114728484848461147a565b505050505050565b5f61148785858585612472565b95945050505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634bf5d7e96040518163ffffffff1660e01b81526004015f60405180830381865afa92505050801561150f57506040513d5f823e601f3d908101601f1916820160405261150c9190810190614da7565b60015b61154b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b5f8033905061156f84828560405180602001604052805f81525061208e565b949350505050565b5f8033905061143c87828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a9250611c70915050565b6008545f908082036115d5575050600754919050565b5f60086115e3600184614e0f565b815481106115f3576115f3614e22565b5f9182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b0316928201929092529150841061164857602001516001600160e01b03169392505050565b61165c61165485612533565b60089061259b565b6001600160e01b0316949350505050565b5f803390506116b386828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061208e92505050565b9695505050505050565b5f61148785858585612648565b5f606080828080836116fc7f0000000000000000000000000000000000000000000000000000000000000000836126af565b6117277f000000000000000000000000000000000000000000000000000000000000000060016126af565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156117cb575060408051601f3d908101601f191682019092526117c891810190614e36565b60015b61154b57610b5e43612758565b5f6117e48484846127be565b90505b9392505050565b6008545f9015611810576118026008612851565b6001600160e01b0316905090565b5060075490565b61181f610b4b565b6001600160a01b0316336001600160a01b03161461184f5760405162461bcd60e51b815260040161032290614bef565b30611858610b4b565b6001600160a01b031614611894575f8036604051611877929190614be0565b604051809103902090505b8061188d6004611dc2565b0361188257505b610db881612880565b6009545f828152600a602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa1580156118f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191b9190614c9f565b90508060011461192b57806117e7565b5f9392505050565b61193b610b4b565b6001600160a01b0316336001600160a01b03161461196b5760405162461bcd60e51b815260040161032290614bef565b30611974610b4b565b6001600160a01b0316146119b0575f8036604051611993929190614be0565b604051809103902090505b806119a96004611dc2565b0361199e57505b5f80856001600160a01b03168585856040516119cd929190614be0565b5f6040518083038185875af1925050503d805f8114611a07576040519150601f19603f3d011682016040523d82523d5f602084013e611a0c565b606091505b5091509150611a3482826040518060600160405280602881526020016151a0602891396128e9565b50505050505050565b5f84848484604051602001611a559493929190614e5b565b60408051601f19818403018152919052805160209091012095945050505050565b5f8251845114611ad95760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610322565b611ae7338787878787612902565b6116b38686611af687876129bd565b856116bd565b5f805f80611b09856121f3565b935093509350935061147284848484610e4b565b5f6117e78383611b3760408051602081019091525f815290565b6127be565b5f6064611b48836115bf565b604051632394e7a360e21b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638e539e8c90602401602060405180830381865afa158015611bab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bcf9190614c9f565b611bd99190614ea5565b610c369190614ed0565b5f805f80611bf0856121f3565b935093509350935061147284848484611064565b5f6001600160e01b03198216636e665ced60e01b1480610c365750610c3682612aec565b5f610c36611c34612b87565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f611c6387878787612cb0565b9150915061114981612d6d565b5f8581526003602052604081206001611c8888611447565b6007811115611c9957611c996146a7565b14611cf25760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610322565b80545f90611d0b9088906001600160401b0316866127be565b9050611d1a8888888488612eb6565b83515f03611d6e57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda489888489604051611d619493929190614eef565b60405180910390a261143c565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87128988848989604051611daf959493929190614f16565b60405180910390a2979650505050505050565b5f611ddc8254600f81810b600160801b909204900b131590565b15611dfa57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115611ec25760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610322565b5f611ecb6117ee565b90508015801590611edc5750600854155b15611f3e57604080518082019091525f815260089060208101611efe8461304e565b6001600160e01b0390811690915282546001810184555f93845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b611f6b611f59611f4c611750565b65ffffffffffff16612533565b611f628461304e565b600891906130b6565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b30611fb3610b4b565b6001600160a01b031614612042575f5b845181101561147257306001600160a01b0316858281518110611fe857611fe8614e22565b60200260200101516001600160a01b0316036120325761203283828151811061201357612013614e22565b60200260200101518051906020012060046130d090919063ffffffff16565b61203b81614f5b565b9050611fc3565b5050505050565b612042858585858561310b565b3061205f610b4b565b6001600160a01b03161461204257600454600f81810b600160801b909204900b1315612042575f600455612042565b5f611487858585856120aa60408051602081019091525f815290565b611c70565b5f806120ba8361317a565b905060048160078111156120d0576120d06146a7565b146120db5792915050565b5f838152600a6020526040902054806120f5575092915050565b600954604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa15801561213c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121609190614f73565b1561216f575060079392505050565b600954604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa1580156121b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121da9190614f73565b156121e9575060059392505050565b5060029392505050565b60608060605f8060065f8781526020019081526020015f20905080600101816002016123b783600301805480602002602001604051908101604052809291908181526020015f905b828210156122e3578382905f5260205f2001805461225890614c26565b80601f016020809104026020016040519081016040528092919081815260200182805461228490614c26565b80156122cf5780601f106122a6576101008083540402835291602001916122cf565b820191905f5260205f20905b8154815290600101906020018083116122b257829003601f168201915b50505050508152602001906001019061223b565b5050506004860180546040805160208084028201810190925282815293505f9084015b828210156123ae578382905f5260205f2001805461232390614c26565b80601f016020809104026020016040519081016040528092919081815260200182805461234f90614c26565b801561239a5780601f106123715761010080835404028352916020019161239a565b820191905f5260205f20905b81548152906001019060200180831161237d57829003601f168201915b505050505081526020019060010190612306565b505050506129bd565b600984015483546040805160208084028201810190925282815291869183018282801561240b57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116123ed575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561245b57602002820191905f5260205f20905b815481526020019060010190808311612447575b505050505092509450945094509450509193509193565b5f8061248086868686611a3d565b5f818152600660205260409020549091506001600160a01b0316338114806124cb57505f6124c98260016124b2611750565b6124bc9190614d81565b65ffffffffffff16611b1d565b105b6125275760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610322565b61143c878787876132b9565b5f63ffffffff8211156125975760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610322565b5090565b81545f90818160058111156125f5575f6125b4846132c6565b6125be9085614e0f565b5f8881526020902090915081015463ffffffff90811690871610156125e5578091506125f3565b6125f0816001614d6e565b92505b505b5f612602878785856133aa565b9050801561263c5761262687612619600184614e0f565b5f91825260209091200190565b54600160201b90046001600160e01b031661143c565b5f979650505050505050565b5f6126a333868686516001600160401b038111156126685761266861412c565b60405190808252806020026020018201604052801561269b57816020015b60608152602001906001900390816126865790505b508787612902565b611487858585856133fd565b606060ff83146126c9576126c2836137ba565b9050610c36565b8180546126d590614c26565b80601f016020809104026020016040519081016040528092919081815260200182805461270190614c26565b801561274c5780601f106127235761010080835404028352916020019161274c565b820191905f5260205f20905b81548152906001019060200180831161272f57829003601f168201915b50505050509050610c36565b5f65ffffffffffff8211156125975760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610322565b604051630748d63560e31b81526001600160a01b038481166004830152602482018490525f917f000000000000000000000000000000000000000000000000000000000000000090911690633a46b1a890604401602060405180830381865afa15801561282d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e49190614c9f565b80545f90801561192b5761286a83612619600184614e0f565b54600160201b90046001600160e01b03166117e7565b600954604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600980546001600160a01b0319166001600160a01b0392909216919091179055565b606083156128f85750816117e7565b6117e783836137f7565b805160208201205f61291f878761291988886129bd565b85611a3d565b5f8181526006602052604090206009810154919250906129b25780546001600160a01b0319166001600160a01b038a16178155875161296790600183019060208b0190613edf565b50865161297d90600283019060208a0190613f3e565b5085516129939060038301906020890190613f77565b5084516129a99060048301906020880190613fc7565b50600981018390555b505050505050505050565b60605f82516001600160401b038111156129d9576129d961412c565b604051908082528060200260200182016040528015612a0c57816020015b60608152602001906001900390816129f75790505b5090505f5b8151811015612ae457848181518110612a2c57612a2c614e22565b6020026020010151515f14612a9b57848181518110612a4d57612a4d614e22565b602002602001015180519060200120848281518110612a6e57612a6e614e22565b6020026020010151604051602001612a87929190614f92565b604051602081830303815290604052612ab6565b838181518110612aad57612aad614e22565b60200260200101515b828281518110612ac857612ac8614e22565b602002602001018190525080612add90614f5b565b9050612a11565b509392505050565b5f63288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b03198616821480612b3157506001600160e01b0319868116908216145b80612b4857506001600160e01b0319868116908516145b80612b6357506001600160e01b03198616630271189760e51b145b806116b357506301ffc9a760e01b6001600160e01b03198716149695505050505050565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612bdf57507f000000000000000000000000000000000000000000000000000000000000000046145b15612c0957507f000000000000000000000000000000000000000000000000000000000000000090565b610b5e604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612ce557505f90506003612d64565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612d36573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116612d5e575f60019250925050612d64565b91505f90505b94509492505050565b5f816004811115612d8057612d806146a7565b03612d885750565b6001816004811115612d9c57612d9c6146a7565b03612de95760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610322565b6002816004811115612dfd57612dfd6146a7565b03612e4a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610322565b6003816004811115612e5e57612e5e6146a7565b03610db85760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610322565b5f8581526006602090815260408083206001600160a01b038816845260088101909252909120805460ff1615612f445760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610322565b805460ff86166101000261ffff19909116176001178155612f6484613821565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff8516612fb35783826006015f828254612fa89190614d6e565b90915550611a349050565b5f1960ff861601612fd15783826005015f828254612fa89190614d6e565b60011960ff861601612ff05783826007015f828254612fa89190614d6e565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610322565b5f6001600160e01b038211156125975760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610322565b5f806130c3858585613888565b915091505b935093915050565b8154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b60095460405163e38335e560e01b81526001600160a01b039091169063e38335e5903490613145908890889088905f908990600401614cb6565b5f604051808303818588803b15801561315c575f80fd5b505af115801561316e573d5f803e3d5ffd5b50505050505050505050565b5f818152600360205260408120600281015460ff161561319d5750600792915050565b6002810154610100900460ff16156131b85750600292915050565b5f838152600360205260408120546001600160401b03169081900361321f5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610322565b5f613228611750565b65ffffffffffff16905080821061324357505f949350505050565b5f858152600360205260409020600101546001600160401b03168181106132705750600195945050505050565b61327986613a23565b801561329c57505f86815260066020819052604090912090810154600590910154115b156132ad5750600495945050505050565b50600395945050505050565b5f61148785858585613a5f565b5f815f036132d557505f919050565b5f60016132e184613b08565b901c6001901b905060018184816132fa576132fa614ebc565b048201901c9050600181848161331257613312614ebc565b048201901c9050600181848161332a5761332a614ebc565b048201901c9050600181848161334257613342614ebc565b048201901c9050600181848161335a5761335a614ebc565b048201901c9050600181848161337257613372614ebc565b048201901c9050600181848161338a5761338a614ebc565b048201901c90506117e7818285816133a4576133a4614ebc565b04613b9b565b5f5b81831015612ae4575f6133bf8484613bb0565b5f8781526020902090915063ffffffff86169082015463ffffffff1611156133e9578092506133f7565b6133f4816001614d6e565b93505b506133ac565b5f336134098184613bca565b6134555760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610322565b5f61345e611750565b65ffffffffffff1690505f61347883610ab6600185614e0f565b10156134e05760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610322565b5f6134f48888888880519060200120611a3d565b905086518851146135175760405162461bcd60e51b815260040161032290614fc2565b85518851146135385760405162461bcd60e51b815260040161032290614fc2565b5f8851116135885760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610322565b5f818152600360205260409020546001600160401b0316156135f65760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610322565b5f613603611c2084614d6e565b90505f61361261c4e083614d6e565b90506040518060e0016040528061362884613cb8565b6001600160401b031681526001600160a01b03871660208201525f604082015260600161365483613cb8565b6001600160401b0390811682525f60208084018290526040808501839052606094850183905288835260038252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e918111156137575761375761412c565b60405190808252806020026020018201604052801561378a57816020015b60608152602001906001900390816137755790505b508d88888f6040516137a499989796959493929190615003565b60405180910390a1509098975050505050505050565b60605f6137c683613d1f565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b8151156138075781518083602001fd5b8060405162461bcd60e51b815260040161032291906142d4565b5f6001600160601b038211156125975760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610322565b82545f90819080156139cb575f6138a487612619600185614e0f565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156139255760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610322565b805163ffffffff80881691160361396d578461394688612619600186614e0f565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790556139bb565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d555f8d81529190912094519151909216600160201b029216919091179101555b6020015192508391506130c89050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160201b0291909316179201919091559050816130c8565b5f8181526006602052604081206005810154613a56610b00855f908152600360205260409020546001600160401b031690565b11159392505050565b5f80613a6d86868686613d46565b5f818152600a602052604090205490915015611487576009545f828152600a60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f591613ac49160040190815260200190565b5f604051808303815f87803b158015613adb575f80fd5b505af1158015613aed573d5f803e3d5ffd5b5050505f828152600a60205260408120555095945050505050565b5f80608083901c15613b1c57608092831c92015b604083901c15613b2e57604092831c92015b602083901c15613b4057602092831c92015b601083901c15613b5257601092831c92015b600883901c15613b6457600892831c92015b600483901c15613b7657600492831c92015b600283901c15613b8857600292831c92015b600183901c15610c365760010192915050565b5f818310613ba957816117e7565b5090919050565b5f613bbe6002848418614ed0565b6117e790848416614d6e565b80515f906034811015613be1576001915050610c36565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b14613c1457600192505050610c36565b5f80613c21602885614e0f565b90505b83811015613c97575f80613c57888481518110613c4357613c43614e22565b01602001516001600160f81b031916613e4f565b9150915081613c6f5760019650505050505050610c36565b8060ff166004856001600160a01b0316901b179350505080613c9090614f5b565b9050613c24565b50856001600160a01b0316816001600160a01b031614935050505092915050565b5f6001600160401b038211156125975760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610322565b5f60ff8216601f811115610c3657604051632cd44ac360e21b815260040160405180910390fd5b5f80613d5486868686611a3d565b90505f613d6082611447565b90506002816007811115613d7657613d766146a7565b14158015613d9657506006816007811115613d9357613d936146a7565b14155b8015613db457506007816007811115613db157613db16146a7565b14155b613e005760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610322565b5f8281526003602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c9061102d9084815260200190565b5f8060f883901c602f81118015613e695750603a8160ff16105b15613e7e57600194602f199091019350915050565b8060ff166040108015613e94575060478160ff16105b15613ea9576001946036199091019350915050565b8060ff166060108015613ebf575060678160ff16105b15613ed4576001946056199091019350915050565b505f93849350915050565b828054828255905f5260205f20908101928215613f32579160200282015b82811115613f3257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613efd565b50612597929150614017565b828054828255905f5260205f20908101928215613f32579160200282015b82811115613f32578251825591602001919060010190613f5c565b828054828255905f5260205f20908101928215613fbb579160200282015b82811115613fbb5782518290613fab90826150e4565b5091602001919060010190613f95565b5061259792915061402b565b828054828255905f5260205f2090810192821561400b579160200282015b8281111561400b5782518290613ffb90826150e4565b5091602001919060010190613fe5565b50612597929150614047565b5b80821115612597575f8155600101614018565b80821115612597575f61403e8282614063565b5060010161402b565b80821115612597575f61405a8282614063565b50600101614047565b50805461406f90614c26565b5f825580601f1061407e575050565b601f0160209004905f5260205f2090810190610db89190614017565b5f602082840312156140aa575f80fd5b5035919050565b5f602082840312156140c1575f80fd5b81356001600160e01b0319811681146117e7575f80fd5b803560ff8116811461154b575f80fd5b5f8083601f8401126140f8575f80fd5b5081356001600160401b0381111561410e575f80fd5b602083019150836020828501011115614125575f80fd5b9250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156141685761416861412c565b604052919050565b5f6001600160401b038211156141885761418861412c565b50601f01601f191660200190565b5f82601f8301126141a5575f80fd5b81356141b86141b382614170565b614140565b8181528460208386010111156141cc575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f8060e0898b0312156141ff575f80fd5b8835975061420f60208a016140d8565b965060408901356001600160401b038082111561422a575f80fd5b6142368c838d016140e8565b909850965060608b013591508082111561424e575f80fd5b5061425b8b828c01614196565b94505061426a60808a016140d8565b925060a0890135915060c089013590509295985092959890939650565b5f5b838110156142a1578181015183820152602001614289565b50505f910152565b5f81518084526142c0816020860160208601614287565b601f01601f19169290920160200192915050565b602081525f6117e760208301846142a9565b6001600160a01b0381168114610db8575f80fd5b5f805f806080858703121561430d575f80fd5b8435614318816142e6565b93506020850135614328816142e6565b92506040850135915060608501356001600160401b03811115614349575f80fd5b61435587828801614196565b91505092959194509250565b5f6001600160401b038211156143795761437961412c565b5060051b60200190565b5f82601f830112614392575f80fd5b813560206143a26141b383614361565b82815260059290921b840181019181810190868411156143c0575f80fd5b8286015b848110156143e45780356143d7816142e6565b83529183019183016143c4565b509695505050505050565b5f82601f8301126143fe575f80fd5b8135602061440e6141b383614361565b82815260059290921b8401810191818101908684111561442c575f80fd5b8286015b848110156143e45780358352918301918301614430565b5f82601f830112614456575f80fd5b813560206144666141b383614361565b82815260059290921b84018101918181019086841115614484575f80fd5b8286015b848110156143e45780356001600160401b038111156144a6575f8081fd5b6144b48986838b0101614196565b845250918301918301614488565b5f805f80608085870312156144d5575f80fd5b84356001600160401b03808211156144eb575f80fd5b6144f788838901614383565b9550602087013591508082111561450c575f80fd5b614518888389016143ef565b9450604087013591508082111561452d575f80fd5b5061453a87828801614447565b949793965093946060013593505050565b5f8151808452602080850194508084015f5b838110156145825781516001600160a01b03168752958201959082019060010161455d565b509495945050505050565b5f8151808452602080850194508084015f5b838110156145825781518752958201959082019060010161459f565b5f82825180855260208086019550808260051b8401018186015f5b8481101561460457601f198684030189526145f28383516142a9565b988401989250908301906001016145d6565b5090979650505050505050565b608081525f614623608083018761454b565b8281036020840152614635818761458d565b9050828103604084015261464981866145bb565b9050828103606084015261143c81856145bb565b5f805f805f60a08688031215614671575f80fd5b85359450614681602087016140d8565b935061468f604087016140d8565b94979396509394606081013594506080013592915050565b634e487b7160e01b5f52602160045260245ffd5b60208101600883106146db57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f80604083850312156146f2575f80fd5b823591506020830135614704816142e6565b809150509250929050565b5f8060408385031215614720575f80fd5b82359150614730602084016140d8565b90509250929050565b5f805f805f6080868803121561474d575f80fd5b8535945061475d602087016140d8565b935060408601356001600160401b0380821115614778575f80fd5b61478489838a016140e8565b9095509350606088013591508082111561479c575f80fd5b506147a988828901614196565b9150509295509295909350565b5f805f80606085870312156147c9575f80fd5b843593506147d9602086016140d8565b925060408501356001600160401b038111156147f3575f80fd5b6147ff878288016140e8565b95989497509550505050565b5f805f806080858703121561481e575f80fd5b84356001600160401b0380821115614834575f80fd5b61484088838901614383565b95506020870135915080821115614855575f80fd5b614861888389016143ef565b94506040870135915080821115614876575f80fd5b61488288838901614447565b93506060870135915080821115614897575f80fd5b5061435587828801614196565b60ff60f81b8816815260e060208201525f6148c260e08301896142a9565b82810360408401526148d481896142a9565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501529050610d24818561458d565b5f805f60608486031215614917575f80fd5b8335614922816142e6565b92506020840135915060408401356001600160401b03811115614943575f80fd5b61494f86828701614196565b9150509250925092565b5f60208284031215614969575f80fd5b81356117e7816142e6565b5f805f805f60a08688031215614988575f80fd5b8535614993816142e6565b945060208601356149a3816142e6565b935060408601356001600160401b03808211156149be575f80fd5b6149ca89838a016143ef565b945060608801359150808211156149df575f80fd5b6149eb89838a016143ef565b9350608088013591508082111561479c575f80fd5b5f805f8060608587031215614a13575f80fd5b8435614a1e816142e6565b93506020850135925060408501356001600160401b038111156147f3575f80fd5b5f82601f830112614a4e575f80fd5b81356020614a5e6141b383614361565b82815260059290921b84018101918181019086841115614a7c575f80fd5b8286015b848110156143e45780356001600160401b03811115614a9e575f8081fd5b614aac8986838b0101614196565b845250918301918301614a80565b5f805f805f60a08688031215614ace575f80fd5b85356001600160401b0380821115614ae4575f80fd5b614af089838a01614383565b96506020880135915080821115614b05575f80fd5b614b1189838a016143ef565b95506040880135915080821115614b26575f80fd5b614b3289838a01614a3f565b94506060880135915080821115614b47575f80fd5b6149eb89838a01614447565b5f8060408385031215614b64575f80fd5b8235614b6f816142e6565b946020939093013593505050565b5f805f805f60a08688031215614b91575f80fd5b8535614b9c816142e6565b94506020860135614bac816142e6565b9350604086013592506060860135915060808601356001600160401b03811115614bd4575f80fd5b6147a988828901614196565b818382375f9101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c90821680614c3a57607f821691505b602082108103614c5857634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b5f60208284031215614caf575f80fd5b5051919050565b60a081525f614cc860a083018861454b565b8281036020840152614cda818861458d565b90508281036040840152614cee81876145bb565b60608401959095525050608001529392505050565b60c081525f614d1560c083018961454b565b8281036020840152614d27818961458d565b90508281036040840152614d3b81886145bb565b60608401969096525050608081019290925260a0909101529392505050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c3657610c36614d5a565b65ffffffffffff828116828216039080821115614da057614da0614d5a565b5092915050565b5f60208284031215614db7575f80fd5b81516001600160401b03811115614dcc575f80fd5b8201601f81018413614ddc575f80fd5b8051614dea6141b382614170565b818152856020838501011115614dfe575f80fd5b611487826020830160208601614287565b81810381811115610c3657610c36614d5a565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215614e46575f80fd5b815165ffffffffffff811681146117e7575f80fd5b608081525f614e6d608083018761454b565b8281036020840152614e7f818761458d565b90508281036040840152614e9381866145bb565b91505082606083015295945050505050565b8082028115828204841417610c3657610c36614d5a565b634e487b7160e01b5f52601260045260245ffd5b5f82614eea57634e487b7160e01b5f52601260045260245ffd5b500490565b84815260ff84166020820152826040820152608060608201525f6116b360808301846142a9565b85815260ff8516602082015283604082015260a060608201525f614f3d60a08301856142a9565b8281036080840152614f4f81856142a9565b98975050505050505050565b5f60018201614f6c57614f6c614d5a565b5060010190565b5f60208284031215614f83575f80fd5b815180151581146117e7575f80fd5b6001600160e01b03198316815281515f90614fb4816004850160208701614287565b919091016004019392505050565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b0389166020820152610120604082018190525f9061502d8382018b61454b565b90508281036060840152615041818a61458d565b9050828103608084015261505581896145bb565b905082810360a084015261506981886145bb565b90508560c08401528460e084015282810361010084015261508a81856142a9565b9c9b505050505050505050505050565b601f8211156150df575f81815260208120601f850160051c810160208610156150c05750805b601f850160051c820191505b81811015611472578281556001016150cc565b505050565b81516001600160401b038111156150fd576150fd61412c565b6151118161510b8454614c26565b8461509a565b602080601f831160018114615144575f841561512d5750858301515b5f19600386901b1c1916600185901b178555611472565b5f85815260208120601f198616915b8281101561517257888601518255948401946001909101908401615153565b508582101561518f57878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a2646970667358221220c043ae4c3bef20c872d6387aacbb0a6a6f21d53c90b40681dc93eaacc71716d064736f6c63430008140033","sourceMap":"377:2570:115:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4079:4:24;4056:11;:9;:11::i;:::-;-1:-1:-1;;;;;4056:28:24;;4048:72;;;;-1:-1:-1;;;4048:72:24;;216:2:310;4048:72:24;;;198:21:310;255:2;235:18;;;228:30;294:33;274:18;;;267:61;345:18;;4048:72:24;;;;;;;;;377:2570:115;;;;;7736:1021:27;;;;;;;;;;-1:-1:-1;7736:1021:27;;;;;:::i;:::-;;:::i;:::-;;;;946:25:310;;;-1:-1:-1;;;;;1007:32:310;;;1002:2;987:18;;980:60;1056:18;;;1049:34;;;;1114:2;1099:18;;1092:34;;;;1157:3;1142:19;;1135:35;;;;1027:3;1186:19;;1179:35;1245:3;1230:19;;1223:35;1289:3;1274:19;;1267:35;1346:14;1339:22;1333:3;1318:19;;1311:51;1406:14;1399:22;1393:3;1378:19;;1371:51;933:3;918:19;7736:1021:27;;;;;;;;2744:201:115;;;;;;;;;;-1:-1:-1;2744:201:115;;;;;:::i;:::-;;:::i;:::-;;;1889:14:310;;1882:22;1864:41;;1852:2;1837:18;2744:201:115;1724:187:310;835:102:115;;;;;;;;;;-1:-1:-1;915:5:115;835:102;;;2062:25:310;;;2050:2;2035:18;835:102:115;1916:177:310;18399:784:24;;;;;;;;;;-1:-1:-1;18399:784:24;;;;;:::i;:::-;;:::i;3221:150:37:-;;;;;;;;;;-1:-1:-1;3221:150:37;;;;;:::i;:::-;;:::i;5368:98:24:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8660:148::-;;;;;;;;;;-1:-1:-1;8660:148:24;;;;;:::i;:::-;8744:7;8770:22;;;:10;:22;;;;;:31;-1:-1:-1;;;8770:31:24;;-1:-1:-1;;;;;8770:31:24;;8660:148;;;;-1:-1:-1;;;;;5585:32:310;;;5567:51;;5555:2;5540:18;8660:148:24;5421:203:310;21891:162:24;;;;;;;;;;-1:-1:-1;21891:162:24;;;;;:::i;:::-;-1:-1:-1;;;21891:162:24;;;;;;;;;;-1:-1:-1;;;;;;6597:33:310;;;6579:52;;6567:2;6552:18;21891:162:24;6435:202:310;3633:739:34;;;;;;;;;;-1:-1:-1;3633:739:34;;;;;:::i;:::-;;:::i;9642:113:27:-;;;;;;;;;;;;;:::i;12140:885:24:-;;;;;;:::i;:::-;;:::i;8211:149::-;;;;;;;;;;-1:-1:-1;8211:149:24;;;;;:::i;:::-;8295:7;8321:22;;;:10;:22;;;;;:32;-1:-1:-1;;;;;8321:32:24;;8211:149;1235:147;;;;;;;;;;;;1294:88;1235:147;;8837:467:27;;;;;;;;;;-1:-1:-1;8837:467:27;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;730:99:115:-;;;;;;;;;;-1:-1:-1;809:4:115;730:99;;17888:427:24;;;;;;;;;;-1:-1:-1;17888:427:24;;;;;:::i;:::-;;:::i;1106:187:115:-;;;;;;;;;;-1:-1:-1;1106:187:115;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4230:336:27:-;;;;;;;;;;-1:-1:-1;4230:336:27;;;;;:::i;:::-;;:::i;9935:178::-;;;;;;;;;;-1:-1:-1;9935:178:27;;;;;:::i;:::-;10028:4;10051:28;;;:16;:28;;;;;;;;-1:-1:-1;;;;;10051:46:27;;;;:37;;:46;;;;;:55;;;9935:178;;;;;1625:320:115;;;;;;;;;;-1:-1:-1;1625:320:115;;;;;:::i;:::-;;:::i;1124:259:35:-;;;;;;;;;;;;;:::i;5525:99:24:-;;;;;;;;;;-1:-1:-1;5607:10:24;;;;;;;;;;;;-1:-1:-1;;;5607:10:24;;;;5525:99;;16898:198;;;;;;;;;;-1:-1:-1;16898:198:24;;;;;:::i;:::-;;:::i;17511:312::-;;;;;;;;;;-1:-1:-1;17511:312:24;;;;;:::i;:::-;;:::i;1752:664:37:-;;;;;;;;;;-1:-1:-1;1752:664:37;;;;;:::i;:::-;;:::i;17166:266:24:-;;;;;;;;;;-1:-1:-1;17166:266:24;;;;;:::i;:::-;;:::i;1299:320:115:-;;;;;;;;;;-1:-1:-1;1299:320:115;;;;;:::i;:::-;;:::i;5021:633:233:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;734:235:35:-;;;;;;;;;;;;;:::i;:::-;;;17614:14:310;17602:27;;;17584:46;;17572:2;17557:18;734:235:35;17440:196:310;2522:94:37;;;;;;;;;;-1:-1:-1;2606:3:37;2522:94;;16615:223:24;;;;;;;;;;-1:-1:-1;16615:223:24;;;;;:::i;:::-;;:::i;1448:191:37:-;;;;;;;;;;;;;:::i;6270:133:34:-;;;;;;;;;;-1:-1:-1;6270:133:34;;;;;:::i;:::-;;:::i;3294:259::-;;;;;;;;;;-1:-1:-1;3294:259:34;;;;;:::i;:::-;;:::i;943:93:115:-;;;;;;;;;;-1:-1:-1;1002:7:115;943:93;;22429:247:24;;;;;;;;;;-1:-1:-1;22429:247:24;;;;;:::i;:::-;-1:-1:-1;;;22429:247:24;;;;;;;;8428:147;;;;;;;;;;-1:-1:-1;8428:147:24;;;;;:::i;:::-;8512:7;8538:22;;;:10;:22;;;;;:30;;;-1:-1:-1;;;;;8538:30:24;;8428:147;21235:296;;;;;;:::i;:::-;;:::i;6569:308::-;;;;;;;;;;-1:-1:-1;6569:308:24;;;;;:::i;:::-;;:::i;3097:109:34:-;;;;;;;;;;-1:-1:-1;3189:9:34;;-1:-1:-1;;;;;3189:9:34;3097:109;;2356:964:27;;;;;;;;;;-1:-1:-1;2356:964:27;;;;;:::i;:::-;;:::i;1449:130::-;;;;;;;;;;-1:-1:-1;1537:35:27;;;;;;;;;;;;;;;;;1449:130;;3395:334;;;;;;;;;;-1:-1:-1;3395:334:27;;;;;:::i;:::-;;:::i;1134:95:24:-;;;;;;;;;;;;1176:53;1134:95;;9384:177:27;;;;;;;;;;-1:-1:-1;9384:177:27;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;9510:28:27;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;9510:44:27;;;;;;:37;;;;:44;;;;;;9503:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9503:51:27;;;;;;9384:177;;;;;22531:13:310;;22524:21;22517:29;22499:48;;22607:4;22595:17;;;22589:24;22615:4;22585:35;22563:20;;;22556:65;22669:17;;;22663:24;-1:-1:-1;;;;;22659:57:310;22637:20;;;22630:87;22487:2;22472:18;9384:177:27;22303:420:310;16373:172:24;;;;;;;;;;-1:-1:-1;16373:172:24;;;;;:::i;:::-;;:::i;22129:219::-;;;;;;;;;;-1:-1:-1;22129:219:24;;;;;:::i;:::-;-1:-1:-1;;;22129:219:24;;;;;;;;2751:194:37;;;;;;;;;;-1:-1:-1;2751:194:37;;;;;:::i;:::-;;:::i;430:31:35:-;;;;;;;;;;;;;;;3806:346:27;;;;;;:::i;:::-;;:::i;2600:138:115:-;2688:7;2714:17;3189:9:34;;-1:-1:-1;;;;;3189:9:34;;3097:109;2714:17:115;2707:24;;2600:138;:::o;7736:1021:27:-;8189:10;7880;;;;;;;;;8215:23;8189:10;8215:11;:23::i;:::-;8295:7:24;8321:22;;;:10;:22;;;;;:32;8209:29:27;;-1:-1:-1;;;;;;8321:32:24;8512:7;8538:22;;;:10;:22;;;;;:30;;;8248:41:27;;-1:-1:-1;;;;;;8538:30:24;8349:31:27;8383:28;;;:16;:28;;;;;;;8432:16;;8469;;;;8510:20;;;;8555;;;;-1:-1:-1;;;;;8432:16:27;;;;-1:-1:-1;8299:39:27;;-1:-1:-1;8469:16:27;;-1:-1:-1;8510:20:27;;-1:-1:-1;8555:20:27;-1:-1:-1;8615:17:27;8400:10;8615:5;:17::i;:::-;8586:46;-1:-1:-1;8669:22:27;8653:12;:38;;;;;;;;:::i;:::-;;;-1:-1:-1;8728:22:27;8712:12;:38;;;;;;;;:::i;:::-;;8701:49;;8174:583;;7736:1021;;;;;;;;;;;:::o;2744:201:115:-;2879:4;2902:36;2926:11;2902:23;:36::i;:::-;2895:43;2744:201;-1:-1:-1;;2744:201:115:o;18399:784:24:-;18647:7;18666:13;18682:423;18709:341;1294:88;18860:10;18896:7;18945:6;;18929:24;;;;;;;:::i;:::-;;;;;;;;18989:6;18979:17;;;;;;18774:244;;;;;;;;;;;24544:25:310;;;24600:2;24585:18;;24578:34;;;;24660:4;24648:17;;;;24643:2;24628:18;;24621:45;24697:2;24682:18;;24675:34;24740:3;24725:19;;24718:35;24531:3;24516:19;;24289:470;18774:244:24;;;;;;;;;;;;;18743:293;;;;;;18709:16;:341::i;:::-;19064:1;19079;19094;18682:13;:423::i;:::-;18666:439;;19123:53;19133:10;19145:5;19152:7;19161:6;;19123:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19169:6:24;;-1:-1:-1;19123:9:24;;-1:-1:-1;;19123:53:24:i;:::-;19116:60;18399:784;-1:-1:-1;;;;;;;;;;18399:784:24:o;3221:150:37:-;3353:11:24;:9;:11::i;:::-;-1:-1:-1;;;;;3337:27:24;734:10:224;-1:-1:-1;;;;;3337:27:24;;3329:64;;;;-1:-1:-1;;;3329:64:24;;;;;;;:::i;:::-;3430:4;3407:11;:9;:11::i;:::-;-1:-1:-1;;;;;3407:28:24;;3403:277;;3451:19;;808:14:224;3473:21:24;;;;;;;:::i;:::-;;;;;;;;3451:43;;3618:52;3655:11;3625:26;:15;:24;:26::i;:::-;:41;3618:52;;3437:243;3403:277;3322:42:37::1;3345:18;3322:22;:42::i;:::-;3221:150:::0;:::o;5368:98:24:-;5422:13;5454:5;5447:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5368:98;:::o;3633:739:34:-;3821:7;3840:18;3861:57;3874:7;3883:6;3891:9;3902:15;3861:12;:57::i;:::-;3840:78;-1:-1:-1;3958:23:34;3937:17;3943:10;3937:5;:17::i;:::-;:44;;;;;;;;:::i;:::-;;3929:90;;;;-1:-1:-1;;;3929:90:34;;;;;;;:::i;:::-;4046:9;;:23;;;-1:-1:-1;;;4046:23:34;;;;4030:13;;-1:-1:-1;;;;;4046:9:34;;:21;;:23;;;;;;;;;;;;;;:9;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4106:9;;:76;;-1:-1:-1;;;4106:76:34;;4030:39;;-1:-1:-1;;;;;;4106:9:34;;:28;;:76;;4135:7;;4144:6;;4152:9;;4106;;4166:15;;4106:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4079:24;;;;:12;:24;;;;;;:103;;;;4192:9;;:78;;-1:-1:-1;;;4192:78:34;;-1:-1:-1;;;;;4192:9:34;;;;:23;;:78;;4216:7;;4225:6;;4233:9;;4079:24;4247:15;;4264:5;;4192:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4286:51;4301:10;4331:5;4313:15;:23;;;;:::i;:::-;4286:51;;;28478:25:310;;;28534:2;28519:18;;28512:34;;;;28451:18;4286:51:34;;;;;;;;-1:-1:-1;4355:10:34;3633:739;-1:-1:-1;;;;;3633:739:34:o;9642:113:27:-;9703:7;9729:19;9746:1;9736:7;:5;:7::i;:::-;:11;;;;:::i;:::-;9729:19;;:6;:19::i;12140:885:24:-;12338:7;12357:18;12378:57;12391:7;12400:6;12408:9;12419:15;12378:12;:57::i;:::-;12357:78;;12446:26;12475:17;12481:10;12475:5;:17::i;:::-;12446:46;-1:-1:-1;12539:23:24;12523:12;:39;;;;;;;;:::i;:::-;;:79;;;-1:-1:-1;12582:20:24;12566:12;:36;;;;;;;;:::i;:::-;;12523:79;12502:159;;;;-1:-1:-1;;;12502:159:24;;;;;;;:::i;:::-;12671:22;;;;:10;:22;;;;;;;:31;;:38;;-1:-1:-1;;12671:38:24;12705:4;12671:38;;;12725:28;;;;;12682:10;2062:25:310;;2050:2;2035:18;;1916:177;12725:28:24;;;;;;;;12764:71;12779:10;12791:7;12800:6;12808:9;12819:15;12764:14;:71::i;:::-;12845:65;12854:10;12866:7;12875:6;12883:9;12894:15;12845:8;:65::i;:::-;12920:70;12934:10;12946:7;12955:6;12963:9;12974:15;12920:13;:70::i;:::-;-1:-1:-1;13008:10:24;12140:885;-1:-1:-1;;;;;12140:885:24:o;8837:467:27:-;8982:24;9020:23;9057:26;9097:24;9146:31;9180:16;:28;9197:10;9180:28;;;;;;;;;;;9146:62;;9226:7;:15;;9243:7;:14;;9259:7;:18;;9279:7;:17;;9218:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9218:79:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8837:467;;;;;:::o;17888:427:24:-;18145:48;;;1176:53;18145:48;;;28939:25:310;28980:18;;;28973:34;;;29055:4;29043:17;;29023:18;;;29016:45;18056:7:24;;;;18091:159;;18118:77;;28912:18:310;;18145:48:24;28741:326:310;18091:159:24;18075:175;;18267:41;18277:10;18289:5;18296:7;18267:41;;;;;;;;;;;;:9;:41::i;:::-;18260:48;17888:427;-1:-1:-1;;;;;;;17888:427:24:o;1106:187:115:-;1231:13;1263:23;1275:10;1263:11;:23::i;4230:336:27:-;4314:24;4352:23;4389:24;4427:23;4463:34;4486:10;4463:22;:34::i;:::-;4300:197;;;;;;;;4508:51;4515:7;4524:6;4532:9;4543:15;4508:6;:51::i;:::-;;4290:276;;;;4230:336;:::o;1625:320:115:-;1855:7;1881:57;1894:7;1903:6;1911:9;1922:15;1881:12;:57::i;:::-;1874:64;1625:320;-1:-1:-1;;;;;1625:320:115:o;1124:259:35:-;1184:13;1213:5;-1:-1:-1;;;;;1213:16:35;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1213:18:35;;;;;;;;;;;;:::i;:::-;;;1209:168;;-1:-1:-1;1328:38:35;;;;;;;;;;;;;;;;;;1124:259::o;1209:168::-;1287:9;1124:259;-1:-1:-1;1124:259:35:o;16898:198:24:-;16984:7;;734:10:224;17003:28:24;;17048:41;17058:10;17070:5;17077:7;17048:41;;;;;;;;;;;;:9;:41::i;:::-;17041:48;16898:198;-1:-1:-1;;;;16898:198:24:o;17511:312::-;17699:7;;734:10:224;17718:28:24;;17763:53;17773:10;17785:5;17792:7;17801:6;;17763:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17809:6:24;;-1:-1:-1;17763:9:24;;-1:-1:-1;;17763:53:24:i;1752:664:37:-;1917:23;:43;1825:7;;1974:11;;;1970:65;;-1:-1:-1;;2008:16:37;;;1752:664;-1:-1:-1;1752:664:37:o;1970:65::-;2103:39;2145:23;2182:10;2191:1;2182:6;:10;:::i;:::-;2145:48;;;;;;;;:::i;:::-;;;;;;;;;;2103:90;;;;;;;;;2145:48;;2103:90;;;;;;;-1:-1:-1;;;2103:90:37;;;-1:-1:-1;;;;;2103:90:37;;;;;;;;;-1:-1:-1;;;2203:75:37;;2254:13;;;-1:-1:-1;;;;;2247:20:37;;1752:664;-1:-1:-1;;;1752:664:37:o;2203:75::-;2338:71;2380:28;2398:9;2380:17;:28::i;:::-;2338:23;;:41;:71::i;:::-;-1:-1:-1;;;;;2331:78:37;;1752:664;-1:-1:-1;;;;1752:664:37:o;17166:266:24:-;17316:7;;734:10:224;17335:28:24;;17380:45;17390:10;17402:5;17409:7;17418:6;;17380:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17380:9:24;;-1:-1:-1;;;17380:45:24:i;:::-;17373:52;17166:266;-1:-1:-1;;;;;;17166:266:24:o;1299:320:115:-;1532:7;1558:54;1572:7;1581:6;1589:9;1600:11;1558:13;:54::i;5021:633:233:-;5136:13;5163:18;;5136:13;;;5163:18;5427:41;:5;5136:13;5427:26;:41::i;:::-;5482:47;:8;5512:16;5482:29;:47::i;:::-;5621:16;;;5605:1;5621:16;;;;;;;;;-1:-1:-1;;;5376:271:233;;;-1:-1:-1;5376:271:233;;-1:-1:-1;5543:13:233;;-1:-1:-1;5578:4:233;;-1:-1:-1;5605:1:233;-1:-1:-1;5621:16:233;-1:-1:-1;5376:271:233;-1:-1:-1;5021:633:233:o;734:235:35:-;789:6;811:5;-1:-1:-1;;;;;811:11:35;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:13:35;;;;;;;;-1:-1:-1;;811:13:35;;;;;;;;;;;;:::i;:::-;;;807:156;;921:31;939:12;921:17;:31::i;16615:223:24:-;16768:7;16794:37;16804:7;16813:9;16824:6;16794:9;:37::i;:::-;16787:44;;16615:223;;;;;;:::o;1448:191:37:-;1530:23;:43;1504:7;;1530:48;:102;;1600:32;:23;:30;:32::i;:::-;-1:-1:-1;;;;;1530:102:37;2707:24:115;;2600:138;:::o;1530:102:37:-;-1:-1:-1;1581:16:37;;;1448:191::o;6270:133:34:-;3353:11:24;:9;:11::i;:::-;-1:-1:-1;;;;;3337:27:24;734:10:224;-1:-1:-1;;;;;3337:27:24;;3329:64;;;;-1:-1:-1;;;3329:64:24;;;;;;;:::i;:::-;3430:4;3407:11;:9;:11::i;:::-;-1:-1:-1;;;;;3407:28:24;;3403:277;;3451:19;;808:14:224;3473:21:24;;;;;;;:::i;:::-;;;;;;;;3451:43;;3618:52;3655:11;3625:26;:15;:24;:26::i;:::-;:41;3618:52;;3437:243;3403:277;6368:28:34::1;6384:11;6368:15;:28::i;3294:259::-:0;3406:9;;3373:7;3429:24;;;:12;:24;;;;;;;3406:48;;-1:-1:-1;;;3406:48:34;;;;;2062:25:310;;;;3373:7:34;;;;-1:-1:-1;;;;;3406:9:34;;;;:22;;2035:18:310;;3406:48:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3392:62;;3471:3;3478:1;3471:8;:18;;3486:3;3471:18;;;3482:1;3464:25;3294:259;-1:-1:-1;;;3294:259:34:o;21235:296:24:-;3353:11;:9;:11::i;:::-;-1:-1:-1;;;;;3337:27:24;734:10:224;-1:-1:-1;;;;;3337:27:24;;3329:64;;;;-1:-1:-1;;;3329:64:24;;;;;;;:::i;:::-;3430:4;3407:11;:9;:11::i;:::-;-1:-1:-1;;;;;3407:28:24;;3403:277;;3451:19;;808:14:224;3473:21:24;;;;;;;:::i;:::-;;;;;;;;3451:43;;3618:52;3655:11;3625:26;:15;:24;:26::i;:::-;:41;3618:52;;3437:243;3403:277;21353:12:::1;21367:23:::0;21394:6:::1;-1:-1:-1::0;;;;;21394:11:24::1;21413:5;21420:4;;21394:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21352:73;;;;21435:89;21460:7;21469:10;21435:89;;;;;;;;;;;;;;;;;:24;:89::i;:::-;;21342:189;;21235:296:::0;;;;:::o;6569:308::-;6769:7;6824;6833:6;6841:9;6852:15;6813:55;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6813:55:24;;;;;;;;;6803:66;;6813:55;6803:66;;;;;6569:308;-1:-1:-1;;;;;6569:308:24:o;2356:964:27:-;2584:7;2632:9;:16;2611:10;:17;:37;2603:90;;;;-1:-1:-1;;;2603:90:27;;31245:2:310;2603:90:27;;;31227:21:310;31284:2;31264:18;;;31257:30;31323:34;31303:18;;;31296:62;-1:-1:-1;;;31374:18:310;;;31367:38;31422:19;;2603:90:27;31043:404:310;2603:90:27;3138:81;734:10:224;3167:7:27;3176:6;3184:10;3196:9;3207:11;3138:14;:81::i;:::-;3236:77;3244:7;3253:6;3261:38;3277:10;3289:9;3261:15;:38::i;:::-;3301:11;3236:7;:77::i;3395:334::-;3478:24;3516:23;3553:24;3591:23;3627:34;3650:10;3627:22;:34::i;:::-;3464:197;;;;;;;;3672:50;3678:7;3687:6;3695:9;3706:15;3672:5;:50::i;16373:172:24:-;16465:7;16491:47;16501:7;16510:9;16521:16;10184:9;;;;;;;;;-1:-1:-1;10184:9:24;;;10103:97;16521:16;16491:9;:47::i;2751:194:37:-;2824:7;2606:3;2889:26;2905:9;2889:15;:26::i;:::-;2851:35;;-1:-1:-1;;;2851:35:37;;;;;2062:25:310;;;2851:5:37;-1:-1:-1;;;;;2851:24:37;;;;2035:18:310;;2851:35:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;;;:::i;:::-;2850:88;;;;:::i;3806:346:27:-;3899:24;3937:23;3974:24;4012:23;4048:34;4071:10;4048:22;:34::i;:::-;3885:197;;;;;;;;4093:52;4101:7;4110:6;4118:9;4129:15;4093:7;:52::i;1886:224:34:-;1990:4;-1:-1:-1;;;;;;2013:50:34;;-1:-1:-1;;;2013:50:34;;:90;;;2067:36;2091:11;2067:23;:36::i;4768:165:233:-;4845:7;4871:55;4893:20;:18;:20::i;:::-;4915:10;8536:4:232;8530:11;-1:-1:-1;;;8554:23:232;;8606:4;8597:14;;8590:39;;;;8658:4;8649:14;;8642:34;8712:4;8697:20;;;8336:397;6598:232;6683:7;6703:17;6722:18;6744:25;6755:4;6761:1;6764;6767;6744:10;:25::i;:::-;6702:67;;;;6779:18;6791:5;6779:11;:18::i;20029:755:24:-;20215:7;20266:22;;;:10;:22;;;;;20327:20;20306:17;20312:10;20306:5;:17::i;:::-;:41;;;;;;;;:::i;:::-;;20298:89;;;;-1:-1:-1;;;20298:89:24;;32181:2:310;20298:89:24;;;32163:21:310;32220:2;32200:18;;;32193:30;32259:34;32239:18;;;32232:62;-1:-1:-1;;;32310:18:310;;;32303:33;32353:19;;20298:89:24;31979:399:310;20298:89:24;20434:18;;20398:14;;20415:46;;20425:7;;-1:-1:-1;;;;;20434:18:24;20454:6;20415:9;:46::i;:::-;20398:63;;20471:56;20482:10;20494:7;20503;20512:6;20520;20471:10;:56::i;:::-;20542:6;:13;20559:1;20542:18;20538:216;;20590:7;-1:-1:-1;;;;;20581:54:24;;20599:10;20611:7;20620:6;20628;20581:54;;;;;;;;;:::i;:::-;;;;;;;;20538:216;;;20690:7;-1:-1:-1;;;;;20671:72:24;;20699:10;20711:7;20720:6;20728;20736;20671:72;;;;;;;;;;:::i;:::-;;;;;;;;20771:6;20029:755;-1:-1:-1;;;;;;;20029:755:24:o;3295:324:253:-;3359:13;3388:12;3394:5;5888:12;;;;;-1:-1:-1;;;5874:10:253;;;;;:26;;;5785:122;3388:12;3384:32;;;3409:7;;-1:-1:-1;;;3409:7:253;;;;;;;;;;;3384:32;-1:-1:-1;3446:12:253;;;;3426:17;3476:23;;;3446:12;3476:11;;;:23;;;;;;;3509:30;;;3573:29;;-1:-1:-1;;3573:29:253;3588:14;;-1:-1:-1;;;;;3573:29:253;;;;;;;;3476:23;3295:324::o;3592:930:37:-;2606:3;3700:18;:41;;3679:155;;;;-1:-1:-1;;;3679:155:37;;33641:2:310;3679:155:37;;;33623:21:310;33680:2;33660:18;;;33653:30;33719:34;33699:18;;;33692:62;33790:34;33770:18;;;33763:62;-1:-1:-1;;;33841:19:310;;;33834:34;33885:19;;3679:155:37;33439:471:310;3679:155:37;3845:26;3874:17;:15;:17::i;:::-;3845:46;-1:-1:-1;4025:23:37;;;;;:75;;-1:-1:-1;4052:23:37;:43;:48;4025:75;4021:263;;;4175:84;;;;;;;;;4116:36;4175:84;;4116:23;;4175:84;;;4219:38;4238:18;4219;:38::i;:::-;-1:-1:-1;;;;;4175:84:37;;;;;;4116:157;;;;;;;-1:-1:-1;4116:157:37;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4116:157:37;;;;;;;;;;;;4021:263;4341:96;4370:26;4388:7;:5;:7::i;:::-;4370:26;;:17;:26::i;:::-;4398:38;4417:18;4398;:38::i;:::-;4341:23;;:96;:28;:96::i;:::-;-1:-1:-1;;4453:62:37;;;28478:25:310;;;28534:2;28519:18;;28512:34;;;4453:62:37;;28451:18:310;4453:62:37;;;;;;;3669:853;3592:930;:::o;14378:499:24:-;14640:4;14617:11;:9;:11::i;:::-;-1:-1:-1;;;;;14617:28:24;;14613:258;;14666:9;14661:200;14685:7;:14;14681:1;:18;14661:200;;;14750:4;-1:-1:-1;;;;;14728:27:24;:7;14736:1;14728:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;14728:27:24;;14724:123;;14779:49;14814:9;14824:1;14814:12;;;;;;;;:::i;:::-;;;;;;;14804:23;;;;;;14779:15;:24;;:49;;;;:::i;:::-;14701:3;;;:::i;:::-;;;14661:200;;14613:258;14378:499;;;;;:::o;1951:327:115:-;2200:71;2215:10;2227:7;2236:6;2244:9;2255:15;2200:14;:71::i;14946:396:24:-;15219:4;15196:11;:9;:11::i;:::-;-1:-1:-1;;;;;15196:28:24;;15192:144;;15245:15;5888:12:253;;;;;-1:-1:-1;;;5874:10:253;;;;;:26;;15240:86:24;;5244:1:253;15288:15:24;5255:14:253;15288:23:24;5167:109:253;19492:255:24;19649:7;19675:65;19685:10;19697:7;19706;19715:6;19723:16;10184:9;;;;;;;;;-1:-1:-1;10184:9:24;;;10103:97;19723:16;19675:9;:65::i;2239:771:34:-;2333:13;2358:26;2387:23;2399:10;2387:11;:23::i;:::-;2358:52;-1:-1:-1;2441:23:34;2425:12;:39;;;;;;;;:::i;:::-;;2421:89;;2487:12;2239:771;-1:-1:-1;;2239:771:34:o;2421:89::-;2620:15;2638:24;;;:12;:24;;;;;;;2672:332;;-1:-1:-1;2720:12:34;2239:771;-1:-1:-1;;2239:771:34:o;2672:332::-;2753:9;;:34;;-1:-1:-1;;;2753:34:34;;;;;2062:25:310;;;-1:-1:-1;;;;;2753:9:34;;;;:25;;2035:18:310;;2753:34:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2749:255;;;-1:-1:-1;2810:22:34;;2239:771;-1:-1:-1;;;2239:771:34:o;2749:255::-;2853:9;;:37;;-1:-1:-1;;;2853:37:34;;;;;2062:25:310;;;-1:-1:-1;;;;;2853:9:34;;;;:28;;2035:18:310;;2853:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2849:155;;;-1:-1:-1;2913:20:34;;2239:771;-1:-1:-1;;;2239:771:34:o;2849:155::-;-1:-1:-1;2971:22:34;;2239:771;-1:-1:-1;;;2239:771:34:o;6129:486:27:-;6241:24;6267:23;6292:24;6318:23;6357:31;6391:16;:28;6408:10;6391:28;;;;;;;;;;;6357:62;;6450:7;:15;;6479:7;:14;;6507:54;6523:7;:18;;6507:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6543:17:27;;;6507:54;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6507:54:27;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;:54::i;:::-;6575:23;;;;6429:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6429:179:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6129:486;;;;;:::o;4811:628::-;5021:7;5040:18;5061:57;5074:7;5083:6;5091:9;5102:15;5061:12;:57::i;:::-;5128:16;5147:28;;;:16;:28;;;;;:37;:28;;-1:-1:-1;;;;;;5147:37:27;734:10:224;5216:24:27;;;:81;;-1:-1:-1;1002:7:115;5244:31:27;5253:8;5273:1;5263:7;:5;:7::i;:::-;:11;;;;:::i;:::-;5244:31;;:8;:31::i;:::-;:53;5216:81;5195:167;;;;-1:-1:-1;;;5195:167:27;;34539:2:310;5195:167:27;;;34521:21:310;34578:2;34558:18;;;34551:30;34617:34;34597:18;;;34590:62;-1:-1:-1;;;34668:18:310;;;34661:37;34715:19;;5195:167:27;34337:403:310;5195:167:27;5380:52;5388:7;5397:6;5405:9;5416:15;5380:7;:52::i;15264:187:248:-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:248;;34947:2:310;15338:76:248;;;34929:21:310;34986:2;34966:18;;;34959:30;35025:34;35005:18;;;34998:62;-1:-1:-1;;;35076:18:310;;;35069:36;35122:19;;15338:76:248;34745:402:310;15338:76:248;-1:-1:-1;15438:5:248;15264:187::o;9426:606:223:-;9544:24;;9511:7;;;9544:24;9643:1;9637:7;;9633:234;;;9660:11;9680:14;9690:3;9680:9;:14::i;:::-;9674:20;;:3;:20;:::i;:::-;13936:28;13999:20;;;14064:4;14051:18;;9660:34;;-1:-1:-1;14047:28:223;;9718:42;;;;;9712:48;;;;9708:149;;;9787:3;9780:10;;9708:149;;;9835:7;:3;9841:1;9835:7;:::i;:::-;9829:13;;9708:149;9646:221;9633:234;9877:11;9891:53;9910:4;9929:3;9934;9939:4;9891:18;:53::i;:::-;9877:67;-1:-1:-1;9962:8:223;;:63;;9977:41;9991:4;10010:7;10016:1;10010:3;:7;:::i;:::-;13936:28;13999:20;;;14064:4;14051:18;;;14047:28;;13826:265;9977:41;:48;-1:-1:-1;;;9977:48:223;;-1:-1:-1;;;;;9977:48:223;9962:63;;;9973:1;9955:70;9426:606;-1:-1:-1;;;;;;;9426:606:223:o;1758:521:27:-;1971:7;2100:101;734:10:224;2129:7:27;2138:6;2159:9;:16;-1:-1:-1;;;;;2146:30:27;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2178:9;2189:11;2100:14;:101::i;:::-;2218:54;2232:7;2241:6;2249:9;2260:11;2218:13;:54::i;3367:268:228:-;3461:13;1371:66;3490:47;;3486:143;;3560:15;3569:5;3560:8;:15::i;:::-;3553:22;;;;3486:143;3613:5;3606:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14240:187:248;14296:6;14331:16;14322:25;;;14314:76;;;;-1:-1:-1;;;14314:76:248;;35354:2:310;14314:76:248;;;35336:21:310;35393:2;35373:18;;;35366:30;35432:34;35412:18;;;35405:62;-1:-1:-1;;;35483:18:310;;;35476:36;35529:19;;14314:76:248;35152:402:310;1508:221:35;1684:38;;-1:-1:-1;;;1684:38:35;;-1:-1:-1;;;;;35751:32:310;;;1684:38:35;;;35733:51:310;35800:18;;;35793:34;;;1658:7:35;;1684:5;:18;;;;;;35706::310;;1684:38:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10152:206:223:-;10247:24;;10214:7;;10288:8;;:63;;10303:41;10317:4;10336:7;10342:1;10336:3;:7;:::i;10303:41::-;:48;-1:-1:-1;;;10303:48:223;;-1:-1:-1;;;;;10303:48:223;10288:63;;6409:176:34;6512:9;;6489:56;;;-1:-1:-1;;;;;6512:9:34;;;36050:34:310;;36120:15;;;36115:2;36100:18;;36093:43;6489:56:34;;35985:18:310;6489:56:34;;;;;;;6555:9;:23;;-1:-1:-1;;;;;;6555:23:34;-1:-1:-1;;;;;6555:23:34;;;;;;;;;;6409:176::o;8520:295:220:-;8666:12;8694:7;8690:119;;;-1:-1:-1;8724:10:220;8717:17;;8690:119;8765:33;8773:10;8785:12;8765:7;:33::i;6716:821:27:-;6988:29;;;;;;6962:23;7048:86;7061:7;7070:6;7078:38;7094:10;7106:9;7078:15;:38::i;:::-;7118:15;7048:12;:86::i;:::-;7145:31;7179:28;;;:16;:28;;;;;7221:23;;;;7027:107;;-1:-1:-1;7179:28:27;7217:314;;7274:27;;-1:-1:-1;;;;;;7274:27:27;-1:-1:-1;;;;;7274:27:27;;;;;7315:25;;;;-1:-1:-1;7315:15:27;;;:25;;;;;:::i;:::-;-1:-1:-1;7354:23:27;;;;:14;;;;:23;;;;;:::i;:::-;-1:-1:-1;7391:31:27;;;;:18;;;;:31;;;;;:::i;:::-;-1:-1:-1;7436:29:27;;;;:17;;;;:29;;;;;:::i;:::-;-1:-1:-1;7479:23:27;;;:41;;;7217:314;6952:585;;;6716:821;;;;;;:::o;5525:504::-;5648:14;5674:28;5717:9;:16;-1:-1:-1;;;;;5705:29:27;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5674:60;;5749:9;5744:248;5768:13;:20;5764:1;:24;5744:248;;;5834:10;5845:1;5834:13;;;;;;;;:::i;:::-;;;;;;;5828:27;5859:1;5828:32;:153;;5950:10;5961:1;5950:13;;;;;;;;:::i;:::-;;;;;;;5934:31;;;;;;5968:9;5978:1;5968:12;;;;;;;;:::i;:::-;;;;;;;5910:71;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5828:153;;;5879:9;5889:1;5879:12;;;;;;;;:::i;:::-;;;;;;;5828:153;5809:13;5823:1;5809:16;;;;;;;;:::i;:::-;;;;;;:172;;;;5790:3;;;;:::i;:::-;;;5744:248;;;-1:-1:-1;6009:13:27;5525:504;-1:-1:-1;;;5525:504:27:o;4194:1118:24:-;4296:4;-1:-1:-1;;;;;;;;;;;;;;;;;;5071:27:24;;;;;:70;;-1:-1:-1;;;;;;;5114:27:24;;;;;;;5071:70;:117;;;-1:-1:-1;;;;;;;5157:31:24;;;;;;;5071:117;:182;;;-1:-1:-1;;;;;;;5204:49:24;;-1:-1:-1;;;5204:49:24;5071:182;:234;;;-1:-1:-1;;;;;;;;;;937:40:240;;;5052:253:24;4194:1118;-1:-1:-1;;;;;;4194:1118:24:o;3695:262:233:-;3748:7;3779:4;-1:-1:-1;;;;;3788:11:233;3771:28;;:63;;;;;3820:14;3803:13;:31;3771:63;3767:184;;;-1:-1:-1;3857:22:233;;3695:262::o;3767:184::-;3917:23;4054:81;;;1929:95;4054:81;;;43255:25:310;4077:11:233;43296:18:310;;;43289:34;;;;4090:14:233;43339:18:310;;;43332:34;4106:13:233;43382:18:310;;;43375:34;4129:4:233;43425:19:310;;;43418:61;4018:7:233;;43227:19:310;;4054:81:233;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;;5009:1456:232;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:232;;-1:-1:-1;6123:30:232;6103:51;;6004:161;6276:24;;;6259:14;6276:24;;;;;;;;;36763:25:310;;;36836:4;36824:17;;36804:18;;;36797:45;;;;36858:18;;;36851:34;;;36901:18;;;36894:34;;;6276:24:232;;36735:19:310;;6276:24:232;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:232;;-1:-1:-1;;6276:24:232;;;-1:-1:-1;;;;;;;6314:20:232;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:232;;-1:-1:-1;5009:1456:232;;;;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:232;;37141:2:310;788:34:232;;;37123:21:310;37180:2;37160:18;;;37153:30;37219:26;37199:18;;;37192:54;37263:18;;788:34:232;36939:348:310;730:345:232;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:232;;37494:2:310;903:41:232;;;37476:21:310;37533:2;37513:18;;;37506:30;37572:33;37552:18;;;37545:61;37623:18;;903:41:232;37292:355:310;839:236:232;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:232;;37854:2:310;1020:44:232;;;37836:21:310;37893:2;37873:18;;;37866:30;37932:34;37912:18;;;37905:62;-1:-1:-1;;;37983:18:310;;;37976:32;38025:19;;1020:44:232;37652:398:310;10947:914:27;11141:31;11175:28;;;:16;:28;;;;;;;;-1:-1:-1;;;;;11239:25:27;;;;:16;;;:25;;;;;;11284:16;;;;11283:17;11275:75;;;;-1:-1:-1;;;11275:75:27;;38257:2:310;11275:75:27;;;38239:21:310;38296:2;38276:18;;;38269:30;38335:34;38315:18;;;38308:62;-1:-1:-1;;;38386:18:310;;;38379:43;38439:19;;11275:75:27;38055:409:310;11275:75:27;11360:23;;;11393:25;;11360:23;11393:25;-1:-1:-1;;11393:25:27;;;;11379:4;11393:25;;;11444;11462:6;11444:17;:25::i;:::-;11428:41;;-1:-1:-1;;;;;11428:41:27;;;;;;-1:-1:-1;;11428:41:27;;;;;;11484:34;;;11480:375;;11558:6;11534:7;:20;;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;11480:375:27;;-1:-1:-1;11480:375:27;;-1:-1:-1;;11585:30:27;;;;11581:274;;11651:6;11631:7;:16;;;:26;;;;;;;:::i;11581:274::-;-1:-1:-1;;11678:34:27;;;;11674:181;;11752:6;11728:7;:20;;;:30;;;;;;;:::i;11674:181::-;11789:55;;-1:-1:-1;;;11789:55:27;;38671:2:310;11789:55:27;;;38653:21:310;38710:2;38690:18;;;38683:30;38749:34;38729:18;;;38722:62;-1:-1:-1;;;38800:18:310;;;38793:43;38853:19;;11789:55:27;38469:409:310;2836:192:248;2893:7;-1:-1:-1;;;;;2920:26:248;;;2912:78;;;;-1:-1:-1;;;2912:78:248;;39085:2:310;2912:78:248;;;39067:21:310;39124:2;39104:18;;;39097:30;39163:34;39143:18;;;39136:62;-1:-1:-1;;;39214:18:310;;;39207:37;39261:19;;2912:78:248;38883:403:310;8063:162:223;8145:7;;8180:38;8188:4;8207:3;8212:5;8180:7;:38::i;:::-;8173:45;;;;8063:162;;;;;;;:::o;2096:226:253:-;2195:10;;-1:-1:-1;;;2195:10:253;;;;;;2176:16;2215:22;;;:11;;;;:22;;;;;;:30;;;;2279:26;;-1:-1:-1;;;;;2279:26:253;;;2292:13;;;;2279:26;;;;;2096:226::o;4493:323:34:-;4721:9;;:88;;-1:-1:-1;;;4721:88:34;;-1:-1:-1;;;;;4721:9:34;;;;:22;;4751:9;;4721:88;;4762:7;;4771:6;;4779:9;;4721;;4793:15;;4721:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4493:323;;;;;:::o;6934:967:24:-;7007:13;7064:22;;;:10;:22;;;;;7101:17;;;;;;7097:77;;;-1:-1:-1;7141:22:24;;6934:967;-1:-1:-1;;6934:967:24:o;7097:77::-;7188:17;;;;;;;;;7184:77;;;-1:-1:-1;7228:22:24;;6934:967;-1:-1:-1;;6934:967:24:o;7184:77::-;7271:16;8321:22;;;:10;:22;;;;;:32;-1:-1:-1;;;;;8321:32:24;;7333:13;;;7329:83;;7362:39;;-1:-1:-1;;;7362:39:24;;39493:2:310;7362:39:24;;;39475:21:310;39532:2;39512:18;;;39505:30;39571:31;39551:18;;;39544:59;39620:18;;7362:39:24;39291:353:310;7329:83:24;7422:24;7449:7;:5;:7::i;:::-;7422:34;;;;7483:16;7471:8;:28;7467:87;;-1:-1:-1;7522:21:24;;6934:967;-1:-1:-1;;;;6934:967:24:o;7467:87::-;7564:16;8538:22;;;:10;:22;;;;;:30;;;-1:-1:-1;;;;;8538:30:24;7626:28;;;7622:86;;-1:-1:-1;7677:20:24;;6934:967;-1:-1:-1;;;;;6934:967:24:o;7622:86::-;7722:26;7737:10;7722:14;:26::i;:::-;:56;;;;-1:-1:-1;10693:4:27;10743:28;;;:16;:28;;;;;;;;10807:20;;;;10788:16;;;;;:39;7752:26:24;7718:177;;;-1:-1:-1;7801:23:24;;6934:967;-1:-1:-1;;;;;6934:967:24:o;7718:177::-;-1:-1:-1;7862:22:24;;6934:967;-1:-1:-1;;;;;6934:967:24:o;2284:310:115:-;2503:7;2529:58;2543:7;2552:6;2560:9;2571:15;2529:13;:58::i;6530:1642:247:-;6578:7;6601:1;6606;6601:6;6597:45;;-1:-1:-1;6630:1:247;;6530:1642;-1:-1:-1;6530:1642:247:o;6597:45::-;7321:14;7355:1;7344:7;7349:1;7344:4;:7::i;:::-;:12;;7338:1;:19;;7321:36;;7816:1;7805:6;7801:1;:10;;;;;:::i;:::-;;7792:6;:19;7791:26;;7782:35;;7865:1;7854:6;7850:1;:10;;;;;:::i;:::-;;7841:6;:19;7840:26;;7831:35;;7914:1;7903:6;7899:1;:10;;;;;:::i;:::-;;7890:6;:19;7889:26;;7880:35;;7963:1;7952:6;7948:1;:10;;;;;:::i;:::-;;7939:6;:19;7938:26;;7929:35;;8012:1;8001:6;7997:1;:10;;;;;:::i;:::-;;7988:6;:19;7987:26;;7978:35;;8061:1;8050:6;8046:1;:10;;;;;:::i;:::-;;8037:6;:19;8036:26;;8027:35;;8110:1;8099:6;8095:1;:10;;;;;:::i;:::-;;8086:6;:19;8085:26;;8076:35;;8132:23;8136:6;8148;8144:1;:10;;;;;:::i;:::-;;8132:3;:23::i;12470:433:223:-;12627:7;12646:230;12659:4;12653:3;:10;12646:230;;;12679:11;12693:23;12706:3;12711:4;12693:12;:23::i;:::-;13936:28;13999:20;;;14064:4;14051:18;;12679:37;;-1:-1:-1;12734:35:223;;;;14047:28;;12734:29;;;:35;12730:136;;;12796:3;12789:10;;12730:136;;;12844:7;:3;12850:1;12844:7;:::i;:::-;12838:13;;12730:136;12665:211;12646:230;;10356:1725:24;10548:7;734:10:224;10616:53:24;734:10:224;10657:11:24;10616:30;:53::i;:::-;10608:95;;;;-1:-1:-1;;;10608:95:24;;39851:2:310;10608:95:24;;;39833:21:310;39890:2;39870:18;;;39863:30;39929:31;39909:18;;;39902:59;39978:18;;10608:95:24;39649:353:310;10608:95:24;10714:24;10741:7;:5;:7::i;:::-;10714:34;;;-1:-1:-1;1002:7:115;10779:40:24;10788:8;10798:20;10817:1;10798:16;:20;:::i;10779:40::-;:63;;10758:159;;;;-1:-1:-1;;;10758:159:24;;40209:2:310;10758:159:24;;;40191:21:310;40248:2;40228:18;;;40221:30;40287:34;40267:18;;;40260:62;-1:-1:-1;;;40338:18:310;;;40331:47;40395:19;;10758:159:24;40007:413:310;10758:159:24;10928:18;10949:71;10962:7;10971:6;10979:9;11006:11;10990:29;;;;;;10949:12;:71::i;:::-;10928:92;;11057:6;:13;11039:7;:14;:31;11031:77;;;;-1:-1:-1;;;11031:77:24;;;;;;;:::i;:::-;11144:9;:16;11126:7;:14;:34;11118:80;;;;-1:-1:-1;;;11118:80:24;;;;;;;:::i;:::-;11233:1;11216:7;:14;:18;11208:55;;;;-1:-1:-1;;;11208:55:24;;41029:2:310;11208:55:24;;;41011:21:310;41068:2;41048:18;;;41041:30;41107:26;41087:18;;;41080:54;41151:18;;11208:55:24;40827:348:310;11208:55:24;11281:22;;;;:10;:22;;;;;:32;-1:-1:-1;;;;;11281:32:24;:37;11273:83;;;;-1:-1:-1;;;11273:83:24;;41382:2:310;11273:83:24;;;41364:21:310;41421:2;41401:18;;;41394:30;41460:34;41440:18;;;41433:62;-1:-1:-1;;;41511:18:310;;;41504:31;41552:19;;11273:83:24;41180:397:310;11273:83:24;11367:16;11386:32;809:4:115;11386:16:24;:32;:::i;:::-;11367:51;-1:-1:-1;11428:16:24;11447:25;915:5:115;11367:51:24;11447:25;:::i;:::-;11428:44;;11508:276;;;;;;;;11578:27;11596:8;11578:17;:27::i;:::-;-1:-1:-1;;;;;11508:276:24;;;-1:-1:-1;;;;;11508:276:24;;;;;;-1:-1:-1;11508:276:24;;;;;;11628:27;11646:8;11628:17;:27::i;:::-;-1:-1:-1;;;;;11508:276:24;;;;;11772:1;11508:276;;;;;;;;;;;;;;;;;;;;;11483:22;;;:10;:22;;;;;;:301;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11483:301:24;;;;;;;-1:-1:-1;;;;;;;;11483:301:24;;;;;;-1:-1:-1;;;;;11483:301:24;-1:-1:-1;;;11483:301:24;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11483:301:24;;;;;;;;;;;;;;;;;;-1:-1:-1;;11483:301:24;;;;;;-1:-1:-1;;11483:301:24;;;;;;;;;;;;;;;;;;;11929:14;;11800:246;;11483:22;;11853:8;;11929:14;;11896:6;;11916:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11958:9;11981:8;12003;12025:11;11800:246;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;12064:10:24;;10356:1725;-1:-1:-1;;;;;;;;10356:1725:24:o;2059:405:228:-;2118:13;2143:11;2157:16;2168:4;2157:10;:16::i;:::-;2281:14;;;2292:2;2281:14;;;;;;;;;2143:30;;-1:-1:-1;2261:17:228;;2281:14;;;;;;;;;-1:-1:-1;;;2371:16:228;;;-1:-1:-1;2416:4:228;2407:14;;2400:28;;;;-1:-1:-1;2371:16:228;2059:405::o;8821:540:220:-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:220;;;;;;;;:::i;11168:187:248:-;11224:6;-1:-1:-1;;;;;11250:25:248;;;11242:76;;;;-1:-1:-1;;;11242:76:248;;43692:2:310;11242:76:248;;;43674:21:310;43731:2;43711:18;;;43704:30;43770:34;43750:18;;;43743:62;-1:-1:-1;;;43821:18:310;;;43814:36;43867:19;;11242:76:248;43490:402:310;11288:836:223;11421:11;;11379:7;;;;11447;;11443:675;;11522:25;11550:28;11564:4;11570:7;11576:1;11570:3;:7;:::i;11550:28::-;11522:56;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11522:56:223;;;-1:-1:-1;;;;;11522:56:223;;;;;;;-1:-1:-1;11656:16:223;;;-1:-1:-1;11656:16:223;11648:56;;;;-1:-1:-1;;;11648:56:223;;44099:2:310;11648:56:223;;;44081:21:310;44138:2;44118:18;;;44111:30;44177:29;44157:18;;;44150:57;44224:18;;11648:56:223;43897:351:310;11648:56:223;11768:9;;:16;;;;;;;11764:189;;11842:5;11804:28;11818:4;11824:7;11830:1;11824:3;:7;:::i;11804:28::-;:43;;-1:-1:-1;;;;;11804:43:223;;;;-1:-1:-1;;;11804:43:223;;;;;;;;;;;11764:189;;;11896:41;;;;;;;;;;;;;;;-1:-1:-1;;;;;11896:41:223;;;;;;;;;;11886:52;;;;;;;-1:-1:-1;11886:52:223;;;;;;;;;;;;;;-1:-1:-1;;;11886:52:223;;;;;;;;;;11764:189;11974:11;;;;-1:-1:-1;11987:5:223;;-1:-1:-1;11966:27:223;;-1:-1:-1;11966:27:223;11443:675;-1:-1:-1;;12034:41:223;;;;;;;;;;;;;;;-1:-1:-1;;;;;12034:41:223;;;;;;;;;;12024:52;;;;;;;-1:-1:-1;12024:52:223;;;;;;;;;;;;;-1:-1:-1;;;12024:52:223;;;;;;;;;;;;-1:-1:-1;;12068:5:223;12090:17;;10233:242:27;10317:4;10367:28;;;:16;:28;;;;;10452:16;;;;10412:36;10419:28;10384:10;8295:7:24;8321:22;;;:10;:22;;;;;:32;-1:-1:-1;;;;;8321:32:24;;8211:149;10412:36:27;:56;;;10233:242;-1:-1:-1;;;10233:242:27:o;5224:482:34:-;5416:7;5435:18;5456:58;5470:7;5479:6;5487:9;5498:15;5456:13;:58::i;:::-;5529:24;;;;:12;:24;;;;;;5435:79;;-1:-1:-1;5529:29:34;5525:147;;5574:9;;;5591:24;;;:12;:24;;;;;;;;5574:42;;-1:-1:-1;;;5574:42:34;;-1:-1:-1;;;;;5574:9:34;;;;:16;;:42;;;;2062:25:310;;;2050:2;2035:18;;1916:177;5574:42:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5637:24:34;;;;:12;:24;;;;;5630:31;-1:-1:-1;5689:10:34;5224:482;-1:-1:-1;;;;;5224:482:34:o;8633:983:247:-;8685:7;;8769:3;8760:12;;;:16;8756:99;;8806:3;8796:13;;;;8827;8756:99;8881:2;8872:11;;;:15;8868:96;;8917:2;8907:12;;;;8937;8868:96;8990:2;8981:11;;;:15;8977:96;;9026:2;9016:12;;;;9046;8977:96;9099:2;9090:11;;;:15;9086:96;;9135:2;9125:12;;;;9155;9086:96;9208:1;9199:10;;;:14;9195:93;;9243:1;9233:11;;;;9262;9195:93;9314:1;9305:10;;;:14;9301:93;;9349:1;9339:11;;;;9368;9301:93;9420:1;9411:10;;;:14;9407:93;;9455:1;9445:11;;;;9474;9407:93;9526:1;9517:10;;;:14;9513:64;;9561:1;9551:11;9603:6;8633:983;-1:-1:-1;;8633:983:247:o;588:104::-;646:7;676:1;672;:5;:13;;684:1;672:13;;;-1:-1:-1;680:1:247;;588:104;-1:-1:-1;588:104:247:o;805:153::-;867:7;940:11;950:1;941:5;;;940:11;:::i;:::-;930:21;;931:5;;;930:21;:::i;23803:1638:24:-;23971:25;;23941:4;;24083:2;24077:8;;24073:50;;;24108:4;24101:11;;;;;24073:50;24741:30;;;-1:-1:-1;;24741:30:24;24735:37;-1:-1:-1;;;;;;24872:33:24;;-1:-1:-1;;;24872:33:24;24868:75;;24928:4;24921:11;;;;;;24868:75;25020:17;;25068:8;25074:2;25068:3;:8;:::i;:::-;25056:20;;25051:336;25082:3;25078:1;:7;25051:336;;;25107:10;25119:11;25134:36;25154:11;25167:1;25148:21;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;25148:21:24;25134:13;:36::i;:::-;25106:64;;;;25276:5;25271:56;;25308:4;25301:11;;;;;;;;;;25271:56;25371:5;25352:24;;25366:1;25353:9;-1:-1:-1;;;;;25353:14:24;;;25352:24;25340:36;;25092:295;;25087:3;;;;:::i;:::-;;;25051:336;;;;25425:8;-1:-1:-1;;;;;25404:30:24;:9;-1:-1:-1;;;;;25404:30:24;;25397:37;;;;;23803:1638;;;;:::o;13216:187:248:-;13272:6;-1:-1:-1;;;;;13298:25:248;;;13290:76;;;;-1:-1:-1;;;13290:76:248;;44455:2:310;13290:76:248;;;44437:21:310;44494:2;44474:18;;;44467:30;44533:34;44513:18;;;44506:62;-1:-1:-1;;;44584:18:310;;;44577:36;44630:19;;13290:76:248;44253:402:310;2536:245:228;2597:7;2669:4;2633:40;;2696:2;2687:11;;2683:69;;;2721:20;;-1:-1:-1;;;2721:20:228;;;;;;;;;;;15609:704:24;15792:7;15811:18;15832:57;15845:7;15854:6;15862:9;15873:15;15832:12;:57::i;:::-;15811:78;;15900:26;15929:17;15935:10;15929:5;:17::i;:::-;15900:46;-1:-1:-1;15994:22:24;15978:12;:38;;;;;;;;:::i;:::-;;;:95;;;;-1:-1:-1;16052:21:24;16036:12;:37;;;;;;;;:::i;:::-;;;15978:95;:153;;;;-1:-1:-1;16109:22:24;16093:12;:38;;;;;;;;:::i;:::-;;;15978:153;15957:229;;;;-1:-1:-1;;;15957:229:24;;44862:2:310;15957:229:24;;;44844:21:310;44901:2;44881:18;;;44874:30;44940:31;44920:18;;;44913:59;44989:18;;15957:229:24;44660:353:310;15957:229:24;16196:22;;;;:10;:22;;;;;;;:31;;:38;;-1:-1:-1;;16196:38:24;;;;;16250:28;;;;;16207:10;2062:25:310;;2050:2;2035:18;;1916:177;25678:593:24;25736:4;;25769:11;;;;25842:2;:6;-1:-1:-1;25842:16:24;;;;;25856:2;25852:1;:6;;;25842:16;25838:417;;;25886:4;;-1:-1:-1;;25892:6:24;;;;-1:-1:-1;25678:593:24;-1:-1:-1;;25678:593:24:o;25838:417::-;25965:1;25960:6;;:2;:6;:16;;;;;25974:2;25970:1;:6;;;25960:16;25956:299;;;26004:4;;-1:-1:-1;;26010:6:24;;;;-1:-1:-1;25678:593:24;-1:-1:-1;;25678:593:24:o;25956:299::-;26083:1;26078:6;;:2;:6;:17;;;;;26092:3;26088:1;:7;;;26078:17;26074:181;;;26123:4;;-1:-1:-1;;26129:6:24;;;;-1:-1:-1;25678:593:24;-1:-1:-1;;25678:593:24:o;26074:181::-;-1:-1:-1;26231:5:24;;;;-1:-1:-1;25678:593:24;-1:-1:-1;;25678:593:24:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;374:180:310:-;433:6;486:2;474:9;465:7;461:23;457:32;454:52;;;502:1;499;492:12;454:52;-1:-1:-1;525:23:310;;374:180;-1:-1:-1;374:180:310:o;1433:286::-;1491:6;1544:2;1532:9;1523:7;1519:23;1515:32;1512:52;;;1560:1;1557;1550:12;1512:52;1586:23;;-1:-1:-1;;;;;;1638:32:310;;1628:43;;1618:71;;1685:1;1682;1675:12;2098:156;2164:20;;2224:4;2213:16;;2203:27;;2193:55;;2244:1;2241;2234:12;2259:348;2311:8;2321:6;2375:3;2368:4;2360:6;2356:17;2352:27;2342:55;;2393:1;2390;2383:12;2342:55;-1:-1:-1;2416:20:310;;-1:-1:-1;;;;;2448:30:310;;2445:50;;;2491:1;2488;2481:12;2445:50;2528:4;2520:6;2516:17;2504:29;;2580:3;2573:4;2564:6;2556;2552:19;2548:30;2545:39;2542:59;;;2597:1;2594;2587:12;2542:59;2259:348;;;;;:::o;2612:127::-;2673:10;2668:3;2664:20;2661:1;2654:31;2704:4;2701:1;2694:15;2728:4;2725:1;2718:15;2744:275;2815:2;2809:9;2880:2;2861:13;;-1:-1:-1;;2857:27:310;2845:40;;-1:-1:-1;;;;;2900:34:310;;2936:22;;;2897:62;2894:88;;;2962:18;;:::i;:::-;2998:2;2991:22;2744:275;;-1:-1:-1;2744:275:310:o;3024:186::-;3072:4;-1:-1:-1;;;;;3097:6:310;3094:30;3091:56;;;3127:18;;:::i;:::-;-1:-1:-1;3193:2:310;3172:15;-1:-1:-1;;3168:29:310;3199:4;3164:40;;3024:186::o;3215:462::-;3257:5;3310:3;3303:4;3295:6;3291:17;3287:27;3277:55;;3328:1;3325;3318:12;3277:55;3364:6;3351:20;3395:48;3411:31;3439:2;3411:31;:::i;:::-;3395:48;:::i;:::-;3468:2;3459:7;3452:19;3514:3;3507:4;3502:2;3494:6;3490:15;3486:26;3483:35;3480:55;;;3531:1;3528;3521:12;3480:55;3596:2;3589:4;3581:6;3577:17;3570:4;3561:7;3557:18;3544:55;3644:1;3619:16;;;3637:4;3615:27;3608:38;;;;3623:7;3215:462;-1:-1:-1;;;3215:462:310:o;3682:978::-;3812:6;3820;3828;3836;3844;3852;3860;3868;3921:3;3909:9;3900:7;3896:23;3892:33;3889:53;;;3938:1;3935;3928:12;3889:53;3974:9;3961:23;3951:33;;4003:36;4035:2;4024:9;4020:18;4003:36;:::i;:::-;3993:46;;4090:2;4079:9;4075:18;4062:32;-1:-1:-1;;;;;4154:2:310;4146:6;4143:14;4140:34;;;4170:1;4167;4160:12;4140:34;4209:59;4260:7;4251:6;4240:9;4236:22;4209:59;:::i;:::-;4287:8;;-1:-1:-1;4183:85:310;-1:-1:-1;4375:2:310;4360:18;;4347:32;;-1:-1:-1;4391:16:310;;;4388:36;;;4420:1;4417;4410:12;4388:36;;4443:51;4486:7;4475:8;4464:9;4460:24;4443:51;:::i;:::-;4433:61;;;4513:37;4545:3;4534:9;4530:19;4513:37;:::i;:::-;4503:47;;4597:3;4586:9;4582:19;4569:33;4559:43;;4649:3;4638:9;4634:19;4621:33;4611:43;;3682:978;;;;;;;;;;;:::o;4665:250::-;4750:1;4760:113;4774:6;4771:1;4768:13;4760:113;;;4850:11;;;4844:18;4831:11;;;4824:39;4796:2;4789:10;4760:113;;;-1:-1:-1;;4907:1:310;4889:16;;4882:27;4665:250::o;4920:271::-;4962:3;5000:5;4994:12;5027:6;5022:3;5015:19;5043:76;5112:6;5105:4;5100:3;5096:14;5089:4;5082:5;5078:16;5043:76;:::i;:::-;5173:2;5152:15;-1:-1:-1;;5148:29:310;5139:39;;;;5180:4;5135:50;;4920:271;-1:-1:-1;;4920:271:310:o;5196:220::-;5345:2;5334:9;5327:21;5308:4;5365:45;5406:2;5395:9;5391:18;5383:6;5365:45;:::i;5629:131::-;-1:-1:-1;;;;;5704:31:310;;5694:42;;5684:70;;5750:1;5747;5740:12;5765:665;5860:6;5868;5876;5884;5937:3;5925:9;5916:7;5912:23;5908:33;5905:53;;;5954:1;5951;5944:12;5905:53;5993:9;5980:23;6012:31;6037:5;6012:31;:::i;:::-;6062:5;-1:-1:-1;6119:2:310;6104:18;;6091:32;6132:33;6091:32;6132:33;:::i;:::-;6184:7;-1:-1:-1;6238:2:310;6223:18;;6210:32;;-1:-1:-1;6293:2:310;6278:18;;6265:32;-1:-1:-1;;;;;6309:30:310;;6306:50;;;6352:1;6349;6342:12;6306:50;6375:49;6416:7;6407:6;6396:9;6392:22;6375:49;:::i;:::-;6365:59;;;5765:665;;;;;;;:::o;6642:183::-;6702:4;-1:-1:-1;;;;;6727:6:310;6724:30;6721:56;;;6757:18;;:::i;:::-;-1:-1:-1;6802:1:310;6798:14;6814:4;6794:25;;6642:183::o;6830:737::-;6884:5;6937:3;6930:4;6922:6;6918:17;6914:27;6904:55;;6955:1;6952;6945:12;6904:55;6991:6;6978:20;7017:4;7041:60;7057:43;7097:2;7057:43;:::i;7041:60::-;7135:15;;;7221:1;7217:10;;;;7205:23;;7201:32;;;7166:12;;;;7245:15;;;7242:35;;;7273:1;7270;7263:12;7242:35;7309:2;7301:6;7297:15;7321:217;7337:6;7332:3;7329:15;7321:217;;;7417:3;7404:17;7434:31;7459:5;7434:31;:::i;:::-;7478:18;;7516:12;;;;7354;;7321:217;;;-1:-1:-1;7556:5:310;6830:737;-1:-1:-1;;;;;;6830:737:310:o;7572:662::-;7626:5;7679:3;7672:4;7664:6;7660:17;7656:27;7646:55;;7697:1;7694;7687:12;7646:55;7733:6;7720:20;7759:4;7783:60;7799:43;7839:2;7799:43;:::i;7783:60::-;7877:15;;;7963:1;7959:10;;;;7947:23;;7943:32;;;7908:12;;;;7987:15;;;7984:35;;;8015:1;8012;8005:12;7984:35;8051:2;8043:6;8039:15;8063:142;8079:6;8074:3;8071:15;8063:142;;;8145:17;;8133:30;;8183:12;;;;8096;;8063:142;;8239:886;8291:5;8344:3;8337:4;8329:6;8325:17;8321:27;8311:55;;8362:1;8359;8352:12;8311:55;8398:6;8385:20;8424:4;8448:60;8464:43;8504:2;8464:43;:::i;8448:60::-;8542:15;;;8628:1;8624:10;;;;8612:23;;8608:32;;;8573:12;;;;8652:15;;;8649:35;;;8680:1;8677;8670:12;8649:35;8716:2;8708:6;8704:15;8728:368;8744:6;8739:3;8736:15;8728:368;;;8830:3;8817:17;-1:-1:-1;;;;;8853:11:310;8850:35;8847:125;;;8926:1;8955:2;8951;8944:14;8847:125;8997:56;9049:3;9044:2;9030:11;9022:6;9018:24;9014:33;8997:56;:::i;:::-;8985:69;;-1:-1:-1;9074:12:310;;;;8761;;8728:368;;9130:897;9300:6;9308;9316;9324;9377:3;9365:9;9356:7;9352:23;9348:33;9345:53;;;9394:1;9391;9384:12;9345:53;9434:9;9421:23;-1:-1:-1;;;;;9504:2:310;9496:6;9493:14;9490:34;;;9520:1;9517;9510:12;9490:34;9543:61;9596:7;9587:6;9576:9;9572:22;9543:61;:::i;:::-;9533:71;;9657:2;9646:9;9642:18;9629:32;9613:48;;9686:2;9676:8;9673:16;9670:36;;;9702:1;9699;9692:12;9670:36;9725:63;9780:7;9769:8;9758:9;9754:24;9725:63;:::i;:::-;9715:73;;9841:2;9830:9;9826:18;9813:32;9797:48;;9870:2;9860:8;9857:16;9854:36;;;9886:1;9883;9876:12;9854:36;;9909:61;9962:7;9951:8;9940:9;9936:24;9909:61;:::i;:::-;9130:897;;;;-1:-1:-1;9899:71:310;;10017:2;10002:18;9989:32;;-1:-1:-1;;;9130:897:310:o;10214:461::-;10267:3;10305:5;10299:12;10332:6;10327:3;10320:19;10358:4;10387:2;10382:3;10378:12;10371:19;;10424:2;10417:5;10413:14;10445:1;10455:195;10469:6;10466:1;10463:13;10455:195;;;10534:13;;-1:-1:-1;;;;;10530:39:310;10518:52;;10590:12;;;;10625:15;;;;10566:1;10484:9;10455:195;;;-1:-1:-1;10666:3:310;;10214:461;-1:-1:-1;;;;;10214:461:310:o;10680:435::-;10733:3;10771:5;10765:12;10798:6;10793:3;10786:19;10824:4;10853:2;10848:3;10844:12;10837:19;;10890:2;10883:5;10879:14;10911:1;10921:169;10935:6;10932:1;10929:13;10921:169;;;10996:13;;10984:26;;11030:12;;;;11065:15;;;;10957:1;10950:9;10921:169;;11120:592;11172:3;11203;11235:5;11229:12;11262:6;11257:3;11250:19;11288:4;11317:2;11312:3;11308:12;11301:19;;11373:2;11363:6;11360:1;11356:14;11349:5;11345:26;11341:35;11410:2;11403:5;11399:14;11431:1;11441:245;11455:6;11452:1;11449:13;11441:245;;;11542:2;11538:7;11530:5;11524:4;11520:16;11516:30;11511:3;11504:43;11568:38;11601:4;11592:6;11586:13;11568:38;:::i;:::-;11664:12;;;;11560:46;-1:-1:-1;11629:15:310;;;;11477:1;11470:9;11441:245;;;-1:-1:-1;11702:4:310;;11120:592;-1:-1:-1;;;;;;;11120:592:310:o;11717:911::-;12168:3;12157:9;12150:22;12131:4;12195:57;12247:3;12236:9;12232:19;12224:6;12195:57;:::i;:::-;12300:9;12292:6;12288:22;12283:2;12272:9;12268:18;12261:50;12334:44;12371:6;12363;12334:44;:::i;:::-;12320:58;;12426:9;12418:6;12414:22;12409:2;12398:9;12394:18;12387:50;12460:43;12496:6;12488;12460:43;:::i;:::-;12446:57;;12551:9;12543:6;12539:22;12534:2;12523:9;12519:18;12512:50;12579:43;12615:6;12607;12579:43;:::i;12633:458::-;12724:6;12732;12740;12748;12756;12809:3;12797:9;12788:7;12784:23;12780:33;12777:53;;;12826:1;12823;12816:12;12777:53;12862:9;12849:23;12839:33;;12891:36;12923:2;12912:9;12908:18;12891:36;:::i;:::-;12881:46;;12946:36;12978:2;12967:9;12963:18;12946:36;:::i;:::-;12633:458;;;;-1:-1:-1;12936:46:310;;13029:2;13014:18;;13001:32;;-1:-1:-1;13080:3:310;13065:19;13052:33;;12633:458;-1:-1:-1;;12633:458:310:o;13096:127::-;13157:10;13152:3;13148:20;13145:1;13138:31;13188:4;13185:1;13178:15;13212:4;13209:1;13202:15;13228:346;13378:2;13363:18;;13411:1;13400:13;;13390:144;;13456:10;13451:3;13447:20;13444:1;13437:31;13491:4;13488:1;13481:15;13519:4;13516:1;13509:15;13390:144;13543:25;;;13228:346;:::o;13579:315::-;13647:6;13655;13708:2;13696:9;13687:7;13683:23;13679:32;13676:52;;;13724:1;13721;13714:12;13676:52;13760:9;13747:23;13737:33;;13820:2;13809:9;13805:18;13792:32;13833:31;13858:5;13833:31;:::i;:::-;13883:5;13873:15;;;13579:315;;;;;:::o;13899:250::-;13965:6;13973;14026:2;14014:9;14005:7;14001:23;13997:32;13994:52;;;14042:1;14039;14032:12;13994:52;14078:9;14065:23;14055:33;;14107:36;14139:2;14128:9;14124:18;14107:36;:::i;:::-;14097:46;;13899:250;;;;;:::o;14154:769::-;14259:6;14267;14275;14283;14291;14344:3;14332:9;14323:7;14319:23;14315:33;14312:53;;;14361:1;14358;14351:12;14312:53;14397:9;14384:23;14374:33;;14426:36;14458:2;14447:9;14443:18;14426:36;:::i;:::-;14416:46;;14513:2;14502:9;14498:18;14485:32;-1:-1:-1;;;;;14577:2:310;14569:6;14566:14;14563:34;;;14593:1;14590;14583:12;14563:34;14632:59;14683:7;14674:6;14663:9;14659:22;14632:59;:::i;:::-;14710:8;;-1:-1:-1;14606:85:310;-1:-1:-1;14798:2:310;14783:18;;14770:32;;-1:-1:-1;14814:16:310;;;14811:36;;;14843:1;14840;14833:12;14811:36;;14866:51;14909:7;14898:8;14887:9;14883:24;14866:51;:::i;:::-;14856:61;;;14154:769;;;;;;;;:::o;14928:549::-;15015:6;15023;15031;15039;15092:2;15080:9;15071:7;15067:23;15063:32;15060:52;;;15108:1;15105;15098:12;15060:52;15144:9;15131:23;15121:33;;15173:36;15205:2;15194:9;15190:18;15173:36;:::i;:::-;15163:46;;15260:2;15249:9;15245:18;15232:32;-1:-1:-1;;;;;15279:6:310;15276:30;15273:50;;;15319:1;15316;15309:12;15273:50;15358:59;15409:7;15400:6;15389:9;15385:22;15358:59;:::i;:::-;14928:549;;;;-1:-1:-1;15436:8:310;-1:-1:-1;;;;14928:549:310:o;15482:1028::-;15662:6;15670;15678;15686;15739:3;15727:9;15718:7;15714:23;15710:33;15707:53;;;15756:1;15753;15746:12;15707:53;15796:9;15783:23;-1:-1:-1;;;;;15866:2:310;15858:6;15855:14;15852:34;;;15882:1;15879;15872:12;15852:34;15905:61;15958:7;15949:6;15938:9;15934:22;15905:61;:::i;:::-;15895:71;;16019:2;16008:9;16004:18;15991:32;15975:48;;16048:2;16038:8;16035:16;16032:36;;;16064:1;16061;16054:12;16032:36;16087:63;16142:7;16131:8;16120:9;16116:24;16087:63;:::i;:::-;16077:73;;16203:2;16192:9;16188:18;16175:32;16159:48;;16232:2;16222:8;16219:16;16216:36;;;16248:1;16245;16238:12;16216:36;16271:61;16324:7;16313:8;16302:9;16298:24;16271:61;:::i;:::-;16261:71;;16385:2;16374:9;16370:18;16357:32;16341:48;;16414:2;16404:8;16401:16;16398:36;;;16430:1;16427;16420:12;16398:36;;16453:51;16496:7;16485:8;16474:9;16470:24;16453:51;:::i;16515:920::-;16921:3;16916;16912:13;16904:6;16900:26;16889:9;16882:45;16963:3;16958:2;16947:9;16943:18;16936:31;16863:4;16990:46;17031:3;17020:9;17016:19;17008:6;16990:46;:::i;:::-;17084:9;17076:6;17072:22;17067:2;17056:9;17052:18;17045:50;17118:33;17144:6;17136;17118:33;:::i;:::-;17182:2;17167:18;;17160:34;;;-1:-1:-1;;;;;17231:32:310;;17225:3;17210:19;;17203:61;17251:3;17280:19;;17273:35;;;17345:22;;;17339:3;17324:19;;17317:51;17104:47;-1:-1:-1;17385:44:310;17104:47;17414:6;17385:44;:::i;17641:523::-;17727:6;17735;17743;17796:2;17784:9;17775:7;17771:23;17767:32;17764:52;;;17812:1;17809;17802:12;17764:52;17851:9;17838:23;17870:31;17895:5;17870:31;:::i;:::-;17920:5;-1:-1:-1;17972:2:310;17957:18;;17944:32;;-1:-1:-1;18027:2:310;18012:18;;17999:32;-1:-1:-1;;;;;18043:30:310;;18040:50;;;18086:1;18083;18076:12;18040:50;18109:49;18150:7;18141:6;18130:9;18126:22;18109:49;:::i;:::-;18099:59;;;17641:523;;;;;:::o;18169:274::-;18255:6;18308:2;18296:9;18287:7;18283:23;18279:32;18276:52;;;18324:1;18321;18314:12;18276:52;18363:9;18350:23;18382:31;18407:5;18382:31;:::i;18448:1071::-;18602:6;18610;18618;18626;18634;18687:3;18675:9;18666:7;18662:23;18658:33;18655:53;;;18704:1;18701;18694:12;18655:53;18743:9;18730:23;18762:31;18787:5;18762:31;:::i;:::-;18812:5;-1:-1:-1;18869:2:310;18854:18;;18841:32;18882:33;18841:32;18882:33;:::i;:::-;18934:7;-1:-1:-1;18992:2:310;18977:18;;18964:32;-1:-1:-1;;;;;19045:14:310;;;19042:34;;;19072:1;19069;19062:12;19042:34;19095:61;19148:7;19139:6;19128:9;19124:22;19095:61;:::i;:::-;19085:71;;19209:2;19198:9;19194:18;19181:32;19165:48;;19238:2;19228:8;19225:16;19222:36;;;19254:1;19251;19244:12;19222:36;19277:63;19332:7;19321:8;19310:9;19306:24;19277:63;:::i;:::-;19267:73;;19393:3;19382:9;19378:19;19365:33;19349:49;;19423:2;19413:8;19410:16;19407:36;;;19439:1;19436;19429:12;19524:613;19612:6;19620;19628;19636;19689:2;19677:9;19668:7;19664:23;19660:32;19657:52;;;19705:1;19702;19695:12;19657:52;19744:9;19731:23;19763:31;19788:5;19763:31;:::i;:::-;19813:5;-1:-1:-1;19865:2:310;19850:18;;19837:32;;-1:-1:-1;19920:2:310;19905:18;;19892:32;-1:-1:-1;;;;;19936:30:310;;19933:50;;;19979:1;19976;19969:12;20142:887;20195:5;20248:3;20241:4;20233:6;20229:17;20225:27;20215:55;;20266:1;20263;20256:12;20215:55;20302:6;20289:20;20328:4;20352:60;20368:43;20408:2;20368:43;:::i;20352:60::-;20446:15;;;20532:1;20528:10;;;;20516:23;;20512:32;;;20477:12;;;;20556:15;;;20553:35;;;20584:1;20581;20574:12;20553:35;20620:2;20612:6;20608:15;20632:368;20648:6;20643:3;20640:15;20632:368;;;20734:3;20721:17;-1:-1:-1;;;;;20757:11:310;20754:35;20751:125;;;20830:1;20859:2;20855;20848:14;20751:125;20901:56;20953:3;20948:2;20934:11;20926:6;20922:24;20918:33;20901:56;:::i;:::-;20889:69;;-1:-1:-1;20978:12:310;;;;20665;;20632:368;;21034:1264;21258:6;21266;21274;21282;21290;21343:3;21331:9;21322:7;21318:23;21314:33;21311:53;;;21360:1;21357;21350:12;21311:53;21400:9;21387:23;-1:-1:-1;;;;;21470:2:310;21462:6;21459:14;21456:34;;;21486:1;21483;21476:12;21456:34;21509:61;21562:7;21553:6;21542:9;21538:22;21509:61;:::i;:::-;21499:71;;21623:2;21612:9;21608:18;21595:32;21579:48;;21652:2;21642:8;21639:16;21636:36;;;21668:1;21665;21658:12;21636:36;21691:63;21746:7;21735:8;21724:9;21720:24;21691:63;:::i;:::-;21681:73;;21807:2;21796:9;21792:18;21779:32;21763:48;;21836:2;21826:8;21823:16;21820:36;;;21852:1;21849;21842:12;21820:36;21875:62;21929:7;21918:8;21907:9;21903:24;21875:62;:::i;:::-;21865:72;;21990:2;21979:9;21975:18;21962:32;21946:48;;22019:2;22009:8;22006:16;22003:36;;;22035:1;22032;22025:12;22003:36;22058:61;22111:7;22100:8;22089:9;22085:24;22058:61;:::i;22728:315::-;22796:6;22804;22857:2;22845:9;22836:7;22832:23;22828:32;22825:52;;;22873:1;22870;22863:12;22825:52;22912:9;22899:23;22931:31;22956:5;22931:31;:::i;:::-;22981:5;23033:2;23018:18;;;;23005:32;;-1:-1:-1;;;22728:315:310:o;23048:734::-;23152:6;23160;23168;23176;23184;23237:3;23225:9;23216:7;23212:23;23208:33;23205:53;;;23254:1;23251;23244:12;23205:53;23293:9;23280:23;23312:31;23337:5;23312:31;:::i;:::-;23362:5;-1:-1:-1;23419:2:310;23404:18;;23391:32;23432:33;23391:32;23432:33;:::i;:::-;23484:7;-1:-1:-1;23538:2:310;23523:18;;23510:32;;-1:-1:-1;23589:2:310;23574:18;;23561:32;;-1:-1:-1;23644:3:310;23629:19;;23616:33;-1:-1:-1;;;;;23661:30:310;;23658:50;;;23704:1;23701;23694:12;23658:50;23727:49;23768:7;23759:6;23748:9;23744:22;23727:49;:::i;24013:271::-;24196:6;24188;24183:3;24170:33;24152:3;24222:16;;24247:13;;;24222:16;24013:271;-1:-1:-1;24013:271:310:o;24764:348::-;24966:2;24948:21;;;25005:2;24985:18;;;24978:30;25044:26;25039:2;25024:18;;25017:54;25103:2;25088:18;;24764:348::o;25117:380::-;25196:1;25192:12;;;;25239;;;25260:61;;25314:4;25306:6;25302:17;25292:27;;25260:61;25367:2;25359:6;25356:14;25336:18;25333:38;25330:161;;25413:10;25408:3;25404:20;25401:1;25394:31;25448:4;25445:1;25438:15;25476:4;25473:1;25466:15;25330:161;;25117:380;;;:::o;25502:397::-;25704:2;25686:21;;;25743:2;25723:18;;;25716:30;25782:34;25777:2;25762:18;;25755:62;-1:-1:-1;;;25848:2:310;25833:18;;25826:31;25889:3;25874:19;;25502:397::o;25904:184::-;25974:6;26027:2;26015:9;26006:7;26002:23;25998:32;25995:52;;;26043:1;26040;26033:12;25995:52;-1:-1:-1;26066:16:310;;25904:184;-1:-1:-1;25904:184:310:o;26093:839::-;26510:3;26499:9;26492:22;26473:4;26537:57;26589:3;26578:9;26574:19;26566:6;26537:57;:::i;:::-;26642:9;26634:6;26630:22;26625:2;26614:9;26610:18;26603:50;26676:44;26713:6;26705;26676:44;:::i;:::-;26662:58;;26768:9;26760:6;26756:22;26751:2;26740:9;26736:18;26729:50;26796:43;26832:6;26824;26796:43;:::i;:::-;26870:2;26855:18;;26848:34;;;;-1:-1:-1;;26913:3:310;26898:19;26891:35;26788:51;26093:839;-1:-1:-1;;;26093:839:310:o;27126:911::-;27571:3;27560:9;27553:22;27534:4;27598:57;27650:3;27639:9;27635:19;27627:6;27598:57;:::i;:::-;27703:9;27695:6;27691:22;27686:2;27675:9;27671:18;27664:50;27737:44;27774:6;27766;27737:44;:::i;:::-;27723:58;;27829:9;27821:6;27817:22;27812:2;27801:9;27797:18;27790:50;27857:43;27893:6;27885;27857:43;:::i;:::-;27931:2;27916:18;;27909:34;;;;-1:-1:-1;;27974:3:310;27959:19;;27952:35;;;;28018:3;28003:19;;;27996:35;27849:51;27126:911;-1:-1:-1;;;27126:911:310:o;28042:127::-;28103:10;28098:3;28094:20;28091:1;28084:31;28134:4;28131:1;28124:15;28158:4;28155:1;28148:15;28174:125;28239:9;;;28260:10;;;28257:36;;;28273:18;;:::i;28557:179::-;28625:14;28672:10;;;28660;;;28656:27;;28695:12;;;28692:38;;;28710:18;;:::i;:::-;28692:38;28557:179;;;;:::o;29072:648::-;29152:6;29205:2;29193:9;29184:7;29180:23;29176:32;29173:52;;;29221:1;29218;29211:12;29173:52;29254:9;29248:16;-1:-1:-1;;;;;29279:6:310;29276:30;29273:50;;;29319:1;29316;29309:12;29273:50;29342:22;;29395:4;29387:13;;29383:27;-1:-1:-1;29373:55:310;;29424:1;29421;29414:12;29373:55;29453:2;29447:9;29478:48;29494:31;29522:2;29494:31;:::i;29478:48::-;29549:2;29542:5;29535:17;29589:7;29584:2;29579;29575;29571:11;29567:20;29564:33;29561:53;;;29610:1;29607;29600:12;29561:53;29623:67;29687:2;29682;29675:5;29671:14;29666:2;29662;29658:11;29623:67;:::i;29725:128::-;29792:9;;;29813:11;;;29810:37;;;29827:18;;:::i;29858:127::-;29919:10;29914:3;29910:20;29907:1;29900:31;29950:4;29947:1;29940:15;29974:4;29971:1;29964:15;29990:284;30059:6;30112:2;30100:9;30091:7;30087:23;30083:32;30080:52;;;30128:1;30125;30118:12;30080:52;30160:9;30154:16;30210:14;30203:5;30199:26;30192:5;30189:37;30179:65;;30240:1;30237;30230:12;30279:759;30660:3;30649:9;30642:22;30623:4;30687:57;30739:3;30728:9;30724:19;30716:6;30687:57;:::i;:::-;30792:9;30784:6;30780:22;30775:2;30764:9;30760:18;30753:50;30826:44;30863:6;30855;30826:44;:::i;:::-;30812:58;;30918:9;30910:6;30906:22;30901:2;30890:9;30886:18;30879:50;30946:43;30982:6;30974;30946:43;:::i;:::-;30938:51;;;31025:6;31020:2;31009:9;31005:18;30998:34;30279:759;;;;;;;:::o;31452:168::-;31525:9;;;31556;;31573:15;;;31567:22;;31553:37;31543:71;;31594:18;;:::i;31625:127::-;31686:10;31681:3;31677:20;31674:1;31667:31;31717:4;31714:1;31707:15;31741:4;31738:1;31731:15;31757:217;31797:1;31823;31813:132;;31867:10;31862:3;31858:20;31855:1;31848:31;31902:4;31899:1;31892:15;31930:4;31927:1;31920:15;31813:132;-1:-1:-1;31959:9:310;;31757:217::o;32383:442::-;32612:6;32601:9;32594:25;32667:4;32659:6;32655:17;32650:2;32639:9;32635:18;32628:45;32709:6;32704:2;32693:9;32689:18;32682:34;32752:3;32747:2;32736:9;32732:18;32725:31;32575:4;32773:46;32814:3;32803:9;32799:19;32791:6;32773:46;:::i;32830:604::-;33105:6;33094:9;33087:25;33160:4;33152:6;33148:17;33143:2;33132:9;33128:18;33121:45;33202:6;33197:2;33186:9;33182:18;33175:34;33245:3;33240:2;33229:9;33225:18;33218:31;33068:4;33272:46;33313:3;33302:9;33298:19;33290:6;33272:46;:::i;:::-;33367:9;33359:6;33355:22;33349:3;33338:9;33334:19;33327:51;33395:33;33421:6;33413;33395:33;:::i;:::-;33387:41;32830:604;-1:-1:-1;;;;;;;;32830:604:310:o;33915:135::-;33954:3;33975:17;;;33972:43;;33995:18;;:::i;:::-;-1:-1:-1;34042:1:310;34031:13;;33915:135::o;34055:277::-;34122:6;34175:2;34163:9;34154:7;34150:23;34146:32;34143:52;;;34191:1;34188;34181:12;34143:52;34223:9;34217:16;34276:5;34269:13;34262:21;34255:5;34252:32;34242:60;;34298:1;34295;34288:12;36147:384;-1:-1:-1;;;;;;36332:33:310;;36320:46;;36389:13;;36302:3;;36411:74;36389:13;36474:1;36465:11;;36458:4;36446:17;;36411:74;:::i;:::-;36505:16;;;;36523:1;36501:24;;36147:384;-1:-1:-1;;;36147:384:310:o;40425:397::-;40627:2;40609:21;;;40666:2;40646:18;;;40639:30;40705:34;40700:2;40685:18;;40678:62;-1:-1:-1;;;40771:2:310;40756:18;;40749:31;40812:3;40797:19;;40425:397::o;41582:1409::-;42197:25;;;-1:-1:-1;;;;;42258:32:310;;42253:2;42238:18;;42231:60;42185:3;42322:2;42307:18;;42300:30;;;42156:4;;42353:56;42390:18;;;42382:6;42353:56;:::i;:::-;42339:70;;42457:9;42449:6;42445:22;42440:2;42429:9;42425:18;42418:50;42491:44;42528:6;42520;42491:44;:::i;:::-;42477:58;;42584:9;42576:6;42572:22;42566:3;42555:9;42551:19;42544:51;42618:43;42654:6;42646;42618:43;:::i;:::-;42604:57;;42710:9;42702:6;42698:22;42692:3;42681:9;42677:19;42670:51;42744:43;42780:6;42772;42744:43;:::i;:::-;42730:57;;42824:6;42818:3;42807:9;42803:19;42796:35;42868:6;42862:3;42851:9;42847:19;42840:35;42924:9;42916:6;42912:22;42906:3;42895:9;42891:19;42884:51;42952:33;42978:6;42970;42952:33;:::i;:::-;42944:41;41582:1409;-1:-1:-1;;;;;;;;;;;;41582:1409:310:o;45144:545::-;45246:2;45241:3;45238:11;45235:448;;;45282:1;45307:5;45303:2;45296:17;45352:4;45348:2;45338:19;45422:2;45410:10;45406:19;45403:1;45399:27;45393:4;45389:38;45458:4;45446:10;45443:20;45440:47;;;-1:-1:-1;45481:4:310;45440:47;45536:2;45531:3;45527:12;45524:1;45520:20;45514:4;45510:31;45500:41;;45591:82;45609:2;45602:5;45599:13;45591:82;;;45654:17;;;45635:1;45624:13;45591:82;;45235:448;45144:545;;;:::o;45865:1352::-;45991:3;45985:10;-1:-1:-1;;;;;46010:6:310;46007:30;46004:56;;;46040:18;;:::i;:::-;46069:97;46159:6;46119:38;46151:4;46145:11;46119:38;:::i;:::-;46113:4;46069:97;:::i;:::-;46221:4;;46285:2;46274:14;;46302:1;46297:663;;;;47004:1;47021:6;47018:89;;;-1:-1:-1;47073:19:310;;;47067:26;47018:89;-1:-1:-1;;45822:1:310;45818:11;;;45814:24;45810:29;45800:40;45846:1;45842:11;;;45797:57;47120:81;;46267:944;;46297:663;45091:1;45084:14;;;45128:4;45115:18;;-1:-1:-1;;46333:20:310;;;46451:236;46465:7;46462:1;46459:14;46451:236;;;46554:19;;;46548:26;46533:42;;46646:27;;;;46614:1;46602:14;;;;46481:19;;46451:236;;;46455:3;46715:6;46706:7;46703:19;46700:201;;;46776:19;;;46770:26;-1:-1:-1;;46859:1:310;46855:14;;;46871:3;46851:24;46847:37;46843:42;46828:58;46813:74;;46700:201;-1:-1:-1;;;;;46947:1:310;46931:14;;;46927:22;46914:36;;-1:-1:-1;45865:1352:310:o","linkReferences":{},"immutableReferences":{"34893":[{"start":11239,"length":32}],"34895":[{"start":11197,"length":32}],"34897":[{"start":11155,"length":32}],"34899":[{"start":11320,"length":32}],"34901":[{"start":11360,"length":32}],"34904":[{"start":5847,"length":32}],"34907":[{"start":5889,"length":32}],"9311":[{"start":2838,"length":32},{"start":5268,"length":32},{"start":5971,"length":32},{"start":7006,"length":32},{"start":10214,"length":32}]}},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","CLOCK_MODE()":"4bf5d7e9","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","cancel(address[],uint256[],bytes[],bytes32)":"452115d6","cancel(uint256)":"40e58ee5","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","clock()":"91ddadf4","eip712Domain()":"84b0196e","execute(address[],uint256[],bytes[],bytes32)":"2656227d","execute(uint256)":"fe0d94c1","getActions(uint256)":"328dd982","getReceipt(uint256,address)":"e23a9a52","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalEta(uint256)":"ab58fb8e","proposalProposer(uint256)":"143489d0","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","proposals(uint256)":"013cf08b","propose(address[],uint256[],bytes[],string)":"7d5e81e2","propose(address[],uint256[],string[],bytes[],string)":"da95691a","queue(address[],uint256[],bytes[],bytes32)":"160cbed7","queue(uint256)":"ddf0b009","quorum(uint256)":"f8ce560a","quorumDenominator()":"97c3d334","quorumNumerator()":"a7713a70","quorumNumerator(uint256)":"60c4247f","quorumVotes()":"24bc1a64","relay(address,uint256,bytes)":"c28bc2fa","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","timelock()":"d33219b4","token()":"fc0c546a","updateQuorumNumerator(uint256)":"06f3f9e6","updateTimelock(address)":"a890c910","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IVotes\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"contract TimelockController\",\"name\":\"_timelock\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"voteStart\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"voteEnd\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldQuorumNumerator\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newQuorumNumerator\",\"type\":\"uint256\"}],\"name\":\"QuorumNumeratorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldTimelock\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"TimelockChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CLOCK_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"cancel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clock\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getActions\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"getReceipt\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"hasVoted\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"internalType\":\"struct IGovernorCompatibilityBravo.Receipt\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalEta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalProposer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"queue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"queue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumDenominator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"quorumNumerator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumNumerator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IERC5805\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumNumerator\",\"type\":\"uint256\"}],\"name\":\"updateQuorumNumerator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TimelockController\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"updateTimelock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"ProposalCanceled(uint256)\":{\"details\":\"Emitted when a proposal is canceled.\"},\"ProposalCreated(uint256,address,address[],uint256[],string[],bytes[],uint256,uint256,string)\":{\"details\":\"Emitted when a proposal is created.\"},\"ProposalExecuted(uint256)\":{\"details\":\"Emitted when a proposal is executed.\"},\"TimelockChange(address,address)\":{\"details\":\"Emitted when the timelock controller used for proposal execution is modified.\"},\"VoteCast(address,uint256,uint8,uint256,string)\":{\"details\":\"Emitted when a vote is cast without params. Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used.\"},\"VoteCastWithParams(address,uint256,uint8,uint256,string,bytes)\":{\"details\":\"Emitted when a vote is cast with params. Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used. `params` are additional encoded parameters. Their interpepretation also depends on the voting module used.\"}},\"kind\":\"dev\",\"methods\":{\"CLOCK_MODE()\":{\"details\":\"Machine-readable description of the clock as specified in EIP-6372.\"},\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"cancel(uint256)\":{\"details\":\"Cancel a proposal with GovernorBravo logic.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"clock()\":{\"details\":\"Clock (as specified in EIP-6372) is set to match the token's clock. Fallback to block numbers if the token does not implement EIP-6372.\"},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"execute(uint256)\":{\"details\":\"See {IGovernorCompatibilityBravo-execute}.\"},\"getActions(uint256)\":{\"details\":\"See {IGovernorCompatibilityBravo-getActions}.\"},\"getReceipt(uint256,address)\":{\"details\":\"See {IGovernorCompatibilityBravo-getReceipt}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"See {IGovernor-hasVoted}.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalEta(uint256)\":{\"details\":\"Public accessor to check the eta of a queued proposal\"},\"proposalProposer(uint256)\":{\"details\":\"Returns the account that created a given proposal.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"proposals(uint256)\":{\"details\":\"See {IGovernorCompatibilityBravo-proposals}.\"},\"propose(address[],uint256[],string[],bytes[],string)\":{\"details\":\"See {IGovernorCompatibilityBravo-propose}.\"},\"queue(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Function to queue a proposal to the timelock.\"},\"queue(uint256)\":{\"details\":\"See {IGovernorCompatibilityBravo-queue}.\"},\"quorum(uint256)\":{\"details\":\"Returns the quorum for a timepoint, in terms of number of votes: `supply * numerator / denominator`.\"},\"quorumDenominator()\":{\"details\":\"Returns the quorum denominator. Defaults to 100, but may be overridden.\"},\"quorumNumerator()\":{\"details\":\"Returns the current quorum numerator. See {quorumDenominator}.\"},\"quorumNumerator(uint256)\":{\"details\":\"Returns the quorum numerator at a specific timepoint. See {quorumDenominator}.\"},\"quorumVotes()\":{\"details\":\"See {IGovernorCompatibilityBravo-quorumVotes}.\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"timelock()\":{\"details\":\"Public accessor to check the address of the timelock\"},\"updateQuorumNumerator(uint256)\":{\"details\":\"Changes the quorum numerator. Emits a {QuorumNumeratorUpdated} event. Requirements: - Must be called through a governance proposal. - New numerator must be smaller or equal to the denominator.\"},\"updateTimelock(address)\":{\"details\":\"Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates must be proposed, scheduled, and executed through governance proposals. CAUTION: It is not recommended to change the timelock while there are other queued governance proposals.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, between the proposal is created and the vote starts. The unit this duration is expressed in depends on the clock (see EIP-6372) this contract uses. This can be increased to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay between the vote start and vote end. The unit this duration is expressed in depends on the clock (see EIP-6372) this contract uses. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol\":\"MyGovernor\"},\"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/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/governance/Governor.sol\":{\"keccak256\":\"0x471e9425ad9a182c6abdc02bc408ca788b935c31c3bfa3e80b7cb556448ecb8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60fba870e97eb84b145fff2df01da8dad8e26e2d540c4f7ae22615e8d4511be4\",\"dweb:/ipfs/QmbJegvJ16YAyiVP3J8oFun4zsoPfjj1KEJ6ZtWgJYffyw\"]},\"lib/openzeppelin-contracts/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0x2bca164e61152f22bd4be7f444d40a46f7b13aa3b7b7fd6b45aa2d869e72f6d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ed8cf61b5ec618f839ca35fd2d614aa83f252930dcc1c9fdf6259d6e381644d\",\"dweb:/ipfs/QmSjHjCsr9aSudtFJWZ1Pj76FVzUEEpwmFBGnxoRftVN7g\"]},\"lib/openzeppelin-contracts/contracts/governance/TimelockController.sol\":{\"keccak256\":\"0xda2a70247fda81633d9392f567a401c4772837de6b0543c1c561ca632a2fe7f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fd567456650ac72d05f3404d18f8aef0380a4f67af13b22511420fe62356578\",\"dweb:/ipfs/QmaHEYxbViAxdemxghGfstYQFXWswyWtBaPKPwCEAnv3xM\"]},\"lib/openzeppelin-contracts/contracts/governance/compatibility/GovernorCompatibilityBravo.sol\":{\"keccak256\":\"0xdc82b444b0fb34dbd4840ed80f969260e7eb85e24d2a2a5770c8283e19d21f82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d981c733f7e04e9babca0036fafd5b403d22fa69d6b40ef08c679e29d6df5b8\",\"dweb:/ipfs/QmZQmnTpBUHGPykQaRN7qZQpRmeditNqTXTDfzXzLUYcXE\"]},\"lib/openzeppelin-contracts/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol\":{\"keccak256\":\"0xcbe38816645439e8ad731447e9fbe786effc3f870f51e7f025b7ca7c1a703e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9bffb0e9305450a614f0425a0783fa986c9d15d42f9f898a37be09922ded8da\",\"dweb:/ipfs/QmRjZ8wp7RDW7dXGuXtFE5kg4oHq8KRoM4eqBMRN6rieUi\"]},\"lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol\":{\"keccak256\":\"0xb125bceaafda4f181bee623c3a665ba7f5c928258eb67c77418ae903246c74ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ede896014ea236303e7850c7aa540d18614a553347f74e9a5a502c8b0bcca2cf\",\"dweb:/ipfs/QmTKUfsw4F1oNvN15eYe5HTVUA54WrD5qE6SQ5MvHGbVcc\"]},\"lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol\":{\"keccak256\":\"0x0272a2c5aff31e5f2398369598c2694eee19986f3b1c43a578b4252555ba2a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df8bca39a5ba89bfd8becbc09dc5f66dc2bde7c0a3722d6c7452f1395609fac9\",\"dweb:/ipfs/QmXqwvZWPLTAS7LrPJS7LBAywc3JWoLGhah1eSM4JvqzFW\"]},\"lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol\":{\"keccak256\":\"0x806f81d08cf596c55f544d1d7b09fb2636e9fb7f2625020a301b288379635252\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ae93259b78896d323ebbf520e8c59384c7a48a9f279272bd7ff40b4966b0aa3\",\"dweb:/ipfs/QmSJQVjYnoFYM4Go8URnzjfkYkPwBTrbiyQRwUTQAApsBK\"]},\"lib/openzeppelin-contracts/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0x1618ddebe73377660f6da71afcba35d5ac4c4600918b3a381d9c6f37eba613eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://666c8d7c62478b55e082f1835275b7acfc1595491998df6d67183ff2c70eab96\",\"dweb:/ipfs/QmVXmnXfxNaLhoX283dqyKJ8DJbF5thUd9sMuRoFpNMwr7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb\",\"dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol\":{\"keccak256\":\"0xfc12b717f6a2cd0d67adc8700097d4464d37f18ce933d4fc9c948ab6aec35e80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82386e69ebe902a2edfd4f8a5ecbeaeb2e00f6cc6481a973729e974373fb492e\",\"dweb:/ipfs/QmSXg4wBMBd83mQvkekT1GsiRX2Qyv5gvrqzv5qJx2M7Kc\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol\":{\"keccak256\":\"0xcaea9aeda3816ba872358c828f4f01455c22ae48ced49c4c7d72bd74176c09b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16ff22d8df5aee94510ee43d361b6147caef164941a684cedcb75be44f351fe6\",\"dweb:/ipfs/QmaCCwMdHVdPApuEJHLZapSJyA7mp5dAugpma3VUzWGd8E\"]},\"lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol\":{\"keccak256\":\"0x0a33461278a70f147e7102a4eb79be20db6f16805a84564ac4428b15ca76fb2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d546ee37be48011e8713f6e641f4f6270250477a6bcc41e1d3652a301909378c\",\"dweb:/ipfs/QmXN3RB3WJEvxrX76pC9Vb15GYxka9k4FdctFaJd4kP7CQ\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Checkpoints.sol\":{\"keccak256\":\"0x3f12d280f57c96b4449de1a4e07f5ca737cac310489b7f269ce37e8f1b24fd79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8990f3cc807ac6be85fdd6935b16135b315b5ab5b8951b1f5a188596f7efd2e7\",\"dweb:/ipfs/QmdQmbWKpaAWpvLBTQfFWGKjm8xjncwEcNyRQ5M61sFaLE\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0xb5fbb623dec53bb9b6c1b738b4ab6540a04ac5dc2ac94d95fa3ebfd22898559c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a6e7f26c0c688a987c19c8b0997c7e47c33f7717b6293a487afe8429d95b8e7\",\"dweb:/ipfs/QmVrmXcQ7KLM5fw4PWeJ8j4nnmfHkjpFPariMMh5UvsEVD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IVotes","name":"_token","type":"address"},{"internalType":"contract TimelockController","name":"_timelock","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"Empty"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false}],"type":"event","name":"ProposalCanceled","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"address","name":"proposer","type":"address","indexed":false},{"internalType":"address[]","name":"targets","type":"address[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false},{"internalType":"string[]","name":"signatures","type":"string[]","indexed":false},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]","indexed":false},{"internalType":"uint256","name":"voteStart","type":"uint256","indexed":false},{"internalType":"uint256","name":"voteEnd","type":"uint256","indexed":false},{"internalType":"string","name":"description","type":"string","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false}],"type":"event","name":"ProposalExecuted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"uint256","name":"eta","type":"uint256","indexed":false}],"type":"event","name":"ProposalQueued","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldQuorumNumerator","type":"uint256","indexed":false},{"internalType":"uint256","name":"newQuorumNumerator","type":"uint256","indexed":false}],"type":"event","name":"QuorumNumeratorUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"oldTimelock","type":"address","indexed":false},{"internalType":"address","name":"newTimelock","type":"address","indexed":false}],"type":"event","name":"TimelockChange","anonymous":false},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":true},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"uint8","name":"support","type":"uint8","indexed":false},{"internalType":"uint256","name":"weight","type":"uint256","indexed":false},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"VoteCast","anonymous":false},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":true},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"uint8","name":"support","type":"uint8","indexed":false},{"internalType":"uint256","name":"weight","type":"uint256","indexed":false},{"internalType":"string","name":"reason","type":"string","indexed":false},{"internalType":"bytes","name":"params","type":"bytes","indexed":false}],"type":"event","name":"VoteCastWithParams","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CLOCK_MODE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"cancel"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"clock","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"execute"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getActions","outputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"voter","type":"address"}],"stateMutability":"view","type":"function","name":"getReceipt","outputs":[{"internalType":"struct IGovernorCompatibilityBravo.Receipt","name":"","type":"tuple","components":[{"internalType":"bool","name":"hasVoted","type":"bool"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint96","name":"votes","type":"uint96"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"stateMutability":"view","type":"function","name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposalEta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposalProposer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint256","name":"eta","type":"uint256"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"}]},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"queue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"queue"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"quorumNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relay"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timelock","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"contract IERC5805","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"newQuorumNumerator","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateQuorumNumerator"},{"inputs":[{"internalType":"contract TimelockController","name":"newTimelock","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateTimelock"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"CLOCK_MODE()":{"details":"Machine-readable description of the clock as specified in EIP-6372."},"COUNTING_MODE()":{"details":"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class."},"cancel(uint256)":{"details":"Cancel a proposal with GovernorBravo logic."},"castVote(uint256,uint8)":{"details":"See {IGovernor-castVote}."},"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":{"details":"See {IGovernor-castVoteBySig}."},"castVoteWithReason(uint256,uint8,string)":{"details":"See {IGovernor-castVoteWithReason}."},"castVoteWithReasonAndParams(uint256,uint8,string,bytes)":{"details":"See {IGovernor-castVoteWithReasonAndParams}."},"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":{"details":"See {IGovernor-castVoteWithReasonAndParamsBySig}."},"clock()":{"details":"Clock (as specified in EIP-6372) is set to match the token's clock. Fallback to block numbers if the token does not implement EIP-6372."},"eip712Domain()":{"details":"See {EIP-5267}. _Available since v4.9._"},"execute(address[],uint256[],bytes[],bytes32)":{"details":"See {IGovernor-execute}."},"execute(uint256)":{"details":"See {IGovernorCompatibilityBravo-execute}."},"getActions(uint256)":{"details":"See {IGovernorCompatibilityBravo-getActions}."},"getReceipt(uint256,address)":{"details":"See {IGovernorCompatibilityBravo-getReceipt}."},"getVotes(address,uint256)":{"details":"See {IGovernor-getVotes}."},"getVotesWithParams(address,uint256,bytes)":{"details":"See {IGovernor-getVotesWithParams}."},"hasVoted(uint256,address)":{"details":"See {IGovernor-hasVoted}."},"hashProposal(address[],uint256[],bytes[],bytes32)":{"details":"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts."},"name()":{"details":"See {IGovernor-name}."},"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"details":"See {IERC1155Receiver-onERC1155BatchReceived}."},"onERC1155Received(address,address,uint256,uint256,bytes)":{"details":"See {IERC1155Receiver-onERC1155Received}."},"onERC721Received(address,address,uint256,bytes)":{"details":"See {IERC721Receiver-onERC721Received}."},"proposalDeadline(uint256)":{"details":"See {IGovernor-proposalDeadline}."},"proposalEta(uint256)":{"details":"Public accessor to check the eta of a queued proposal"},"proposalProposer(uint256)":{"details":"Returns the account that created a given proposal."},"proposalSnapshot(uint256)":{"details":"See {IGovernor-proposalSnapshot}."},"proposalThreshold()":{"details":"Part of the Governor Bravo's interface: _\"The number of votes required in order for a voter to become a proposer\"_."},"proposals(uint256)":{"details":"See {IGovernorCompatibilityBravo-proposals}."},"propose(address[],uint256[],string[],bytes[],string)":{"details":"See {IGovernorCompatibilityBravo-propose}."},"queue(address[],uint256[],bytes[],bytes32)":{"details":"Function to queue a proposal to the timelock."},"queue(uint256)":{"details":"See {IGovernorCompatibilityBravo-queue}."},"quorum(uint256)":{"details":"Returns the quorum for a timepoint, in terms of number of votes: `supply * numerator / denominator`."},"quorumDenominator()":{"details":"Returns the quorum denominator. Defaults to 100, but may be overridden."},"quorumNumerator()":{"details":"Returns the current quorum numerator. See {quorumDenominator}."},"quorumNumerator(uint256)":{"details":"Returns the quorum numerator at a specific timepoint. See {quorumDenominator}."},"quorumVotes()":{"details":"See {IGovernorCompatibilityBravo-quorumVotes}."},"relay(address,uint256,bytes)":{"details":"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant."},"timelock()":{"details":"Public accessor to check the address of the timelock"},"updateQuorumNumerator(uint256)":{"details":"Changes the quorum numerator. Emits a {QuorumNumeratorUpdated} event. Requirements: - Must be called through a governance proposal. - New numerator must be smaller or equal to the denominator."},"updateTimelock(address)":{"details":"Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates must be proposed, scheduled, and executed through governance proposals. CAUTION: It is not recommended to change the timelock while there are other queued governance proposals."},"version()":{"details":"See {IGovernor-version}."},"votingDelay()":{"details":"Delay, between the proposal is created and the vote starts. The unit this duration is expressed in depends on the clock (see EIP-6372) this contract uses. This can be increased to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts."},"votingPeriod()":{"details":"Delay between the vote start and vote end. The unit this duration is expressed in depends on the clock (see EIP-6372) this contract uses. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay."}},"version":1},"userdoc":{"kind":"user","methods":{"COUNTING_MODE()":{"notice":"module:voting"},"votingDelay()":{"notice":"module:user-config"},"votingPeriod()":{"notice":"module:user-config"}},"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/contracts/mocks/docs/governance/MyGovernor.sol":"MyGovernor"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/Governor.sol":{"keccak256":"0x471e9425ad9a182c6abdc02bc408ca788b935c31c3bfa3e80b7cb556448ecb8f","urls":["bzz-raw://60fba870e97eb84b145fff2df01da8dad8e26e2d540c4f7ae22615e8d4511be4","dweb:/ipfs/QmbJegvJ16YAyiVP3J8oFun4zsoPfjj1KEJ6ZtWgJYffyw"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/IGovernor.sol":{"keccak256":"0x2bca164e61152f22bd4be7f444d40a46f7b13aa3b7b7fd6b45aa2d869e72f6d7","urls":["bzz-raw://5ed8cf61b5ec618f839ca35fd2d614aa83f252930dcc1c9fdf6259d6e381644d","dweb:/ipfs/QmSjHjCsr9aSudtFJWZ1Pj76FVzUEEpwmFBGnxoRftVN7g"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/TimelockController.sol":{"keccak256":"0xda2a70247fda81633d9392f567a401c4772837de6b0543c1c561ca632a2fe7f4","urls":["bzz-raw://3fd567456650ac72d05f3404d18f8aef0380a4f67af13b22511420fe62356578","dweb:/ipfs/QmaHEYxbViAxdemxghGfstYQFXWswyWtBaPKPwCEAnv3xM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/compatibility/GovernorCompatibilityBravo.sol":{"keccak256":"0xdc82b444b0fb34dbd4840ed80f969260e7eb85e24d2a2a5770c8283e19d21f82","urls":["bzz-raw://5d981c733f7e04e9babca0036fafd5b403d22fa69d6b40ef08c679e29d6df5b8","dweb:/ipfs/QmZQmnTpBUHGPykQaRN7qZQpRmeditNqTXTDfzXzLUYcXE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol":{"keccak256":"0xcbe38816645439e8ad731447e9fbe786effc3f870f51e7f025b7ca7c1a703e95","urls":["bzz-raw://a9bffb0e9305450a614f0425a0783fa986c9d15d42f9f898a37be09922ded8da","dweb:/ipfs/QmRjZ8wp7RDW7dXGuXtFE5kg4oHq8KRoM4eqBMRN6rieUi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol":{"keccak256":"0xb125bceaafda4f181bee623c3a665ba7f5c928258eb67c77418ae903246c74ac","urls":["bzz-raw://ede896014ea236303e7850c7aa540d18614a553347f74e9a5a502c8b0bcca2cf","dweb:/ipfs/QmTKUfsw4F1oNvN15eYe5HTVUA54WrD5qE6SQ5MvHGbVcc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol":{"keccak256":"0x0272a2c5aff31e5f2398369598c2694eee19986f3b1c43a578b4252555ba2a08","urls":["bzz-raw://df8bca39a5ba89bfd8becbc09dc5f66dc2bde7c0a3722d6c7452f1395609fac9","dweb:/ipfs/QmXqwvZWPLTAS7LrPJS7LBAywc3JWoLGhah1eSM4JvqzFW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol":{"keccak256":"0x806f81d08cf596c55f544d1d7b09fb2636e9fb7f2625020a301b288379635252","urls":["bzz-raw://6ae93259b78896d323ebbf520e8c59384c7a48a9f279272bd7ff40b4966b0aa3","dweb:/ipfs/QmSJQVjYnoFYM4Go8URnzjfkYkPwBTrbiyQRwUTQAApsBK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/extensions/IGovernorTimelock.sol":{"keccak256":"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974","urls":["bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614","dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":{"keccak256":"0x1618ddebe73377660f6da71afcba35d5ac4c4600918b3a381d9c6f37eba613eb","urls":["bzz-raw://666c8d7c62478b55e082f1835275b7acfc1595491998df6d67183ff2c70eab96","dweb:/ipfs/QmVXmnXfxNaLhoX283dqyKJ8DJbF5thUd9sMuRoFpNMwr7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a","urls":["bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb","dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f","urls":["bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc","dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol":{"keccak256":"0xfc12b717f6a2cd0d67adc8700097d4464d37f18ce933d4fc9c948ab6aec35e80","urls":["bzz-raw://82386e69ebe902a2edfd4f8a5ecbeaeb2e00f6cc6481a973729e974373fb492e","dweb:/ipfs/QmSXg4wBMBd83mQvkekT1GsiRX2Qyv5gvrqzv5qJx2M7Kc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol":{"keccak256":"0xcaea9aeda3816ba872358c828f4f01455c22ae48ced49c4c7d72bd74176c09b9","urls":["bzz-raw://16ff22d8df5aee94510ee43d361b6147caef164941a684cedcb75be44f351fe6","dweb:/ipfs/QmaCCwMdHVdPApuEJHLZapSJyA7mp5dAugpma3VUzWGd8E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol":{"keccak256":"0x0a33461278a70f147e7102a4eb79be20db6f16805a84564ac4428b15ca76fb2b","urls":["bzz-raw://d546ee37be48011e8713f6e641f4f6270250477a6bcc41e1d3652a301909378c","dweb:/ipfs/QmXN3RB3WJEvxrX76pC9Vb15GYxka9k4FdctFaJd4kP7CQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Checkpoints.sol":{"keccak256":"0x3f12d280f57c96b4449de1a4e07f5ca737cac310489b7f269ce37e8f1b24fd79","urls":["bzz-raw://8990f3cc807ac6be85fdd6935b16135b315b5ab5b8951b1f5a188596f7efd2e7","dweb:/ipfs/QmdQmbWKpaAWpvLBTQfFWGKjm8xjncwEcNyRQ5M61sFaLE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256","urls":["bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516","dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58","urls":["bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2","dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd","urls":["bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a","dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad","urls":["bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278","dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol":{"keccak256":"0xb5fbb623dec53bb9b6c1b738b4ab6540a04ac5dc2ac94d95fa3ebfd22898559c","urls":["bzz-raw://4a6e7f26c0c688a987c19c8b0997c7e47c33f7717b6293a487afe8429d95b8e7","dweb:/ipfs/QmVrmXcQ7KLM5fw4PWeJ8j4nnmfHkjpFPariMMh5UvsEVD"],"license":"MIT"}},"version":1},"id":115}