@superfluid-finance/sdk-core 0.6.10-dev.7d767c8.0 → 0.6.10-dev.9bba415.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 (339) hide show
  1. package/dist/index.umd.js +152 -120
  2. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperfluid.d.ts +24 -8
  3. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperfluid.d.ts.map +1 -1
  4. package/dist/main/typechain-types/contracts/mocks/SuperAppMocks.sol/{SuperAppMockUsingDeprecatedRegisterApp.d.ts → SuperAppMockUsingRegisterApp.d.ts} +4 -4
  5. package/dist/main/typechain-types/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp.d.ts.map +1 -0
  6. package/dist/main/typechain-types/contracts/mocks/SuperAppMocks.sol/{SuperAppMockUsingDeprecatedRegisterApp.js → SuperAppMockUsingRegisterApp.js} +1 -1
  7. package/dist/main/typechain-types/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp.js.map +1 -0
  8. package/dist/main/typechain-types/contracts/mocks/SuperAppMocks.sol/index.d.ts +1 -1
  9. package/dist/main/typechain-types/contracts/mocks/SuperAppMocks.sol/index.d.ts.map +1 -1
  10. package/dist/main/typechain-types/contracts/mocks/SuperfluidMock.sol/SuperfluidMock.d.ts +24 -8
  11. package/dist/main/typechain-types/contracts/mocks/SuperfluidMock.sol/SuperfluidMock.d.ts.map +1 -1
  12. package/dist/main/typechain-types/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester.d.ts +24 -8
  13. package/dist/main/typechain-types/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester.d.ts.map +1 -1
  14. package/dist/main/typechain-types/contracts/superfluid/Superfluid.d.ts +24 -8
  15. package/dist/main/typechain-types/contracts/superfluid/Superfluid.d.ts.map +1 -1
  16. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts +1 -1
  17. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js +1 -1
  18. package/dist/main/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.d.ts +1 -1
  19. package/dist/main/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.js +1 -1
  20. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.d.ts +1 -1
  21. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.js +1 -1
  22. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.d.ts +1 -1
  23. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.js +1 -1
  24. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluid__factory.d.ts +15 -9
  25. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluid__factory.d.ts.map +1 -1
  26. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluid__factory.js +19 -11
  27. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluid__factory.js.map +1 -1
  28. package/dist/main/typechain-types/factories/contracts/mocks/AgreementMock__factory.d.ts +1 -1
  29. package/dist/main/typechain-types/factories/contracts/mocks/AgreementMock__factory.js +1 -1
  30. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ClosingOnUpdateFlowTestApp__factory.d.ts +1 -1
  31. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ClosingOnUpdateFlowTestApp__factory.js +1 -1
  32. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ExclusiveInflowTestApp__factory.d.ts +1 -1
  33. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ExclusiveInflowTestApp__factory.js +1 -1
  34. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/FlowExchangeTestApp__factory.d.ts +1 -1
  35. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/FlowExchangeTestApp__factory.js +1 -1
  36. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/NonClosableOutflowTestApp__factory.d.ts +1 -1
  37. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/NonClosableOutflowTestApp__factory.js +1 -1
  38. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/SelfDeletingFlowTestApp__factory.d.ts +1 -1
  39. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/SelfDeletingFlowTestApp__factory.js +1 -1
  40. package/dist/main/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibraryMock__factory.d.ts +1 -1
  41. package/dist/main/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibraryMock__factory.js +1 -1
  42. package/dist/main/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibrarySuperAppMock__factory.d.ts +1 -1
  43. package/dist/main/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibrarySuperAppMock__factory.js +1 -1
  44. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.d.ts +1 -1
  45. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.js +1 -1
  46. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.d.ts +1 -1
  47. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.js +1 -1
  48. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/NoNFTSuperTokenMock__factory.d.ts +1 -1
  49. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/NoNFTSuperTokenMock__factory.js +1 -1
  50. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.d.ts +1 -1
  51. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.js +1 -1
  52. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.d.ts +1 -1
  53. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.js +1 -1
  54. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.d.ts +1 -1
  55. package/dist/main/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.js +1 -1
  56. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientDrainingGas__factory.d.ts +1 -1
  57. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientDrainingGas__factory.js +1 -1
  58. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientReverting__factory.d.ts +1 -1
  59. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientReverting__factory.js +1 -1
  60. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock__factory.d.ts +1 -1
  61. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock__factory.js +1 -1
  62. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.d.ts +1 -1
  63. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.js +1 -1
  64. package/dist/main/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibraryMock__factory.d.ts +1 -1
  65. package/dist/main/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibraryMock__factory.js +1 -1
  66. package/dist/main/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibrarySuperAppMock__factory.d.ts +1 -1
  67. package/dist/main/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibrarySuperAppMock__factory.js +1 -1
  68. package/dist/main/typechain-types/factories/contracts/mocks/MockSmartWallet__factory.d.ts +1 -1
  69. package/dist/main/typechain-types/factories/contracts/mocks/MockSmartWallet__factory.js +1 -1
  70. package/dist/main/typechain-types/factories/contracts/mocks/MultiFlowTesterApp__factory.d.ts +1 -1
  71. package/dist/main/typechain-types/factories/contracts/mocks/MultiFlowTesterApp__factory.js +1 -1
  72. package/dist/main/typechain-types/factories/contracts/mocks/StreamRedirector__factory.d.ts +1 -1
  73. package/dist/main/typechain-types/factories/contracts/mocks/StreamRedirector__factory.js +1 -1
  74. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts +1 -1
  75. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js +1 -1
  76. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  77. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.js +1 -1
  78. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  79. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.js +1 -1
  80. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.d.ts +1 -1
  81. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.js +1 -1
  82. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  83. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  84. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  85. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  86. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/{SuperAppMockUsingDeprecatedRegisterApp__factory.d.ts → SuperAppMockUsingRegisterApp__factory.d.ts} +11 -11
  87. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.d.ts.map +1 -0
  88. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/{SuperAppMockUsingDeprecatedRegisterApp__factory.js → SuperAppMockUsingRegisterApp__factory.js} +7 -7
  89. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.js.map +1 -0
  90. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  91. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  92. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.d.ts +1 -1
  93. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.js +1 -1
  94. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/index.d.ts +1 -1
  95. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/index.d.ts.map +1 -1
  96. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/index.js +3 -3
  97. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/index.js.map +1 -1
  98. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock42__factory.d.ts +1 -1
  99. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock42__factory.js +1 -1
  100. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock__factory.d.ts +1 -1
  101. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock__factory.js +1 -1
  102. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts +1 -1
  103. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryStorageLayoutTester__factory.js +1 -1
  104. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts +1 -1
  105. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js +1 -1
  106. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  107. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  108. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  109. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  110. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.d.ts +1 -1
  111. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.js +1 -1
  112. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.d.ts +1 -1
  113. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.js +1 -1
  114. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenMock__factory.d.ts +1 -1
  115. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenMock__factory.js +1 -1
  116. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenStorageLayoutTester__factory.d.ts +1 -1
  117. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenStorageLayoutTester__factory.js +1 -1
  118. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.d.ts +1 -1
  119. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.js +1 -1
  120. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts +16 -10
  121. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts.map +1 -1
  122. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js +20 -12
  123. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js.map +1 -1
  124. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts +16 -10
  125. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts.map +1 -1
  126. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js +20 -12
  127. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js.map +1 -1
  128. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.d.ts +1 -1
  129. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.js +1 -1
  130. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.d.ts +1 -1
  131. package/dist/main/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.js +1 -1
  132. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts +1 -1
  133. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js +1 -1
  134. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts +1 -1
  135. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.js +1 -1
  136. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +16 -10
  137. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts.map +1 -1
  138. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +20 -12
  139. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.js.map +1 -1
  140. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts +1 -1
  141. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts.map +1 -1
  142. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js +1 -1
  143. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js.map +1 -1
  144. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  145. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  146. package/dist/main/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.d.ts +1 -1
  147. package/dist/main/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.js +1 -1
  148. package/dist/main/typechain-types/factories/contracts/utils/SuperUpgrader__factory.d.ts +1 -1
  149. package/dist/main/typechain-types/factories/contracts/utils/SuperUpgrader__factory.js +1 -1
  150. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  151. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts.map +1 -1
  152. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js +1 -1
  153. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js.map +1 -1
  154. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  155. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  156. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.d.ts +1 -1
  157. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.js +1 -1
  158. package/dist/main/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.d.ts +1 -1
  159. package/dist/main/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.js +1 -1
  160. package/dist/main/typechain-types/factories/contracts/utils/TestGovernance__factory.d.ts +1 -1
  161. package/dist/main/typechain-types/factories/contracts/utils/TestGovernance__factory.js +1 -1
  162. package/dist/main/typechain-types/index.d.ts +2 -2
  163. package/dist/main/typechain-types/index.d.ts.map +1 -1
  164. package/dist/main/typechain-types/index.js +3 -3
  165. package/dist/main/typechain-types/index.js.map +1 -1
  166. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperfluid.d.ts +24 -8
  167. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperfluid.d.ts.map +1 -1
  168. package/dist/module/typechain-types/contracts/mocks/SuperAppMocks.sol/{SuperAppMockUsingDeprecatedRegisterApp.d.ts → SuperAppMockUsingRegisterApp.d.ts} +4 -4
  169. package/dist/module/typechain-types/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp.d.ts.map +1 -0
  170. package/dist/module/typechain-types/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp.js +2 -0
  171. package/dist/module/typechain-types/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp.js.map +1 -0
  172. package/dist/module/typechain-types/contracts/mocks/SuperAppMocks.sol/index.d.ts +1 -1
  173. package/dist/module/typechain-types/contracts/mocks/SuperAppMocks.sol/index.d.ts.map +1 -1
  174. package/dist/module/typechain-types/contracts/mocks/SuperfluidMock.sol/SuperfluidMock.d.ts +24 -8
  175. package/dist/module/typechain-types/contracts/mocks/SuperfluidMock.sol/SuperfluidMock.d.ts.map +1 -1
  176. package/dist/module/typechain-types/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester.d.ts +24 -8
  177. package/dist/module/typechain-types/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester.d.ts.map +1 -1
  178. package/dist/module/typechain-types/contracts/superfluid/Superfluid.d.ts +24 -8
  179. package/dist/module/typechain-types/contracts/superfluid/Superfluid.d.ts.map +1 -1
  180. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts +1 -1
  181. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js +1 -1
  182. package/dist/module/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.d.ts +1 -1
  183. package/dist/module/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.js +1 -1
  184. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.d.ts +1 -1
  185. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.js +1 -1
  186. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.d.ts +1 -1
  187. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.js +1 -1
  188. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluid__factory.d.ts +15 -9
  189. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluid__factory.d.ts.map +1 -1
  190. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluid__factory.js +19 -11
  191. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluid__factory.js.map +1 -1
  192. package/dist/module/typechain-types/factories/contracts/mocks/AgreementMock__factory.d.ts +1 -1
  193. package/dist/module/typechain-types/factories/contracts/mocks/AgreementMock__factory.js +1 -1
  194. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ClosingOnUpdateFlowTestApp__factory.d.ts +1 -1
  195. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ClosingOnUpdateFlowTestApp__factory.js +1 -1
  196. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ExclusiveInflowTestApp__factory.d.ts +1 -1
  197. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/ExclusiveInflowTestApp__factory.js +1 -1
  198. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/FlowExchangeTestApp__factory.d.ts +1 -1
  199. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/FlowExchangeTestApp__factory.js +1 -1
  200. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/NonClosableOutflowTestApp__factory.d.ts +1 -1
  201. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/NonClosableOutflowTestApp__factory.js +1 -1
  202. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/SelfDeletingFlowTestApp__factory.d.ts +1 -1
  203. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.sol/SelfDeletingFlowTestApp__factory.js +1 -1
  204. package/dist/module/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibraryMock__factory.d.ts +1 -1
  205. package/dist/module/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibraryMock__factory.js +1 -1
  206. package/dist/module/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibrarySuperAppMock__factory.d.ts +1 -1
  207. package/dist/module/typechain-types/factories/contracts/mocks/CFALibraryMock.sol/CFALibrarySuperAppMock__factory.js +1 -1
  208. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.d.ts +1 -1
  209. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantInflowNFTMock__factory.js +1 -1
  210. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.d.ts +1 -1
  211. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/ConstantOutflowNFTMock__factory.js +1 -1
  212. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/NoNFTSuperTokenMock__factory.d.ts +1 -1
  213. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTMock.sol/NoNFTSuperTokenMock__factory.js +1 -1
  214. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.d.ts +1 -1
  215. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantInflowNFTStorageLayoutMock__factory.js +1 -1
  216. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.d.ts +1 -1
  217. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/ConstantOutflowNFTStorageLayoutMock__factory.js +1 -1
  218. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.d.ts +1 -1
  219. package/dist/module/typechain-types/factories/contracts/mocks/CFAv1NFTUpgradabilityMock.sol/FlowNFTBaseStorageLayoutMock__factory.js +1 -1
  220. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientDrainingGas__factory.d.ts +1 -1
  221. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientDrainingGas__factory.js +1 -1
  222. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientReverting__factory.d.ts +1 -1
  223. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777RecipientReverting__factory.js +1 -1
  224. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock__factory.d.ts +1 -1
  225. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.sol/ERC777SenderRecipientMock__factory.js +1 -1
  226. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.d.ts +1 -1
  227. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.js +1 -1
  228. package/dist/module/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibraryMock__factory.d.ts +1 -1
  229. package/dist/module/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibraryMock__factory.js +1 -1
  230. package/dist/module/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibrarySuperAppMock__factory.d.ts +1 -1
  231. package/dist/module/typechain-types/factories/contracts/mocks/IDAv1LibraryMock.sol/IDAv1LibrarySuperAppMock__factory.js +1 -1
  232. package/dist/module/typechain-types/factories/contracts/mocks/MockSmartWallet__factory.d.ts +1 -1
  233. package/dist/module/typechain-types/factories/contracts/mocks/MockSmartWallet__factory.js +1 -1
  234. package/dist/module/typechain-types/factories/contracts/mocks/MultiFlowTesterApp__factory.d.ts +1 -1
  235. package/dist/module/typechain-types/factories/contracts/mocks/MultiFlowTesterApp__factory.js +1 -1
  236. package/dist/module/typechain-types/factories/contracts/mocks/StreamRedirector__factory.d.ts +1 -1
  237. package/dist/module/typechain-types/factories/contracts/mocks/StreamRedirector__factory.js +1 -1
  238. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts +1 -1
  239. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js +1 -1
  240. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  241. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.js +1 -1
  242. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  243. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.js +1 -1
  244. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.d.ts +1 -1
  245. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.js +1 -1
  246. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  247. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  248. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  249. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  250. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/{SuperAppMockUsingDeprecatedRegisterApp__factory.d.ts → SuperAppMockUsingRegisterApp__factory.d.ts} +11 -11
  251. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.d.ts.map +1 -0
  252. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/{SuperAppMockUsingDeprecatedRegisterApp__factory.js → SuperAppMockUsingRegisterApp__factory.js} +5 -5
  253. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.js.map +1 -0
  254. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  255. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  256. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.d.ts +1 -1
  257. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.js +1 -1
  258. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/index.d.ts +1 -1
  259. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/index.d.ts.map +1 -1
  260. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/index.js +1 -1
  261. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/index.js.map +1 -1
  262. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock42__factory.d.ts +1 -1
  263. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock42__factory.js +1 -1
  264. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock__factory.d.ts +1 -1
  265. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryMock__factory.js +1 -1
  266. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts +1 -1
  267. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryStorageLayoutTester__factory.js +1 -1
  268. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts +1 -1
  269. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js +1 -1
  270. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  271. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  272. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  273. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  274. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.d.ts +1 -1
  275. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDAMock__factory.js +1 -1
  276. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.d.ts +1 -1
  277. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.sol/SuperTokenLibraryIDASuperAppMock__factory.js +1 -1
  278. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenMock__factory.d.ts +1 -1
  279. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenMock__factory.js +1 -1
  280. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenStorageLayoutTester__factory.d.ts +1 -1
  281. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.sol/SuperTokenStorageLayoutTester__factory.js +1 -1
  282. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.d.ts +1 -1
  283. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.js +1 -1
  284. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts +16 -10
  285. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts.map +1 -1
  286. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js +20 -12
  287. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js.map +1 -1
  288. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts +16 -10
  289. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts.map +1 -1
  290. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js +20 -12
  291. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js.map +1 -1
  292. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.d.ts +1 -1
  293. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantInflowNFT__factory.js +1 -1
  294. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.d.ts +1 -1
  295. package/dist/module/typechain-types/factories/contracts/superfluid/ConstantOutflowNFT__factory.js +1 -1
  296. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts +1 -1
  297. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js +1 -1
  298. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts +1 -1
  299. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.js +1 -1
  300. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +16 -10
  301. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts.map +1 -1
  302. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +20 -12
  303. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.js.map +1 -1
  304. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts +1 -1
  305. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts.map +1 -1
  306. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js +1 -1
  307. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js.map +1 -1
  308. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  309. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  310. package/dist/module/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.d.ts +1 -1
  311. package/dist/module/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.js +1 -1
  312. package/dist/module/typechain-types/factories/contracts/utils/SuperUpgrader__factory.d.ts +1 -1
  313. package/dist/module/typechain-types/factories/contracts/utils/SuperUpgrader__factory.js +1 -1
  314. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  315. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts.map +1 -1
  316. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js +1 -1
  317. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js.map +1 -1
  318. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  319. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  320. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.d.ts +1 -1
  321. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.js +1 -1
  322. package/dist/module/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.d.ts +1 -1
  323. package/dist/module/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.js +1 -1
  324. package/dist/module/typechain-types/factories/contracts/utils/TestGovernance__factory.d.ts +1 -1
  325. package/dist/module/typechain-types/factories/contracts/utils/TestGovernance__factory.js +1 -1
  326. package/dist/module/typechain-types/index.d.ts +2 -2
  327. package/dist/module/typechain-types/index.d.ts.map +1 -1
  328. package/dist/module/typechain-types/index.js +1 -1
  329. package/dist/module/typechain-types/index.js.map +1 -1
  330. package/package.json +3 -3
  331. package/dist/main/typechain-types/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp.d.ts.map +0 -1
  332. package/dist/main/typechain-types/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp.js.map +0 -1
  333. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp__factory.d.ts.map +0 -1
  334. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp__factory.js.map +0 -1
  335. package/dist/module/typechain-types/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp.d.ts.map +0 -1
  336. package/dist/module/typechain-types/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp.js +0 -2
  337. package/dist/module/typechain-types/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp.js.map +0 -1
  338. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp__factory.d.ts.map +0 -1
  339. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp__factory.js.map +0 -1
@@ -2136,7 +2136,7 @@ const _abi = [
2136
2136
  type: "function",
2137
2137
  },
2138
2138
  ];
2139
- const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620052e7380380620052e78339810160408190526200003591620000e1565b6001600160a01b0380851660805280831660a081905290821660c052604051859184918491907fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038216907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a250505060e092909252506200013d915050565b6001600160a01b0381168114620000de57600080fd5b50565b60008060008060808587031215620000f857600080fd5b84516200010581620000c8565b6020860151604087015191955093506200011f81620000c8565b60608601519092506200013281620000c8565b939692955090935050565b60805160a05160c05160e0516150dd6200020a600039600061071501526000818161069301526115490152600081816109cc01526114ac0152600081816104e201528181610ca801528181610d1701528181610fcc015281816110fc015281816111cb015281816113eb01528181611599015281816116e6015281816118860152818161196501528181611d6601528181611e3001528181611ec801528181611f3001528181611fb8015281816128800152818161291701528181613ae30152613d2201526150dd6000f3fe608060405234801561001057600080fd5b50600436106104125760003560e01c806366a12fb611610220578063b1f0b5be11610130578063d9d078d6116100b8578063ee719bc811610087578063ee719bc8146109b6578063ef43d2c6146109c7578063fad8b32a146109ee578063fc673c4f14610a01578063fe9d930314610a1457600080fd5b8063d9d078d614610929578063dd62ed3e1461093c578063eb3537cc14610975578063ec0d6343146109a357600080fd5b8063c780fd82116100ff578063c780fd82146108ca578063ca0c1e7f146108dd578063ca789464146108f0578063cf97256d14610903578063d95b63711461091657600080fd5b8063b1f0b5be1461087e578063b84cdd4a14610891578063bb0d196e146108a4578063c68d4283146108b757600080fd5b8063959b8c3f116101b35780639d876741116101825780639d8767411461081f578063a1b2bf8b14610832578063a3a7e7f314610845578063a457c2d714610858578063a9059cbb1461086b57600080fd5b8063959b8c3f146107e957806395d89b41146107fc5780639903ad38146108045780639bd9bbc61461080c57600080fd5b806379359f6f116101ef57806379359f6f1461079e57806383ba2525146107b15780638f283970146107c457806392081a47146107d757600080fd5b806366a12fb61461075d5780636c2d9f2f146107705780636e9960c31461078357806370a082311461078b57600080fd5b8063386fa221116103265780634c5c0c85116102ae57806356189cb41161027d57806356189cb4146106ea5780635b9d09cc146106fd5780636154b1021461071057806362aa52871461073757806362ad1b831461074a57600080fd5b80634c5c0c851461068e57806350d75d25146106b557806352d1902d146106bd578063556f0dc7146106e357600080fd5b806342fe0980116102f557806342fe09801461062257806345977d031461063557806346951954146106485780634b2763b31461065b5780634b61cc331461066e57600080fd5b8063386fa221146105d657806339509351146105e9578063397be931146105fc57806341b706be1461060f57600080fd5b80631863e809116103a9578063245887fc11610378578063245887fc146105405780632704839714610553578063282a050b146105665780632ec8eec71461058e578063313ce567146105c157600080fd5b80631863e809146104cd57806320bc4425146104e0578063222f5be01461051a57806323b872dd1461052d57600080fd5b806311bcc81e116103e557806311bcc81e1461048257806312a6a3f81461049557806316d055d6146104a857806318160ddd146104bb57600080fd5b806306e485381461041757806306fdde0314610435578063090c415e1461044a578063095ea7b31461045f575b600080fd5b61041f610a27565b60405161042c9190613fad565b60405180910390f35b61043d610a38565b60405161042c919061404a565b61045d6104583660046140bd565b610aca565b005b61047261046d366004614118565b610b7d565b604051901515815260200161042c565b61045d610490366004614144565b610b94565b61045d6104a336600461415d565b610bc3565b61045d6104b63660046141a8565b610ca6565b6003545b60405190815260200161042c565b61045d6104db3660046142bc565b610d02565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161042c565b61045d61052836600461434e565b610fa2565b61047261053b36600461434e565b610fb4565b61045d61054e366004614118565b610fca565b61045d61056136600461438f565b611043565b610579610574366004614144565b6110df565b6040805192835260208301919091520161042c565b6105a161059c3660046143b1565b6110f4565b60408051948552602085019390935291830152606082015260800161042c565b60125b60405160ff909116815260200161042c565b61041f6105e43660046143b1565b611197565b6104726105f7366004614118565b61123a565b61045d61060a3660046143f1565b611276565b61045d61061d3660046141a8565b61127f565b61045d6106303660046144db565b6112ab565b61045d610643366004614144565b61138c565b61045d6106563660046143b1565b6113b8565b61045d61066936600461434e565b611597565b61068161067c36600461456d565b611619565b60405161042c91906145b3565b6105027f000000000000000000000000000000000000000000000000000000000000000081565b61050261165e565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104bf565b60016104bf565b61045d6106f836600461434e565b611688565b61045d61070b3660046145eb565b611693565b6104bf7f000000000000000000000000000000000000000000000000000000000000000081565b61045d61074536600461434e565b6116e4565b61045d61075836600461463a565b61172d565b61045d61076b36600461434e565b6117db565b61068161077e3660046146d8565b6117fb565b61050261183d565b6104bf6107993660046143b1565b611855565b6104726107ac3660046143b1565b61187e565b61045d6107bf366004614118565b611906565b61045d6107d23660046143b1565b611932565b600e54600160a01b900460ff166105c4565b61045d6107f73660046143b1565b611a26565b61043d611a77565b61045d611a86565b61045d61081a3660046145eb565b611b48565b61045d61082d36600461470d565b611b9c565b61045d61084036600461415d565b611be2565b61045d6108533660046143b1565b611c8c565b610472610866366004614118565b611ca0565b610472610879366004614118565b611cef565b61045d61088c366004614765565b611cfd565b61047261089f366004614118565b611d0d565b6104726108b23660046143b1565b611d5e565b61045d6108c536600461470d565b611de6565b61045d6108d836600461434e565b611e2e565b61045d6108eb3660046147e4565b611ec6565b61045d6108fe366004614118565b611f2e565b61045d610911366004614118565b611fa3565b610472610924366004614843565b61208c565b610472610937366004614118565b61209a565b6104bf61094a366004614843565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b610988610983366004614118565b6120b4565b6040805193845260208401929092529082015260600161042c565b61045d6109b136600461487c565b6121ee565b600e546001600160a01b0316610502565b6105027f000000000000000000000000000000000000000000000000000000000000000081565b61045d6109fc3660046143b1565b6122c5565b61045d610a0f366004614922565b612316565b61045d610a22366004614969565b6123b7565b6060610a336012612408565b905090565b6060600f8054610a47906149a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610a73906149a7565b8015610ac05780601f10610a9557610100808354040283529160200191610ac0565b820191906000526020600020905b815481529060010190602001808311610aa357829003601f168201915b5050505050905090565b6000338585604051602001610ae1939291906149e1565b604051602081830303815290604052805190602001209050610b368184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061246e92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610b8a3384846124af565b5060015b92915050565b610bc033333384604051806020016040528060008152506040518060200160405280600081525061255f565b50565b6040513390600090610bdb9083908790602001614a2a565b60408051601f1981840301815291905280516020909101209050610bff818461271f565b15610c1d5760405163782a90fb60e11b815260040160405180910390fd5b610c5a8185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061246e92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610c9793929190614a67565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610cef5760405163c51efddd60e01b815260040160405180910390fd5b610cfb8484848461275b565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8a9190614aa8565b610da75760405163327fd99160e21b815260040160405180910390fd5b6000610db161287b565b90506001600160a01b038116610dc45750845b600085610dd15786610dd3565b815b905060008313610e7057610de683614adb565b610def856129c0565b14610dfc57610dfc614af7565b610e05846129c0565b6001600160a01b03821660009081526002602052604081208054909190610e2d908490614b0d565b90915550506001600160a01b03851660009081526002602052604081208054859290610e5a908490614b0d565b90915550610e6b9050858286612a2e565b610f3a565b8515610e7e57610e7e614af7565b82610e88856129c0565b610e929190614b0d565b6001600160a01b03831660009081526002602052604081208054909190610eba908490614b35565b90915550610ec99050846129c0565b6001600160a01b03881660009081526002602052604081208054909190610ef1908490614b0d565b90915550506001600160a01b03851660009081526002602052604081208054859290610f1e908490614b0d565b90915550610f2f9050828886612a2e565b610f3a828685612a2e565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610f8f959493929190614b55565b60405180910390a4505050505050505050565b610fae8384848461275b565b50505050565b6000610fc23385858561275b565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146110135760405163c51efddd60e01b815260040160405180910390fd5b61103f33838484604051806020016040528060008152506040518060200160405280600081525061255f565b5050565b604051339060009061105b9083908690602001614a2a565b60405160208183030381529060405280519060200120905061107d818461271f565b61109a5760405163dae1880960e01b815260040160405180910390fd5b6110a48184612a61565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806110eb83612a82565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117c9190614b88565b905061118885826120b4565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611212573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b8e9190810190614ba1565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610b8a918590611271908690614c2f565b6124af565b610bc081612b3e565b33301461129f57604051630fff4cc960e31b815260040160405180910390fd5b610cfb8385848461275b565b600054610100900460ff16158080156112cb5750600054600160ff909116105b806112e55750303b1580156112e5575060005460ff166001145b61130a5760405162461bcd60e51b815260040161130190614c42565b60405180910390fd5b6000805460ff19166001179055801561132d576000805461ff0019166101001790555b61133d8787878787876000612b49565b8015611383576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610bc0333333846040518060200160405280600081525060405180602001604052806000815250612c11565b60006113d06000805160206150118339815191525490565b905060006001600160a01b038216156113e9578161140b565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461143657604051630484acab60e01b815260040160405180910390fd5b61143f83612dc4565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561147d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a19190614c90565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806115745750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa15801561151a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153e9190614c90565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156115925760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146115e05760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546115929084908490611271908590614c2f565b60606000858585604051602001611632939291906149e1565b6040516020818303038152906040528051906020012090506116548184612ffe565b9695505050505050565b6000610a337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6115928383836124af565b610fae3333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612c11915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116885760405163c51efddd60e01b815260040160405180910390fd5b3361173a6012828a61308d565b6117575760405163f7f0222760e01b815260040160405180910390fd5b6117d18189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250613136915050565b5050505050505050565b33301461168857604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611812929190614a2a565b6040516020818303038152906040528051906020012090506118348184612ffe565b95945050505050565b6000610a336000805160206150118339815191525490565b600080611861836110f4565b5050509050600081126118745780611877565b60005b9392505050565b6000610b8e827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109379190614b88565b61103f33338484604051806020016040528060008152506040518060200160405280600081525061255f565b600061194a6000805160206150118339815191525490565b905060006001600160a01b038216156119635781611985565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146119b057604051630484acab60e01b815260040160405180910390fd5b60006119c86000805160206150118339815191525490565b90506119e08460008051602061501183398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611a33601282846131af565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a47906149a7565b600054610100900460ff1615808015611aa65750600054600160ff909116105b80611ac05750303b158015611ac0575060005460ff166001145b611adc5760405162461bcd60e51b815260040161130190614c42565b6000805460ff191660011790558015611aff576000805461ff0019166101001790555b8015610bc0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b610fae3333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506131369050565b333014611bbc57604051630fff4cc960e31b815260040160405180910390fd5b8051604080516000815260208101909152611592913391869186919015159086906132b3565b6040513390600090611bfa9083908790602001614a2a565b604051602081830303815290604052805190602001209050611c4f8185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061246e92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610c9793929190614a67565b61103f333383611c9b33611855565b61275b565b6000610b8a3384611271856040518060600160405280602a8152602001615031602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190613380565b60006118773333858561275b565b610fae33858560018087876133ac565b600080600080611d1d86866120b4565b9250925092506000611d45828411611d365760006129c0565b611d408385614cad565b6129c0565b611d4f9085614b0d565b60001315979650505050505050565b6000610b8e827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089f9190614b88565b333014611e0657604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526115929133918691869190151590819087906133ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611e775760405163c51efddd60e01b815260040160405180910390fd5b6115928383611271846040518060600160405280602a8152602001615031602a91396001600160a01b03808a166000908152601160209081526040808320938c16835292905220549190613380565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611f0f5760405163c51efddd60e01b815260040160405180910390fd5b610fae3385858585604051806020016040528060008152506001613136565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611f775760405163c51efddd60e01b815260040160405180910390fd5b61103f338384846040518060200160405280600081525060405180602001604052806000815250612c11565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015612007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202b9190614aa8565b6120485760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b03821660009081526002602052604090205461206c908290614b0d565b6001600160a01b0390921660009081526002602052604090209190915550565b60006118776012848461308d565b6000806120a784846120b4565b5050600013949350505050565b6001600160a01b0382166000908152600260205260408120549080806120d986611197565b905060005b81518110156121e55760008060008484815181106120fe576120fe614cc0565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa15801561215d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121819190614cd6565b919450925090506121928288614c2f565b965061219e8187614c2f565b95506121bb8183116121b15760006129c0565b611d408284614cad565b6121c5848a614b0d565b6121cf9190614b35565b9750505050806121de90614d04565b90506120de565b50509250925092565b600054610100900460ff161580801561220e5750600054600160ff909116105b806122285750303b158015612228575060005460ff166001145b6122445760405162461bcd60e51b815260040161130190614c42565b6000805460ff191660011790558015612267576000805461ff0019166101001790555b61227688888888888888612b49565b80156117d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336122d26012828461347a565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b336123236012828961308d565b6123405760405163f7f0222760e01b815260040160405180910390fd5b6113838188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061255f92505050565b6115923333338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805160208101909152908152925061255f915050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561246257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612444575b50505050509050919050565b60005b815181101561159257600082828151811061248e5761248e614cc0565b60200260200101519050808285015550806124a890614d04565b9050612471565b6001600160a01b0383166124d657604051638163862760e01b815260040160405180910390fd5b6001600160a01b0382166124fd576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600e546001600160a01b031661258857604051637bce7b2b60e11b815260040160405180910390fd5b60008061259485612a82565b915091506125ab88888387516000141588886132b3565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126189190614b88565b600e54909150612632906001600160a01b03168885613572565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561267b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269f9190614b88565b905060006126ad8284614cad565b90508085146126cf57604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d8560405161270a91815260200190565b60405180910390a25050505050505050505050565b6000805b828110156127515783810154801561274057600192505050610b8e565b5061274a81614d04565b9050612723565b5060009392505050565b60006001600160a01b0384166127845760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0383166127ab5760405163e219bd3960e01b815260040160405180910390fd5b60003390506127dc8186868660405180602001604052806000815250604051806020016040528060008152506135d5565b846001600160a01b0316866001600160a01b03161461286f5761286f8587611271866040518060600160405280602d815260200161507b602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020546133809092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129009190614c90565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ba9190614c90565b91505090565b60006001600160ff1b03821115612a2a5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401611301565b5090565b816001600160a01b0316836001600160a01b031660008051602061505b8339815191528360405161255291815260200190565b60005b8181101561159257600083820155612a7b81614d04565b9050612a64565b600e54600090819081906012600160a01b90910460ff161015612ae157600e54612ab790600160a01b900460ff166012614d1d565b612ac290600a614e1a565b9050612ace8185614e29565b9250612ada8184614e4b565b9150612b38565b600e546012600160a01b90910460ff161115612b3157600e54612b1090601290600160a01b900460ff16614d1d565b612b1b90600a614e1a565b9050612b278185614e4b565b9250839150612b38565b8391508192505b50915091565b610bc0601282613674565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612b7e858783614eb0565b506010612b8c838583614eb0565b50612ba38160008051602061501183398151915255565b612bac306136fe565b604051600080825290819060008051602061505b8339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612c3a57604051637bce7b2b60e11b815260040160405180910390fd5b600080612c4685612a82565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cbb9190614b88565b600e54909150612cd6906001600160a01b031689308661382c565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d439190614b88565b90506000612d518383614cad565b9050808514612d7357604051631c7c26d360e31b815260040160405180910390fd5b8651612d89908c908b9087901515808c8c6133ac565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161270a91815260200190565b6000612dee7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612e445760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401611301565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea69190614b88565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612f205760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401611301565b6001600160a01b0381163003612f785760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401611301565b612fa0817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611b3d565b6060816001600160401b03811115613018576130186141f9565b604051908082528060200260200182016040528015613041578160200160208202803683370190505b50905060005b828110156130865760008185015490508083838151811061306a5761306a614cc0565b60209081029190910101525061307f81614d04565b9050613047565b5092915050565b6000816001600160a01b0316836001600160a01b031614806130fc57506001600160a01b038316600090815260018501602052604090205460ff1680156130fc57506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610fc257506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b03861661315d5760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166131845760405163e219bd3960e01b815260040160405180910390fd5b613192878787878787613864565b6131a08787878787876135d5565b6113838787878787878761398b565b806001600160a01b0316826001600160a01b0316036132265760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401611301565b6001600160a01b038116600090815260018401602052604090205460ff161561327c576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b0385166132da57604051632e8aac6160e21b815260040160405180910390fd5b82156132ef576132ef86866000878686613864565b6132f98585613adb565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a409886858560405161334093929190614f6f565b60405180910390a36040518481526000906001600160a01b0387169060008051602061505b833981519152906020015b60405180910390a3505050505050565b600081848411156133a45760405162461bcd60e51b8152600401611301919061404a565b505050900390565b6001600160a01b0386166133d357604051630d24315760e01b815260040160405180910390fd5b6133dd8686613beb565b83156133f3576133f3876000888886868961398b565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d87858560405161343a93929190614f6f565b60405180910390a36040518581526001600160a01b0387169060009060008051602061505b8339815191529060200160405180910390a350505050505050565b336001600160a01b038216036134e55760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401611301565b6001600160a01b038116600090815260018401602052604090205460ff161561353f576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b03831660248201526044810182905261159290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613c45565b6135e885856135e3866129c0565b613d1a565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161363993929190614f6f565b60405180910390a4836001600160a01b0316856001600160a01b031660008051602061505b8339815191528560405161337091815260200190565b81541561368357613683614af7565b80516136959083906020840190613f3c565b5060005b81518110156115925760018360010160008484815181106136bc576136bc614cc0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556136f781614d04565b9050613699565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561377f57600080fd5b505af1158015613793573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b15801561381857600080fd5b505af1158015610cfb573d6000803e3d6000fd5b6040516001600160a01b0380851660248301528316604482015260648101829052610fae9085906323b872dd60e01b9060840161359e565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156138e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139099190614c90565b90506001600160a01b0381161561138357604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613950908a908a908a908a908a908a90600401614f9a565b600060405180830381600087803b15801561396a57600080fd5b505af115801561397e573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a309190614c90565b90506001600160a01b03811615613aac576040516223de2960e01b81526001600160a01b038216906223de2990613a75908b908b908b908b908b908b90600401614f9a565b600060405180830381600087803b158015613a8f57600080fd5b505af1158015613aa3573d6000803e3d6000fd5b505050506117d1565b81156117d1576001600160a01b0386163b156117d15760405163fe737d0560e01b815260040160405180910390fd5b6000613b63837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b3f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109839190614b88565b50509050613b70826129c0565b811215613b905760405163043b37d160e21b815260040160405180910390fd5b613b99826129c0565b6001600160a01b038416600090815260026020526040902054613bbc9190614b35565b6001600160a01b038416600090815260026020526040902055600354613be3908390614cad565b600355505050565b613bf4816129c0565b6001600160a01b038316600090815260026020526040902054613c179190614b0d565b6001600160a01b038316600090815260026020526040902055600354613c3e908290614c2f565b6003555050565b6000613c9a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613e199092919063ffffffff16565b9050805160001480613cbb575080806020019051810190613cbb9190614aa8565b6115925760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611301565b6000613d7e847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b3f573d6000803e3d6000fd5b5050905081811215613da357604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613dc7908390614b35565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613df7908390614b0d565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610fc2848460008585600080866001600160a01b03168587604051613e409190614ff4565b60006040518083038185875af1925050503d8060008114613e7d576040519150601f19603f3d011682016040523d82523d6000602084013e613e82565b606091505b5091509150613e9387838387613e9e565b979650505050505050565b60608315613f0d578251600003613f06576001600160a01b0385163b613f065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611301565b5081610fc2565b610fc28383815115613f225781518083602001fd5b8060405162461bcd60e51b8152600401611301919061404a565b828054828255906000526020600020908101928215613f91579160200282015b82811115613f9157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613f5c565b50612a2a9291505b80821115612a2a5760008155600101613f99565b6020808252825182820181905260009190848201906040850190845b81811015613fee5783516001600160a01b031683529284019291840191600101613fc9565b50909695505050505050565b60005b83811015614015578181015183820152602001613ffd565b50506000910152565b60008151808452614036816020860160208601613ffa565b601f01601f19169290920160200192915050565b602081526000611877602083018461401e565b6001600160a01b0381168114610bc057600080fd5b60008083601f84011261408457600080fd5b5081356001600160401b0381111561409b57600080fd5b6020830191508360208260051b85010111156140b657600080fd5b9250929050565b600080600080606085870312156140d357600080fd5b84356140de8161405d565b93506020850135925060408501356001600160401b0381111561410057600080fd5b61410c87828801614072565b95989497509550505050565b6000806040838503121561412b57600080fd5b82356141368161405d565b946020939093013593505050565b60006020828403121561415657600080fd5b5035919050565b60008060006040848603121561417257600080fd5b8335925060208401356001600160401b0381111561418f57600080fd5b61419b86828701614072565b9497909650939450505050565b600080600080608085870312156141be57600080fd5b84356141c98161405d565b935060208501356141d98161405d565b925060408501356141e98161405d565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614237576142376141f9565b604052919050565b600082601f83011261425057600080fd5b81356001600160401b03811115614269576142696141f9565b61427c601f8201601f191660200161420f565b81815284602083860101111561429157600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610bc057600080fd5b600080600080600080600060e0888a0312156142d757600080fd5b8735965060208801356001600160401b038111156142f457600080fd5b6143008a828b0161423f565b96505060408801356143118161405d565b94506060880135614321816142ae565b935060808801356143318161405d565b9699959850939692959460a0840135945060c09093013592915050565b60008060006060848603121561436357600080fd5b833561436e8161405d565b9250602084013561437e8161405d565b929592945050506040919091013590565b600080604083850312156143a257600080fd5b50508035926020909101359150565b6000602082840312156143c357600080fd5b81356118778161405d565b60006001600160401b038211156143e7576143e76141f9565b5060051b60200190565b6000602080838503121561440457600080fd5b82356001600160401b0381111561441a57600080fd5b8301601f8101851361442b57600080fd5b803561443e614439826143ce565b61420f565b81815260059190911b8201830190838101908783111561445d57600080fd5b928401925b82841015613e935783356144758161405d565b82529284019290840190614462565b803560ff8116811461449557600080fd5b919050565b60008083601f8401126144ac57600080fd5b5081356001600160401b038111156144c357600080fd5b6020830191508360208285010111156140b657600080fd5b600080600080600080608087890312156144f457600080fd5b86356144ff8161405d565b955061450d60208801614484565b945060408701356001600160401b038082111561452957600080fd5b6145358a838b0161449a565b9096509450606089013591508082111561454e57600080fd5b5061455b89828a0161449a565b979a9699509497509295939492505050565b6000806000806080858703121561458357600080fd5b843561458e8161405d565b9350602085013561459e8161405d565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b81811015613fee578351835292840192918401916001016145cf565b6000806000806060858703121561460157600080fd5b843561460c8161405d565b93506020850135925060408501356001600160401b0381111561462e57600080fd5b61410c8782880161449a565b600080600080600080600060a0888a03121561465557600080fd5b87356146608161405d565b965060208801356146708161405d565b95506040880135945060608801356001600160401b038082111561469357600080fd5b61469f8b838c0161449a565b909650945060808a01359150808211156146b857600080fd5b506146c58a828b0161449a565b989b979a50959850939692959293505050565b6000806000606084860312156146ed57600080fd5b83356146f88161405d565b95602085013595506040909401359392505050565b60008060006060848603121561472257600080fd5b833561472d8161405d565b92506020840135915060408401356001600160401b0381111561474f57600080fd5b61475b8682870161423f565b9150509250925092565b6000806000806080858703121561477b57600080fd5b84356147868161405d565b93506020850135925060408501356001600160401b03808211156147a957600080fd5b6147b58883890161423f565b935060608701359150808211156147cb57600080fd5b506147d88782880161423f565b91505092959194509250565b600080600080608085870312156147fa57600080fd5b84356148058161405d565b935060208501356148158161405d565b92506040850135915060608501356001600160401b0381111561483757600080fd5b6147d88782880161423f565b6000806040838503121561485657600080fd5b82356148618161405d565b915060208301356148718161405d565b809150509250929050565b600080600080600080600060a0888a03121561489757600080fd5b87356148a28161405d565b96506148b060208901614484565b955060408801356001600160401b03808211156148cc57600080fd5b6148d88b838c0161449a565b909750955060608a01359150808211156148f157600080fd5b506148fe8a828b0161449a565b90945092505060808801356149128161405d565b8091505092959891949750929550565b6000806000806000806080878903121561493b57600080fd5b86356149468161405d565b95506020870135945060408701356001600160401b038082111561452957600080fd5b60008060006040848603121561497e57600080fd5b8335925060208401356001600160401b0381111561499b57600080fd5b61419b8682870161449a565b600181811c908216806149bb57607f821691505b6020821081036149db57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b03831115614a8e57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215614aba57600080fd5b8151611877816142ae565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201614af057614af0614ac5565b5060000390565b634e487b7160e01b600052600160045260246000fd5b8082018281126000831280158216821582161715614b2d57614b2d614ac5565b505092915050565b818103600083128015838313168383128216171561308657613086614ac5565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613e9360a083018461401e565b600060208284031215614b9a57600080fd5b5051919050565b60006020808385031215614bb457600080fd5b82516001600160401b03811115614bca57600080fd5b8301601f81018513614bdb57600080fd5b8051614be9614439826143ce565b81815260059190911b82018301908381019087831115614c0857600080fd5b928401925b82841015613e93578351614c208161405d565b82529284019290840190614c0d565b80820180821115610b8e57610b8e614ac5565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060208284031215614ca257600080fd5b81516118778161405d565b81810381811115610b8e57610b8e614ac5565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614ceb57600080fd5b8351925060208401519150604084015190509250925092565b600060018201614d1657614d16614ac5565b5060010190565b60ff8281168282160390811115610b8e57610b8e614ac5565b600181815b80851115614d71578160001904821115614d5757614d57614ac5565b80851615614d6457918102915b93841c9390800290614d3b565b509250929050565b600082614d8857506001610b8e565b81614d9557506000610b8e565b8160018114614dab5760028114614db557614dd1565b6001915050610b8e565b60ff841115614dc657614dc6614ac5565b50506001821b610b8e565b5060208310610133831016604e8410600b8410161715614df4575081810a610b8e565b614dfe8383614d36565b8060001904821115614e1257614e12614ac5565b029392505050565b600061187760ff841683614d79565b600082614e4657634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610b8e57610b8e614ac5565b601f82111561159257600081815260208120601f850160051c81016020861015614e895750805b601f850160051c820191505b81811015614ea857828155600101614e95565b505050505050565b6001600160401b03831115614ec757614ec76141f9565b614edb83614ed583546149a7565b83614e62565b6000601f841160018114614f0f5760008515614ef75750838201355b600019600387901b1c1916600186901b178355610cfb565b600083815260209020601f19861690835b82811015614f405786850135825560209485019460019092019101614f20565b5086821015614f5d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201526000614f88606083018561401e565b8281036040840152611654818561401e565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090614fd59083018561401e565b82810360a0840152614fe7818561401e565b9998505050505050505050565b60008251615006818460208701613ffa565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201c0ee2e9740ddc65a56179173202e1ca9d1fe6288d57348cd8676c65f33dccc564736f6c63430008130033";
2139
+ const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620052e7380380620052e78339810160408190526200003591620000e1565b6001600160a01b0380851660805280831660a081905290821660c052604051859184918491907fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038216907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a250505060e092909252506200013d915050565b6001600160a01b0381168114620000de57600080fd5b50565b60008060008060808587031215620000f857600080fd5b84516200010581620000c8565b6020860151604087015191955093506200011f81620000c8565b60608601519092506200013281620000c8565b939692955090935050565b60805160a05160c05160e0516150dd6200020a600039600061071501526000818161069301526115490152600081816109cc01526114ac0152600081816104e201528181610ca801528181610d1701528181610fcc015281816110fc015281816111cb015281816113eb01528181611599015281816116e6015281816118860152818161196501528181611d6601528181611e3001528181611ec801528181611f3001528181611fb8015281816128800152818161291701528181613ae30152613d2201526150dd6000f3fe608060405234801561001057600080fd5b50600436106104125760003560e01c806366a12fb611610220578063b1f0b5be11610130578063d9d078d6116100b8578063ee719bc811610087578063ee719bc8146109b6578063ef43d2c6146109c7578063fad8b32a146109ee578063fc673c4f14610a01578063fe9d930314610a1457600080fd5b8063d9d078d614610929578063dd62ed3e1461093c578063eb3537cc14610975578063ec0d6343146109a357600080fd5b8063c780fd82116100ff578063c780fd82146108ca578063ca0c1e7f146108dd578063ca789464146108f0578063cf97256d14610903578063d95b63711461091657600080fd5b8063b1f0b5be1461087e578063b84cdd4a14610891578063bb0d196e146108a4578063c68d4283146108b757600080fd5b8063959b8c3f116101b35780639d876741116101825780639d8767411461081f578063a1b2bf8b14610832578063a3a7e7f314610845578063a457c2d714610858578063a9059cbb1461086b57600080fd5b8063959b8c3f146107e957806395d89b41146107fc5780639903ad38146108045780639bd9bbc61461080c57600080fd5b806379359f6f116101ef57806379359f6f1461079e57806383ba2525146107b15780638f283970146107c457806392081a47146107d757600080fd5b806366a12fb61461075d5780636c2d9f2f146107705780636e9960c31461078357806370a082311461078b57600080fd5b8063386fa221116103265780634c5c0c85116102ae57806356189cb41161027d57806356189cb4146106ea5780635b9d09cc146106fd5780636154b1021461071057806362aa52871461073757806362ad1b831461074a57600080fd5b80634c5c0c851461068e57806350d75d25146106b557806352d1902d146106bd578063556f0dc7146106e357600080fd5b806342fe0980116102f557806342fe09801461062257806345977d031461063557806346951954146106485780634b2763b31461065b5780634b61cc331461066e57600080fd5b8063386fa221146105d657806339509351146105e9578063397be931146105fc57806341b706be1461060f57600080fd5b80631863e809116103a9578063245887fc11610378578063245887fc146105405780632704839714610553578063282a050b146105665780632ec8eec71461058e578063313ce567146105c157600080fd5b80631863e809146104cd57806320bc4425146104e0578063222f5be01461051a57806323b872dd1461052d57600080fd5b806311bcc81e116103e557806311bcc81e1461048257806312a6a3f81461049557806316d055d6146104a857806318160ddd146104bb57600080fd5b806306e485381461041757806306fdde0314610435578063090c415e1461044a578063095ea7b31461045f575b600080fd5b61041f610a27565b60405161042c9190613fad565b60405180910390f35b61043d610a38565b60405161042c919061404a565b61045d6104583660046140bd565b610aca565b005b61047261046d366004614118565b610b7d565b604051901515815260200161042c565b61045d610490366004614144565b610b94565b61045d6104a336600461415d565b610bc3565b61045d6104b63660046141a8565b610ca6565b6003545b60405190815260200161042c565b61045d6104db3660046142bc565b610d02565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161042c565b61045d61052836600461434e565b610fa2565b61047261053b36600461434e565b610fb4565b61045d61054e366004614118565b610fca565b61045d61056136600461438f565b611043565b610579610574366004614144565b6110df565b6040805192835260208301919091520161042c565b6105a161059c3660046143b1565b6110f4565b60408051948552602085019390935291830152606082015260800161042c565b60125b60405160ff909116815260200161042c565b61041f6105e43660046143b1565b611197565b6104726105f7366004614118565b61123a565b61045d61060a3660046143f1565b611276565b61045d61061d3660046141a8565b61127f565b61045d6106303660046144db565b6112ab565b61045d610643366004614144565b61138c565b61045d6106563660046143b1565b6113b8565b61045d61066936600461434e565b611597565b61068161067c36600461456d565b611619565b60405161042c91906145b3565b6105027f000000000000000000000000000000000000000000000000000000000000000081565b61050261165e565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104bf565b60016104bf565b61045d6106f836600461434e565b611688565b61045d61070b3660046145eb565b611693565b6104bf7f000000000000000000000000000000000000000000000000000000000000000081565b61045d61074536600461434e565b6116e4565b61045d61075836600461463a565b61172d565b61045d61076b36600461434e565b6117db565b61068161077e3660046146d8565b6117fb565b61050261183d565b6104bf6107993660046143b1565b611855565b6104726107ac3660046143b1565b61187e565b61045d6107bf366004614118565b611906565b61045d6107d23660046143b1565b611932565b600e54600160a01b900460ff166105c4565b61045d6107f73660046143b1565b611a26565b61043d611a77565b61045d611a86565b61045d61081a3660046145eb565b611b48565b61045d61082d36600461470d565b611b9c565b61045d61084036600461415d565b611be2565b61045d6108533660046143b1565b611c8c565b610472610866366004614118565b611ca0565b610472610879366004614118565b611cef565b61045d61088c366004614765565b611cfd565b61047261089f366004614118565b611d0d565b6104726108b23660046143b1565b611d5e565b61045d6108c536600461470d565b611de6565b61045d6108d836600461434e565b611e2e565b61045d6108eb3660046147e4565b611ec6565b61045d6108fe366004614118565b611f2e565b61045d610911366004614118565b611fa3565b610472610924366004614843565b61208c565b610472610937366004614118565b61209a565b6104bf61094a366004614843565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b610988610983366004614118565b6120b4565b6040805193845260208401929092529082015260600161042c565b61045d6109b136600461487c565b6121ee565b600e546001600160a01b0316610502565b6105027f000000000000000000000000000000000000000000000000000000000000000081565b61045d6109fc3660046143b1565b6122c5565b61045d610a0f366004614922565b612316565b61045d610a22366004614969565b6123b7565b6060610a336012612408565b905090565b6060600f8054610a47906149a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610a73906149a7565b8015610ac05780601f10610a9557610100808354040283529160200191610ac0565b820191906000526020600020905b815481529060010190602001808311610aa357829003601f168201915b5050505050905090565b6000338585604051602001610ae1939291906149e1565b604051602081830303815290604052805190602001209050610b368184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061246e92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610b8a3384846124af565b5060015b92915050565b610bc033333384604051806020016040528060008152506040518060200160405280600081525061255f565b50565b6040513390600090610bdb9083908790602001614a2a565b60408051601f1981840301815291905280516020909101209050610bff818461271f565b15610c1d5760405163782a90fb60e11b815260040160405180910390fd5b610c5a8185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061246e92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610c9793929190614a67565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610cef5760405163c51efddd60e01b815260040160405180910390fd5b610cfb8484848461275b565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8a9190614aa8565b610da75760405163327fd99160e21b815260040160405180910390fd5b6000610db161287b565b90506001600160a01b038116610dc45750845b600085610dd15786610dd3565b815b905060008313610e7057610de683614adb565b610def856129c0565b14610dfc57610dfc614af7565b610e05846129c0565b6001600160a01b03821660009081526002602052604081208054909190610e2d908490614b0d565b90915550506001600160a01b03851660009081526002602052604081208054859290610e5a908490614b0d565b90915550610e6b9050858286612a2e565b610f3a565b8515610e7e57610e7e614af7565b82610e88856129c0565b610e929190614b0d565b6001600160a01b03831660009081526002602052604081208054909190610eba908490614b35565b90915550610ec99050846129c0565b6001600160a01b03881660009081526002602052604081208054909190610ef1908490614b0d565b90915550506001600160a01b03851660009081526002602052604081208054859290610f1e908490614b0d565b90915550610f2f9050828886612a2e565b610f3a828685612a2e565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610f8f959493929190614b55565b60405180910390a4505050505050505050565b610fae8384848461275b565b50505050565b6000610fc23385858561275b565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146110135760405163c51efddd60e01b815260040160405180910390fd5b61103f33838484604051806020016040528060008152506040518060200160405280600081525061255f565b5050565b604051339060009061105b9083908690602001614a2a565b60405160208183030381529060405280519060200120905061107d818461271f565b61109a5760405163dae1880960e01b815260040160405180910390fd5b6110a48184612a61565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806110eb83612a82565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117c9190614b88565b905061118885826120b4565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611212573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b8e9190810190614ba1565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610b8a918590611271908690614c2f565b6124af565b610bc081612b3e565b33301461129f57604051630fff4cc960e31b815260040160405180910390fd5b610cfb8385848461275b565b600054610100900460ff16158080156112cb5750600054600160ff909116105b806112e55750303b1580156112e5575060005460ff166001145b61130a5760405162461bcd60e51b815260040161130190614c42565b60405180910390fd5b6000805460ff19166001179055801561132d576000805461ff0019166101001790555b61133d8787878787876000612b49565b8015611383576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610bc0333333846040518060200160405280600081525060405180602001604052806000815250612c11565b60006113d06000805160206150118339815191525490565b905060006001600160a01b038216156113e9578161140b565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461143657604051630484acab60e01b815260040160405180910390fd5b61143f83612dc4565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561147d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a19190614c90565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806115745750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa15801561151a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153e9190614c90565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156115925760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146115e05760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546115929084908490611271908590614c2f565b60606000858585604051602001611632939291906149e1565b6040516020818303038152906040528051906020012090506116548184612ffe565b9695505050505050565b6000610a337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6115928383836124af565b610fae3333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612c11915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116885760405163c51efddd60e01b815260040160405180910390fd5b3361173a6012828a61308d565b6117575760405163f7f0222760e01b815260040160405180910390fd5b6117d18189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250613136915050565b5050505050505050565b33301461168857604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611812929190614a2a565b6040516020818303038152906040528051906020012090506118348184612ffe565b95945050505050565b6000610a336000805160206150118339815191525490565b600080611861836110f4565b5050509050600081126118745780611877565b60005b9392505050565b6000610b8e827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109379190614b88565b61103f33338484604051806020016040528060008152506040518060200160405280600081525061255f565b600061194a6000805160206150118339815191525490565b905060006001600160a01b038216156119635781611985565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146119b057604051630484acab60e01b815260040160405180910390fd5b60006119c86000805160206150118339815191525490565b90506119e08460008051602061501183398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611a33601282846131af565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a47906149a7565b600054610100900460ff1615808015611aa65750600054600160ff909116105b80611ac05750303b158015611ac0575060005460ff166001145b611adc5760405162461bcd60e51b815260040161130190614c42565b6000805460ff191660011790558015611aff576000805461ff0019166101001790555b8015610bc0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b610fae3333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506131369050565b333014611bbc57604051630fff4cc960e31b815260040160405180910390fd5b8051604080516000815260208101909152611592913391869186919015159086906132b3565b6040513390600090611bfa9083908790602001614a2a565b604051602081830303815290604052805190602001209050611c4f8185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061246e92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610c9793929190614a67565b61103f333383611c9b33611855565b61275b565b6000610b8a3384611271856040518060600160405280602a8152602001615031602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190613380565b60006118773333858561275b565b610fae33858560018087876133ac565b600080600080611d1d86866120b4565b9250925092506000611d45828411611d365760006129c0565b611d408385614cad565b6129c0565b611d4f9085614b0d565b60001315979650505050505050565b6000610b8e827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089f9190614b88565b333014611e0657604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526115929133918691869190151590819087906133ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611e775760405163c51efddd60e01b815260040160405180910390fd5b6115928383611271846040518060600160405280602a8152602001615031602a91396001600160a01b03808a166000908152601160209081526040808320938c16835292905220549190613380565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611f0f5760405163c51efddd60e01b815260040160405180910390fd5b610fae3385858585604051806020016040528060008152506001613136565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611f775760405163c51efddd60e01b815260040160405180910390fd5b61103f338384846040518060200160405280600081525060405180602001604052806000815250612c11565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015612007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202b9190614aa8565b6120485760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b03821660009081526002602052604090205461206c908290614b0d565b6001600160a01b0390921660009081526002602052604090209190915550565b60006118776012848461308d565b6000806120a784846120b4565b5050600013949350505050565b6001600160a01b0382166000908152600260205260408120549080806120d986611197565b905060005b81518110156121e55760008060008484815181106120fe576120fe614cc0565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa15801561215d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121819190614cd6565b919450925090506121928288614c2f565b965061219e8187614c2f565b95506121bb8183116121b15760006129c0565b611d408284614cad565b6121c5848a614b0d565b6121cf9190614b35565b9750505050806121de90614d04565b90506120de565b50509250925092565b600054610100900460ff161580801561220e5750600054600160ff909116105b806122285750303b158015612228575060005460ff166001145b6122445760405162461bcd60e51b815260040161130190614c42565b6000805460ff191660011790558015612267576000805461ff0019166101001790555b61227688888888888888612b49565b80156117d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336122d26012828461347a565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b336123236012828961308d565b6123405760405163f7f0222760e01b815260040160405180910390fd5b6113838188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061255f92505050565b6115923333338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805160208101909152908152925061255f915050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561246257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612444575b50505050509050919050565b60005b815181101561159257600082828151811061248e5761248e614cc0565b60200260200101519050808285015550806124a890614d04565b9050612471565b6001600160a01b0383166124d657604051638163862760e01b815260040160405180910390fd5b6001600160a01b0382166124fd576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600e546001600160a01b031661258857604051637bce7b2b60e11b815260040160405180910390fd5b60008061259485612a82565b915091506125ab88888387516000141588886132b3565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126189190614b88565b600e54909150612632906001600160a01b03168885613572565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561267b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269f9190614b88565b905060006126ad8284614cad565b90508085146126cf57604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d8560405161270a91815260200190565b60405180910390a25050505050505050505050565b6000805b828110156127515783810154801561274057600192505050610b8e565b5061274a81614d04565b9050612723565b5060009392505050565b60006001600160a01b0384166127845760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0383166127ab5760405163e219bd3960e01b815260040160405180910390fd5b60003390506127dc8186868660405180602001604052806000815250604051806020016040528060008152506135d5565b846001600160a01b0316866001600160a01b03161461286f5761286f8587611271866040518060600160405280602d815260200161507b602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020546133809092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129009190614c90565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ba9190614c90565b91505090565b60006001600160ff1b03821115612a2a5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401611301565b5090565b816001600160a01b0316836001600160a01b031660008051602061505b8339815191528360405161255291815260200190565b60005b8181101561159257600083820155612a7b81614d04565b9050612a64565b600e54600090819081906012600160a01b90910460ff161015612ae157600e54612ab790600160a01b900460ff166012614d1d565b612ac290600a614e1a565b9050612ace8185614e29565b9250612ada8184614e4b565b9150612b38565b600e546012600160a01b90910460ff161115612b3157600e54612b1090601290600160a01b900460ff16614d1d565b612b1b90600a614e1a565b9050612b278185614e4b565b9250839150612b38565b8391508192505b50915091565b610bc0601282613674565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612b7e858783614eb0565b506010612b8c838583614eb0565b50612ba38160008051602061501183398151915255565b612bac306136fe565b604051600080825290819060008051602061505b8339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612c3a57604051637bce7b2b60e11b815260040160405180910390fd5b600080612c4685612a82565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cbb9190614b88565b600e54909150612cd6906001600160a01b031689308661382c565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d439190614b88565b90506000612d518383614cad565b9050808514612d7357604051631c7c26d360e31b815260040160405180910390fd5b8651612d89908c908b9087901515808c8c6133ac565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161270a91815260200190565b6000612dee7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612e445760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401611301565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea69190614b88565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612f205760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401611301565b6001600160a01b0381163003612f785760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401611301565b612fa0817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611b3d565b6060816001600160401b03811115613018576130186141f9565b604051908082528060200260200182016040528015613041578160200160208202803683370190505b50905060005b828110156130865760008185015490508083838151811061306a5761306a614cc0565b60209081029190910101525061307f81614d04565b9050613047565b5092915050565b6000816001600160a01b0316836001600160a01b031614806130fc57506001600160a01b038316600090815260018501602052604090205460ff1680156130fc57506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610fc257506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b03861661315d5760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166131845760405163e219bd3960e01b815260040160405180910390fd5b613192878787878787613864565b6131a08787878787876135d5565b6113838787878787878761398b565b806001600160a01b0316826001600160a01b0316036132265760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401611301565b6001600160a01b038116600090815260018401602052604090205460ff161561327c576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b0385166132da57604051632e8aac6160e21b815260040160405180910390fd5b82156132ef576132ef86866000878686613864565b6132f98585613adb565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a409886858560405161334093929190614f6f565b60405180910390a36040518481526000906001600160a01b0387169060008051602061505b833981519152906020015b60405180910390a3505050505050565b600081848411156133a45760405162461bcd60e51b8152600401611301919061404a565b505050900390565b6001600160a01b0386166133d357604051630d24315760e01b815260040160405180910390fd5b6133dd8686613beb565b83156133f3576133f3876000888886868961398b565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d87858560405161343a93929190614f6f565b60405180910390a36040518581526001600160a01b0387169060009060008051602061505b8339815191529060200160405180910390a350505050505050565b336001600160a01b038216036134e55760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401611301565b6001600160a01b038116600090815260018401602052604090205460ff161561353f576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b03831660248201526044810182905261159290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613c45565b6135e885856135e3866129c0565b613d1a565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161363993929190614f6f565b60405180910390a4836001600160a01b0316856001600160a01b031660008051602061505b8339815191528560405161337091815260200190565b81541561368357613683614af7565b80516136959083906020840190613f3c565b5060005b81518110156115925760018360010160008484815181106136bc576136bc614cc0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556136f781614d04565b9050613699565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561377f57600080fd5b505af1158015613793573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b15801561381857600080fd5b505af1158015610cfb573d6000803e3d6000fd5b6040516001600160a01b0380851660248301528316604482015260648101829052610fae9085906323b872dd60e01b9060840161359e565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156138e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139099190614c90565b90506001600160a01b0381161561138357604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613950908a908a908a908a908a908a90600401614f9a565b600060405180830381600087803b15801561396a57600080fd5b505af115801561397e573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a309190614c90565b90506001600160a01b03811615613aac576040516223de2960e01b81526001600160a01b038216906223de2990613a75908b908b908b908b908b908b90600401614f9a565b600060405180830381600087803b158015613a8f57600080fd5b505af1158015613aa3573d6000803e3d6000fd5b505050506117d1565b81156117d1576001600160a01b0386163b156117d15760405163fe737d0560e01b815260040160405180910390fd5b6000613b63837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b3f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109839190614b88565b50509050613b70826129c0565b811215613b905760405163043b37d160e21b815260040160405180910390fd5b613b99826129c0565b6001600160a01b038416600090815260026020526040902054613bbc9190614b35565b6001600160a01b038416600090815260026020526040902055600354613be3908390614cad565b600355505050565b613bf4816129c0565b6001600160a01b038316600090815260026020526040902054613c179190614b0d565b6001600160a01b038316600090815260026020526040902055600354613c3e908290614c2f565b6003555050565b6000613c9a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613e199092919063ffffffff16565b9050805160001480613cbb575080806020019051810190613cbb9190614aa8565b6115925760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611301565b6000613d7e847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b3f573d6000803e3d6000fd5b5050905081811215613da357604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613dc7908390614b35565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613df7908390614b0d565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610fc2848460008585600080866001600160a01b03168587604051613e409190614ff4565b60006040518083038185875af1925050503d8060008114613e7d576040519150601f19603f3d011682016040523d82523d6000602084013e613e82565b606091505b5091509150613e9387838387613e9e565b979650505050505050565b60608315613f0d578251600003613f06576001600160a01b0385163b613f065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611301565b5081610fc2565b610fc28383815115613f225781518083602001fd5b8060405162461bcd60e51b8152600401611301919061404a565b828054828255906000526020600020908101928215613f91579160200282015b82811115613f9157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613f5c565b50612a2a9291505b80821115612a2a5760008155600101613f99565b6020808252825182820181905260009190848201906040850190845b81811015613fee5783516001600160a01b031683529284019291840191600101613fc9565b50909695505050505050565b60005b83811015614015578181015183820152602001613ffd565b50506000910152565b60008151808452614036816020860160208601613ffa565b601f01601f19169290920160200192915050565b602081526000611877602083018461401e565b6001600160a01b0381168114610bc057600080fd5b60008083601f84011261408457600080fd5b5081356001600160401b0381111561409b57600080fd5b6020830191508360208260051b85010111156140b657600080fd5b9250929050565b600080600080606085870312156140d357600080fd5b84356140de8161405d565b93506020850135925060408501356001600160401b0381111561410057600080fd5b61410c87828801614072565b95989497509550505050565b6000806040838503121561412b57600080fd5b82356141368161405d565b946020939093013593505050565b60006020828403121561415657600080fd5b5035919050565b60008060006040848603121561417257600080fd5b8335925060208401356001600160401b0381111561418f57600080fd5b61419b86828701614072565b9497909650939450505050565b600080600080608085870312156141be57600080fd5b84356141c98161405d565b935060208501356141d98161405d565b925060408501356141e98161405d565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614237576142376141f9565b604052919050565b600082601f83011261425057600080fd5b81356001600160401b03811115614269576142696141f9565b61427c601f8201601f191660200161420f565b81815284602083860101111561429157600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610bc057600080fd5b600080600080600080600060e0888a0312156142d757600080fd5b8735965060208801356001600160401b038111156142f457600080fd5b6143008a828b0161423f565b96505060408801356143118161405d565b94506060880135614321816142ae565b935060808801356143318161405d565b9699959850939692959460a0840135945060c09093013592915050565b60008060006060848603121561436357600080fd5b833561436e8161405d565b9250602084013561437e8161405d565b929592945050506040919091013590565b600080604083850312156143a257600080fd5b50508035926020909101359150565b6000602082840312156143c357600080fd5b81356118778161405d565b60006001600160401b038211156143e7576143e76141f9565b5060051b60200190565b6000602080838503121561440457600080fd5b82356001600160401b0381111561441a57600080fd5b8301601f8101851361442b57600080fd5b803561443e614439826143ce565b61420f565b81815260059190911b8201830190838101908783111561445d57600080fd5b928401925b82841015613e935783356144758161405d565b82529284019290840190614462565b803560ff8116811461449557600080fd5b919050565b60008083601f8401126144ac57600080fd5b5081356001600160401b038111156144c357600080fd5b6020830191508360208285010111156140b657600080fd5b600080600080600080608087890312156144f457600080fd5b86356144ff8161405d565b955061450d60208801614484565b945060408701356001600160401b038082111561452957600080fd5b6145358a838b0161449a565b9096509450606089013591508082111561454e57600080fd5b5061455b89828a0161449a565b979a9699509497509295939492505050565b6000806000806080858703121561458357600080fd5b843561458e8161405d565b9350602085013561459e8161405d565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b81811015613fee578351835292840192918401916001016145cf565b6000806000806060858703121561460157600080fd5b843561460c8161405d565b93506020850135925060408501356001600160401b0381111561462e57600080fd5b61410c8782880161449a565b600080600080600080600060a0888a03121561465557600080fd5b87356146608161405d565b965060208801356146708161405d565b95506040880135945060608801356001600160401b038082111561469357600080fd5b61469f8b838c0161449a565b909650945060808a01359150808211156146b857600080fd5b506146c58a828b0161449a565b989b979a50959850939692959293505050565b6000806000606084860312156146ed57600080fd5b83356146f88161405d565b95602085013595506040909401359392505050565b60008060006060848603121561472257600080fd5b833561472d8161405d565b92506020840135915060408401356001600160401b0381111561474f57600080fd5b61475b8682870161423f565b9150509250925092565b6000806000806080858703121561477b57600080fd5b84356147868161405d565b93506020850135925060408501356001600160401b03808211156147a957600080fd5b6147b58883890161423f565b935060608701359150808211156147cb57600080fd5b506147d88782880161423f565b91505092959194509250565b600080600080608085870312156147fa57600080fd5b84356148058161405d565b935060208501356148158161405d565b92506040850135915060608501356001600160401b0381111561483757600080fd5b6147d88782880161423f565b6000806040838503121561485657600080fd5b82356148618161405d565b915060208301356148718161405d565b809150509250929050565b600080600080600080600060a0888a03121561489757600080fd5b87356148a28161405d565b96506148b060208901614484565b955060408801356001600160401b03808211156148cc57600080fd5b6148d88b838c0161449a565b909750955060608a01359150808211156148f157600080fd5b506148fe8a828b0161449a565b90945092505060808801356149128161405d565b8091505092959891949750929550565b6000806000806000806080878903121561493b57600080fd5b86356149468161405d565b95506020870135945060408701356001600160401b038082111561452957600080fd5b60008060006040848603121561497e57600080fd5b8335925060208401356001600160401b0381111561499b57600080fd5b61419b8682870161449a565b600181811c908216806149bb57607f821691505b6020821081036149db57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b03831115614a8e57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215614aba57600080fd5b8151611877816142ae565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201614af057614af0614ac5565b5060000390565b634e487b7160e01b600052600160045260246000fd5b8082018281126000831280158216821582161715614b2d57614b2d614ac5565b505092915050565b818103600083128015838313168383128216171561308657613086614ac5565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613e9360a083018461401e565b600060208284031215614b9a57600080fd5b5051919050565b60006020808385031215614bb457600080fd5b82516001600160401b03811115614bca57600080fd5b8301601f81018513614bdb57600080fd5b8051614be9614439826143ce565b81815260059190911b82018301908381019087831115614c0857600080fd5b928401925b82841015613e93578351614c208161405d565b82529284019290840190614c0d565b80820180821115610b8e57610b8e614ac5565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060208284031215614ca257600080fd5b81516118778161405d565b81810381811115610b8e57610b8e614ac5565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614ceb57600080fd5b8351925060208401519150604084015190509250925092565b600060018201614d1657614d16614ac5565b5060010190565b60ff8281168282160390811115610b8e57610b8e614ac5565b600181815b80851115614d71578160001904821115614d5757614d57614ac5565b80851615614d6457918102915b93841c9390800290614d3b565b509250929050565b600082614d8857506001610b8e565b81614d9557506000610b8e565b8160018114614dab5760028114614db557614dd1565b6001915050610b8e565b60ff841115614dc657614dc6614ac5565b50506001821b610b8e565b5060208310610133831016604e8410600b8410161715614df4575081810a610b8e565b614dfe8383614d36565b8060001904821115614e1257614e12614ac5565b029392505050565b600061187760ff841683614d79565b600082614e4657634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610b8e57610b8e614ac5565b601f82111561159257600081815260208120601f850160051c81016020861015614e895750805b601f850160051c820191505b81811015614ea857828155600101614e95565b505050505050565b6001600160401b03831115614ec757614ec76141f9565b614edb83614ed583546149a7565b83614e62565b6000601f841160018114614f0f5760008515614ef75750838201355b600019600387901b1c1916600186901b178355610cfb565b600083815260209020601f19861690835b82811015614f405786850135825560209485019460019092019101614f20565b5086821015614f5d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201526000614f88606083018561401e565b8281036040840152611654818561401e565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090614fd59083018561401e565b82810360a0840152614fe7818561401e565b9998505050505050505050565b60008251615006818460208701613ffa565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e4531ce90c07f64fb538b191d41db41073ad2ad145dfda6b10584c6e2848d03964736f6c63430008130033";
2140
2140
  const isSuperArgs = (xs) => xs.length > 1;
2141
2141
  export class SuperTokenMock__factory extends ContractFactory {
2142
2142
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class SuperTokenStorageLayoutTester__factory extends ContractFact
12
12
  }): TransactionRequest;
13
13
  attach(address: string): SuperTokenStorageLayoutTester;
14
14
  connect(signer: Signer): SuperTokenStorageLayoutTester__factory;
15
- static readonly bytecode = "0x60e06040523480156200001157600080fd5b506040516200500f3803806200500f8339810160408190526200003491620000d9565b6001600160a01b0380841660805280831660a081905290821660c052604051849184918491907fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038216907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a25050505050506200012d565b6001600160a01b0381168114620000d657600080fd5b50565b600080600060608486031215620000ef57600080fd5b8351620000fc81620000c0565b60208501519093506200010f81620000c0565b60408501519092506200012281620000c0565b809150509250925092565b60805160a05160c051614e1f620001f06000396000818161064c01526114a101526000818161093f01526114040152600081816104c101528181610c1b01528181610c8a01528181610f2d0152818161105d0152818161112c01528181611343015281816114f101528181611639015281816117e4015281816118c301528181611cb401528181611d7e01528181611e1601528181611e7e01528181611f06015281816127ce015281816128650152818161399c0152613bdb0152614e1f6000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c80636e9960c311610215578063bb0d196e11610125578063dd62ed3e116100b8578063ef43d2c611610087578063ef43d2c61461093a578063f99a38c41461043c578063fad8b32a14610961578063fc673c4f14610974578063fe9d93031461098757600080fd5b8063dd62ed3e146108af578063eb3537cc146108e8578063ec0d634314610916578063ee719bc81461092957600080fd5b8063ca789464116100f4578063ca78946414610863578063cf97256d14610876578063d95b637114610889578063d9d078d61461089c57600080fd5b8063bb0d196e14610817578063c68d42831461082a578063c780fd821461083d578063ca0c1e7f1461085057600080fd5b806395d89b41116101a8578063a1b2bf8b11610177578063a1b2bf8b146107b8578063a3a7e7f3146107cb578063a457c2d7146107de578063a9059cbb146107f1578063b84cdd4a1461080457600080fd5b806395d89b41146107825780639903ad381461078a5780639bd9bbc6146107925780639d876741146107a557600080fd5b806383ba2525116101e457806383ba2525146107375780638f2839701461074a57806392081a471461075d578063959b8c3f1461076f57600080fd5b80636e9960c3146107025780636fed61fc1461070a57806370a082311461071157806379359f6f1461072457600080fd5b8063386fa221116103105780634c5c0c85116102a35780635b9d09cc116102725780635b9d09cc146106a357806362aa5287146106b657806362ad1b83146106c957806366a12fb6146106dc5780636c2d9f2f146106ef57600080fd5b80634c5c0c851461064757806350d75d251461066e57806352d1902d14610676578063556f0dc71461069c57600080fd5b806345977d03116102df57806345977d03146105ee57806346951954146106015780634b2763b3146106145780634b61cc331461062757600080fd5b8063386fa221146105a257806339509351146105b557806341b706be146105c857806342fe0980146105db57600080fd5b80631863e809116103885780632704839711610357578063270483971461051f578063282a050b146105325780632ec8eec71461055a578063313ce5671461058d57600080fd5b80631863e809146104ac57806320bc4425146104bf57806323b872dd146104f9578063245887fc1461050c57600080fd5b806311bcc81e116103c457806311bcc81e1461046157806312a6a3f81461047457806316d055d61461048757806318160ddd1461049a57600080fd5b806306e48538146103f657806306fdde0314610414578063090c415e14610429578063095ea7b31461043e575b600080fd5b6103fe61099a565b60405161040b9190613df5565b60405180910390f35b61041c6109ab565b60405161040b9190613e92565b61043c610437366004613f05565b610a3d565b005b61045161044c366004613f60565b610af0565b604051901515815260200161040b565b61043c61046f366004613f8c565b610b07565b61043c610482366004613fa5565b610b36565b61043c610495366004613ff0565b610c19565b6003545b60405190815260200161040b565b61043c6104ba366004614104565b610c75565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161040b565b610451610507366004614196565b610f15565b61043c61051a366004613f60565b610f2b565b61043c61052d3660046141d7565b610fa4565b610545610540366004613f8c565b611040565b6040805192835260208301919091520161040b565b61056d6105683660046141f9565b611055565b60408051948552602085019390935291830152606082015260800161040b565b60125b60405160ff909116815260200161040b565b6103fe6105b03660046141f9565b6110f8565b6104516105c3366004613f60565b61119b565b61043c6105d6366004613ff0565b6111d7565b61043c6105e936600461426d565b611203565b61043c6105fc366004613f8c565b6112e4565b61043c61060f3660046141f9565b611310565b61043c610622366004614196565b6114ef565b61063a6106353660046142ff565b611571565b60405161040b9190614345565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b6104e16115b6565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001961049e565b600161049e565b61043c6106b136600461437d565b6115e0565b61043c6106c4366004614196565b611637565b61043c6106d73660046143cc565b61168b565b61043c6106ea366004614196565b611739565b61063a6106fd36600461446a565b611759565b6104e161179b565b601f61049e565b61049e61071f3660046141f9565b6117b3565b6104516107323660046141f9565b6117dc565b61043c610745366004613f60565b611864565b61043c6107583660046141f9565b611890565b600e54600160a01b900460ff16610590565b61043c61077d3660046141f9565b611984565b61041c6119d5565b61043c6119e4565b61043c6107a036600461437d565b611aa6565b61043c6107b336600461449f565b611afa565b61043c6107c6366004613fa5565b611b40565b61043c6107d93660046141f9565b611bea565b6104516107ec366004613f60565b611bfe565b6104516107ff366004613f60565b611c4d565b610451610812366004613f60565b611c5b565b6104516108253660046141f9565b611cac565b61043c61083836600461449f565b611d34565b61043c61084b366004614196565b611d7c565b61043c61085e3660046144f7565b611e14565b61043c610871366004613f60565b611e7c565b61043c610884366004613f60565b611ef1565b610451610897366004614562565b611fda565b6104516108aa366004613f60565b611fe8565b61049e6108bd366004614562565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b6108fb6108f6366004613f60565b612002565b6040805193845260208401929092529082015260600161040b565b61043c61092436600461459b565b61213c565b600e546001600160a01b03166104e1565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b61043c61096f3660046141f9565b612213565b61043c610982366004614641565b612264565b61043c610995366004614688565b612305565b60606109a66012612356565b905090565b6060600f80546109ba906146c6565b80601f01602080910402602001604051908101604052809291908181526020018280546109e6906146c6565b8015610a335780601f10610a0857610100808354040283529160200191610a33565b820191906000526020600020905b815481529060010190602001808311610a1657829003601f168201915b5050505050905090565b6000338585604051602001610a5493929190614700565b604051602081830303815290604052805190602001209050610aa9818484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610afd3384846123fd565b5060015b92915050565b610b333333338460405180602001604052806000815250604051806020016040528060008152506124ad565b50565b6040513390600090610b4e9083908790602001614749565b60408051601f1981840301815291905280516020909101209050610b72818461266d565b15610b905760405163782a90fb60e11b815260040160405180910390fd5b610bcd818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610c0a93929190614786565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610c625760405163c51efddd60e01b815260040160405180910390fd5b610c6e848484846126a9565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd91906147c7565b610d1a5760405163327fd99160e21b815260040160405180910390fd5b6000610d246127c9565b90506001600160a01b038116610d375750845b600085610d445786610d46565b815b905060008313610de357610d59836147fa565b610d628561290e565b14610d6f57610d6f614816565b610d788461290e565b6001600160a01b03821660009081526002602052604081208054909190610da090849061482c565b90915550506001600160a01b03851660009081526002602052604081208054859290610dcd90849061482c565b90915550610dde905085828661297c565b610ead565b8515610df157610df1614816565b82610dfb8561290e565b610e05919061482c565b6001600160a01b03831660009081526002602052604081208054909190610e2d908490614854565b90915550610e3c90508461290e565b6001600160a01b03881660009081526002602052604081208054909190610e6490849061482c565b90915550506001600160a01b03851660009081526002602052604081208054859290610e9190849061482c565b90915550610ea2905082888661297c565b610ead82868561297c565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610f02959493929190614874565b60405180910390a4505050505050505050565b6000610f23338585856126a9565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610f745760405163c51efddd60e01b815260040160405180910390fd5b610fa03383848460405180602001604052806000815250604051806020016040528060008152506124ad565b5050565b6040513390600090610fbc9083908690602001614749565b604051602081830303815290604052805190602001209050610fde818461266d565b610ffb5760405163dae1880960e01b815260040160405180910390fd5b61100581846129af565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b60008061104c836129d0565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dd91906148a7565b90506110e98582612002565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611173573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b0191908101906148c0565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610afd9185906111d2908690614971565b6123fd565b3330146111f757604051630fff4cc960e31b815260040160405180910390fd5b610c6e838584846126a9565b600054610100900460ff16158080156112235750600054600160ff909116105b8061123d5750303b15801561123d575060005460ff166001145b6112625760405162461bcd60e51b815260040161125990614984565b60405180910390fd5b6000805460ff191660011790558015611285576000805461ff0019166101001790555b6112958787878787876000612a8c565b80156112db576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610b33333333846040518060200160405280600081525060405180602001604052806000815250612b54565b6000611328600080516020614d538339815191525490565b905060006001600160a01b038216156113415781611363565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461138e57604051630484acab60e01b815260040160405180910390fd5b61139783612d07565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f991906149d2565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806114cc5750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa158015611472573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149691906149d2565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156114ea5760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146115385760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546114ea90849084906111d2908590614971565b6060600085858560405160200161158a93929190614700565b6040516020818303038152906040528051906020012090506115ac8184612f41565b9695505050505050565b60006109a67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6116313333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612b54915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116805760405163c51efddd60e01b815260040160405180910390fd5b6114ea8383836123fd565b336116986012828a612fd0565b6116b55760405163f7f0222760e01b815260040160405180910390fd5b61172f8189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250613079915050565b5050505050505050565b33301461168057604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611770929190614749565b6040516020818303038152906040528051906020012090506117928184612f41565b95945050505050565b60006109a6600080516020614d538339815191525490565b6000806117bf83611055565b5050509050600081126117d257806117d5565b60005b9392505050565b6000610b01827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611840573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa91906148a7565b610fa03333848460405180602001604052806000815250604051806020016040528060008152506124ad565b60006118a8600080516020614d538339815191525490565b905060006001600160a01b038216156118c157816118e3565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461190e57604051630484acab60e01b815260040160405180910390fd5b6000611926600080516020614d538339815191525490565b905061193e84600080516020614d5383398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611991601282846130f2565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546109ba906146c6565b600054610100900460ff1615808015611a045750600054600160ff909116105b80611a1e5750303b158015611a1e575060005460ff166001145b611a3a5760405162461bcd60e51b815260040161125990614984565b6000805460ff191660011790558015611a5d576000805461ff0019166101001790555b8015610b33576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6116313333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506130799050565b333014611b1a57604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526114ea913391869186919015159086906131f6565b6040513390600090611b589083908790602001614749565b604051602081830303815290604052805190602001209050611bad818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610c0a93929190614786565b610fa0333383611bf9336117b3565b6126a9565b6000610afd33846111d2856040518060600160405280602a8152602001614d73602a91393360009081526011602090815260408083206001600160a01b038d16845290915290205491906132c3565b60006117d5333385856126a9565b600080600080611c6b8686612002565b9250925092506000611c93828411611c8457600061290e565b611c8e83856149ef565b61290e565b611c9d908561482c565b60001315979650505050505050565b6000610b01827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081291906148a7565b333014611d5457604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526114ea9133918691869190151590819087906132ef565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611dc55760405163c51efddd60e01b815260040160405180910390fd5b6114ea83836111d2846040518060600160405280602a8152602001614d73602a91396001600160a01b03808a166000908152601160209081526040808320938c168352929052205491906132c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611e5d5760405163c51efddd60e01b815260040160405180910390fd5b6116313385858585604051806020016040528060008152506001613079565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611ec55760405163c51efddd60e01b815260040160405180910390fd5b610fa0338384846040518060200160405280600081525060405180602001604052806000815250612b54565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7991906147c7565b611f965760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b038216600090815260026020526040902054611fba90829061482c565b6001600160a01b0390921660009081526002602052604090209190915550565b60006117d560128484612fd0565b600080611ff58484612002565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080612027866110f8565b905060005b815181101561213357600080600084848151811061204c5761204c614a02565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa1580156120ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cf9190614a18565b919450925090506120e08288614971565b96506120ec8187614971565b95506121098183116120ff57600061290e565b611c8e82846149ef565b612113848a61482c565b61211d9190614854565b97505050508061212c90614a46565b905061202c565b50509250925092565b600054610100900460ff161580801561215c5750600054600160ff909116105b806121765750303b158015612176575060005460ff166001145b6121925760405162461bcd60e51b815260040161125990614984565b6000805460ff1916600117905580156121b5576000805461ff0019166101001790555b6121c488888888888888612a8c565b801561172f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b33612220601282846133bd565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b3361227160128289612fd0565b61228e5760405163f7f0222760e01b815260040160405180910390fd5b6112db8188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506124ad92505050565b6114ea3333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080516020810190915290815292506124ad915050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156123b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612392575b50505050509050919050565b60005b81518110156114ea5760008282815181106123dc576123dc614a02565b60200260200101519050808285015550806123f690614a46565b90506123bf565b6001600160a01b03831661242457604051638163862760e01b815260040160405180910390fd5b6001600160a01b03821661244b576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600e546001600160a01b03166124d657604051637bce7b2b60e11b815260040160405180910390fd5b6000806124e2856129d0565b915091506124f988888387516000141588886131f6565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612542573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256691906148a7565b600e54909150612580906001600160a01b031688856134b5565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ed91906148a7565b905060006125fb82846149ef565b905080851461261d57604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d8560405161265891815260200190565b60405180910390a25050505050505050505050565b6000805b8281101561269f5783810154801561268e57600192505050610b01565b5061269881614a46565b9050612671565b5060009392505050565b60006001600160a01b0384166126d25760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0383166126f95760405163e219bd3960e01b815260040160405180910390fd5b600033905061272a818686866040518060200160405280600081525060405180602001604052806000815250613518565b846001600160a01b0316866001600160a01b0316146127bd576127bd85876111d2866040518060600160405280602d8152602001614dbd602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020546132c39092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284e91906149d2565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa1580156128e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290891906149d2565b91505090565b60006001600160ff1b038211156129785760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401611259565b5090565b816001600160a01b0316836001600160a01b0316600080516020614d9d833981519152836040516124a091815260200190565b60005b818110156114ea576000838201556129c981614a46565b90506129b2565b600e54600090819081906012600160a01b90910460ff161015612a2f57600e54612a0590600160a01b900460ff166012614a5f565b612a1090600a614b5c565b9050612a1c8185614b6b565b9250612a288184614b8d565b9150612a86565b600e546012600160a01b90910460ff161115612a7f57600e54612a5e90601290600160a01b900460ff16614a5f565b612a6990600a614b5c565b9050612a758185614b8d565b9250839150612a86565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612ac1858783614bf2565b506010612acf838583614bf2565b50612ae681600080516020614d5383398151915255565b612aef306135b7565b6040516000808252908190600080516020614d9d8339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612b7d57604051637bce7b2b60e11b815260040160405180910390fd5b600080612b89856129d0565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfe91906148a7565b600e54909150612c19906001600160a01b03168930866136e5565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8691906148a7565b90506000612c9483836149ef565b9050808514612cb657604051631c7c26d360e31b815260040160405180910390fd5b8651612ccc908c908b9087901515808c8c6132ef565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161265891815260200190565b6000612d317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612d875760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401611259565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de991906148a7565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612e635760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401611259565b6001600160a01b0381163003612ebb5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401611259565b612ee3817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611a9b565b6060816001600160401b03811115612f5b57612f5b614041565b604051908082528060200260200182016040528015612f84578160200160208202803683370190505b50905060005b82811015612fc957600081850154905080838381518110612fad57612fad614a02565b602090810291909101015250612fc281614a46565b9050612f8a565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061303f57506001600160a01b038316600090815260018501602052604090205460ff16801561303f57506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610f2357506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166130a05760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166130c75760405163e219bd3960e01b815260040160405180910390fd5b6130d587878787878761371d565b6130e3878787878787613518565b6112db87878787878787613844565b806001600160a01b0316826001600160a01b0316036131695760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401611259565b6001600160a01b038116600090815260018401602052604090205460ff16156131bf576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661321d57604051632e8aac6160e21b815260040160405180910390fd5b8215613232576132328686600087868661371d565b61323c8585613994565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a409886858560405161328393929190614cb1565b60405180910390a36040518481526000906001600160a01b03871690600080516020614d9d833981519152906020015b60405180910390a3505050505050565b600081848411156132e75760405162461bcd60e51b81526004016112599190613e92565b505050900390565b6001600160a01b03861661331657604051630d24315760e01b815260040160405180910390fd5b6133208686613aa4565b8315613336576133368760008888868689613844565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d87858560405161337d93929190614cb1565b60405180910390a36040518581526001600160a01b03871690600090600080516020614d9d8339815191529060200160405180910390a350505050505050565b336001600160a01b038216036134285760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401611259565b6001600160a01b038116600090815260018401602052604090205460ff1615613482576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b0383166024820152604481018290526114ea90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613afe565b61352b85856135268661290e565b613bd3565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161357c93929190614cb1565b60405180910390a4836001600160a01b0316856001600160a01b0316600080516020614d9d833981519152856040516132b391815260200190565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561363857600080fd5b505af115801561364c573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156136d157600080fd5b505af1158015610c6e573d6000803e3d6000fd5b6040516001600160a01b03808516602483015283166044820152606481018290526116319085906323b872dd60e01b906084016134e1565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa15801561379e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c291906149d2565b90506001600160a01b038116156112db57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613809908a908a908a908a908a908a90600401614cdc565b600060405180830381600087803b15801561382357600080fd5b505af1158015613837573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156138c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e991906149d2565b90506001600160a01b03811615613965576040516223de2960e01b81526001600160a01b038216906223de299061392e908b908b908b908b908b908b90600401614cdc565b600060405180830381600087803b15801561394857600080fd5b505af115801561395c573d6000803e3d6000fd5b5050505061172f565b811561172f576001600160a01b0386163b1561172f5760405163fe737d0560e01b815260040160405180910390fd5b6000613a1c837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f691906148a7565b50509050613a298261290e565b811215613a495760405163043b37d160e21b815260040160405180910390fd5b613a528261290e565b6001600160a01b038416600090815260026020526040902054613a759190614854565b6001600160a01b038416600090815260026020526040902055600354613a9c9083906149ef565b600355505050565b613aad8161290e565b6001600160a01b038316600090815260026020526040902054613ad0919061482c565b6001600160a01b038316600090815260026020526040902055600354613af7908290614971565b6003555050565b6000613b53826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613cd29092919063ffffffff16565b9050805160001480613b74575080806020019051810190613b7491906147c7565b6114ea5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611259565b6000613c37847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139f8573d6000803e3d6000fd5b5050905081811215613c5c57604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613c80908390614854565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613cb090839061482c565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610f23848460008585600080866001600160a01b03168587604051613cf99190614d36565b60006040518083038185875af1925050503d8060008114613d36576040519150601f19603f3d011682016040523d82523d6000602084013e613d3b565b606091505b5091509150613d4c87838387613d57565b979650505050505050565b60608315613dc6578251600003613dbf576001600160a01b0385163b613dbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611259565b5081610f23565b610f238383815115613ddb5781518083602001fd5b8060405162461bcd60e51b81526004016112599190613e92565b6020808252825182820181905260009190848201906040850190845b81811015613e365783516001600160a01b031683529284019291840191600101613e11565b50909695505050505050565b60005b83811015613e5d578181015183820152602001613e45565b50506000910152565b60008151808452613e7e816020860160208601613e42565b601f01601f19169290920160200192915050565b6020815260006117d56020830184613e66565b6001600160a01b0381168114610b3357600080fd5b60008083601f840112613ecc57600080fd5b5081356001600160401b03811115613ee357600080fd5b6020830191508360208260051b8501011115613efe57600080fd5b9250929050565b60008060008060608587031215613f1b57600080fd5b8435613f2681613ea5565b93506020850135925060408501356001600160401b03811115613f4857600080fd5b613f5487828801613eba565b95989497509550505050565b60008060408385031215613f7357600080fd5b8235613f7e81613ea5565b946020939093013593505050565b600060208284031215613f9e57600080fd5b5035919050565b600080600060408486031215613fba57600080fd5b8335925060208401356001600160401b03811115613fd757600080fd5b613fe386828701613eba565b9497909650939450505050565b6000806000806080858703121561400657600080fd5b843561401181613ea5565b9350602085013561402181613ea5565b9250604085013561403181613ea5565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561407f5761407f614041565b604052919050565b600082601f83011261409857600080fd5b81356001600160401b038111156140b1576140b1614041565b6140c4601f8201601f1916602001614057565b8181528460208386010111156140d957600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610b3357600080fd5b600080600080600080600060e0888a03121561411f57600080fd5b8735965060208801356001600160401b0381111561413c57600080fd5b6141488a828b01614087565b965050604088013561415981613ea5565b94506060880135614169816140f6565b9350608088013561417981613ea5565b9699959850939692959460a0840135945060c09093013592915050565b6000806000606084860312156141ab57600080fd5b83356141b681613ea5565b925060208401356141c681613ea5565b929592945050506040919091013590565b600080604083850312156141ea57600080fd5b50508035926020909101359150565b60006020828403121561420b57600080fd5b81356117d581613ea5565b803560ff8116811461422757600080fd5b919050565b60008083601f84011261423e57600080fd5b5081356001600160401b0381111561425557600080fd5b602083019150836020828501011115613efe57600080fd5b6000806000806000806080878903121561428657600080fd5b863561429181613ea5565b955061429f60208801614216565b945060408701356001600160401b03808211156142bb57600080fd5b6142c78a838b0161422c565b909650945060608901359150808211156142e057600080fd5b506142ed89828a0161422c565b979a9699509497509295939492505050565b6000806000806080858703121561431557600080fd5b843561432081613ea5565b9350602085013561433081613ea5565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b81811015613e3657835183529284019291840191600101614361565b6000806000806060858703121561439357600080fd5b843561439e81613ea5565b93506020850135925060408501356001600160401b038111156143c057600080fd5b613f548782880161422c565b600080600080600080600060a0888a0312156143e757600080fd5b87356143f281613ea5565b9650602088013561440281613ea5565b95506040880135945060608801356001600160401b038082111561442557600080fd5b6144318b838c0161422c565b909650945060808a013591508082111561444a57600080fd5b506144578a828b0161422c565b989b979a50959850939692959293505050565b60008060006060848603121561447f57600080fd5b833561448a81613ea5565b95602085013595506040909401359392505050565b6000806000606084860312156144b457600080fd5b83356144bf81613ea5565b92506020840135915060408401356001600160401b038111156144e157600080fd5b6144ed86828701614087565b9150509250925092565b6000806000806080858703121561450d57600080fd5b843561451881613ea5565b9350602085013561452881613ea5565b92506040850135915060608501356001600160401b0381111561454a57600080fd5b61455687828801614087565b91505092959194509250565b6000806040838503121561457557600080fd5b823561458081613ea5565b9150602083013561459081613ea5565b809150509250929050565b600080600080600080600060a0888a0312156145b657600080fd5b87356145c181613ea5565b96506145cf60208901614216565b955060408801356001600160401b03808211156145eb57600080fd5b6145f78b838c0161422c565b909750955060608a013591508082111561461057600080fd5b5061461d8a828b0161422c565b909450925050608088013561463181613ea5565b8091505092959891949750929550565b6000806000806000806080878903121561465a57600080fd5b863561466581613ea5565b95506020870135945060408701356001600160401b03808211156142bb57600080fd5b60008060006040848603121561469d57600080fd5b8335925060208401356001600160401b038111156146ba57600080fd5b613fe38682870161422c565b600181811c908216806146da57607f821691505b6020821081036146fa57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b038311156147ad57600080fd5b8260051b8085606085013791909101606001949350505050565b6000602082840312156147d957600080fd5b81516117d5816140f6565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b820161480f5761480f6147e4565b5060000390565b634e487b7160e01b600052600160045260246000fd5b808201828112600083128015821682158216171561484c5761484c6147e4565b505092915050565b8181036000831280158383131683831282161715612fc957612fc96147e4565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613d4c60a0830184613e66565b6000602082840312156148b957600080fd5b5051919050565b600060208083850312156148d357600080fd5b82516001600160401b03808211156148ea57600080fd5b818501915085601f8301126148fe57600080fd5b81518181111561491057614910614041565b8060051b9150614921848301614057565b818152918301840191848101908884111561493b57600080fd5b938501935b83851015614965578451925061495583613ea5565b8282529385019390850190614940565b98975050505050505050565b80820180821115610b0157610b016147e4565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156149e457600080fd5b81516117d581613ea5565b81810381811115610b0157610b016147e4565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614a2d57600080fd5b8351925060208401519150604084015190509250925092565b600060018201614a5857614a586147e4565b5060010190565b60ff8281168282160390811115610b0157610b016147e4565b600181815b80851115614ab3578160001904821115614a9957614a996147e4565b80851615614aa657918102915b93841c9390800290614a7d565b509250929050565b600082614aca57506001610b01565b81614ad757506000610b01565b8160018114614aed5760028114614af757614b13565b6001915050610b01565b60ff841115614b0857614b086147e4565b50506001821b610b01565b5060208310610133831016604e8410600b8410161715614b36575081810a610b01565b614b408383614a78565b8060001904821115614b5457614b546147e4565b029392505050565b60006117d560ff841683614abb565b600082614b8857634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610b0157610b016147e4565b601f8211156114ea57600081815260208120601f850160051c81016020861015614bcb5750805b601f850160051c820191505b81811015614bea57828155600101614bd7565b505050505050565b6001600160401b03831115614c0957614c09614041565b614c1d83614c1783546146c6565b83614ba4565b6000601f841160018114614c515760008515614c395750838201355b600019600387901b1c1916600186901b178355610c6e565b600083815260209020601f19861690835b82811015614c825786850135825560209485019460019092019101614c62565b5086821015614c9f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201526000614cca6060830185613e66565b82810360408401526115ac8185613e66565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090614d1790830185613e66565b82810360a0840152614d298185613e66565b9998505050505050505050565b60008251614d48818460208701613e42565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220028278dc3511add97e71209a4ccb438bf6652c1efb2426e307cc05d9102daedd64736f6c63430008130033";
15
+ static readonly bytecode = "0x60e06040523480156200001157600080fd5b506040516200500f3803806200500f8339810160408190526200003491620000d9565b6001600160a01b0380841660805280831660a081905290821660c052604051849184918491907fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038216907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a25050505050506200012d565b6001600160a01b0381168114620000d657600080fd5b50565b600080600060608486031215620000ef57600080fd5b8351620000fc81620000c0565b60208501519093506200010f81620000c0565b60408501519092506200012281620000c0565b809150509250925092565b60805160a05160c051614e1f620001f06000396000818161064c01526114a101526000818161093f01526114040152600081816104c101528181610c1b01528181610c8a01528181610f2d0152818161105d0152818161112c01528181611343015281816114f101528181611639015281816117e4015281816118c301528181611cb401528181611d7e01528181611e1601528181611e7e01528181611f06015281816127ce015281816128650152818161399c0152613bdb0152614e1f6000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c80636e9960c311610215578063bb0d196e11610125578063dd62ed3e116100b8578063ef43d2c611610087578063ef43d2c61461093a578063f99a38c41461043c578063fad8b32a14610961578063fc673c4f14610974578063fe9d93031461098757600080fd5b8063dd62ed3e146108af578063eb3537cc146108e8578063ec0d634314610916578063ee719bc81461092957600080fd5b8063ca789464116100f4578063ca78946414610863578063cf97256d14610876578063d95b637114610889578063d9d078d61461089c57600080fd5b8063bb0d196e14610817578063c68d42831461082a578063c780fd821461083d578063ca0c1e7f1461085057600080fd5b806395d89b41116101a8578063a1b2bf8b11610177578063a1b2bf8b146107b8578063a3a7e7f3146107cb578063a457c2d7146107de578063a9059cbb146107f1578063b84cdd4a1461080457600080fd5b806395d89b41146107825780639903ad381461078a5780639bd9bbc6146107925780639d876741146107a557600080fd5b806383ba2525116101e457806383ba2525146107375780638f2839701461074a57806392081a471461075d578063959b8c3f1461076f57600080fd5b80636e9960c3146107025780636fed61fc1461070a57806370a082311461071157806379359f6f1461072457600080fd5b8063386fa221116103105780634c5c0c85116102a35780635b9d09cc116102725780635b9d09cc146106a357806362aa5287146106b657806362ad1b83146106c957806366a12fb6146106dc5780636c2d9f2f146106ef57600080fd5b80634c5c0c851461064757806350d75d251461066e57806352d1902d14610676578063556f0dc71461069c57600080fd5b806345977d03116102df57806345977d03146105ee57806346951954146106015780634b2763b3146106145780634b61cc331461062757600080fd5b8063386fa221146105a257806339509351146105b557806341b706be146105c857806342fe0980146105db57600080fd5b80631863e809116103885780632704839711610357578063270483971461051f578063282a050b146105325780632ec8eec71461055a578063313ce5671461058d57600080fd5b80631863e809146104ac57806320bc4425146104bf57806323b872dd146104f9578063245887fc1461050c57600080fd5b806311bcc81e116103c457806311bcc81e1461046157806312a6a3f81461047457806316d055d61461048757806318160ddd1461049a57600080fd5b806306e48538146103f657806306fdde0314610414578063090c415e14610429578063095ea7b31461043e575b600080fd5b6103fe61099a565b60405161040b9190613df5565b60405180910390f35b61041c6109ab565b60405161040b9190613e92565b61043c610437366004613f05565b610a3d565b005b61045161044c366004613f60565b610af0565b604051901515815260200161040b565b61043c61046f366004613f8c565b610b07565b61043c610482366004613fa5565b610b36565b61043c610495366004613ff0565b610c19565b6003545b60405190815260200161040b565b61043c6104ba366004614104565b610c75565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161040b565b610451610507366004614196565b610f15565b61043c61051a366004613f60565b610f2b565b61043c61052d3660046141d7565b610fa4565b610545610540366004613f8c565b611040565b6040805192835260208301919091520161040b565b61056d6105683660046141f9565b611055565b60408051948552602085019390935291830152606082015260800161040b565b60125b60405160ff909116815260200161040b565b6103fe6105b03660046141f9565b6110f8565b6104516105c3366004613f60565b61119b565b61043c6105d6366004613ff0565b6111d7565b61043c6105e936600461426d565b611203565b61043c6105fc366004613f8c565b6112e4565b61043c61060f3660046141f9565b611310565b61043c610622366004614196565b6114ef565b61063a6106353660046142ff565b611571565b60405161040b9190614345565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b6104e16115b6565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001961049e565b600161049e565b61043c6106b136600461437d565b6115e0565b61043c6106c4366004614196565b611637565b61043c6106d73660046143cc565b61168b565b61043c6106ea366004614196565b611739565b61063a6106fd36600461446a565b611759565b6104e161179b565b601f61049e565b61049e61071f3660046141f9565b6117b3565b6104516107323660046141f9565b6117dc565b61043c610745366004613f60565b611864565b61043c6107583660046141f9565b611890565b600e54600160a01b900460ff16610590565b61043c61077d3660046141f9565b611984565b61041c6119d5565b61043c6119e4565b61043c6107a036600461437d565b611aa6565b61043c6107b336600461449f565b611afa565b61043c6107c6366004613fa5565b611b40565b61043c6107d93660046141f9565b611bea565b6104516107ec366004613f60565b611bfe565b6104516107ff366004613f60565b611c4d565b610451610812366004613f60565b611c5b565b6104516108253660046141f9565b611cac565b61043c61083836600461449f565b611d34565b61043c61084b366004614196565b611d7c565b61043c61085e3660046144f7565b611e14565b61043c610871366004613f60565b611e7c565b61043c610884366004613f60565b611ef1565b610451610897366004614562565b611fda565b6104516108aa366004613f60565b611fe8565b61049e6108bd366004614562565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b6108fb6108f6366004613f60565b612002565b6040805193845260208401929092529082015260600161040b565b61043c61092436600461459b565b61213c565b600e546001600160a01b03166104e1565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b61043c61096f3660046141f9565b612213565b61043c610982366004614641565b612264565b61043c610995366004614688565b612305565b60606109a66012612356565b905090565b6060600f80546109ba906146c6565b80601f01602080910402602001604051908101604052809291908181526020018280546109e6906146c6565b8015610a335780601f10610a0857610100808354040283529160200191610a33565b820191906000526020600020905b815481529060010190602001808311610a1657829003601f168201915b5050505050905090565b6000338585604051602001610a5493929190614700565b604051602081830303815290604052805190602001209050610aa9818484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610afd3384846123fd565b5060015b92915050565b610b333333338460405180602001604052806000815250604051806020016040528060008152506124ad565b50565b6040513390600090610b4e9083908790602001614749565b60408051601f1981840301815291905280516020909101209050610b72818461266d565b15610b905760405163782a90fb60e11b815260040160405180910390fd5b610bcd818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610c0a93929190614786565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610c625760405163c51efddd60e01b815260040160405180910390fd5b610c6e848484846126a9565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd91906147c7565b610d1a5760405163327fd99160e21b815260040160405180910390fd5b6000610d246127c9565b90506001600160a01b038116610d375750845b600085610d445786610d46565b815b905060008313610de357610d59836147fa565b610d628561290e565b14610d6f57610d6f614816565b610d788461290e565b6001600160a01b03821660009081526002602052604081208054909190610da090849061482c565b90915550506001600160a01b03851660009081526002602052604081208054859290610dcd90849061482c565b90915550610dde905085828661297c565b610ead565b8515610df157610df1614816565b82610dfb8561290e565b610e05919061482c565b6001600160a01b03831660009081526002602052604081208054909190610e2d908490614854565b90915550610e3c90508461290e565b6001600160a01b03881660009081526002602052604081208054909190610e6490849061482c565b90915550506001600160a01b03851660009081526002602052604081208054859290610e9190849061482c565b90915550610ea2905082888661297c565b610ead82868561297c565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610f02959493929190614874565b60405180910390a4505050505050505050565b6000610f23338585856126a9565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610f745760405163c51efddd60e01b815260040160405180910390fd5b610fa03383848460405180602001604052806000815250604051806020016040528060008152506124ad565b5050565b6040513390600090610fbc9083908690602001614749565b604051602081830303815290604052805190602001209050610fde818461266d565b610ffb5760405163dae1880960e01b815260040160405180910390fd5b61100581846129af565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b60008061104c836129d0565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dd91906148a7565b90506110e98582612002565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611173573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b0191908101906148c0565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610afd9185906111d2908690614971565b6123fd565b3330146111f757604051630fff4cc960e31b815260040160405180910390fd5b610c6e838584846126a9565b600054610100900460ff16158080156112235750600054600160ff909116105b8061123d5750303b15801561123d575060005460ff166001145b6112625760405162461bcd60e51b815260040161125990614984565b60405180910390fd5b6000805460ff191660011790558015611285576000805461ff0019166101001790555b6112958787878787876000612a8c565b80156112db576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610b33333333846040518060200160405280600081525060405180602001604052806000815250612b54565b6000611328600080516020614d538339815191525490565b905060006001600160a01b038216156113415781611363565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461138e57604051630484acab60e01b815260040160405180910390fd5b61139783612d07565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f991906149d2565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806114cc5750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa158015611472573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149691906149d2565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156114ea5760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146115385760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546114ea90849084906111d2908590614971565b6060600085858560405160200161158a93929190614700565b6040516020818303038152906040528051906020012090506115ac8184612f41565b9695505050505050565b60006109a67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6116313333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612b54915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116805760405163c51efddd60e01b815260040160405180910390fd5b6114ea8383836123fd565b336116986012828a612fd0565b6116b55760405163f7f0222760e01b815260040160405180910390fd5b61172f8189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250613079915050565b5050505050505050565b33301461168057604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611770929190614749565b6040516020818303038152906040528051906020012090506117928184612f41565b95945050505050565b60006109a6600080516020614d538339815191525490565b6000806117bf83611055565b5050509050600081126117d257806117d5565b60005b9392505050565b6000610b01827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611840573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa91906148a7565b610fa03333848460405180602001604052806000815250604051806020016040528060008152506124ad565b60006118a8600080516020614d538339815191525490565b905060006001600160a01b038216156118c157816118e3565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461190e57604051630484acab60e01b815260040160405180910390fd5b6000611926600080516020614d538339815191525490565b905061193e84600080516020614d5383398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611991601282846130f2565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546109ba906146c6565b600054610100900460ff1615808015611a045750600054600160ff909116105b80611a1e5750303b158015611a1e575060005460ff166001145b611a3a5760405162461bcd60e51b815260040161125990614984565b6000805460ff191660011790558015611a5d576000805461ff0019166101001790555b8015610b33576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6116313333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506130799050565b333014611b1a57604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526114ea913391869186919015159086906131f6565b6040513390600090611b589083908790602001614749565b604051602081830303815290604052805190602001209050611bad818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610c0a93929190614786565b610fa0333383611bf9336117b3565b6126a9565b6000610afd33846111d2856040518060600160405280602a8152602001614d73602a91393360009081526011602090815260408083206001600160a01b038d16845290915290205491906132c3565b60006117d5333385856126a9565b600080600080611c6b8686612002565b9250925092506000611c93828411611c8457600061290e565b611c8e83856149ef565b61290e565b611c9d908561482c565b60001315979650505050505050565b6000610b01827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081291906148a7565b333014611d5457604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526114ea9133918691869190151590819087906132ef565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611dc55760405163c51efddd60e01b815260040160405180910390fd5b6114ea83836111d2846040518060600160405280602a8152602001614d73602a91396001600160a01b03808a166000908152601160209081526040808320938c168352929052205491906132c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611e5d5760405163c51efddd60e01b815260040160405180910390fd5b6116313385858585604051806020016040528060008152506001613079565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611ec55760405163c51efddd60e01b815260040160405180910390fd5b610fa0338384846040518060200160405280600081525060405180602001604052806000815250612b54565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7991906147c7565b611f965760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b038216600090815260026020526040902054611fba90829061482c565b6001600160a01b0390921660009081526002602052604090209190915550565b60006117d560128484612fd0565b600080611ff58484612002565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080612027866110f8565b905060005b815181101561213357600080600084848151811061204c5761204c614a02565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa1580156120ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cf9190614a18565b919450925090506120e08288614971565b96506120ec8187614971565b95506121098183116120ff57600061290e565b611c8e82846149ef565b612113848a61482c565b61211d9190614854565b97505050508061212c90614a46565b905061202c565b50509250925092565b600054610100900460ff161580801561215c5750600054600160ff909116105b806121765750303b158015612176575060005460ff166001145b6121925760405162461bcd60e51b815260040161125990614984565b6000805460ff1916600117905580156121b5576000805461ff0019166101001790555b6121c488888888888888612a8c565b801561172f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b33612220601282846133bd565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b3361227160128289612fd0565b61228e5760405163f7f0222760e01b815260040160405180910390fd5b6112db8188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506124ad92505050565b6114ea3333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080516020810190915290815292506124ad915050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156123b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612392575b50505050509050919050565b60005b81518110156114ea5760008282815181106123dc576123dc614a02565b60200260200101519050808285015550806123f690614a46565b90506123bf565b6001600160a01b03831661242457604051638163862760e01b815260040160405180910390fd5b6001600160a01b03821661244b576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600e546001600160a01b03166124d657604051637bce7b2b60e11b815260040160405180910390fd5b6000806124e2856129d0565b915091506124f988888387516000141588886131f6565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612542573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256691906148a7565b600e54909150612580906001600160a01b031688856134b5565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ed91906148a7565b905060006125fb82846149ef565b905080851461261d57604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d8560405161265891815260200190565b60405180910390a25050505050505050505050565b6000805b8281101561269f5783810154801561268e57600192505050610b01565b5061269881614a46565b9050612671565b5060009392505050565b60006001600160a01b0384166126d25760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0383166126f95760405163e219bd3960e01b815260040160405180910390fd5b600033905061272a818686866040518060200160405280600081525060405180602001604052806000815250613518565b846001600160a01b0316866001600160a01b0316146127bd576127bd85876111d2866040518060600160405280602d8152602001614dbd602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020546132c39092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284e91906149d2565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa1580156128e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290891906149d2565b91505090565b60006001600160ff1b038211156129785760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401611259565b5090565b816001600160a01b0316836001600160a01b0316600080516020614d9d833981519152836040516124a091815260200190565b60005b818110156114ea576000838201556129c981614a46565b90506129b2565b600e54600090819081906012600160a01b90910460ff161015612a2f57600e54612a0590600160a01b900460ff166012614a5f565b612a1090600a614b5c565b9050612a1c8185614b6b565b9250612a288184614b8d565b9150612a86565b600e546012600160a01b90910460ff161115612a7f57600e54612a5e90601290600160a01b900460ff16614a5f565b612a6990600a614b5c565b9050612a758185614b8d565b9250839150612a86565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612ac1858783614bf2565b506010612acf838583614bf2565b50612ae681600080516020614d5383398151915255565b612aef306135b7565b6040516000808252908190600080516020614d9d8339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612b7d57604051637bce7b2b60e11b815260040160405180910390fd5b600080612b89856129d0565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfe91906148a7565b600e54909150612c19906001600160a01b03168930866136e5565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8691906148a7565b90506000612c9483836149ef565b9050808514612cb657604051631c7c26d360e31b815260040160405180910390fd5b8651612ccc908c908b9087901515808c8c6132ef565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161265891815260200190565b6000612d317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612d875760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401611259565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de991906148a7565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612e635760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401611259565b6001600160a01b0381163003612ebb5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401611259565b612ee3817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611a9b565b6060816001600160401b03811115612f5b57612f5b614041565b604051908082528060200260200182016040528015612f84578160200160208202803683370190505b50905060005b82811015612fc957600081850154905080838381518110612fad57612fad614a02565b602090810291909101015250612fc281614a46565b9050612f8a565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061303f57506001600160a01b038316600090815260018501602052604090205460ff16801561303f57506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610f2357506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166130a05760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166130c75760405163e219bd3960e01b815260040160405180910390fd5b6130d587878787878761371d565b6130e3878787878787613518565b6112db87878787878787613844565b806001600160a01b0316826001600160a01b0316036131695760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401611259565b6001600160a01b038116600090815260018401602052604090205460ff16156131bf576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661321d57604051632e8aac6160e21b815260040160405180910390fd5b8215613232576132328686600087868661371d565b61323c8585613994565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a409886858560405161328393929190614cb1565b60405180910390a36040518481526000906001600160a01b03871690600080516020614d9d833981519152906020015b60405180910390a3505050505050565b600081848411156132e75760405162461bcd60e51b81526004016112599190613e92565b505050900390565b6001600160a01b03861661331657604051630d24315760e01b815260040160405180910390fd5b6133208686613aa4565b8315613336576133368760008888868689613844565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d87858560405161337d93929190614cb1565b60405180910390a36040518581526001600160a01b03871690600090600080516020614d9d8339815191529060200160405180910390a350505050505050565b336001600160a01b038216036134285760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401611259565b6001600160a01b038116600090815260018401602052604090205460ff1615613482576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b0383166024820152604481018290526114ea90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613afe565b61352b85856135268661290e565b613bd3565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161357c93929190614cb1565b60405180910390a4836001600160a01b0316856001600160a01b0316600080516020614d9d833981519152856040516132b391815260200190565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561363857600080fd5b505af115801561364c573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156136d157600080fd5b505af1158015610c6e573d6000803e3d6000fd5b6040516001600160a01b03808516602483015283166044820152606481018290526116319085906323b872dd60e01b906084016134e1565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa15801561379e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c291906149d2565b90506001600160a01b038116156112db57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613809908a908a908a908a908a908a90600401614cdc565b600060405180830381600087803b15801561382357600080fd5b505af1158015613837573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156138c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e991906149d2565b90506001600160a01b03811615613965576040516223de2960e01b81526001600160a01b038216906223de299061392e908b908b908b908b908b908b90600401614cdc565b600060405180830381600087803b15801561394857600080fd5b505af115801561395c573d6000803e3d6000fd5b5050505061172f565b811561172f576001600160a01b0386163b1561172f5760405163fe737d0560e01b815260040160405180910390fd5b6000613a1c837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f691906148a7565b50509050613a298261290e565b811215613a495760405163043b37d160e21b815260040160405180910390fd5b613a528261290e565b6001600160a01b038416600090815260026020526040902054613a759190614854565b6001600160a01b038416600090815260026020526040902055600354613a9c9083906149ef565b600355505050565b613aad8161290e565b6001600160a01b038316600090815260026020526040902054613ad0919061482c565b6001600160a01b038316600090815260026020526040902055600354613af7908290614971565b6003555050565b6000613b53826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613cd29092919063ffffffff16565b9050805160001480613b74575080806020019051810190613b7491906147c7565b6114ea5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611259565b6000613c37847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139f8573d6000803e3d6000fd5b5050905081811215613c5c57604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613c80908390614854565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613cb090839061482c565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610f23848460008585600080866001600160a01b03168587604051613cf99190614d36565b60006040518083038185875af1925050503d8060008114613d36576040519150601f19603f3d011682016040523d82523d6000602084013e613d3b565b606091505b5091509150613d4c87838387613d57565b979650505050505050565b60608315613dc6578251600003613dbf576001600160a01b0385163b613dbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611259565b5081610f23565b610f238383815115613ddb5781518083602001fd5b8060405162461bcd60e51b81526004016112599190613e92565b6020808252825182820181905260009190848201906040850190845b81811015613e365783516001600160a01b031683529284019291840191600101613e11565b50909695505050505050565b60005b83811015613e5d578181015183820152602001613e45565b50506000910152565b60008151808452613e7e816020860160208601613e42565b601f01601f19169290920160200192915050565b6020815260006117d56020830184613e66565b6001600160a01b0381168114610b3357600080fd5b60008083601f840112613ecc57600080fd5b5081356001600160401b03811115613ee357600080fd5b6020830191508360208260051b8501011115613efe57600080fd5b9250929050565b60008060008060608587031215613f1b57600080fd5b8435613f2681613ea5565b93506020850135925060408501356001600160401b03811115613f4857600080fd5b613f5487828801613eba565b95989497509550505050565b60008060408385031215613f7357600080fd5b8235613f7e81613ea5565b946020939093013593505050565b600060208284031215613f9e57600080fd5b5035919050565b600080600060408486031215613fba57600080fd5b8335925060208401356001600160401b03811115613fd757600080fd5b613fe386828701613eba565b9497909650939450505050565b6000806000806080858703121561400657600080fd5b843561401181613ea5565b9350602085013561402181613ea5565b9250604085013561403181613ea5565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561407f5761407f614041565b604052919050565b600082601f83011261409857600080fd5b81356001600160401b038111156140b1576140b1614041565b6140c4601f8201601f1916602001614057565b8181528460208386010111156140d957600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610b3357600080fd5b600080600080600080600060e0888a03121561411f57600080fd5b8735965060208801356001600160401b0381111561413c57600080fd5b6141488a828b01614087565b965050604088013561415981613ea5565b94506060880135614169816140f6565b9350608088013561417981613ea5565b9699959850939692959460a0840135945060c09093013592915050565b6000806000606084860312156141ab57600080fd5b83356141b681613ea5565b925060208401356141c681613ea5565b929592945050506040919091013590565b600080604083850312156141ea57600080fd5b50508035926020909101359150565b60006020828403121561420b57600080fd5b81356117d581613ea5565b803560ff8116811461422757600080fd5b919050565b60008083601f84011261423e57600080fd5b5081356001600160401b0381111561425557600080fd5b602083019150836020828501011115613efe57600080fd5b6000806000806000806080878903121561428657600080fd5b863561429181613ea5565b955061429f60208801614216565b945060408701356001600160401b03808211156142bb57600080fd5b6142c78a838b0161422c565b909650945060608901359150808211156142e057600080fd5b506142ed89828a0161422c565b979a9699509497509295939492505050565b6000806000806080858703121561431557600080fd5b843561432081613ea5565b9350602085013561433081613ea5565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b81811015613e3657835183529284019291840191600101614361565b6000806000806060858703121561439357600080fd5b843561439e81613ea5565b93506020850135925060408501356001600160401b038111156143c057600080fd5b613f548782880161422c565b600080600080600080600060a0888a0312156143e757600080fd5b87356143f281613ea5565b9650602088013561440281613ea5565b95506040880135945060608801356001600160401b038082111561442557600080fd5b6144318b838c0161422c565b909650945060808a013591508082111561444a57600080fd5b506144578a828b0161422c565b989b979a50959850939692959293505050565b60008060006060848603121561447f57600080fd5b833561448a81613ea5565b95602085013595506040909401359392505050565b6000806000606084860312156144b457600080fd5b83356144bf81613ea5565b92506020840135915060408401356001600160401b038111156144e157600080fd5b6144ed86828701614087565b9150509250925092565b6000806000806080858703121561450d57600080fd5b843561451881613ea5565b9350602085013561452881613ea5565b92506040850135915060608501356001600160401b0381111561454a57600080fd5b61455687828801614087565b91505092959194509250565b6000806040838503121561457557600080fd5b823561458081613ea5565b9150602083013561459081613ea5565b809150509250929050565b600080600080600080600060a0888a0312156145b657600080fd5b87356145c181613ea5565b96506145cf60208901614216565b955060408801356001600160401b03808211156145eb57600080fd5b6145f78b838c0161422c565b909750955060608a013591508082111561461057600080fd5b5061461d8a828b0161422c565b909450925050608088013561463181613ea5565b8091505092959891949750929550565b6000806000806000806080878903121561465a57600080fd5b863561466581613ea5565b95506020870135945060408701356001600160401b03808211156142bb57600080fd5b60008060006040848603121561469d57600080fd5b8335925060208401356001600160401b038111156146ba57600080fd5b613fe38682870161422c565b600181811c908216806146da57607f821691505b6020821081036146fa57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b038311156147ad57600080fd5b8260051b8085606085013791909101606001949350505050565b6000602082840312156147d957600080fd5b81516117d5816140f6565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b820161480f5761480f6147e4565b5060000390565b634e487b7160e01b600052600160045260246000fd5b808201828112600083128015821682158216171561484c5761484c6147e4565b505092915050565b8181036000831280158383131683831282161715612fc957612fc96147e4565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613d4c60a0830184613e66565b6000602082840312156148b957600080fd5b5051919050565b600060208083850312156148d357600080fd5b82516001600160401b03808211156148ea57600080fd5b818501915085601f8301126148fe57600080fd5b81518181111561491057614910614041565b8060051b9150614921848301614057565b818152918301840191848101908884111561493b57600080fd5b938501935b83851015614965578451925061495583613ea5565b8282529385019390850190614940565b98975050505050505050565b80820180821115610b0157610b016147e4565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156149e457600080fd5b81516117d581613ea5565b81810381811115610b0157610b016147e4565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614a2d57600080fd5b8351925060208401519150604084015190509250925092565b600060018201614a5857614a586147e4565b5060010190565b60ff8281168282160390811115610b0157610b016147e4565b600181815b80851115614ab3578160001904821115614a9957614a996147e4565b80851615614aa657918102915b93841c9390800290614a7d565b509250929050565b600082614aca57506001610b01565b81614ad757506000610b01565b8160018114614aed5760028114614af757614b13565b6001915050610b01565b60ff841115614b0857614b086147e4565b50506001821b610b01565b5060208310610133831016604e8410600b8410161715614b36575081810a610b01565b614b408383614a78565b8060001904821115614b5457614b546147e4565b029392505050565b60006117d560ff841683614abb565b600082614b8857634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610b0157610b016147e4565b601f8211156114ea57600081815260208120601f850160051c81016020861015614bcb5750805b601f850160051c820191505b81811015614bea57828155600101614bd7565b505050505050565b6001600160401b03831115614c0957614c09614041565b614c1d83614c1783546146c6565b83614ba4565b6000601f841160018114614c515760008515614c395750838201355b600019600387901b1c1916600186901b178355610c6e565b600083815260209020601f19861690835b82811015614c825786850135825560209485019460019092019101614c62565b5086821015614c9f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201526000614cca6060830185613e66565b82810360408401526115ac8185613e66565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090614d1790830185613e66565b82810360a0840152614d298185613e66565b9998505050505050505050565b60008251614d48818460208701613e42565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201b0f07fb8111bc61d4559d9530077ede9cc91f70af54c0881fc9af719afe0e8764736f6c63430008130033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ISuperfluid";
@@ -2051,7 +2051,7 @@ const _abi = [
2051
2051
  type: "function",
2052
2052
  },
2053
2053
  ];
2054
- const _bytecode = "0x60e06040523480156200001157600080fd5b506040516200500f3803806200500f8339810160408190526200003491620000d9565b6001600160a01b0380841660805280831660a081905290821660c052604051849184918491907fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038216907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a25050505050506200012d565b6001600160a01b0381168114620000d657600080fd5b50565b600080600060608486031215620000ef57600080fd5b8351620000fc81620000c0565b60208501519093506200010f81620000c0565b60408501519092506200012281620000c0565b809150509250925092565b60805160a05160c051614e1f620001f06000396000818161064c01526114a101526000818161093f01526114040152600081816104c101528181610c1b01528181610c8a01528181610f2d0152818161105d0152818161112c01528181611343015281816114f101528181611639015281816117e4015281816118c301528181611cb401528181611d7e01528181611e1601528181611e7e01528181611f06015281816127ce015281816128650152818161399c0152613bdb0152614e1f6000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c80636e9960c311610215578063bb0d196e11610125578063dd62ed3e116100b8578063ef43d2c611610087578063ef43d2c61461093a578063f99a38c41461043c578063fad8b32a14610961578063fc673c4f14610974578063fe9d93031461098757600080fd5b8063dd62ed3e146108af578063eb3537cc146108e8578063ec0d634314610916578063ee719bc81461092957600080fd5b8063ca789464116100f4578063ca78946414610863578063cf97256d14610876578063d95b637114610889578063d9d078d61461089c57600080fd5b8063bb0d196e14610817578063c68d42831461082a578063c780fd821461083d578063ca0c1e7f1461085057600080fd5b806395d89b41116101a8578063a1b2bf8b11610177578063a1b2bf8b146107b8578063a3a7e7f3146107cb578063a457c2d7146107de578063a9059cbb146107f1578063b84cdd4a1461080457600080fd5b806395d89b41146107825780639903ad381461078a5780639bd9bbc6146107925780639d876741146107a557600080fd5b806383ba2525116101e457806383ba2525146107375780638f2839701461074a57806392081a471461075d578063959b8c3f1461076f57600080fd5b80636e9960c3146107025780636fed61fc1461070a57806370a082311461071157806379359f6f1461072457600080fd5b8063386fa221116103105780634c5c0c85116102a35780635b9d09cc116102725780635b9d09cc146106a357806362aa5287146106b657806362ad1b83146106c957806366a12fb6146106dc5780636c2d9f2f146106ef57600080fd5b80634c5c0c851461064757806350d75d251461066e57806352d1902d14610676578063556f0dc71461069c57600080fd5b806345977d03116102df57806345977d03146105ee57806346951954146106015780634b2763b3146106145780634b61cc331461062757600080fd5b8063386fa221146105a257806339509351146105b557806341b706be146105c857806342fe0980146105db57600080fd5b80631863e809116103885780632704839711610357578063270483971461051f578063282a050b146105325780632ec8eec71461055a578063313ce5671461058d57600080fd5b80631863e809146104ac57806320bc4425146104bf57806323b872dd146104f9578063245887fc1461050c57600080fd5b806311bcc81e116103c457806311bcc81e1461046157806312a6a3f81461047457806316d055d61461048757806318160ddd1461049a57600080fd5b806306e48538146103f657806306fdde0314610414578063090c415e14610429578063095ea7b31461043e575b600080fd5b6103fe61099a565b60405161040b9190613df5565b60405180910390f35b61041c6109ab565b60405161040b9190613e92565b61043c610437366004613f05565b610a3d565b005b61045161044c366004613f60565b610af0565b604051901515815260200161040b565b61043c61046f366004613f8c565b610b07565b61043c610482366004613fa5565b610b36565b61043c610495366004613ff0565b610c19565b6003545b60405190815260200161040b565b61043c6104ba366004614104565b610c75565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161040b565b610451610507366004614196565b610f15565b61043c61051a366004613f60565b610f2b565b61043c61052d3660046141d7565b610fa4565b610545610540366004613f8c565b611040565b6040805192835260208301919091520161040b565b61056d6105683660046141f9565b611055565b60408051948552602085019390935291830152606082015260800161040b565b60125b60405160ff909116815260200161040b565b6103fe6105b03660046141f9565b6110f8565b6104516105c3366004613f60565b61119b565b61043c6105d6366004613ff0565b6111d7565b61043c6105e936600461426d565b611203565b61043c6105fc366004613f8c565b6112e4565b61043c61060f3660046141f9565b611310565b61043c610622366004614196565b6114ef565b61063a6106353660046142ff565b611571565b60405161040b9190614345565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b6104e16115b6565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001961049e565b600161049e565b61043c6106b136600461437d565b6115e0565b61043c6106c4366004614196565b611637565b61043c6106d73660046143cc565b61168b565b61043c6106ea366004614196565b611739565b61063a6106fd36600461446a565b611759565b6104e161179b565b601f61049e565b61049e61071f3660046141f9565b6117b3565b6104516107323660046141f9565b6117dc565b61043c610745366004613f60565b611864565b61043c6107583660046141f9565b611890565b600e54600160a01b900460ff16610590565b61043c61077d3660046141f9565b611984565b61041c6119d5565b61043c6119e4565b61043c6107a036600461437d565b611aa6565b61043c6107b336600461449f565b611afa565b61043c6107c6366004613fa5565b611b40565b61043c6107d93660046141f9565b611bea565b6104516107ec366004613f60565b611bfe565b6104516107ff366004613f60565b611c4d565b610451610812366004613f60565b611c5b565b6104516108253660046141f9565b611cac565b61043c61083836600461449f565b611d34565b61043c61084b366004614196565b611d7c565b61043c61085e3660046144f7565b611e14565b61043c610871366004613f60565b611e7c565b61043c610884366004613f60565b611ef1565b610451610897366004614562565b611fda565b6104516108aa366004613f60565b611fe8565b61049e6108bd366004614562565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b6108fb6108f6366004613f60565b612002565b6040805193845260208401929092529082015260600161040b565b61043c61092436600461459b565b61213c565b600e546001600160a01b03166104e1565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b61043c61096f3660046141f9565b612213565b61043c610982366004614641565b612264565b61043c610995366004614688565b612305565b60606109a66012612356565b905090565b6060600f80546109ba906146c6565b80601f01602080910402602001604051908101604052809291908181526020018280546109e6906146c6565b8015610a335780601f10610a0857610100808354040283529160200191610a33565b820191906000526020600020905b815481529060010190602001808311610a1657829003601f168201915b5050505050905090565b6000338585604051602001610a5493929190614700565b604051602081830303815290604052805190602001209050610aa9818484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610afd3384846123fd565b5060015b92915050565b610b333333338460405180602001604052806000815250604051806020016040528060008152506124ad565b50565b6040513390600090610b4e9083908790602001614749565b60408051601f1981840301815291905280516020909101209050610b72818461266d565b15610b905760405163782a90fb60e11b815260040160405180910390fd5b610bcd818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610c0a93929190614786565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610c625760405163c51efddd60e01b815260040160405180910390fd5b610c6e848484846126a9565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd91906147c7565b610d1a5760405163327fd99160e21b815260040160405180910390fd5b6000610d246127c9565b90506001600160a01b038116610d375750845b600085610d445786610d46565b815b905060008313610de357610d59836147fa565b610d628561290e565b14610d6f57610d6f614816565b610d788461290e565b6001600160a01b03821660009081526002602052604081208054909190610da090849061482c565b90915550506001600160a01b03851660009081526002602052604081208054859290610dcd90849061482c565b90915550610dde905085828661297c565b610ead565b8515610df157610df1614816565b82610dfb8561290e565b610e05919061482c565b6001600160a01b03831660009081526002602052604081208054909190610e2d908490614854565b90915550610e3c90508461290e565b6001600160a01b03881660009081526002602052604081208054909190610e6490849061482c565b90915550506001600160a01b03851660009081526002602052604081208054859290610e9190849061482c565b90915550610ea2905082888661297c565b610ead82868561297c565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610f02959493929190614874565b60405180910390a4505050505050505050565b6000610f23338585856126a9565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610f745760405163c51efddd60e01b815260040160405180910390fd5b610fa03383848460405180602001604052806000815250604051806020016040528060008152506124ad565b5050565b6040513390600090610fbc9083908690602001614749565b604051602081830303815290604052805190602001209050610fde818461266d565b610ffb5760405163dae1880960e01b815260040160405180910390fd5b61100581846129af565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b60008061104c836129d0565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dd91906148a7565b90506110e98582612002565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611173573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b0191908101906148c0565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610afd9185906111d2908690614971565b6123fd565b3330146111f757604051630fff4cc960e31b815260040160405180910390fd5b610c6e838584846126a9565b600054610100900460ff16158080156112235750600054600160ff909116105b8061123d5750303b15801561123d575060005460ff166001145b6112625760405162461bcd60e51b815260040161125990614984565b60405180910390fd5b6000805460ff191660011790558015611285576000805461ff0019166101001790555b6112958787878787876000612a8c565b80156112db576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610b33333333846040518060200160405280600081525060405180602001604052806000815250612b54565b6000611328600080516020614d538339815191525490565b905060006001600160a01b038216156113415781611363565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461138e57604051630484acab60e01b815260040160405180910390fd5b61139783612d07565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f991906149d2565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806114cc5750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa158015611472573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149691906149d2565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156114ea5760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146115385760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546114ea90849084906111d2908590614971565b6060600085858560405160200161158a93929190614700565b6040516020818303038152906040528051906020012090506115ac8184612f41565b9695505050505050565b60006109a67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6116313333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612b54915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116805760405163c51efddd60e01b815260040160405180910390fd5b6114ea8383836123fd565b336116986012828a612fd0565b6116b55760405163f7f0222760e01b815260040160405180910390fd5b61172f8189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250613079915050565b5050505050505050565b33301461168057604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611770929190614749565b6040516020818303038152906040528051906020012090506117928184612f41565b95945050505050565b60006109a6600080516020614d538339815191525490565b6000806117bf83611055565b5050509050600081126117d257806117d5565b60005b9392505050565b6000610b01827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611840573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa91906148a7565b610fa03333848460405180602001604052806000815250604051806020016040528060008152506124ad565b60006118a8600080516020614d538339815191525490565b905060006001600160a01b038216156118c157816118e3565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461190e57604051630484acab60e01b815260040160405180910390fd5b6000611926600080516020614d538339815191525490565b905061193e84600080516020614d5383398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611991601282846130f2565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546109ba906146c6565b600054610100900460ff1615808015611a045750600054600160ff909116105b80611a1e5750303b158015611a1e575060005460ff166001145b611a3a5760405162461bcd60e51b815260040161125990614984565b6000805460ff191660011790558015611a5d576000805461ff0019166101001790555b8015610b33576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6116313333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506130799050565b333014611b1a57604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526114ea913391869186919015159086906131f6565b6040513390600090611b589083908790602001614749565b604051602081830303815290604052805190602001209050611bad818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610c0a93929190614786565b610fa0333383611bf9336117b3565b6126a9565b6000610afd33846111d2856040518060600160405280602a8152602001614d73602a91393360009081526011602090815260408083206001600160a01b038d16845290915290205491906132c3565b60006117d5333385856126a9565b600080600080611c6b8686612002565b9250925092506000611c93828411611c8457600061290e565b611c8e83856149ef565b61290e565b611c9d908561482c565b60001315979650505050505050565b6000610b01827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081291906148a7565b333014611d5457604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526114ea9133918691869190151590819087906132ef565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611dc55760405163c51efddd60e01b815260040160405180910390fd5b6114ea83836111d2846040518060600160405280602a8152602001614d73602a91396001600160a01b03808a166000908152601160209081526040808320938c168352929052205491906132c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611e5d5760405163c51efddd60e01b815260040160405180910390fd5b6116313385858585604051806020016040528060008152506001613079565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611ec55760405163c51efddd60e01b815260040160405180910390fd5b610fa0338384846040518060200160405280600081525060405180602001604052806000815250612b54565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7991906147c7565b611f965760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b038216600090815260026020526040902054611fba90829061482c565b6001600160a01b0390921660009081526002602052604090209190915550565b60006117d560128484612fd0565b600080611ff58484612002565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080612027866110f8565b905060005b815181101561213357600080600084848151811061204c5761204c614a02565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa1580156120ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cf9190614a18565b919450925090506120e08288614971565b96506120ec8187614971565b95506121098183116120ff57600061290e565b611c8e82846149ef565b612113848a61482c565b61211d9190614854565b97505050508061212c90614a46565b905061202c565b50509250925092565b600054610100900460ff161580801561215c5750600054600160ff909116105b806121765750303b158015612176575060005460ff166001145b6121925760405162461bcd60e51b815260040161125990614984565b6000805460ff1916600117905580156121b5576000805461ff0019166101001790555b6121c488888888888888612a8c565b801561172f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b33612220601282846133bd565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b3361227160128289612fd0565b61228e5760405163f7f0222760e01b815260040160405180910390fd5b6112db8188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506124ad92505050565b6114ea3333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080516020810190915290815292506124ad915050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156123b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612392575b50505050509050919050565b60005b81518110156114ea5760008282815181106123dc576123dc614a02565b60200260200101519050808285015550806123f690614a46565b90506123bf565b6001600160a01b03831661242457604051638163862760e01b815260040160405180910390fd5b6001600160a01b03821661244b576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600e546001600160a01b03166124d657604051637bce7b2b60e11b815260040160405180910390fd5b6000806124e2856129d0565b915091506124f988888387516000141588886131f6565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612542573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256691906148a7565b600e54909150612580906001600160a01b031688856134b5565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ed91906148a7565b905060006125fb82846149ef565b905080851461261d57604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d8560405161265891815260200190565b60405180910390a25050505050505050505050565b6000805b8281101561269f5783810154801561268e57600192505050610b01565b5061269881614a46565b9050612671565b5060009392505050565b60006001600160a01b0384166126d25760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0383166126f95760405163e219bd3960e01b815260040160405180910390fd5b600033905061272a818686866040518060200160405280600081525060405180602001604052806000815250613518565b846001600160a01b0316866001600160a01b0316146127bd576127bd85876111d2866040518060600160405280602d8152602001614dbd602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020546132c39092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284e91906149d2565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa1580156128e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290891906149d2565b91505090565b60006001600160ff1b038211156129785760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401611259565b5090565b816001600160a01b0316836001600160a01b0316600080516020614d9d833981519152836040516124a091815260200190565b60005b818110156114ea576000838201556129c981614a46565b90506129b2565b600e54600090819081906012600160a01b90910460ff161015612a2f57600e54612a0590600160a01b900460ff166012614a5f565b612a1090600a614b5c565b9050612a1c8185614b6b565b9250612a288184614b8d565b9150612a86565b600e546012600160a01b90910460ff161115612a7f57600e54612a5e90601290600160a01b900460ff16614a5f565b612a6990600a614b5c565b9050612a758185614b8d565b9250839150612a86565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612ac1858783614bf2565b506010612acf838583614bf2565b50612ae681600080516020614d5383398151915255565b612aef306135b7565b6040516000808252908190600080516020614d9d8339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612b7d57604051637bce7b2b60e11b815260040160405180910390fd5b600080612b89856129d0565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfe91906148a7565b600e54909150612c19906001600160a01b03168930866136e5565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8691906148a7565b90506000612c9483836149ef565b9050808514612cb657604051631c7c26d360e31b815260040160405180910390fd5b8651612ccc908c908b9087901515808c8c6132ef565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161265891815260200190565b6000612d317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612d875760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401611259565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de991906148a7565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612e635760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401611259565b6001600160a01b0381163003612ebb5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401611259565b612ee3817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611a9b565b6060816001600160401b03811115612f5b57612f5b614041565b604051908082528060200260200182016040528015612f84578160200160208202803683370190505b50905060005b82811015612fc957600081850154905080838381518110612fad57612fad614a02565b602090810291909101015250612fc281614a46565b9050612f8a565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061303f57506001600160a01b038316600090815260018501602052604090205460ff16801561303f57506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610f2357506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166130a05760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166130c75760405163e219bd3960e01b815260040160405180910390fd5b6130d587878787878761371d565b6130e3878787878787613518565b6112db87878787878787613844565b806001600160a01b0316826001600160a01b0316036131695760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401611259565b6001600160a01b038116600090815260018401602052604090205460ff16156131bf576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661321d57604051632e8aac6160e21b815260040160405180910390fd5b8215613232576132328686600087868661371d565b61323c8585613994565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a409886858560405161328393929190614cb1565b60405180910390a36040518481526000906001600160a01b03871690600080516020614d9d833981519152906020015b60405180910390a3505050505050565b600081848411156132e75760405162461bcd60e51b81526004016112599190613e92565b505050900390565b6001600160a01b03861661331657604051630d24315760e01b815260040160405180910390fd5b6133208686613aa4565b8315613336576133368760008888868689613844565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d87858560405161337d93929190614cb1565b60405180910390a36040518581526001600160a01b03871690600090600080516020614d9d8339815191529060200160405180910390a350505050505050565b336001600160a01b038216036134285760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401611259565b6001600160a01b038116600090815260018401602052604090205460ff1615613482576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b0383166024820152604481018290526114ea90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613afe565b61352b85856135268661290e565b613bd3565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161357c93929190614cb1565b60405180910390a4836001600160a01b0316856001600160a01b0316600080516020614d9d833981519152856040516132b391815260200190565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561363857600080fd5b505af115801561364c573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156136d157600080fd5b505af1158015610c6e573d6000803e3d6000fd5b6040516001600160a01b03808516602483015283166044820152606481018290526116319085906323b872dd60e01b906084016134e1565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa15801561379e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c291906149d2565b90506001600160a01b038116156112db57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613809908a908a908a908a908a908a90600401614cdc565b600060405180830381600087803b15801561382357600080fd5b505af1158015613837573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156138c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e991906149d2565b90506001600160a01b03811615613965576040516223de2960e01b81526001600160a01b038216906223de299061392e908b908b908b908b908b908b90600401614cdc565b600060405180830381600087803b15801561394857600080fd5b505af115801561395c573d6000803e3d6000fd5b5050505061172f565b811561172f576001600160a01b0386163b1561172f5760405163fe737d0560e01b815260040160405180910390fd5b6000613a1c837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f691906148a7565b50509050613a298261290e565b811215613a495760405163043b37d160e21b815260040160405180910390fd5b613a528261290e565b6001600160a01b038416600090815260026020526040902054613a759190614854565b6001600160a01b038416600090815260026020526040902055600354613a9c9083906149ef565b600355505050565b613aad8161290e565b6001600160a01b038316600090815260026020526040902054613ad0919061482c565b6001600160a01b038316600090815260026020526040902055600354613af7908290614971565b6003555050565b6000613b53826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613cd29092919063ffffffff16565b9050805160001480613b74575080806020019051810190613b7491906147c7565b6114ea5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611259565b6000613c37847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139f8573d6000803e3d6000fd5b5050905081811215613c5c57604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613c80908390614854565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613cb090839061482c565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610f23848460008585600080866001600160a01b03168587604051613cf99190614d36565b60006040518083038185875af1925050503d8060008114613d36576040519150601f19603f3d011682016040523d82523d6000602084013e613d3b565b606091505b5091509150613d4c87838387613d57565b979650505050505050565b60608315613dc6578251600003613dbf576001600160a01b0385163b613dbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611259565b5081610f23565b610f238383815115613ddb5781518083602001fd5b8060405162461bcd60e51b81526004016112599190613e92565b6020808252825182820181905260009190848201906040850190845b81811015613e365783516001600160a01b031683529284019291840191600101613e11565b50909695505050505050565b60005b83811015613e5d578181015183820152602001613e45565b50506000910152565b60008151808452613e7e816020860160208601613e42565b601f01601f19169290920160200192915050565b6020815260006117d56020830184613e66565b6001600160a01b0381168114610b3357600080fd5b60008083601f840112613ecc57600080fd5b5081356001600160401b03811115613ee357600080fd5b6020830191508360208260051b8501011115613efe57600080fd5b9250929050565b60008060008060608587031215613f1b57600080fd5b8435613f2681613ea5565b93506020850135925060408501356001600160401b03811115613f4857600080fd5b613f5487828801613eba565b95989497509550505050565b60008060408385031215613f7357600080fd5b8235613f7e81613ea5565b946020939093013593505050565b600060208284031215613f9e57600080fd5b5035919050565b600080600060408486031215613fba57600080fd5b8335925060208401356001600160401b03811115613fd757600080fd5b613fe386828701613eba565b9497909650939450505050565b6000806000806080858703121561400657600080fd5b843561401181613ea5565b9350602085013561402181613ea5565b9250604085013561403181613ea5565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561407f5761407f614041565b604052919050565b600082601f83011261409857600080fd5b81356001600160401b038111156140b1576140b1614041565b6140c4601f8201601f1916602001614057565b8181528460208386010111156140d957600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610b3357600080fd5b600080600080600080600060e0888a03121561411f57600080fd5b8735965060208801356001600160401b0381111561413c57600080fd5b6141488a828b01614087565b965050604088013561415981613ea5565b94506060880135614169816140f6565b9350608088013561417981613ea5565b9699959850939692959460a0840135945060c09093013592915050565b6000806000606084860312156141ab57600080fd5b83356141b681613ea5565b925060208401356141c681613ea5565b929592945050506040919091013590565b600080604083850312156141ea57600080fd5b50508035926020909101359150565b60006020828403121561420b57600080fd5b81356117d581613ea5565b803560ff8116811461422757600080fd5b919050565b60008083601f84011261423e57600080fd5b5081356001600160401b0381111561425557600080fd5b602083019150836020828501011115613efe57600080fd5b6000806000806000806080878903121561428657600080fd5b863561429181613ea5565b955061429f60208801614216565b945060408701356001600160401b03808211156142bb57600080fd5b6142c78a838b0161422c565b909650945060608901359150808211156142e057600080fd5b506142ed89828a0161422c565b979a9699509497509295939492505050565b6000806000806080858703121561431557600080fd5b843561432081613ea5565b9350602085013561433081613ea5565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b81811015613e3657835183529284019291840191600101614361565b6000806000806060858703121561439357600080fd5b843561439e81613ea5565b93506020850135925060408501356001600160401b038111156143c057600080fd5b613f548782880161422c565b600080600080600080600060a0888a0312156143e757600080fd5b87356143f281613ea5565b9650602088013561440281613ea5565b95506040880135945060608801356001600160401b038082111561442557600080fd5b6144318b838c0161422c565b909650945060808a013591508082111561444a57600080fd5b506144578a828b0161422c565b989b979a50959850939692959293505050565b60008060006060848603121561447f57600080fd5b833561448a81613ea5565b95602085013595506040909401359392505050565b6000806000606084860312156144b457600080fd5b83356144bf81613ea5565b92506020840135915060408401356001600160401b038111156144e157600080fd5b6144ed86828701614087565b9150509250925092565b6000806000806080858703121561450d57600080fd5b843561451881613ea5565b9350602085013561452881613ea5565b92506040850135915060608501356001600160401b0381111561454a57600080fd5b61455687828801614087565b91505092959194509250565b6000806040838503121561457557600080fd5b823561458081613ea5565b9150602083013561459081613ea5565b809150509250929050565b600080600080600080600060a0888a0312156145b657600080fd5b87356145c181613ea5565b96506145cf60208901614216565b955060408801356001600160401b03808211156145eb57600080fd5b6145f78b838c0161422c565b909750955060608a013591508082111561461057600080fd5b5061461d8a828b0161422c565b909450925050608088013561463181613ea5565b8091505092959891949750929550565b6000806000806000806080878903121561465a57600080fd5b863561466581613ea5565b95506020870135945060408701356001600160401b03808211156142bb57600080fd5b60008060006040848603121561469d57600080fd5b8335925060208401356001600160401b038111156146ba57600080fd5b613fe38682870161422c565b600181811c908216806146da57607f821691505b6020821081036146fa57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b038311156147ad57600080fd5b8260051b8085606085013791909101606001949350505050565b6000602082840312156147d957600080fd5b81516117d5816140f6565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b820161480f5761480f6147e4565b5060000390565b634e487b7160e01b600052600160045260246000fd5b808201828112600083128015821682158216171561484c5761484c6147e4565b505092915050565b8181036000831280158383131683831282161715612fc957612fc96147e4565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613d4c60a0830184613e66565b6000602082840312156148b957600080fd5b5051919050565b600060208083850312156148d357600080fd5b82516001600160401b03808211156148ea57600080fd5b818501915085601f8301126148fe57600080fd5b81518181111561491057614910614041565b8060051b9150614921848301614057565b818152918301840191848101908884111561493b57600080fd5b938501935b83851015614965578451925061495583613ea5565b8282529385019390850190614940565b98975050505050505050565b80820180821115610b0157610b016147e4565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156149e457600080fd5b81516117d581613ea5565b81810381811115610b0157610b016147e4565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614a2d57600080fd5b8351925060208401519150604084015190509250925092565b600060018201614a5857614a586147e4565b5060010190565b60ff8281168282160390811115610b0157610b016147e4565b600181815b80851115614ab3578160001904821115614a9957614a996147e4565b80851615614aa657918102915b93841c9390800290614a7d565b509250929050565b600082614aca57506001610b01565b81614ad757506000610b01565b8160018114614aed5760028114614af757614b13565b6001915050610b01565b60ff841115614b0857614b086147e4565b50506001821b610b01565b5060208310610133831016604e8410600b8410161715614b36575081810a610b01565b614b408383614a78565b8060001904821115614b5457614b546147e4565b029392505050565b60006117d560ff841683614abb565b600082614b8857634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610b0157610b016147e4565b601f8211156114ea57600081815260208120601f850160051c81016020861015614bcb5750805b601f850160051c820191505b81811015614bea57828155600101614bd7565b505050505050565b6001600160401b03831115614c0957614c09614041565b614c1d83614c1783546146c6565b83614ba4565b6000601f841160018114614c515760008515614c395750838201355b600019600387901b1c1916600186901b178355610c6e565b600083815260209020601f19861690835b82811015614c825786850135825560209485019460019092019101614c62565b5086821015614c9f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201526000614cca6060830185613e66565b82810360408401526115ac8185613e66565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090614d1790830185613e66565b82810360a0840152614d298185613e66565b9998505050505050505050565b60008251614d48818460208701613e42565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220028278dc3511add97e71209a4ccb438bf6652c1efb2426e307cc05d9102daedd64736f6c63430008130033";
2054
+ const _bytecode = "0x60e06040523480156200001157600080fd5b506040516200500f3803806200500f8339810160408190526200003491620000d9565b6001600160a01b0380841660805280831660a081905290821660c052604051849184918491907fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038216907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a25050505050506200012d565b6001600160a01b0381168114620000d657600080fd5b50565b600080600060608486031215620000ef57600080fd5b8351620000fc81620000c0565b60208501519093506200010f81620000c0565b60408501519092506200012281620000c0565b809150509250925092565b60805160a05160c051614e1f620001f06000396000818161064c01526114a101526000818161093f01526114040152600081816104c101528181610c1b01528181610c8a01528181610f2d0152818161105d0152818161112c01528181611343015281816114f101528181611639015281816117e4015281816118c301528181611cb401528181611d7e01528181611e1601528181611e7e01528181611f06015281816127ce015281816128650152818161399c0152613bdb0152614e1f6000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c80636e9960c311610215578063bb0d196e11610125578063dd62ed3e116100b8578063ef43d2c611610087578063ef43d2c61461093a578063f99a38c41461043c578063fad8b32a14610961578063fc673c4f14610974578063fe9d93031461098757600080fd5b8063dd62ed3e146108af578063eb3537cc146108e8578063ec0d634314610916578063ee719bc81461092957600080fd5b8063ca789464116100f4578063ca78946414610863578063cf97256d14610876578063d95b637114610889578063d9d078d61461089c57600080fd5b8063bb0d196e14610817578063c68d42831461082a578063c780fd821461083d578063ca0c1e7f1461085057600080fd5b806395d89b41116101a8578063a1b2bf8b11610177578063a1b2bf8b146107b8578063a3a7e7f3146107cb578063a457c2d7146107de578063a9059cbb146107f1578063b84cdd4a1461080457600080fd5b806395d89b41146107825780639903ad381461078a5780639bd9bbc6146107925780639d876741146107a557600080fd5b806383ba2525116101e457806383ba2525146107375780638f2839701461074a57806392081a471461075d578063959b8c3f1461076f57600080fd5b80636e9960c3146107025780636fed61fc1461070a57806370a082311461071157806379359f6f1461072457600080fd5b8063386fa221116103105780634c5c0c85116102a35780635b9d09cc116102725780635b9d09cc146106a357806362aa5287146106b657806362ad1b83146106c957806366a12fb6146106dc5780636c2d9f2f146106ef57600080fd5b80634c5c0c851461064757806350d75d251461066e57806352d1902d14610676578063556f0dc71461069c57600080fd5b806345977d03116102df57806345977d03146105ee57806346951954146106015780634b2763b3146106145780634b61cc331461062757600080fd5b8063386fa221146105a257806339509351146105b557806341b706be146105c857806342fe0980146105db57600080fd5b80631863e809116103885780632704839711610357578063270483971461051f578063282a050b146105325780632ec8eec71461055a578063313ce5671461058d57600080fd5b80631863e809146104ac57806320bc4425146104bf57806323b872dd146104f9578063245887fc1461050c57600080fd5b806311bcc81e116103c457806311bcc81e1461046157806312a6a3f81461047457806316d055d61461048757806318160ddd1461049a57600080fd5b806306e48538146103f657806306fdde0314610414578063090c415e14610429578063095ea7b31461043e575b600080fd5b6103fe61099a565b60405161040b9190613df5565b60405180910390f35b61041c6109ab565b60405161040b9190613e92565b61043c610437366004613f05565b610a3d565b005b61045161044c366004613f60565b610af0565b604051901515815260200161040b565b61043c61046f366004613f8c565b610b07565b61043c610482366004613fa5565b610b36565b61043c610495366004613ff0565b610c19565b6003545b60405190815260200161040b565b61043c6104ba366004614104565b610c75565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161040b565b610451610507366004614196565b610f15565b61043c61051a366004613f60565b610f2b565b61043c61052d3660046141d7565b610fa4565b610545610540366004613f8c565b611040565b6040805192835260208301919091520161040b565b61056d6105683660046141f9565b611055565b60408051948552602085019390935291830152606082015260800161040b565b60125b60405160ff909116815260200161040b565b6103fe6105b03660046141f9565b6110f8565b6104516105c3366004613f60565b61119b565b61043c6105d6366004613ff0565b6111d7565b61043c6105e936600461426d565b611203565b61043c6105fc366004613f8c565b6112e4565b61043c61060f3660046141f9565b611310565b61043c610622366004614196565b6114ef565b61063a6106353660046142ff565b611571565b60405161040b9190614345565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b6104e16115b6565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001961049e565b600161049e565b61043c6106b136600461437d565b6115e0565b61043c6106c4366004614196565b611637565b61043c6106d73660046143cc565b61168b565b61043c6106ea366004614196565b611739565b61063a6106fd36600461446a565b611759565b6104e161179b565b601f61049e565b61049e61071f3660046141f9565b6117b3565b6104516107323660046141f9565b6117dc565b61043c610745366004613f60565b611864565b61043c6107583660046141f9565b611890565b600e54600160a01b900460ff16610590565b61043c61077d3660046141f9565b611984565b61041c6119d5565b61043c6119e4565b61043c6107a036600461437d565b611aa6565b61043c6107b336600461449f565b611afa565b61043c6107c6366004613fa5565b611b40565b61043c6107d93660046141f9565b611bea565b6104516107ec366004613f60565b611bfe565b6104516107ff366004613f60565b611c4d565b610451610812366004613f60565b611c5b565b6104516108253660046141f9565b611cac565b61043c61083836600461449f565b611d34565b61043c61084b366004614196565b611d7c565b61043c61085e3660046144f7565b611e14565b61043c610871366004613f60565b611e7c565b61043c610884366004613f60565b611ef1565b610451610897366004614562565b611fda565b6104516108aa366004613f60565b611fe8565b61049e6108bd366004614562565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b6108fb6108f6366004613f60565b612002565b6040805193845260208401929092529082015260600161040b565b61043c61092436600461459b565b61213c565b600e546001600160a01b03166104e1565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b61043c61096f3660046141f9565b612213565b61043c610982366004614641565b612264565b61043c610995366004614688565b612305565b60606109a66012612356565b905090565b6060600f80546109ba906146c6565b80601f01602080910402602001604051908101604052809291908181526020018280546109e6906146c6565b8015610a335780601f10610a0857610100808354040283529160200191610a33565b820191906000526020600020905b815481529060010190602001808311610a1657829003601f168201915b5050505050905090565b6000338585604051602001610a5493929190614700565b604051602081830303815290604052805190602001209050610aa9818484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610afd3384846123fd565b5060015b92915050565b610b333333338460405180602001604052806000815250604051806020016040528060008152506124ad565b50565b6040513390600090610b4e9083908790602001614749565b60408051601f1981840301815291905280516020909101209050610b72818461266d565b15610b905760405163782a90fb60e11b815260040160405180910390fd5b610bcd818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610c0a93929190614786565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610c625760405163c51efddd60e01b815260040160405180910390fd5b610c6e848484846126a9565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfd91906147c7565b610d1a5760405163327fd99160e21b815260040160405180910390fd5b6000610d246127c9565b90506001600160a01b038116610d375750845b600085610d445786610d46565b815b905060008313610de357610d59836147fa565b610d628561290e565b14610d6f57610d6f614816565b610d788461290e565b6001600160a01b03821660009081526002602052604081208054909190610da090849061482c565b90915550506001600160a01b03851660009081526002602052604081208054859290610dcd90849061482c565b90915550610dde905085828661297c565b610ead565b8515610df157610df1614816565b82610dfb8561290e565b610e05919061482c565b6001600160a01b03831660009081526002602052604081208054909190610e2d908490614854565b90915550610e3c90508461290e565b6001600160a01b03881660009081526002602052604081208054909190610e6490849061482c565b90915550506001600160a01b03851660009081526002602052604081208054859290610e9190849061482c565b90915550610ea2905082888661297c565b610ead82868561297c565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610f02959493929190614874565b60405180910390a4505050505050505050565b6000610f23338585856126a9565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610f745760405163c51efddd60e01b815260040160405180910390fd5b610fa03383848460405180602001604052806000815250604051806020016040528060008152506124ad565b5050565b6040513390600090610fbc9083908690602001614749565b604051602081830303815290604052805190602001209050610fde818461266d565b610ffb5760405163dae1880960e01b815260040160405180910390fd5b61100581846129af565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b60008061104c836129d0565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dd91906148a7565b90506110e98582612002565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611173573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b0191908101906148c0565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610afd9185906111d2908690614971565b6123fd565b3330146111f757604051630fff4cc960e31b815260040160405180910390fd5b610c6e838584846126a9565b600054610100900460ff16158080156112235750600054600160ff909116105b8061123d5750303b15801561123d575060005460ff166001145b6112625760405162461bcd60e51b815260040161125990614984565b60405180910390fd5b6000805460ff191660011790558015611285576000805461ff0019166101001790555b6112958787878787876000612a8c565b80156112db576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610b33333333846040518060200160405280600081525060405180602001604052806000815250612b54565b6000611328600080516020614d538339815191525490565b905060006001600160a01b038216156113415781611363565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461138e57604051630484acab60e01b815260040160405180910390fd5b61139783612d07565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f991906149d2565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806114cc5750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa158015611472573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149691906149d2565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156114ea5760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146115385760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546114ea90849084906111d2908590614971565b6060600085858560405160200161158a93929190614700565b6040516020818303038152906040528051906020012090506115ac8184612f41565b9695505050505050565b60006109a67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6116313333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612b54915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116805760405163c51efddd60e01b815260040160405180910390fd5b6114ea8383836123fd565b336116986012828a612fd0565b6116b55760405163f7f0222760e01b815260040160405180910390fd5b61172f8189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525060019250613079915050565b5050505050505050565b33301461168057604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611770929190614749565b6040516020818303038152906040528051906020012090506117928184612f41565b95945050505050565b60006109a6600080516020614d538339815191525490565b6000806117bf83611055565b5050509050600081126117d257806117d5565b60005b9392505050565b6000610b01827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611840573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa91906148a7565b610fa03333848460405180602001604052806000815250604051806020016040528060008152506124ad565b60006118a8600080516020614d538339815191525490565b905060006001600160a01b038216156118c157816118e3565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461190e57604051630484acab60e01b815260040160405180910390fd5b6000611926600080516020614d538339815191525490565b905061193e84600080516020614d5383398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611991601282846130f2565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b6060601080546109ba906146c6565b600054610100900460ff1615808015611a045750600054600160ff909116105b80611a1e5750303b158015611a1e575060005460ff166001145b611a3a5760405162461bcd60e51b815260040161125990614984565b6000805460ff191660011790558015611a5d576000805461ff0019166101001790555b8015610b33576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6116313333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506130799050565b333014611b1a57604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526114ea913391869186919015159086906131f6565b6040513390600090611b589083908790602001614749565b604051602081830303815290604052805190602001209050611bad818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506123bc92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610c0a93929190614786565b610fa0333383611bf9336117b3565b6126a9565b6000610afd33846111d2856040518060600160405280602a8152602001614d73602a91393360009081526011602090815260408083206001600160a01b038d16845290915290205491906132c3565b60006117d5333385856126a9565b600080600080611c6b8686612002565b9250925092506000611c93828411611c8457600061290e565b611c8e83856149ef565b61290e565b611c9d908561482c565b60001315979650505050505050565b6000610b01827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081291906148a7565b333014611d5457604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526114ea9133918691869190151590819087906132ef565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611dc55760405163c51efddd60e01b815260040160405180910390fd5b6114ea83836111d2846040518060600160405280602a8152602001614d73602a91396001600160a01b03808a166000908152601160209081526040808320938c168352929052205491906132c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611e5d5760405163c51efddd60e01b815260040160405180910390fd5b6116313385858585604051806020016040528060008152506001613079565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611ec55760405163c51efddd60e01b815260040160405180910390fd5b610fa0338384846040518060200160405280600081525060405180602001604052806000815250612b54565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7991906147c7565b611f965760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b038216600090815260026020526040902054611fba90829061482c565b6001600160a01b0390921660009081526002602052604090209190915550565b60006117d560128484612fd0565b600080611ff58484612002565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080612027866110f8565b905060005b815181101561213357600080600084848151811061204c5761204c614a02565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa1580156120ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cf9190614a18565b919450925090506120e08288614971565b96506120ec8187614971565b95506121098183116120ff57600061290e565b611c8e82846149ef565b612113848a61482c565b61211d9190614854565b97505050508061212c90614a46565b905061202c565b50509250925092565b600054610100900460ff161580801561215c5750600054600160ff909116105b806121765750303b158015612176575060005460ff166001145b6121925760405162461bcd60e51b815260040161125990614984565b6000805460ff1916600117905580156121b5576000805461ff0019166101001790555b6121c488888888888888612a8c565b801561172f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b33612220601282846133bd565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b3361227160128289612fd0565b61228e5760405163f7f0222760e01b815260040160405180910390fd5b6112db8188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506124ad92505050565b6114ea3333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080516020810190915290815292506124ad915050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156123b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612392575b50505050509050919050565b60005b81518110156114ea5760008282815181106123dc576123dc614a02565b60200260200101519050808285015550806123f690614a46565b90506123bf565b6001600160a01b03831661242457604051638163862760e01b815260040160405180910390fd5b6001600160a01b03821661244b576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600e546001600160a01b03166124d657604051637bce7b2b60e11b815260040160405180910390fd5b6000806124e2856129d0565b915091506124f988888387516000141588886131f6565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612542573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256691906148a7565b600e54909150612580906001600160a01b031688856134b5565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ed91906148a7565b905060006125fb82846149ef565b905080851461261d57604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d8560405161265891815260200190565b60405180910390a25050505050505050505050565b6000805b8281101561269f5783810154801561268e57600192505050610b01565b5061269881614a46565b9050612671565b5060009392505050565b60006001600160a01b0384166126d25760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0383166126f95760405163e219bd3960e01b815260040160405180910390fd5b600033905061272a818686866040518060200160405280600081525060405180602001604052806000815250613518565b846001600160a01b0316866001600160a01b0316146127bd576127bd85876111d2866040518060600160405280602d8152602001614dbd602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020546132c39092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284e91906149d2565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa1580156128e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290891906149d2565b91505090565b60006001600160ff1b038211156129785760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401611259565b5090565b816001600160a01b0316836001600160a01b0316600080516020614d9d833981519152836040516124a091815260200190565b60005b818110156114ea576000838201556129c981614a46565b90506129b2565b600e54600090819081906012600160a01b90910460ff161015612a2f57600e54612a0590600160a01b900460ff166012614a5f565b612a1090600a614b5c565b9050612a1c8185614b6b565b9250612a288184614b8d565b9150612a86565b600e546012600160a01b90910460ff161115612a7f57600e54612a5e90601290600160a01b900460ff16614a5f565b612a6990600a614b5c565b9050612a758185614b8d565b9250839150612a86565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612ac1858783614bf2565b506010612acf838583614bf2565b50612ae681600080516020614d5383398151915255565b612aef306135b7565b6040516000808252908190600080516020614d9d8339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612b7d57604051637bce7b2b60e11b815260040160405180910390fd5b600080612b89856129d0565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfe91906148a7565b600e54909150612c19906001600160a01b03168930866136e5565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8691906148a7565b90506000612c9483836149ef565b9050808514612cb657604051631c7c26d360e31b815260040160405180910390fd5b8651612ccc908c908b9087901515808c8c6132ef565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161265891815260200190565b6000612d317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612d875760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401611259565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de991906148a7565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612e635760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401611259565b6001600160a01b0381163003612ebb5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401611259565b612ee3817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611a9b565b6060816001600160401b03811115612f5b57612f5b614041565b604051908082528060200260200182016040528015612f84578160200160208202803683370190505b50905060005b82811015612fc957600081850154905080838381518110612fad57612fad614a02565b602090810291909101015250612fc281614a46565b9050612f8a565b5092915050565b6000816001600160a01b0316836001600160a01b0316148061303f57506001600160a01b038316600090815260018501602052604090205460ff16801561303f57506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610f2357506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166130a05760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166130c75760405163e219bd3960e01b815260040160405180910390fd5b6130d587878787878761371d565b6130e3878787878787613518565b6112db87878787878787613844565b806001600160a01b0316826001600160a01b0316036131695760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401611259565b6001600160a01b038116600090815260018401602052604090205460ff16156131bf576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661321d57604051632e8aac6160e21b815260040160405180910390fd5b8215613232576132328686600087868661371d565b61323c8585613994565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a409886858560405161328393929190614cb1565b60405180910390a36040518481526000906001600160a01b03871690600080516020614d9d833981519152906020015b60405180910390a3505050505050565b600081848411156132e75760405162461bcd60e51b81526004016112599190613e92565b505050900390565b6001600160a01b03861661331657604051630d24315760e01b815260040160405180910390fd5b6133208686613aa4565b8315613336576133368760008888868689613844565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d87858560405161337d93929190614cb1565b60405180910390a36040518581526001600160a01b03871690600090600080516020614d9d8339815191529060200160405180910390a350505050505050565b336001600160a01b038216036134285760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401611259565b6001600160a01b038116600090815260018401602052604090205460ff1615613482576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b0383166024820152604481018290526114ea90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613afe565b61352b85856135268661290e565b613bd3565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161357c93929190614cb1565b60405180910390a4836001600160a01b0316856001600160a01b0316600080516020614d9d833981519152856040516132b391815260200190565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b15801561363857600080fd5b505af115801561364c573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b1580156136d157600080fd5b505af1158015610c6e573d6000803e3d6000fd5b6040516001600160a01b03808516602483015283166044820152606481018290526116319085906323b872dd60e01b906084016134e1565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa15801561379e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c291906149d2565b90506001600160a01b038116156112db57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613809908a908a908a908a908a908a90600401614cdc565b600060405180830381600087803b15801561382357600080fd5b505af1158015613837573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa1580156138c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e991906149d2565b90506001600160a01b03811615613965576040516223de2960e01b81526001600160a01b038216906223de299061392e908b908b908b908b908b908b90600401614cdc565b600060405180830381600087803b15801561394857600080fd5b505af115801561395c573d6000803e3d6000fd5b5050505061172f565b811561172f576001600160a01b0386163b1561172f5760405163fe737d0560e01b815260040160405180910390fd5b6000613a1c837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f691906148a7565b50509050613a298261290e565b811215613a495760405163043b37d160e21b815260040160405180910390fd5b613a528261290e565b6001600160a01b038416600090815260026020526040902054613a759190614854565b6001600160a01b038416600090815260026020526040902055600354613a9c9083906149ef565b600355505050565b613aad8161290e565b6001600160a01b038316600090815260026020526040902054613ad0919061482c565b6001600160a01b038316600090815260026020526040902055600354613af7908290614971565b6003555050565b6000613b53826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613cd29092919063ffffffff16565b9050805160001480613b74575080806020019051810190613b7491906147c7565b6114ea5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611259565b6000613c37847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139f8573d6000803e3d6000fd5b5050905081811215613c5c57604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613c80908390614854565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613cb090839061482c565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610f23848460008585600080866001600160a01b03168587604051613cf99190614d36565b60006040518083038185875af1925050503d8060008114613d36576040519150601f19603f3d011682016040523d82523d6000602084013e613d3b565b606091505b5091509150613d4c87838387613d57565b979650505050505050565b60608315613dc6578251600003613dbf576001600160a01b0385163b613dbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611259565b5081610f23565b610f238383815115613ddb5781518083602001fd5b8060405162461bcd60e51b81526004016112599190613e92565b6020808252825182820181905260009190848201906040850190845b81811015613e365783516001600160a01b031683529284019291840191600101613e11565b50909695505050505050565b60005b83811015613e5d578181015183820152602001613e45565b50506000910152565b60008151808452613e7e816020860160208601613e42565b601f01601f19169290920160200192915050565b6020815260006117d56020830184613e66565b6001600160a01b0381168114610b3357600080fd5b60008083601f840112613ecc57600080fd5b5081356001600160401b03811115613ee357600080fd5b6020830191508360208260051b8501011115613efe57600080fd5b9250929050565b60008060008060608587031215613f1b57600080fd5b8435613f2681613ea5565b93506020850135925060408501356001600160401b03811115613f4857600080fd5b613f5487828801613eba565b95989497509550505050565b60008060408385031215613f7357600080fd5b8235613f7e81613ea5565b946020939093013593505050565b600060208284031215613f9e57600080fd5b5035919050565b600080600060408486031215613fba57600080fd5b8335925060208401356001600160401b03811115613fd757600080fd5b613fe386828701613eba565b9497909650939450505050565b6000806000806080858703121561400657600080fd5b843561401181613ea5565b9350602085013561402181613ea5565b9250604085013561403181613ea5565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561407f5761407f614041565b604052919050565b600082601f83011261409857600080fd5b81356001600160401b038111156140b1576140b1614041565b6140c4601f8201601f1916602001614057565b8181528460208386010111156140d957600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610b3357600080fd5b600080600080600080600060e0888a03121561411f57600080fd5b8735965060208801356001600160401b0381111561413c57600080fd5b6141488a828b01614087565b965050604088013561415981613ea5565b94506060880135614169816140f6565b9350608088013561417981613ea5565b9699959850939692959460a0840135945060c09093013592915050565b6000806000606084860312156141ab57600080fd5b83356141b681613ea5565b925060208401356141c681613ea5565b929592945050506040919091013590565b600080604083850312156141ea57600080fd5b50508035926020909101359150565b60006020828403121561420b57600080fd5b81356117d581613ea5565b803560ff8116811461422757600080fd5b919050565b60008083601f84011261423e57600080fd5b5081356001600160401b0381111561425557600080fd5b602083019150836020828501011115613efe57600080fd5b6000806000806000806080878903121561428657600080fd5b863561429181613ea5565b955061429f60208801614216565b945060408701356001600160401b03808211156142bb57600080fd5b6142c78a838b0161422c565b909650945060608901359150808211156142e057600080fd5b506142ed89828a0161422c565b979a9699509497509295939492505050565b6000806000806080858703121561431557600080fd5b843561432081613ea5565b9350602085013561433081613ea5565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b81811015613e3657835183529284019291840191600101614361565b6000806000806060858703121561439357600080fd5b843561439e81613ea5565b93506020850135925060408501356001600160401b038111156143c057600080fd5b613f548782880161422c565b600080600080600080600060a0888a0312156143e757600080fd5b87356143f281613ea5565b9650602088013561440281613ea5565b95506040880135945060608801356001600160401b038082111561442557600080fd5b6144318b838c0161422c565b909650945060808a013591508082111561444a57600080fd5b506144578a828b0161422c565b989b979a50959850939692959293505050565b60008060006060848603121561447f57600080fd5b833561448a81613ea5565b95602085013595506040909401359392505050565b6000806000606084860312156144b457600080fd5b83356144bf81613ea5565b92506020840135915060408401356001600160401b038111156144e157600080fd5b6144ed86828701614087565b9150509250925092565b6000806000806080858703121561450d57600080fd5b843561451881613ea5565b9350602085013561452881613ea5565b92506040850135915060608501356001600160401b0381111561454a57600080fd5b61455687828801614087565b91505092959194509250565b6000806040838503121561457557600080fd5b823561458081613ea5565b9150602083013561459081613ea5565b809150509250929050565b600080600080600080600060a0888a0312156145b657600080fd5b87356145c181613ea5565b96506145cf60208901614216565b955060408801356001600160401b03808211156145eb57600080fd5b6145f78b838c0161422c565b909750955060608a013591508082111561461057600080fd5b5061461d8a828b0161422c565b909450925050608088013561463181613ea5565b8091505092959891949750929550565b6000806000806000806080878903121561465a57600080fd5b863561466581613ea5565b95506020870135945060408701356001600160401b03808211156142bb57600080fd5b60008060006040848603121561469d57600080fd5b8335925060208401356001600160401b038111156146ba57600080fd5b613fe38682870161422c565b600181811c908216806146da57607f821691505b6020821081036146fa57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b038311156147ad57600080fd5b8260051b8085606085013791909101606001949350505050565b6000602082840312156147d957600080fd5b81516117d5816140f6565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b820161480f5761480f6147e4565b5060000390565b634e487b7160e01b600052600160045260246000fd5b808201828112600083128015821682158216171561484c5761484c6147e4565b505092915050565b8181036000831280158383131683831282161715612fc957612fc96147e4565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613d4c60a0830184613e66565b6000602082840312156148b957600080fd5b5051919050565b600060208083850312156148d357600080fd5b82516001600160401b03808211156148ea57600080fd5b818501915085601f8301126148fe57600080fd5b81518181111561491057614910614041565b8060051b9150614921848301614057565b818152918301840191848101908884111561493b57600080fd5b938501935b83851015614965578451925061495583613ea5565b8282529385019390850190614940565b98975050505050505050565b80820180821115610b0157610b016147e4565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156149e457600080fd5b81516117d581613ea5565b81810381811115610b0157610b016147e4565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614a2d57600080fd5b8351925060208401519150604084015190509250925092565b600060018201614a5857614a586147e4565b5060010190565b60ff8281168282160390811115610b0157610b016147e4565b600181815b80851115614ab3578160001904821115614a9957614a996147e4565b80851615614aa657918102915b93841c9390800290614a7d565b509250929050565b600082614aca57506001610b01565b81614ad757506000610b01565b8160018114614aed5760028114614af757614b13565b6001915050610b01565b60ff841115614b0857614b086147e4565b50506001821b610b01565b5060208310610133831016604e8410600b8410161715614b36575081810a610b01565b614b408383614a78565b8060001904821115614b5457614b546147e4565b029392505050565b60006117d560ff841683614abb565b600082614b8857634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610b0157610b016147e4565b601f8211156114ea57600081815260208120601f850160051c81016020861015614bcb5750805b601f850160051c820191505b81811015614bea57828155600101614bd7565b505050505050565b6001600160401b03831115614c0957614c09614041565b614c1d83614c1783546146c6565b83614ba4565b6000601f841160018114614c515760008515614c395750838201355b600019600387901b1c1916600186901b178355610c6e565b600083815260209020601f19861690835b82811015614c825786850135825560209485019460019092019101614c62565b5086821015614c9f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201526000614cca6060830185613e66565b82810360408401526115ac8185613e66565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090614d1790830185613e66565b82810360a0840152614d298185613e66565b9998505050505050505050565b60008251614d48818460208701613e42565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201b0f07fb8111bc61d4559d9530077ede9cc91f70af54c0881fc9af719afe0e8764736f6c63430008130033";
2055
2055
  const isSuperArgs = (xs) => xs.length > 1;
2056
2056
  export class SuperTokenStorageLayoutTester__factory extends ContractFactory {
2057
2057
  constructor(...args) {