@superfluid-finance/sdk-core 0.9.1-dev.a5bf3a6.0 → 0.9.1-dev.a996917.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 (366) hide show
  1. package/dist/index.umd.js +264 -61
  2. package/dist/main/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts +17 -1
  3. package/dist/main/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts.map +1 -1
  4. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperToken.d.ts +17 -1
  5. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperToken.d.ts.map +1 -1
  6. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperfluidToken.d.ts +17 -1
  7. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperfluidToken.d.ts.map +1 -1
  8. package/dist/main/typechain-types/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken.d.ts +17 -1
  9. package/dist/main/typechain-types/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken.d.ts.map +1 -1
  10. package/dist/main/typechain-types/contracts/interfaces/tokens/ISETH.sol/ISETH.d.ts +17 -1
  11. package/dist/main/typechain-types/contracts/interfaces/tokens/ISETH.sol/ISETH.d.ts.map +1 -1
  12. package/dist/main/typechain-types/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock.d.ts +17 -1
  13. package/dist/main/typechain-types/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock.d.ts.map +1 -1
  14. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock.d.ts +17 -1
  15. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock.d.ts.map +1 -1
  16. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock.d.ts +17 -1
  17. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock.d.ts.map +1 -1
  18. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester.d.ts +17 -1
  19. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester.d.ts.map +1 -1
  20. package/dist/main/typechain-types/contracts/superfluid/SuperToken.d.ts +17 -1
  21. package/dist/main/typechain-types/contracts/superfluid/SuperToken.d.ts.map +1 -1
  22. package/dist/main/typechain-types/contracts/superfluid/SuperfluidToken.d.ts +17 -1
  23. package/dist/main/typechain-types/contracts/superfluid/SuperfluidToken.d.ts.map +1 -1
  24. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts +1 -1
  25. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts.map +1 -1
  26. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js +1 -1
  27. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js.map +1 -1
  28. package/dist/main/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.d.ts +1 -1
  29. package/dist/main/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.js +1 -1
  30. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +19 -1
  31. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts.map +1 -1
  32. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +24 -1
  33. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js.map +1 -1
  34. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts +1 -1
  35. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js +1 -1
  36. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +1 -1
  37. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts.map +1 -1
  38. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +1 -1
  39. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js.map +1 -1
  40. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.d.ts +1 -1
  41. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.js +1 -1
  42. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.d.ts +1 -1
  43. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.js +1 -1
  44. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.d.ts +14 -0
  45. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.d.ts.map +1 -1
  46. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.js +18 -0
  47. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.js.map +1 -1
  48. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.d.ts +14 -0
  49. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.d.ts.map +1 -1
  50. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.js +18 -0
  51. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.js.map +1 -1
  52. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.d.ts +14 -0
  53. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.d.ts.map +1 -1
  54. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.js +18 -0
  55. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.js.map +1 -1
  56. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.d.ts +14 -0
  57. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.d.ts.map +1 -1
  58. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.js +18 -0
  59. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.js.map +1 -1
  60. package/dist/main/typechain-types/factories/contracts/libs/SlotsBitmapLibrary__factory.d.ts +1 -1
  61. package/dist/main/typechain-types/factories/contracts/libs/SlotsBitmapLibrary__factory.js +1 -1
  62. package/dist/main/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.d.ts +1 -1
  63. package/dist/main/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.js +1 -1
  64. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.d.ts +1 -1
  65. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.js +1 -1
  66. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.d.ts +1 -1
  67. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.js +1 -1
  68. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.d.ts +1 -1
  69. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.js +1 -1
  70. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.d.ts +1 -1
  71. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.js +1 -1
  72. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.d.ts +1 -1
  73. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.js +1 -1
  74. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.d.ts +14 -0
  75. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.d.ts.map +1 -1
  76. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.js +18 -0
  77. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.js.map +1 -1
  78. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenProxyMock__factory.d.ts +1 -1
  79. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenProxyMock__factory.js +1 -1
  80. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.d.ts +1 -1
  81. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.js +1 -1
  82. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.d.ts +1 -1
  83. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.js +1 -1
  84. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.d.ts +1 -1
  85. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.js +1 -1
  86. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.d.ts +1 -1
  87. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.js +1 -1
  88. package/dist/main/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.d.ts +1 -1
  89. package/dist/main/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.js +1 -1
  90. package/dist/main/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.d.ts +1 -1
  91. package/dist/main/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.js +1 -1
  92. package/dist/main/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.d.ts +1 -1
  93. package/dist/main/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.js +1 -1
  94. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  95. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.js +1 -1
  96. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  97. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.js +1 -1
  98. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.d.ts +1 -1
  99. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.js +1 -1
  100. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  101. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  102. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  103. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  104. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  105. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  106. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  107. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  108. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.d.ts +1 -1
  109. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.js +1 -1
  110. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.d.ts +1 -1
  111. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.js +1 -1
  112. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.d.ts +1 -1
  113. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.js +1 -1
  114. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts +1 -1
  115. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.js +1 -1
  116. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts +1 -1
  117. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js +1 -1
  118. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  119. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  120. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  121. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  122. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.d.ts +1 -1
  123. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.js +1 -1
  124. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.d.ts +1 -1
  125. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.js +1 -1
  126. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.d.ts +15 -1
  127. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.d.ts.map +1 -1
  128. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.js +19 -1
  129. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.js.map +1 -1
  130. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.d.ts +15 -1
  131. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.d.ts.map +1 -1
  132. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.js +19 -1
  133. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.js.map +1 -1
  134. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.d.ts +15 -1
  135. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.d.ts.map +1 -1
  136. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.js +19 -1
  137. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.js.map +1 -1
  138. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.d.ts +1 -1
  139. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.js +1 -1
  140. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.d.ts +1 -1
  141. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.js +1 -1
  142. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  143. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  144. package/dist/main/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.d.ts +1 -1
  145. package/dist/main/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.js +1 -1
  146. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts +1 -1
  147. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js +1 -1
  148. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts +15 -1
  149. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts.map +1 -1
  150. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.js +19 -1
  151. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.js.map +1 -1
  152. package/dist/main/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.d.ts +14 -0
  153. package/dist/main/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.d.ts.map +1 -1
  154. package/dist/main/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.js +18 -0
  155. package/dist/main/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.js.map +1 -1
  156. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  157. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  158. package/dist/main/typechain-types/factories/contracts/tokens/PureSuperToken__factory.d.ts +1 -1
  159. package/dist/main/typechain-types/factories/contracts/tokens/PureSuperToken__factory.js +1 -1
  160. package/dist/main/typechain-types/factories/contracts/tokens/SETH.sol/SETHProxy__factory.d.ts +1 -1
  161. package/dist/main/typechain-types/factories/contracts/tokens/SETH.sol/SETHProxy__factory.js +1 -1
  162. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts +1 -1
  163. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js +1 -1
  164. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  165. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  166. package/dist/main/typechain-types/factories/contracts/utils/ERC1820Implementer__factory.d.ts +1 -1
  167. package/dist/main/typechain-types/factories/contracts/utils/ERC1820Implementer__factory.js +1 -1
  168. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  169. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  170. package/dist/main/typechain-types/factories/contracts/utils/MacroForwarder__factory.d.ts +1 -1
  171. package/dist/main/typechain-types/factories/contracts/utils/MacroForwarder__factory.js +1 -1
  172. package/dist/main/typechain-types/factories/contracts/utils/SuperUpgrader__factory.d.ts +1 -1
  173. package/dist/main/typechain-types/factories/contracts/utils/SuperUpgrader__factory.js +1 -1
  174. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  175. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.js +1 -1
  176. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  177. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  178. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.d.ts +1 -1
  179. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.js +1 -1
  180. package/dist/main/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.d.ts +1 -1
  181. package/dist/main/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.js +1 -1
  182. package/dist/main/typechain-types/factories/contracts/utils/TestGovernance__factory.d.ts +1 -1
  183. package/dist/main/typechain-types/factories/contracts/utils/TestGovernance__factory.js +1 -1
  184. package/dist/module/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts +17 -1
  185. package/dist/module/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts.map +1 -1
  186. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperToken.d.ts +17 -1
  187. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperToken.d.ts.map +1 -1
  188. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperfluidToken.d.ts +17 -1
  189. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperfluidToken.d.ts.map +1 -1
  190. package/dist/module/typechain-types/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken.d.ts +17 -1
  191. package/dist/module/typechain-types/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken.d.ts.map +1 -1
  192. package/dist/module/typechain-types/contracts/interfaces/tokens/ISETH.sol/ISETH.d.ts +17 -1
  193. package/dist/module/typechain-types/contracts/interfaces/tokens/ISETH.sol/ISETH.d.ts.map +1 -1
  194. package/dist/module/typechain-types/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock.d.ts +17 -1
  195. package/dist/module/typechain-types/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock.d.ts.map +1 -1
  196. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock.d.ts +17 -1
  197. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock.d.ts.map +1 -1
  198. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock.d.ts +17 -1
  199. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock.d.ts.map +1 -1
  200. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester.d.ts +17 -1
  201. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester.d.ts.map +1 -1
  202. package/dist/module/typechain-types/contracts/superfluid/SuperToken.d.ts +17 -1
  203. package/dist/module/typechain-types/contracts/superfluid/SuperToken.d.ts.map +1 -1
  204. package/dist/module/typechain-types/contracts/superfluid/SuperfluidToken.d.ts +17 -1
  205. package/dist/module/typechain-types/contracts/superfluid/SuperfluidToken.d.ts.map +1 -1
  206. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts +1 -1
  207. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts.map +1 -1
  208. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js +1 -1
  209. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js.map +1 -1
  210. package/dist/module/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.d.ts +1 -1
  211. package/dist/module/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.js +1 -1
  212. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +19 -1
  213. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts.map +1 -1
  214. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +24 -1
  215. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js.map +1 -1
  216. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts +1 -1
  217. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js +1 -1
  218. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +1 -1
  219. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts.map +1 -1
  220. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +1 -1
  221. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js.map +1 -1
  222. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.d.ts +1 -1
  223. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.js +1 -1
  224. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.d.ts +1 -1
  225. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.js +1 -1
  226. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.d.ts +14 -0
  227. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.d.ts.map +1 -1
  228. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.js +18 -0
  229. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.js.map +1 -1
  230. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.d.ts +14 -0
  231. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.d.ts.map +1 -1
  232. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.js +18 -0
  233. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.js.map +1 -1
  234. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.d.ts +14 -0
  235. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.d.ts.map +1 -1
  236. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.js +18 -0
  237. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.js.map +1 -1
  238. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.d.ts +14 -0
  239. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.d.ts.map +1 -1
  240. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.js +18 -0
  241. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.js.map +1 -1
  242. package/dist/module/typechain-types/factories/contracts/libs/SlotsBitmapLibrary__factory.d.ts +1 -1
  243. package/dist/module/typechain-types/factories/contracts/libs/SlotsBitmapLibrary__factory.js +1 -1
  244. package/dist/module/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.d.ts +1 -1
  245. package/dist/module/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.js +1 -1
  246. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.d.ts +1 -1
  247. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.js +1 -1
  248. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.d.ts +1 -1
  249. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.js +1 -1
  250. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.d.ts +1 -1
  251. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.js +1 -1
  252. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.d.ts +1 -1
  253. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.js +1 -1
  254. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.d.ts +1 -1
  255. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.js +1 -1
  256. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.d.ts +14 -0
  257. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.d.ts.map +1 -1
  258. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.js +18 -0
  259. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.js.map +1 -1
  260. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenProxyMock__factory.d.ts +1 -1
  261. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenProxyMock__factory.js +1 -1
  262. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.d.ts +1 -1
  263. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.js +1 -1
  264. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.d.ts +1 -1
  265. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.js +1 -1
  266. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.d.ts +1 -1
  267. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.js +1 -1
  268. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.d.ts +1 -1
  269. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.js +1 -1
  270. package/dist/module/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.d.ts +1 -1
  271. package/dist/module/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.js +1 -1
  272. package/dist/module/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.d.ts +1 -1
  273. package/dist/module/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.js +1 -1
  274. package/dist/module/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.d.ts +1 -1
  275. package/dist/module/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.js +1 -1
  276. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  277. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.js +1 -1
  278. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  279. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.js +1 -1
  280. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.d.ts +1 -1
  281. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.js +1 -1
  282. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  283. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  284. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  285. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  286. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  287. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  288. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  289. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  290. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.d.ts +1 -1
  291. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.js +1 -1
  292. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.d.ts +1 -1
  293. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.js +1 -1
  294. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.d.ts +1 -1
  295. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.js +1 -1
  296. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts +1 -1
  297. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.js +1 -1
  298. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts +1 -1
  299. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js +1 -1
  300. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  301. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  302. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  303. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  304. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.d.ts +1 -1
  305. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.js +1 -1
  306. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.d.ts +1 -1
  307. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.js +1 -1
  308. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.d.ts +15 -1
  309. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.d.ts.map +1 -1
  310. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.js +19 -1
  311. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.js.map +1 -1
  312. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.d.ts +15 -1
  313. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.d.ts.map +1 -1
  314. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.js +19 -1
  315. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.js.map +1 -1
  316. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.d.ts +15 -1
  317. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.d.ts.map +1 -1
  318. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.js +19 -1
  319. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.js.map +1 -1
  320. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.d.ts +1 -1
  321. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.js +1 -1
  322. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.d.ts +1 -1
  323. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.js +1 -1
  324. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  325. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  326. package/dist/module/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.d.ts +1 -1
  327. package/dist/module/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.js +1 -1
  328. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts +1 -1
  329. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js +1 -1
  330. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts +15 -1
  331. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts.map +1 -1
  332. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.js +19 -1
  333. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.js.map +1 -1
  334. package/dist/module/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.d.ts +14 -0
  335. package/dist/module/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.d.ts.map +1 -1
  336. package/dist/module/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.js +18 -0
  337. package/dist/module/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.js.map +1 -1
  338. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  339. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  340. package/dist/module/typechain-types/factories/contracts/tokens/PureSuperToken__factory.d.ts +1 -1
  341. package/dist/module/typechain-types/factories/contracts/tokens/PureSuperToken__factory.js +1 -1
  342. package/dist/module/typechain-types/factories/contracts/tokens/SETH.sol/SETHProxy__factory.d.ts +1 -1
  343. package/dist/module/typechain-types/factories/contracts/tokens/SETH.sol/SETHProxy__factory.js +1 -1
  344. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts +1 -1
  345. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js +1 -1
  346. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  347. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  348. package/dist/module/typechain-types/factories/contracts/utils/ERC1820Implementer__factory.d.ts +1 -1
  349. package/dist/module/typechain-types/factories/contracts/utils/ERC1820Implementer__factory.js +1 -1
  350. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  351. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  352. package/dist/module/typechain-types/factories/contracts/utils/MacroForwarder__factory.d.ts +1 -1
  353. package/dist/module/typechain-types/factories/contracts/utils/MacroForwarder__factory.js +1 -1
  354. package/dist/module/typechain-types/factories/contracts/utils/SuperUpgrader__factory.d.ts +1 -1
  355. package/dist/module/typechain-types/factories/contracts/utils/SuperUpgrader__factory.js +1 -1
  356. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  357. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.js +1 -1
  358. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  359. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  360. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.d.ts +1 -1
  361. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.js +1 -1
  362. package/dist/module/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.d.ts +1 -1
  363. package/dist/module/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.js +1 -1
  364. package/dist/module/typechain-types/factories/contracts/utils/TestGovernance__factory.d.ts +1 -1
  365. package/dist/module/typechain-types/factories/contracts/utils/TestGovernance__factory.js +1 -1
  366. package/package.json +3 -3
@@ -12,7 +12,7 @@ export declare class SuperToken__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): SuperToken;
14
14
  connect(signer: Signer): SuperToken__factory;
15
- static readonly bytecode = "0x60e060405234801561000f575f5ffd5b5060405161533038038061533083398101604081905261002e91610089565b6001600160a01b03808316608052811660c08190526040517feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e6905f90a250506100c1565b6001600160a01b0381168114610086575f5ffd5b50565b5f5f6040838503121561009a575f5ffd5b82516100a581610072565b60208401519092506100b681610072565b809150509250929050565b60805160a05160c0516151b261017e5f395f61086601525f6109d501525f81816104ee01528181610ca801528181610d170152818161102a015281816110b7015281816111e10152818161135b01528181611561015281816115b70152818161162a0152818161176e0152818161191001528181611b0001528181611f0501528181611fcc01528181612091015281816120f80152818161217e01528181612ba201528181612c3701528181613c9b0152613fea01526151b25ff3fe608060405234801561000f575f5ffd5b506004361061040c575f3560e01c80636e9960c311610221578063b84cdd4a1161012a578063d9d078d6116100b4578063ee719bc811610084578063ee719bc8146109bf578063f5a8b4dd146109d0578063fad8b32a146109f7578063fc673c4f14610a0a578063fe9d930314610a1d575f5ffd5b8063d9d078d614610933578063dd62ed3e14610946578063eb3537cc1461097e578063ec0d6343146109ac575f5ffd5b8063ca0c1e7f116100fa578063ca0c1e7f146108d4578063ca789464146108e7578063cf97256d146108fa578063d505accf1461090d578063d95b637114610920575f5ffd5b8063b84cdd4a14610888578063bb0d196e1461089b578063c68d4283146108ae578063c780fd82146108c1575f5ffd5b806395d89b41116101ab578063a1b2bf8b1161017b578063a1b2bf8b14610815578063a3a7e7f314610828578063a457c2d71461083b578063a9059cbb1461084e578063b20db1ac14610861575f5ffd5b806395d89b41146107df5780639903ad38146107e75780639bd9bbc6146107ef5780639d87674114610802575f5ffd5b806383ba2525116101f157806383ba25251461077957806384b0196e1461078c5780638f283970146107a757806392081a47146107ba578063959b8c3f146107cc575f5ffd5b80636e9960c31461072357806370a082311461072b57806379359f6f1461073e5780637ecebe0014610751575f5ffd5b80633644e515116103235780634b61cc33116102ad5780635b9d09cc1161027d5780635b9d09cc146106c457806362aa5287146106d757806362ad1b83146106ea57806366a12fb6146106fd5780636c2d9f2f14610710575f5ffd5b80634b61cc331461066f57806350d75d251461068f57806352d1902d14610697578063556f0dc7146106bd575f5ffd5b806342fe0980116102f357806342fe09801461061057806345977d0314610623578063469519541461063657806347ba7ad1146106495780634b2763b31461065c575f5ffd5b80633644e515146105cf578063386fa221146105d757806339509351146105ea57806341b706be146105fd575f5ffd5b80631863e809116103a4578063245887fc11610374578063245887fc14610539578063270483971461054c578063282a050b1461055f5780632ec8eec714610587578063313ce567146105ba575f5ffd5b80631863e809146104c65780631ae88ffc146104d957806320bc4425146104ec57806323b872dd14610526575f5ffd5b806311bcc81e116103df57806311bcc81e1461047b57806312a6a3f81461048e57806316d055d6146104a157806318160ddd146104b4575f5ffd5b806306e485381461041057806306fdde031461042e578063090c415e14610443578063095ea7b314610458575b5f5ffd5b610418610a30565b60405161042591906140dc565b60405180910390f35b610436610a41565b604051610425919061416a565b6104566104513660046141d7565b610ad1565b005b61046b61046636600461422e565b610b82565b6040519015158152602001610425565b610456610489366004614258565b610b98565b61045661049c36600461426f565b610bc5565b6104566104af3660046142b6565b610ca6565b6003545b604051908152602001610425565b6104566104d43660046143c0565b610d02565b6104566104e736600461444c565b611028565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610425565b61046b61053436600461444c565b6110a0565b61045661054736600461422e565b6110b5565b61045661055a36600461448a565b61112c565b61057261056d366004614258565b6111c7565b60408051928352602083019190915201610425565b61059a6105953660046144aa565b6111db565b604080519485526020850193909352918301526060820152608001610425565b60125b60405160ff9091168152602001610425565b6104b861127a565b6104186105e53660046144aa565b611328565b61046b6105f836600461422e565b6113c6565b61045661060b3660046142b6565b611401565b61045661061e366004614517565b61142d565b610456610631366004614258565b611507565b6104566106443660046144aa565b611531565b61045661065736600461444c565b6115b5565b61045661066a36600461444c565b611628565b61068261067d3660046145a7565b6116a9565b60405161042591906145ea565b61050e6116ed565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104b8565b60016104b8565b6104566106d2366004614621565b611716565b6104566106e536600461444c565b61176c565b6104566106f836600461466c565b6117c0565b61045661070b36600461444c565b61186c565b61068261071e366004614707565b61188c565b61050e6118cd565b6104b86107393660046144aa565b6118e3565b61046b61074c3660046144aa565b611909565b6104b861075f3660046144aa565b6001600160a01b03165f9081526016602052604090205490565b61045661078736600461422e565b61198e565b6107946119b8565b6040516104259796959493929190614739565b6104566107b53660046144aa565b611ad0565b600e54600160a01b900460ff166105bd565b6104566107da3660046144aa565b611bbe565b610436611c0f565b610456611c1e565b6104566107fd366004614621565b611cda565b6104566108103660046147cf565b611d2d565b61045661082336600461426f565b611d72565b6104566108363660046144aa565b611e1a565b61046b61084936600461422e565b611e2e565b61046b61085c36600461422e565b611ea5565b61050e7f000000000000000000000000000000000000000000000000000000000000000081565b61046b61089636600461422e565b611eb2565b61046b6108a93660046144aa565b611efe565b6104566108bc3660046147cf565b611f83565b6104566108cf36600461444c565b611fca565b6104566108e2366004614823565b61208f565b6104566108f536600461422e565b6120f6565b61045661090836600461422e565b612169565b61045661091b36600461488a565b61224e565b61046b61092e3660046148d7565b6123a7565b61046b61094136600461422e565b6123b4565b6104b86109543660046148d7565b6001600160a01b039182165f90815260116020908152604080832093909416825291909152205490565b61099161098c36600461422e565b6123cc565b60408051938452602084019290925290820152606001610425565b6104566109ba36600461490e565b6124f9565b600e546001600160a01b031661050e565b61050e7f000000000000000000000000000000000000000000000000000000000000000081565b610456610a053660046144aa565b6125ca565b610456610a183660046149b1565b61261b565b610456610a2b3660046149f2565b6126ba565b6060610a3c601261270a565b905090565b6060600f8054610a5090614a2c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7c90614a2c565b8015610ac75780601f10610a9e57610100808354040283529160200191610ac7565b820191905f5260205f20905b815481529060010190602001808311610aaa57829003601f168201915b5050505050905090565b5f338585604051602001610ae793929190614a64565b604051602081830303815290604052805190602001209050610b3b818484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061276d92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b5f610b8e3384846127a3565b5060015b92915050565b610bc23333338460405180602001604052805f81525060405180602001604052805f815250612851565b50565b60405133905f90610bdc9083908790602001614aad565b60408051601f1981840301815291905280516020909101209050610c008184612a08565b15610c1e5760405163782a90fb60e11b815260040160405180910390fd5b610c5a818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061276d92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610c9793929190614aea565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610cef5760405163c51efddd60e01b815260040160405180910390fd5b610cfb84848484612a3a565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d64573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d889190614b29565b610da55760405163327fd99160e21b815260040160405180910390fd5b5f610dae612b9e565b90506001600160a01b038116610dc15750845b5f85610dcd5786610dcf565b815b90505f8313610e9957610de183614b58565b610dea85612cde565b14610df757610df7614b72565b610e0084612cde565b6001600160a01b0382165f9081526002602052604081208054909190610e27908490614b86565b90915550506001600160a01b0385165f9081526002602052604081208054859290610e53908490614b86565b92505081905550806001600160a01b0316856001600160a01b03165f51602061515d5f395f51905f5286604051610e8c91815260200190565b60405180910390a3610fc0565b8515610ea757610ea7614b72565b82610eb185612cde565b610ebb9190614b86565b6001600160a01b0383165f9081526002602052604081208054909190610ee2908490614bad565b90915550610ef1905084612cde565b6001600160a01b0388165f9081526002602052604081208054909190610f18908490614b86565b90915550506001600160a01b0385165f9081526002602052604081208054859290610f44908490614b86565b92505081905550866001600160a01b0316826001600160a01b03165f51602061515d5f395f51905f5286604051610f7d91815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03165f51602061515d5f395f51905f5285604051610fb791815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611015959493929190614bcc565b60405180910390a4505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146110715760405163c51efddd60e01b815260040160405180910390fd5b61109b3384848460405180602001604052805f81525060405180602001604052805f815250612d0e565b505050565b5f6110ad33858585612a3a565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146110fe5760405163c51efddd60e01b815260040160405180910390fd5b6111283383848460405180602001604052805f81525060405180602001604052805f815250612851565b5050565b60405133905f906111439083908690602001614aad565b6040516020818303038152906040528051906020012090506111658184612a08565b6111825760405163dae1880960e01b815260040160405180910390fd5b61118c8184612eb9565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b5f5f6111d283612ed0565b91509150915091565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125f9190614c09565b905061126b85826123cc565b91979096509094509092509050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600f6040516112ab9190614c20565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038181165f908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d906024015f60405180830381865afa15801561139f573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b929190810190614c91565b335f8181526011602090815260408083206001600160a01b03871684529091528120549091610b8e9185906113fc908690614d38565b6127a3565b33301461142157604051630fff4cc960e31b815260040160405180910390fd5b610cfb83858484612a3a565b5f54610100900460ff161580801561144b57505f54600160ff909116105b806114645750303b15801561146457505f5460ff166001145b6114895760405162461bcd60e51b815260040161148090614d4b565b60405180910390fd5b5f805460ff1916600117905580156114aa575f805461ff0019166101001790555b6114b98787878787875f612f8b565b80156114fe575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610bc23333338460405180602001604052805f81525060405180602001604052805f815250612d0e565b5f6115475f51602061513d5f395f51905f525490565b90505f6001600160a01b0382161561155f5781611581565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146115ac57604051630484acab60e01b815260040160405180910390fd5b61109b8361304f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146115fe5760405163c51efddd60e01b815260040160405180910390fd5b61109b3384848460405180602001604052805f81525060405180602001604052805f815250612851565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116715760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f9081526011602090815260408083209386168352929052205461109b90849084906113fc908590614d38565b60605f8585856040516020016116c193929190614a64565b6040516020818303038152906040528051906020012090506116e38184613286565b9695505050505050565b5f610a3c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6117663333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250612d0e915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117b55760405163c51efddd60e01b815260040160405180910390fd5b61109b8383836127a3565b336117cd6012828a61330b565b6117ea5760405163f7f0222760e01b815260040160405180910390fd5b6118628189898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f92019190915250600192506133b0915050565b5050505050505050565b3330146117b557604051630fff4cc960e31b815260040160405180910390fd5b60605f84846040516020016118a2929190614aad565b6040516020818303038152906040528051906020012090506118c48184613286565b95945050505050565b5f610a3c5f51602061513d5f395f51905f525490565b5f5f6118ee836111db565b50505090505f81126119005780611902565b5f5b9392505050565b5f610b92827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109419190614c09565b6111283333848460405180602001604052805f81525060405180602001604052805f815250612851565b5f6060805f5f5f6060600f604051806040016040528060018152602001603160f81b81525046305f5f1b5f6001600160401b038111156119fa576119fa614304565b604051908082528060200260200182016040528015611a23578160200160208202803683370190505b50600f60f81b959493929190858054611a3b90614a2c565b80601f0160208091040260200160405190810160405280929190818152602001828054611a6790614a2c565b8015611ab25780601f10611a8957610100808354040283529160200191611ab2565b820191905f5260205f20905b815481529060010190602001808311611a9557829003601f168201915b50505050509550965096509650965096509650965090919293949596565b5f611ae65f51602061513d5f395f51905f525490565b90505f6001600160a01b03821615611afe5781611b20565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611b4b57604051630484acab60e01b815260040160405180910390fd5b5f611b615f51602061513d5f395f51905f525490565b9050611b78845f51602061513d5f395f51905f5255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611bcb60128284613429565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a5090614a2c565b5f54610100900460ff1615808015611c3c57505f54600160ff909116105b80611c555750303b158015611c5557505f5460ff166001145b611c715760405162461bcd60e51b815260040161148090614d4b565b5f805460ff191660011790558015611c92575f805461ff0019166101001790555b8015610bc2575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6117663333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250600191506133b09050565b333014611d4d57604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f81526020810190915261109b9133918691869190151590869061352a565b60405133905f90611d899083908790602001614aad565b604051602081830303815290604052805190602001209050611ddd818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061276d92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610c9793929190614aea565b611128333383611e29336118e3565b612a3a565b335f9081526011602090815260408083206001600160a01b0386168452909152812054821115611e705760405162461bcd60e51b815260040161148090614d99565b335f8181526011602090815260408083206001600160a01b0388168452909152902054610b8e919085906113fc908690614de3565b5f61190233338585612a3a565b5f5f5f5f611ec086866123cc565b9250925092505f611ee6828411611ed7575f612cde565b611ee18385614de3565b612cde565b611ef09085614b86565b5f1315979650505050505050565b5f610b92827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f5f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108969190614c09565b333014611fa357604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f81526020810190915261109b9133918691869190151590819087906135f4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120135760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220548111156120575760405162461bcd60e51b815260040161148090614d99565b6001600160a01b038084165f9081526011602090815260408083209386168352929052205461109b90849084906113fc908590614de3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120d85760405163c51efddd60e01b815260040160405180910390fd5b611766338585858560405180602001604052805f81525060016133b0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461213f5760405163c51efddd60e01b815260040160405180910390fd5b6111283383848460405180602001604052805f81525060405180602001604052805f815250612d0e565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156121cb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121ef9190614b29565b61220c5760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382165f9081526002602052604090205461222f908290614b86565b6001600160a01b039092165f9081526002602052604090209190915550565b8342111561227257604051636e72b90f60e01b815260048101859052602401611480565b6001600160a01b0387165f90815260166020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866122be83614df6565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61231b61127a565b60405161190160f01b81526002810182905260228101849052604290209091505f612348828888886136bf565b90508a6001600160a01b0316816001600160a01b03161461238f5760405163b642210560e01b81526001600160a01b0380831660048301528c166024820152604401611480565b61239a8b8b8b6127a3565b5050505050505050505050565b5f6119026012848461330b565b5f5f6123c084846123cc565b50505f13949350505050565b6001600160a01b0382165f908152600260205260408120549080806123f086611328565b90505f5b81518110156124f0575f5f5f84848151811061241257612412614e0e565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa15801561246f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124939190614e22565b919450925090506124a48288614d38565b96506124b08187614d38565b95506124cc8183116124c2575f612cde565b611ee18284614de3565b6124d6848a614b86565b6124e09190614bad565b97505050508060010190506123f4565b50509250925092565b5f54610100900460ff161580801561251757505f54600160ff909116105b806125305750303b15801561253057505f5460ff166001145b61254c5760405162461bcd60e51b815260040161148090614d4b565b5f805460ff19166001179055801561256d575f805461ff0019166101001790555b61257c88888888888888612f8b565b8015611862575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336125d7601282846136eb565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b336126286012828961330b565b6126455760405163f7f0222760e01b815260040160405180910390fd5b6114fe8188898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f9201919091525061285192505050565b61109b3333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250612851915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561276157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612743575b50505050509050919050565b5f5b815181101561109b575f82828151811061278b5761278b614e0e565b6020908102919091010151848301555060010161276f565b6001600160a01b0383166127ca57604051638163862760e01b815260040160405180910390fd5b6001600160a01b0382166127f1576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b038381165f8181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b031661287a57604051637bce7b2b60e11b815260040160405180910390fd5b5f5f61288585612ed0565b9150915061289b88888387515f1415888861352a565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156128e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129059190614c09565b600e5490915061291f906001600160a01b031688856137e0565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612965573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129899190614c09565b90505f6129968284614de3565b90508085146129b857604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516129f391815260200190565b60405180910390a25050505050505050505050565b5f805b82811015612a3157838101548015612a2857600192505050610b92565b50600101612a0b565b505f9392505050565b5f6001600160a01b038416612a625760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b038316612a895760405163e219bd3960e01b815260040160405180910390fd5b5f339050612ab78186868660405180602001604052805f81525060405180602001604052805f81525061383f565b846001600160a01b0316866001600160a01b031614612b92576001600160a01b038086165f908152601160209081526040808320938a1683529290522054831115612b5a5760405162461bcd60e51b815260206004820152602d60248201527f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636560448201526c65647320616c6c6f77616e636560981b6064820152608401611480565b6001600160a01b038086165f908152601160209081526040808320938a1683529290522054612b9290869088906113fc908790614de3565b50600195945050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c209190614e4d565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612cb4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cd89190614e4d565b91505090565b5f6001600160ff1b03821115612d0a5760405163123baf0360e11b815260048101839052602401611480565b5090565b600e546001600160a01b0316612d3757604051637bce7b2b60e11b815260040160405180910390fd5b5f5f612d4285612ed0565b600e546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612d90573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612db49190614c09565b600e54909150612dcf906001600160a01b03168930866138dd565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612e15573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e399190614c09565b90505f612e468383614de3565b9050808514612e6857604051631c7c26d360e31b815260040160405180910390fd5b8651612e7e908c908b9087901515808c8c6135f4565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516129f391815260200190565b5f5b8181101561109b575f83820155600101612ebb565b600e545f90819081906012600160a01b90910460ff161015612f2e57600e54612f0490600160a01b900460ff166012614e68565b612f0f90600a614f64565b9050612f1b8185614f72565b9250612f278184614f91565b9150612f85565b600e546012600160a01b90910460ff161115612f7e57600e54612f5d90601290600160a01b900460ff16614e68565b612f6890600a614f64565b9050612f748185614f91565b9250839150612f85565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612fc0858783614fec565b506010612fce838583614fec565b50612fe4815f51602061513d5f395f51905f5255565b612fed30613916565b6040515f8082529081905f51602061515d5f395f51905f529060200160405180910390a36040516001600160a01b038216905f907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b5f6130787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036130ce5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401611480565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561310a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061312e9190614c09565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146131a85760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401611480565b6001600160a01b03811630036132005760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401611480565b613228817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611ccf565b6060816001600160401b038111156132a0576132a0614304565b6040519080825280602002602001820160405280156132c9578160200160208202803683370190505b5090505f5b82811015613304575f818501549050808383815181106132f0576132f0614e0e565b6020908102919091010152506001016132ce565b5092915050565b5f816001600160a01b0316836001600160a01b0316148061337757506001600160a01b0383165f90815260018501602052604090205460ff16801561337757506001600160a01b038083165f90815260038601602090815260408083209387168352929052205460ff16155b806110ad57506001600160a01b038083165f90815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166133d75760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166133fe5760405163e219bd3960e01b815260040160405180910390fd5b61340c878787878787613a3a565b61341a87878787878761383f565b6114fe87878787878787613b4c565b806001600160a01b0316826001600160a01b0316036134a05760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401611480565b6001600160a01b0381165f90815260018401602052604090205460ff16156134f4576001600160a01b039182165f90815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b038083165f9081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661355157604051632e8aac6160e21b815260040160405180910390fd5b82156135655761356586865f878686613a3a565b61356f8585613c94565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988685856040516135b6939291906150a5565b60405180910390a36040518481525f906001600160a01b038716905f51602061515d5f395f51905f52906020015b60405180910390a3505050505050565b6001600160a01b03861661361b57604051630d24315760e01b815260040160405180910390fd5b6136258686613d9f565b831561363a5761363a875f8888868689613b4c565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d878585604051613681939291906150a5565b60405180910390a36040518581526001600160a01b038716905f905f51602061515d5f395f51905f529060200160405180910390a350505050505050565b5f5f5f5f6136cf88888888613df7565b9250925092506136df8282613ebf565b50909695505050505050565b336001600160a01b038216036137565760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401611480565b6001600160a01b0381165f90815260018401602052604090205460ff16156137ae576001600160a01b038083165f9081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b039182165f90815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b0383811660248301526044820183905261109b91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613f77565b613852858561384d86612cde565b613fe3565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516138a3939291906150a5565b60405180910390a4836001600160a01b0316856001600160a01b03165f51602061515d5f395f51905f52856040516135e491815260200190565b6040516001600160a01b0384811660248301528381166044830152606482018390526117669186918216906323b872dd9060840161380d565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b158015613994575f5ffd5b505af11580156139a6573d5f5f3e3d5ffd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b158015613a28575f5ffd5b505af1158015610cfb573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613ab8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613adc9190614e4d565b90506001600160a01b038116156114fe57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613b23908a908a908a908a908a908a906004016150cf565b5f604051808303815f87803b158015613b3a575f5ffd5b505af115801561239a573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613bca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613bee9190614e4d565b90506001600160a01b03811615613c65576040516223de2960e01b81526001600160a01b038216906223de2990613c33908b908b908b908b908b908b906004016150cf565b5f604051808303815f87803b158015613c4a575f5ffd5b505af1158015613c5c573d5f5f3e3d5ffd5b50505050611862565b8115611862576001600160a01b0386163b156118625760405163fe737d0560e01b815260040160405180910390fd5b5f613d19837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cf5573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098c9190614c09565b50509050613d2682612cde565b811215613d465760405163043b37d160e21b815260040160405180910390fd5b613d4f82612cde565b6001600160a01b0384165f90815260026020526040902054613d719190614bad565b6001600160a01b0384165f90815260026020526040902055600354613d97908390614de3565b600355505050565b613da881612cde565b6001600160a01b0383165f90815260026020526040902054613dca9190614b86565b6001600160a01b0383165f90815260026020526040902055600354613df0908290614d38565b6003555050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613e3057505f91506003905082613eb5565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613e81573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613eac57505f925060019150829050613eb5565b92505f91508190505b9450945094915050565b5f826003811115613ed257613ed2615128565b03613edb575050565b6001826003811115613eef57613eef615128565b03613f0d5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115613f2157613f21615128565b03613f425760405163fce698f760e01b815260048101829052602401611480565b6003826003811115613f5657613f56615128565b03611128576040516335e2f38360e21b815260048101829052602401611480565b5f5f60205f8451602086015f885af180613f96576040513d5f823e3d81fd5b50505f513d91508115613fad578060011415613fba565b6001600160a01b0384163b155b1561176657604051635274afe760e01b81526001600160a01b0385166004820152602401611480565b5f614044847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cf5573d5f5f3e3d5ffd5b505090508181121561406957604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b0384165f9081526002602052604090205461408c908390614bad565b6001600160a01b038086165f9081526002602052604080822093909355908516815220546140bb908390614b86565b6001600160a01b039093165f90815260026020526040902092909255505050565b602080825282518282018190525f918401906040840190835b8181101561411c5783516001600160a01b03168352602093840193909201916001016140f5565b509095945050505050565b5f81518084525f5b8181101561414b5760208185018101518683018201520161412f565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6119026020830184614127565b6001600160a01b0381168114610bc2575f5ffd5b5f5f83601f8401126141a0575f5ffd5b5081356001600160401b038111156141b6575f5ffd5b6020830191508360208260051b85010111156141d0575f5ffd5b9250929050565b5f5f5f5f606085870312156141ea575f5ffd5b84356141f58161417c565b93506020850135925060408501356001600160401b03811115614216575f5ffd5b61422287828801614190565b95989497509550505050565b5f5f6040838503121561423f575f5ffd5b823561424a8161417c565b946020939093013593505050565b5f60208284031215614268575f5ffd5b5035919050565b5f5f5f60408486031215614281575f5ffd5b8335925060208401356001600160401b0381111561429d575f5ffd5b6142a986828701614190565b9497909650939450505050565b5f5f5f5f608085870312156142c9575f5ffd5b84356142d48161417c565b935060208501356142e48161417c565b925060408501356142f48161417c565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561434057614340614304565b604052919050565b5f82601f830112614357575f5ffd5b81356001600160401b0381111561437057614370614304565b614383601f8201601f1916602001614318565b818152846020838601011115614397575f5ffd5b816020850160208301375f918101602001919091529392505050565b8015158114610bc2575f5ffd5b5f5f5f5f5f5f5f60e0888a0312156143d6575f5ffd5b8735965060208801356001600160401b038111156143f2575f5ffd5b6143fe8a828b01614348565b965050604088013561440f8161417c565b9450606088013561441f816143b3565b9350608088013561442f8161417c565b9699959850939692959460a0840135945060c09093013592915050565b5f5f5f6060848603121561445e575f5ffd5b83356144698161417c565b925060208401356144798161417c565b929592945050506040919091013590565b5f5f6040838503121561449b575f5ffd5b50508035926020909101359150565b5f602082840312156144ba575f5ffd5b81356119028161417c565b803560ff811681146144d5575f5ffd5b919050565b5f5f83601f8401126144ea575f5ffd5b5081356001600160401b03811115614500575f5ffd5b6020830191508360208285010111156141d0575f5ffd5b5f5f5f5f5f5f6080878903121561452c575f5ffd5b86356145378161417c565b9550614545602088016144c5565b945060408701356001600160401b0381111561455f575f5ffd5b61456b89828a016144da565b90955093505060608701356001600160401b03811115614589575f5ffd5b61459589828a016144da565b979a9699509497509295939492505050565b5f5f5f5f608085870312156145ba575f5ffd5b84356145c58161417c565b935060208501356145d58161417c565b93969395505050506040820135916060013590565b602080825282518282018190525f918401906040840190835b8181101561411c578351835260209384019390920191600101614603565b5f5f5f5f60608587031215614634575f5ffd5b843561463f8161417c565b93506020850135925060408501356001600160401b03811115614660575f5ffd5b614222878288016144da565b5f5f5f5f5f5f5f60a0888a031215614682575f5ffd5b873561468d8161417c565b9650602088013561469d8161417c565b95506040880135945060608801356001600160401b038111156146be575f5ffd5b6146ca8a828b016144da565b90955093505060808801356001600160401b038111156146e8575f5ffd5b6146f48a828b016144da565b989b979a50959850939692959293505050565b5f5f5f60608486031215614719575f5ffd5b83356147248161417c565b95602085013595506040909401359392505050565b60ff60f81b8816815260e060208201525f61475760e0830189614127565b82810360408401526147698189614127565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b818110156147be5783518352602093840193909201916001016147a0565b50909b9a5050505050505050505050565b5f5f5f606084860312156147e1575f5ffd5b83356147ec8161417c565b92506020840135915060408401356001600160401b0381111561480d575f5ffd5b61481986828701614348565b9150509250925092565b5f5f5f5f60808587031215614836575f5ffd5b84356148418161417c565b935060208501356148518161417c565b92506040850135915060608501356001600160401b03811115614872575f5ffd5b61487e87828801614348565b91505092959194509250565b5f5f5f5f5f5f5f60e0888a0312156148a0575f5ffd5b87356148ab8161417c565b965060208801356148bb8161417c565b9550604088013594506060880135935061442f608089016144c5565b5f5f604083850312156148e8575f5ffd5b82356148f38161417c565b915060208301356149038161417c565b809150509250929050565b5f5f5f5f5f5f5f60a0888a031215614924575f5ffd5b873561492f8161417c565b965061493d602089016144c5565b955060408801356001600160401b03811115614957575f5ffd5b6149638a828b016144da565b90965094505060608801356001600160401b03811115614981575f5ffd5b61498d8a828b016144da565b90945092505060808801356149a18161417c565b8091505092959891949750929550565b5f5f5f5f5f5f608087890312156149c6575f5ffd5b86356149d18161417c565b95506020870135945060408701356001600160401b0381111561455f575f5ffd5b5f5f5f60408486031215614a04575f5ffd5b8335925060208401356001600160401b03811115614a20575f5ffd5b6142a9868287016144da565b600181811c90821680614a4057607f821691505b602082108103614a5e57634e487b7160e01b5f52602260045260245ffd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b83815260406020820181905281018290525f6001600160fb1b03831115614b0f575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215614b39575f5ffd5b8151611902816143b3565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201614b6c57614b6c614b44565b505f0390565b634e487b7160e01b5f52600160045260245ffd5b8082018281125f831280158216821582161715614ba557614ba5614b44565b505092915050565b8181035f83128015838313168383128216171561330457613304614b44565b85815260018060a01b038516602082015283604082015282606082015260a060808201525f614bfe60a0830184614127565b979650505050505050565b5f60208284031215614c19575f5ffd5b5051919050565b5f5f8354614c2d81614a2c565b600182168015614c445760018114614c5957614c86565b60ff1983168652811515820286019350614c86565b865f5260205f205f5b83811015614c7e57815488820152600190910190602001614c62565b505081860193505b509195945050505050565b5f60208284031215614ca1575f5ffd5b81516001600160401b03811115614cb6575f5ffd5b8201601f81018413614cc6575f5ffd5b80516001600160401b03811115614cdf57614cdf614304565b8060051b614cef60208201614318565b91825260208184018101929081019087841115614d0a575f5ffd5b6020850194505b83851015614bfe5784519250614d268361417c565b82825260209485019490910190614d11565b80820180821115610b9257610b92614b44565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602a908201527f5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652060408201526962656c6f77207a65726f60b01b606082015260800190565b81810381811115610b9257610b92614b44565b5f60018201614e0757614e07614b44565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f5f5f60608486031215614e34575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215614e5d575f5ffd5b81516119028161417c565b60ff8281168282160390811115610b9257610b92614b44565b6001815b6001841115614ebc57808504811115614ea057614ea0614b44565b6001841615614eae57908102905b60019390931c928002614e85565b935093915050565b5f82614ed257506001610b92565b81614ede57505f610b92565b8160018114614ef45760028114614efe57614f1a565b6001915050610b92565b60ff841115614f0f57614f0f614b44565b50506001821b610b92565b5060208310610133831016604e8410600b8410161715614f3d575081810a610b92565b614f495f198484614e81565b805f1904821115614f5c57614f5c614b44565b029392505050565b5f61190260ff841683614ec4565b5f82614f8c57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610b9257610b92614b44565b601f82111561109b57805f5260205f20601f840160051c81016020851015614fcd5750805b601f840160051c820191505b81811015610cfb575f8155600101614fd9565b6001600160401b0383111561500357615003614304565b615017836150118354614a2c565b83614fa8565b5f601f841160018114615048575f85156150315750838201355b5f19600387901b1c1916600186901b178355610cfb565b5f83815260208120601f198716915b828110156150775786850135825560209485019460019092019101615057565b5086821015615093575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201525f6150bd6060830185614127565b82810360408401526116e38185614127565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190525f9061510990830185614127565b82810360a084015261511b8185614127565b9998505050505050505050565b634e487b7160e01b5f52602160045260245ffdfeb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220615226e7355173b6968beed5866df69339f245acc909382e90c496834cd002aa64736f6c634300081e0033";
15
+ static readonly bytecode = "0x60e060405234801561000f575f5ffd5b5060405161546938038061546983398101604081905261002e91610089565b6001600160a01b03808316608052811660c08190526040517feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e6905f90a250506100c1565b6001600160a01b0381168114610086575f5ffd5b50565b5f5f6040838503121561009a575f5ffd5b82516100a581610072565b60208401519092506100b681610072565b809150509250929050565b60805160a05160c0516152e46101855f395f61088401525f6109f301525f81816104f901528181610cc601528181610d3501528181611048015281816110d5015281816111ff015281816113790152818161157f015281816115d5015281816116480152818161178c0152818161192e01528181611b1e01528181611ed801528181612004015281816120cb01528181612190015281816121f70152818161227d01528181612c0601528181612c9b01528181613dcd015261411c01526152e45ff3fe608060405234801561000f575f5ffd5b5060043610610417575f3560e01c806370a0823111610221578063b84cdd4a1161012a578063d9d078d6116100b4578063ee719bc811610084578063ee719bc8146109dd578063f5a8b4dd146109ee578063fad8b32a14610a15578063fc673c4f14610a28578063fe9d930314610a3b575f5ffd5b8063d9d078d614610951578063dd62ed3e14610964578063eb3537cc1461099c578063ec0d6343146109ca575f5ffd5b8063ca0c1e7f116100fa578063ca0c1e7f146108f2578063ca78946414610905578063cf97256d14610918578063d505accf1461092b578063d95b63711461093e575f5ffd5b8063b84cdd4a146108a6578063bb0d196e146108b9578063c68d4283146108cc578063c780fd82146108df575f5ffd5b80639903ad38116101ab578063a3a7e7f31161017b578063a3a7e7f314610833578063a457c2d714610846578063a854d22f14610859578063a9059cbb1461086c578063b20db1ac1461087f575f5ffd5b80639903ad38146107f25780639bd9bbc6146107fa5780639d8767411461080d578063a1b2bf8b14610820575f5ffd5b806384b0196e116101f157806384b0196e146107975780638f283970146107b257806392081a47146107c5578063959b8c3f146107d757806395d89b41146107ea575f5ffd5b806370a082311461073657806379359f6f146107495780637ecebe001461075c57806383ba252514610784575f5ffd5b8063386fa2211161032357806350d75d25116102ad57806362aa52871161027d57806362aa5287146106e257806362ad1b83146106f557806366a12fb6146107085780636c2d9f2f1461071b5780636e9960c31461072e575f5ffd5b806350d75d251461069a57806352d1902d146106a2578063556f0dc7146106c85780635b9d09cc146106cf575f5ffd5b806345977d03116102f357806345977d031461062e578063469519541461064157806347ba7ad1146106545780634b2763b3146106675780634b61cc331461067a575f5ffd5b8063386fa221146105e257806339509351146105f557806341b706be1461060857806342fe09801461061b575f5ffd5b80631ae88ffc116103a457806327048397116103745780632704839714610557578063282a050b1461056a5780632ec8eec714610592578063313ce567146105c55780633644e515146105da575f5ffd5b80631ae88ffc146104e457806320bc4425146104f757806323b872dd14610531578063245887fc14610544575f5ffd5b806311bcc81e116103ea57806311bcc81e1461048657806312a6a3f81461049957806316d055d6146104ac57806318160ddd146104bf5780631863e809146104d1575f5ffd5b806306e485381461041b57806306fdde0314610439578063090c415e1461044e578063095ea7b314610463575b5f5ffd5b610423610a4e565b604051610430919061420e565b60405180910390f35b610441610a5f565b604051610430919061429c565b61046161045c366004614309565b610aef565b005b610476610471366004614360565b610ba0565b6040519015158152602001610430565b61046161049436600461438a565b610bb6565b6104616104a73660046143a1565b610be3565b6104616104ba3660046143e8565b610cc4565b6003545b604051908152602001610430565b6104616104df3660046144f2565b610d20565b6104616104f236600461457e565b611046565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610430565b61047661053f36600461457e565b6110be565b610461610552366004614360565b6110d3565b6104616105653660046145bc565b61114a565b61057d61057836600461438a565b6111e5565b60408051928352602083019190915201610430565b6105a56105a03660046145dc565b6111f9565b604080519485526020850193909352918301526060820152608001610430565b60125b60405160ff9091168152602001610430565b6104c3611298565b6104236105f03660046145dc565b611346565b610476610603366004614360565b6113e4565b6104616106163660046143e8565b61141f565b610461610629366004614649565b61144b565b61046161063c36600461438a565b611525565b61046161064f3660046145dc565b61154f565b61046161066236600461457e565b6115d3565b61046161067536600461457e565b611646565b61068d6106883660046146d9565b6116c7565b604051610430919061471c565b61051961170b565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104c3565b60016104c3565b6104616106dd366004614753565b611734565b6104616106f036600461457e565b61178a565b61046161070336600461479e565b6117de565b61046161071636600461457e565b61188a565b61068d610729366004614839565b6118aa565b6105196118eb565b6104c36107443660046145dc565b611901565b6104766107573660046145dc565b611927565b6104c361076a3660046145dc565b6001600160a01b03165f9081526016602052604090205490565b610461610792366004614360565b6119ac565b61079f6119d6565b604051610430979695949392919061486b565b6104616107c03660046145dc565b611aee565b600e54600160a01b900460ff166105c8565b6104616107e53660046145dc565b611bdc565b610441611c2d565b610461611c3c565b610461610808366004614753565b611cf8565b61046161081b366004614901565b611d4b565b61046161082e3660046143a1565b611d90565b6104616108413660046145dc565b611e38565b610476610854366004614360565b611e4c565b610461610867366004614955565b611ec3565b61047661087a366004614360565b611fa4565b6105197f000000000000000000000000000000000000000000000000000000000000000081565b6104766108b4366004614360565b611fb1565b6104766108c73660046145dc565b611ffd565b6104616108da366004614901565b612082565b6104616108ed36600461457e565b6120c9565b61046161090036600461498c565b61218e565b610461610913366004614360565b6121f5565b610461610926366004614360565b612268565b6104616109393660046149f3565b61234d565b61047661094c366004614955565b6124a6565b61047661095f366004614360565b6124b3565b6104c3610972366004614955565b6001600160a01b039182165f90815260116020908152604080832093909416825291909152205490565b6109af6109aa366004614360565b6124cb565b60408051938452602084019290925290820152606001610430565b6104616109d8366004614a40565b6125f8565b600e546001600160a01b0316610519565b6105197f000000000000000000000000000000000000000000000000000000000000000081565b610461610a233660046145dc565b6126c9565b610461610a36366004614ae3565b61271a565b610461610a49366004614b24565b6127b9565b6060610a5a6012612809565b905090565b6060600f8054610a6e90614b5e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9a90614b5e565b8015610ae55780601f10610abc57610100808354040283529160200191610ae5565b820191905f5260205f20905b815481529060010190602001808311610ac857829003601f168201915b5050505050905090565b5f338585604051602001610b0593929190614b96565b604051602081830303815290604052805190602001209050610b59818484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061286c92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b5f610bac3384846128a2565b5060015b92915050565b610be03333338460405180602001604052805f81525060405180602001604052805f8152506128af565b50565b60405133905f90610bfa9083908790602001614bdf565b60408051601f1981840301815291905280516020909101209050610c1e8184612a66565b15610c3c5760405163782a90fb60e11b815260040160405180910390fd5b610c78818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061286c92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610cb593929190614c1c565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d0d5760405163c51efddd60e01b815260040160405180910390fd5b610d1984848484612a98565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da69190614c5b565b610dc35760405163327fd99160e21b815260040160405180910390fd5b5f610dcc612c02565b90506001600160a01b038116610ddf5750845b5f85610deb5786610ded565b815b90505f8313610eb757610dff83614c8a565b610e0885612d42565b14610e1557610e15614ca4565b610e1e84612d42565b6001600160a01b0382165f9081526002602052604081208054909190610e45908490614cb8565b90915550506001600160a01b0385165f9081526002602052604081208054859290610e71908490614cb8565b92505081905550806001600160a01b0316856001600160a01b03165f51602061528f5f395f51905f5286604051610eaa91815260200190565b60405180910390a3610fde565b8515610ec557610ec5614ca4565b82610ecf85612d42565b610ed99190614cb8565b6001600160a01b0383165f9081526002602052604081208054909190610f00908490614cdf565b90915550610f0f905084612d42565b6001600160a01b0388165f9081526002602052604081208054909190610f36908490614cb8565b90915550506001600160a01b0385165f9081526002602052604081208054859290610f62908490614cb8565b92505081905550866001600160a01b0316826001600160a01b03165f51602061528f5f395f51905f5286604051610f9b91815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03165f51602061528f5f395f51905f5285604051610fd591815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611033959493929190614cfe565b60405180910390a4505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461108f5760405163c51efddd60e01b815260040160405180910390fd5b6110b93384848460405180602001604052805f81525060405180602001604052805f815250612d72565b505050565b5f6110cb33858585612a98565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461111c5760405163c51efddd60e01b815260040160405180910390fd5b6111463383848460405180602001604052805f81525060405180602001604052805f8152506128af565b5050565b60405133905f906111619083908690602001614bdf565b6040516020818303038152906040528051906020012090506111838184612a66565b6111a05760405163dae1880960e01b815260040160405180910390fd5b6111aa8184612f1d565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b5f5f6111f083612f34565b91509150915091565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611259573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127d9190614d3b565b905061128985826124cb565b91979096509094509092509050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600f6040516112c99190614d52565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038181165f908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d906024015f60405180830381865afa1580156113bd573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bb09190810190614dc3565b335f8181526011602090815260408083206001600160a01b03871684529091528120549091610bac91859061141a908690614e6a565b6128a2565b33301461143f57604051630fff4cc960e31b815260040160405180910390fd5b610d1983858484612a98565b5f54610100900460ff161580801561146957505f54600160ff909116105b806114825750303b15801561148257505f5460ff166001145b6114a75760405162461bcd60e51b815260040161149e90614e7d565b60405180910390fd5b5f805460ff1916600117905580156114c8575f805461ff0019166101001790555b6114d78787878787875f612fef565b801561151c575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610be03333338460405180602001604052805f81525060405180602001604052805f815250612d72565b5f6115655f51602061526f5f395f51905f525490565b90505f6001600160a01b0382161561157d578161159f565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146115ca57604051630484acab60e01b815260040160405180910390fd5b6110b9836130b3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461161c5760405163c51efddd60e01b815260040160405180910390fd5b6110b93384848460405180602001604052805f81525060405180602001604052805f8152506128af565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461168f5760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110b9908490849061141a908590614e6a565b60605f8585856040516020016116df93929190614b96565b60405160208183030381529060405280519060200120905061170181846132ea565b9695505050505050565b5f610a5a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6117843333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250612d72915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117d35760405163c51efddd60e01b815260040160405180910390fd5b6110b98383836128a2565b336117eb6012828a61336f565b6118085760405163f7f0222760e01b815260040160405180910390fd5b6118808189898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f9201919091525060019250613414915050565b5050505050505050565b3330146117d357604051630fff4cc960e31b815260040160405180910390fd5b60605f84846040516020016118c0929190614bdf565b6040516020818303038152906040528051906020012090506118e281846132ea565b95945050505050565b5f610a5a5f51602061526f5f395f51905f525490565b5f5f61190c836111f9565b50505090505f811261191e5780611920565b5f5b9392505050565b5f610bb0827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611988573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f9190614d3b565b6111463333848460405180602001604052805f81525060405180602001604052805f8152506128af565b5f6060805f5f5f6060600f604051806040016040528060018152602001603160f81b81525046305f5f1b5f6001600160401b03811115611a1857611a18614436565b604051908082528060200260200182016040528015611a41578160200160208202803683370190505b50600f60f81b959493929190858054611a5990614b5e565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8590614b5e565b8015611ad05780601f10611aa757610100808354040283529160200191611ad0565b820191905f5260205f20905b815481529060010190602001808311611ab357829003601f168201915b50505050509550965096509650965096509650965090919293949596565b5f611b045f51602061526f5f395f51905f525490565b90505f6001600160a01b03821615611b1c5781611b3e565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611b6957604051630484acab60e01b815260040160405180910390fd5b5f611b7f5f51602061526f5f395f51905f525490565b9050611b96845f51602061526f5f395f51905f5255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611be96012828461348d565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a6e90614b5e565b5f54610100900460ff1615808015611c5a57505f54600160ff909116105b80611c735750303b158015611c7357505f5460ff166001145b611c8f5760405162461bcd60e51b815260040161149e90614e7d565b5f805460ff191660011790558015611cb0575f805461ff0019166101001790555b8015610be0575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6117843333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250600191506134149050565b333014611d6b57604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110b99133918691869190151590869061358e565b60405133905f90611da79083908790602001614bdf565b604051602081830303815290604052805190602001209050611dfb818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061286c92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610cb593929190614c1c565b611146333383611e4733611901565b612a98565b335f9081526011602090815260408083206001600160a01b0386168452909152812054821115611e8e5760405162461bcd60e51b815260040161149e90614ecb565b335f8181526011602090815260408083206001600160a01b0388168452909152902054610bac9190859061141a908690614f15565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611f25573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f499190614c5b565b611f665760405163327fd99160e21b815260040160405180910390fd5b806001600160a01b0316826001600160a01b03165f51602061528f5f395f51905f525f604051611f9891815260200190565b60405180910390a35050565b5f61192033338585612a98565b5f5f5f5f611fbf86866124cb565b9250925092505f611fe5828411611fd6575f612d42565b611fe08385614f15565b612d42565b611fef9085614cb8565b5f1315979650505050505050565b5f610bb0827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561205e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b49190614d3b565b3330146120a257604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110b9913391869186919015159081908790613658565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146121125760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220548111156121565760405162461bcd60e51b815260040161149e90614ecb565b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110b9908490849061141a908590614f15565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146121d75760405163c51efddd60e01b815260040160405180910390fd5b611784338585858560405180602001604052805f8152506001613414565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461223e5760405163c51efddd60e01b815260040160405180910390fd5b6111463383848460405180602001604052805f81525060405180602001604052805f815250612d72565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156122ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ee9190614c5b565b61230b5760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382165f9081526002602052604090205461232e908290614cb8565b6001600160a01b039092165f9081526002602052604090209190915550565b8342111561237157604051636e72b90f60e01b81526004810185905260240161149e565b6001600160a01b0387165f90815260166020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866123bd83614f28565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61241a611298565b60405161190160f01b81526002810182905260228101849052604290209091505f61244782888888613723565b90508a6001600160a01b0316816001600160a01b03161461248e5760405163b642210560e01b81526001600160a01b0380831660048301528c16602482015260440161149e565b6124998b8b8b6128a2565b5050505050505050505050565b5f6119206012848461336f565b5f5f6124bf84846124cb565b50505f13949350505050565b6001600160a01b0382165f908152600260205260408120549080806124ef86611346565b90505f5b81518110156125ef575f5f5f84848151811061251157612511614f40565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa15801561256e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125929190614f54565b919450925090506125a38288614e6a565b96506125af8187614e6a565b95506125cb8183116125c1575f612d42565b611fe08284614f15565b6125d5848a614cb8565b6125df9190614cdf565b97505050508060010190506124f3565b50509250925092565b5f54610100900460ff161580801561261657505f54600160ff909116105b8061262f5750303b15801561262f57505f5460ff166001145b61264b5760405162461bcd60e51b815260040161149e90614e7d565b5f805460ff19166001179055801561266c575f805461ff0019166101001790555b61267b88888888888888612fef565b8015611880575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336126d66012828461374f565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b336127276012828961336f565b6127445760405163f7f0222760e01b815260040160405180910390fd5b61151c8188898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f920191909152506128af92505050565b6110b93333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250604080516020810190915290815292506128af915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561286057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612842575b50505050509050919050565b5f5b81518110156110b9575f82828151811061288a5761288a614f40565b6020908102919091010151848301555060010161286e565b6110b98383836001613844565b600e546001600160a01b03166128d857604051637bce7b2b60e11b815260040160405180910390fd5b5f5f6128e385612f34565b915091506128f988888387515f1415888861358e565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa15801561293f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129639190614d3b565b600e5490915061297d906001600160a01b03168885613912565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156129c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129e79190614d3b565b90505f6129f48284614f15565b9050808514612a1657604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d85604051612a5191815260200190565b60405180910390a25050505050505050505050565b5f805b82811015612a8f57838101548015612a8657600192505050610bb0565b50600101612a69565b505f9392505050565b5f6001600160a01b038416612ac05760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b038316612ae75760405163e219bd3960e01b815260040160405180910390fd5b5f339050612b158186868660405180602001604052805f81525060405180602001604052805f815250613971565b846001600160a01b0316866001600160a01b031614612bf6576001600160a01b038086165f908152601160209081526040808320938a1683529290522054831115612bb85760405162461bcd60e51b815260206004820152602d60248201527f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636560448201526c65647320616c6c6f77616e636560981b606482015260840161149e565b6001600160a01b038086165f908152601160209081526040808320938a1683529290522054612bf69086908890612bf0908790614f15565b5f613844565b50600195945050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c60573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c849190614f7f565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612d18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d3c9190614f7f565b91505090565b5f6001600160ff1b03821115612d6e5760405163123baf0360e11b81526004810183905260240161149e565b5090565b600e546001600160a01b0316612d9b57604051637bce7b2b60e11b815260040160405180910390fd5b5f5f612da685612f34565b600e546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612df4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e189190614d3b565b600e54909150612e33906001600160a01b0316893086613a0f565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612e79573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e9d9190614d3b565b90505f612eaa8383614f15565b9050808514612ecc57604051631c7c26d360e31b815260040160405180910390fd5b8651612ee2908c908b9087901515808c8c613658565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df85604051612a5191815260200190565b5f5b818110156110b9575f83820155600101612f1f565b600e545f90819081906012600160a01b90910460ff161015612f9257600e54612f6890600160a01b900460ff166012614f9a565b612f7390600a615096565b9050612f7f81856150a4565b9250612f8b81846150c3565b9150612fe9565b600e546012600160a01b90910460ff161115612fe257600e54612fc190601290600160a01b900460ff16614f9a565b612fcc90600a615096565b9050612fd881856150c3565b9250839150612fe9565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f61302485878361511e565b50601061303283858361511e565b50613048815f51602061526f5f395f51905f5255565b61305130613a48565b6040515f8082529081905f51602061528f5f395f51905f529060200160405180910390a36040516001600160a01b038216905f907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b5f6130dc7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036131325760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c65000000604482015260640161149e565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561316e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131929190614d3b565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00191461320c5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b606482015260840161149e565b6001600160a01b03811630036132645760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f7000000000000000604482015260640161149e565b61328c817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611ced565b6060816001600160401b0381111561330457613304614436565b60405190808252806020026020018201604052801561332d578160200160208202803683370190505b5090505f5b82811015613368575f8185015490508083838151811061335457613354614f40565b602090810291909101015250600101613332565b5092915050565b5f816001600160a01b0316836001600160a01b031614806133db57506001600160a01b0383165f90815260018501602052604090205460ff1680156133db57506001600160a01b038083165f90815260038601602090815260408083209387168352929052205460ff16155b806110cb57506001600160a01b038083165f90815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b03861661343b5760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166134625760405163e219bd3960e01b815260040160405180910390fd5b613470878787878787613b6c565b61347e878787878787613971565b61151c87878787878787613c7e565b806001600160a01b0316826001600160a01b0316036135045760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b606482015260840161149e565b6001600160a01b0381165f90815260018401602052604090205460ff1615613558576001600160a01b039182165f90815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b038083165f9081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b0385166135b557604051632e8aac6160e21b815260040160405180910390fd5b82156135c9576135c986865f878686613b6c565b6135d38585613dc6565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a409886858560405161361a939291906151d7565b60405180910390a36040518481525f906001600160a01b038716905f51602061528f5f395f51905f52906020015b60405180910390a3505050505050565b6001600160a01b03861661367f57604051630d24315760e01b815260040160405180910390fd5b6136898686613ed1565b831561369e5761369e875f8888868689613c7e565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d8785856040516136e5939291906151d7565b60405180910390a36040518581526001600160a01b038716905f905f51602061528f5f395f51905f529060200160405180910390a350505050505050565b5f5f5f5f61373388888888613f29565b9250925092506137438282613ff1565b50909695505050505050565b336001600160a01b038216036137ba5760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b606482015260840161149e565b6001600160a01b0381165f90815260018401602052604090205460ff1615613812576001600160a01b038083165f9081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b039182165f90815260029390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b03841661386b57604051638163862760e01b815260040160405180910390fd5b6001600160a01b038316613892576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b038085165f908152601160209081526040808320938716835292905220829055801561178457826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161390491815260200190565b60405180910390a350505050565b6040516001600160a01b038381166024830152604482018390526110b991859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506140a9565b613984858561397f86612d42565b614115565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516139d5939291906151d7565b60405180910390a4836001600160a01b0316856001600160a01b03165f51602061528f5f395f51905f528560405161364891815260200190565b6040516001600160a01b0384811660248301528381166044830152606482018390526117849186918216906323b872dd9060840161393f565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b158015613ac6575f5ffd5b505af1158015613ad8573d5f5f3e3d5ffd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b158015613b5a575f5ffd5b505af1158015610d19573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613bea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c0e9190614f7f565b90506001600160a01b0381161561151c57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613c55908a908a908a908a908a908a90600401615201565b5f604051808303815f87803b158015613c6c575f5ffd5b505af1158015612499573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613cfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d209190614f7f565b90506001600160a01b03811615613d97576040516223de2960e01b81526001600160a01b038216906223de2990613d65908b908b908b908b908b908b90600401615201565b5f604051808303815f87803b158015613d7c575f5ffd5b505af1158015613d8e573d5f5f3e3d5ffd5b50505050611880565b8115611880576001600160a01b0386163b156118805760405163fe737d0560e01b815260040160405180910390fd5b5f613e4b837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e27573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109aa9190614d3b565b50509050613e5882612d42565b811215613e785760405163043b37d160e21b815260040160405180910390fd5b613e8182612d42565b6001600160a01b0384165f90815260026020526040902054613ea39190614cdf565b6001600160a01b0384165f90815260026020526040902055600354613ec9908390614f15565b600355505050565b613eda81612d42565b6001600160a01b0383165f90815260026020526040902054613efc9190614cb8565b6001600160a01b0383165f90815260026020526040902055600354613f22908290614e6a565b6003555050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613f6257505f91506003905082613fe7565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613fb3573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613fde57505f925060019150829050613fe7565b92505f91508190505b9450945094915050565b5f8260038111156140045761400461525a565b0361400d575050565b60018260038111156140215761402161525a565b0361403f5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156140535761405361525a565b036140745760405163fce698f760e01b81526004810182905260240161149e565b60038260038111156140885761408861525a565b03611146576040516335e2f38360e21b81526004810182905260240161149e565b5f5f60205f8451602086015f885af1806140c8576040513d5f823e3d81fd5b50505f513d915081156140df5780600114156140ec565b6001600160a01b0384163b155b1561178457604051635274afe760e01b81526001600160a01b038516600482015260240161149e565b5f614176847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e27573d5f5f3e3d5ffd5b505090508181121561419b57604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b0384165f908152600260205260409020546141be908390614cdf565b6001600160a01b038086165f9081526002602052604080822093909355908516815220546141ed908390614cb8565b6001600160a01b039093165f90815260026020526040902092909255505050565b602080825282518282018190525f918401906040840190835b8181101561424e5783516001600160a01b0316835260209384019390920191600101614227565b509095945050505050565b5f81518084525f5b8181101561427d57602081850181015186830182015201614261565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6119206020830184614259565b6001600160a01b0381168114610be0575f5ffd5b5f5f83601f8401126142d2575f5ffd5b5081356001600160401b038111156142e8575f5ffd5b6020830191508360208260051b8501011115614302575f5ffd5b9250929050565b5f5f5f5f6060858703121561431c575f5ffd5b8435614327816142ae565b93506020850135925060408501356001600160401b03811115614348575f5ffd5b614354878288016142c2565b95989497509550505050565b5f5f60408385031215614371575f5ffd5b823561437c816142ae565b946020939093013593505050565b5f6020828403121561439a575f5ffd5b5035919050565b5f5f5f604084860312156143b3575f5ffd5b8335925060208401356001600160401b038111156143cf575f5ffd5b6143db868287016142c2565b9497909650939450505050565b5f5f5f5f608085870312156143fb575f5ffd5b8435614406816142ae565b93506020850135614416816142ae565b92506040850135614426816142ae565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561447257614472614436565b604052919050565b5f82601f830112614489575f5ffd5b81356001600160401b038111156144a2576144a2614436565b6144b5601f8201601f191660200161444a565b8181528460208386010111156144c9575f5ffd5b816020850160208301375f918101602001919091529392505050565b8015158114610be0575f5ffd5b5f5f5f5f5f5f5f60e0888a031215614508575f5ffd5b8735965060208801356001600160401b03811115614524575f5ffd5b6145308a828b0161447a565b9650506040880135614541816142ae565b94506060880135614551816144e5565b93506080880135614561816142ae565b9699959850939692959460a0840135945060c09093013592915050565b5f5f5f60608486031215614590575f5ffd5b833561459b816142ae565b925060208401356145ab816142ae565b929592945050506040919091013590565b5f5f604083850312156145cd575f5ffd5b50508035926020909101359150565b5f602082840312156145ec575f5ffd5b8135611920816142ae565b803560ff81168114614607575f5ffd5b919050565b5f5f83601f84011261461c575f5ffd5b5081356001600160401b03811115614632575f5ffd5b602083019150836020828501011115614302575f5ffd5b5f5f5f5f5f5f6080878903121561465e575f5ffd5b8635614669816142ae565b9550614677602088016145f7565b945060408701356001600160401b03811115614691575f5ffd5b61469d89828a0161460c565b90955093505060608701356001600160401b038111156146bb575f5ffd5b6146c789828a0161460c565b979a9699509497509295939492505050565b5f5f5f5f608085870312156146ec575f5ffd5b84356146f7816142ae565b93506020850135614707816142ae565b93969395505050506040820135916060013590565b602080825282518282018190525f918401906040840190835b8181101561424e578351835260209384019390920191600101614735565b5f5f5f5f60608587031215614766575f5ffd5b8435614771816142ae565b93506020850135925060408501356001600160401b03811115614792575f5ffd5b6143548782880161460c565b5f5f5f5f5f5f5f60a0888a0312156147b4575f5ffd5b87356147bf816142ae565b965060208801356147cf816142ae565b95506040880135945060608801356001600160401b038111156147f0575f5ffd5b6147fc8a828b0161460c565b90955093505060808801356001600160401b0381111561481a575f5ffd5b6148268a828b0161460c565b989b979a50959850939692959293505050565b5f5f5f6060848603121561484b575f5ffd5b8335614856816142ae565b95602085013595506040909401359392505050565b60ff60f81b8816815260e060208201525f61488960e0830189614259565b828103604084015261489b8189614259565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b818110156148f05783518352602093840193909201916001016148d2565b50909b9a5050505050505050505050565b5f5f5f60608486031215614913575f5ffd5b833561491e816142ae565b92506020840135915060408401356001600160401b0381111561493f575f5ffd5b61494b8682870161447a565b9150509250925092565b5f5f60408385031215614966575f5ffd5b8235614971816142ae565b91506020830135614981816142ae565b809150509250929050565b5f5f5f5f6080858703121561499f575f5ffd5b84356149aa816142ae565b935060208501356149ba816142ae565b92506040850135915060608501356001600160401b038111156149db575f5ffd5b6149e78782880161447a565b91505092959194509250565b5f5f5f5f5f5f5f60e0888a031215614a09575f5ffd5b8735614a14816142ae565b96506020880135614a24816142ae565b95506040880135945060608801359350614561608089016145f7565b5f5f5f5f5f5f5f60a0888a031215614a56575f5ffd5b8735614a61816142ae565b9650614a6f602089016145f7565b955060408801356001600160401b03811115614a89575f5ffd5b614a958a828b0161460c565b90965094505060608801356001600160401b03811115614ab3575f5ffd5b614abf8a828b0161460c565b9094509250506080880135614ad3816142ae565b8091505092959891949750929550565b5f5f5f5f5f5f60808789031215614af8575f5ffd5b8635614b03816142ae565b95506020870135945060408701356001600160401b03811115614691575f5ffd5b5f5f5f60408486031215614b36575f5ffd5b8335925060208401356001600160401b03811115614b52575f5ffd5b6143db8682870161460c565b600181811c90821680614b7257607f821691505b602082108103614b9057634e487b7160e01b5f52602260045260245ffd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b83815260406020820181905281018290525f6001600160fb1b03831115614c41575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215614c6b575f5ffd5b8151611920816144e5565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201614c9e57614c9e614c76565b505f0390565b634e487b7160e01b5f52600160045260245ffd5b8082018281125f831280158216821582161715614cd757614cd7614c76565b505092915050565b8181035f83128015838313168383128216171561336857613368614c76565b85815260018060a01b038516602082015283604082015282606082015260a060808201525f614d3060a0830184614259565b979650505050505050565b5f60208284031215614d4b575f5ffd5b5051919050565b5f5f8354614d5f81614b5e565b600182168015614d765760018114614d8b57614db8565b60ff1983168652811515820286019350614db8565b865f5260205f205f5b83811015614db057815488820152600190910190602001614d94565b505081860193505b509195945050505050565b5f60208284031215614dd3575f5ffd5b81516001600160401b03811115614de8575f5ffd5b8201601f81018413614df8575f5ffd5b80516001600160401b03811115614e1157614e11614436565b8060051b614e216020820161444a565b91825260208184018101929081019087841115614e3c575f5ffd5b6020850194505b83851015614d305784519250614e58836142ae565b82825260209485019490910190614e43565b80820180821115610bb057610bb0614c76565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602a908201527f5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652060408201526962656c6f77207a65726f60b01b606082015260800190565b81810381811115610bb057610bb0614c76565b5f60018201614f3957614f39614c76565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f5f5f60608486031215614f66575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215614f8f575f5ffd5b8151611920816142ae565b60ff8281168282160390811115610bb057610bb0614c76565b6001815b6001841115614fee57808504811115614fd257614fd2614c76565b6001841615614fe057908102905b60019390931c928002614fb7565b935093915050565b5f8261500457506001610bb0565b8161501057505f610bb0565b816001811461502657600281146150305761504c565b6001915050610bb0565b60ff84111561504157615041614c76565b50506001821b610bb0565b5060208310610133831016604e8410600b841016171561506f575081810a610bb0565b61507b5f198484614fb3565b805f190482111561508e5761508e614c76565b029392505050565b5f61192060ff841683614ff6565b5f826150be57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610bb057610bb0614c76565b601f8211156110b957805f5260205f20601f840160051c810160208510156150ff5750805b601f840160051c820191505b81811015610d19575f815560010161510b565b6001600160401b0383111561513557615135614436565b615149836151438354614b5e565b836150da565b5f601f84116001811461517a575f85156151635750838201355b5f19600387901b1c1916600186901b178355610d19565b5f83815260208120601f198716915b828110156151a95786850135825560209485019460019092019101615189565b50868210156151c5575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201525f6151ef6060830185614259565b82810360408401526117018185614259565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190525f9061523b90830185614259565b82810360a084015261524d8185614259565b9998505050505050505050565b634e487b7160e01b5f52602160045260245ffdfeb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c8d35930a342f713a4a1a263457043dd8d9edb1fdf26dcba7016bf005536648d64736f6c634300081e0033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ISuperfluid";
@@ -846,6 +846,20 @@ export declare class SuperToken__factory extends ContractFactory {
846
846
  }];
847
847
  readonly stateMutability: "view";
848
848
  readonly type: "function";
849
+ }, {
850
+ readonly inputs: readonly [{
851
+ readonly internalType: "address";
852
+ readonly name: "from";
853
+ readonly type: "address";
854
+ }, {
855
+ readonly internalType: "address";
856
+ readonly name: "to";
857
+ readonly type: "address";
858
+ }];
859
+ readonly name: "emitPseudoTransfer";
860
+ readonly outputs: readonly [];
861
+ readonly stateMutability: "nonpayable";
862
+ readonly type: "function";
849
863
  }, {
850
864
  readonly inputs: readonly [{
851
865
  readonly internalType: "address";
@@ -1 +1 @@
1
- {"version":3,"file":"SuperToken__factory.d.ts","sourceRoot":"","sources":["../../../../../../src/typechain-types/factories/contracts/superfluid/SuperToken__factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAmB,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACpB,MAAM,0CAA0C,CAAC;AAutElD,KAAK,2BAA2B,GAC5B,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,mBAAoB,SAAQ,eAAe;gBAC1C,GAAG,IAAI,EAAE,2BAA2B;IAQvC,MAAM,CACb,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,UAAU,CAAC;IAOb,oBAAoB,CAC3B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,kBAAkB;IAGZ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAGnC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAIrD,MAAM,CAAC,QAAQ,CAAC,QAAQ,wmzCAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,mBAAmB;IAG7C,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,UAAU;CAGd"}
1
+ {"version":3,"file":"SuperToken__factory.d.ts","sourceRoot":"","sources":["../../../../../../src/typechain-types/factories/contracts/superfluid/SuperToken__factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAmB,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACpB,MAAM,0CAA0C,CAAC;AAyuElD,KAAK,2BAA2B,GAC5B,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,mBAAoB,SAAQ,eAAe;gBAC1C,GAAG,IAAI,EAAE,2BAA2B;IAQvC,MAAM,CACb,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,UAAU,CAAC;IAOb,oBAAoB,CAC3B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,kBAAkB;IAGZ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAGnC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAIrD,MAAM,CAAC,QAAQ,CAAC,QAAQ,0t0CAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,mBAAmB;IAG7C,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,UAAU;CAGd"}
@@ -1064,6 +1064,24 @@ const _abi = [
1064
1064
  stateMutability: "view",
1065
1065
  type: "function",
1066
1066
  },
1067
+ {
1068
+ inputs: [
1069
+ {
1070
+ internalType: "address",
1071
+ name: "from",
1072
+ type: "address",
1073
+ },
1074
+ {
1075
+ internalType: "address",
1076
+ name: "to",
1077
+ type: "address",
1078
+ },
1079
+ ],
1080
+ name: "emitPseudoTransfer",
1081
+ outputs: [],
1082
+ stateMutability: "nonpayable",
1083
+ type: "function",
1084
+ },
1067
1085
  {
1068
1086
  inputs: [
1069
1087
  {
@@ -2262,7 +2280,7 @@ const _abi = [
2262
2280
  type: "function",
2263
2281
  },
2264
2282
  ];
2265
- const _bytecode = "0x60e060405234801561000f575f5ffd5b5060405161533038038061533083398101604081905261002e91610089565b6001600160a01b03808316608052811660c08190526040517feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e6905f90a250506100c1565b6001600160a01b0381168114610086575f5ffd5b50565b5f5f6040838503121561009a575f5ffd5b82516100a581610072565b60208401519092506100b681610072565b809150509250929050565b60805160a05160c0516151b261017e5f395f61086601525f6109d501525f81816104ee01528181610ca801528181610d170152818161102a015281816110b7015281816111e10152818161135b01528181611561015281816115b70152818161162a0152818161176e0152818161191001528181611b0001528181611f0501528181611fcc01528181612091015281816120f80152818161217e01528181612ba201528181612c3701528181613c9b0152613fea01526151b25ff3fe608060405234801561000f575f5ffd5b506004361061040c575f3560e01c80636e9960c311610221578063b84cdd4a1161012a578063d9d078d6116100b4578063ee719bc811610084578063ee719bc8146109bf578063f5a8b4dd146109d0578063fad8b32a146109f7578063fc673c4f14610a0a578063fe9d930314610a1d575f5ffd5b8063d9d078d614610933578063dd62ed3e14610946578063eb3537cc1461097e578063ec0d6343146109ac575f5ffd5b8063ca0c1e7f116100fa578063ca0c1e7f146108d4578063ca789464146108e7578063cf97256d146108fa578063d505accf1461090d578063d95b637114610920575f5ffd5b8063b84cdd4a14610888578063bb0d196e1461089b578063c68d4283146108ae578063c780fd82146108c1575f5ffd5b806395d89b41116101ab578063a1b2bf8b1161017b578063a1b2bf8b14610815578063a3a7e7f314610828578063a457c2d71461083b578063a9059cbb1461084e578063b20db1ac14610861575f5ffd5b806395d89b41146107df5780639903ad38146107e75780639bd9bbc6146107ef5780639d87674114610802575f5ffd5b806383ba2525116101f157806383ba25251461077957806384b0196e1461078c5780638f283970146107a757806392081a47146107ba578063959b8c3f146107cc575f5ffd5b80636e9960c31461072357806370a082311461072b57806379359f6f1461073e5780637ecebe0014610751575f5ffd5b80633644e515116103235780634b61cc33116102ad5780635b9d09cc1161027d5780635b9d09cc146106c457806362aa5287146106d757806362ad1b83146106ea57806366a12fb6146106fd5780636c2d9f2f14610710575f5ffd5b80634b61cc331461066f57806350d75d251461068f57806352d1902d14610697578063556f0dc7146106bd575f5ffd5b806342fe0980116102f357806342fe09801461061057806345977d0314610623578063469519541461063657806347ba7ad1146106495780634b2763b31461065c575f5ffd5b80633644e515146105cf578063386fa221146105d757806339509351146105ea57806341b706be146105fd575f5ffd5b80631863e809116103a4578063245887fc11610374578063245887fc14610539578063270483971461054c578063282a050b1461055f5780632ec8eec714610587578063313ce567146105ba575f5ffd5b80631863e809146104c65780631ae88ffc146104d957806320bc4425146104ec57806323b872dd14610526575f5ffd5b806311bcc81e116103df57806311bcc81e1461047b57806312a6a3f81461048e57806316d055d6146104a157806318160ddd146104b4575f5ffd5b806306e485381461041057806306fdde031461042e578063090c415e14610443578063095ea7b314610458575b5f5ffd5b610418610a30565b60405161042591906140dc565b60405180910390f35b610436610a41565b604051610425919061416a565b6104566104513660046141d7565b610ad1565b005b61046b61046636600461422e565b610b82565b6040519015158152602001610425565b610456610489366004614258565b610b98565b61045661049c36600461426f565b610bc5565b6104566104af3660046142b6565b610ca6565b6003545b604051908152602001610425565b6104566104d43660046143c0565b610d02565b6104566104e736600461444c565b611028565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610425565b61046b61053436600461444c565b6110a0565b61045661054736600461422e565b6110b5565b61045661055a36600461448a565b61112c565b61057261056d366004614258565b6111c7565b60408051928352602083019190915201610425565b61059a6105953660046144aa565b6111db565b604080519485526020850193909352918301526060820152608001610425565b60125b60405160ff9091168152602001610425565b6104b861127a565b6104186105e53660046144aa565b611328565b61046b6105f836600461422e565b6113c6565b61045661060b3660046142b6565b611401565b61045661061e366004614517565b61142d565b610456610631366004614258565b611507565b6104566106443660046144aa565b611531565b61045661065736600461444c565b6115b5565b61045661066a36600461444c565b611628565b61068261067d3660046145a7565b6116a9565b60405161042591906145ea565b61050e6116ed565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104b8565b60016104b8565b6104566106d2366004614621565b611716565b6104566106e536600461444c565b61176c565b6104566106f836600461466c565b6117c0565b61045661070b36600461444c565b61186c565b61068261071e366004614707565b61188c565b61050e6118cd565b6104b86107393660046144aa565b6118e3565b61046b61074c3660046144aa565b611909565b6104b861075f3660046144aa565b6001600160a01b03165f9081526016602052604090205490565b61045661078736600461422e565b61198e565b6107946119b8565b6040516104259796959493929190614739565b6104566107b53660046144aa565b611ad0565b600e54600160a01b900460ff166105bd565b6104566107da3660046144aa565b611bbe565b610436611c0f565b610456611c1e565b6104566107fd366004614621565b611cda565b6104566108103660046147cf565b611d2d565b61045661082336600461426f565b611d72565b6104566108363660046144aa565b611e1a565b61046b61084936600461422e565b611e2e565b61046b61085c36600461422e565b611ea5565b61050e7f000000000000000000000000000000000000000000000000000000000000000081565b61046b61089636600461422e565b611eb2565b61046b6108a93660046144aa565b611efe565b6104566108bc3660046147cf565b611f83565b6104566108cf36600461444c565b611fca565b6104566108e2366004614823565b61208f565b6104566108f536600461422e565b6120f6565b61045661090836600461422e565b612169565b61045661091b36600461488a565b61224e565b61046b61092e3660046148d7565b6123a7565b61046b61094136600461422e565b6123b4565b6104b86109543660046148d7565b6001600160a01b039182165f90815260116020908152604080832093909416825291909152205490565b61099161098c36600461422e565b6123cc565b60408051938452602084019290925290820152606001610425565b6104566109ba36600461490e565b6124f9565b600e546001600160a01b031661050e565b61050e7f000000000000000000000000000000000000000000000000000000000000000081565b610456610a053660046144aa565b6125ca565b610456610a183660046149b1565b61261b565b610456610a2b3660046149f2565b6126ba565b6060610a3c601261270a565b905090565b6060600f8054610a5090614a2c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7c90614a2c565b8015610ac75780601f10610a9e57610100808354040283529160200191610ac7565b820191905f5260205f20905b815481529060010190602001808311610aaa57829003601f168201915b5050505050905090565b5f338585604051602001610ae793929190614a64565b604051602081830303815290604052805190602001209050610b3b818484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061276d92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b5f610b8e3384846127a3565b5060015b92915050565b610bc23333338460405180602001604052805f81525060405180602001604052805f815250612851565b50565b60405133905f90610bdc9083908790602001614aad565b60408051601f1981840301815291905280516020909101209050610c008184612a08565b15610c1e5760405163782a90fb60e11b815260040160405180910390fd5b610c5a818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061276d92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610c9793929190614aea565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610cef5760405163c51efddd60e01b815260040160405180910390fd5b610cfb84848484612a3a565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d64573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d889190614b29565b610da55760405163327fd99160e21b815260040160405180910390fd5b5f610dae612b9e565b90506001600160a01b038116610dc15750845b5f85610dcd5786610dcf565b815b90505f8313610e9957610de183614b58565b610dea85612cde565b14610df757610df7614b72565b610e0084612cde565b6001600160a01b0382165f9081526002602052604081208054909190610e27908490614b86565b90915550506001600160a01b0385165f9081526002602052604081208054859290610e53908490614b86565b92505081905550806001600160a01b0316856001600160a01b03165f51602061515d5f395f51905f5286604051610e8c91815260200190565b60405180910390a3610fc0565b8515610ea757610ea7614b72565b82610eb185612cde565b610ebb9190614b86565b6001600160a01b0383165f9081526002602052604081208054909190610ee2908490614bad565b90915550610ef1905084612cde565b6001600160a01b0388165f9081526002602052604081208054909190610f18908490614b86565b90915550506001600160a01b0385165f9081526002602052604081208054859290610f44908490614b86565b92505081905550866001600160a01b0316826001600160a01b03165f51602061515d5f395f51905f5286604051610f7d91815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03165f51602061515d5f395f51905f5285604051610fb791815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611015959493929190614bcc565b60405180910390a4505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146110715760405163c51efddd60e01b815260040160405180910390fd5b61109b3384848460405180602001604052805f81525060405180602001604052805f815250612d0e565b505050565b5f6110ad33858585612a3a565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146110fe5760405163c51efddd60e01b815260040160405180910390fd5b6111283383848460405180602001604052805f81525060405180602001604052805f815250612851565b5050565b60405133905f906111439083908690602001614aad565b6040516020818303038152906040528051906020012090506111658184612a08565b6111825760405163dae1880960e01b815260040160405180910390fd5b61118c8184612eb9565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b5f5f6111d283612ed0565b91509150915091565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125f9190614c09565b905061126b85826123cc565b91979096509094509092509050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600f6040516112ab9190614c20565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038181165f908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d906024015f60405180830381865afa15801561139f573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b929190810190614c91565b335f8181526011602090815260408083206001600160a01b03871684529091528120549091610b8e9185906113fc908690614d38565b6127a3565b33301461142157604051630fff4cc960e31b815260040160405180910390fd5b610cfb83858484612a3a565b5f54610100900460ff161580801561144b57505f54600160ff909116105b806114645750303b15801561146457505f5460ff166001145b6114895760405162461bcd60e51b815260040161148090614d4b565b60405180910390fd5b5f805460ff1916600117905580156114aa575f805461ff0019166101001790555b6114b98787878787875f612f8b565b80156114fe575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610bc23333338460405180602001604052805f81525060405180602001604052805f815250612d0e565b5f6115475f51602061513d5f395f51905f525490565b90505f6001600160a01b0382161561155f5781611581565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146115ac57604051630484acab60e01b815260040160405180910390fd5b61109b8361304f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146115fe5760405163c51efddd60e01b815260040160405180910390fd5b61109b3384848460405180602001604052805f81525060405180602001604052805f815250612851565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116715760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f9081526011602090815260408083209386168352929052205461109b90849084906113fc908590614d38565b60605f8585856040516020016116c193929190614a64565b6040516020818303038152906040528051906020012090506116e38184613286565b9695505050505050565b5f610a3c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6117663333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250612d0e915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117b55760405163c51efddd60e01b815260040160405180910390fd5b61109b8383836127a3565b336117cd6012828a61330b565b6117ea5760405163f7f0222760e01b815260040160405180910390fd5b6118628189898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f92019190915250600192506133b0915050565b5050505050505050565b3330146117b557604051630fff4cc960e31b815260040160405180910390fd5b60605f84846040516020016118a2929190614aad565b6040516020818303038152906040528051906020012090506118c48184613286565b95945050505050565b5f610a3c5f51602061513d5f395f51905f525490565b5f5f6118ee836111db565b50505090505f81126119005780611902565b5f5b9392505050565b5f610b92827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109419190614c09565b6111283333848460405180602001604052805f81525060405180602001604052805f815250612851565b5f6060805f5f5f6060600f604051806040016040528060018152602001603160f81b81525046305f5f1b5f6001600160401b038111156119fa576119fa614304565b604051908082528060200260200182016040528015611a23578160200160208202803683370190505b50600f60f81b959493929190858054611a3b90614a2c565b80601f0160208091040260200160405190810160405280929190818152602001828054611a6790614a2c565b8015611ab25780601f10611a8957610100808354040283529160200191611ab2565b820191905f5260205f20905b815481529060010190602001808311611a9557829003601f168201915b50505050509550965096509650965096509650965090919293949596565b5f611ae65f51602061513d5f395f51905f525490565b90505f6001600160a01b03821615611afe5781611b20565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611b4b57604051630484acab60e01b815260040160405180910390fd5b5f611b615f51602061513d5f395f51905f525490565b9050611b78845f51602061513d5f395f51905f5255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611bcb60128284613429565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a5090614a2c565b5f54610100900460ff1615808015611c3c57505f54600160ff909116105b80611c555750303b158015611c5557505f5460ff166001145b611c715760405162461bcd60e51b815260040161148090614d4b565b5f805460ff191660011790558015611c92575f805461ff0019166101001790555b8015610bc2575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6117663333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250600191506133b09050565b333014611d4d57604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f81526020810190915261109b9133918691869190151590869061352a565b60405133905f90611d899083908790602001614aad565b604051602081830303815290604052805190602001209050611ddd818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061276d92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610c9793929190614aea565b611128333383611e29336118e3565b612a3a565b335f9081526011602090815260408083206001600160a01b0386168452909152812054821115611e705760405162461bcd60e51b815260040161148090614d99565b335f8181526011602090815260408083206001600160a01b0388168452909152902054610b8e919085906113fc908690614de3565b5f61190233338585612a3a565b5f5f5f5f611ec086866123cc565b9250925092505f611ee6828411611ed7575f612cde565b611ee18385614de3565b612cde565b611ef09085614b86565b5f1315979650505050505050565b5f610b92827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f5f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108969190614c09565b333014611fa357604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f81526020810190915261109b9133918691869190151590819087906135f4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120135760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220548111156120575760405162461bcd60e51b815260040161148090614d99565b6001600160a01b038084165f9081526011602090815260408083209386168352929052205461109b90849084906113fc908590614de3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120d85760405163c51efddd60e01b815260040160405180910390fd5b611766338585858560405180602001604052805f81525060016133b0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461213f5760405163c51efddd60e01b815260040160405180910390fd5b6111283383848460405180602001604052805f81525060405180602001604052805f815250612d0e565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156121cb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121ef9190614b29565b61220c5760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382165f9081526002602052604090205461222f908290614b86565b6001600160a01b039092165f9081526002602052604090209190915550565b8342111561227257604051636e72b90f60e01b815260048101859052602401611480565b6001600160a01b0387165f90815260166020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866122be83614df6565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61231b61127a565b60405161190160f01b81526002810182905260228101849052604290209091505f612348828888886136bf565b90508a6001600160a01b0316816001600160a01b03161461238f5760405163b642210560e01b81526001600160a01b0380831660048301528c166024820152604401611480565b61239a8b8b8b6127a3565b5050505050505050505050565b5f6119026012848461330b565b5f5f6123c084846123cc565b50505f13949350505050565b6001600160a01b0382165f908152600260205260408120549080806123f086611328565b90505f5b81518110156124f0575f5f5f84848151811061241257612412614e0e565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa15801561246f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124939190614e22565b919450925090506124a48288614d38565b96506124b08187614d38565b95506124cc8183116124c2575f612cde565b611ee18284614de3565b6124d6848a614b86565b6124e09190614bad565b97505050508060010190506123f4565b50509250925092565b5f54610100900460ff161580801561251757505f54600160ff909116105b806125305750303b15801561253057505f5460ff166001145b61254c5760405162461bcd60e51b815260040161148090614d4b565b5f805460ff19166001179055801561256d575f805461ff0019166101001790555b61257c88888888888888612f8b565b8015611862575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336125d7601282846136eb565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b336126286012828961330b565b6126455760405163f7f0222760e01b815260040160405180910390fd5b6114fe8188898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f9201919091525061285192505050565b61109b3333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250612851915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561276157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612743575b50505050509050919050565b5f5b815181101561109b575f82828151811061278b5761278b614e0e565b6020908102919091010151848301555060010161276f565b6001600160a01b0383166127ca57604051638163862760e01b815260040160405180910390fd5b6001600160a01b0382166127f1576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b038381165f8181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b031661287a57604051637bce7b2b60e11b815260040160405180910390fd5b5f5f61288585612ed0565b9150915061289b88888387515f1415888861352a565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156128e1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129059190614c09565b600e5490915061291f906001600160a01b031688856137e0565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612965573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129899190614c09565b90505f6129968284614de3565b90508085146129b857604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d856040516129f391815260200190565b60405180910390a25050505050505050505050565b5f805b82811015612a3157838101548015612a2857600192505050610b92565b50600101612a0b565b505f9392505050565b5f6001600160a01b038416612a625760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b038316612a895760405163e219bd3960e01b815260040160405180910390fd5b5f339050612ab78186868660405180602001604052805f81525060405180602001604052805f81525061383f565b846001600160a01b0316866001600160a01b031614612b92576001600160a01b038086165f908152601160209081526040808320938a1683529290522054831115612b5a5760405162461bcd60e51b815260206004820152602d60248201527f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636560448201526c65647320616c6c6f77616e636560981b6064820152608401611480565b6001600160a01b038086165f908152601160209081526040808320938a1683529290522054612b9290869088906113fc908790614de3565b50600195945050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c209190614e4d565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612cb4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cd89190614e4d565b91505090565b5f6001600160ff1b03821115612d0a5760405163123baf0360e11b815260048101839052602401611480565b5090565b600e546001600160a01b0316612d3757604051637bce7b2b60e11b815260040160405180910390fd5b5f5f612d4285612ed0565b600e546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612d90573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612db49190614c09565b600e54909150612dcf906001600160a01b03168930866138dd565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612e15573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e399190614c09565b90505f612e468383614de3565b9050808514612e6857604051631c7c26d360e31b815260040160405180910390fd5b8651612e7e908c908b9087901515808c8c6135f4565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df856040516129f391815260200190565b5f5b8181101561109b575f83820155600101612ebb565b600e545f90819081906012600160a01b90910460ff161015612f2e57600e54612f0490600160a01b900460ff166012614e68565b612f0f90600a614f64565b9050612f1b8185614f72565b9250612f278184614f91565b9150612f85565b600e546012600160a01b90910460ff161115612f7e57600e54612f5d90601290600160a01b900460ff16614e68565b612f6890600a614f64565b9050612f748185614f91565b9250839150612f85565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612fc0858783614fec565b506010612fce838583614fec565b50612fe4815f51602061513d5f395f51905f5255565b612fed30613916565b6040515f8082529081905f51602061515d5f395f51905f529060200160405180910390a36040516001600160a01b038216905f907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b5f6130787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036130ce5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401611480565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561310a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061312e9190614c09565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146131a85760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401611480565b6001600160a01b03811630036132005760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401611480565b613228817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611ccf565b6060816001600160401b038111156132a0576132a0614304565b6040519080825280602002602001820160405280156132c9578160200160208202803683370190505b5090505f5b82811015613304575f818501549050808383815181106132f0576132f0614e0e565b6020908102919091010152506001016132ce565b5092915050565b5f816001600160a01b0316836001600160a01b0316148061337757506001600160a01b0383165f90815260018501602052604090205460ff16801561337757506001600160a01b038083165f90815260038601602090815260408083209387168352929052205460ff16155b806110ad57506001600160a01b038083165f90815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166133d75760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166133fe5760405163e219bd3960e01b815260040160405180910390fd5b61340c878787878787613a3a565b61341a87878787878761383f565b6114fe87878787878787613b4c565b806001600160a01b0316826001600160a01b0316036134a05760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401611480565b6001600160a01b0381165f90815260018401602052604090205460ff16156134f4576001600160a01b039182165f90815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b038083165f9081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661355157604051632e8aac6160e21b815260040160405180910390fd5b82156135655761356586865f878686613a3a565b61356f8585613c94565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988685856040516135b6939291906150a5565b60405180910390a36040518481525f906001600160a01b038716905f51602061515d5f395f51905f52906020015b60405180910390a3505050505050565b6001600160a01b03861661361b57604051630d24315760e01b815260040160405180910390fd5b6136258686613d9f565b831561363a5761363a875f8888868689613b4c565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d878585604051613681939291906150a5565b60405180910390a36040518581526001600160a01b038716905f905f51602061515d5f395f51905f529060200160405180910390a350505050505050565b5f5f5f5f6136cf88888888613df7565b9250925092506136df8282613ebf565b50909695505050505050565b336001600160a01b038216036137565760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401611480565b6001600160a01b0381165f90815260018401602052604090205460ff16156137ae576001600160a01b038083165f9081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b039182165f90815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b0383811660248301526044820183905261109b91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613f77565b613852858561384d86612cde565b613fe3565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516138a3939291906150a5565b60405180910390a4836001600160a01b0316856001600160a01b03165f51602061515d5f395f51905f52856040516135e491815260200190565b6040516001600160a01b0384811660248301528381166044830152606482018390526117669186918216906323b872dd9060840161380d565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b158015613994575f5ffd5b505af11580156139a6573d5f5f3e3d5ffd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b158015613a28575f5ffd5b505af1158015610cfb573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613ab8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613adc9190614e4d565b90506001600160a01b038116156114fe57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613b23908a908a908a908a908a908a906004016150cf565b5f604051808303815f87803b158015613b3a575f5ffd5b505af115801561239a573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613bca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613bee9190614e4d565b90506001600160a01b03811615613c65576040516223de2960e01b81526001600160a01b038216906223de2990613c33908b908b908b908b908b908b906004016150cf565b5f604051808303815f87803b158015613c4a575f5ffd5b505af1158015613c5c573d5f5f3e3d5ffd5b50505050611862565b8115611862576001600160a01b0386163b156118625760405163fe737d0560e01b815260040160405180910390fd5b5f613d19837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cf5573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098c9190614c09565b50509050613d2682612cde565b811215613d465760405163043b37d160e21b815260040160405180910390fd5b613d4f82612cde565b6001600160a01b0384165f90815260026020526040902054613d719190614bad565b6001600160a01b0384165f90815260026020526040902055600354613d97908390614de3565b600355505050565b613da881612cde565b6001600160a01b0383165f90815260026020526040902054613dca9190614b86565b6001600160a01b0383165f90815260026020526040902055600354613df0908290614d38565b6003555050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613e3057505f91506003905082613eb5565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613e81573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613eac57505f925060019150829050613eb5565b92505f91508190505b9450945094915050565b5f826003811115613ed257613ed2615128565b03613edb575050565b6001826003811115613eef57613eef615128565b03613f0d5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115613f2157613f21615128565b03613f425760405163fce698f760e01b815260048101829052602401611480565b6003826003811115613f5657613f56615128565b03611128576040516335e2f38360e21b815260048101829052602401611480565b5f5f60205f8451602086015f885af180613f96576040513d5f823e3d81fd5b50505f513d91508115613fad578060011415613fba565b6001600160a01b0384163b155b1561176657604051635274afe760e01b81526001600160a01b0385166004820152602401611480565b5f614044847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cf5573d5f5f3e3d5ffd5b505090508181121561406957604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b0384165f9081526002602052604090205461408c908390614bad565b6001600160a01b038086165f9081526002602052604080822093909355908516815220546140bb908390614b86565b6001600160a01b039093165f90815260026020526040902092909255505050565b602080825282518282018190525f918401906040840190835b8181101561411c5783516001600160a01b03168352602093840193909201916001016140f5565b509095945050505050565b5f81518084525f5b8181101561414b5760208185018101518683018201520161412f565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6119026020830184614127565b6001600160a01b0381168114610bc2575f5ffd5b5f5f83601f8401126141a0575f5ffd5b5081356001600160401b038111156141b6575f5ffd5b6020830191508360208260051b85010111156141d0575f5ffd5b9250929050565b5f5f5f5f606085870312156141ea575f5ffd5b84356141f58161417c565b93506020850135925060408501356001600160401b03811115614216575f5ffd5b61422287828801614190565b95989497509550505050565b5f5f6040838503121561423f575f5ffd5b823561424a8161417c565b946020939093013593505050565b5f60208284031215614268575f5ffd5b5035919050565b5f5f5f60408486031215614281575f5ffd5b8335925060208401356001600160401b0381111561429d575f5ffd5b6142a986828701614190565b9497909650939450505050565b5f5f5f5f608085870312156142c9575f5ffd5b84356142d48161417c565b935060208501356142e48161417c565b925060408501356142f48161417c565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561434057614340614304565b604052919050565b5f82601f830112614357575f5ffd5b81356001600160401b0381111561437057614370614304565b614383601f8201601f1916602001614318565b818152846020838601011115614397575f5ffd5b816020850160208301375f918101602001919091529392505050565b8015158114610bc2575f5ffd5b5f5f5f5f5f5f5f60e0888a0312156143d6575f5ffd5b8735965060208801356001600160401b038111156143f2575f5ffd5b6143fe8a828b01614348565b965050604088013561440f8161417c565b9450606088013561441f816143b3565b9350608088013561442f8161417c565b9699959850939692959460a0840135945060c09093013592915050565b5f5f5f6060848603121561445e575f5ffd5b83356144698161417c565b925060208401356144798161417c565b929592945050506040919091013590565b5f5f6040838503121561449b575f5ffd5b50508035926020909101359150565b5f602082840312156144ba575f5ffd5b81356119028161417c565b803560ff811681146144d5575f5ffd5b919050565b5f5f83601f8401126144ea575f5ffd5b5081356001600160401b03811115614500575f5ffd5b6020830191508360208285010111156141d0575f5ffd5b5f5f5f5f5f5f6080878903121561452c575f5ffd5b86356145378161417c565b9550614545602088016144c5565b945060408701356001600160401b0381111561455f575f5ffd5b61456b89828a016144da565b90955093505060608701356001600160401b03811115614589575f5ffd5b61459589828a016144da565b979a9699509497509295939492505050565b5f5f5f5f608085870312156145ba575f5ffd5b84356145c58161417c565b935060208501356145d58161417c565b93969395505050506040820135916060013590565b602080825282518282018190525f918401906040840190835b8181101561411c578351835260209384019390920191600101614603565b5f5f5f5f60608587031215614634575f5ffd5b843561463f8161417c565b93506020850135925060408501356001600160401b03811115614660575f5ffd5b614222878288016144da565b5f5f5f5f5f5f5f60a0888a031215614682575f5ffd5b873561468d8161417c565b9650602088013561469d8161417c565b95506040880135945060608801356001600160401b038111156146be575f5ffd5b6146ca8a828b016144da565b90955093505060808801356001600160401b038111156146e8575f5ffd5b6146f48a828b016144da565b989b979a50959850939692959293505050565b5f5f5f60608486031215614719575f5ffd5b83356147248161417c565b95602085013595506040909401359392505050565b60ff60f81b8816815260e060208201525f61475760e0830189614127565b82810360408401526147698189614127565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b818110156147be5783518352602093840193909201916001016147a0565b50909b9a5050505050505050505050565b5f5f5f606084860312156147e1575f5ffd5b83356147ec8161417c565b92506020840135915060408401356001600160401b0381111561480d575f5ffd5b61481986828701614348565b9150509250925092565b5f5f5f5f60808587031215614836575f5ffd5b84356148418161417c565b935060208501356148518161417c565b92506040850135915060608501356001600160401b03811115614872575f5ffd5b61487e87828801614348565b91505092959194509250565b5f5f5f5f5f5f5f60e0888a0312156148a0575f5ffd5b87356148ab8161417c565b965060208801356148bb8161417c565b9550604088013594506060880135935061442f608089016144c5565b5f5f604083850312156148e8575f5ffd5b82356148f38161417c565b915060208301356149038161417c565b809150509250929050565b5f5f5f5f5f5f5f60a0888a031215614924575f5ffd5b873561492f8161417c565b965061493d602089016144c5565b955060408801356001600160401b03811115614957575f5ffd5b6149638a828b016144da565b90965094505060608801356001600160401b03811115614981575f5ffd5b61498d8a828b016144da565b90945092505060808801356149a18161417c565b8091505092959891949750929550565b5f5f5f5f5f5f608087890312156149c6575f5ffd5b86356149d18161417c565b95506020870135945060408701356001600160401b0381111561455f575f5ffd5b5f5f5f60408486031215614a04575f5ffd5b8335925060208401356001600160401b03811115614a20575f5ffd5b6142a9868287016144da565b600181811c90821680614a4057607f821691505b602082108103614a5e57634e487b7160e01b5f52602260045260245ffd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b83815260406020820181905281018290525f6001600160fb1b03831115614b0f575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215614b39575f5ffd5b8151611902816143b3565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201614b6c57614b6c614b44565b505f0390565b634e487b7160e01b5f52600160045260245ffd5b8082018281125f831280158216821582161715614ba557614ba5614b44565b505092915050565b8181035f83128015838313168383128216171561330457613304614b44565b85815260018060a01b038516602082015283604082015282606082015260a060808201525f614bfe60a0830184614127565b979650505050505050565b5f60208284031215614c19575f5ffd5b5051919050565b5f5f8354614c2d81614a2c565b600182168015614c445760018114614c5957614c86565b60ff1983168652811515820286019350614c86565b865f5260205f205f5b83811015614c7e57815488820152600190910190602001614c62565b505081860193505b509195945050505050565b5f60208284031215614ca1575f5ffd5b81516001600160401b03811115614cb6575f5ffd5b8201601f81018413614cc6575f5ffd5b80516001600160401b03811115614cdf57614cdf614304565b8060051b614cef60208201614318565b91825260208184018101929081019087841115614d0a575f5ffd5b6020850194505b83851015614bfe5784519250614d268361417c565b82825260209485019490910190614d11565b80820180821115610b9257610b92614b44565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602a908201527f5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652060408201526962656c6f77207a65726f60b01b606082015260800190565b81810381811115610b9257610b92614b44565b5f60018201614e0757614e07614b44565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f5f5f60608486031215614e34575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215614e5d575f5ffd5b81516119028161417c565b60ff8281168282160390811115610b9257610b92614b44565b6001815b6001841115614ebc57808504811115614ea057614ea0614b44565b6001841615614eae57908102905b60019390931c928002614e85565b935093915050565b5f82614ed257506001610b92565b81614ede57505f610b92565b8160018114614ef45760028114614efe57614f1a565b6001915050610b92565b60ff841115614f0f57614f0f614b44565b50506001821b610b92565b5060208310610133831016604e8410600b8410161715614f3d575081810a610b92565b614f495f198484614e81565b805f1904821115614f5c57614f5c614b44565b029392505050565b5f61190260ff841683614ec4565b5f82614f8c57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610b9257610b92614b44565b601f82111561109b57805f5260205f20601f840160051c81016020851015614fcd5750805b601f840160051c820191505b81811015610cfb575f8155600101614fd9565b6001600160401b0383111561500357615003614304565b615017836150118354614a2c565b83614fa8565b5f601f841160018114615048575f85156150315750838201355b5f19600387901b1c1916600186901b178355610cfb565b5f83815260208120601f198716915b828110156150775786850135825560209485019460019092019101615057565b5086821015615093575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201525f6150bd6060830185614127565b82810360408401526116e38185614127565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190525f9061510990830185614127565b82810360a084015261511b8185614127565b9998505050505050505050565b634e487b7160e01b5f52602160045260245ffdfeb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220615226e7355173b6968beed5866df69339f245acc909382e90c496834cd002aa64736f6c634300081e0033";
2283
+ const _bytecode = "0x60e060405234801561000f575f5ffd5b5060405161546938038061546983398101604081905261002e91610089565b6001600160a01b03808316608052811660c08190526040517feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e6905f90a250506100c1565b6001600160a01b0381168114610086575f5ffd5b50565b5f5f6040838503121561009a575f5ffd5b82516100a581610072565b60208401519092506100b681610072565b809150509250929050565b60805160a05160c0516152e46101855f395f61088401525f6109f301525f81816104f901528181610cc601528181610d3501528181611048015281816110d5015281816111ff015281816113790152818161157f015281816115d5015281816116480152818161178c0152818161192e01528181611b1e01528181611ed801528181612004015281816120cb01528181612190015281816121f70152818161227d01528181612c0601528181612c9b01528181613dcd015261411c01526152e45ff3fe608060405234801561000f575f5ffd5b5060043610610417575f3560e01c806370a0823111610221578063b84cdd4a1161012a578063d9d078d6116100b4578063ee719bc811610084578063ee719bc8146109dd578063f5a8b4dd146109ee578063fad8b32a14610a15578063fc673c4f14610a28578063fe9d930314610a3b575f5ffd5b8063d9d078d614610951578063dd62ed3e14610964578063eb3537cc1461099c578063ec0d6343146109ca575f5ffd5b8063ca0c1e7f116100fa578063ca0c1e7f146108f2578063ca78946414610905578063cf97256d14610918578063d505accf1461092b578063d95b63711461093e575f5ffd5b8063b84cdd4a146108a6578063bb0d196e146108b9578063c68d4283146108cc578063c780fd82146108df575f5ffd5b80639903ad38116101ab578063a3a7e7f31161017b578063a3a7e7f314610833578063a457c2d714610846578063a854d22f14610859578063a9059cbb1461086c578063b20db1ac1461087f575f5ffd5b80639903ad38146107f25780639bd9bbc6146107fa5780639d8767411461080d578063a1b2bf8b14610820575f5ffd5b806384b0196e116101f157806384b0196e146107975780638f283970146107b257806392081a47146107c5578063959b8c3f146107d757806395d89b41146107ea575f5ffd5b806370a082311461073657806379359f6f146107495780637ecebe001461075c57806383ba252514610784575f5ffd5b8063386fa2211161032357806350d75d25116102ad57806362aa52871161027d57806362aa5287146106e257806362ad1b83146106f557806366a12fb6146107085780636c2d9f2f1461071b5780636e9960c31461072e575f5ffd5b806350d75d251461069a57806352d1902d146106a2578063556f0dc7146106c85780635b9d09cc146106cf575f5ffd5b806345977d03116102f357806345977d031461062e578063469519541461064157806347ba7ad1146106545780634b2763b3146106675780634b61cc331461067a575f5ffd5b8063386fa221146105e257806339509351146105f557806341b706be1461060857806342fe09801461061b575f5ffd5b80631ae88ffc116103a457806327048397116103745780632704839714610557578063282a050b1461056a5780632ec8eec714610592578063313ce567146105c55780633644e515146105da575f5ffd5b80631ae88ffc146104e457806320bc4425146104f757806323b872dd14610531578063245887fc14610544575f5ffd5b806311bcc81e116103ea57806311bcc81e1461048657806312a6a3f81461049957806316d055d6146104ac57806318160ddd146104bf5780631863e809146104d1575f5ffd5b806306e485381461041b57806306fdde0314610439578063090c415e1461044e578063095ea7b314610463575b5f5ffd5b610423610a4e565b604051610430919061420e565b60405180910390f35b610441610a5f565b604051610430919061429c565b61046161045c366004614309565b610aef565b005b610476610471366004614360565b610ba0565b6040519015158152602001610430565b61046161049436600461438a565b610bb6565b6104616104a73660046143a1565b610be3565b6104616104ba3660046143e8565b610cc4565b6003545b604051908152602001610430565b6104616104df3660046144f2565b610d20565b6104616104f236600461457e565b611046565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610430565b61047661053f36600461457e565b6110be565b610461610552366004614360565b6110d3565b6104616105653660046145bc565b61114a565b61057d61057836600461438a565b6111e5565b60408051928352602083019190915201610430565b6105a56105a03660046145dc565b6111f9565b604080519485526020850193909352918301526060820152608001610430565b60125b60405160ff9091168152602001610430565b6104c3611298565b6104236105f03660046145dc565b611346565b610476610603366004614360565b6113e4565b6104616106163660046143e8565b61141f565b610461610629366004614649565b61144b565b61046161063c36600461438a565b611525565b61046161064f3660046145dc565b61154f565b61046161066236600461457e565b6115d3565b61046161067536600461457e565b611646565b61068d6106883660046146d9565b6116c7565b604051610430919061471c565b61051961170b565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104c3565b60016104c3565b6104616106dd366004614753565b611734565b6104616106f036600461457e565b61178a565b61046161070336600461479e565b6117de565b61046161071636600461457e565b61188a565b61068d610729366004614839565b6118aa565b6105196118eb565b6104c36107443660046145dc565b611901565b6104766107573660046145dc565b611927565b6104c361076a3660046145dc565b6001600160a01b03165f9081526016602052604090205490565b610461610792366004614360565b6119ac565b61079f6119d6565b604051610430979695949392919061486b565b6104616107c03660046145dc565b611aee565b600e54600160a01b900460ff166105c8565b6104616107e53660046145dc565b611bdc565b610441611c2d565b610461611c3c565b610461610808366004614753565b611cf8565b61046161081b366004614901565b611d4b565b61046161082e3660046143a1565b611d90565b6104616108413660046145dc565b611e38565b610476610854366004614360565b611e4c565b610461610867366004614955565b611ec3565b61047661087a366004614360565b611fa4565b6105197f000000000000000000000000000000000000000000000000000000000000000081565b6104766108b4366004614360565b611fb1565b6104766108c73660046145dc565b611ffd565b6104616108da366004614901565b612082565b6104616108ed36600461457e565b6120c9565b61046161090036600461498c565b61218e565b610461610913366004614360565b6121f5565b610461610926366004614360565b612268565b6104616109393660046149f3565b61234d565b61047661094c366004614955565b6124a6565b61047661095f366004614360565b6124b3565b6104c3610972366004614955565b6001600160a01b039182165f90815260116020908152604080832093909416825291909152205490565b6109af6109aa366004614360565b6124cb565b60408051938452602084019290925290820152606001610430565b6104616109d8366004614a40565b6125f8565b600e546001600160a01b0316610519565b6105197f000000000000000000000000000000000000000000000000000000000000000081565b610461610a233660046145dc565b6126c9565b610461610a36366004614ae3565b61271a565b610461610a49366004614b24565b6127b9565b6060610a5a6012612809565b905090565b6060600f8054610a6e90614b5e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9a90614b5e565b8015610ae55780601f10610abc57610100808354040283529160200191610ae5565b820191905f5260205f20905b815481529060010190602001808311610ac857829003601f168201915b5050505050905090565b5f338585604051602001610b0593929190614b96565b604051602081830303815290604052805190602001209050610b59818484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061286c92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b5f610bac3384846128a2565b5060015b92915050565b610be03333338460405180602001604052805f81525060405180602001604052805f8152506128af565b50565b60405133905f90610bfa9083908790602001614bdf565b60408051601f1981840301815291905280516020909101209050610c1e8184612a66565b15610c3c5760405163782a90fb60e11b815260040160405180910390fd5b610c78818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061286c92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610cb593929190614c1c565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d0d5760405163c51efddd60e01b815260040160405180910390fd5b610d1984848484612a98565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da69190614c5b565b610dc35760405163327fd99160e21b815260040160405180910390fd5b5f610dcc612c02565b90506001600160a01b038116610ddf5750845b5f85610deb5786610ded565b815b90505f8313610eb757610dff83614c8a565b610e0885612d42565b14610e1557610e15614ca4565b610e1e84612d42565b6001600160a01b0382165f9081526002602052604081208054909190610e45908490614cb8565b90915550506001600160a01b0385165f9081526002602052604081208054859290610e71908490614cb8565b92505081905550806001600160a01b0316856001600160a01b03165f51602061528f5f395f51905f5286604051610eaa91815260200190565b60405180910390a3610fde565b8515610ec557610ec5614ca4565b82610ecf85612d42565b610ed99190614cb8565b6001600160a01b0383165f9081526002602052604081208054909190610f00908490614cdf565b90915550610f0f905084612d42565b6001600160a01b0388165f9081526002602052604081208054909190610f36908490614cb8565b90915550506001600160a01b0385165f9081526002602052604081208054859290610f62908490614cb8565b92505081905550866001600160a01b0316826001600160a01b03165f51602061528f5f395f51905f5286604051610f9b91815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03165f51602061528f5f395f51905f5285604051610fd591815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611033959493929190614cfe565b60405180910390a4505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461108f5760405163c51efddd60e01b815260040160405180910390fd5b6110b93384848460405180602001604052805f81525060405180602001604052805f815250612d72565b505050565b5f6110cb33858585612a98565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461111c5760405163c51efddd60e01b815260040160405180910390fd5b6111463383848460405180602001604052805f81525060405180602001604052805f8152506128af565b5050565b60405133905f906111619083908690602001614bdf565b6040516020818303038152906040528051906020012090506111838184612a66565b6111a05760405163dae1880960e01b815260040160405180910390fd5b6111aa8184612f1d565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b5f5f6111f083612f34565b91509150915091565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611259573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127d9190614d3b565b905061128985826124cb565b91979096509094509092509050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600f6040516112c99190614d52565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038181165f908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d906024015f60405180830381865afa1580156113bd573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bb09190810190614dc3565b335f8181526011602090815260408083206001600160a01b03871684529091528120549091610bac91859061141a908690614e6a565b6128a2565b33301461143f57604051630fff4cc960e31b815260040160405180910390fd5b610d1983858484612a98565b5f54610100900460ff161580801561146957505f54600160ff909116105b806114825750303b15801561148257505f5460ff166001145b6114a75760405162461bcd60e51b815260040161149e90614e7d565b60405180910390fd5b5f805460ff1916600117905580156114c8575f805461ff0019166101001790555b6114d78787878787875f612fef565b801561151c575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610be03333338460405180602001604052805f81525060405180602001604052805f815250612d72565b5f6115655f51602061526f5f395f51905f525490565b90505f6001600160a01b0382161561157d578161159f565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146115ca57604051630484acab60e01b815260040160405180910390fd5b6110b9836130b3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461161c5760405163c51efddd60e01b815260040160405180910390fd5b6110b93384848460405180602001604052805f81525060405180602001604052805f8152506128af565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461168f5760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110b9908490849061141a908590614e6a565b60605f8585856040516020016116df93929190614b96565b60405160208183030381529060405280519060200120905061170181846132ea565b9695505050505050565b5f610a5a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6117843333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250612d72915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117d35760405163c51efddd60e01b815260040160405180910390fd5b6110b98383836128a2565b336117eb6012828a61336f565b6118085760405163f7f0222760e01b815260040160405180910390fd5b6118808189898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f9201919091525060019250613414915050565b5050505050505050565b3330146117d357604051630fff4cc960e31b815260040160405180910390fd5b60605f84846040516020016118c0929190614bdf565b6040516020818303038152906040528051906020012090506118e281846132ea565b95945050505050565b5f610a5a5f51602061526f5f395f51905f525490565b5f5f61190c836111f9565b50505090505f811261191e5780611920565b5f5b9392505050565b5f610bb0827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611988573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f9190614d3b565b6111463333848460405180602001604052805f81525060405180602001604052805f8152506128af565b5f6060805f5f5f6060600f604051806040016040528060018152602001603160f81b81525046305f5f1b5f6001600160401b03811115611a1857611a18614436565b604051908082528060200260200182016040528015611a41578160200160208202803683370190505b50600f60f81b959493929190858054611a5990614b5e565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8590614b5e565b8015611ad05780601f10611aa757610100808354040283529160200191611ad0565b820191905f5260205f20905b815481529060010190602001808311611ab357829003601f168201915b50505050509550965096509650965096509650965090919293949596565b5f611b045f51602061526f5f395f51905f525490565b90505f6001600160a01b03821615611b1c5781611b3e565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611b6957604051630484acab60e01b815260040160405180910390fd5b5f611b7f5f51602061526f5f395f51905f525490565b9050611b96845f51602061526f5f395f51905f5255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611be96012828461348d565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a6e90614b5e565b5f54610100900460ff1615808015611c5a57505f54600160ff909116105b80611c735750303b158015611c7357505f5460ff166001145b611c8f5760405162461bcd60e51b815260040161149e90614e7d565b5f805460ff191660011790558015611cb0575f805461ff0019166101001790555b8015610be0575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6117843333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250600191506134149050565b333014611d6b57604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110b99133918691869190151590869061358e565b60405133905f90611da79083908790602001614bdf565b604051602081830303815290604052805190602001209050611dfb818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061286c92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610cb593929190614c1c565b611146333383611e4733611901565b612a98565b335f9081526011602090815260408083206001600160a01b0386168452909152812054821115611e8e5760405162461bcd60e51b815260040161149e90614ecb565b335f8181526011602090815260408083206001600160a01b0388168452909152902054610bac9190859061141a908690614f15565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611f25573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f499190614c5b565b611f665760405163327fd99160e21b815260040160405180910390fd5b806001600160a01b0316826001600160a01b03165f51602061528f5f395f51905f525f604051611f9891815260200190565b60405180910390a35050565b5f61192033338585612a98565b5f5f5f5f611fbf86866124cb565b9250925092505f611fe5828411611fd6575f612d42565b611fe08385614f15565b612d42565b611fef9085614cb8565b5f1315979650505050505050565b5f610bb0827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561205e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b49190614d3b565b3330146120a257604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110b9913391869186919015159081908790613658565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146121125760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220548111156121565760405162461bcd60e51b815260040161149e90614ecb565b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110b9908490849061141a908590614f15565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146121d75760405163c51efddd60e01b815260040160405180910390fd5b611784338585858560405180602001604052805f8152506001613414565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461223e5760405163c51efddd60e01b815260040160405180910390fd5b6111463383848460405180602001604052805f81525060405180602001604052805f815250612d72565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156122ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ee9190614c5b565b61230b5760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382165f9081526002602052604090205461232e908290614cb8565b6001600160a01b039092165f9081526002602052604090209190915550565b8342111561237157604051636e72b90f60e01b81526004810185905260240161149e565b6001600160a01b0387165f90815260166020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866123bd83614f28565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61241a611298565b60405161190160f01b81526002810182905260228101849052604290209091505f61244782888888613723565b90508a6001600160a01b0316816001600160a01b03161461248e5760405163b642210560e01b81526001600160a01b0380831660048301528c16602482015260440161149e565b6124998b8b8b6128a2565b5050505050505050505050565b5f6119206012848461336f565b5f5f6124bf84846124cb565b50505f13949350505050565b6001600160a01b0382165f908152600260205260408120549080806124ef86611346565b90505f5b81518110156125ef575f5f5f84848151811061251157612511614f40565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa15801561256e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125929190614f54565b919450925090506125a38288614e6a565b96506125af8187614e6a565b95506125cb8183116125c1575f612d42565b611fe08284614f15565b6125d5848a614cb8565b6125df9190614cdf565b97505050508060010190506124f3565b50509250925092565b5f54610100900460ff161580801561261657505f54600160ff909116105b8061262f5750303b15801561262f57505f5460ff166001145b61264b5760405162461bcd60e51b815260040161149e90614e7d565b5f805460ff19166001179055801561266c575f805461ff0019166101001790555b61267b88888888888888612fef565b8015611880575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336126d66012828461374f565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b336127276012828961336f565b6127445760405163f7f0222760e01b815260040160405180910390fd5b61151c8188898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f920191909152506128af92505050565b6110b93333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250604080516020810190915290815292506128af915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561286057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612842575b50505050509050919050565b5f5b81518110156110b9575f82828151811061288a5761288a614f40565b6020908102919091010151848301555060010161286e565b6110b98383836001613844565b600e546001600160a01b03166128d857604051637bce7b2b60e11b815260040160405180910390fd5b5f5f6128e385612f34565b915091506128f988888387515f1415888861358e565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa15801561293f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129639190614d3b565b600e5490915061297d906001600160a01b03168885613912565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156129c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129e79190614d3b565b90505f6129f48284614f15565b9050808514612a1657604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d85604051612a5191815260200190565b60405180910390a25050505050505050505050565b5f805b82811015612a8f57838101548015612a8657600192505050610bb0565b50600101612a69565b505f9392505050565b5f6001600160a01b038416612ac05760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b038316612ae75760405163e219bd3960e01b815260040160405180910390fd5b5f339050612b158186868660405180602001604052805f81525060405180602001604052805f815250613971565b846001600160a01b0316866001600160a01b031614612bf6576001600160a01b038086165f908152601160209081526040808320938a1683529290522054831115612bb85760405162461bcd60e51b815260206004820152602d60248201527f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636560448201526c65647320616c6c6f77616e636560981b606482015260840161149e565b6001600160a01b038086165f908152601160209081526040808320938a1683529290522054612bf69086908890612bf0908790614f15565b5f613844565b50600195945050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c60573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c849190614f7f565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612d18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d3c9190614f7f565b91505090565b5f6001600160ff1b03821115612d6e5760405163123baf0360e11b81526004810183905260240161149e565b5090565b600e546001600160a01b0316612d9b57604051637bce7b2b60e11b815260040160405180910390fd5b5f5f612da685612f34565b600e546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612df4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e189190614d3b565b600e54909150612e33906001600160a01b0316893086613a0f565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612e79573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e9d9190614d3b565b90505f612eaa8383614f15565b9050808514612ecc57604051631c7c26d360e31b815260040160405180910390fd5b8651612ee2908c908b9087901515808c8c613658565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df85604051612a5191815260200190565b5f5b818110156110b9575f83820155600101612f1f565b600e545f90819081906012600160a01b90910460ff161015612f9257600e54612f6890600160a01b900460ff166012614f9a565b612f7390600a615096565b9050612f7f81856150a4565b9250612f8b81846150c3565b9150612fe9565b600e546012600160a01b90910460ff161115612fe257600e54612fc190601290600160a01b900460ff16614f9a565b612fcc90600a615096565b9050612fd881856150c3565b9250839150612fe9565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f61302485878361511e565b50601061303283858361511e565b50613048815f51602061526f5f395f51905f5255565b61305130613a48565b6040515f8082529081905f51602061528f5f395f51905f529060200160405180910390a36040516001600160a01b038216905f907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b5f6130dc7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036131325760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c65000000604482015260640161149e565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561316e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131929190614d3b565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00191461320c5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b606482015260840161149e565b6001600160a01b03811630036132645760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f7000000000000000604482015260640161149e565b61328c817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611ced565b6060816001600160401b0381111561330457613304614436565b60405190808252806020026020018201604052801561332d578160200160208202803683370190505b5090505f5b82811015613368575f8185015490508083838151811061335457613354614f40565b602090810291909101015250600101613332565b5092915050565b5f816001600160a01b0316836001600160a01b031614806133db57506001600160a01b0383165f90815260018501602052604090205460ff1680156133db57506001600160a01b038083165f90815260038601602090815260408083209387168352929052205460ff16155b806110cb57506001600160a01b038083165f90815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b03861661343b5760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166134625760405163e219bd3960e01b815260040160405180910390fd5b613470878787878787613b6c565b61347e878787878787613971565b61151c87878787878787613c7e565b806001600160a01b0316826001600160a01b0316036135045760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b606482015260840161149e565b6001600160a01b0381165f90815260018401602052604090205460ff1615613558576001600160a01b039182165f90815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b038083165f9081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b0385166135b557604051632e8aac6160e21b815260040160405180910390fd5b82156135c9576135c986865f878686613b6c565b6135d38585613dc6565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a409886858560405161361a939291906151d7565b60405180910390a36040518481525f906001600160a01b038716905f51602061528f5f395f51905f52906020015b60405180910390a3505050505050565b6001600160a01b03861661367f57604051630d24315760e01b815260040160405180910390fd5b6136898686613ed1565b831561369e5761369e875f8888868689613c7e565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d8785856040516136e5939291906151d7565b60405180910390a36040518581526001600160a01b038716905f905f51602061528f5f395f51905f529060200160405180910390a350505050505050565b5f5f5f5f61373388888888613f29565b9250925092506137438282613ff1565b50909695505050505050565b336001600160a01b038216036137ba5760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b606482015260840161149e565b6001600160a01b0381165f90815260018401602052604090205460ff1615613812576001600160a01b038083165f9081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b039182165f90815260029390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b03841661386b57604051638163862760e01b815260040160405180910390fd5b6001600160a01b038316613892576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b038085165f908152601160209081526040808320938716835292905220829055801561178457826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161390491815260200190565b60405180910390a350505050565b6040516001600160a01b038381166024830152604482018390526110b991859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506140a9565b613984858561397f86612d42565b614115565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516139d5939291906151d7565b60405180910390a4836001600160a01b0316856001600160a01b03165f51602061528f5f395f51905f528560405161364891815260200190565b6040516001600160a01b0384811660248301528381166044830152606482018390526117849186918216906323b872dd9060840161393f565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b158015613ac6575f5ffd5b505af1158015613ad8573d5f5f3e3d5ffd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b158015613b5a575f5ffd5b505af1158015610d19573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613bea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c0e9190614f7f565b90506001600160a01b0381161561151c57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613c55908a908a908a908a908a908a90600401615201565b5f604051808303815f87803b158015613c6c575f5ffd5b505af1158015612499573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613cfc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d209190614f7f565b90506001600160a01b03811615613d97576040516223de2960e01b81526001600160a01b038216906223de2990613d65908b908b908b908b908b908b90600401615201565b5f604051808303815f87803b158015613d7c575f5ffd5b505af1158015613d8e573d5f5f3e3d5ffd5b50505050611880565b8115611880576001600160a01b0386163b156118805760405163fe737d0560e01b815260040160405180910390fd5b5f613e4b837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e27573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109aa9190614d3b565b50509050613e5882612d42565b811215613e785760405163043b37d160e21b815260040160405180910390fd5b613e8182612d42565b6001600160a01b0384165f90815260026020526040902054613ea39190614cdf565b6001600160a01b0384165f90815260026020526040902055600354613ec9908390614f15565b600355505050565b613eda81612d42565b6001600160a01b0383165f90815260026020526040902054613efc9190614cb8565b6001600160a01b0383165f90815260026020526040902055600354613f22908290614e6a565b6003555050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613f6257505f91506003905082613fe7565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613fb3573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613fde57505f925060019150829050613fe7565b92505f91508190505b9450945094915050565b5f8260038111156140045761400461525a565b0361400d575050565b60018260038111156140215761402161525a565b0361403f5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156140535761405361525a565b036140745760405163fce698f760e01b81526004810182905260240161149e565b60038260038111156140885761408861525a565b03611146576040516335e2f38360e21b81526004810182905260240161149e565b5f5f60205f8451602086015f885af1806140c8576040513d5f823e3d81fd5b50505f513d915081156140df5780600114156140ec565b6001600160a01b0384163b155b1561178457604051635274afe760e01b81526001600160a01b038516600482015260240161149e565b5f614176847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e27573d5f5f3e3d5ffd5b505090508181121561419b57604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b0384165f908152600260205260409020546141be908390614cdf565b6001600160a01b038086165f9081526002602052604080822093909355908516815220546141ed908390614cb8565b6001600160a01b039093165f90815260026020526040902092909255505050565b602080825282518282018190525f918401906040840190835b8181101561424e5783516001600160a01b0316835260209384019390920191600101614227565b509095945050505050565b5f81518084525f5b8181101561427d57602081850181015186830182015201614261565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6119206020830184614259565b6001600160a01b0381168114610be0575f5ffd5b5f5f83601f8401126142d2575f5ffd5b5081356001600160401b038111156142e8575f5ffd5b6020830191508360208260051b8501011115614302575f5ffd5b9250929050565b5f5f5f5f6060858703121561431c575f5ffd5b8435614327816142ae565b93506020850135925060408501356001600160401b03811115614348575f5ffd5b614354878288016142c2565b95989497509550505050565b5f5f60408385031215614371575f5ffd5b823561437c816142ae565b946020939093013593505050565b5f6020828403121561439a575f5ffd5b5035919050565b5f5f5f604084860312156143b3575f5ffd5b8335925060208401356001600160401b038111156143cf575f5ffd5b6143db868287016142c2565b9497909650939450505050565b5f5f5f5f608085870312156143fb575f5ffd5b8435614406816142ae565b93506020850135614416816142ae565b92506040850135614426816142ae565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561447257614472614436565b604052919050565b5f82601f830112614489575f5ffd5b81356001600160401b038111156144a2576144a2614436565b6144b5601f8201601f191660200161444a565b8181528460208386010111156144c9575f5ffd5b816020850160208301375f918101602001919091529392505050565b8015158114610be0575f5ffd5b5f5f5f5f5f5f5f60e0888a031215614508575f5ffd5b8735965060208801356001600160401b03811115614524575f5ffd5b6145308a828b0161447a565b9650506040880135614541816142ae565b94506060880135614551816144e5565b93506080880135614561816142ae565b9699959850939692959460a0840135945060c09093013592915050565b5f5f5f60608486031215614590575f5ffd5b833561459b816142ae565b925060208401356145ab816142ae565b929592945050506040919091013590565b5f5f604083850312156145cd575f5ffd5b50508035926020909101359150565b5f602082840312156145ec575f5ffd5b8135611920816142ae565b803560ff81168114614607575f5ffd5b919050565b5f5f83601f84011261461c575f5ffd5b5081356001600160401b03811115614632575f5ffd5b602083019150836020828501011115614302575f5ffd5b5f5f5f5f5f5f6080878903121561465e575f5ffd5b8635614669816142ae565b9550614677602088016145f7565b945060408701356001600160401b03811115614691575f5ffd5b61469d89828a0161460c565b90955093505060608701356001600160401b038111156146bb575f5ffd5b6146c789828a0161460c565b979a9699509497509295939492505050565b5f5f5f5f608085870312156146ec575f5ffd5b84356146f7816142ae565b93506020850135614707816142ae565b93969395505050506040820135916060013590565b602080825282518282018190525f918401906040840190835b8181101561424e578351835260209384019390920191600101614735565b5f5f5f5f60608587031215614766575f5ffd5b8435614771816142ae565b93506020850135925060408501356001600160401b03811115614792575f5ffd5b6143548782880161460c565b5f5f5f5f5f5f5f60a0888a0312156147b4575f5ffd5b87356147bf816142ae565b965060208801356147cf816142ae565b95506040880135945060608801356001600160401b038111156147f0575f5ffd5b6147fc8a828b0161460c565b90955093505060808801356001600160401b0381111561481a575f5ffd5b6148268a828b0161460c565b989b979a50959850939692959293505050565b5f5f5f6060848603121561484b575f5ffd5b8335614856816142ae565b95602085013595506040909401359392505050565b60ff60f81b8816815260e060208201525f61488960e0830189614259565b828103604084015261489b8189614259565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b818110156148f05783518352602093840193909201916001016148d2565b50909b9a5050505050505050505050565b5f5f5f60608486031215614913575f5ffd5b833561491e816142ae565b92506020840135915060408401356001600160401b0381111561493f575f5ffd5b61494b8682870161447a565b9150509250925092565b5f5f60408385031215614966575f5ffd5b8235614971816142ae565b91506020830135614981816142ae565b809150509250929050565b5f5f5f5f6080858703121561499f575f5ffd5b84356149aa816142ae565b935060208501356149ba816142ae565b92506040850135915060608501356001600160401b038111156149db575f5ffd5b6149e78782880161447a565b91505092959194509250565b5f5f5f5f5f5f5f60e0888a031215614a09575f5ffd5b8735614a14816142ae565b96506020880135614a24816142ae565b95506040880135945060608801359350614561608089016145f7565b5f5f5f5f5f5f5f60a0888a031215614a56575f5ffd5b8735614a61816142ae565b9650614a6f602089016145f7565b955060408801356001600160401b03811115614a89575f5ffd5b614a958a828b0161460c565b90965094505060608801356001600160401b03811115614ab3575f5ffd5b614abf8a828b0161460c565b9094509250506080880135614ad3816142ae565b8091505092959891949750929550565b5f5f5f5f5f5f60808789031215614af8575f5ffd5b8635614b03816142ae565b95506020870135945060408701356001600160401b03811115614691575f5ffd5b5f5f5f60408486031215614b36575f5ffd5b8335925060208401356001600160401b03811115614b52575f5ffd5b6143db8682870161460c565b600181811c90821680614b7257607f821691505b602082108103614b9057634e487b7160e01b5f52602260045260245ffd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b83815260406020820181905281018290525f6001600160fb1b03831115614c41575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215614c6b575f5ffd5b8151611920816144e5565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201614c9e57614c9e614c76565b505f0390565b634e487b7160e01b5f52600160045260245ffd5b8082018281125f831280158216821582161715614cd757614cd7614c76565b505092915050565b8181035f83128015838313168383128216171561336857613368614c76565b85815260018060a01b038516602082015283604082015282606082015260a060808201525f614d3060a0830184614259565b979650505050505050565b5f60208284031215614d4b575f5ffd5b5051919050565b5f5f8354614d5f81614b5e565b600182168015614d765760018114614d8b57614db8565b60ff1983168652811515820286019350614db8565b865f5260205f205f5b83811015614db057815488820152600190910190602001614d94565b505081860193505b509195945050505050565b5f60208284031215614dd3575f5ffd5b81516001600160401b03811115614de8575f5ffd5b8201601f81018413614df8575f5ffd5b80516001600160401b03811115614e1157614e11614436565b8060051b614e216020820161444a565b91825260208184018101929081019087841115614e3c575f5ffd5b6020850194505b83851015614d305784519250614e58836142ae565b82825260209485019490910190614e43565b80820180821115610bb057610bb0614c76565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602a908201527f5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652060408201526962656c6f77207a65726f60b01b606082015260800190565b81810381811115610bb057610bb0614c76565b5f60018201614f3957614f39614c76565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f5f5f60608486031215614f66575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215614f8f575f5ffd5b8151611920816142ae565b60ff8281168282160390811115610bb057610bb0614c76565b6001815b6001841115614fee57808504811115614fd257614fd2614c76565b6001841615614fe057908102905b60019390931c928002614fb7565b935093915050565b5f8261500457506001610bb0565b8161501057505f610bb0565b816001811461502657600281146150305761504c565b6001915050610bb0565b60ff84111561504157615041614c76565b50506001821b610bb0565b5060208310610133831016604e8410600b841016171561506f575081810a610bb0565b61507b5f198484614fb3565b805f190482111561508e5761508e614c76565b029392505050565b5f61192060ff841683614ff6565b5f826150be57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610bb057610bb0614c76565b601f8211156110b957805f5260205f20601f840160051c810160208510156150ff5750805b601f840160051c820191505b81811015610d19575f815560010161510b565b6001600160401b0383111561513557615135614436565b615149836151438354614b5e565b836150da565b5f601f84116001811461517a575f85156151635750838201355b5f19600387901b1c1916600186901b178355610d19565b5f83815260208120601f198716915b828110156151a95786850135825560209485019460019092019101615189565b50868210156151c5575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201525f6151ef6060830185614259565b82810360408401526117018185614259565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190525f9061523b90830185614259565b82810360a084015261524d8185614259565b9998505050505050505050565b634e487b7160e01b5f52602160045260245ffdfeb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c8d35930a342f713a4a1a263457043dd8d9edb1fdf26dcba7016bf005536648d64736f6c634300081e0033";
2266
2284
  const isSuperArgs = (xs) => xs.length > 1;
2267
2285
  class SuperToken__factory extends ethers_1.ContractFactory {
2268
2286
  constructor(...args) {