@superfluid-finance/sdk-core 0.6.14-dev.72d0cf9.0 → 0.6.14-dev.80099ac.0

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 (336) hide show
  1. package/dist/index.umd.js +820 -438
  2. package/dist/main/Framework.d.ts.map +1 -1
  3. package/dist/main/Framework.js +2 -4
  4. package/dist/main/Framework.js.map +1 -1
  5. package/dist/main/events.d.ts +31 -1
  6. package/dist/main/events.d.ts.map +1 -1
  7. package/dist/main/events.js.map +1 -1
  8. package/dist/main/mapGetAllEventsQueryEvents.d.ts.map +1 -1
  9. package/dist/main/mapGetAllEventsQueryEvents.js +110 -0
  10. package/dist/main/mapGetAllEventsQueryEvents.js.map +1 -1
  11. package/dist/main/subgraph/events/events.generated.d.ts +90 -0
  12. package/dist/main/subgraph/events/events.generated.d.ts.map +1 -1
  13. package/dist/main/subgraph/events/events.generated.js +1 -1
  14. package/dist/main/subgraph/events/events.generated.js.map +1 -1
  15. package/dist/main/subgraph/queries/getAllEvents.generated.d.ts +90 -0
  16. package/dist/main/subgraph/queries/getAllEvents.generated.d.ts.map +1 -1
  17. package/dist/main/subgraph/queries/getAllEvents.generated.js +1 -1
  18. package/dist/main/subgraph/queries/getAllEvents.generated.js.map +1 -1
  19. package/dist/main/subgraph/schema.generated.d.ts +4195 -1391
  20. package/dist/main/subgraph/schema.generated.d.ts.map +1 -1
  21. package/dist/main/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts +1 -17
  22. package/dist/main/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts.map +1 -1
  23. package/dist/main/typechain-types/contracts/agreements/gdav1/SuperfluidPoolPlaceholder.d.ts +78 -0
  24. package/dist/main/typechain-types/contracts/agreements/gdav1/SuperfluidPoolPlaceholder.d.ts.map +1 -0
  25. package/dist/main/typechain-types/contracts/agreements/gdav1/SuperfluidPoolPlaceholder.js +3 -0
  26. package/dist/main/typechain-types/contracts/agreements/gdav1/SuperfluidPoolPlaceholder.js.map +1 -0
  27. package/dist/main/typechain-types/contracts/agreements/gdav1/index.d.ts +1 -0
  28. package/dist/main/typechain-types/contracts/agreements/gdav1/index.d.ts.map +1 -1
  29. package/dist/main/typechain-types/contracts/utils/SuperfluidFrameworkDeployer.d.ts +1 -9
  30. package/dist/main/typechain-types/contracts/utils/SuperfluidFrameworkDeployer.d.ts.map +1 -1
  31. package/dist/main/typechain-types/contracts/utils/SuperfluidFrameworkDeploymentSteps.d.ts +1 -9
  32. package/dist/main/typechain-types/contracts/utils/SuperfluidFrameworkDeploymentSteps.d.ts.map +1 -1
  33. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +8 -14
  34. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts.map +1 -1
  35. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +11 -19
  36. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js.map +1 -1
  37. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts +7 -3
  38. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts.map +1 -1
  39. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js +10 -5
  40. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js.map +1 -1
  41. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.d.ts +7 -3
  42. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.d.ts.map +1 -1
  43. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.js +10 -5
  44. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.js.map +1 -1
  45. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPoolPlaceholder__factory.d.ts +69 -0
  46. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPoolPlaceholder__factory.d.ts.map +1 -0
  47. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPoolPlaceholder__factory.js +104 -0
  48. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPoolPlaceholder__factory.js.map +1 -0
  49. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +1 -1
  50. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +1 -1
  51. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/index.d.ts +1 -0
  52. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/index.d.ts.map +1 -1
  53. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/index.js +3 -1
  54. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/index.js.map +1 -1
  55. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.d.ts +11 -3
  56. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.d.ts.map +1 -1
  57. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.js +15 -5
  58. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.js.map +1 -1
  59. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.d.ts +11 -3
  60. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.d.ts.map +1 -1
  61. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.js +15 -5
  62. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.js.map +1 -1
  63. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.d.ts +11 -3
  64. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.d.ts.map +1 -1
  65. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.js +15 -5
  66. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.js.map +1 -1
  67. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.d.ts +11 -3
  68. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.d.ts.map +1 -1
  69. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.js +15 -5
  70. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.js.map +1 -1
  71. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.d.ts +11 -3
  72. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.d.ts.map +1 -1
  73. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.js +15 -5
  74. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.js.map +1 -1
  75. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.d.ts +11 -3
  76. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.d.ts.map +1 -1
  77. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.js +15 -5
  78. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.js.map +1 -1
  79. package/dist/main/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.d.ts +1 -1
  80. package/dist/main/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.js +1 -1
  81. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.d.ts +1 -1
  82. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.js +1 -1
  83. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.d.ts +7 -3
  84. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.d.ts.map +1 -1
  85. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.js +10 -5
  86. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.js.map +1 -1
  87. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.d.ts +7 -3
  88. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.d.ts.map +1 -1
  89. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.js +10 -5
  90. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.js.map +1 -1
  91. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.d.ts +7 -3
  92. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.d.ts.map +1 -1
  93. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.js +10 -5
  94. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.js.map +1 -1
  95. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.d.ts +7 -3
  96. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.d.ts.map +1 -1
  97. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.js +10 -5
  98. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.js.map +1 -1
  99. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.d.ts +7 -3
  100. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.d.ts.map +1 -1
  101. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.js +10 -5
  102. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.js.map +1 -1
  103. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.d.ts +7 -3
  104. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.d.ts.map +1 -1
  105. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.js +10 -5
  106. package/dist/main/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.js.map +1 -1
  107. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts +1 -1
  108. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js +1 -1
  109. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  110. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.js +1 -1
  111. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  112. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.js +1 -1
  113. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.d.ts +1 -1
  114. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.js +1 -1
  115. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  116. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  117. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  118. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  119. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  120. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  121. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  122. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  123. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.d.ts +1 -1
  124. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.js +1 -1
  125. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  126. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  127. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  128. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  129. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDAMock__factory.d.ts +1 -1
  130. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDAMock__factory.js +1 -1
  131. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDASuperAppMock__factory.d.ts +1 -1
  132. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDASuperAppMock__factory.js +1 -1
  133. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.d.ts +1 -1
  134. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.js +1 -1
  135. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.d.ts +1 -1
  136. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.js +1 -1
  137. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts +1 -1
  138. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js +1 -1
  139. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  140. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  141. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.d.ts +1 -1
  142. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.js +1 -1
  143. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.d.ts +11 -3
  144. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.d.ts.map +1 -1
  145. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.js +15 -5
  146. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.js.map +1 -1
  147. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.d.ts +11 -3
  148. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.d.ts.map +1 -1
  149. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.js +15 -5
  150. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.js.map +1 -1
  151. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  152. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  153. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  154. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  155. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts +6 -36
  156. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts.map +1 -1
  157. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js +11 -50
  158. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js.map +1 -1
  159. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts +6 -36
  160. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts.map +1 -1
  161. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js +11 -50
  162. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js.map +1 -1
  163. package/dist/main/typechain-types/index.d.ts +2 -0
  164. package/dist/main/typechain-types/index.d.ts.map +1 -1
  165. package/dist/main/typechain-types/index.js +6 -4
  166. package/dist/main/typechain-types/index.js.map +1 -1
  167. package/dist/main/types.d.ts +2 -0
  168. package/dist/main/types.d.ts.map +1 -1
  169. package/dist/module/Framework.d.ts.map +1 -1
  170. package/dist/module/Framework.js +2 -4
  171. package/dist/module/Framework.js.map +1 -1
  172. package/dist/module/events.d.ts +31 -1
  173. package/dist/module/events.d.ts.map +1 -1
  174. package/dist/module/events.js.map +1 -1
  175. package/dist/module/mapGetAllEventsQueryEvents.d.ts.map +1 -1
  176. package/dist/module/mapGetAllEventsQueryEvents.js +110 -0
  177. package/dist/module/mapGetAllEventsQueryEvents.js.map +1 -1
  178. package/dist/module/subgraph/events/events.generated.d.ts +90 -0
  179. package/dist/module/subgraph/events/events.generated.d.ts.map +1 -1
  180. package/dist/module/subgraph/events/events.generated.js +1 -1
  181. package/dist/module/subgraph/events/events.generated.js.map +1 -1
  182. package/dist/module/subgraph/queries/getAllEvents.generated.d.ts +90 -0
  183. package/dist/module/subgraph/queries/getAllEvents.generated.d.ts.map +1 -1
  184. package/dist/module/subgraph/queries/getAllEvents.generated.js +1 -1
  185. package/dist/module/subgraph/queries/getAllEvents.generated.js.map +1 -1
  186. package/dist/module/subgraph/schema.generated.d.ts +4195 -1391
  187. package/dist/module/subgraph/schema.generated.d.ts.map +1 -1
  188. package/dist/module/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts +1 -17
  189. package/dist/module/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts.map +1 -1
  190. package/dist/module/typechain-types/contracts/agreements/gdav1/SuperfluidPoolPlaceholder.d.ts +78 -0
  191. package/dist/module/typechain-types/contracts/agreements/gdav1/SuperfluidPoolPlaceholder.d.ts.map +1 -0
  192. package/dist/module/typechain-types/contracts/agreements/gdav1/SuperfluidPoolPlaceholder.js +2 -0
  193. package/dist/module/typechain-types/contracts/agreements/gdav1/SuperfluidPoolPlaceholder.js.map +1 -0
  194. package/dist/module/typechain-types/contracts/agreements/gdav1/index.d.ts +1 -0
  195. package/dist/module/typechain-types/contracts/agreements/gdav1/index.d.ts.map +1 -1
  196. package/dist/module/typechain-types/contracts/utils/SuperfluidFrameworkDeployer.d.ts +1 -9
  197. package/dist/module/typechain-types/contracts/utils/SuperfluidFrameworkDeployer.d.ts.map +1 -1
  198. package/dist/module/typechain-types/contracts/utils/SuperfluidFrameworkDeploymentSteps.d.ts +1 -9
  199. package/dist/module/typechain-types/contracts/utils/SuperfluidFrameworkDeploymentSteps.d.ts.map +1 -1
  200. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +8 -14
  201. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts.map +1 -1
  202. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +11 -19
  203. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js.map +1 -1
  204. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts +7 -3
  205. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts.map +1 -1
  206. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js +10 -5
  207. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js.map +1 -1
  208. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.d.ts +7 -3
  209. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.d.ts.map +1 -1
  210. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.js +10 -5
  211. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolMemberNFT__factory.js.map +1 -1
  212. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPoolPlaceholder__factory.d.ts +69 -0
  213. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPoolPlaceholder__factory.d.ts.map +1 -0
  214. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPoolPlaceholder__factory.js +100 -0
  215. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPoolPlaceholder__factory.js.map +1 -0
  216. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +1 -1
  217. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +1 -1
  218. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/index.d.ts +1 -0
  219. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/index.d.ts.map +1 -1
  220. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/index.js +1 -0
  221. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/index.js.map +1 -1
  222. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.d.ts +11 -3
  223. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.d.ts.map +1 -1
  224. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.js +15 -5
  225. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.js.map +1 -1
  226. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.d.ts +11 -3
  227. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.d.ts.map +1 -1
  228. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.js +15 -5
  229. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.js.map +1 -1
  230. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.d.ts +11 -3
  231. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.d.ts.map +1 -1
  232. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.js +15 -5
  233. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/FlowNFTBaseMock__factory.js.map +1 -1
  234. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.d.ts +11 -3
  235. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.d.ts.map +1 -1
  236. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.js +15 -5
  237. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.js.map +1 -1
  238. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.d.ts +11 -3
  239. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.d.ts.map +1 -1
  240. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.js +15 -5
  241. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.js.map +1 -1
  242. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.d.ts +11 -3
  243. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.d.ts.map +1 -1
  244. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.js +15 -5
  245. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.js.map +1 -1
  246. package/dist/module/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.d.ts +1 -1
  247. package/dist/module/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.js +1 -1
  248. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.d.ts +1 -1
  249. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.js +1 -1
  250. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.d.ts +7 -3
  251. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.d.ts.map +1 -1
  252. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.js +10 -5
  253. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolAdminNFTMock__factory.js.map +1 -1
  254. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.d.ts +7 -3
  255. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.d.ts.map +1 -1
  256. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.js +10 -5
  257. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolMemberNFTMock__factory.js.map +1 -1
  258. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.d.ts +7 -3
  259. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.d.ts.map +1 -1
  260. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.js +10 -5
  261. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTMock.sol/PoolNFTBaseMock__factory.js.map +1 -1
  262. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.d.ts +7 -3
  263. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.d.ts.map +1 -1
  264. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.js +10 -5
  265. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolAdminNFTStorageLayoutMock__factory.js.map +1 -1
  266. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.d.ts +7 -3
  267. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.d.ts.map +1 -1
  268. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.js +10 -5
  269. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolMemberNFTStorageLayoutMock__factory.js.map +1 -1
  270. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.d.ts +7 -3
  271. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.d.ts.map +1 -1
  272. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.js +10 -5
  273. package/dist/module/typechain-types/factories/contracts/mocks/PoolNFTUpgradabilityMock.sol/PoolNFTBaseStorageLayoutMock__factory.js.map +1 -1
  274. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts +1 -1
  275. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js +1 -1
  276. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  277. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.js +1 -1
  278. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  279. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.js +1 -1
  280. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.d.ts +1 -1
  281. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.js +1 -1
  282. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  283. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  284. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  285. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  286. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  287. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  288. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  289. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  290. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.d.ts +1 -1
  291. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.js +1 -1
  292. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  293. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  294. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  295. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  296. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDAMock__factory.d.ts +1 -1
  297. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDAMock__factory.js +1 -1
  298. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDASuperAppMock__factory.d.ts +1 -1
  299. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryGDASuperAppMock__factory.js +1 -1
  300. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.d.ts +1 -1
  301. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.js +1 -1
  302. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.d.ts +1 -1
  303. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.js +1 -1
  304. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts +1 -1
  305. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js +1 -1
  306. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  307. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  308. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.d.ts +1 -1
  309. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.js +1 -1
  310. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.d.ts +11 -3
  311. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.d.ts.map +1 -1
  312. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.js +15 -5
  313. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.js.map +1 -1
  314. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.d.ts +11 -3
  315. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.d.ts.map +1 -1
  316. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.js +15 -5
  317. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.js.map +1 -1
  318. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  319. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  320. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  321. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  322. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts +6 -36
  323. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts.map +1 -1
  324. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js +11 -50
  325. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js.map +1 -1
  326. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts +6 -36
  327. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts.map +1 -1
  328. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js +11 -50
  329. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js.map +1 -1
  330. package/dist/module/typechain-types/index.d.ts +2 -0
  331. package/dist/module/typechain-types/index.d.ts.map +1 -1
  332. package/dist/module/typechain-types/index.js +1 -0
  333. package/dist/module/typechain-types/index.js.map +1 -1
  334. package/dist/module/types.d.ts +2 -0
  335. package/dist/module/types.d.ts.map +1 -1
  336. package/package.json +4 -4
@@ -12,7 +12,7 @@ export declare class SuperTokenLibraryIDASuperAppMock__factory extends ContractF
12
12
  }): TransactionRequest;
13
13
  attach(address: string): SuperTokenLibraryIDASuperAppMock;
14
14
  connect(signer: Signer): SuperTokenLibraryIDASuperAppMock__factory;
15
- static readonly bytecode = "0x60a06040523480156200001157600080fd5b5060405162003079380380620030798339810160408190526200003491620000b5565b6001600160a01b03811660808190526040805163bd1c448b60e01b81526435000000016004820181905260248201929092526000604482015290919063bd1c448b90606401600060405180830381600087803b1580156200009457600080fd5b505af1158015620000a9573d6000803e3d6000fd5b505050505050620000e7565b600060208284031215620000c857600080fd5b81516001600160a01b0381168114620000e057600080fd5b9392505050565b608051612f76620001036000396000610c260152612f766000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806353c11f99116100f95780639cdf4d6711610097578063d39363c011610071578063d39363c01461044e578063d86ed3e5146101e9578063eadc455114610461578063fe134e9f1461047457600080fd5b80639cdf4d67146103e4578063c9869ed0146103f7578063c9b8a2f61461040a57600080fd5b80636ddb6798116100d35780636ddb6798146103985780637489c503146103ab57806378bb14ea146103be578063884d1f40146103d157600080fd5b806353c11f991461035f5780635f9e7d77146103725780636436e3d31461038557600080fd5b806330d9c915116101665780634277b78f116101405780634277b78f146102e25780635002bb09146102f557806350c8da8f146103085780635158472c1461034c57600080fd5b806330d9c9151461029a5780633939709e146102ad5780634018cb64146102c057600080fd5b8063068f3d19146101ae57806306f75d2e146101c357806316dfe927146101d6578063230dbd29146101e957806325a108af146102125780632a722c061461026a575b600080fd5b6101c16101bc366004611fd5565b610487565b005b6101c16101d136600461205c565b6104a5565b6101c16101e43660046120d0565b6104c1565b6101fc6101f7366004612179565b6104db565b6040516102099190612293565b60405180910390f35b6102256102203660046122a6565b61052b565b604080516001600160a01b03909616865263ffffffff9094166020860152911515928401929092526001600160801b039091166060830152608082015260a001610209565b61027d6102783660046122d2565b610557565b604080519283526001600160801b03909116602083015201610209565b6101fc6102a8366004612323565b61057c565b6101c16102bb3660046123d6565b6105e4565b6102d36102ce366004612417565b6105f9565b60405161020993929190612494565b6101c16102f0366004612531565b61061d565b6101c1610303366004612584565b610633565b61031b6103163660046125e0565b610648565b6040805194151585526001600160801b03938416602086015291831691840191909152166060820152608001610209565b6101c161035a366004611fd5565b610672565b6101fc61036d366004612179565b610688565b6101fc610380366004612323565b6106ed565b6101c161039336600461205c565b610754565b6101c16103a63660046125e0565b610769565b6101c16103b936600461262b565b61077d565b6101c16103cc36600461266c565b610791565b6101fc6103df366004612323565b6107a5565b6101c16103f23660046126ac565b610808565b6101c1610405366004612584565b61081d565b61041d610418366004612584565b610832565b6040516102099493929190931515845291151560208401526001600160801b03166040830152606082015260800190565b6101c161045c3660046125e0565b61085e565b6101c161046f3660046126fd565b610872565b6101c161048236600461272b565b61088a565b61049d6001600160a01b0386168585858561089f565b505050505050565b6104ba6001600160a01b0385168484846109cd565b5050505050565b6104d56001600160a01b0384168383610af8565b50505050565b606061051d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610c2092505050565b9a9950505050505050505050565b6000808080806105446001600160a01b03881687610f59565b939b929a50909850965090945092505050565b60008061056f6001600160a01b038716868686610ff5565b9150915094509492505050565b60405162461bcd60e51b815260206004820152602f60248201527f556e737570706f727465642063616c6c6261636b202d204265666f726520416760448201526e1c99595b595b9d0810dc99585d1959608a1b60648201526060906084015b60405180910390fd5b6104ba6001600160a01b03851684848461109a565b606080806106106001600160a01b03861685611125565b9250925092509250925092565b61049d6001600160a01b038616858585856111be565b6104ba6001600160a01b03851684848461124b565b60008080806106616001600160a01b0388168787611275565b935093509350935093509350935093565b61049d6001600160a01b0386168585858561131b565b60405162461bcd60e51b815260206004820152603160248201527f556e737570706f727465642063616c6c6261636b202d2041667465722041677260448201527019595b595b9d0815195c9b5a5b985d1959607a1b60648201526060906084016105db565b60405162461bcd60e51b815260206004820152603360248201527f556e737570706f727465642063616c6c6261636b202d20204265666f7265204160448201527219dc99595b595b9d0815195c9b5a5b985d1959606a1b60648201526060906084016105db565b6104ba6001600160a01b038516848484611369565b6104d56001600160a01b03841683836113b6565b6104d56001600160a01b03841683836113dd565b6104d56001600160a01b03841683836113fc565b60405162461bcd60e51b815260206004820152602f60248201527f556e737570706f727465642063616c6c6261636b202d204265666f726520416760448201526e1c99595b595b9d081d5c19185d1959608a1b60648201526060906084016105db565b6104ba6001600160a01b03851684848461141b565b6104ba6001600160a01b03851684848461143c565b600080808061084c6001600160a01b03891688888861145d565b929b919a509850909650945050505050565b6104d56001600160a01b038416838361150c565b6108856001600160a01b0383168261152b565b505050565b6104ba6001600160a01b03851684848461154f565b60008060006108ad886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663acafa1b88c8c8c8c60006001600160401b038111156108ed576108ed611ee9565b6040519080825280601f01601f191660200182016040528015610917576020820181803683370190505b5060405160240161092c95949392919061277e565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526109779392509089906004016127c9565b6000604051808303816000875af1158015610996573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109be919081019061284e565b50600198975050505050505050565b60008060006109db876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316636041ae968b8b8b60006001600160401b03811115610a1a57610a1a611ee9565b6040519080825280601f01601f191660200182016040528015610a44576020820181803683370190505b50604051602401610a589493929190612882565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610aa39392509089906004016127c9565b6000604051808303816000875af1158015610ac2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aea919081019061284e565b506001979650505050505050565b6000806000610b06866115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663d787840a8a8a60006001600160401b03811115610b4457610b44611ee9565b6040519080825280601f01601f191660200182016040528015610b6e576020820181803683370190505b50604051602401610b81939291906128ba565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610bcc9392509089906004016127c9565b6000604051808303816000875af1158015610beb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c13919081019061284e565b5060019695505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633f6c923a846040518263ffffffff1660e01b8152600401610c709190612293565b600060405180830381865afa158015610c8d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cb59190810190612923565b60a001519050600080600080600085806020019051810190610cd79190612a29565b93985091965094509250905060ff8516610d0c57610cff6001600160a01b038a16858a6117a1565b9650505050505050610f53565b60001960ff861601610d2c57610cff6001600160a01b038a16858a6117a1565b60011960ff861601610d4d57610cff6001600160a01b038a1685838b6118c7565b60021960ff861601610d6e57610cff6001600160a01b038a1685838b6118c7565b60031960ff861601610d9857610cff6001600160a01b038a16856001600160801b0384168b6119f0565b60041960ff861601610dc257610cff6001600160a01b038a16856001600160801b0384168b6119f0565b60051960ff861601610de357610cff6001600160a01b038a1684868b611a7b565b60061960ff861601610e0457610cff6001600160a01b038a1684868b611a7b565b60071960ff861601610e2557610cff6001600160a01b038a1684868b611b06565b60081960ff861601610e4657610cff6001600160a01b038a1684868b611b06565b60091960ff861601610e6857610cff6001600160a01b038a168584848c611b53565b600a1960ff861601610e8a57610cff6001600160a01b038a168584848c611b53565b600b1960ff861601610eac57610cff6001600160a01b038a168486858c611c7f565b600c1960ff861601610ece57610cff6001600160a01b038a168486858c611c7f565b600d1960ff861601610ef057610cff6001600160a01b038a168486858c611d0c565b600e1960ff861601610f1257610cff6001600160a01b038a168486858c611d0c565b60405162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840cceadcc6e8d2dedc40d2dcc8caf60531b60448201526064016105db565b92915050565b600080600080600080610f6b88611d5a565b60405163cd7245c560e01b81526001600160a01b038b81166004830152602482018b9052919350908316915063cd7245c59060440160a060405180830381865afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190612aab565b939c929b5090995097509095509350505050565b600080600061100387611d5a565b604051632266eabb60e21b81526001600160a01b038a81166004830152898116602483015263ffffffff8916604483015260648201889052919350908316915063899baaec906084016040805180830381865afa158015611068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108c9190612b12565b925092505094509492505050565b60008060006110a8876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316637fbc76398b8b8b60006001600160401b038111156110e7576110e7611ee9565b6040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b50604051602401610a589493929190612b37565b6060806060600061113586611d5a565b6040516316db59b760e31b81526001600160a01b0389811660048301528881166024830152919350908316915063b6dacdb890604401600060405180830381865afa158015611188573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111b09190810190612c61565b935093509350509250925092565b60008060006111cc886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663232d2b588c8c8c8c60006001600160401b0381111561120c5761120c611ee9565b6040519080825280601f01601f191660200182016040528015611236576020820181803683370190505b5060405160240161092c959493929190612d3f565b6040805160008082526020820190925261126c90869086908690869061131b565b95945050505050565b600080600080600061128688611d5a565b6040516323fc23f360e01b81526001600160a01b038b811660048301528a8116602483015263ffffffff8a16604483015291935090831691506323fc23f390606401608060405180830381865afa1580156112e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113099190612d86565b94509450945094505093509350935093565b6000806000611329886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316632e5e74c68c8c8c8c60006001600160401b038111156108ed576108ed611ee9565b6000806000611377876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663acf4a6c28b8b8b60006001600160401b03811115610a1a57610a1a611ee9565b604080516000808252602082019092526113d590859085908590611369565b949350505050565b604080516000808252602082019092526113d59085908590859061154f565b604080516000808252602082019092526113d59085908590859061109a565b6040805160008082526020820190925261126c9086908690869086906111be565b6040805160008082526020820190925261126c90869086908690869061089f565b600080600080600061146e89611d5a565b604051635b53405160e01b81526001600160a01b038c811660048301528b8116602483015263ffffffff8b16604483015289811660648301529193509083169150635b53405190608401608060405180830381865afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190612dd7565b929c919b50995090975095505050505050565b604080516000808252602082019092526113d5908590859085906109cd565b604080516000808252602082019092526115489084908490610af8565b9392505050565b600080600061155d876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663b96731c28b8b8b60006001600160401b0381111561159c5761159c611ee9565b6040519080825280601f01601f1916602001820160405280156115c6576020820181803683370190505b50604051602401610a589493929190612e24565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb546001600160a01b038116611770576001600160a01b03821661169f57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015611678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169c9190612e57565b91505b604051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a67460048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015611703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117279190612e57565b9050817f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea83755807fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb555b6001600160a01b03821661178657611786612e74565b6001600160a01b03811661179c5761179c612e74565b915091565b60606000806117af866115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663d787840a8a8a60006001600160401b038111156117ed576117ed611ee9565b6040519080825280601f01601f191660200182016040528015611817576020820181803683370190505b5060405160240161182a939291906128ba565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611875939250908990600401612e8a565b6000604051808303816000875af1158015611894573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118bc9190810190612edd565b509695505050505050565b60606000806118d5876115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316637fbc76398b8b8b60006001600160401b0381111561191457611914611ee9565b6040519080825280601f01601f19166020018201604052801561193e576020820181803683370190505b506040516024016119529493929190612b37565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b031916825261199d939250908990600401612e8a565b6000604051808303816000875af11580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119e49190810190612edd565b50979650505050505050565b60606000806119fe876115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663b96731c28b8b8b60006001600160401b03811115611a3d57611a3d611ee9565b6040519080825280601f01601f191660200182016040528015611a67576020820181803683370190505b506040516024016119529493929190612e24565b6060600080611a89876115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663acf4a6c28b8b8b60006001600160401b03811115611ac857611ac8611ee9565b6040519080825280601f01601f191660200182016040528015611af2576020820181803683370190505b506040516024016119529493929190612882565b6060600080611b14876115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316636041ae968b8b8b60006001600160401b03811115611ac857611ac8611ee9565b6060600080611b61886115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663232d2b588c8c8c8c60006001600160401b03811115611ba157611ba1611ee9565b6040519080825280601f01601f191660200182016040528015611bcb576020820181803683370190505b50604051602401611be0959493929190612d3f565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611c2b939250908990600401612e8a565b6000604051808303816000875af1158015611c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c729190810190612edd565b5098975050505050505050565b6060600080611c8d886115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316632e5e74c68c8c8c8c60006001600160401b03811115611ccd57611ccd611ee9565b6040519080825280601f01601f191660200182016040528015611cf7576020820181803683370190505b50604051602401611be095949392919061277e565b6060600080611d1a886115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663acafa1b88c8c8c8c60006001600160401b03811115611ccd57611ccd611ee9565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb546001600160a01b038116611770576001600160a01b038216611e1f57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1c9190612e57565b91505b604051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a67460048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015611e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea79190612e57565b90506001600160a01b03821661178657611786612e74565b6001600160a01b0381168114611ed457600080fd5b50565b63ffffffff81168114611ed457600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715611f2257611f22611ee9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611f5057611f50611ee9565b604052919050565b60006001600160401b03821115611f7157611f71611ee9565b50601f01601f191660200190565b600082601f830112611f9057600080fd5b8135611fa3611f9e82611f58565b611f28565b818152846020838601011115611fb857600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611fed57600080fd5b8535611ff881611ebf565b9450602086013561200881611ebf565b9350604086013561201881611ed7565b9250606086013561202881611ebf565b915060808601356001600160401b0381111561204357600080fd5b61204f88828901611f7f565b9150509295509295909350565b6000806000806080858703121561207257600080fd5b843561207d81611ebf565b9350602085013561208d81611ebf565b9250604085013561209d81611ed7565b915060608501356001600160401b038111156120b857600080fd5b6120c487828801611f7f565b91505092959194509250565b6000806000606084860312156120e557600080fd5b83356120f081611ebf565b9250602084013561210081611ed7565b915060408401356001600160401b0381111561211b57600080fd5b61212786828701611f7f565b9150509250925092565b60008083601f84011261214357600080fd5b5081356001600160401b0381111561215a57600080fd5b60208301915083602082850101111561217257600080fd5b9250929050565b600080600080600080600080600060c08a8c03121561219757600080fd5b89356121a281611ebf565b985060208a01356121b281611ebf565b975060408a0135965060608a01356001600160401b03808211156121d557600080fd5b6121e18d838e01612131565b909850965060808c01359150808211156121fa57600080fd5b6122068d838e01612131565b909650945060a08c013591508082111561221f57600080fd5b5061222c8c828d01612131565b915080935050809150509295985092959850929598565b60005b8381101561225e578181015183820152602001612246565b50506000910152565b6000815180845261227f816020860160208601612243565b601f01601f19169290920160200192915050565b6020815260006115486020830184612267565b600080604083850312156122b957600080fd5b82356122c481611ebf565b946020939093013593505050565b600080600080608085870312156122e857600080fd5b84356122f381611ebf565b9350602085013561230381611ebf565b9250604085013561231381611ed7565b9396929550929360600135925050565b600080600080600080600060a0888a03121561233e57600080fd5b873561234981611ebf565b9650602088013561235981611ebf565b95506040880135945060608801356001600160401b038082111561237c57600080fd5b6123888b838c01612131565b909650945060808a01359150808211156123a157600080fd5b506123ae8a828b01612131565b989b979a50959850939692959293505050565b6001600160801b0381168114611ed457600080fd5b600080600080608085870312156123ec57600080fd5b84356123f781611ebf565b9350602085013561240781611ed7565b9250604085013561209d816123c1565b6000806040838503121561242a57600080fd5b823561243581611ebf565b9150602083013561244581611ebf565b809150509250929050565b600081518084526020808501945080840160005b838110156124895781516001600160801b031687529582019590820190600101612464565b509495945050505050565b606080825284519082018190526000906020906080840190828801845b828110156124d65781516001600160a01b0316845292840192908401906001016124b1565b5050508381038285015285518082528683019183019060005b8181101561251157835163ffffffff16835292840192918401916001016124ef565b505084810360408601526125258187612450565b98975050505050505050565b600080600080600060a0868803121561254957600080fd5b853561255481611ebf565b9450602086013561256481611ed7565b9350604086013561257481611ebf565b92506060860135612028816123c1565b6000806000806080858703121561259a57600080fd5b84356125a581611ebf565b935060208501356125b581611ebf565b925060408501356125c581611ed7565b915060608501356125d581611ebf565b939692955090935050565b6000806000606084860312156125f557600080fd5b833561260081611ebf565b9250602084013561261081611ebf565b9150604084013561262081611ed7565b809150509250925092565b60008060006060848603121561264057600080fd5b833561264b81611ebf565b9250602084013561265b81611ed7565b929592945050506040919091013590565b60008060006060848603121561268157600080fd5b833561268c81611ebf565b9250602084013561269c81611ed7565b91506040840135612620816123c1565b600080600080608085870312156126c257600080fd5b84356126cd81611ebf565b935060208501356126dd81611ed7565b925060408501356126ed81611ebf565b915060608501356125d5816123c1565b6000806040838503121561271057600080fd5b823561271b81611ebf565b9150602083013561244581611ed7565b6000806000806080858703121561274157600080fd5b843561274c81611ebf565b9350602085013561275c81611ed7565b92506040850135915060608501356001600160401b038111156120b857600080fd5b6001600160a01b038681168252858116602083015263ffffffff851660408301528316606082015260a0608082018190526000906127be90830184612267565b979650505050505050565b6001600160a01b03841681526060602082018190526000906127ed90830185612267565b82810360408401526127ff8185612267565b9695505050505050565b600082601f83011261281a57600080fd5b8151612828611f9e82611f58565b81815284602083860101111561283d57600080fd5b6113d5826020830160208701612243565b60006020828403121561286057600080fd5b81516001600160401b0381111561287657600080fd5b6113d584828501612809565b6001600160a01b0385811682528416602082015263ffffffff831660408201526080606082018190526000906127ff90830184612267565b6001600160a01b038416815263ffffffff8316602082015260606040820181905260009061126c90830184612267565b805160ff811681146128fb57600080fd5b919050565b80516128fb81611ebf565b80516001600160e01b0319811681146128fb57600080fd5b60006020828403121561293557600080fd5b81516001600160401b038082111561294c57600080fd5b90830190610160828603121561296157600080fd5b612969611eff565b612972836128ea565b8152612980602084016128ea565b60208201526040830151604082015261299b60608401612900565b60608201526129ac6080840161290b565b608082015260a0830151828111156129c357600080fd5b6129cf87828601612809565b60a08301525060c083015160c082015260e083015160e0820152610100915081830151828201526101209150612a06828401612900565b828201526101409150612a1a828401612900565b91810191909152949350505050565b600080600080600060a08688031215612a4157600080fd5b612a4a866128ea565b94506020860151612a5a81611ed7565b6040870151909450612a6b81611ebf565b6060870151909350612a7c81611ebf565b6080870151909250612a8d816123c1565b809150509295509295909350565b805180151581146128fb57600080fd5b600080600080600060a08688031215612ac357600080fd5b8551612ace81611ebf565b6020870151909550612adf81611ed7565b9350612aed60408701612a9b565b92506060860151612afd816123c1565b80925050608086015190509295509295909350565b60008060408385031215612b2557600080fd5b825191506020830151612445816123c1565b6001600160a01b038516815263ffffffff841660208201526001600160801b03831660408201526080606082018190526000906127ff90830184612267565b60006001600160401b03821115612b8f57612b8f611ee9565b5060051b60200190565b600082601f830112612baa57600080fd5b81516020612bba611f9e83612b76565b82815260059290921b84018101918181019086841115612bd957600080fd5b8286015b848110156118bc578051612bf081611ed7565b8352918301918301612bdd565b600082601f830112612c0e57600080fd5b81516020612c1e611f9e83612b76565b82815260059290921b84018101918181019086841115612c3d57600080fd5b8286015b848110156118bc578051612c54816123c1565b8352918301918301612c41565b600080600060608486031215612c7657600080fd5b83516001600160401b0380821115612c8d57600080fd5b818601915086601f830112612ca157600080fd5b81516020612cb1611f9e83612b76565b82815260059290921b8401810191818101908a841115612cd057600080fd5b948201945b83861015612cf7578551612ce881611ebf565b82529482019490820190612cd5565b91890151919750909350505080821115612d1057600080fd5b612d1c87838801612b99565b93506040860151915080821115612d3257600080fd5b5061212786828701612bfd565b6001600160a01b03868116825263ffffffff86166020830152841660408201526001600160801b038316606082015260a0608082018190526000906127be90830184612267565b60008060008060808587031215612d9c57600080fd5b612da585612a9b565b93506020850151612db5816123c1565b6040860151909350612dc6816123c1565b60608601519092506125d5816123c1565b60008060008060808587031215612ded57600080fd5b612df685612a9b565b9350612e0460208601612a9b565b92506040850151612e14816123c1565b6060959095015193969295505050565b60018060a01b038516815263ffffffff841660208201528260408201526080606082015260006127ff6080830184612267565b600060208284031215612e6957600080fd5b815161154881611ebf565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b0384168152608060208201819052600090612eae90830185612267565b8281038060408501526002825261060f60f31b6020830152604081016060850152506127ff6040820185612267565b60008060408385031215612ef057600080fd5b82516001600160401b0380821115612f0757600080fd5b612f1386838701612809565b93506020850151915080821115612f2957600080fd5b50612f3685828601612809565b915050925092905056fea26469706673582212206fceb16c71e3e184b99fae03f6e4feb1ad3e4d5bf50091a1256ab4d06f41382964736f6c63430008130033";
15
+ static readonly bytecode = "0x60a06040523480156200001157600080fd5b5060405162003079380380620030798339810160408190526200003491620000b5565b6001600160a01b03811660808190526040805163bd1c448b60e01b81526435000000016004820181905260248201929092526000604482015290919063bd1c448b90606401600060405180830381600087803b1580156200009457600080fd5b505af1158015620000a9573d6000803e3d6000fd5b505050505050620000e7565b600060208284031215620000c857600080fd5b81516001600160a01b0381168114620000e057600080fd5b9392505050565b608051612f76620001036000396000610c260152612f766000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806353c11f99116100f95780639cdf4d6711610097578063d39363c011610071578063d39363c01461044e578063d86ed3e5146101e9578063eadc455114610461578063fe134e9f1461047457600080fd5b80639cdf4d67146103e4578063c9869ed0146103f7578063c9b8a2f61461040a57600080fd5b80636ddb6798116100d35780636ddb6798146103985780637489c503146103ab57806378bb14ea146103be578063884d1f40146103d157600080fd5b806353c11f991461035f5780635f9e7d77146103725780636436e3d31461038557600080fd5b806330d9c915116101665780634277b78f116101405780634277b78f146102e25780635002bb09146102f557806350c8da8f146103085780635158472c1461034c57600080fd5b806330d9c9151461029a5780633939709e146102ad5780634018cb64146102c057600080fd5b8063068f3d19146101ae57806306f75d2e146101c357806316dfe927146101d6578063230dbd29146101e957806325a108af146102125780632a722c061461026a575b600080fd5b6101c16101bc366004611fd5565b610487565b005b6101c16101d136600461205c565b6104a5565b6101c16101e43660046120d0565b6104c1565b6101fc6101f7366004612179565b6104db565b6040516102099190612293565b60405180910390f35b6102256102203660046122a6565b61052b565b604080516001600160a01b03909616865263ffffffff9094166020860152911515928401929092526001600160801b039091166060830152608082015260a001610209565b61027d6102783660046122d2565b610557565b604080519283526001600160801b03909116602083015201610209565b6101fc6102a8366004612323565b61057c565b6101c16102bb3660046123d6565b6105e4565b6102d36102ce366004612417565b6105f9565b60405161020993929190612494565b6101c16102f0366004612531565b61061d565b6101c1610303366004612584565b610633565b61031b6103163660046125e0565b610648565b6040805194151585526001600160801b03938416602086015291831691840191909152166060820152608001610209565b6101c161035a366004611fd5565b610672565b6101fc61036d366004612179565b610688565b6101fc610380366004612323565b6106ed565b6101c161039336600461205c565b610754565b6101c16103a63660046125e0565b610769565b6101c16103b936600461262b565b61077d565b6101c16103cc36600461266c565b610791565b6101fc6103df366004612323565b6107a5565b6101c16103f23660046126ac565b610808565b6101c1610405366004612584565b61081d565b61041d610418366004612584565b610832565b6040516102099493929190931515845291151560208401526001600160801b03166040830152606082015260800190565b6101c161045c3660046125e0565b61085e565b6101c161046f3660046126fd565b610872565b6101c161048236600461272b565b61088a565b61049d6001600160a01b0386168585858561089f565b505050505050565b6104ba6001600160a01b0385168484846109cd565b5050505050565b6104d56001600160a01b0384168383610af8565b50505050565b606061051d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610c2092505050565b9a9950505050505050505050565b6000808080806105446001600160a01b03881687610f59565b939b929a50909850965090945092505050565b60008061056f6001600160a01b038716868686610ff5565b9150915094509492505050565b60405162461bcd60e51b815260206004820152602f60248201527f556e737570706f727465642063616c6c6261636b202d204265666f726520416760448201526e1c99595b595b9d0810dc99585d1959608a1b60648201526060906084015b60405180910390fd5b6104ba6001600160a01b03851684848461109a565b606080806106106001600160a01b03861685611125565b9250925092509250925092565b61049d6001600160a01b038616858585856111be565b6104ba6001600160a01b03851684848461124b565b60008080806106616001600160a01b0388168787611275565b935093509350935093509350935093565b61049d6001600160a01b0386168585858561131b565b60405162461bcd60e51b815260206004820152603160248201527f556e737570706f727465642063616c6c6261636b202d2041667465722041677260448201527019595b595b9d0815195c9b5a5b985d1959607a1b60648201526060906084016105db565b60405162461bcd60e51b815260206004820152603360248201527f556e737570706f727465642063616c6c6261636b202d20204265666f7265204160448201527219dc99595b595b9d0815195c9b5a5b985d1959606a1b60648201526060906084016105db565b6104ba6001600160a01b038516848484611369565b6104d56001600160a01b03841683836113b6565b6104d56001600160a01b03841683836113dd565b6104d56001600160a01b03841683836113fc565b60405162461bcd60e51b815260206004820152602f60248201527f556e737570706f727465642063616c6c6261636b202d204265666f726520416760448201526e1c99595b595b9d081d5c19185d1959608a1b60648201526060906084016105db565b6104ba6001600160a01b03851684848461141b565b6104ba6001600160a01b03851684848461143c565b600080808061084c6001600160a01b03891688888861145d565b929b919a509850909650945050505050565b6104d56001600160a01b038416838361150c565b6108856001600160a01b0383168261152b565b505050565b6104ba6001600160a01b03851684848461154f565b60008060006108ad886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663acafa1b88c8c8c8c60006001600160401b038111156108ed576108ed611ee9565b6040519080825280601f01601f191660200182016040528015610917576020820181803683370190505b5060405160240161092c95949392919061277e565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526109779392509089906004016127c9565b6000604051808303816000875af1158015610996573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109be919081019061284e565b50600198975050505050505050565b60008060006109db876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316636041ae968b8b8b60006001600160401b03811115610a1a57610a1a611ee9565b6040519080825280601f01601f191660200182016040528015610a44576020820181803683370190505b50604051602401610a589493929190612882565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610aa39392509089906004016127c9565b6000604051808303816000875af1158015610ac2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aea919081019061284e565b506001979650505050505050565b6000806000610b06866115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663d787840a8a8a60006001600160401b03811115610b4457610b44611ee9565b6040519080825280601f01601f191660200182016040528015610b6e576020820181803683370190505b50604051602401610b81939291906128ba565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610bcc9392509089906004016127c9565b6000604051808303816000875af1158015610beb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c13919081019061284e565b5060019695505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633f6c923a846040518263ffffffff1660e01b8152600401610c709190612293565b600060405180830381865afa158015610c8d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cb59190810190612923565b60a001519050600080600080600085806020019051810190610cd79190612a29565b93985091965094509250905060ff8516610d0c57610cff6001600160a01b038a16858a6117a1565b9650505050505050610f53565b60001960ff861601610d2c57610cff6001600160a01b038a16858a6117a1565b60011960ff861601610d4d57610cff6001600160a01b038a1685838b6118c7565b60021960ff861601610d6e57610cff6001600160a01b038a1685838b6118c7565b60031960ff861601610d9857610cff6001600160a01b038a16856001600160801b0384168b6119f0565b60041960ff861601610dc257610cff6001600160a01b038a16856001600160801b0384168b6119f0565b60051960ff861601610de357610cff6001600160a01b038a1684868b611a7b565b60061960ff861601610e0457610cff6001600160a01b038a1684868b611a7b565b60071960ff861601610e2557610cff6001600160a01b038a1684868b611b06565b60081960ff861601610e4657610cff6001600160a01b038a1684868b611b06565b60091960ff861601610e6857610cff6001600160a01b038a168584848c611b53565b600a1960ff861601610e8a57610cff6001600160a01b038a168584848c611b53565b600b1960ff861601610eac57610cff6001600160a01b038a168486858c611c7f565b600c1960ff861601610ece57610cff6001600160a01b038a168486858c611c7f565b600d1960ff861601610ef057610cff6001600160a01b038a168486858c611d0c565b600e1960ff861601610f1257610cff6001600160a01b038a168486858c611d0c565b60405162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840cceadcc6e8d2dedc40d2dcc8caf60531b60448201526064016105db565b92915050565b600080600080600080610f6b88611d5a565b60405163cd7245c560e01b81526001600160a01b038b81166004830152602482018b9052919350908316915063cd7245c59060440160a060405180830381865afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190612aab565b939c929b5090995097509095509350505050565b600080600061100387611d5a565b604051632266eabb60e21b81526001600160a01b038a81166004830152898116602483015263ffffffff8916604483015260648201889052919350908316915063899baaec906084016040805180830381865afa158015611068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108c9190612b12565b925092505094509492505050565b60008060006110a8876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316637fbc76398b8b8b60006001600160401b038111156110e7576110e7611ee9565b6040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b50604051602401610a589493929190612b37565b6060806060600061113586611d5a565b6040516316db59b760e31b81526001600160a01b0389811660048301528881166024830152919350908316915063b6dacdb890604401600060405180830381865afa158015611188573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111b09190810190612c61565b935093509350509250925092565b60008060006111cc886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663232d2b588c8c8c8c60006001600160401b0381111561120c5761120c611ee9565b6040519080825280601f01601f191660200182016040528015611236576020820181803683370190505b5060405160240161092c959493929190612d3f565b6040805160008082526020820190925261126c90869086908690869061131b565b95945050505050565b600080600080600061128688611d5a565b6040516323fc23f360e01b81526001600160a01b038b811660048301528a8116602483015263ffffffff8a16604483015291935090831691506323fc23f390606401608060405180830381865afa1580156112e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113099190612d86565b94509450945094505093509350935093565b6000806000611329886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316632e5e74c68c8c8c8c60006001600160401b038111156108ed576108ed611ee9565b6000806000611377876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663acf4a6c28b8b8b60006001600160401b03811115610a1a57610a1a611ee9565b604080516000808252602082019092526113d590859085908590611369565b949350505050565b604080516000808252602082019092526113d59085908590859061154f565b604080516000808252602082019092526113d59085908590859061109a565b6040805160008082526020820190925261126c9086908690869086906111be565b6040805160008082526020820190925261126c90869086908690869061089f565b600080600080600061146e89611d5a565b604051635b53405160e01b81526001600160a01b038c811660048301528b8116602483015263ffffffff8b16604483015289811660648301529193509083169150635b53405190608401608060405180830381865afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190612dd7565b929c919b50995090975095505050505050565b604080516000808252602082019092526113d5908590859085906109cd565b604080516000808252602082019092526115489084908490610af8565b9392505050565b600080600061155d876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663b96731c28b8b8b60006001600160401b0381111561159c5761159c611ee9565b6040519080825280601f01601f1916602001820160405280156115c6576020820181803683370190505b50604051602401610a589493929190612e24565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb546001600160a01b038116611770576001600160a01b03821661169f57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015611678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169c9190612e57565b91505b604051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a67460048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015611703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117279190612e57565b9050817f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea83755807fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb555b6001600160a01b03821661178657611786612e74565b6001600160a01b03811661179c5761179c612e74565b915091565b60606000806117af866115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663d787840a8a8a60006001600160401b038111156117ed576117ed611ee9565b6040519080825280601f01601f191660200182016040528015611817576020820181803683370190505b5060405160240161182a939291906128ba565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611875939250908990600401612e8a565b6000604051808303816000875af1158015611894573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118bc9190810190612edd565b509695505050505050565b60606000806118d5876115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316637fbc76398b8b8b60006001600160401b0381111561191457611914611ee9565b6040519080825280601f01601f19166020018201604052801561193e576020820181803683370190505b506040516024016119529493929190612b37565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b031916825261199d939250908990600401612e8a565b6000604051808303816000875af11580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119e49190810190612edd565b50979650505050505050565b60606000806119fe876115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663b96731c28b8b8b60006001600160401b03811115611a3d57611a3d611ee9565b6040519080825280601f01601f191660200182016040528015611a67576020820181803683370190505b506040516024016119529493929190612e24565b6060600080611a89876115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663acf4a6c28b8b8b60006001600160401b03811115611ac857611ac8611ee9565b6040519080825280601f01601f191660200182016040528015611af2576020820181803683370190505b506040516024016119529493929190612882565b6060600080611b14876115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316636041ae968b8b8b60006001600160401b03811115611ac857611ac8611ee9565b6060600080611b61886115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663232d2b588c8c8c8c60006001600160401b03811115611ba157611ba1611ee9565b6040519080825280601f01601f191660200182016040528015611bcb576020820181803683370190505b50604051602401611be0959493929190612d3f565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611c2b939250908990600401612e8a565b6000604051808303816000875af1158015611c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c729190810190612edd565b5098975050505050505050565b6060600080611c8d886115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316632e5e74c68c8c8c8c60006001600160401b03811115611ccd57611ccd611ee9565b6040519080825280601f01601f191660200182016040528015611cf7576020820181803683370190505b50604051602401611be095949392919061277e565b6060600080611d1a886115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663acafa1b88c8c8c8c60006001600160401b03811115611ccd57611ccd611ee9565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb546001600160a01b038116611770576001600160a01b038216611e1f57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1c9190612e57565b91505b604051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a67460048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015611e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea79190612e57565b90506001600160a01b03821661178657611786612e74565b6001600160a01b0381168114611ed457600080fd5b50565b63ffffffff81168114611ed457600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715611f2257611f22611ee9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611f5057611f50611ee9565b604052919050565b60006001600160401b03821115611f7157611f71611ee9565b50601f01601f191660200190565b600082601f830112611f9057600080fd5b8135611fa3611f9e82611f58565b611f28565b818152846020838601011115611fb857600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611fed57600080fd5b8535611ff881611ebf565b9450602086013561200881611ebf565b9350604086013561201881611ed7565b9250606086013561202881611ebf565b915060808601356001600160401b0381111561204357600080fd5b61204f88828901611f7f565b9150509295509295909350565b6000806000806080858703121561207257600080fd5b843561207d81611ebf565b9350602085013561208d81611ebf565b9250604085013561209d81611ed7565b915060608501356001600160401b038111156120b857600080fd5b6120c487828801611f7f565b91505092959194509250565b6000806000606084860312156120e557600080fd5b83356120f081611ebf565b9250602084013561210081611ed7565b915060408401356001600160401b0381111561211b57600080fd5b61212786828701611f7f565b9150509250925092565b60008083601f84011261214357600080fd5b5081356001600160401b0381111561215a57600080fd5b60208301915083602082850101111561217257600080fd5b9250929050565b600080600080600080600080600060c08a8c03121561219757600080fd5b89356121a281611ebf565b985060208a01356121b281611ebf565b975060408a0135965060608a01356001600160401b03808211156121d557600080fd5b6121e18d838e01612131565b909850965060808c01359150808211156121fa57600080fd5b6122068d838e01612131565b909650945060a08c013591508082111561221f57600080fd5b5061222c8c828d01612131565b915080935050809150509295985092959850929598565b60005b8381101561225e578181015183820152602001612246565b50506000910152565b6000815180845261227f816020860160208601612243565b601f01601f19169290920160200192915050565b6020815260006115486020830184612267565b600080604083850312156122b957600080fd5b82356122c481611ebf565b946020939093013593505050565b600080600080608085870312156122e857600080fd5b84356122f381611ebf565b9350602085013561230381611ebf565b9250604085013561231381611ed7565b9396929550929360600135925050565b600080600080600080600060a0888a03121561233e57600080fd5b873561234981611ebf565b9650602088013561235981611ebf565b95506040880135945060608801356001600160401b038082111561237c57600080fd5b6123888b838c01612131565b909650945060808a01359150808211156123a157600080fd5b506123ae8a828b01612131565b989b979a50959850939692959293505050565b6001600160801b0381168114611ed457600080fd5b600080600080608085870312156123ec57600080fd5b84356123f781611ebf565b9350602085013561240781611ed7565b9250604085013561209d816123c1565b6000806040838503121561242a57600080fd5b823561243581611ebf565b9150602083013561244581611ebf565b809150509250929050565b600081518084526020808501945080840160005b838110156124895781516001600160801b031687529582019590820190600101612464565b509495945050505050565b606080825284519082018190526000906020906080840190828801845b828110156124d65781516001600160a01b0316845292840192908401906001016124b1565b5050508381038285015285518082528683019183019060005b8181101561251157835163ffffffff16835292840192918401916001016124ef565b505084810360408601526125258187612450565b98975050505050505050565b600080600080600060a0868803121561254957600080fd5b853561255481611ebf565b9450602086013561256481611ed7565b9350604086013561257481611ebf565b92506060860135612028816123c1565b6000806000806080858703121561259a57600080fd5b84356125a581611ebf565b935060208501356125b581611ebf565b925060408501356125c581611ed7565b915060608501356125d581611ebf565b939692955090935050565b6000806000606084860312156125f557600080fd5b833561260081611ebf565b9250602084013561261081611ebf565b9150604084013561262081611ed7565b809150509250925092565b60008060006060848603121561264057600080fd5b833561264b81611ebf565b9250602084013561265b81611ed7565b929592945050506040919091013590565b60008060006060848603121561268157600080fd5b833561268c81611ebf565b9250602084013561269c81611ed7565b91506040840135612620816123c1565b600080600080608085870312156126c257600080fd5b84356126cd81611ebf565b935060208501356126dd81611ed7565b925060408501356126ed81611ebf565b915060608501356125d5816123c1565b6000806040838503121561271057600080fd5b823561271b81611ebf565b9150602083013561244581611ed7565b6000806000806080858703121561274157600080fd5b843561274c81611ebf565b9350602085013561275c81611ed7565b92506040850135915060608501356001600160401b038111156120b857600080fd5b6001600160a01b038681168252858116602083015263ffffffff851660408301528316606082015260a0608082018190526000906127be90830184612267565b979650505050505050565b6001600160a01b03841681526060602082018190526000906127ed90830185612267565b82810360408401526127ff8185612267565b9695505050505050565b600082601f83011261281a57600080fd5b8151612828611f9e82611f58565b81815284602083860101111561283d57600080fd5b6113d5826020830160208701612243565b60006020828403121561286057600080fd5b81516001600160401b0381111561287657600080fd5b6113d584828501612809565b6001600160a01b0385811682528416602082015263ffffffff831660408201526080606082018190526000906127ff90830184612267565b6001600160a01b038416815263ffffffff8316602082015260606040820181905260009061126c90830184612267565b805160ff811681146128fb57600080fd5b919050565b80516128fb81611ebf565b80516001600160e01b0319811681146128fb57600080fd5b60006020828403121561293557600080fd5b81516001600160401b038082111561294c57600080fd5b90830190610160828603121561296157600080fd5b612969611eff565b612972836128ea565b8152612980602084016128ea565b60208201526040830151604082015261299b60608401612900565b60608201526129ac6080840161290b565b608082015260a0830151828111156129c357600080fd5b6129cf87828601612809565b60a08301525060c083015160c082015260e083015160e0820152610100915081830151828201526101209150612a06828401612900565b828201526101409150612a1a828401612900565b91810191909152949350505050565b600080600080600060a08688031215612a4157600080fd5b612a4a866128ea565b94506020860151612a5a81611ed7565b6040870151909450612a6b81611ebf565b6060870151909350612a7c81611ebf565b6080870151909250612a8d816123c1565b809150509295509295909350565b805180151581146128fb57600080fd5b600080600080600060a08688031215612ac357600080fd5b8551612ace81611ebf565b6020870151909550612adf81611ed7565b9350612aed60408701612a9b565b92506060860151612afd816123c1565b80925050608086015190509295509295909350565b60008060408385031215612b2557600080fd5b825191506020830151612445816123c1565b6001600160a01b038516815263ffffffff841660208201526001600160801b03831660408201526080606082018190526000906127ff90830184612267565b60006001600160401b03821115612b8f57612b8f611ee9565b5060051b60200190565b600082601f830112612baa57600080fd5b81516020612bba611f9e83612b76565b82815260059290921b84018101918181019086841115612bd957600080fd5b8286015b848110156118bc578051612bf081611ed7565b8352918301918301612bdd565b600082601f830112612c0e57600080fd5b81516020612c1e611f9e83612b76565b82815260059290921b84018101918181019086841115612c3d57600080fd5b8286015b848110156118bc578051612c54816123c1565b8352918301918301612c41565b600080600060608486031215612c7657600080fd5b83516001600160401b0380821115612c8d57600080fd5b818601915086601f830112612ca157600080fd5b81516020612cb1611f9e83612b76565b82815260059290921b8401810191818101908a841115612cd057600080fd5b948201945b83861015612cf7578551612ce881611ebf565b82529482019490820190612cd5565b91890151919750909350505080821115612d1057600080fd5b612d1c87838801612b99565b93506040860151915080821115612d3257600080fd5b5061212786828701612bfd565b6001600160a01b03868116825263ffffffff86166020830152841660408201526001600160801b038316606082015260a0608082018190526000906127be90830184612267565b60008060008060808587031215612d9c57600080fd5b612da585612a9b565b93506020850151612db5816123c1565b6040860151909350612dc6816123c1565b60608601519092506125d5816123c1565b60008060008060808587031215612ded57600080fd5b612df685612a9b565b9350612e0460208601612a9b565b92506040850151612e14816123c1565b6060959095015193969295505050565b60018060a01b038516815263ffffffff841660208201528260408201526080606082015260006127ff6080830184612267565b600060208284031215612e6957600080fd5b815161154881611ebf565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b0384168152608060208201819052600090612eae90830185612267565b8281038060408501526002825261060f60f31b6020830152604081016060850152506127ff6040820185612267565b60008060408385031215612ef057600080fd5b82516001600160401b0380821115612f0757600080fd5b612f1386838701612809565b93506020850151915080821115612f2957600080fd5b50612f3685828601612809565b915050925092905056fea264697066735822122097703a344215dc9d5f7a072c7637d0d76efc2ff5d934e82b1ba2479581b1ce1964736f6c63430008130033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ISuperfluid";
@@ -902,7 +902,7 @@ const _abi = [
902
902
  type: "function",
903
903
  },
904
904
  ];
905
- const _bytecode = "0x60a06040523480156200001157600080fd5b5060405162003079380380620030798339810160408190526200003491620000b5565b6001600160a01b03811660808190526040805163bd1c448b60e01b81526435000000016004820181905260248201929092526000604482015290919063bd1c448b90606401600060405180830381600087803b1580156200009457600080fd5b505af1158015620000a9573d6000803e3d6000fd5b505050505050620000e7565b600060208284031215620000c857600080fd5b81516001600160a01b0381168114620000e057600080fd5b9392505050565b608051612f76620001036000396000610c260152612f766000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806353c11f99116100f95780639cdf4d6711610097578063d39363c011610071578063d39363c01461044e578063d86ed3e5146101e9578063eadc455114610461578063fe134e9f1461047457600080fd5b80639cdf4d67146103e4578063c9869ed0146103f7578063c9b8a2f61461040a57600080fd5b80636ddb6798116100d35780636ddb6798146103985780637489c503146103ab57806378bb14ea146103be578063884d1f40146103d157600080fd5b806353c11f991461035f5780635f9e7d77146103725780636436e3d31461038557600080fd5b806330d9c915116101665780634277b78f116101405780634277b78f146102e25780635002bb09146102f557806350c8da8f146103085780635158472c1461034c57600080fd5b806330d9c9151461029a5780633939709e146102ad5780634018cb64146102c057600080fd5b8063068f3d19146101ae57806306f75d2e146101c357806316dfe927146101d6578063230dbd29146101e957806325a108af146102125780632a722c061461026a575b600080fd5b6101c16101bc366004611fd5565b610487565b005b6101c16101d136600461205c565b6104a5565b6101c16101e43660046120d0565b6104c1565b6101fc6101f7366004612179565b6104db565b6040516102099190612293565b60405180910390f35b6102256102203660046122a6565b61052b565b604080516001600160a01b03909616865263ffffffff9094166020860152911515928401929092526001600160801b039091166060830152608082015260a001610209565b61027d6102783660046122d2565b610557565b604080519283526001600160801b03909116602083015201610209565b6101fc6102a8366004612323565b61057c565b6101c16102bb3660046123d6565b6105e4565b6102d36102ce366004612417565b6105f9565b60405161020993929190612494565b6101c16102f0366004612531565b61061d565b6101c1610303366004612584565b610633565b61031b6103163660046125e0565b610648565b6040805194151585526001600160801b03938416602086015291831691840191909152166060820152608001610209565b6101c161035a366004611fd5565b610672565b6101fc61036d366004612179565b610688565b6101fc610380366004612323565b6106ed565b6101c161039336600461205c565b610754565b6101c16103a63660046125e0565b610769565b6101c16103b936600461262b565b61077d565b6101c16103cc36600461266c565b610791565b6101fc6103df366004612323565b6107a5565b6101c16103f23660046126ac565b610808565b6101c1610405366004612584565b61081d565b61041d610418366004612584565b610832565b6040516102099493929190931515845291151560208401526001600160801b03166040830152606082015260800190565b6101c161045c3660046125e0565b61085e565b6101c161046f3660046126fd565b610872565b6101c161048236600461272b565b61088a565b61049d6001600160a01b0386168585858561089f565b505050505050565b6104ba6001600160a01b0385168484846109cd565b5050505050565b6104d56001600160a01b0384168383610af8565b50505050565b606061051d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610c2092505050565b9a9950505050505050505050565b6000808080806105446001600160a01b03881687610f59565b939b929a50909850965090945092505050565b60008061056f6001600160a01b038716868686610ff5565b9150915094509492505050565b60405162461bcd60e51b815260206004820152602f60248201527f556e737570706f727465642063616c6c6261636b202d204265666f726520416760448201526e1c99595b595b9d0810dc99585d1959608a1b60648201526060906084015b60405180910390fd5b6104ba6001600160a01b03851684848461109a565b606080806106106001600160a01b03861685611125565b9250925092509250925092565b61049d6001600160a01b038616858585856111be565b6104ba6001600160a01b03851684848461124b565b60008080806106616001600160a01b0388168787611275565b935093509350935093509350935093565b61049d6001600160a01b0386168585858561131b565b60405162461bcd60e51b815260206004820152603160248201527f556e737570706f727465642063616c6c6261636b202d2041667465722041677260448201527019595b595b9d0815195c9b5a5b985d1959607a1b60648201526060906084016105db565b60405162461bcd60e51b815260206004820152603360248201527f556e737570706f727465642063616c6c6261636b202d20204265666f7265204160448201527219dc99595b595b9d0815195c9b5a5b985d1959606a1b60648201526060906084016105db565b6104ba6001600160a01b038516848484611369565b6104d56001600160a01b03841683836113b6565b6104d56001600160a01b03841683836113dd565b6104d56001600160a01b03841683836113fc565b60405162461bcd60e51b815260206004820152602f60248201527f556e737570706f727465642063616c6c6261636b202d204265666f726520416760448201526e1c99595b595b9d081d5c19185d1959608a1b60648201526060906084016105db565b6104ba6001600160a01b03851684848461141b565b6104ba6001600160a01b03851684848461143c565b600080808061084c6001600160a01b03891688888861145d565b929b919a509850909650945050505050565b6104d56001600160a01b038416838361150c565b6108856001600160a01b0383168261152b565b505050565b6104ba6001600160a01b03851684848461154f565b60008060006108ad886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663acafa1b88c8c8c8c60006001600160401b038111156108ed576108ed611ee9565b6040519080825280601f01601f191660200182016040528015610917576020820181803683370190505b5060405160240161092c95949392919061277e565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526109779392509089906004016127c9565b6000604051808303816000875af1158015610996573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109be919081019061284e565b50600198975050505050505050565b60008060006109db876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316636041ae968b8b8b60006001600160401b03811115610a1a57610a1a611ee9565b6040519080825280601f01601f191660200182016040528015610a44576020820181803683370190505b50604051602401610a589493929190612882565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610aa39392509089906004016127c9565b6000604051808303816000875af1158015610ac2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aea919081019061284e565b506001979650505050505050565b6000806000610b06866115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663d787840a8a8a60006001600160401b03811115610b4457610b44611ee9565b6040519080825280601f01601f191660200182016040528015610b6e576020820181803683370190505b50604051602401610b81939291906128ba565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610bcc9392509089906004016127c9565b6000604051808303816000875af1158015610beb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c13919081019061284e565b5060019695505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633f6c923a846040518263ffffffff1660e01b8152600401610c709190612293565b600060405180830381865afa158015610c8d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cb59190810190612923565b60a001519050600080600080600085806020019051810190610cd79190612a29565b93985091965094509250905060ff8516610d0c57610cff6001600160a01b038a16858a6117a1565b9650505050505050610f53565b60001960ff861601610d2c57610cff6001600160a01b038a16858a6117a1565b60011960ff861601610d4d57610cff6001600160a01b038a1685838b6118c7565b60021960ff861601610d6e57610cff6001600160a01b038a1685838b6118c7565b60031960ff861601610d9857610cff6001600160a01b038a16856001600160801b0384168b6119f0565b60041960ff861601610dc257610cff6001600160a01b038a16856001600160801b0384168b6119f0565b60051960ff861601610de357610cff6001600160a01b038a1684868b611a7b565b60061960ff861601610e0457610cff6001600160a01b038a1684868b611a7b565b60071960ff861601610e2557610cff6001600160a01b038a1684868b611b06565b60081960ff861601610e4657610cff6001600160a01b038a1684868b611b06565b60091960ff861601610e6857610cff6001600160a01b038a168584848c611b53565b600a1960ff861601610e8a57610cff6001600160a01b038a168584848c611b53565b600b1960ff861601610eac57610cff6001600160a01b038a168486858c611c7f565b600c1960ff861601610ece57610cff6001600160a01b038a168486858c611c7f565b600d1960ff861601610ef057610cff6001600160a01b038a168486858c611d0c565b600e1960ff861601610f1257610cff6001600160a01b038a168486858c611d0c565b60405162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840cceadcc6e8d2dedc40d2dcc8caf60531b60448201526064016105db565b92915050565b600080600080600080610f6b88611d5a565b60405163cd7245c560e01b81526001600160a01b038b81166004830152602482018b9052919350908316915063cd7245c59060440160a060405180830381865afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190612aab565b939c929b5090995097509095509350505050565b600080600061100387611d5a565b604051632266eabb60e21b81526001600160a01b038a81166004830152898116602483015263ffffffff8916604483015260648201889052919350908316915063899baaec906084016040805180830381865afa158015611068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108c9190612b12565b925092505094509492505050565b60008060006110a8876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316637fbc76398b8b8b60006001600160401b038111156110e7576110e7611ee9565b6040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b50604051602401610a589493929190612b37565b6060806060600061113586611d5a565b6040516316db59b760e31b81526001600160a01b0389811660048301528881166024830152919350908316915063b6dacdb890604401600060405180830381865afa158015611188573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111b09190810190612c61565b935093509350509250925092565b60008060006111cc886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663232d2b588c8c8c8c60006001600160401b0381111561120c5761120c611ee9565b6040519080825280601f01601f191660200182016040528015611236576020820181803683370190505b5060405160240161092c959493929190612d3f565b6040805160008082526020820190925261126c90869086908690869061131b565b95945050505050565b600080600080600061128688611d5a565b6040516323fc23f360e01b81526001600160a01b038b811660048301528a8116602483015263ffffffff8a16604483015291935090831691506323fc23f390606401608060405180830381865afa1580156112e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113099190612d86565b94509450945094505093509350935093565b6000806000611329886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316632e5e74c68c8c8c8c60006001600160401b038111156108ed576108ed611ee9565b6000806000611377876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663acf4a6c28b8b8b60006001600160401b03811115610a1a57610a1a611ee9565b604080516000808252602082019092526113d590859085908590611369565b949350505050565b604080516000808252602082019092526113d59085908590859061154f565b604080516000808252602082019092526113d59085908590859061109a565b6040805160008082526020820190925261126c9086908690869086906111be565b6040805160008082526020820190925261126c90869086908690869061089f565b600080600080600061146e89611d5a565b604051635b53405160e01b81526001600160a01b038c811660048301528b8116602483015263ffffffff8b16604483015289811660648301529193509083169150635b53405190608401608060405180830381865afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190612dd7565b929c919b50995090975095505050505050565b604080516000808252602082019092526113d5908590859085906109cd565b604080516000808252602082019092526115489084908490610af8565b9392505050565b600080600061155d876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663b96731c28b8b8b60006001600160401b0381111561159c5761159c611ee9565b6040519080825280601f01601f1916602001820160405280156115c6576020820181803683370190505b50604051602401610a589493929190612e24565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb546001600160a01b038116611770576001600160a01b03821661169f57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015611678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169c9190612e57565b91505b604051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a67460048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015611703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117279190612e57565b9050817f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea83755807fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb555b6001600160a01b03821661178657611786612e74565b6001600160a01b03811661179c5761179c612e74565b915091565b60606000806117af866115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663d787840a8a8a60006001600160401b038111156117ed576117ed611ee9565b6040519080825280601f01601f191660200182016040528015611817576020820181803683370190505b5060405160240161182a939291906128ba565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611875939250908990600401612e8a565b6000604051808303816000875af1158015611894573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118bc9190810190612edd565b509695505050505050565b60606000806118d5876115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316637fbc76398b8b8b60006001600160401b0381111561191457611914611ee9565b6040519080825280601f01601f19166020018201604052801561193e576020820181803683370190505b506040516024016119529493929190612b37565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b031916825261199d939250908990600401612e8a565b6000604051808303816000875af11580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119e49190810190612edd565b50979650505050505050565b60606000806119fe876115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663b96731c28b8b8b60006001600160401b03811115611a3d57611a3d611ee9565b6040519080825280601f01601f191660200182016040528015611a67576020820181803683370190505b506040516024016119529493929190612e24565b6060600080611a89876115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663acf4a6c28b8b8b60006001600160401b03811115611ac857611ac8611ee9565b6040519080825280601f01601f191660200182016040528015611af2576020820181803683370190505b506040516024016119529493929190612882565b6060600080611b14876115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316636041ae968b8b8b60006001600160401b03811115611ac857611ac8611ee9565b6060600080611b61886115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663232d2b588c8c8c8c60006001600160401b03811115611ba157611ba1611ee9565b6040519080825280601f01601f191660200182016040528015611bcb576020820181803683370190505b50604051602401611be0959493929190612d3f565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611c2b939250908990600401612e8a565b6000604051808303816000875af1158015611c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c729190810190612edd565b5098975050505050505050565b6060600080611c8d886115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316632e5e74c68c8c8c8c60006001600160401b03811115611ccd57611ccd611ee9565b6040519080825280601f01601f191660200182016040528015611cf7576020820181803683370190505b50604051602401611be095949392919061277e565b6060600080611d1a886115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663acafa1b88c8c8c8c60006001600160401b03811115611ccd57611ccd611ee9565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb546001600160a01b038116611770576001600160a01b038216611e1f57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1c9190612e57565b91505b604051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a67460048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015611e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea79190612e57565b90506001600160a01b03821661178657611786612e74565b6001600160a01b0381168114611ed457600080fd5b50565b63ffffffff81168114611ed457600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715611f2257611f22611ee9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611f5057611f50611ee9565b604052919050565b60006001600160401b03821115611f7157611f71611ee9565b50601f01601f191660200190565b600082601f830112611f9057600080fd5b8135611fa3611f9e82611f58565b611f28565b818152846020838601011115611fb857600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611fed57600080fd5b8535611ff881611ebf565b9450602086013561200881611ebf565b9350604086013561201881611ed7565b9250606086013561202881611ebf565b915060808601356001600160401b0381111561204357600080fd5b61204f88828901611f7f565b9150509295509295909350565b6000806000806080858703121561207257600080fd5b843561207d81611ebf565b9350602085013561208d81611ebf565b9250604085013561209d81611ed7565b915060608501356001600160401b038111156120b857600080fd5b6120c487828801611f7f565b91505092959194509250565b6000806000606084860312156120e557600080fd5b83356120f081611ebf565b9250602084013561210081611ed7565b915060408401356001600160401b0381111561211b57600080fd5b61212786828701611f7f565b9150509250925092565b60008083601f84011261214357600080fd5b5081356001600160401b0381111561215a57600080fd5b60208301915083602082850101111561217257600080fd5b9250929050565b600080600080600080600080600060c08a8c03121561219757600080fd5b89356121a281611ebf565b985060208a01356121b281611ebf565b975060408a0135965060608a01356001600160401b03808211156121d557600080fd5b6121e18d838e01612131565b909850965060808c01359150808211156121fa57600080fd5b6122068d838e01612131565b909650945060a08c013591508082111561221f57600080fd5b5061222c8c828d01612131565b915080935050809150509295985092959850929598565b60005b8381101561225e578181015183820152602001612246565b50506000910152565b6000815180845261227f816020860160208601612243565b601f01601f19169290920160200192915050565b6020815260006115486020830184612267565b600080604083850312156122b957600080fd5b82356122c481611ebf565b946020939093013593505050565b600080600080608085870312156122e857600080fd5b84356122f381611ebf565b9350602085013561230381611ebf565b9250604085013561231381611ed7565b9396929550929360600135925050565b600080600080600080600060a0888a03121561233e57600080fd5b873561234981611ebf565b9650602088013561235981611ebf565b95506040880135945060608801356001600160401b038082111561237c57600080fd5b6123888b838c01612131565b909650945060808a01359150808211156123a157600080fd5b506123ae8a828b01612131565b989b979a50959850939692959293505050565b6001600160801b0381168114611ed457600080fd5b600080600080608085870312156123ec57600080fd5b84356123f781611ebf565b9350602085013561240781611ed7565b9250604085013561209d816123c1565b6000806040838503121561242a57600080fd5b823561243581611ebf565b9150602083013561244581611ebf565b809150509250929050565b600081518084526020808501945080840160005b838110156124895781516001600160801b031687529582019590820190600101612464565b509495945050505050565b606080825284519082018190526000906020906080840190828801845b828110156124d65781516001600160a01b0316845292840192908401906001016124b1565b5050508381038285015285518082528683019183019060005b8181101561251157835163ffffffff16835292840192918401916001016124ef565b505084810360408601526125258187612450565b98975050505050505050565b600080600080600060a0868803121561254957600080fd5b853561255481611ebf565b9450602086013561256481611ed7565b9350604086013561257481611ebf565b92506060860135612028816123c1565b6000806000806080858703121561259a57600080fd5b84356125a581611ebf565b935060208501356125b581611ebf565b925060408501356125c581611ed7565b915060608501356125d581611ebf565b939692955090935050565b6000806000606084860312156125f557600080fd5b833561260081611ebf565b9250602084013561261081611ebf565b9150604084013561262081611ed7565b809150509250925092565b60008060006060848603121561264057600080fd5b833561264b81611ebf565b9250602084013561265b81611ed7565b929592945050506040919091013590565b60008060006060848603121561268157600080fd5b833561268c81611ebf565b9250602084013561269c81611ed7565b91506040840135612620816123c1565b600080600080608085870312156126c257600080fd5b84356126cd81611ebf565b935060208501356126dd81611ed7565b925060408501356126ed81611ebf565b915060608501356125d5816123c1565b6000806040838503121561271057600080fd5b823561271b81611ebf565b9150602083013561244581611ed7565b6000806000806080858703121561274157600080fd5b843561274c81611ebf565b9350602085013561275c81611ed7565b92506040850135915060608501356001600160401b038111156120b857600080fd5b6001600160a01b038681168252858116602083015263ffffffff851660408301528316606082015260a0608082018190526000906127be90830184612267565b979650505050505050565b6001600160a01b03841681526060602082018190526000906127ed90830185612267565b82810360408401526127ff8185612267565b9695505050505050565b600082601f83011261281a57600080fd5b8151612828611f9e82611f58565b81815284602083860101111561283d57600080fd5b6113d5826020830160208701612243565b60006020828403121561286057600080fd5b81516001600160401b0381111561287657600080fd5b6113d584828501612809565b6001600160a01b0385811682528416602082015263ffffffff831660408201526080606082018190526000906127ff90830184612267565b6001600160a01b038416815263ffffffff8316602082015260606040820181905260009061126c90830184612267565b805160ff811681146128fb57600080fd5b919050565b80516128fb81611ebf565b80516001600160e01b0319811681146128fb57600080fd5b60006020828403121561293557600080fd5b81516001600160401b038082111561294c57600080fd5b90830190610160828603121561296157600080fd5b612969611eff565b612972836128ea565b8152612980602084016128ea565b60208201526040830151604082015261299b60608401612900565b60608201526129ac6080840161290b565b608082015260a0830151828111156129c357600080fd5b6129cf87828601612809565b60a08301525060c083015160c082015260e083015160e0820152610100915081830151828201526101209150612a06828401612900565b828201526101409150612a1a828401612900565b91810191909152949350505050565b600080600080600060a08688031215612a4157600080fd5b612a4a866128ea565b94506020860151612a5a81611ed7565b6040870151909450612a6b81611ebf565b6060870151909350612a7c81611ebf565b6080870151909250612a8d816123c1565b809150509295509295909350565b805180151581146128fb57600080fd5b600080600080600060a08688031215612ac357600080fd5b8551612ace81611ebf565b6020870151909550612adf81611ed7565b9350612aed60408701612a9b565b92506060860151612afd816123c1565b80925050608086015190509295509295909350565b60008060408385031215612b2557600080fd5b825191506020830151612445816123c1565b6001600160a01b038516815263ffffffff841660208201526001600160801b03831660408201526080606082018190526000906127ff90830184612267565b60006001600160401b03821115612b8f57612b8f611ee9565b5060051b60200190565b600082601f830112612baa57600080fd5b81516020612bba611f9e83612b76565b82815260059290921b84018101918181019086841115612bd957600080fd5b8286015b848110156118bc578051612bf081611ed7565b8352918301918301612bdd565b600082601f830112612c0e57600080fd5b81516020612c1e611f9e83612b76565b82815260059290921b84018101918181019086841115612c3d57600080fd5b8286015b848110156118bc578051612c54816123c1565b8352918301918301612c41565b600080600060608486031215612c7657600080fd5b83516001600160401b0380821115612c8d57600080fd5b818601915086601f830112612ca157600080fd5b81516020612cb1611f9e83612b76565b82815260059290921b8401810191818101908a841115612cd057600080fd5b948201945b83861015612cf7578551612ce881611ebf565b82529482019490820190612cd5565b91890151919750909350505080821115612d1057600080fd5b612d1c87838801612b99565b93506040860151915080821115612d3257600080fd5b5061212786828701612bfd565b6001600160a01b03868116825263ffffffff86166020830152841660408201526001600160801b038316606082015260a0608082018190526000906127be90830184612267565b60008060008060808587031215612d9c57600080fd5b612da585612a9b565b93506020850151612db5816123c1565b6040860151909350612dc6816123c1565b60608601519092506125d5816123c1565b60008060008060808587031215612ded57600080fd5b612df685612a9b565b9350612e0460208601612a9b565b92506040850151612e14816123c1565b6060959095015193969295505050565b60018060a01b038516815263ffffffff841660208201528260408201526080606082015260006127ff6080830184612267565b600060208284031215612e6957600080fd5b815161154881611ebf565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b0384168152608060208201819052600090612eae90830185612267565b8281038060408501526002825261060f60f31b6020830152604081016060850152506127ff6040820185612267565b60008060408385031215612ef057600080fd5b82516001600160401b0380821115612f0757600080fd5b612f1386838701612809565b93506020850151915080821115612f2957600080fd5b50612f3685828601612809565b915050925092905056fea26469706673582212206fceb16c71e3e184b99fae03f6e4feb1ad3e4d5bf50091a1256ab4d06f41382964736f6c63430008130033";
905
+ const _bytecode = "0x60a06040523480156200001157600080fd5b5060405162003079380380620030798339810160408190526200003491620000b5565b6001600160a01b03811660808190526040805163bd1c448b60e01b81526435000000016004820181905260248201929092526000604482015290919063bd1c448b90606401600060405180830381600087803b1580156200009457600080fd5b505af1158015620000a9573d6000803e3d6000fd5b505050505050620000e7565b600060208284031215620000c857600080fd5b81516001600160a01b0381168114620000e057600080fd5b9392505050565b608051612f76620001036000396000610c260152612f766000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806353c11f99116100f95780639cdf4d6711610097578063d39363c011610071578063d39363c01461044e578063d86ed3e5146101e9578063eadc455114610461578063fe134e9f1461047457600080fd5b80639cdf4d67146103e4578063c9869ed0146103f7578063c9b8a2f61461040a57600080fd5b80636ddb6798116100d35780636ddb6798146103985780637489c503146103ab57806378bb14ea146103be578063884d1f40146103d157600080fd5b806353c11f991461035f5780635f9e7d77146103725780636436e3d31461038557600080fd5b806330d9c915116101665780634277b78f116101405780634277b78f146102e25780635002bb09146102f557806350c8da8f146103085780635158472c1461034c57600080fd5b806330d9c9151461029a5780633939709e146102ad5780634018cb64146102c057600080fd5b8063068f3d19146101ae57806306f75d2e146101c357806316dfe927146101d6578063230dbd29146101e957806325a108af146102125780632a722c061461026a575b600080fd5b6101c16101bc366004611fd5565b610487565b005b6101c16101d136600461205c565b6104a5565b6101c16101e43660046120d0565b6104c1565b6101fc6101f7366004612179565b6104db565b6040516102099190612293565b60405180910390f35b6102256102203660046122a6565b61052b565b604080516001600160a01b03909616865263ffffffff9094166020860152911515928401929092526001600160801b039091166060830152608082015260a001610209565b61027d6102783660046122d2565b610557565b604080519283526001600160801b03909116602083015201610209565b6101fc6102a8366004612323565b61057c565b6101c16102bb3660046123d6565b6105e4565b6102d36102ce366004612417565b6105f9565b60405161020993929190612494565b6101c16102f0366004612531565b61061d565b6101c1610303366004612584565b610633565b61031b6103163660046125e0565b610648565b6040805194151585526001600160801b03938416602086015291831691840191909152166060820152608001610209565b6101c161035a366004611fd5565b610672565b6101fc61036d366004612179565b610688565b6101fc610380366004612323565b6106ed565b6101c161039336600461205c565b610754565b6101c16103a63660046125e0565b610769565b6101c16103b936600461262b565b61077d565b6101c16103cc36600461266c565b610791565b6101fc6103df366004612323565b6107a5565b6101c16103f23660046126ac565b610808565b6101c1610405366004612584565b61081d565b61041d610418366004612584565b610832565b6040516102099493929190931515845291151560208401526001600160801b03166040830152606082015260800190565b6101c161045c3660046125e0565b61085e565b6101c161046f3660046126fd565b610872565b6101c161048236600461272b565b61088a565b61049d6001600160a01b0386168585858561089f565b505050505050565b6104ba6001600160a01b0385168484846109cd565b5050505050565b6104d56001600160a01b0384168383610af8565b50505050565b606061051d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610c2092505050565b9a9950505050505050505050565b6000808080806105446001600160a01b03881687610f59565b939b929a50909850965090945092505050565b60008061056f6001600160a01b038716868686610ff5565b9150915094509492505050565b60405162461bcd60e51b815260206004820152602f60248201527f556e737570706f727465642063616c6c6261636b202d204265666f726520416760448201526e1c99595b595b9d0810dc99585d1959608a1b60648201526060906084015b60405180910390fd5b6104ba6001600160a01b03851684848461109a565b606080806106106001600160a01b03861685611125565b9250925092509250925092565b61049d6001600160a01b038616858585856111be565b6104ba6001600160a01b03851684848461124b565b60008080806106616001600160a01b0388168787611275565b935093509350935093509350935093565b61049d6001600160a01b0386168585858561131b565b60405162461bcd60e51b815260206004820152603160248201527f556e737570706f727465642063616c6c6261636b202d2041667465722041677260448201527019595b595b9d0815195c9b5a5b985d1959607a1b60648201526060906084016105db565b60405162461bcd60e51b815260206004820152603360248201527f556e737570706f727465642063616c6c6261636b202d20204265666f7265204160448201527219dc99595b595b9d0815195c9b5a5b985d1959606a1b60648201526060906084016105db565b6104ba6001600160a01b038516848484611369565b6104d56001600160a01b03841683836113b6565b6104d56001600160a01b03841683836113dd565b6104d56001600160a01b03841683836113fc565b60405162461bcd60e51b815260206004820152602f60248201527f556e737570706f727465642063616c6c6261636b202d204265666f726520416760448201526e1c99595b595b9d081d5c19185d1959608a1b60648201526060906084016105db565b6104ba6001600160a01b03851684848461141b565b6104ba6001600160a01b03851684848461143c565b600080808061084c6001600160a01b03891688888861145d565b929b919a509850909650945050505050565b6104d56001600160a01b038416838361150c565b6108856001600160a01b0383168261152b565b505050565b6104ba6001600160a01b03851684848461154f565b60008060006108ad886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663acafa1b88c8c8c8c60006001600160401b038111156108ed576108ed611ee9565b6040519080825280601f01601f191660200182016040528015610917576020820181803683370190505b5060405160240161092c95949392919061277e565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526109779392509089906004016127c9565b6000604051808303816000875af1158015610996573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109be919081019061284e565b50600198975050505050505050565b60008060006109db876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316636041ae968b8b8b60006001600160401b03811115610a1a57610a1a611ee9565b6040519080825280601f01601f191660200182016040528015610a44576020820181803683370190505b50604051602401610a589493929190612882565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610aa39392509089906004016127c9565b6000604051808303816000875af1158015610ac2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aea919081019061284e565b506001979650505050505050565b6000806000610b06866115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663d787840a8a8a60006001600160401b03811115610b4457610b44611ee9565b6040519080825280601f01601f191660200182016040528015610b6e576020820181803683370190505b50604051602401610b81939291906128ba565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610bcc9392509089906004016127c9565b6000604051808303816000875af1158015610beb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c13919081019061284e565b5060019695505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633f6c923a846040518263ffffffff1660e01b8152600401610c709190612293565b600060405180830381865afa158015610c8d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cb59190810190612923565b60a001519050600080600080600085806020019051810190610cd79190612a29565b93985091965094509250905060ff8516610d0c57610cff6001600160a01b038a16858a6117a1565b9650505050505050610f53565b60001960ff861601610d2c57610cff6001600160a01b038a16858a6117a1565b60011960ff861601610d4d57610cff6001600160a01b038a1685838b6118c7565b60021960ff861601610d6e57610cff6001600160a01b038a1685838b6118c7565b60031960ff861601610d9857610cff6001600160a01b038a16856001600160801b0384168b6119f0565b60041960ff861601610dc257610cff6001600160a01b038a16856001600160801b0384168b6119f0565b60051960ff861601610de357610cff6001600160a01b038a1684868b611a7b565b60061960ff861601610e0457610cff6001600160a01b038a1684868b611a7b565b60071960ff861601610e2557610cff6001600160a01b038a1684868b611b06565b60081960ff861601610e4657610cff6001600160a01b038a1684868b611b06565b60091960ff861601610e6857610cff6001600160a01b038a168584848c611b53565b600a1960ff861601610e8a57610cff6001600160a01b038a168584848c611b53565b600b1960ff861601610eac57610cff6001600160a01b038a168486858c611c7f565b600c1960ff861601610ece57610cff6001600160a01b038a168486858c611c7f565b600d1960ff861601610ef057610cff6001600160a01b038a168486858c611d0c565b600e1960ff861601610f1257610cff6001600160a01b038a168486858c611d0c565b60405162461bcd60e51b81526020600482015260166024820152750d2dcecc2d8d2c840cceadcc6e8d2dedc40d2dcc8caf60531b60448201526064016105db565b92915050565b600080600080600080610f6b88611d5a565b60405163cd7245c560e01b81526001600160a01b038b81166004830152602482018b9052919350908316915063cd7245c59060440160a060405180830381865afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190612aab565b939c929b5090995097509095509350505050565b600080600061100387611d5a565b604051632266eabb60e21b81526001600160a01b038a81166004830152898116602483015263ffffffff8916604483015260648201889052919350908316915063899baaec906084016040805180830381865afa158015611068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108c9190612b12565b925092505094509492505050565b60008060006110a8876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316637fbc76398b8b8b60006001600160401b038111156110e7576110e7611ee9565b6040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b50604051602401610a589493929190612b37565b6060806060600061113586611d5a565b6040516316db59b760e31b81526001600160a01b0389811660048301528881166024830152919350908316915063b6dacdb890604401600060405180830381865afa158015611188573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111b09190810190612c61565b935093509350509250925092565b60008060006111cc886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663232d2b588c8c8c8c60006001600160401b0381111561120c5761120c611ee9565b6040519080825280601f01601f191660200182016040528015611236576020820181803683370190505b5060405160240161092c959493929190612d3f565b6040805160008082526020820190925261126c90869086908690869061131b565b95945050505050565b600080600080600061128688611d5a565b6040516323fc23f360e01b81526001600160a01b038b811660048301528a8116602483015263ffffffff8a16604483015291935090831691506323fc23f390606401608060405180830381865afa1580156112e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113099190612d86565b94509450945094505093509350935093565b6000806000611329886115da565b91509150816001600160a01b03166339255d5b82836001600160a01b0316632e5e74c68c8c8c8c60006001600160401b038111156108ed576108ed611ee9565b6000806000611377876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663acf4a6c28b8b8b60006001600160401b03811115610a1a57610a1a611ee9565b604080516000808252602082019092526113d590859085908590611369565b949350505050565b604080516000808252602082019092526113d59085908590859061154f565b604080516000808252602082019092526113d59085908590859061109a565b6040805160008082526020820190925261126c9086908690869086906111be565b6040805160008082526020820190925261126c90869086908690869061089f565b600080600080600061146e89611d5a565b604051635b53405160e01b81526001600160a01b038c811660048301528b8116602483015263ffffffff8b16604483015289811660648301529193509083169150635b53405190608401608060405180830381865afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190612dd7565b929c919b50995090975095505050505050565b604080516000808252602082019092526113d5908590859085906109cd565b604080516000808252602082019092526115489084908490610af8565b9392505050565b600080600061155d876115da565b91509150816001600160a01b03166339255d5b82836001600160a01b031663b96731c28b8b8b60006001600160401b0381111561159c5761159c611ee9565b6040519080825280601f01601f1916602001820160405280156115c6576020820181803683370190505b50604051602401610a589493929190612e24565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb546001600160a01b038116611770576001600160a01b03821661169f57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015611678573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169c9190612e57565b91505b604051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a67460048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015611703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117279190612e57565b9050817f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea83755807fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb555b6001600160a01b03821661178657611786612e74565b6001600160a01b03811661179c5761179c612e74565b915091565b60606000806117af866115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663d787840a8a8a60006001600160401b038111156117ed576117ed611ee9565b6040519080825280601f01601f191660200182016040528015611817576020820181803683370190505b5060405160240161182a939291906128ba565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611875939250908990600401612e8a565b6000604051808303816000875af1158015611894573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118bc9190810190612edd565b509695505050505050565b60606000806118d5876115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316637fbc76398b8b8b60006001600160401b0381111561191457611914611ee9565b6040519080825280601f01601f19166020018201604052801561193e576020820181803683370190505b506040516024016119529493929190612b37565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b031916825261199d939250908990600401612e8a565b6000604051808303816000875af11580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119e49190810190612edd565b50979650505050505050565b60606000806119fe876115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663b96731c28b8b8b60006001600160401b03811115611a3d57611a3d611ee9565b6040519080825280601f01601f191660200182016040528015611a67576020820181803683370190505b506040516024016119529493929190612e24565b6060600080611a89876115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663acf4a6c28b8b8b60006001600160401b03811115611ac857611ac8611ee9565b6040519080825280601f01601f191660200182016040528015611af2576020820181803683370190505b506040516024016119529493929190612882565b6060600080611b14876115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316636041ae968b8b8b60006001600160401b03811115611ac857611ac8611ee9565b6060600080611b61886115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663232d2b588c8c8c8c60006001600160401b03811115611ba157611ba1611ee9565b6040519080825280601f01601f191660200182016040528015611bcb576020820181803683370190505b50604051602401611be0959493929190612d3f565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611c2b939250908990600401612e8a565b6000604051808303816000875af1158015611c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c729190810190612edd565b5098975050505050505050565b6060600080611c8d886115da565b91509150816001600160a01b0316634329d29382836001600160a01b0316632e5e74c68c8c8c8c60006001600160401b03811115611ccd57611ccd611ee9565b6040519080825280601f01601f191660200182016040528015611cf7576020820181803683370190505b50604051602401611be095949392919061277e565b6060600080611d1a886115da565b91509150816001600160a01b0316634329d29382836001600160a01b031663acafa1b88c8c8c8c60006001600160401b03811115611ccd57611ccd611ee9565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fa832ee1924ea960211af2df07d65d166232018f613ac6708043cd8f8773eddeb546001600160a01b038116611770576001600160a01b038216611e1f57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015611df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1c9190612e57565b91505b604051635b69006f60e11b81527f8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a67460048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015611e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea79190612e57565b90506001600160a01b03821661178657611786612e74565b6001600160a01b0381168114611ed457600080fd5b50565b63ffffffff81168114611ed457600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715611f2257611f22611ee9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611f5057611f50611ee9565b604052919050565b60006001600160401b03821115611f7157611f71611ee9565b50601f01601f191660200190565b600082601f830112611f9057600080fd5b8135611fa3611f9e82611f58565b611f28565b818152846020838601011115611fb857600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611fed57600080fd5b8535611ff881611ebf565b9450602086013561200881611ebf565b9350604086013561201881611ed7565b9250606086013561202881611ebf565b915060808601356001600160401b0381111561204357600080fd5b61204f88828901611f7f565b9150509295509295909350565b6000806000806080858703121561207257600080fd5b843561207d81611ebf565b9350602085013561208d81611ebf565b9250604085013561209d81611ed7565b915060608501356001600160401b038111156120b857600080fd5b6120c487828801611f7f565b91505092959194509250565b6000806000606084860312156120e557600080fd5b83356120f081611ebf565b9250602084013561210081611ed7565b915060408401356001600160401b0381111561211b57600080fd5b61212786828701611f7f565b9150509250925092565b60008083601f84011261214357600080fd5b5081356001600160401b0381111561215a57600080fd5b60208301915083602082850101111561217257600080fd5b9250929050565b600080600080600080600080600060c08a8c03121561219757600080fd5b89356121a281611ebf565b985060208a01356121b281611ebf565b975060408a0135965060608a01356001600160401b03808211156121d557600080fd5b6121e18d838e01612131565b909850965060808c01359150808211156121fa57600080fd5b6122068d838e01612131565b909650945060a08c013591508082111561221f57600080fd5b5061222c8c828d01612131565b915080935050809150509295985092959850929598565b60005b8381101561225e578181015183820152602001612246565b50506000910152565b6000815180845261227f816020860160208601612243565b601f01601f19169290920160200192915050565b6020815260006115486020830184612267565b600080604083850312156122b957600080fd5b82356122c481611ebf565b946020939093013593505050565b600080600080608085870312156122e857600080fd5b84356122f381611ebf565b9350602085013561230381611ebf565b9250604085013561231381611ed7565b9396929550929360600135925050565b600080600080600080600060a0888a03121561233e57600080fd5b873561234981611ebf565b9650602088013561235981611ebf565b95506040880135945060608801356001600160401b038082111561237c57600080fd5b6123888b838c01612131565b909650945060808a01359150808211156123a157600080fd5b506123ae8a828b01612131565b989b979a50959850939692959293505050565b6001600160801b0381168114611ed457600080fd5b600080600080608085870312156123ec57600080fd5b84356123f781611ebf565b9350602085013561240781611ed7565b9250604085013561209d816123c1565b6000806040838503121561242a57600080fd5b823561243581611ebf565b9150602083013561244581611ebf565b809150509250929050565b600081518084526020808501945080840160005b838110156124895781516001600160801b031687529582019590820190600101612464565b509495945050505050565b606080825284519082018190526000906020906080840190828801845b828110156124d65781516001600160a01b0316845292840192908401906001016124b1565b5050508381038285015285518082528683019183019060005b8181101561251157835163ffffffff16835292840192918401916001016124ef565b505084810360408601526125258187612450565b98975050505050505050565b600080600080600060a0868803121561254957600080fd5b853561255481611ebf565b9450602086013561256481611ed7565b9350604086013561257481611ebf565b92506060860135612028816123c1565b6000806000806080858703121561259a57600080fd5b84356125a581611ebf565b935060208501356125b581611ebf565b925060408501356125c581611ed7565b915060608501356125d581611ebf565b939692955090935050565b6000806000606084860312156125f557600080fd5b833561260081611ebf565b9250602084013561261081611ebf565b9150604084013561262081611ed7565b809150509250925092565b60008060006060848603121561264057600080fd5b833561264b81611ebf565b9250602084013561265b81611ed7565b929592945050506040919091013590565b60008060006060848603121561268157600080fd5b833561268c81611ebf565b9250602084013561269c81611ed7565b91506040840135612620816123c1565b600080600080608085870312156126c257600080fd5b84356126cd81611ebf565b935060208501356126dd81611ed7565b925060408501356126ed81611ebf565b915060608501356125d5816123c1565b6000806040838503121561271057600080fd5b823561271b81611ebf565b9150602083013561244581611ed7565b6000806000806080858703121561274157600080fd5b843561274c81611ebf565b9350602085013561275c81611ed7565b92506040850135915060608501356001600160401b038111156120b857600080fd5b6001600160a01b038681168252858116602083015263ffffffff851660408301528316606082015260a0608082018190526000906127be90830184612267565b979650505050505050565b6001600160a01b03841681526060602082018190526000906127ed90830185612267565b82810360408401526127ff8185612267565b9695505050505050565b600082601f83011261281a57600080fd5b8151612828611f9e82611f58565b81815284602083860101111561283d57600080fd5b6113d5826020830160208701612243565b60006020828403121561286057600080fd5b81516001600160401b0381111561287657600080fd5b6113d584828501612809565b6001600160a01b0385811682528416602082015263ffffffff831660408201526080606082018190526000906127ff90830184612267565b6001600160a01b038416815263ffffffff8316602082015260606040820181905260009061126c90830184612267565b805160ff811681146128fb57600080fd5b919050565b80516128fb81611ebf565b80516001600160e01b0319811681146128fb57600080fd5b60006020828403121561293557600080fd5b81516001600160401b038082111561294c57600080fd5b90830190610160828603121561296157600080fd5b612969611eff565b612972836128ea565b8152612980602084016128ea565b60208201526040830151604082015261299b60608401612900565b60608201526129ac6080840161290b565b608082015260a0830151828111156129c357600080fd5b6129cf87828601612809565b60a08301525060c083015160c082015260e083015160e0820152610100915081830151828201526101209150612a06828401612900565b828201526101409150612a1a828401612900565b91810191909152949350505050565b600080600080600060a08688031215612a4157600080fd5b612a4a866128ea565b94506020860151612a5a81611ed7565b6040870151909450612a6b81611ebf565b6060870151909350612a7c81611ebf565b6080870151909250612a8d816123c1565b809150509295509295909350565b805180151581146128fb57600080fd5b600080600080600060a08688031215612ac357600080fd5b8551612ace81611ebf565b6020870151909550612adf81611ed7565b9350612aed60408701612a9b565b92506060860151612afd816123c1565b80925050608086015190509295509295909350565b60008060408385031215612b2557600080fd5b825191506020830151612445816123c1565b6001600160a01b038516815263ffffffff841660208201526001600160801b03831660408201526080606082018190526000906127ff90830184612267565b60006001600160401b03821115612b8f57612b8f611ee9565b5060051b60200190565b600082601f830112612baa57600080fd5b81516020612bba611f9e83612b76565b82815260059290921b84018101918181019086841115612bd957600080fd5b8286015b848110156118bc578051612bf081611ed7565b8352918301918301612bdd565b600082601f830112612c0e57600080fd5b81516020612c1e611f9e83612b76565b82815260059290921b84018101918181019086841115612c3d57600080fd5b8286015b848110156118bc578051612c54816123c1565b8352918301918301612c41565b600080600060608486031215612c7657600080fd5b83516001600160401b0380821115612c8d57600080fd5b818601915086601f830112612ca157600080fd5b81516020612cb1611f9e83612b76565b82815260059290921b8401810191818101908a841115612cd057600080fd5b948201945b83861015612cf7578551612ce881611ebf565b82529482019490820190612cd5565b91890151919750909350505080821115612d1057600080fd5b612d1c87838801612b99565b93506040860151915080821115612d3257600080fd5b5061212786828701612bfd565b6001600160a01b03868116825263ffffffff86166020830152841660408201526001600160801b038316606082015260a0608082018190526000906127be90830184612267565b60008060008060808587031215612d9c57600080fd5b612da585612a9b565b93506020850151612db5816123c1565b6040860151909350612dc6816123c1565b60608601519092506125d5816123c1565b60008060008060808587031215612ded57600080fd5b612df685612a9b565b9350612e0460208601612a9b565b92506040850151612e14816123c1565b6060959095015193969295505050565b60018060a01b038516815263ffffffff841660208201528260408201526080606082015260006127ff6080830184612267565b600060208284031215612e6957600080fd5b815161154881611ebf565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b0384168152608060208201819052600090612eae90830185612267565b8281038060408501526002825261060f60f31b6020830152604081016060850152506127ff6040820185612267565b60008060408385031215612ef057600080fd5b82516001600160401b0380821115612f0757600080fd5b612f1386838701612809565b93506020850151915080821115612f2957600080fd5b50612f3685828601612809565b915050925092905056fea264697066735822122097703a344215dc9d5f7a072c7637d0d76efc2ff5d934e82b1ba2479581b1ce1964736f6c63430008130033";
906
906
  const isSuperArgs = (xs) => xs.length > 1;
907
907
  export class SuperTokenLibraryIDASuperAppMock__factory extends ContractFactory {
908
908
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class SuperfluidMock__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): SuperfluidMock;
14
14
  connect(signer: Signer): SuperfluidMock__factory;
15
- static readonly bytecode = "0x60c06040523480156200001157600080fd5b5060405162005d1538038062005d1583398101604081905262000034916200005b565b901515608052151560a05262000093565b805180151581146200005657600080fd5b919050565b600080604083850312156200006f57600080fd5b6200007a8362000045565b91506200008a6020840162000045565b90509250929050565b60805160a051615c16620000ff6000396000818161084f01528181612319015281816127f501528181612aa50152612d25015260008181610a9301528181610bf701528181610f180152818161170f01528181611847015281816119a60152612c4d0152615c166000f3fe6080604052600436106103765760003560e01c80638ca48484116101d1578063bd1c448b11610102578063cd312ec4116100a0578063f37330521161006f578063f373305214610b27578063f539866114610b47578063f9f522f414610b67578063fa6e0cfe14610ba457600080fd5b8063cd312ec414610a81578063e8dccb7d14610ab5578063eb5bf90114610ae4578063f2e55caf14610b1257600080fd5b8063c4d66de8116100dc578063c4d66de8146109e2578063c56a069d14610a02578063c60944a614610a2f578063c6ae797314610a4f57600080fd5b8063bd1c448b1461098d578063bd3252c8146109ad578063bf428734146109c257600080fd5b8063ad3915c81161016f578063ba48b5f811610149578063ba48b5f8146108f1578063bb84cfa114610911578063bbe4fd501461095a578063bced3ddc1461096d57600080fd5b8063ad3915c814610891578063b6d200de146108b1578063b724211e146108d157600080fd5b8063989b0c3e116101ab578063989b0c3e146108085780639903ad38146108285780639d297e301461083d578063a5dbbbcd1461087157600080fd5b80638ca484841461078b5780638ceddd7a146107ab5780639378fa13146107d657600080fd5b8063486ff0cd116102ab578063670e77e3116102495780637283100c116102235780637283100c1461070d578063731aed6e1461072d57806374041e021461074b578063768fabb01461076b57600080fd5b8063670e77e3146106ba5780636ad3ca7d146106da5780636b4f3335146106ed57600080fd5b806354fbc4931161028557806354fbc4931461063a57806357121e0c1461065a578063572b6c051461067a57806359a291411461069a57600080fd5b8063486ff0cd146105bd57806350d75d25146105e857806352d1902d146105fd57600080fd5b806333511863116103185780633ca3ad4e116102f25780633ca3ad4e146104fa5780633f6c923a146105425780634329d2931461056f578063469519541461059d57600080fd5b8063335118631461048b57806333d608f1146104ab57806339255d5b146104da57600080fd5b80631e6d0a84116103545780631e6d0a84146103dd5780631e855cf314610413578063289b3c0d146104335780632f89bf891461046b57600080fd5b806306cecba81461037b5780630c5650751461039d57806315a024e1146103bd575b600080fd5b34801561038757600080fd5b5061039b61039636600461493e565b610bc4565b005b3480156103a957600080fd5b5061039b6103b8366004614962565b610d9b565b3480156103c957600080fd5b5061039b6103d836600461493e565b610e2b565b3480156103e957600080fd5b506103fd6103f83660046149f1565b61107b565b60405161040a9190614ad7565b60405180910390f35b34801561041f57600080fd5b506103fd61042e366004614bad565b6112c7565b34801561043f57600080fd5b506000546201000090046001600160a01b03165b6040516001600160a01b03909116815260200161040a565b34801561047757600080fd5b5061039b61048636600461493e565b6112df565b34801561049757600080fd5b5061039b6104a636600461493e565b61149d565b3480156104b757600080fd5b506104c2622dc6c081565b6040516001600160401b03909116815260200161040a565b3480156104e657600080fd5b506103fd6104f5366004614bfc565b6114ac565b34801561050657600080fd5b5061053261051536600461493e565b6001600160a01b0316600090815260046020526040902054151590565b604051901515815260200161040a565b34801561054e57600080fd5b5061056261055d366004614c71565b6114c2565b60405161040a9190614ca5565b34801561057b57600080fd5b5061058f61058a366004614d86565b6114d3565b60405161040a929190614e32565b3480156105a957600080fd5b5061039b6105b836600461493e565b6116dc565b3480156105c957600080fd5b50604080518082019091526002815261763160f01b60208201526103fd565b3480156105f457600080fd5b506104536117d5565b34801561060957600080fd5b507fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba745b60405190815260200161040a565b34801561064657600080fd5b5061039b61065536600461493e565b611804565b34801561066657600080fd5b5061039b61067536600461493e565b611a87565b34801561068657600080fd5b5061053261069536600461493e565b611b55565b3480156106a657600080fd5b506103fd6106b5366004614e57565b611bdf565b3480156106c657600080fd5b5061039b6106d5366004614ea2565b611cc1565b61039b6106e8366004614ea2565b611cd7565b3480156106f957600080fd5b5061053261070836600461493e565b611ce2565b34801561071957600080fd5b5061039b61072836600461493e565b611d06565b34801561073957600080fd5b506003546001600160a01b0316610453565b34801561075757600080fd5b506103fd6107663660046149f1565b611dae565b34801561077757600080fd5b506103fd610786366004614f16565b611efd565b34801561079757600080fd5b506105326107a636600461493e565b612099565b3480156107b757600080fd5b506107c161010081565b60405163ffffffff909116815260200161040a565b3480156107e257600080fd5b506107f66107f136600461493e565b61215e565b60405160ff909116815260200161040a565b34801561081457600080fd5b506103fd610823366004614e57565b61217f565b34801561083457600080fd5b5061039b612212565b34801561084957600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b34801561087d57600080fd5b5061062c61088c366004614f91565b6122cd565b34801561089d57600080fd5b5061039b6108ac366004614fb3565b612317565b3480156108bd57600080fd5b506104536108cc366004614fb3565b61236b565b3480156108dd57600080fd5b506103fd6108ec366004614fcc565b6123d2565b3480156108fd57600080fd5b506103fd61090c366004615028565b612493565b34801561091d57600080fd5b5061053261092c366004614962565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561096657600080fd5b504261062c565b34801561097957600080fd5b5061062c610988366004614f91565b6127aa565b34801561099957600080fd5b5061039b6109a83660046150aa565b6127f3565b3480156109b957600080fd5b5061062c600181565b3480156109ce57600080fd5b506105326109dd3660046150f5565b612869565b3480156109ee57600080fd5b5061039b6109fd36600461493e565b6128aa565b348015610a0e57600080fd5b50610a22610a1d366004614fb3565b61298e565b60405161040a9190615136565b348015610a3b57600080fd5b5061039b610a4a366004615183565b612a78565b348015610a5b57600080fd5b50610a6f610a6a3660046151af565b612af7565b60405161040a96959493929190615279565b348015610a8d57600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b348015610ac157600080fd5b50610532610ad0366004614fb3565b600090815260026020526040902054151590565b348015610af057600080fd5b50610b04610aff3660046150aa565b612be4565b60405161040a9291906152d2565b348015610b1e57600080fd5b50610453612c30565b348015610b3357600080fd5b5061039b610b42366004615183565b612cf8565b348015610b5357600080fd5b506103fd610b623660046152eb565b612e03565b348015610b7357600080fd5b50610b87610b8236600461493e565b612efb565b60408051931515845291151560208401529082015260600161040a565b348015610bb057600080fd5b5061039b610bbf366004614962565b612f4a565b6000546201000090046001600160a01b03163314610bf5576040516362e9152760e11b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015610c34576040516314f72c9f60e01b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c989190615356565b600081815260026020526040812054919250819003610cca57604051630e4f4df560e11b815260040160405180910390fd5b60006001610cd88184615385565b81548110610ce857610ce8615398565b6000918252602090912001546040516311a5465560e21b81526001600160a01b03868116600483015290911691508190634695195490602401600060405180830381600087803b158015610d3b57600080fd5b505af1158015610d4f573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201527f9279aa773f2b588996032d8de89911555039f28b13a11a7c17074330bc082d9a935001905060405180910390a150505050565b6000546201000090046001600160a01b03163314610dcc576040516362e9152760e11b815260040160405180910390fd5b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f28397090602401600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505050505050565b6000546201000090046001600160a01b03163314610e5c576040516362e9152760e11b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec09190615356565b60008181526002602052604090205490915015610ef057604051631b93bb7560e31b815260040160405180910390fd5b60015461010011610f1457604051630f85034f60e31b815260040160405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000610fce576000604051610f49906148c1565b604051809103906000f080158015610f65573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03868116600483015291925090821690634a0687ef90602401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b5050505080915050610fd1565b50815b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0384166001600160a01b0319909116179055546000838152600260205260409081902091909155517f878135063a6cfb3bc333e534b1fdc83f4f12221cad6705c31c0567048a8bd3d19061106e90849086909182526001600160a01b0316602082015260400190565b60405180910390a1505050565b606061108633612099565b6110a35760405163619c535960e01b815260040160405180910390fd5b82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110e592508391506130a59050565b6110f1576110f16153ae565b60008061116b8a6000898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c592505050565b9150915081156112805761117e81613217565b1561121857808060200190518101906111979190615409565b93506111a2846130a5565b61121357866111cc5760405163a85ba64f60e01b8152601460048201526024015b60405180910390fd5b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c91506014905061326b565b6112ba565b866112395760405163a85ba64f60e01b8152601660048201526024016111c3565b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c91506016905061326b565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505050505b5050509695505050505050565b60606112d633846000856132ec565b90505b92915050565b6000546201000090046001600160a01b03163314611310576040516362e9152760e11b815260040160405180910390fd5b604051635b69006f60e11b81527fdfd8ece9bfbcb8c5c540edb935641f63d67686490a1ab97f000288759f30a9466004820152600090309063b6d200de90602401602060405180830381865afa15801561136e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611392919061543d565b90506000816001600160a01b0316635437dd976040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f8919061543d565b604051631b2ce7f360e11b81526001600160a01b03858116600483015291925090821690633659cfe690602401600060405180830381600087803b15801561143f57600080fd5b505af1158015611453573d6000803e3d6000fd5b50506040516001600160a01b038681168252841692507f052cea8931962dd445ef48b0b998d3056bd0705f437087d60fe3c46a3fa09e1f91506020015b60405180910390a2505050565b6114a981611b1e61326b565b50565b60606114ba33858585613529565b949350505050565b6114ca6148ce565b6112d98261363a565b60608083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061151892508391506130a59050565b6115385760405163a85ba64f60e01b8152601460048201526024016111c3565b8961154281612099565b61155f5760405163619c535960e01b815260040160405180910390fd5b60006115a087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146115d15760405163066875e160e11b815260040160405180910390fd5b60608101805133909152604080516020601f8c018190048102820181019092528a8152908b908b908190840183828082843760009201919091525050505060a083015261161d82613705565b955060006116638e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508c91506138399050565b9650905080156116c257858060200190518101906116819190615409565b965061168c876130a5565b611698576116986153ae565b6116a1876114c2565b6001600160a01b038316606082015292506116bb83613705565b96506116cb565b6116cb866138f4565b505050505097509795505050505050565b6000546201000090046001600160a01b0316331461170d576040516362e9152760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000001561174c576040516314f72c9f60e01b815260040160405180910390fd5b806001600160a01b031663cd312ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae919061545a565b156117cc5760405163474e764160e01b815260040160405180910390fd5b6114a9816139ff565b60006117ff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000546201000090046001600160a01b03163314611835576040516362e9152760e11b815260040160405180910390fd5b6003546001600160a01b03166119a4577f000000000000000000000000000000000000000000000000000000000000000061191b576000604051611878906148c1565b604051809103906000f080158015611894573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03848116600483015291925090821690634a0687ef90602401600060405180830381600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b039490941693909317909255506119379050565b600380546001600160a01b0319166001600160a01b0383161790555b600360009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561198757600080fd5b505af115801561199b573d6000803e3d6000fd5b50505050611a43565b7f0000000000000000000000000000000000000000000000000000000000000000156119e3576040516314f72c9f60e01b815260040160405180910390fd5b6003546040516311a5465560e21b81526001600160a01b03838116600483015290911690634695195490602401600060405180830381600087803b158015611a2a57600080fd5b505af1158015611a3e573d6000803e3d6000fd5b505050505b6003546040516001600160a01b0390911681527fce13a9895a1719ad4493b2ac1a9bfb36070566161abab408e7ecbe586da8d499906020015b60405180910390a150565b33600081815260046020526040902054611ab4576040516302eb3f7160e61b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054611aea57604051634b5518af60e11b815260040160405180910390fd5b611af38261215e565b60ff16611aff8261215e565b60ff1611611b2057604051630447252760e41b815260040160405180910390fd5b6001600160a01b039081166000908152600560209081526040808320949093168252929092529020805460ff19166001179055565b600080546201000090046001600160a01b03166380f70cba3083611b7886613c39565b6040518463ffffffff1660e01b8152600401611b9693929190615477565b602060405180830381865afa158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd79190615356565b151592915050565b6060611bea33612099565b611c075760405163619c535960e01b815260040160405180910390fd5b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4992508391506130a59050565b611c5557611c556153ae565b6000611c9686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050838161010001818151611cab919061549b565b905250611cb781613705565b9695505050505050565b611cd3611ccc613cc1565b8383613d29565b5050565b611cd3338383613d29565b6001600160a01b0381166000908152600460205260408120546180001615156112d9565b6000546201000090046001600160a01b03163314611d37576040516362e9152760e11b815260040160405180910390fd5b600054604080516001600160a01b03620100009093048316815291831660208301527f13abda02e63c790d0e2818b251282cfe5cbe0a8abd69c54bf5d2260c0907bd2e910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6060611db933612099565b611dd65760405163619c535960e01b815260040160405180910390fd5b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e1892508391506130a59050565b611e2457611e246153ae565b600080611e9e8a6001898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c592505050565b9150915081156112ba57611eb181613217565b15611ed15780806020019051810190611eca9190615409565b93506112ba565b86611ef25760405163a85ba64f60e01b8152601660048201526024016111c3565b6112ba8a601661326b565b6060611f0833612099565b611f255760405163619c535960e01b815260040160405180910390fd5b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f6792508391506130a59050565b611f7357611f736153ae565b6000611fb489898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050611fdb81606001516001600160a01b0316600090815260046020526040902054151590565b8015611fef57506001816000015160ff1610155b156120425760608101516001600160a01b039081166000908152600560209081526040808320938b168352929052205460ff166120425760405163a85ba64f60e01b8152601e60048201526024016111c3565b80518161204e826154c3565b60ff169052506003602082015260c0810186905261010081018590526001600160a01b03808816610120830152841661014082015261208c81613705565b9998505050505050505050565b600080826001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe9190615356565b60008181526002602052604090205490915080158015906114ba57506001600160a01b03841660016121308184615385565b8154811061214057612140615398565b6000918252602090912001546001600160a01b031614949350505050565b6001600160a01b03811660009081526004602052604081205460ff166112d9565b606061218a33612099565b6121a75760405163619c535960e01b815260040160405180910390fd5b60006121e885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b90508281610100018181516121fd919061549b565b90525061220981613705565b95945050505050565b600054610100900460ff16158080156122325750600054600160ff909116105b8061224c5750303b15801561224c575060005460ff166001145b6122685760405162461bcd60e51b81526004016111c3906154e2565b6000805460ff19166001179055801561228b576000805461ff0019166101001790555b80156114a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611a7c565b6000818152600260205260408120548082036122fc57604051630e4f4df560e11b815260040160405180910390fd5b612307600182615385565b6001901b19841691505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561236157612361604051806040016040528060028152602001616b3160f01b815250326144cd565b6114a93382614576565b60008181526002602052604081205480820361239a57604051630e4f4df560e11b815260040160405180910390fd5b60016123a68183615385565b815481106123b6576123b6615398565b6000918252602090912001546001600160a01b03169392505050565b60606123dd33612099565b6123fa5760405163619c535960e01b815260040160405180910390fd5b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243c92508391506130a59050565b612448576124486153ae565b612452848461326b565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124d792508391506130a59050565b6124f75760405163a85ba64f60e01b8152601460048201526024016111c3565b6001600160a01b03871660009081526004602052604081205488918190036125325760405163163cbe4360e01b815260040160405180910390fd5b61800081161561255457604051628e12d960e21b815260040160405180910390fd5b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506125959150839050614645565b90506001600160e01b031981166330d9c91560e01b14806125c657506001600160e01b0319811663d86ed3e560e01b145b806125e157506001600160e01b03198116630221347d60e61b145b806125fc57506001600160e01b0319811663230dbd2960e01b145b8061261757506001600160e01b03198116635f9e7d7760e01b145b8061263257506001600160e01b031981166353c11f9960e01b145b15612650576040516377a14afb60e11b815260040160405180910390fd5b600061269189898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146126c2576040516311cfdef560e21b815260040160405180910390fd5b606081018051339091526126d582613705565b975060008061271c8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508f91506138399050565b91509150811561278f578080602001905181019061273a9190615409565b99506127458a6130a5565b6127655760405163a85ba64f60e01b8152601460048201526024016111c3565b61276e8a6114c2565b6001600160a01b0384166060820152935061278884613705565b9950612798565b612798816138f4565b50505050505050505095945050505050565b6000818152600260205260408120548082036127d957604051630e4f4df560e11b815260040160405180910390fd5b6127e4600182615385565b6001901b841791505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561285a5761285a82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503292506144cd915050565b6128643384614576565b505050565b60006112d683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130a592505050565b600054610100900460ff16158080156128ca5750600054600160ff909116105b806128e45750303b1580156128e4575060005460ff166001145b6129005760405162461bcd60e51b81526004016111c3906154e2565b6000805460ff191660011790558015612923576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015611cd3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60606000806001805490506001600160401b038111156129b0576129b0614aea565b6040519080825280602002602001820160405280156129d9578160200160208202803683370190505b50925060009050600091505b600154821015612a70576001821b841615612a605760018281548110612a0d57612a0d615398565b6000918252602090912001546001600160a01b03168382612a2d81615530565b935081518110612a3f57612a3f615398565b60200260200101906001600160a01b031690816001600160a01b0316815250505b612a6982615530565b91506129e5565b825250919050565b816001600160a01b03163b600003612aa35760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612aed57612aed604051806040016040528060028152602001616b3160f01b815250336144cd565b611cd38282614576565b600080600060608060608e8e8e8e8e8e8e8e8e85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815293995096975094959394509192909150859085908190840183828082843760009201919091525050604080516020601f87018190048102820181019092528581529397509495509293919250849184915081908401838280828437600092019190915250999f50979d50959b50939950919750919550505050505099509950995099509950999350505050565b6000606084848481818080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250959b929a509198505050505050505050565b6003546000906001600160a01b0316612c4b57612c4b6153ae565b7f000000000000000000000000000000000000000000000000000000000000000015612c8157506003546001600160a01b031690565b600360009054906101000a90046001600160a01b03166001600160a01b03166350d75d256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cd4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ff919061543d565b816001600160a01b03163b600003612d235760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612aed576000612d54336146a1565b6000805460405163407b865d60e11b81529293509091620100009091046001600160a01b0316906380f70cba90612d9390309085908790600401615477565b602060405180830381865afa158015612db0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd49190615356565b600114905080612df757604051630b56455f60e41b815260040160405180910390fd5b5050611cd38282614576565b60606000612e7a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061471b92505050565b90506000306001600160a01b031682604051612e969190615549565b600060405180830381855afa9150503d8060008114612ed1576040519150601f19603f3d011682016040523d82523d6000602084013e612ed6565b606091505b50935090508015612ee85750506114ba565b612ef1836138f4565b5050949350505050565b6001600160a01b038116600090815260046020908152604080832081519283019091525480825215801592918291612f4257805161800081161515935064ff000000001691505b509193909250565b6000546201000090046001600160a01b03163314612f7b576040516362e9152760e11b815260040160405180910390fd5b60006001600160a01b03821661300757600360009054906101000a90046001600160a01b03166001600160a01b0316639470a5b26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613002919061543d565b613009565b815b6040516311a5465560e21b81526001600160a01b03808316600483015291925090841690634695195490602401600060405180830381600087803b15801561305057600080fd5b505af1158015613064573d6000803e3d6000fd5b50506040516001600160a01b038481168252861692507f840acbd291b38534819f47f875839277e502f40e1c7bfea2c5fc2c8017442cd39150602001611490565b600081516000141580156112d95750600654825160208401201492915050565b600060606001600160a01b0387166130df576130df6153ae565b6130e9848461471b565b9350622dc6c060005a9050871561315f57886001600160a01b031682876040516131139190615549565b6000604051808303818686fa925050503d806000811461314f576040519150601f19603f3d011682016040523d82523d6000602084013e613154565b606091505b5090945092506131c2565b886001600160a01b031682876040516131789190615549565b60006040518083038160008787f1925050503d80600081146131b6576040519150601f19603f3d011682016040523d82523d6000602084013e6131bb565b606091505b5090945092505b8361320b576131d0816147d2565b6131f257866131e7576131e2836138f4565b61320b565b6131e289600a61326b565b604051636a7aea4b60e11b815260040160405180910390fd5b50509550959350505050565b600060408251101561322b57506000919050565b602082810151906000908214613245575060009392505050565b506040830151613254816147e8565b61325f906040615565565b84511492505050919050565b6001600160a01b038216600090815260046020526040812054618000169003611cd3576001600160a01b038216600081815260046020526040908190208054618000179055517fbe3aa33bd245135e4e26b223d79d14ea479a47bff09f2b03c53838af1edbb14b906132e09084815260200190565b60405180910390a25050565b600654606090156133135760405163a85ba64f60e01b8152601560048201526024016111c3565b6001600160a01b038416600090815260046020526040812054859181900361334e5760405163163cbe4360e01b815260040160405180910390fd5b61800081161561337057604051628e12d960e21b815260040160405180910390fd5b83600061337c82614645565b90506001600160e01b031981166330d9c91560e01b14806133ad57506001600160e01b0319811663d86ed3e560e01b145b806133c857506001600160e01b03198116630221347d60e61b145b806133e357506001600160e01b0319811663230dbd2960e01b145b806133fe57506001600160e01b03198116635f9e7d7760e01b145b8061341957506001600160e01b031981166353c11f9960e01b145b15613437576040516377a14afb60e11b815260040160405180910390fd5b60408051610160810182526000808252600260208084019190915242838501526001600160a01b03808e16606085015260808401839052845191820190945281815260a083015260c0820181905260e082018190526101008201819052918a1661012082015261014081018290526134ae90613705565b905060006134be8a898b85613839565b97509050801561350c57868060200190518101906134dc9190615409565b91506134e7826130a5565b6135075760405163a85ba64f60e01b8152601460048201526024016111c3565b613515565b613515876138f4565b505060006006555092979650505050505050565b600654606090156135505760405163a85ba64f60e01b8152601560048201526024016111c3565b8361355a81612099565b6135775760405163619c535960e01b815260040160405180910390fd5b600061358285614645565b60408051610160810182526000808252600160208301529293506136059181014281526020018a6001600160a01b03168152602001846001600160e01b031916815260200187815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815250613705565b905060006136168888600085613839565b955090508061362857613628856138f4565b50506000600655509095945050505050565b6136426148ce565b606080838060200190518101906136599190615578565b8151919350915060009061367690840160209081019085016155d1565b60a08901526001600160e01b03191660808801526001600160a01b031660608701526040860152602081811c600f168187015260ff90911685528251600092506136c7919084018101908401615655565b6001600160a01b03908116610140890152166101208701526101008601526001600160801b03811660c086015260801c60e085015250919392505050565b60606001826000015160ff1611156137335760405163a85ba64f60e01b8152602860048201526024016111c3565b815160208084015160009260ff1664ff000000009190921b16179050600060806137608560e00151614821565b6001600160801b0316901b6137788560c00151614821565b6001600160801b0316179050818460400151856060015186608001518760a001516040516020016137ad9594939291906156a0565b60408051601f1981840301815282825261010087015161012088015161014089015160208601879052938501919091526001600160a01b03908116606085015290911660808301529060a00160408051601f19818403018152908290526138179291602001614e32565b60408051601f1981840301815291905280516020820120600655949350505050565b600060606001600160a01b038616613853576138536153ae565b61385d858461471b565b9450856001600160a01b031684866040516138789190615549565b60006040518083038185875af1925050503d80600081146138b5576040519150601f19603f3d011682016040523d82523d6000602084013e6138ba565b606091505b50909250905081156138eb5780516000036138eb5760405163a85ba64f60e01b8152601660048201526024016111c3565b94509492505050565b6004815110156139465760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a2074617267657420726576657274282900000000000060448201526064016111c3565b602081015163b1b7848f60e01b6001600160e01b03198216016139f65760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b81529192916111c391849101614ad7565b81518060208401fd5b6000613a297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603613a7f5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016111c3565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613abd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae19190615356565b7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba7414613b5b5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016111c3565b6001600160a01b0381163003613bb35760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016111c3565b613bdb817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba74604080519182526001600160a01b038416602083015201611a7c565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b600060183610801590613cd85750613cd833611b55565b613d1c5760405162461bcd60e51b81526020600482015260156024820152742737ba103a393ab9ba32b2103337b93bb0b93232b960591b60448201526064016111c3565b5060131936013560601c90565b6000805b82811015614486576000848483818110613d4957613d49615398565b9050602002810190613d5b91906156ec565b613d69906020810190615702565b905060001963ffffffff821601613e5d57600080868685818110613d8f57613d8f615398565b9050602002810190613da191906156ec565b613daf906040810190615728565b810190613dbc9190615183565b91509150868685818110613dd257613dd2615398565b9050602002810190613de491906156ec565b613df590604081019060200161493e565b6001600160a01b03166362aa52878984846040518463ffffffff1660e01b8152600401613e2493929190615477565b600060405180830381600087803b158015613e3e57600080fd5b505af1158015613e52573d6000803e3d6000fd5b505050505050614475565b60011963ffffffff821601613f68576000806000878786818110613e8357613e83615398565b9050602002810190613e9591906156ec565b613ea3906040810190615728565b810190613eb0919061576e565b925092509250878786818110613ec857613ec8615398565b9050602002810190613eda91906156ec565b613eeb90604081019060200161493e565b604051630b682aeb60e11b81526001600160a01b038b81166004830152858116602483015284811660448301526064820184905291909116906316d055d6906084015b600060405180830381600087803b158015613f4857600080fd5b505af1158015613f5c573d6000803e3d6000fd5b50505050505050614475565b60021963ffffffff821601614027576000806000878786818110613f8e57613f8e615398565b9050602002810190613fa091906156ec565b613fae906040810190615728565b810190613fbb91906157af565b925092509250878786818110613fd357613fd3615398565b9050602002810190613fe591906156ec565b613ff690604081019060200161493e565b6001600160a01b031663ca0c1e7f8a8585856040518563ffffffff1660e01b8152600401613f2e94939291906157fd565b60031963ffffffff8216016140e05760008086868581811061404b5761404b615398565b905060200281019061405d91906156ec565b61406b906040810190615728565b8101906140789190615183565b9150915086868581811061408e5761408e615398565b90506020028101906140a091906156ec565b6140b190604081019060200161493e565b6001600160a01b0316634b2763b38984846040518463ffffffff1660e01b8152600401613e2493929190615477565b60041963ffffffff8216016141995760008086868581811061410457614104615398565b905060200281019061411691906156ec565b614124906040810190615728565b8101906141319190615183565b9150915086868581811061414757614147615398565b905060200281019061415991906156ec565b61416a90604081019060200161493e565b6001600160a01b031663c780fd828984846040518463ffffffff1660e01b8152600401613e2493929190615477565b60641963ffffffff82160161428e578484838181106141ba576141ba615398565b90506020028101906141cc91906156ec565b6141dd90604081019060200161493e565b6001600160a01b031663ca789464878787868181106141fe576141fe615398565b905060200281019061421091906156ec565b61421e906040810190615728565b81019061422b9190614fb3565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561427157600080fd5b505af1158015614285573d6000803e3d6000fd5b50505050614475565b60651963ffffffff8216016142f3578484838181106142af576142af615398565b90506020028101906142c191906156ec565b6142d290604081019060200161493e565b6001600160a01b031663245887fc878787868181106141fe576141fe615398565b60c81963ffffffff8216016143905760008086868581811061431757614317615398565b905060200281019061432991906156ec565b614337906040810190615728565b8101906143449190615830565b915091506143888888888781811061435e5761435e615398565b905060200281019061437091906156ec565b61438190604081019060200161493e565b8484613529565b505050614475565b60c91963ffffffff82160161445c57614452868686858181106143b5576143b5615398565b90506020028101906143c791906156ec565b6143d890604081019060200161493e565b856143e357346143e6565b60005b8888878181106143f8576143f8615398565b905060200281019061440a91906156ec565b614418906040810190615728565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132ec92505050565b5060019250614475565b60405163b477011560e01b815260040160405180910390fd5b5061447f81615530565b9050613d2d565b503415801590614494575080155b156144c75760405133903480156108fc02916000818181858888f193505050501580156144c5573d6000803e3d6000fd5b505b50505050565b60006144d9828461488e565b6000805460405163407b865d60e11b81529293504292620100009091046001600160a01b0316916380f70cba916145169130918790600401615477565b602060405180830381865afa158015614533573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145579190615356565b101561286457604051630b56455f60e41b815260040160405180910390fd5b64ff000080ff19811615158061458d575060ff8116155b8061459b5750618000811615155b156145b957604051633d3200a960e21b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054156145f0576040516301b0a93560e01b815260040160405180910390fd5b60408051602080820183528382526001600160a01b038516600081815260049092528382209251909255915190917f0d540ad8f39e07d19909687352b9fa017405d93c91a6760981fbae9cf28bfef791a25050565b60006004825110156146995760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e76616c69642063616c6c44617461000000000060448201526064016111c3565b506020015190565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c001613ca4565b815180830151606091908015614744576040516367e9985b60e01b815260040160405180910390fd5b50601f198101845282518490848161475b816147e8565b6147659190615385565b6001600160401b0381111561477c5761477c614aea565b6040519080825280601f01601f1916602001820160405280156147a6576020820181803683370190505b506040516020016147ba9493929190615889565b60405160208183030381529060405291505092915050565b60006147df6040836158d8565b5a111592915050565b60008082601f16116147fb5760006147fe565b60015b60ff1661480c6020846158d8565b6148169190615565565b6112d99060206158fa565b60006001600160801b0382111561488a5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016111c3565b5090565b600082826040516020016148a3929190615911565b60405160208183030381529060405280519060200120905092915050565b61024a8061599783390190565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6001600160a01b03811681146114a957600080fd5b60006020828403121561495057600080fd5b813561495b81614929565b9392505050565b6000806040838503121561497557600080fd5b823561498081614929565b9150602083013561499081614929565b809150509250929050565b60008083601f8401126149ad57600080fd5b5081356001600160401b038111156149c457600080fd5b6020830191508360208285010111156149dc57600080fd5b9250929050565b80151581146114a957600080fd5b60008060008060008060808789031215614a0a57600080fd5b8635614a1581614929565b955060208701356001600160401b0380821115614a3157600080fd5b614a3d8a838b0161499b565b909750955060408901359150614a52826149e3565b90935060608801359080821115614a6857600080fd5b50614a7589828a0161499b565b979a9699509497509295939492505050565b60005b83811015614aa2578181015183820152602001614a8a565b50506000910152565b60008151808452614ac3816020860160208601614a87565b601f01601f19169290920160200192915050565b6020815260006112d66020830184614aab565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614b2857614b28614aea565b604052919050565b60006001600160401b03821115614b4957614b49614aea565b50601f01601f191660200190565b600082601f830112614b6857600080fd5b8135614b7b614b7682614b30565b614b00565b818152846020838601011115614b9057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614bc057600080fd5b8235614bcb81614929565b915060208301356001600160401b03811115614be657600080fd5b614bf285828601614b57565b9150509250929050565b600080600060608486031215614c1157600080fd5b8335614c1c81614929565b925060208401356001600160401b0380821115614c3857600080fd5b614c4487838801614b57565b93506040860135915080821115614c5a57600080fd5b50614c6786828701614b57565b9150509250925092565b600060208284031215614c8357600080fd5b81356001600160401b03811115614c9957600080fd5b6114ba84828501614b57565b60208152614cb960208201835160ff169052565b60006020830151614ccf604084018260ff169052565b50604083015160608301526060830151614cf460808401826001600160a01b03169052565b5060808301516001600160e01b0319811660a08401525060a08301516101608060c0850152614d27610180850183614aab565b915060c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151915050610140614d6d818701836001600160a01b03169052565b909501516001600160a01b031693019290925250919050565b60008060008060008060006080888a031215614da157600080fd5b8735614dac81614929565b965060208801356001600160401b0380821115614dc857600080fd5b614dd48b838c0161499b565b909850965060408a0135915080821115614ded57600080fd5b614df98b838c0161499b565b909650945060608a0135915080821115614e1257600080fd5b50614e1f8a828b0161499b565b989b979a50959850939692959293505050565b604081526000614e456040830185614aab565b82810360208401526122098185614aab565b600080600060408486031215614e6c57600080fd5b83356001600160401b03811115614e8257600080fd5b614e8e8682870161499b565b909790965060209590950135949350505050565b60008060208385031215614eb557600080fd5b82356001600160401b0380821115614ecc57600080fd5b818501915085601f830112614ee057600080fd5b813581811115614eef57600080fd5b8660208260051b8501011115614f0457600080fd5b60209290920196919550909350505050565b60008060008060008060a08789031215614f2f57600080fd5b86356001600160401b03811115614f4557600080fd5b614f5189828a0161499b565b9097509550506020870135614f6581614929565b935060408701359250606087013591506080870135614f8381614929565b809150509295509295509295565b60008060408385031215614fa457600080fd5b50508035926020909101359150565b600060208284031215614fc557600080fd5b5035919050565b60008060008060608587031215614fe257600080fd5b84356001600160401b03811115614ff857600080fd5b6150048782880161499b565b909550935050602085013561501881614929565b9396929550929360400135925050565b60008060008060006060868803121561504057600080fd5b853561504b81614929565b945060208601356001600160401b038082111561506757600080fd5b61507389838a0161499b565b9096509450604088013591508082111561508c57600080fd5b506150998882890161499b565b969995985093965092949392505050565b6000806000604084860312156150bf57600080fd5b8335925060208401356001600160401b038111156150dc57600080fd5b6150e88682870161499b565b9497909650939450505050565b6000806020838503121561510857600080fd5b82356001600160401b0381111561511e57600080fd5b61512a8582860161499b565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156151775783516001600160a01b031683529284019291840191600101615152565b50909695505050505050565b6000806040838503121561519657600080fd5b82356151a181614929565b946020939093013593505050565b600080600080600080600080600060c08a8c0312156151cd57600080fd5b89356151d881614929565b985060208a01356151e881614929565b975060408a0135965060608a01356001600160401b038082111561520b57600080fd5b6152178d838e0161499b565b909850965060808c013591508082111561523057600080fd5b61523c8d838e0161499b565b909650945060a08c013591508082111561525557600080fd5b506152628c828d0161499b565b915080935050809150509295985092959850929598565b6001600160a01b038781168252861660208201526040810185905260c0606082018190526000906152ac90830186614aab565b82810360808401526152be8186614aab565b905082810360a084015261208c8185614aab565b8281526040602082015260006114ba6040830184614aab565b6000806000806040858703121561530157600080fd5b84356001600160401b038082111561531857600080fd5b6153248883890161499b565b9096509450602087013591508082111561533d57600080fd5b5061534a8782880161499b565b95989497509550505050565b60006020828403121561536857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112d9576112d961536f565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082601f8301126153d557600080fd5b81516153e3614b7682614b30565b8181528460208386010111156153f857600080fd5b6114ba826020830160208701614a87565b60006020828403121561541b57600080fd5b81516001600160401b0381111561543157600080fd5b6114ba848285016153c4565b60006020828403121561544f57600080fd5b815161495b81614929565b60006020828403121561546c57600080fd5b815161495b816149e3565b6001600160a01b039384168152919092166020820152604081019190915260600190565b80820182811260008312801582168215821617156154bb576154bb61536f565b505092915050565b600060ff821660ff81036154d9576154d961536f565b60010192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000600182016155425761554261536f565b5060010190565b6000825161555b818460208701614a87565b9190910192915050565b808201808211156112d9576112d961536f565b6000806040838503121561558b57600080fd5b82516001600160401b03808211156155a257600080fd5b6155ae868387016153c4565b935060208501519150808211156155c457600080fd5b50614bf2858286016153c4565b600080600080600060a086880312156155e957600080fd5b8551945060208601519350604086015161560281614929565b60608701519093506001600160e01b03198116811461562057600080fd5b60808701519092506001600160401b0381111561563c57600080fd5b615648888289016153c4565b9150509295509295909350565b6000806000806080858703121561566b57600080fd5b8451935060208501519250604085015161568481614929565b606086015190925061569581614929565b939692955090935050565b858152602081018590526001600160a01b03841660408201526001600160e01b03198316606082015260a0608082018190526000906156e190830184614aab565b979650505050505050565b60008235605e1983360301811261555b57600080fd5b60006020828403121561571457600080fd5b813563ffffffff8116811461495b57600080fd5b6000808335601e1984360301811261573f57600080fd5b8301803591506001600160401b0382111561575957600080fd5b6020019150368190038213156149dc57600080fd5b60008060006060848603121561578357600080fd5b833561578e81614929565b9250602084013561579e81614929565b929592945050506040919091013590565b6000806000606084860312156157c457600080fd5b83356157cf81614929565b92506020840135915060408401356001600160401b038111156157f157600080fd5b614c6786828701614b57565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611cb790830184614aab565b6000806040838503121561584357600080fd5b82356001600160401b038082111561585a57600080fd5b61586686838701614b57565b9350602085013591508082111561587c57600080fd5b50614bf285828601614b57565b60008551602061589c8285838b01614a87565b818401915086825285516158b581838501848a01614a87565b85519201916158c981838501848901614a87565b91909101019695505050505050565b6000826158f557634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176112d9576112d961536f565b60608152604160608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e726567697374726174696f6e4b6560a0820152607960f81b60c082015260018060a01b038316602082015260e0604082015260006114ba60e0830184614aab56fe608060405234801561001057600080fd5b5061022a806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046101c4565b61006b565b610069610064610171565b6101a0565b565b6001600160a01b0381166100c65760405162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f206164647265737300000000000000000060448201526064015b60405180910390fd5b60006100f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146101465760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100bd565b61016e817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50565b600061019b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b3660008037600080366000845af43d6000803e8080156101bf573d6000f35b3d6000fd5b6000602082840312156101d657600080fd5b81356001600160a01b03811681146101ed57600080fd5b939250505056fea264697066735822122093a2bbcf49dd2895177212eeb11e9921080374fd8cd93d5be93a80935603195a64736f6c63430008130033a264697066735822122038669e4b956819c7b9f156a6be1680fb6cbe40b5f73877c5bfa8fd9765957afe64736f6c63430008130033";
15
+ static readonly bytecode = "0x60c06040523480156200001157600080fd5b5060405162005d1538038062005d1583398101604081905262000034916200005b565b901515608052151560a05262000093565b805180151581146200005657600080fd5b919050565b600080604083850312156200006f57600080fd5b6200007a8362000045565b91506200008a6020840162000045565b90509250929050565b60805160a051615c16620000ff6000396000818161084f01528181612319015281816127f501528181612aa50152612d25015260008181610a9301528181610bf701528181610f180152818161170f01528181611847015281816119a60152612c4d0152615c166000f3fe6080604052600436106103765760003560e01c80638ca48484116101d1578063bd1c448b11610102578063cd312ec4116100a0578063f37330521161006f578063f373305214610b27578063f539866114610b47578063f9f522f414610b67578063fa6e0cfe14610ba457600080fd5b8063cd312ec414610a81578063e8dccb7d14610ab5578063eb5bf90114610ae4578063f2e55caf14610b1257600080fd5b8063c4d66de8116100dc578063c4d66de8146109e2578063c56a069d14610a02578063c60944a614610a2f578063c6ae797314610a4f57600080fd5b8063bd1c448b1461098d578063bd3252c8146109ad578063bf428734146109c257600080fd5b8063ad3915c81161016f578063ba48b5f811610149578063ba48b5f8146108f1578063bb84cfa114610911578063bbe4fd501461095a578063bced3ddc1461096d57600080fd5b8063ad3915c814610891578063b6d200de146108b1578063b724211e146108d157600080fd5b8063989b0c3e116101ab578063989b0c3e146108085780639903ad38146108285780639d297e301461083d578063a5dbbbcd1461087157600080fd5b80638ca484841461078b5780638ceddd7a146107ab5780639378fa13146107d657600080fd5b8063486ff0cd116102ab578063670e77e3116102495780637283100c116102235780637283100c1461070d578063731aed6e1461072d57806374041e021461074b578063768fabb01461076b57600080fd5b8063670e77e3146106ba5780636ad3ca7d146106da5780636b4f3335146106ed57600080fd5b806354fbc4931161028557806354fbc4931461063a57806357121e0c1461065a578063572b6c051461067a57806359a291411461069a57600080fd5b8063486ff0cd146105bd57806350d75d25146105e857806352d1902d146105fd57600080fd5b806333511863116103185780633ca3ad4e116102f25780633ca3ad4e146104fa5780633f6c923a146105425780634329d2931461056f578063469519541461059d57600080fd5b8063335118631461048b57806333d608f1146104ab57806339255d5b146104da57600080fd5b80631e6d0a84116103545780631e6d0a84146103dd5780631e855cf314610413578063289b3c0d146104335780632f89bf891461046b57600080fd5b806306cecba81461037b5780630c5650751461039d57806315a024e1146103bd575b600080fd5b34801561038757600080fd5b5061039b61039636600461493e565b610bc4565b005b3480156103a957600080fd5b5061039b6103b8366004614962565b610d9b565b3480156103c957600080fd5b5061039b6103d836600461493e565b610e2b565b3480156103e957600080fd5b506103fd6103f83660046149f1565b61107b565b60405161040a9190614ad7565b60405180910390f35b34801561041f57600080fd5b506103fd61042e366004614bad565b6112c7565b34801561043f57600080fd5b506000546201000090046001600160a01b03165b6040516001600160a01b03909116815260200161040a565b34801561047757600080fd5b5061039b61048636600461493e565b6112df565b34801561049757600080fd5b5061039b6104a636600461493e565b61149d565b3480156104b757600080fd5b506104c2622dc6c081565b6040516001600160401b03909116815260200161040a565b3480156104e657600080fd5b506103fd6104f5366004614bfc565b6114ac565b34801561050657600080fd5b5061053261051536600461493e565b6001600160a01b0316600090815260046020526040902054151590565b604051901515815260200161040a565b34801561054e57600080fd5b5061056261055d366004614c71565b6114c2565b60405161040a9190614ca5565b34801561057b57600080fd5b5061058f61058a366004614d86565b6114d3565b60405161040a929190614e32565b3480156105a957600080fd5b5061039b6105b836600461493e565b6116dc565b3480156105c957600080fd5b50604080518082019091526002815261763160f01b60208201526103fd565b3480156105f457600080fd5b506104536117d5565b34801561060957600080fd5b507fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba745b60405190815260200161040a565b34801561064657600080fd5b5061039b61065536600461493e565b611804565b34801561066657600080fd5b5061039b61067536600461493e565b611a87565b34801561068657600080fd5b5061053261069536600461493e565b611b55565b3480156106a657600080fd5b506103fd6106b5366004614e57565b611bdf565b3480156106c657600080fd5b5061039b6106d5366004614ea2565b611cc1565b61039b6106e8366004614ea2565b611cd7565b3480156106f957600080fd5b5061053261070836600461493e565b611ce2565b34801561071957600080fd5b5061039b61072836600461493e565b611d06565b34801561073957600080fd5b506003546001600160a01b0316610453565b34801561075757600080fd5b506103fd6107663660046149f1565b611dae565b34801561077757600080fd5b506103fd610786366004614f16565b611efd565b34801561079757600080fd5b506105326107a636600461493e565b612099565b3480156107b757600080fd5b506107c161010081565b60405163ffffffff909116815260200161040a565b3480156107e257600080fd5b506107f66107f136600461493e565b61215e565b60405160ff909116815260200161040a565b34801561081457600080fd5b506103fd610823366004614e57565b61217f565b34801561083457600080fd5b5061039b612212565b34801561084957600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b34801561087d57600080fd5b5061062c61088c366004614f91565b6122cd565b34801561089d57600080fd5b5061039b6108ac366004614fb3565b612317565b3480156108bd57600080fd5b506104536108cc366004614fb3565b61236b565b3480156108dd57600080fd5b506103fd6108ec366004614fcc565b6123d2565b3480156108fd57600080fd5b506103fd61090c366004615028565b612493565b34801561091d57600080fd5b5061053261092c366004614962565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561096657600080fd5b504261062c565b34801561097957600080fd5b5061062c610988366004614f91565b6127aa565b34801561099957600080fd5b5061039b6109a83660046150aa565b6127f3565b3480156109b957600080fd5b5061062c600181565b3480156109ce57600080fd5b506105326109dd3660046150f5565b612869565b3480156109ee57600080fd5b5061039b6109fd36600461493e565b6128aa565b348015610a0e57600080fd5b50610a22610a1d366004614fb3565b61298e565b60405161040a9190615136565b348015610a3b57600080fd5b5061039b610a4a366004615183565b612a78565b348015610a5b57600080fd5b50610a6f610a6a3660046151af565b612af7565b60405161040a96959493929190615279565b348015610a8d57600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b348015610ac157600080fd5b50610532610ad0366004614fb3565b600090815260026020526040902054151590565b348015610af057600080fd5b50610b04610aff3660046150aa565b612be4565b60405161040a9291906152d2565b348015610b1e57600080fd5b50610453612c30565b348015610b3357600080fd5b5061039b610b42366004615183565b612cf8565b348015610b5357600080fd5b506103fd610b623660046152eb565b612e03565b348015610b7357600080fd5b50610b87610b8236600461493e565b612efb565b60408051931515845291151560208401529082015260600161040a565b348015610bb057600080fd5b5061039b610bbf366004614962565b612f4a565b6000546201000090046001600160a01b03163314610bf5576040516362e9152760e11b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015610c34576040516314f72c9f60e01b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c989190615356565b600081815260026020526040812054919250819003610cca57604051630e4f4df560e11b815260040160405180910390fd5b60006001610cd88184615385565b81548110610ce857610ce8615398565b6000918252602090912001546040516311a5465560e21b81526001600160a01b03868116600483015290911691508190634695195490602401600060405180830381600087803b158015610d3b57600080fd5b505af1158015610d4f573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201527f9279aa773f2b588996032d8de89911555039f28b13a11a7c17074330bc082d9a935001905060405180910390a150505050565b6000546201000090046001600160a01b03163314610dcc576040516362e9152760e11b815260040160405180910390fd5b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f28397090602401600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505050505050565b6000546201000090046001600160a01b03163314610e5c576040516362e9152760e11b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec09190615356565b60008181526002602052604090205490915015610ef057604051631b93bb7560e31b815260040160405180910390fd5b60015461010011610f1457604051630f85034f60e31b815260040160405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000610fce576000604051610f49906148c1565b604051809103906000f080158015610f65573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03868116600483015291925090821690634a0687ef90602401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b5050505080915050610fd1565b50815b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0384166001600160a01b0319909116179055546000838152600260205260409081902091909155517f878135063a6cfb3bc333e534b1fdc83f4f12221cad6705c31c0567048a8bd3d19061106e90849086909182526001600160a01b0316602082015260400190565b60405180910390a1505050565b606061108633612099565b6110a35760405163619c535960e01b815260040160405180910390fd5b82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110e592508391506130a59050565b6110f1576110f16153ae565b60008061116b8a6000898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c592505050565b9150915081156112805761117e81613217565b1561121857808060200190518101906111979190615409565b93506111a2846130a5565b61121357866111cc5760405163a85ba64f60e01b8152601460048201526024015b60405180910390fd5b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c91506014905061326b565b6112ba565b866112395760405163a85ba64f60e01b8152601660048201526024016111c3565b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c91506016905061326b565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505050505b5050509695505050505050565b60606112d633846000856132ec565b90505b92915050565b6000546201000090046001600160a01b03163314611310576040516362e9152760e11b815260040160405180910390fd5b604051635b69006f60e11b81527fdfd8ece9bfbcb8c5c540edb935641f63d67686490a1ab97f000288759f30a9466004820152600090309063b6d200de90602401602060405180830381865afa15801561136e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611392919061543d565b90506000816001600160a01b0316635437dd976040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f8919061543d565b604051631b2ce7f360e11b81526001600160a01b03858116600483015291925090821690633659cfe690602401600060405180830381600087803b15801561143f57600080fd5b505af1158015611453573d6000803e3d6000fd5b50506040516001600160a01b038681168252841692507f052cea8931962dd445ef48b0b998d3056bd0705f437087d60fe3c46a3fa09e1f91506020015b60405180910390a2505050565b6114a981611b1e61326b565b50565b60606114ba33858585613529565b949350505050565b6114ca6148ce565b6112d98261363a565b60608083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061151892508391506130a59050565b6115385760405163a85ba64f60e01b8152601460048201526024016111c3565b8961154281612099565b61155f5760405163619c535960e01b815260040160405180910390fd5b60006115a087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146115d15760405163066875e160e11b815260040160405180910390fd5b60608101805133909152604080516020601f8c018190048102820181019092528a8152908b908b908190840183828082843760009201919091525050505060a083015261161d82613705565b955060006116638e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508c91506138399050565b9650905080156116c257858060200190518101906116819190615409565b965061168c876130a5565b611698576116986153ae565b6116a1876114c2565b6001600160a01b038316606082015292506116bb83613705565b96506116cb565b6116cb866138f4565b505050505097509795505050505050565b6000546201000090046001600160a01b0316331461170d576040516362e9152760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000001561174c576040516314f72c9f60e01b815260040160405180910390fd5b806001600160a01b031663cd312ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae919061545a565b156117cc5760405163474e764160e01b815260040160405180910390fd5b6114a9816139ff565b60006117ff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000546201000090046001600160a01b03163314611835576040516362e9152760e11b815260040160405180910390fd5b6003546001600160a01b03166119a4577f000000000000000000000000000000000000000000000000000000000000000061191b576000604051611878906148c1565b604051809103906000f080158015611894573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03848116600483015291925090821690634a0687ef90602401600060405180830381600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b039490941693909317909255506119379050565b600380546001600160a01b0319166001600160a01b0383161790555b600360009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561198757600080fd5b505af115801561199b573d6000803e3d6000fd5b50505050611a43565b7f0000000000000000000000000000000000000000000000000000000000000000156119e3576040516314f72c9f60e01b815260040160405180910390fd5b6003546040516311a5465560e21b81526001600160a01b03838116600483015290911690634695195490602401600060405180830381600087803b158015611a2a57600080fd5b505af1158015611a3e573d6000803e3d6000fd5b505050505b6003546040516001600160a01b0390911681527fce13a9895a1719ad4493b2ac1a9bfb36070566161abab408e7ecbe586da8d499906020015b60405180910390a150565b33600081815260046020526040902054611ab4576040516302eb3f7160e61b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054611aea57604051634b5518af60e11b815260040160405180910390fd5b611af38261215e565b60ff16611aff8261215e565b60ff1611611b2057604051630447252760e41b815260040160405180910390fd5b6001600160a01b039081166000908152600560209081526040808320949093168252929092529020805460ff19166001179055565b600080546201000090046001600160a01b03166380f70cba3083611b7886613c39565b6040518463ffffffff1660e01b8152600401611b9693929190615477565b602060405180830381865afa158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd79190615356565b151592915050565b6060611bea33612099565b611c075760405163619c535960e01b815260040160405180910390fd5b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4992508391506130a59050565b611c5557611c556153ae565b6000611c9686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050838161010001818151611cab919061549b565b905250611cb781613705565b9695505050505050565b611cd3611ccc613cc1565b8383613d29565b5050565b611cd3338383613d29565b6001600160a01b0381166000908152600460205260408120546180001615156112d9565b6000546201000090046001600160a01b03163314611d37576040516362e9152760e11b815260040160405180910390fd5b600054604080516001600160a01b03620100009093048316815291831660208301527f13abda02e63c790d0e2818b251282cfe5cbe0a8abd69c54bf5d2260c0907bd2e910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6060611db933612099565b611dd65760405163619c535960e01b815260040160405180910390fd5b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e1892508391506130a59050565b611e2457611e246153ae565b600080611e9e8a6001898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c592505050565b9150915081156112ba57611eb181613217565b15611ed15780806020019051810190611eca9190615409565b93506112ba565b86611ef25760405163a85ba64f60e01b8152601660048201526024016111c3565b6112ba8a601661326b565b6060611f0833612099565b611f255760405163619c535960e01b815260040160405180910390fd5b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f6792508391506130a59050565b611f7357611f736153ae565b6000611fb489898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050611fdb81606001516001600160a01b0316600090815260046020526040902054151590565b8015611fef57506001816000015160ff1610155b156120425760608101516001600160a01b039081166000908152600560209081526040808320938b168352929052205460ff166120425760405163a85ba64f60e01b8152601e60048201526024016111c3565b80518161204e826154c3565b60ff169052506003602082015260c0810186905261010081018590526001600160a01b03808816610120830152841661014082015261208c81613705565b9998505050505050505050565b600080826001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe9190615356565b60008181526002602052604090205490915080158015906114ba57506001600160a01b03841660016121308184615385565b8154811061214057612140615398565b6000918252602090912001546001600160a01b031614949350505050565b6001600160a01b03811660009081526004602052604081205460ff166112d9565b606061218a33612099565b6121a75760405163619c535960e01b815260040160405180910390fd5b60006121e885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b90508281610100018181516121fd919061549b565b90525061220981613705565b95945050505050565b600054610100900460ff16158080156122325750600054600160ff909116105b8061224c5750303b15801561224c575060005460ff166001145b6122685760405162461bcd60e51b81526004016111c3906154e2565b6000805460ff19166001179055801561228b576000805461ff0019166101001790555b80156114a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611a7c565b6000818152600260205260408120548082036122fc57604051630e4f4df560e11b815260040160405180910390fd5b612307600182615385565b6001901b19841691505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561236157612361604051806040016040528060028152602001616b3160f01b815250326144cd565b6114a93382614576565b60008181526002602052604081205480820361239a57604051630e4f4df560e11b815260040160405180910390fd5b60016123a68183615385565b815481106123b6576123b6615398565b6000918252602090912001546001600160a01b03169392505050565b60606123dd33612099565b6123fa5760405163619c535960e01b815260040160405180910390fd5b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243c92508391506130a59050565b612448576124486153ae565b612452848461326b565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124d792508391506130a59050565b6124f75760405163a85ba64f60e01b8152601460048201526024016111c3565b6001600160a01b03871660009081526004602052604081205488918190036125325760405163163cbe4360e01b815260040160405180910390fd5b61800081161561255457604051628e12d960e21b815260040160405180910390fd5b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506125959150839050614645565b90506001600160e01b031981166330d9c91560e01b14806125c657506001600160e01b0319811663d86ed3e560e01b145b806125e157506001600160e01b03198116630221347d60e61b145b806125fc57506001600160e01b0319811663230dbd2960e01b145b8061261757506001600160e01b03198116635f9e7d7760e01b145b8061263257506001600160e01b031981166353c11f9960e01b145b15612650576040516377a14afb60e11b815260040160405180910390fd5b600061269189898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146126c2576040516311cfdef560e21b815260040160405180910390fd5b606081018051339091526126d582613705565b975060008061271c8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508f91506138399050565b91509150811561278f578080602001905181019061273a9190615409565b99506127458a6130a5565b6127655760405163a85ba64f60e01b8152601460048201526024016111c3565b61276e8a6114c2565b6001600160a01b0384166060820152935061278884613705565b9950612798565b612798816138f4565b50505050505050505095945050505050565b6000818152600260205260408120548082036127d957604051630e4f4df560e11b815260040160405180910390fd5b6127e4600182615385565b6001901b841791505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561285a5761285a82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503292506144cd915050565b6128643384614576565b505050565b60006112d683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130a592505050565b600054610100900460ff16158080156128ca5750600054600160ff909116105b806128e45750303b1580156128e4575060005460ff166001145b6129005760405162461bcd60e51b81526004016111c3906154e2565b6000805460ff191660011790558015612923576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015611cd3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60606000806001805490506001600160401b038111156129b0576129b0614aea565b6040519080825280602002602001820160405280156129d9578160200160208202803683370190505b50925060009050600091505b600154821015612a70576001821b841615612a605760018281548110612a0d57612a0d615398565b6000918252602090912001546001600160a01b03168382612a2d81615530565b935081518110612a3f57612a3f615398565b60200260200101906001600160a01b031690816001600160a01b0316815250505b612a6982615530565b91506129e5565b825250919050565b816001600160a01b03163b600003612aa35760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612aed57612aed604051806040016040528060028152602001616b3160f01b815250336144cd565b611cd38282614576565b600080600060608060608e8e8e8e8e8e8e8e8e85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815293995096975094959394509192909150859085908190840183828082843760009201919091525050604080516020601f87018190048102820181019092528581529397509495509293919250849184915081908401838280828437600092019190915250999f50979d50959b50939950919750919550505050505099509950995099509950999350505050565b6000606084848481818080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250959b929a509198505050505050505050565b6003546000906001600160a01b0316612c4b57612c4b6153ae565b7f000000000000000000000000000000000000000000000000000000000000000015612c8157506003546001600160a01b031690565b600360009054906101000a90046001600160a01b03166001600160a01b03166350d75d256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cd4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ff919061543d565b816001600160a01b03163b600003612d235760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612aed576000612d54336146a1565b6000805460405163407b865d60e11b81529293509091620100009091046001600160a01b0316906380f70cba90612d9390309085908790600401615477565b602060405180830381865afa158015612db0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd49190615356565b600114905080612df757604051630b56455f60e41b815260040160405180910390fd5b5050611cd38282614576565b60606000612e7a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061471b92505050565b90506000306001600160a01b031682604051612e969190615549565b600060405180830381855afa9150503d8060008114612ed1576040519150601f19603f3d011682016040523d82523d6000602084013e612ed6565b606091505b50935090508015612ee85750506114ba565b612ef1836138f4565b5050949350505050565b6001600160a01b038116600090815260046020908152604080832081519283019091525480825215801592918291612f4257805161800081161515935064ff000000001691505b509193909250565b6000546201000090046001600160a01b03163314612f7b576040516362e9152760e11b815260040160405180910390fd5b60006001600160a01b03821661300757600360009054906101000a90046001600160a01b03166001600160a01b0316639470a5b26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613002919061543d565b613009565b815b6040516311a5465560e21b81526001600160a01b03808316600483015291925090841690634695195490602401600060405180830381600087803b15801561305057600080fd5b505af1158015613064573d6000803e3d6000fd5b50506040516001600160a01b038481168252861692507f840acbd291b38534819f47f875839277e502f40e1c7bfea2c5fc2c8017442cd39150602001611490565b600081516000141580156112d95750600654825160208401201492915050565b600060606001600160a01b0387166130df576130df6153ae565b6130e9848461471b565b9350622dc6c060005a9050871561315f57886001600160a01b031682876040516131139190615549565b6000604051808303818686fa925050503d806000811461314f576040519150601f19603f3d011682016040523d82523d6000602084013e613154565b606091505b5090945092506131c2565b886001600160a01b031682876040516131789190615549565b60006040518083038160008787f1925050503d80600081146131b6576040519150601f19603f3d011682016040523d82523d6000602084013e6131bb565b606091505b5090945092505b8361320b576131d0816147d2565b6131f257866131e7576131e2836138f4565b61320b565b6131e289600a61326b565b604051636a7aea4b60e11b815260040160405180910390fd5b50509550959350505050565b600060408251101561322b57506000919050565b602082810151906000908214613245575060009392505050565b506040830151613254816147e8565b61325f906040615565565b84511492505050919050565b6001600160a01b038216600090815260046020526040812054618000169003611cd3576001600160a01b038216600081815260046020526040908190208054618000179055517fbe3aa33bd245135e4e26b223d79d14ea479a47bff09f2b03c53838af1edbb14b906132e09084815260200190565b60405180910390a25050565b600654606090156133135760405163a85ba64f60e01b8152601560048201526024016111c3565b6001600160a01b038416600090815260046020526040812054859181900361334e5760405163163cbe4360e01b815260040160405180910390fd5b61800081161561337057604051628e12d960e21b815260040160405180910390fd5b83600061337c82614645565b90506001600160e01b031981166330d9c91560e01b14806133ad57506001600160e01b0319811663d86ed3e560e01b145b806133c857506001600160e01b03198116630221347d60e61b145b806133e357506001600160e01b0319811663230dbd2960e01b145b806133fe57506001600160e01b03198116635f9e7d7760e01b145b8061341957506001600160e01b031981166353c11f9960e01b145b15613437576040516377a14afb60e11b815260040160405180910390fd5b60408051610160810182526000808252600260208084019190915242838501526001600160a01b03808e16606085015260808401839052845191820190945281815260a083015260c0820181905260e082018190526101008201819052918a1661012082015261014081018290526134ae90613705565b905060006134be8a898b85613839565b97509050801561350c57868060200190518101906134dc9190615409565b91506134e7826130a5565b6135075760405163a85ba64f60e01b8152601460048201526024016111c3565b613515565b613515876138f4565b505060006006555092979650505050505050565b600654606090156135505760405163a85ba64f60e01b8152601560048201526024016111c3565b8361355a81612099565b6135775760405163619c535960e01b815260040160405180910390fd5b600061358285614645565b60408051610160810182526000808252600160208301529293506136059181014281526020018a6001600160a01b03168152602001846001600160e01b031916815260200187815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815250613705565b905060006136168888600085613839565b955090508061362857613628856138f4565b50506000600655509095945050505050565b6136426148ce565b606080838060200190518101906136599190615578565b8151919350915060009061367690840160209081019085016155d1565b60a08901526001600160e01b03191660808801526001600160a01b031660608701526040860152602081811c600f168187015260ff90911685528251600092506136c7919084018101908401615655565b6001600160a01b03908116610140890152166101208701526101008601526001600160801b03811660c086015260801c60e085015250919392505050565b60606001826000015160ff1611156137335760405163a85ba64f60e01b8152602860048201526024016111c3565b815160208084015160009260ff1664ff000000009190921b16179050600060806137608560e00151614821565b6001600160801b0316901b6137788560c00151614821565b6001600160801b0316179050818460400151856060015186608001518760a001516040516020016137ad9594939291906156a0565b60408051601f1981840301815282825261010087015161012088015161014089015160208601879052938501919091526001600160a01b03908116606085015290911660808301529060a00160408051601f19818403018152908290526138179291602001614e32565b60408051601f1981840301815291905280516020820120600655949350505050565b600060606001600160a01b038616613853576138536153ae565b61385d858461471b565b9450856001600160a01b031684866040516138789190615549565b60006040518083038185875af1925050503d80600081146138b5576040519150601f19603f3d011682016040523d82523d6000602084013e6138ba565b606091505b50909250905081156138eb5780516000036138eb5760405163a85ba64f60e01b8152601660048201526024016111c3565b94509492505050565b6004815110156139465760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a2074617267657420726576657274282900000000000060448201526064016111c3565b602081015163b1b7848f60e01b6001600160e01b03198216016139f65760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b81529192916111c391849101614ad7565b81518060208401fd5b6000613a297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603613a7f5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016111c3565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613abd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae19190615356565b7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba7414613b5b5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016111c3565b6001600160a01b0381163003613bb35760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016111c3565b613bdb817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba74604080519182526001600160a01b038416602083015201611a7c565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b600060183610801590613cd85750613cd833611b55565b613d1c5760405162461bcd60e51b81526020600482015260156024820152742737ba103a393ab9ba32b2103337b93bb0b93232b960591b60448201526064016111c3565b5060131936013560601c90565b6000805b82811015614486576000848483818110613d4957613d49615398565b9050602002810190613d5b91906156ec565b613d69906020810190615702565b905060001963ffffffff821601613e5d57600080868685818110613d8f57613d8f615398565b9050602002810190613da191906156ec565b613daf906040810190615728565b810190613dbc9190615183565b91509150868685818110613dd257613dd2615398565b9050602002810190613de491906156ec565b613df590604081019060200161493e565b6001600160a01b03166362aa52878984846040518463ffffffff1660e01b8152600401613e2493929190615477565b600060405180830381600087803b158015613e3e57600080fd5b505af1158015613e52573d6000803e3d6000fd5b505050505050614475565b60011963ffffffff821601613f68576000806000878786818110613e8357613e83615398565b9050602002810190613e9591906156ec565b613ea3906040810190615728565b810190613eb0919061576e565b925092509250878786818110613ec857613ec8615398565b9050602002810190613eda91906156ec565b613eeb90604081019060200161493e565b604051630b682aeb60e11b81526001600160a01b038b81166004830152858116602483015284811660448301526064820184905291909116906316d055d6906084015b600060405180830381600087803b158015613f4857600080fd5b505af1158015613f5c573d6000803e3d6000fd5b50505050505050614475565b60021963ffffffff821601614027576000806000878786818110613f8e57613f8e615398565b9050602002810190613fa091906156ec565b613fae906040810190615728565b810190613fbb91906157af565b925092509250878786818110613fd357613fd3615398565b9050602002810190613fe591906156ec565b613ff690604081019060200161493e565b6001600160a01b031663ca0c1e7f8a8585856040518563ffffffff1660e01b8152600401613f2e94939291906157fd565b60031963ffffffff8216016140e05760008086868581811061404b5761404b615398565b905060200281019061405d91906156ec565b61406b906040810190615728565b8101906140789190615183565b9150915086868581811061408e5761408e615398565b90506020028101906140a091906156ec565b6140b190604081019060200161493e565b6001600160a01b0316634b2763b38984846040518463ffffffff1660e01b8152600401613e2493929190615477565b60041963ffffffff8216016141995760008086868581811061410457614104615398565b905060200281019061411691906156ec565b614124906040810190615728565b8101906141319190615183565b9150915086868581811061414757614147615398565b905060200281019061415991906156ec565b61416a90604081019060200161493e565b6001600160a01b031663c780fd828984846040518463ffffffff1660e01b8152600401613e2493929190615477565b60641963ffffffff82160161428e578484838181106141ba576141ba615398565b90506020028101906141cc91906156ec565b6141dd90604081019060200161493e565b6001600160a01b031663ca789464878787868181106141fe576141fe615398565b905060200281019061421091906156ec565b61421e906040810190615728565b81019061422b9190614fb3565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561427157600080fd5b505af1158015614285573d6000803e3d6000fd5b50505050614475565b60651963ffffffff8216016142f3578484838181106142af576142af615398565b90506020028101906142c191906156ec565b6142d290604081019060200161493e565b6001600160a01b031663245887fc878787868181106141fe576141fe615398565b60c81963ffffffff8216016143905760008086868581811061431757614317615398565b905060200281019061432991906156ec565b614337906040810190615728565b8101906143449190615830565b915091506143888888888781811061435e5761435e615398565b905060200281019061437091906156ec565b61438190604081019060200161493e565b8484613529565b505050614475565b60c91963ffffffff82160161445c57614452868686858181106143b5576143b5615398565b90506020028101906143c791906156ec565b6143d890604081019060200161493e565b856143e357346143e6565b60005b8888878181106143f8576143f8615398565b905060200281019061440a91906156ec565b614418906040810190615728565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132ec92505050565b5060019250614475565b60405163b477011560e01b815260040160405180910390fd5b5061447f81615530565b9050613d2d565b503415801590614494575080155b156144c75760405133903480156108fc02916000818181858888f193505050501580156144c5573d6000803e3d6000fd5b505b50505050565b60006144d9828461488e565b6000805460405163407b865d60e11b81529293504292620100009091046001600160a01b0316916380f70cba916145169130918790600401615477565b602060405180830381865afa158015614533573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145579190615356565b101561286457604051630b56455f60e41b815260040160405180910390fd5b64ff000080ff19811615158061458d575060ff8116155b8061459b5750618000811615155b156145b957604051633d3200a960e21b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054156145f0576040516301b0a93560e01b815260040160405180910390fd5b60408051602080820183528382526001600160a01b038516600081815260049092528382209251909255915190917f0d540ad8f39e07d19909687352b9fa017405d93c91a6760981fbae9cf28bfef791a25050565b60006004825110156146995760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e76616c69642063616c6c44617461000000000060448201526064016111c3565b506020015190565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c001613ca4565b815180830151606091908015614744576040516367e9985b60e01b815260040160405180910390fd5b50601f198101845282518490848161475b816147e8565b6147659190615385565b6001600160401b0381111561477c5761477c614aea565b6040519080825280601f01601f1916602001820160405280156147a6576020820181803683370190505b506040516020016147ba9493929190615889565b60405160208183030381529060405291505092915050565b60006147df6040836158d8565b5a111592915050565b60008082601f16116147fb5760006147fe565b60015b60ff1661480c6020846158d8565b6148169190615565565b6112d99060206158fa565b60006001600160801b0382111561488a5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016111c3565b5090565b600082826040516020016148a3929190615911565b60405160208183030381529060405280519060200120905092915050565b61024a8061599783390190565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6001600160a01b03811681146114a957600080fd5b60006020828403121561495057600080fd5b813561495b81614929565b9392505050565b6000806040838503121561497557600080fd5b823561498081614929565b9150602083013561499081614929565b809150509250929050565b60008083601f8401126149ad57600080fd5b5081356001600160401b038111156149c457600080fd5b6020830191508360208285010111156149dc57600080fd5b9250929050565b80151581146114a957600080fd5b60008060008060008060808789031215614a0a57600080fd5b8635614a1581614929565b955060208701356001600160401b0380821115614a3157600080fd5b614a3d8a838b0161499b565b909750955060408901359150614a52826149e3565b90935060608801359080821115614a6857600080fd5b50614a7589828a0161499b565b979a9699509497509295939492505050565b60005b83811015614aa2578181015183820152602001614a8a565b50506000910152565b60008151808452614ac3816020860160208601614a87565b601f01601f19169290920160200192915050565b6020815260006112d66020830184614aab565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614b2857614b28614aea565b604052919050565b60006001600160401b03821115614b4957614b49614aea565b50601f01601f191660200190565b600082601f830112614b6857600080fd5b8135614b7b614b7682614b30565b614b00565b818152846020838601011115614b9057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614bc057600080fd5b8235614bcb81614929565b915060208301356001600160401b03811115614be657600080fd5b614bf285828601614b57565b9150509250929050565b600080600060608486031215614c1157600080fd5b8335614c1c81614929565b925060208401356001600160401b0380821115614c3857600080fd5b614c4487838801614b57565b93506040860135915080821115614c5a57600080fd5b50614c6786828701614b57565b9150509250925092565b600060208284031215614c8357600080fd5b81356001600160401b03811115614c9957600080fd5b6114ba84828501614b57565b60208152614cb960208201835160ff169052565b60006020830151614ccf604084018260ff169052565b50604083015160608301526060830151614cf460808401826001600160a01b03169052565b5060808301516001600160e01b0319811660a08401525060a08301516101608060c0850152614d27610180850183614aab565b915060c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151915050610140614d6d818701836001600160a01b03169052565b909501516001600160a01b031693019290925250919050565b60008060008060008060006080888a031215614da157600080fd5b8735614dac81614929565b965060208801356001600160401b0380821115614dc857600080fd5b614dd48b838c0161499b565b909850965060408a0135915080821115614ded57600080fd5b614df98b838c0161499b565b909650945060608a0135915080821115614e1257600080fd5b50614e1f8a828b0161499b565b989b979a50959850939692959293505050565b604081526000614e456040830185614aab565b82810360208401526122098185614aab565b600080600060408486031215614e6c57600080fd5b83356001600160401b03811115614e8257600080fd5b614e8e8682870161499b565b909790965060209590950135949350505050565b60008060208385031215614eb557600080fd5b82356001600160401b0380821115614ecc57600080fd5b818501915085601f830112614ee057600080fd5b813581811115614eef57600080fd5b8660208260051b8501011115614f0457600080fd5b60209290920196919550909350505050565b60008060008060008060a08789031215614f2f57600080fd5b86356001600160401b03811115614f4557600080fd5b614f5189828a0161499b565b9097509550506020870135614f6581614929565b935060408701359250606087013591506080870135614f8381614929565b809150509295509295509295565b60008060408385031215614fa457600080fd5b50508035926020909101359150565b600060208284031215614fc557600080fd5b5035919050565b60008060008060608587031215614fe257600080fd5b84356001600160401b03811115614ff857600080fd5b6150048782880161499b565b909550935050602085013561501881614929565b9396929550929360400135925050565b60008060008060006060868803121561504057600080fd5b853561504b81614929565b945060208601356001600160401b038082111561506757600080fd5b61507389838a0161499b565b9096509450604088013591508082111561508c57600080fd5b506150998882890161499b565b969995985093965092949392505050565b6000806000604084860312156150bf57600080fd5b8335925060208401356001600160401b038111156150dc57600080fd5b6150e88682870161499b565b9497909650939450505050565b6000806020838503121561510857600080fd5b82356001600160401b0381111561511e57600080fd5b61512a8582860161499b565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156151775783516001600160a01b031683529284019291840191600101615152565b50909695505050505050565b6000806040838503121561519657600080fd5b82356151a181614929565b946020939093013593505050565b600080600080600080600080600060c08a8c0312156151cd57600080fd5b89356151d881614929565b985060208a01356151e881614929565b975060408a0135965060608a01356001600160401b038082111561520b57600080fd5b6152178d838e0161499b565b909850965060808c013591508082111561523057600080fd5b61523c8d838e0161499b565b909650945060a08c013591508082111561525557600080fd5b506152628c828d0161499b565b915080935050809150509295985092959850929598565b6001600160a01b038781168252861660208201526040810185905260c0606082018190526000906152ac90830186614aab565b82810360808401526152be8186614aab565b905082810360a084015261208c8185614aab565b8281526040602082015260006114ba6040830184614aab565b6000806000806040858703121561530157600080fd5b84356001600160401b038082111561531857600080fd5b6153248883890161499b565b9096509450602087013591508082111561533d57600080fd5b5061534a8782880161499b565b95989497509550505050565b60006020828403121561536857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112d9576112d961536f565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082601f8301126153d557600080fd5b81516153e3614b7682614b30565b8181528460208386010111156153f857600080fd5b6114ba826020830160208701614a87565b60006020828403121561541b57600080fd5b81516001600160401b0381111561543157600080fd5b6114ba848285016153c4565b60006020828403121561544f57600080fd5b815161495b81614929565b60006020828403121561546c57600080fd5b815161495b816149e3565b6001600160a01b039384168152919092166020820152604081019190915260600190565b80820182811260008312801582168215821617156154bb576154bb61536f565b505092915050565b600060ff821660ff81036154d9576154d961536f565b60010192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000600182016155425761554261536f565b5060010190565b6000825161555b818460208701614a87565b9190910192915050565b808201808211156112d9576112d961536f565b6000806040838503121561558b57600080fd5b82516001600160401b03808211156155a257600080fd5b6155ae868387016153c4565b935060208501519150808211156155c457600080fd5b50614bf2858286016153c4565b600080600080600060a086880312156155e957600080fd5b8551945060208601519350604086015161560281614929565b60608701519093506001600160e01b03198116811461562057600080fd5b60808701519092506001600160401b0381111561563c57600080fd5b615648888289016153c4565b9150509295509295909350565b6000806000806080858703121561566b57600080fd5b8451935060208501519250604085015161568481614929565b606086015190925061569581614929565b939692955090935050565b858152602081018590526001600160a01b03841660408201526001600160e01b03198316606082015260a0608082018190526000906156e190830184614aab565b979650505050505050565b60008235605e1983360301811261555b57600080fd5b60006020828403121561571457600080fd5b813563ffffffff8116811461495b57600080fd5b6000808335601e1984360301811261573f57600080fd5b8301803591506001600160401b0382111561575957600080fd5b6020019150368190038213156149dc57600080fd5b60008060006060848603121561578357600080fd5b833561578e81614929565b9250602084013561579e81614929565b929592945050506040919091013590565b6000806000606084860312156157c457600080fd5b83356157cf81614929565b92506020840135915060408401356001600160401b038111156157f157600080fd5b614c6786828701614b57565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611cb790830184614aab565b6000806040838503121561584357600080fd5b82356001600160401b038082111561585a57600080fd5b61586686838701614b57565b9350602085013591508082111561587c57600080fd5b50614bf285828601614b57565b60008551602061589c8285838b01614a87565b818401915086825285516158b581838501848a01614a87565b85519201916158c981838501848901614a87565b91909101019695505050505050565b6000826158f557634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176112d9576112d961536f565b60608152604160608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e726567697374726174696f6e4b6560a0820152607960f81b60c082015260018060a01b038316602082015260e0604082015260006114ba60e0830184614aab56fe608060405234801561001057600080fd5b5061022a806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046101c4565b61006b565b610069610064610171565b6101a0565b565b6001600160a01b0381166100c65760405162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f206164647265737300000000000000000060448201526064015b60405180910390fd5b60006100f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146101465760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100bd565b61016e817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50565b600061019b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b3660008037600080366000845af43d6000803e8080156101bf573d6000f35b3d6000fd5b6000602082840312156101d657600080fd5b81356001600160a01b03811681146101ed57600080fd5b939250505056fea264697066735822122093a2bbcf49dd2895177212eeb11e9921080374fd8cd93d5be93a80935603195a64736f6c63430008130033a2646970667358221220bef00cd8280970b95523e075517f2b80818553f209e4399c0b2a2aba9b1cb07664736f6c63430008130033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "bool";