@tradetrust-yl/token-registry 5.1.1

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 (465) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +446 -0
  3. package/dist/artifacts/TitleEscrow.sol/TitleEscrow.json +823 -0
  4. package/dist/artifacts/TitleEscrowFactory.sol/TitleEscrowFactory.json +123 -0
  5. package/dist/artifacts/TradeTrustToken.sol/TradeTrustToken.json +778 -0
  6. package/dist/artifacts/base/RegistryAccess.sol/RegistryAccess.dbg.json +4 -0
  7. package/dist/artifacts/base/RegistryAccess.sol/RegistryAccess.json +321 -0
  8. package/dist/artifacts/base/SBTUpgradeable.sol/SBTUpgradeable.dbg.json +4 -0
  9. package/dist/artifacts/base/SBTUpgradeable.sol/SBTUpgradeable.json +202 -0
  10. package/dist/artifacts/base/TradeTrustSBT.sol/TradeTrustSBT.dbg.json +4 -0
  11. package/dist/artifacts/base/TradeTrustSBT.sol/TradeTrustSBT.json +374 -0
  12. package/dist/artifacts/base/TradeTrustTokenBase.sol/TradeTrustTokenBase.dbg.json +4 -0
  13. package/dist/artifacts/base/TradeTrustTokenBase.sol/TradeTrustTokenBase.json +757 -0
  14. package/dist/artifacts/base/TradeTrustTokenBaseURI.sol/TradeTrustTokenBaseURI.dbg.json +4 -0
  15. package/dist/artifacts/base/TradeTrustTokenBaseURI.sol/TradeTrustTokenBaseURI.json +655 -0
  16. package/dist/artifacts/base/TradeTrustTokenBurnable.sol/TradeTrustTokenBurnable.dbg.json +4 -0
  17. package/dist/artifacts/base/TradeTrustTokenBurnable.sol/TradeTrustTokenBurnable.json +660 -0
  18. package/dist/artifacts/base/TradeTrustTokenMintable.sol/TradeTrustTokenMintable.dbg.json +4 -0
  19. package/dist/artifacts/base/TradeTrustTokenMintable.sol/TradeTrustTokenMintable.json +676 -0
  20. package/dist/artifacts/base/TradeTrustTokenRestorable.sol/TradeTrustTokenRestorable.dbg.json +4 -0
  21. package/dist/artifacts/base/TradeTrustTokenRestorable.sol/TradeTrustTokenRestorable.json +666 -0
  22. package/dist/artifacts/interfaces/IERC721MetadataUpgradeable.sol/IERC721MetadataUpgradeable.dbg.json +4 -0
  23. package/dist/artifacts/interfaces/IERC721MetadataUpgradeable.sol/IERC721MetadataUpgradeable.json +166 -0
  24. package/dist/artifacts/interfaces/ISBTUpgradeable.sol/ISBTUpgradeable.dbg.json +4 -0
  25. package/dist/artifacts/interfaces/ISBTUpgradeable.sol/ISBTUpgradeable.json +121 -0
  26. package/dist/artifacts/interfaces/ITitleEscrow.sol/ITitleEscrow.dbg.json +4 -0
  27. package/dist/artifacts/interfaces/ITitleEscrow.sol/ITitleEscrow.json +637 -0
  28. package/dist/artifacts/interfaces/ITitleEscrowFactory.sol/ITitleEscrowFactory.dbg.json +4 -0
  29. package/dist/artifacts/interfaces/ITitleEscrowFactory.sol/ITitleEscrowFactory.json +92 -0
  30. package/dist/artifacts/interfaces/ITitleEscrowSignable.sol/ITitleEscrowSignable.dbg.json +4 -0
  31. package/dist/artifacts/interfaces/ITitleEscrowSignable.sol/ITitleEscrowSignable.json +784 -0
  32. package/dist/artifacts/interfaces/ITradeTrustSBT.sol/ITradeTrustSBT.dbg.json +4 -0
  33. package/dist/artifacts/interfaces/ITradeTrustSBT.sol/ITradeTrustSBT.json +219 -0
  34. package/dist/artifacts/interfaces/ITradeTrustToken.sol/ITradeTrustToken.dbg.json +4 -0
  35. package/dist/artifacts/interfaces/ITradeTrustToken.sol/ITradeTrustToken.json +295 -0
  36. package/dist/artifacts/interfaces/ITradeTrustTokenBurnable.sol/ITradeTrustTokenBurnable.dbg.json +4 -0
  37. package/dist/artifacts/interfaces/ITradeTrustTokenBurnable.sol/ITradeTrustTokenBurnable.json +29 -0
  38. package/dist/artifacts/interfaces/ITradeTrustTokenMintable.sol/ITradeTrustTokenMintable.dbg.json +4 -0
  39. package/dist/artifacts/interfaces/ITradeTrustTokenMintable.sol/ITradeTrustTokenMintable.json +45 -0
  40. package/dist/artifacts/interfaces/ITradeTrustTokenRestorable.sol/ITradeTrustTokenRestorable.dbg.json +4 -0
  41. package/dist/artifacts/interfaces/ITradeTrustTokenRestorable.sol/ITradeTrustTokenRestorable.json +35 -0
  42. package/dist/artifacts/interfaces/RegistryAccessErrors.sol/RegistryAccessErrors.dbg.json +4 -0
  43. package/dist/artifacts/interfaces/RegistryAccessErrors.sol/RegistryAccessErrors.json +16 -0
  44. package/dist/artifacts/interfaces/SigHelperErrors.sol/SigHelperErrors.dbg.json +4 -0
  45. package/dist/artifacts/interfaces/SigHelperErrors.sol/SigHelperErrors.json +16 -0
  46. package/dist/artifacts/interfaces/TDocDeployerErrors.sol/TDocDeployerErrors.dbg.json +4 -0
  47. package/dist/artifacts/interfaces/TDocDeployerErrors.sol/TDocDeployerErrors.json +37 -0
  48. package/dist/artifacts/interfaces/TitleEscrowErrors.sol/TitleEscrowErrors.dbg.json +4 -0
  49. package/dist/artifacts/interfaces/TitleEscrowErrors.sol/TitleEscrowErrors.json +119 -0
  50. package/dist/artifacts/interfaces/TitleEscrowFactoryErrors.sol/TitleEscrowFactoryErrors.dbg.json +4 -0
  51. package/dist/artifacts/interfaces/TitleEscrowFactoryErrors.sol/TitleEscrowFactoryErrors.json +16 -0
  52. package/dist/artifacts/interfaces/TitleEscrowSignableErrors.sol/TitleEscrowSignableErrors.dbg.json +4 -0
  53. package/dist/artifacts/interfaces/TitleEscrowSignableErrors.sol/TitleEscrowSignableErrors.json +69 -0
  54. package/dist/artifacts/interfaces/TradeTrustTokenErrors.sol/TradeTrustTokenErrors.dbg.json +4 -0
  55. package/dist/artifacts/interfaces/TradeTrustTokenErrors.sol/TradeTrustTokenErrors.json +36 -0
  56. package/dist/artifacts/mocks/ERC721ReceiverMock.sol/ERC721ReceiverMock.dbg.json +4 -0
  57. package/dist/artifacts/mocks/ERC721ReceiverMock.sol/ERC721ReceiverMock.json +101 -0
  58. package/dist/artifacts/mocks/SBTUpgradeableMock.sol/SBTUpgradeableMock.dbg.json +4 -0
  59. package/dist/artifacts/mocks/SBTUpgradeableMock.sol/SBTUpgradeableMock.json +304 -0
  60. package/dist/artifacts/mocks/SigHelperMock.sol/SigHelperMock.dbg.json +4 -0
  61. package/dist/artifacts/mocks/SigHelperMock.sol/SigHelperMock.json +182 -0
  62. package/dist/artifacts/mocks/SimpleCaller.sol/SimpleCaller.dbg.json +4 -0
  63. package/dist/artifacts/mocks/SimpleCaller.sol/SimpleCaller.json +35 -0
  64. package/dist/artifacts/mocks/TitleEscrowFactoryCallerMock.sol/TitleEscrowFactoryCallerMock.dbg.json +4 -0
  65. package/dist/artifacts/mocks/TitleEscrowFactoryCallerMock.sol/TitleEscrowFactoryCallerMock.json +29 -0
  66. package/dist/artifacts/mocks/TitleEscrowFactoryGetterMock.sol/TitleEscrowFactoryGetterMock.dbg.json +4 -0
  67. package/dist/artifacts/mocks/TitleEscrowFactoryGetterMock.sol/TitleEscrowFactoryGetterMock.json +66 -0
  68. package/dist/artifacts/mocks/TitleEscrowMock.sol/TitleEscrowMock.dbg.json +4 -0
  69. package/dist/artifacts/mocks/TitleEscrowMock.sol/TitleEscrowMock.json +869 -0
  70. package/dist/artifacts/mocks/TradeTrustTokenMock.sol/TradeTrustTokenMock.dbg.json +4 -0
  71. package/dist/artifacts/mocks/TradeTrustTokenMock.sol/TradeTrustTokenMock.json +815 -0
  72. package/dist/artifacts/presets/TitleEscrowSignable.sol/TitleEscrowSignable.dbg.json +4 -0
  73. package/dist/artifacts/presets/TitleEscrowSignable.sol/TitleEscrowSignable.json +1132 -0
  74. package/dist/artifacts/presets/TradeTrustTokenStandard.sol/TradeTrustTokenStandard.dbg.json +4 -0
  75. package/dist/artifacts/presets/TradeTrustTokenStandard.sol/TradeTrustTokenStandard.json +775 -0
  76. package/dist/artifacts/utils/SigHelper.sol/SigHelper.dbg.json +4 -0
  77. package/dist/artifacts/utils/SigHelper.sol/SigHelper.json +67 -0
  78. package/dist/artifacts/utils/TDocDeployer.sol/TDocDeployer.dbg.json +4 -0
  79. package/dist/artifacts/utils/TDocDeployer.sol/TDocDeployer.json +402 -0
  80. package/dist/constants/contract-address.js +56 -0
  81. package/dist/constants/contract-interface-id.js +18 -0
  82. package/dist/constants/contract-interfaces.js +17 -0
  83. package/dist/constants/default-address.js +19 -0
  84. package/dist/constants/index.js +49 -0
  85. package/dist/constants/role-hash.js +24 -0
  86. package/dist/contracts/@openzeppelin/contracts/access/IAccessControl.js +13 -0
  87. package/dist/contracts/@openzeppelin/contracts/access/IAccessControl.ts +293 -0
  88. package/dist/contracts/@openzeppelin/contracts/access/index.js +5 -0
  89. package/dist/contracts/@openzeppelin/contracts/access/index.ts +5 -0
  90. package/dist/contracts/@openzeppelin/contracts/index.js +5 -0
  91. package/dist/contracts/@openzeppelin/contracts/index.ts +14 -0
  92. package/dist/contracts/@openzeppelin/contracts/interfaces/IERC1967.js +13 -0
  93. package/dist/contracts/@openzeppelin/contracts/interfaces/IERC1967.ts +169 -0
  94. package/dist/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js +5 -0
  95. package/dist/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts +91 -0
  96. package/dist/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js +5 -0
  97. package/dist/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +5 -0
  98. package/dist/contracts/@openzeppelin/contracts/interfaces/index.js +5 -0
  99. package/dist/contracts/@openzeppelin/contracts/interfaces/index.ts +7 -0
  100. package/dist/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.js +5 -0
  101. package/dist/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts +70 -0
  102. package/dist/contracts/@openzeppelin/contracts/proxy/ERC1967/index.js +5 -0
  103. package/dist/contracts/@openzeppelin/contracts/proxy/ERC1967/index.ts +5 -0
  104. package/dist/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.js +5 -0
  105. package/dist/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.ts +91 -0
  106. package/dist/contracts/@openzeppelin/contracts/proxy/beacon/index.js +5 -0
  107. package/dist/contracts/@openzeppelin/contracts/proxy/beacon/index.ts +5 -0
  108. package/dist/contracts/@openzeppelin/contracts/proxy/index.js +5 -0
  109. package/dist/contracts/@openzeppelin/contracts/proxy/index.ts +10 -0
  110. package/dist/contracts/@openzeppelin/contracts/proxy/utils/Initializable.js +11 -0
  111. package/dist/contracts/@openzeppelin/contracts/proxy/utils/Initializable.ts +106 -0
  112. package/dist/contracts/@openzeppelin/contracts/proxy/utils/index.js +5 -0
  113. package/dist/contracts/@openzeppelin/contracts/proxy/utils/index.ts +5 -0
  114. package/dist/contracts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.js +5 -0
  115. package/dist/contracts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.ts +111 -0
  116. package/dist/contracts/@openzeppelin/contracts/token/ERC721/index.js +5 -0
  117. package/dist/contracts/@openzeppelin/contracts/token/ERC721/index.ts +5 -0
  118. package/dist/contracts/@openzeppelin/contracts/token/index.js +5 -0
  119. package/dist/contracts/@openzeppelin/contracts/token/index.ts +6 -0
  120. package/dist/contracts/@openzeppelin/contracts/utils/Address.js +5 -0
  121. package/dist/contracts/@openzeppelin/contracts/utils/Address.ts +70 -0
  122. package/dist/contracts/@openzeppelin/contracts/utils/Errors.js +5 -0
  123. package/dist/contracts/@openzeppelin/contracts/utils/Errors.ts +70 -0
  124. package/dist/contracts/@openzeppelin/contracts/utils/Pausable.js +12 -0
  125. package/dist/contracts/@openzeppelin/contracts/utils/Pausable.ts +151 -0
  126. package/dist/contracts/@openzeppelin/contracts/utils/Strings.js +5 -0
  127. package/dist/contracts/@openzeppelin/contracts/utils/Strings.ts +70 -0
  128. package/dist/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.js +5 -0
  129. package/dist/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.ts +70 -0
  130. package/dist/contracts/@openzeppelin/contracts/utils/cryptography/index.js +5 -0
  131. package/dist/contracts/@openzeppelin/contracts/utils/cryptography/index.ts +5 -0
  132. package/dist/contracts/@openzeppelin/contracts/utils/index.js +5 -0
  133. package/dist/contracts/@openzeppelin/contracts/utils/index.ts +14 -0
  134. package/dist/contracts/@openzeppelin/contracts/utils/introspection/IERC165.js +5 -0
  135. package/dist/contracts/@openzeppelin/contracts/utils/introspection/IERC165.ts +95 -0
  136. package/dist/contracts/@openzeppelin/contracts/utils/introspection/index.js +5 -0
  137. package/dist/contracts/@openzeppelin/contracts/utils/introspection/index.ts +5 -0
  138. package/dist/contracts/@openzeppelin/contracts/utils/math/SafeCast.js +5 -0
  139. package/dist/contracts/@openzeppelin/contracts/utils/math/SafeCast.ts +70 -0
  140. package/dist/contracts/@openzeppelin/contracts/utils/math/index.js +5 -0
  141. package/dist/contracts/@openzeppelin/contracts/utils/math/index.ts +5 -0
  142. package/dist/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.js +14 -0
  143. package/dist/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.ts +360 -0
  144. package/dist/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.js +12 -0
  145. package/dist/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.ts +187 -0
  146. package/dist/contracts/@openzeppelin/contracts-upgradeable/access/index.js +5 -0
  147. package/dist/contracts/@openzeppelin/contracts-upgradeable/access/index.ts +6 -0
  148. package/dist/contracts/@openzeppelin/contracts-upgradeable/index.js +5 -0
  149. package/dist/contracts/@openzeppelin/contracts-upgradeable/index.ts +10 -0
  150. package/dist/contracts/@openzeppelin/contracts-upgradeable/proxy/index.js +5 -0
  151. package/dist/contracts/@openzeppelin/contracts-upgradeable/proxy/index.ts +6 -0
  152. package/dist/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.js +11 -0
  153. package/dist/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts +106 -0
  154. package/dist/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.js +12 -0
  155. package/dist/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts +197 -0
  156. package/dist/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/index.js +5 -0
  157. package/dist/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +6 -0
  158. package/dist/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.js +11 -0
  159. package/dist/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts +106 -0
  160. package/dist/contracts/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.js +13 -0
  161. package/dist/contracts/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.ts +184 -0
  162. package/dist/contracts/@openzeppelin/contracts-upgradeable/utils/index.js +5 -0
  163. package/dist/contracts/@openzeppelin/contracts-upgradeable/utils/index.ts +8 -0
  164. package/dist/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.js +11 -0
  165. package/dist/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.ts +131 -0
  166. package/dist/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/index.js +5 -0
  167. package/dist/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts +5 -0
  168. package/dist/contracts/@openzeppelin/index.js +5 -0
  169. package/dist/contracts/@openzeppelin/index.ts +8 -0
  170. package/dist/contracts/common.js +5 -0
  171. package/dist/contracts/common.ts +132 -0
  172. package/dist/contracts/contracts/TitleEscrow.js +20 -0
  173. package/dist/contracts/contracts/TitleEscrow.ts +874 -0
  174. package/dist/contracts/contracts/TitleEscrowFactory.js +11 -0
  175. package/dist/contracts/contracts/TitleEscrowFactory.ts +171 -0
  176. package/dist/contracts/contracts/TradeTrustToken.js +19 -0
  177. package/dist/contracts/contracts/TradeTrustToken.ts +819 -0
  178. package/dist/contracts/contracts/base/RegistryAccess.js +14 -0
  179. package/dist/contracts/contracts/base/RegistryAccess.ts +424 -0
  180. package/dist/contracts/contracts/base/SBTUpgradeable.js +12 -0
  181. package/dist/contracts/contracts/base/SBTUpgradeable.ts +260 -0
  182. package/dist/contracts/contracts/base/TradeTrustSBT.js +16 -0
  183. package/dist/contracts/contracts/base/TradeTrustSBT.ts +442 -0
  184. package/dist/contracts/contracts/base/TradeTrustTokenBase.js +19 -0
  185. package/dist/contracts/contracts/base/TradeTrustTokenBase.ts +819 -0
  186. package/dist/contracts/contracts/base/TradeTrustTokenBaseURI.js +19 -0
  187. package/dist/contracts/contracts/base/TradeTrustTokenBaseURI.ts +736 -0
  188. package/dist/contracts/contracts/base/TradeTrustTokenBurnable.js +19 -0
  189. package/dist/contracts/contracts/base/TradeTrustTokenBurnable.ts +747 -0
  190. package/dist/contracts/contracts/base/TradeTrustTokenMintable.js +19 -0
  191. package/dist/contracts/contracts/base/TradeTrustTokenMintable.ts +757 -0
  192. package/dist/contracts/contracts/base/TradeTrustTokenRestorable.js +19 -0
  193. package/dist/contracts/contracts/base/TradeTrustTokenRestorable.ts +747 -0
  194. package/dist/contracts/contracts/base/index.js +5 -0
  195. package/dist/contracts/contracts/base/index.ts +12 -0
  196. package/dist/contracts/contracts/index.js +5 -0
  197. package/dist/contracts/contracts/index.ts +17 -0
  198. package/dist/contracts/contracts/interfaces/IERC721MetadataUpgradeable.js +11 -0
  199. package/dist/contracts/contracts/interfaces/IERC721MetadataUpgradeable.ts +222 -0
  200. package/dist/contracts/contracts/interfaces/ISBTUpgradeable.js +11 -0
  201. package/dist/contracts/contracts/interfaces/ISBTUpgradeable.ts +195 -0
  202. package/dist/contracts/contracts/interfaces/ITitleEscrow.js +19 -0
  203. package/dist/contracts/contracts/interfaces/ITitleEscrow.ts +798 -0
  204. package/dist/contracts/contracts/interfaces/ITitleEscrowFactory.js +11 -0
  205. package/dist/contracts/contracts/interfaces/ITitleEscrowFactory.ts +171 -0
  206. package/dist/contracts/contracts/interfaces/ITitleEscrowSignable.js +20 -0
  207. package/dist/contracts/contracts/interfaces/ITitleEscrowSignable.ts +923 -0
  208. package/dist/contracts/contracts/interfaces/ITradeTrustSBT.js +13 -0
  209. package/dist/contracts/contracts/interfaces/ITradeTrustSBT.ts +313 -0
  210. package/dist/contracts/contracts/interfaces/ITradeTrustToken.js +13 -0
  211. package/dist/contracts/contracts/interfaces/ITradeTrustToken.ts +380 -0
  212. package/dist/contracts/contracts/interfaces/ITradeTrustTokenBurnable.js +5 -0
  213. package/dist/contracts/contracts/interfaces/ITradeTrustTokenBurnable.ts +97 -0
  214. package/dist/contracts/contracts/interfaces/ITradeTrustTokenMintable.js +5 -0
  215. package/dist/contracts/contracts/interfaces/ITradeTrustTokenMintable.ts +108 -0
  216. package/dist/contracts/contracts/interfaces/ITradeTrustTokenRestorable.js +5 -0
  217. package/dist/contracts/contracts/interfaces/ITradeTrustTokenRestorable.ts +97 -0
  218. package/dist/contracts/contracts/interfaces/RegistryAccessErrors.js +5 -0
  219. package/dist/contracts/contracts/interfaces/RegistryAccessErrors.ts +70 -0
  220. package/dist/contracts/contracts/interfaces/SigHelperErrors.js +5 -0
  221. package/dist/contracts/contracts/interfaces/SigHelperErrors.ts +70 -0
  222. package/dist/contracts/contracts/interfaces/TDocDeployerErrors.js +5 -0
  223. package/dist/contracts/contracts/interfaces/TDocDeployerErrors.ts +70 -0
  224. package/dist/contracts/contracts/interfaces/TitleEscrowErrors.js +5 -0
  225. package/dist/contracts/contracts/interfaces/TitleEscrowErrors.ts +70 -0
  226. package/dist/contracts/contracts/interfaces/TitleEscrowFactoryErrors.js +5 -0
  227. package/dist/contracts/contracts/interfaces/TitleEscrowFactoryErrors.ts +70 -0
  228. package/dist/contracts/contracts/interfaces/TitleEscrowSignableErrors.js +5 -0
  229. package/dist/contracts/contracts/interfaces/TitleEscrowSignableErrors.ts +70 -0
  230. package/dist/contracts/contracts/interfaces/TradeTrustTokenErrors.js +5 -0
  231. package/dist/contracts/contracts/interfaces/TradeTrustTokenErrors.ts +70 -0
  232. package/dist/contracts/contracts/interfaces/index.js +5 -0
  233. package/dist/contracts/contracts/interfaces/index.ts +21 -0
  234. package/dist/contracts/contracts/mocks/ERC721ReceiverMock.js +11 -0
  235. package/dist/contracts/contracts/mocks/ERC721ReceiverMock.ts +184 -0
  236. package/dist/contracts/contracts/mocks/SBTUpgradeableMock.js +12 -0
  237. package/dist/contracts/contracts/mocks/SBTUpgradeableMock.ts +344 -0
  238. package/dist/contracts/contracts/mocks/SigHelperMock.js +5 -0
  239. package/dist/contracts/contracts/mocks/SigHelperMock.ts +183 -0
  240. package/dist/contracts/contracts/mocks/SimpleCaller.js +5 -0
  241. package/dist/contracts/contracts/mocks/SimpleCaller.ts +100 -0
  242. package/dist/contracts/contracts/mocks/TitleEscrowFactoryCallerMock.js +5 -0
  243. package/dist/contracts/contracts/mocks/TitleEscrowFactoryCallerMock.ts +98 -0
  244. package/dist/contracts/contracts/mocks/TitleEscrowFactoryGetterMock.js +5 -0
  245. package/dist/contracts/contracts/mocks/TitleEscrowFactoryGetterMock.ts +139 -0
  246. package/dist/contracts/contracts/mocks/TitleEscrowMock.js +20 -0
  247. package/dist/contracts/contracts/mocks/TitleEscrowMock.ts +916 -0
  248. package/dist/contracts/contracts/mocks/TradeTrustTokenMock.js +19 -0
  249. package/dist/contracts/contracts/mocks/TradeTrustTokenMock.ts +859 -0
  250. package/dist/contracts/contracts/mocks/index.js +5 -0
  251. package/dist/contracts/contracts/mocks/index.ts +12 -0
  252. package/dist/contracts/contracts/presets/TitleEscrowSignable.js +21 -0
  253. package/dist/contracts/contracts/presets/TitleEscrowSignable.ts +1054 -0
  254. package/dist/contracts/contracts/presets/TradeTrustTokenStandard.js +19 -0
  255. package/dist/contracts/contracts/presets/TradeTrustTokenStandard.ts +830 -0
  256. package/dist/contracts/contracts/presets/index.js +5 -0
  257. package/dist/contracts/contracts/presets/index.ts +6 -0
  258. package/dist/contracts/contracts/utils/SigHelper.js +5 -0
  259. package/dist/contracts/contracts/utils/SigHelper.ts +111 -0
  260. package/dist/contracts/contracts/utils/TDocDeployer.js +15 -0
  261. package/dist/contracts/contracts/utils/TDocDeployer.ts +442 -0
  262. package/dist/contracts/contracts/utils/index.js +5 -0
  263. package/dist/contracts/contracts/utils/index.ts +6 -0
  264. package/dist/contracts/factories/@openzeppelin/contracts/access/IAccessControl__factory.js +169 -0
  265. package/dist/contracts/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts +219 -0
  266. package/dist/contracts/factories/@openzeppelin/contracts/access/index.js +12 -0
  267. package/dist/contracts/factories/@openzeppelin/contracts/access/index.ts +5 -0
  268. package/dist/contracts/factories/@openzeppelin/contracts/index.js +18 -0
  269. package/dist/contracts/factories/@openzeppelin/contracts/index.ts +9 -0
  270. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.js +54 -0
  271. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts +68 -0
  272. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js +29 -0
  273. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts +39 -0
  274. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js +12 -0
  275. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +5 -0
  276. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/index.js +17 -0
  277. package/dist/contracts/factories/@openzeppelin/contracts/interfaces/index.ts +6 -0
  278. package/dist/contracts/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.js +66 -0
  279. package/dist/contracts/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts +106 -0
  280. package/dist/contracts/factories/@openzeppelin/contracts/proxy/ERC1967/index.js +12 -0
  281. package/dist/contracts/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +5 -0
  282. package/dist/contracts/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js +29 -0
  283. package/dist/contracts/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts +36 -0
  284. package/dist/contracts/factories/@openzeppelin/contracts/proxy/beacon/index.js +12 -0
  285. package/dist/contracts/factories/@openzeppelin/contracts/proxy/beacon/index.ts +5 -0
  286. package/dist/contracts/factories/@openzeppelin/contracts/proxy/index.js +14 -0
  287. package/dist/contracts/factories/@openzeppelin/contracts/proxy/index.ts +7 -0
  288. package/dist/contracts/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.js +37 -0
  289. package/dist/contracts/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts +49 -0
  290. package/dist/contracts/factories/@openzeppelin/contracts/proxy/utils/index.js +12 -0
  291. package/dist/contracts/factories/@openzeppelin/contracts/proxy/utils/index.ts +5 -0
  292. package/dist/contracts/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.js +45 -0
  293. package/dist/contracts/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.ts +60 -0
  294. package/dist/contracts/factories/@openzeppelin/contracts/token/ERC721/index.js +12 -0
  295. package/dist/contracts/factories/@openzeppelin/contracts/token/ERC721/index.ts +5 -0
  296. package/dist/contracts/factories/@openzeppelin/contracts/token/index.js +10 -0
  297. package/dist/contracts/factories/@openzeppelin/contracts/token/index.ts +5 -0
  298. package/dist/contracts/factories/@openzeppelin/contracts/utils/Address__factory.js +46 -0
  299. package/dist/contracts/factories/@openzeppelin/contracts/utils/Address__factory.ts +76 -0
  300. package/dist/contracts/factories/@openzeppelin/contracts/utils/Errors__factory.js +66 -0
  301. package/dist/contracts/factories/@openzeppelin/contracts/utils/Errors__factory.ts +102 -0
  302. package/dist/contracts/factories/@openzeppelin/contracts/utils/Pausable__factory.js +57 -0
  303. package/dist/contracts/factories/@openzeppelin/contracts/utils/Pausable__factory.ts +72 -0
  304. package/dist/contracts/factories/@openzeppelin/contracts/utils/Strings__factory.js +50 -0
  305. package/dist/contracts/factories/@openzeppelin/contracts/utils/Strings__factory.ts +81 -0
  306. package/dist/contracts/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.js +58 -0
  307. package/dist/contracts/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts +92 -0
  308. package/dist/contracts/factories/@openzeppelin/contracts/utils/cryptography/index.js +12 -0
  309. package/dist/contracts/factories/@openzeppelin/contracts/utils/cryptography/index.ts +5 -0
  310. package/dist/contracts/factories/@openzeppelin/contracts/utils/index.js +42 -0
  311. package/dist/contracts/factories/@openzeppelin/contracts/utils/index.ts +11 -0
  312. package/dist/contracts/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.js +33 -0
  313. package/dist/contracts/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts +42 -0
  314. package/dist/contracts/factories/@openzeppelin/contracts/utils/introspection/index.js +12 -0
  315. package/dist/contracts/factories/@openzeppelin/contracts/utils/introspection/index.ts +5 -0
  316. package/dist/contracts/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.js +78 -0
  317. package/dist/contracts/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts +119 -0
  318. package/dist/contracts/factories/@openzeppelin/contracts/utils/math/index.js +12 -0
  319. package/dist/contracts/factories/@openzeppelin/contracts/utils/math/index.ts +5 -0
  320. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.js +211 -0
  321. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.ts +278 -0
  322. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js +94 -0
  323. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.ts +123 -0
  324. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/access/index.js +19 -0
  325. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/access/index.ts +6 -0
  326. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/index.js +14 -0
  327. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/index.ts +7 -0
  328. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/index.js +10 -0
  329. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts +5 -0
  330. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js +37 -0
  331. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts +49 -0
  332. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.js +117 -0
  333. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts +154 -0
  334. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.js +19 -0
  335. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +6 -0
  336. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js +37 -0
  337. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts +49 -0
  338. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.js +75 -0
  339. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable__factory.ts +102 -0
  340. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/index.js +24 -0
  341. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/index.ts +7 -0
  342. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.js +51 -0
  343. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.ts +68 -0
  344. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.js +12 -0
  345. package/dist/contracts/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts +5 -0
  346. package/dist/contracts/factories/@openzeppelin/index.js +12 -0
  347. package/dist/contracts/factories/@openzeppelin/index.ts +6 -0
  348. package/dist/contracts/factories/contracts/TitleEscrowFactory__factory.js +124 -0
  349. package/dist/contracts/factories/contracts/TitleEscrowFactory__factory.ts +180 -0
  350. package/dist/contracts/factories/contracts/TitleEscrow__factory.js +678 -0
  351. package/dist/contracts/factories/contracts/TitleEscrow__factory.ts +877 -0
  352. package/dist/contracts/factories/contracts/TradeTrustToken__factory.js +630 -0
  353. package/dist/contracts/factories/contracts/TradeTrustToken__factory.ts +858 -0
  354. package/dist/contracts/factories/contracts/base/RegistryAccess__factory.js +259 -0
  355. package/dist/contracts/factories/contracts/base/RegistryAccess__factory.ts +336 -0
  356. package/dist/contracts/factories/contracts/base/SBTUpgradeable__factory.js +184 -0
  357. package/dist/contracts/factories/contracts/base/SBTUpgradeable__factory.ts +259 -0
  358. package/dist/contracts/factories/contracts/base/TradeTrustSBT__factory.js +299 -0
  359. package/dist/contracts/factories/contracts/base/TradeTrustSBT__factory.ts +389 -0
  360. package/dist/contracts/factories/contracts/base/TradeTrustTokenBaseURI__factory.js +517 -0
  361. package/dist/contracts/factories/contracts/base/TradeTrustTokenBaseURI__factory.ts +674 -0
  362. package/dist/contracts/factories/contracts/base/TradeTrustTokenBase__factory.js +595 -0
  363. package/dist/contracts/factories/contracts/base/TradeTrustTokenBase__factory.ts +776 -0
  364. package/dist/contracts/factories/contracts/base/TradeTrustTokenBurnable__factory.js +521 -0
  365. package/dist/contracts/factories/contracts/base/TradeTrustTokenBurnable__factory.ts +679 -0
  366. package/dist/contracts/factories/contracts/base/TradeTrustTokenMintable__factory.js +533 -0
  367. package/dist/contracts/factories/contracts/base/TradeTrustTokenMintable__factory.ts +695 -0
  368. package/dist/contracts/factories/contracts/base/TradeTrustTokenRestorable__factory.js +525 -0
  369. package/dist/contracts/factories/contracts/base/TradeTrustTokenRestorable__factory.ts +685 -0
  370. package/dist/contracts/factories/contracts/base/index.js +61 -0
  371. package/dist/contracts/factories/contracts/base/index.ts +12 -0
  372. package/dist/contracts/factories/contracts/index.js +39 -0
  373. package/dist/contracts/factories/contracts/index.ts +12 -0
  374. package/dist/contracts/factories/contracts/interfaces/IERC721MetadataUpgradeable__factory.js +137 -0
  375. package/dist/contracts/factories/contracts/interfaces/IERC721MetadataUpgradeable__factory.ts +185 -0
  376. package/dist/contracts/factories/contracts/interfaces/ISBTUpgradeable__factory.js +103 -0
  377. package/dist/contracts/factories/contracts/interfaces/ISBTUpgradeable__factory.ts +136 -0
  378. package/dist/contracts/factories/contracts/interfaces/ITitleEscrowFactory__factory.js +81 -0
  379. package/dist/contracts/factories/contracts/interfaces/ITitleEscrowFactory__factory.ts +111 -0
  380. package/dist/contracts/factories/contracts/interfaces/ITitleEscrowSignable__factory.js +630 -0
  381. package/dist/contracts/factories/contracts/interfaces/ITitleEscrowSignable__factory.ts +803 -0
  382. package/dist/contracts/factories/contracts/interfaces/ITitleEscrow__factory.js +515 -0
  383. package/dist/contracts/factories/contracts/interfaces/ITitleEscrow__factory.ts +652 -0
  384. package/dist/contracts/factories/contracts/interfaces/ITradeTrustSBT__factory.js +179 -0
  385. package/dist/contracts/factories/contracts/interfaces/ITradeTrustSBT__factory.ts +234 -0
  386. package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenBurnable__factory.js +33 -0
  387. package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenBurnable__factory.ts +48 -0
  388. package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenMintable__factory.js +45 -0
  389. package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenMintable__factory.ts +64 -0
  390. package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenRestorable__factory.js +37 -0
  391. package/dist/contracts/factories/contracts/interfaces/ITradeTrustTokenRestorable__factory.ts +54 -0
  392. package/dist/contracts/factories/contracts/interfaces/ITradeTrustToken__factory.js +237 -0
  393. package/dist/contracts/factories/contracts/interfaces/ITradeTrustToken__factory.ts +310 -0
  394. package/dist/contracts/factories/contracts/interfaces/RegistryAccessErrors__factory.js +23 -0
  395. package/dist/contracts/factories/contracts/interfaces/RegistryAccessErrors__factory.ts +35 -0
  396. package/dist/contracts/factories/contracts/interfaces/SigHelperErrors__factory.js +23 -0
  397. package/dist/contracts/factories/contracts/interfaces/SigHelperErrors__factory.ts +31 -0
  398. package/dist/contracts/factories/contracts/interfaces/TDocDeployerErrors__factory.js +39 -0
  399. package/dist/contracts/factories/contracts/interfaces/TDocDeployerErrors__factory.ts +52 -0
  400. package/dist/contracts/factories/contracts/interfaces/TitleEscrowErrors__factory.js +103 -0
  401. package/dist/contracts/factories/contracts/interfaces/TitleEscrowErrors__factory.ts +134 -0
  402. package/dist/contracts/factories/contracts/interfaces/TitleEscrowFactoryErrors__factory.js +23 -0
  403. package/dist/contracts/factories/contracts/interfaces/TitleEscrowFactoryErrors__factory.ts +35 -0
  404. package/dist/contracts/factories/contracts/interfaces/TitleEscrowSignableErrors__factory.js +63 -0
  405. package/dist/contracts/factories/contracts/interfaces/TitleEscrowSignableErrors__factory.ts +88 -0
  406. package/dist/contracts/factories/contracts/interfaces/TradeTrustTokenErrors__factory.js +39 -0
  407. package/dist/contracts/factories/contracts/interfaces/TradeTrustTokenErrors__factory.ts +55 -0
  408. package/dist/contracts/factories/contracts/interfaces/index.js +124 -0
  409. package/dist/contracts/factories/contracts/interfaces/index.ts +21 -0
  410. package/dist/contracts/factories/contracts/mocks/ERC721ReceiverMock__factory.js +109 -0
  411. package/dist/contracts/factories/contracts/mocks/ERC721ReceiverMock__factory.ts +158 -0
  412. package/dist/contracts/factories/contracts/mocks/SBTUpgradeableMock__factory.js +262 -0
  413. package/dist/contracts/factories/contracts/mocks/SBTUpgradeableMock__factory.ts +367 -0
  414. package/dist/contracts/factories/contracts/mocks/SigHelperMock__factory.js +167 -0
  415. package/dist/contracts/factories/contracts/mocks/SigHelperMock__factory.ts +243 -0
  416. package/dist/contracts/factories/contracts/mocks/SimpleCaller__factory.js +56 -0
  417. package/dist/contracts/factories/contracts/mocks/SimpleCaller__factory.ts +92 -0
  418. package/dist/contracts/factories/contracts/mocks/TitleEscrowFactoryCallerMock__factory.js +52 -0
  419. package/dist/contracts/factories/contracts/mocks/TitleEscrowFactoryCallerMock__factory.ts +92 -0
  420. package/dist/contracts/factories/contracts/mocks/TitleEscrowFactoryGetterMock__factory.js +80 -0
  421. package/dist/contracts/factories/contracts/mocks/TitleEscrowFactoryGetterMock__factory.ts +129 -0
  422. package/dist/contracts/factories/contracts/mocks/TitleEscrowMock__factory.js +714 -0
  423. package/dist/contracts/factories/contracts/mocks/TitleEscrowMock__factory.ts +926 -0
  424. package/dist/contracts/factories/contracts/mocks/TradeTrustTokenMock__factory.js +658 -0
  425. package/dist/contracts/factories/contracts/mocks/TradeTrustTokenMock__factory.ts +901 -0
  426. package/dist/contracts/factories/contracts/mocks/index.js +61 -0
  427. package/dist/contracts/factories/contracts/mocks/index.ts +12 -0
  428. package/dist/contracts/factories/contracts/presets/TitleEscrowSignable__factory.js +915 -0
  429. package/dist/contracts/factories/contracts/presets/TitleEscrowSignable__factory.ts +1195 -0
  430. package/dist/contracts/factories/contracts/presets/TradeTrustTokenStandard__factory.js +628 -0
  431. package/dist/contracts/factories/contracts/presets/TradeTrustTokenStandard__factory.ts +838 -0
  432. package/dist/contracts/factories/contracts/presets/index.js +19 -0
  433. package/dist/contracts/factories/contracts/presets/index.ts +6 -0
  434. package/dist/contracts/factories/contracts/utils/SigHelper__factory.js +61 -0
  435. package/dist/contracts/factories/contracts/utils/SigHelper__factory.ts +79 -0
  436. package/dist/contracts/factories/contracts/utils/TDocDeployer__factory.js +340 -0
  437. package/dist/contracts/factories/contracts/utils/TDocDeployer__factory.ts +459 -0
  438. package/dist/contracts/factories/contracts/utils/index.js +19 -0
  439. package/dist/contracts/factories/contracts/utils/index.ts +6 -0
  440. package/dist/contracts/factories/index.js +12 -0
  441. package/dist/contracts/factories/index.ts +6 -0
  442. package/dist/contracts/hardhat.d.js +5 -0
  443. package/dist/contracts/hardhat.d.ts +1144 -0
  444. package/dist/contracts/index.js +430 -0
  445. package/dist/contracts/index.ts +129 -0
  446. package/dist/index.js +12 -0
  447. package/dist/types/constants/contract-address.d.ts +11 -0
  448. package/dist/types/constants/contract-interface-id.d.ts +10 -0
  449. package/dist/types/constants/contract-interfaces.d.ts +11 -0
  450. package/dist/types/constants/default-address.d.ts +4 -0
  451. package/dist/types/constants/index.d.ts +4 -0
  452. package/dist/types/constants/role-hash.d.ts +9 -0
  453. package/dist/types/hardhat.config.d.ts +8 -0
  454. package/dist/types/index.d.ts +2 -0
  455. package/dist/types/utils/compute-interface-id.d.ts +1 -0
  456. package/dist/types/utils/compute-title-escrow-address.d.ts +10 -0
  457. package/dist/types/utils/encode-init-params.d.ts +6 -0
  458. package/dist/types/utils/get-event-from-receipt.d.ts +29 -0
  459. package/dist/types/utils/index.d.ts +4 -0
  460. package/dist/utils/compute-interface-id.js +28 -0
  461. package/dist/utils/compute-title-escrow-address.js +31 -0
  462. package/dist/utils/encode-init-params.js +24 -0
  463. package/dist/utils/get-event-from-receipt.js +62 -0
  464. package/dist/utils/index.js +49 -0
  465. package/package.json +145 -0
@@ -0,0 +1,869 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "TitleEscrowMock",
4
+ "sourceName": "contracts/mocks/TitleEscrowMock.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "CallerNotBeneficiary",
14
+ "type": "error"
15
+ },
16
+ {
17
+ "inputs": [],
18
+ "name": "CallerNotHolder",
19
+ "type": "error"
20
+ },
21
+ {
22
+ "inputs": [],
23
+ "name": "DualRoleRejectionRequired",
24
+ "type": "error"
25
+ },
26
+ {
27
+ "inputs": [],
28
+ "name": "EmptyReceivingData",
29
+ "type": "error"
30
+ },
31
+ {
32
+ "inputs": [],
33
+ "name": "InactiveTitleEscrow",
34
+ "type": "error"
35
+ },
36
+ {
37
+ "inputs": [],
38
+ "name": "InvalidInitialization",
39
+ "type": "error"
40
+ },
41
+ {
42
+ "inputs": [],
43
+ "name": "InvalidNominee",
44
+ "type": "error"
45
+ },
46
+ {
47
+ "inputs": [
48
+ {
49
+ "internalType": "address",
50
+ "name": "registry",
51
+ "type": "address"
52
+ }
53
+ ],
54
+ "name": "InvalidRegistry",
55
+ "type": "error"
56
+ },
57
+ {
58
+ "inputs": [
59
+ {
60
+ "internalType": "uint256",
61
+ "name": "tokenId",
62
+ "type": "uint256"
63
+ }
64
+ ],
65
+ "name": "InvalidTokenId",
66
+ "type": "error"
67
+ },
68
+ {
69
+ "inputs": [
70
+ {
71
+ "internalType": "address",
72
+ "name": "beneficiary",
73
+ "type": "address"
74
+ },
75
+ {
76
+ "internalType": "address",
77
+ "name": "holder",
78
+ "type": "address"
79
+ }
80
+ ],
81
+ "name": "InvalidTokenTransferToZeroAddressOwners",
82
+ "type": "error"
83
+ },
84
+ {
85
+ "inputs": [],
86
+ "name": "InvalidTransferToZeroAddress",
87
+ "type": "error"
88
+ },
89
+ {
90
+ "inputs": [],
91
+ "name": "NomineeAlreadyNominated",
92
+ "type": "error"
93
+ },
94
+ {
95
+ "inputs": [],
96
+ "name": "NotInitializing",
97
+ "type": "error"
98
+ },
99
+ {
100
+ "inputs": [],
101
+ "name": "RecipientAlreadyHolder",
102
+ "type": "error"
103
+ },
104
+ {
105
+ "inputs": [],
106
+ "name": "RegistryContractPaused",
107
+ "type": "error"
108
+ },
109
+ {
110
+ "inputs": [],
111
+ "name": "RemarkLengthExceeded",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [],
116
+ "name": "TargetNomineeAlreadyBeneficiary",
117
+ "type": "error"
118
+ },
119
+ {
120
+ "inputs": [],
121
+ "name": "TitleEscrowNotHoldingToken",
122
+ "type": "error"
123
+ },
124
+ {
125
+ "inputs": [],
126
+ "name": "TokenNotReturnedToIssuer",
127
+ "type": "error"
128
+ },
129
+ {
130
+ "anonymous": false,
131
+ "inputs": [
132
+ {
133
+ "indexed": true,
134
+ "internalType": "address",
135
+ "name": "fromBeneficiary",
136
+ "type": "address"
137
+ },
138
+ {
139
+ "indexed": true,
140
+ "internalType": "address",
141
+ "name": "toBeneficiary",
142
+ "type": "address"
143
+ },
144
+ {
145
+ "indexed": false,
146
+ "internalType": "address",
147
+ "name": "registry",
148
+ "type": "address"
149
+ },
150
+ {
151
+ "indexed": false,
152
+ "internalType": "uint256",
153
+ "name": "tokenId",
154
+ "type": "uint256"
155
+ },
156
+ {
157
+ "indexed": false,
158
+ "internalType": "bytes",
159
+ "name": "remark",
160
+ "type": "bytes"
161
+ }
162
+ ],
163
+ "name": "BeneficiaryTransfer",
164
+ "type": "event"
165
+ },
166
+ {
167
+ "anonymous": false,
168
+ "inputs": [
169
+ {
170
+ "indexed": true,
171
+ "internalType": "address",
172
+ "name": "fromHolder",
173
+ "type": "address"
174
+ },
175
+ {
176
+ "indexed": true,
177
+ "internalType": "address",
178
+ "name": "toHolder",
179
+ "type": "address"
180
+ },
181
+ {
182
+ "indexed": false,
183
+ "internalType": "address",
184
+ "name": "registry",
185
+ "type": "address"
186
+ },
187
+ {
188
+ "indexed": false,
189
+ "internalType": "uint256",
190
+ "name": "tokenId",
191
+ "type": "uint256"
192
+ },
193
+ {
194
+ "indexed": false,
195
+ "internalType": "bytes",
196
+ "name": "remark",
197
+ "type": "bytes"
198
+ }
199
+ ],
200
+ "name": "HolderTransfer",
201
+ "type": "event"
202
+ },
203
+ {
204
+ "anonymous": false,
205
+ "inputs": [
206
+ {
207
+ "indexed": false,
208
+ "internalType": "uint64",
209
+ "name": "version",
210
+ "type": "uint64"
211
+ }
212
+ ],
213
+ "name": "Initialized",
214
+ "type": "event"
215
+ },
216
+ {
217
+ "anonymous": false,
218
+ "inputs": [
219
+ {
220
+ "indexed": true,
221
+ "internalType": "address",
222
+ "name": "prevNominee",
223
+ "type": "address"
224
+ },
225
+ {
226
+ "indexed": true,
227
+ "internalType": "address",
228
+ "name": "nominee",
229
+ "type": "address"
230
+ },
231
+ {
232
+ "indexed": false,
233
+ "internalType": "address",
234
+ "name": "registry",
235
+ "type": "address"
236
+ },
237
+ {
238
+ "indexed": false,
239
+ "internalType": "uint256",
240
+ "name": "tokenId",
241
+ "type": "uint256"
242
+ },
243
+ {
244
+ "indexed": false,
245
+ "internalType": "bytes",
246
+ "name": "remark",
247
+ "type": "bytes"
248
+ }
249
+ ],
250
+ "name": "Nomination",
251
+ "type": "event"
252
+ },
253
+ {
254
+ "anonymous": false,
255
+ "inputs": [
256
+ {
257
+ "indexed": true,
258
+ "internalType": "address",
259
+ "name": "fromBeneficiary",
260
+ "type": "address"
261
+ },
262
+ {
263
+ "indexed": true,
264
+ "internalType": "address",
265
+ "name": "toBeneficiary",
266
+ "type": "address"
267
+ },
268
+ {
269
+ "indexed": false,
270
+ "internalType": "address",
271
+ "name": "registry",
272
+ "type": "address"
273
+ },
274
+ {
275
+ "indexed": false,
276
+ "internalType": "uint256",
277
+ "name": "tokenId",
278
+ "type": "uint256"
279
+ },
280
+ {
281
+ "indexed": false,
282
+ "internalType": "bytes",
283
+ "name": "remark",
284
+ "type": "bytes"
285
+ }
286
+ ],
287
+ "name": "RejectTransferBeneficiary",
288
+ "type": "event"
289
+ },
290
+ {
291
+ "anonymous": false,
292
+ "inputs": [
293
+ {
294
+ "indexed": true,
295
+ "internalType": "address",
296
+ "name": "fromHolder",
297
+ "type": "address"
298
+ },
299
+ {
300
+ "indexed": true,
301
+ "internalType": "address",
302
+ "name": "toHolder",
303
+ "type": "address"
304
+ },
305
+ {
306
+ "indexed": false,
307
+ "internalType": "address",
308
+ "name": "registry",
309
+ "type": "address"
310
+ },
311
+ {
312
+ "indexed": false,
313
+ "internalType": "uint256",
314
+ "name": "tokenId",
315
+ "type": "uint256"
316
+ },
317
+ {
318
+ "indexed": false,
319
+ "internalType": "bytes",
320
+ "name": "remark",
321
+ "type": "bytes"
322
+ }
323
+ ],
324
+ "name": "RejectTransferHolder",
325
+ "type": "event"
326
+ },
327
+ {
328
+ "anonymous": false,
329
+ "inputs": [
330
+ {
331
+ "indexed": true,
332
+ "internalType": "address",
333
+ "name": "fromBeneficiary",
334
+ "type": "address"
335
+ },
336
+ {
337
+ "indexed": true,
338
+ "internalType": "address",
339
+ "name": "toBeneficiary",
340
+ "type": "address"
341
+ },
342
+ {
343
+ "indexed": true,
344
+ "internalType": "address",
345
+ "name": "fromHolder",
346
+ "type": "address"
347
+ },
348
+ {
349
+ "indexed": false,
350
+ "internalType": "address",
351
+ "name": "toHolder",
352
+ "type": "address"
353
+ },
354
+ {
355
+ "indexed": false,
356
+ "internalType": "address",
357
+ "name": "registry",
358
+ "type": "address"
359
+ },
360
+ {
361
+ "indexed": false,
362
+ "internalType": "uint256",
363
+ "name": "tokenId",
364
+ "type": "uint256"
365
+ },
366
+ {
367
+ "indexed": false,
368
+ "internalType": "bytes",
369
+ "name": "remark",
370
+ "type": "bytes"
371
+ }
372
+ ],
373
+ "name": "RejectTransferOwners",
374
+ "type": "event"
375
+ },
376
+ {
377
+ "anonymous": false,
378
+ "inputs": [
379
+ {
380
+ "indexed": true,
381
+ "internalType": "address",
382
+ "name": "caller",
383
+ "type": "address"
384
+ },
385
+ {
386
+ "indexed": false,
387
+ "internalType": "address",
388
+ "name": "registry",
389
+ "type": "address"
390
+ },
391
+ {
392
+ "indexed": false,
393
+ "internalType": "uint256",
394
+ "name": "tokenId",
395
+ "type": "uint256"
396
+ },
397
+ {
398
+ "indexed": false,
399
+ "internalType": "bytes",
400
+ "name": "remark",
401
+ "type": "bytes"
402
+ }
403
+ ],
404
+ "name": "ReturnToIssuer",
405
+ "type": "event"
406
+ },
407
+ {
408
+ "anonymous": false,
409
+ "inputs": [
410
+ {
411
+ "indexed": false,
412
+ "internalType": "address",
413
+ "name": "registry",
414
+ "type": "address"
415
+ },
416
+ {
417
+ "indexed": false,
418
+ "internalType": "uint256",
419
+ "name": "tokenId",
420
+ "type": "uint256"
421
+ },
422
+ {
423
+ "indexed": false,
424
+ "internalType": "bytes",
425
+ "name": "remark",
426
+ "type": "bytes"
427
+ }
428
+ ],
429
+ "name": "Shred",
430
+ "type": "event"
431
+ },
432
+ {
433
+ "anonymous": false,
434
+ "inputs": [
435
+ {
436
+ "indexed": true,
437
+ "internalType": "address",
438
+ "name": "beneficiary",
439
+ "type": "address"
440
+ },
441
+ {
442
+ "indexed": true,
443
+ "internalType": "address",
444
+ "name": "holder",
445
+ "type": "address"
446
+ },
447
+ {
448
+ "indexed": true,
449
+ "internalType": "bool",
450
+ "name": "isMinting",
451
+ "type": "bool"
452
+ },
453
+ {
454
+ "indexed": false,
455
+ "internalType": "address",
456
+ "name": "registry",
457
+ "type": "address"
458
+ },
459
+ {
460
+ "indexed": false,
461
+ "internalType": "uint256",
462
+ "name": "tokenId",
463
+ "type": "uint256"
464
+ },
465
+ {
466
+ "indexed": false,
467
+ "internalType": "bytes",
468
+ "name": "remark",
469
+ "type": "bytes"
470
+ }
471
+ ],
472
+ "name": "TokenReceived",
473
+ "type": "event"
474
+ },
475
+ {
476
+ "inputs": [],
477
+ "name": "active",
478
+ "outputs": [
479
+ {
480
+ "internalType": "bool",
481
+ "name": "",
482
+ "type": "bool"
483
+ }
484
+ ],
485
+ "stateMutability": "view",
486
+ "type": "function"
487
+ },
488
+ {
489
+ "inputs": [],
490
+ "name": "beneficiary",
491
+ "outputs": [
492
+ {
493
+ "internalType": "address",
494
+ "name": "",
495
+ "type": "address"
496
+ }
497
+ ],
498
+ "stateMutability": "view",
499
+ "type": "function"
500
+ },
501
+ {
502
+ "inputs": [],
503
+ "name": "holder",
504
+ "outputs": [
505
+ {
506
+ "internalType": "address",
507
+ "name": "",
508
+ "type": "address"
509
+ }
510
+ ],
511
+ "stateMutability": "view",
512
+ "type": "function"
513
+ },
514
+ {
515
+ "inputs": [
516
+ {
517
+ "internalType": "address",
518
+ "name": "_registry",
519
+ "type": "address"
520
+ },
521
+ {
522
+ "internalType": "uint256",
523
+ "name": "_tokenId",
524
+ "type": "uint256"
525
+ }
526
+ ],
527
+ "name": "initialize",
528
+ "outputs": [],
529
+ "stateMutability": "nonpayable",
530
+ "type": "function"
531
+ },
532
+ {
533
+ "inputs": [
534
+ {
535
+ "internalType": "address",
536
+ "name": "_registry",
537
+ "type": "address"
538
+ },
539
+ {
540
+ "internalType": "uint256",
541
+ "name": "_tokenId",
542
+ "type": "uint256"
543
+ },
544
+ {
545
+ "internalType": "address",
546
+ "name": "_beneficiary",
547
+ "type": "address"
548
+ },
549
+ {
550
+ "internalType": "address",
551
+ "name": "_holder",
552
+ "type": "address"
553
+ },
554
+ {
555
+ "internalType": "address",
556
+ "name": "_nominee",
557
+ "type": "address"
558
+ }
559
+ ],
560
+ "name": "initializeMock",
561
+ "outputs": [],
562
+ "stateMutability": "nonpayable",
563
+ "type": "function"
564
+ },
565
+ {
566
+ "inputs": [],
567
+ "name": "isHoldingToken",
568
+ "outputs": [
569
+ {
570
+ "internalType": "bool",
571
+ "name": "",
572
+ "type": "bool"
573
+ }
574
+ ],
575
+ "stateMutability": "view",
576
+ "type": "function"
577
+ },
578
+ {
579
+ "inputs": [
580
+ {
581
+ "internalType": "address",
582
+ "name": "_nominee",
583
+ "type": "address"
584
+ },
585
+ {
586
+ "internalType": "bytes",
587
+ "name": "_remark",
588
+ "type": "bytes"
589
+ }
590
+ ],
591
+ "name": "nominate",
592
+ "outputs": [],
593
+ "stateMutability": "nonpayable",
594
+ "type": "function"
595
+ },
596
+ {
597
+ "inputs": [],
598
+ "name": "nominee",
599
+ "outputs": [
600
+ {
601
+ "internalType": "address",
602
+ "name": "",
603
+ "type": "address"
604
+ }
605
+ ],
606
+ "stateMutability": "view",
607
+ "type": "function"
608
+ },
609
+ {
610
+ "inputs": [
611
+ {
612
+ "internalType": "address",
613
+ "name": "",
614
+ "type": "address"
615
+ },
616
+ {
617
+ "internalType": "address",
618
+ "name": "",
619
+ "type": "address"
620
+ },
621
+ {
622
+ "internalType": "uint256",
623
+ "name": "_tokenId",
624
+ "type": "uint256"
625
+ },
626
+ {
627
+ "internalType": "bytes",
628
+ "name": "data",
629
+ "type": "bytes"
630
+ }
631
+ ],
632
+ "name": "onERC721Received",
633
+ "outputs": [
634
+ {
635
+ "internalType": "bytes4",
636
+ "name": "",
637
+ "type": "bytes4"
638
+ }
639
+ ],
640
+ "stateMutability": "nonpayable",
641
+ "type": "function"
642
+ },
643
+ {
644
+ "inputs": [],
645
+ "name": "prevBeneficiary",
646
+ "outputs": [
647
+ {
648
+ "internalType": "address",
649
+ "name": "",
650
+ "type": "address"
651
+ }
652
+ ],
653
+ "stateMutability": "view",
654
+ "type": "function"
655
+ },
656
+ {
657
+ "inputs": [],
658
+ "name": "prevHolder",
659
+ "outputs": [
660
+ {
661
+ "internalType": "address",
662
+ "name": "",
663
+ "type": "address"
664
+ }
665
+ ],
666
+ "stateMutability": "view",
667
+ "type": "function"
668
+ },
669
+ {
670
+ "inputs": [],
671
+ "name": "registry",
672
+ "outputs": [
673
+ {
674
+ "internalType": "address",
675
+ "name": "",
676
+ "type": "address"
677
+ }
678
+ ],
679
+ "stateMutability": "view",
680
+ "type": "function"
681
+ },
682
+ {
683
+ "inputs": [
684
+ {
685
+ "internalType": "bytes",
686
+ "name": "_remark",
687
+ "type": "bytes"
688
+ }
689
+ ],
690
+ "name": "rejectTransferBeneficiary",
691
+ "outputs": [],
692
+ "stateMutability": "nonpayable",
693
+ "type": "function"
694
+ },
695
+ {
696
+ "inputs": [
697
+ {
698
+ "internalType": "bytes",
699
+ "name": "_remark",
700
+ "type": "bytes"
701
+ }
702
+ ],
703
+ "name": "rejectTransferHolder",
704
+ "outputs": [],
705
+ "stateMutability": "nonpayable",
706
+ "type": "function"
707
+ },
708
+ {
709
+ "inputs": [
710
+ {
711
+ "internalType": "bytes",
712
+ "name": "_remark",
713
+ "type": "bytes"
714
+ }
715
+ ],
716
+ "name": "rejectTransferOwners",
717
+ "outputs": [],
718
+ "stateMutability": "nonpayable",
719
+ "type": "function"
720
+ },
721
+ {
722
+ "inputs": [],
723
+ "name": "remark",
724
+ "outputs": [
725
+ {
726
+ "internalType": "bytes",
727
+ "name": "",
728
+ "type": "bytes"
729
+ }
730
+ ],
731
+ "stateMutability": "view",
732
+ "type": "function"
733
+ },
734
+ {
735
+ "inputs": [
736
+ {
737
+ "internalType": "bytes",
738
+ "name": "_remark",
739
+ "type": "bytes"
740
+ }
741
+ ],
742
+ "name": "returnToIssuer",
743
+ "outputs": [],
744
+ "stateMutability": "nonpayable",
745
+ "type": "function"
746
+ },
747
+ {
748
+ "inputs": [
749
+ {
750
+ "internalType": "bool",
751
+ "name": "val",
752
+ "type": "bool"
753
+ }
754
+ ],
755
+ "name": "setActive",
756
+ "outputs": [],
757
+ "stateMutability": "nonpayable",
758
+ "type": "function"
759
+ },
760
+ {
761
+ "inputs": [
762
+ {
763
+ "internalType": "bytes",
764
+ "name": "_remark",
765
+ "type": "bytes"
766
+ }
767
+ ],
768
+ "name": "shred",
769
+ "outputs": [],
770
+ "stateMutability": "nonpayable",
771
+ "type": "function"
772
+ },
773
+ {
774
+ "inputs": [
775
+ {
776
+ "internalType": "bytes4",
777
+ "name": "interfaceId",
778
+ "type": "bytes4"
779
+ }
780
+ ],
781
+ "name": "supportsInterface",
782
+ "outputs": [
783
+ {
784
+ "internalType": "bool",
785
+ "name": "",
786
+ "type": "bool"
787
+ }
788
+ ],
789
+ "stateMutability": "view",
790
+ "type": "function"
791
+ },
792
+ {
793
+ "inputs": [],
794
+ "name": "tokenId",
795
+ "outputs": [
796
+ {
797
+ "internalType": "uint256",
798
+ "name": "",
799
+ "type": "uint256"
800
+ }
801
+ ],
802
+ "stateMutability": "view",
803
+ "type": "function"
804
+ },
805
+ {
806
+ "inputs": [
807
+ {
808
+ "internalType": "address",
809
+ "name": "_nominee",
810
+ "type": "address"
811
+ },
812
+ {
813
+ "internalType": "bytes",
814
+ "name": "_remark",
815
+ "type": "bytes"
816
+ }
817
+ ],
818
+ "name": "transferBeneficiary",
819
+ "outputs": [],
820
+ "stateMutability": "nonpayable",
821
+ "type": "function"
822
+ },
823
+ {
824
+ "inputs": [
825
+ {
826
+ "internalType": "address",
827
+ "name": "newHolder",
828
+ "type": "address"
829
+ },
830
+ {
831
+ "internalType": "bytes",
832
+ "name": "_remark",
833
+ "type": "bytes"
834
+ }
835
+ ],
836
+ "name": "transferHolder",
837
+ "outputs": [],
838
+ "stateMutability": "nonpayable",
839
+ "type": "function"
840
+ },
841
+ {
842
+ "inputs": [
843
+ {
844
+ "internalType": "address",
845
+ "name": "_nominee",
846
+ "type": "address"
847
+ },
848
+ {
849
+ "internalType": "address",
850
+ "name": "newHolder",
851
+ "type": "address"
852
+ },
853
+ {
854
+ "internalType": "bytes",
855
+ "name": "_remark",
856
+ "type": "bytes"
857
+ }
858
+ ],
859
+ "name": "transferOwners",
860
+ "outputs": [],
861
+ "stateMutability": "nonpayable",
862
+ "type": "function"
863
+ }
864
+ ],
865
+ "bytecode": "0x60806040523480156200001157600080fd5b50600062000024620001ab60201b60201c565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff16148015620000735750825b9050600060018367ffffffffffffffff16148015620000a9575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015620000b8575080155b15620000f0576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508315620001415760018560000160086101000a81548160ff0219169083151502179055505b8315620001a05760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2600160405162000197919062000234565b60405180910390a15b505050505062000251565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000819050919050565b60006200021c620002166200021084620001d3565b620001f1565b620001dd565b9050919050565b6200022e81620001fb565b82525050565b60006020820190506200024b600083018462000223565b92915050565b6146c180620002616000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80637b103999116100c3578063bd1d07b51161007c578063bd1d07b51461038b578063c9437e5e146103a9578063cb3cfb29146103c7578063cd6dc687146103e3578063e3d79a6e146103ff578063e534155d1461041b57610158565b80637b103999146102df57806383d38fcb146102fd5780638fb33c3c14610319578063a47d1f5e14610335578063acec338a14610353578063baf139751461036f57610158565b806320f99c0a1161011557806320f99c0a14610233578063299e11d814610251578063308f8e1c1461026d57806334427f611461028957806338af3eed146102a5578063452736fd146102c357610158565b806301ffc9a71461015d57806302fb0c5e1461018d578063035aedfa146101ab57806305de0a2e146101c9578063150b7a02146101e557806317d70f7c14610215575b600080fd5b6101776004803603810190610172919061386a565b610439565b60405161018491906138b2565b60405180910390f35b6101956104a3565b6040516101a291906138b2565b60405180910390f35b6101b36104b6565b6040516101c0919061390e565b60405180910390f35b6101e360048036038101906101de919061398e565b6104dc565b005b6101ff60048036038101906101fa9190613a3d565b6109aa565b60405161020c9190613ad4565b60405180910390f35b61021d610ea7565b60405161022a9190613afe565b60405180910390f35b61023b610ead565b604051610248919061390e565b60405180910390f35b61026b60048036038101906102669190613b19565b610ed3565b005b61028760048036038101906102829190613b94565b610fff565b005b6102a3600480360381019061029e9190613bf4565b61148a565b005b6102ad6114a6565b6040516102ba919061390e565b60405180910390f35b6102dd60048036038101906102d8919061398e565b6114cc565b005b6102e7611acb565b6040516102f4919061390e565b60405180910390f35b6103176004803603810190610312919061398e565b611aef565b005b610333600480360381019061032e919061398e565b611f6b565b005b61033d612253565b60405161034a9190613cf8565b60405180910390f35b61036d60048036038101906103689190613d46565b6122e1565b005b61038960048036038101906103849190613b94565b6122fe565b005b610393612787565b6040516103a0919061390e565b60405180910390f35b6103b16127ad565b6040516103be91906138b2565b60405180910390f35b6103e160048036038101906103dc919061398e565b6127bc565b005b6103fd60048036038101906103f89190613d73565b612c8a565b005b61041960048036038101906104149190613b94565b612e1b565b005b6104236132a4565b604051610430919061390e565b60405180910390f35b60007f3e143f7b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600660149054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056e9190613dc8565b905080156105a8576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff166105ee576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610675576040517f667b3fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067d6132ca565b6106b3576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828260788282905011156106f3576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361077b576040517f2c75c45a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610824576040517f8c90bf4500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84846007918261083592919061403b565b506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506108d28188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061339b565b6000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f279c68b511f19d28a79afc0687d9909fc941d6f7551e4b0e333a1171cc2eea5f60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001548b8b6040516109999493929190614147565b60405180910390a350505050505050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3c9190613dc8565b90508015610a76576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff16610abc576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001548514610b0257846040517fed15e6cf000000000000000000000000000000000000000000000000000000008152600401610af99190613afe565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b9257336040517f540b9601000000000000000000000000000000000000000000000000000000008152600401610b89919061390e565b60405180910390fd5b60008073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610c3e5750600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15610d935760008585905003610c80576040517f10daa94f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008787810190610c9491906142b7565b925092509250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610d015750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610d455782826040517fbd805e91000000000000000000000000000000000000000000000000000000008152600401610d3c929190614326565b60405180910390fd5b610d5e836040518060200160405280600081525061348d565b610d77826040518060200160405280600081525061339b565b8060079081610d86919061434f565b5060019350505050610da6565b848460079182610da492919061403b565b505b801515600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44fc4ffe7e585a241451c67b41553546c65c2b07de6e9d33405e53f75357293b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001546007604051610e71939291906144a5565b60405180910390a47f150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f9250505095945050505050565b60015481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360018190555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660146101000a81548160ff0219169083151502179055505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110919190613dc8565b905080156110cb576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff16611111576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611198576040517f667b3fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111a06132ca565b6111d6576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82826078828290501115611216576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361127c576040517f2c75c45a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061134757508573ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61137d576040517f1c98cac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084846007918261143392919061403b565b506114828686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061348d565b505050505050565b611495848383610fff565b6114a08383836122fe565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561153a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155e9190613dc8565b90508015611598576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff166115de576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115e66132ca565b61161c576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116a3576040517ff52018ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461172a576040517f667b3fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8282607882829050111561176a576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806118155750600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561184c576040517f2c75c45a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84846007918261185d92919061403b565b506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611948818a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061348d565b611996838a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061339b565b6000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f2812f41a966386b432bd1d43d72b6613f5eca9adf4ed9e193f95f5c91a1b66268660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001548f8f604051611ab89594939291906144e3565b60405180910390a4505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b819190613dc8565b90508015611bbb576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff16611c01576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c88576040517ff52018ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d0f576040517f667b3fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d176132ca565b611d4d576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82826078828290501115611d8d576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611da7600060405180602001604052806000815250613616565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ab67aa583060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001546040518463ffffffff1660e01b8152600401611e2693929190614557565b600060405180830381600087803b158015611e4057600080fd5b505af1158015611e54573d6000803e3d6000fd5b50505050848460079182611e6992919061403b565b506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fea17cbc366059ac6185e6bfc7eebd173d3260bb6bc373830f9d04260e72c244b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001548888604051611f5c9493929190614147565b60405180910390a25050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffd9190613dc8565b90508015612037576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff1661207d576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828260788282905011156120bd576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120c56132ca565b156120fc576040517fd5475a0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461218c57336040517f540b9601000000000000000000000000000000000000000000000000000000008152600401612183919061390e565b60405180910390fd5b6121a660006040518060200160405280600081525061348d565b6121c060006040518060200160405280600081525061339b565b6000600660146101000a81548160ff0219169083151502179055508484600791826121ec92919061403b565b507f49c56a060f3a16e899a045537fb86df850339c10c8c140a052aca89cbcc30c0b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015487876040516122449493929190614147565b60405180910390a15050505050565b6007805461226090613e5e565b80601f016020809104026020016040519081016040528092919081815260200182805461228c90613e5e565b80156122d95780601f106122ae576101008083540402835291602001916122d9565b820191906000526020600020905b8154815290600101906020018083116122bc57829003601f168201915b505050505081565b80600660146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123909190613dc8565b905080156123ca576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff16612410576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612497576040517f667b3fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61249f6132ca565b6124d5576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82826078828290501115612515576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361257b576040517f2c75c45a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612602576040517f702e6e6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036126bc576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084846007918261273092919061403b565b5061277f8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061339b565b505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006127b76132ca565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284e9190613dc8565b90508015612888576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff166128ce576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612955576040517ff52018ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61295d6132ca565b612993576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828260788282905011156129d3576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612a5b576040517f2c75c45a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612b04576040517f8c90bf4500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848460079182612b1592919061403b565b506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050612bb28188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061348d565b6000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f26cb5b08a00ade9c3c65737592d8344548bf60664af05af8ed04720b893eca2760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001548b8b604051612c799493929190614147565b60405180910390a350505050505050565b6000612c94613708565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff16148015612ce25750825b9050600060018367ffffffffffffffff16148015612d17575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015612d25575080155b15612d5c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508315612dac5760018560000160086101000a81548160ff0219169083151502179055505b612db68787613730565b8315612e125760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d26001604051612e0991906145f0565b60405180910390a15b50505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ead9190613dc8565b90508015612ee7576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff16612f2d576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612fb4576040517ff52018ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612fbc6132ca565b612ff2576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82826078828290501115613032576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036130b9576040517fdd9f921d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603613140576040517f98f83ce800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361323c576000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b84846007918261324d92919061403b565b5061329c8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613616565b505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e6001546040518263ffffffff1660e01b815260040161333e9190613afe565b602060405180830381865afa15801561335b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061337f9190614620565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b8173ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f30426d047f8ae6511337356e511764b12f79993bd73501d0e993b3da7a780a4d60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154856040516134409392919061464d565b60405180910390a381600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f9081b884d1178ac5e4855291131f541f64a88854f90b8df23412ffd63c39be1d60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154856040516135329392919061464d565b60405180910390a3600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146135d1576135d060006040518060400160405280600281526020017f3078000000000000000000000000000000000000000000000000000000000000815250613616565b5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b8173ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ffbe262229f456b8d55f1e1887503540dc0a1efcb4b048b6b739117e66d03121460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154856040516136bb9392919061464d565b60405180910390a381600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b61373861379e565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806001819055506001600660146101000a81548160ff0219169083151502179055505050565b6137a66137de565b6137dc576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006137e8613708565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61384781613812565b811461385257600080fd5b50565b6000813590506138648161383e565b92915050565b6000602082840312156138805761387f613808565b5b600061388e84828501613855565b91505092915050565b60008115159050919050565b6138ac81613897565b82525050565b60006020820190506138c760008301846138a3565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138f8826138cd565b9050919050565b613908816138ed565b82525050565b600060208201905061392360008301846138ff565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261394e5761394d613929565b5b8235905067ffffffffffffffff81111561396b5761396a61392e565b5b60208301915083600182028301111561398757613986613933565b5b9250929050565b600080602083850312156139a5576139a4613808565b5b600083013567ffffffffffffffff8111156139c3576139c261380d565b5b6139cf85828601613938565b92509250509250929050565b6139e4816138ed565b81146139ef57600080fd5b50565b600081359050613a01816139db565b92915050565b6000819050919050565b613a1a81613a07565b8114613a2557600080fd5b50565b600081359050613a3781613a11565b92915050565b600080600080600060808688031215613a5957613a58613808565b5b6000613a67888289016139f2565b9550506020613a78888289016139f2565b9450506040613a8988828901613a28565b935050606086013567ffffffffffffffff811115613aaa57613aa961380d565b5b613ab688828901613938565b92509250509295509295909350565b613ace81613812565b82525050565b6000602082019050613ae96000830184613ac5565b92915050565b613af881613a07565b82525050565b6000602082019050613b136000830184613aef565b92915050565b600080600080600060a08688031215613b3557613b34613808565b5b6000613b43888289016139f2565b9550506020613b5488828901613a28565b9450506040613b65888289016139f2565b9350506060613b76888289016139f2565b9250506080613b87888289016139f2565b9150509295509295909350565b600080600060408486031215613bad57613bac613808565b5b6000613bbb868287016139f2565b935050602084013567ffffffffffffffff811115613bdc57613bdb61380d565b5b613be886828701613938565b92509250509250925092565b60008060008060608587031215613c0e57613c0d613808565b5b6000613c1c878288016139f2565b9450506020613c2d878288016139f2565b935050604085013567ffffffffffffffff811115613c4e57613c4d61380d565b5b613c5a87828801613938565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ca2578082015181840152602081019050613c87565b60008484015250505050565b6000601f19601f8301169050919050565b6000613cca82613c68565b613cd48185613c73565b9350613ce4818560208601613c84565b613ced81613cae565b840191505092915050565b60006020820190508181036000830152613d128184613cbf565b905092915050565b613d2381613897565b8114613d2e57600080fd5b50565b600081359050613d4081613d1a565b92915050565b600060208284031215613d5c57613d5b613808565b5b6000613d6a84828501613d31565b91505092915050565b60008060408385031215613d8a57613d89613808565b5b6000613d98858286016139f2565b9250506020613da985828601613a28565b9150509250929050565b600081519050613dc281613d1a565b92915050565b600060208284031215613dde57613ddd613808565b5b6000613dec84828501613db3565b91505092915050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e7657607f821691505b602082108103613e8957613e88613e2f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613ef17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613eb4565b613efb8683613eb4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613f38613f33613f2e84613a07565b613f13565b613a07565b9050919050565b6000819050919050565b613f5283613f1d565b613f66613f5e82613f3f565b848454613ec1565b825550505050565b600090565b613f7b613f6e565b613f86818484613f49565b505050565b5b81811015613faa57613f9f600082613f73565b600181019050613f8c565b5050565b601f821115613fef57613fc081613e8f565b613fc984613ea4565b81016020851015613fd8578190505b613fec613fe485613ea4565b830182613f8b565b50505b505050565b600082821c905092915050565b600061401260001984600802613ff4565b1980831691505092915050565b600061402b8383614001565b9150826002028217905092915050565b6140458383613df5565b67ffffffffffffffff81111561405e5761405d613e00565b5b6140688254613e5e565b614073828285613fae565b6000601f8311600181146140a25760008415614090578287013590505b61409a858261401f565b865550614102565b601f1984166140b086613e8f565b60005b828110156140d8578489013582556001820191506020850194506020810190506140b3565b868310156140f557848901356140f1601f891682614001565b8355505b6001600288020188555050505b50505050505050565b82818337600083830152505050565b60006141268385613c73565b935061413383858461410b565b61413c83613cae565b840190509392505050565b600060608201905061415c60008301876138ff565b6141696020830186613aef565b818103604083015261417c81848661411a565b905095945050505050565b6000614192826138cd565b9050919050565b6141a281614187565b81146141ad57600080fd5b50565b6000813590506141bf81614199565b92915050565b600080fd5b6141d382613cae565b810181811067ffffffffffffffff821117156141f2576141f1613e00565b5b80604052505050565b60006142056137fe565b905061421182826141ca565b919050565b600067ffffffffffffffff82111561423157614230613e00565b5b61423a82613cae565b9050602081019050919050565b600061425a61425584614216565b6141fb565b905082815260208101848484011115614276576142756141c5565b5b61428184828561410b565b509392505050565b600082601f83011261429e5761429d613929565b5b81356142ae848260208601614247565b91505092915050565b6000806000606084860312156142d0576142cf613808565b5b60006142de868287016141b0565b93505060206142ef868287016141b0565b925050604084013567ffffffffffffffff8111156143105761430f61380d565b5b61431c86828701614289565b9150509250925092565b600060408201905061433b60008301856138ff565b61434860208301846138ff565b9392505050565b61435882613c68565b67ffffffffffffffff81111561437157614370613e00565b5b61437b8254613e5e565b614386828285613fae565b600060209050601f8311600181146143b957600084156143a7578287015190505b6143b1858261401f565b865550614419565b601f1984166143c786613e8f565b60005b828110156143ef578489015182556001820191506020850194506020810190506143ca565b8683101561440c5784890151614408601f891682614001565b8355505b6001600288020188555050505b505050505050565b6000815461442e81613e5e565b6144388186613c73565b9450600182166000811461445357600181146144695761449c565b60ff19831686528115156020028601935061449c565b61447285613e8f565b60005b8381101561449457815481890152600182019150602081019050614475565b808801955050505b50505092915050565b60006060820190506144ba60008301866138ff565b6144c76020830185613aef565b81810360408301526144d98184614421565b9050949350505050565b60006080820190506144f860008301886138ff565b61450560208301876138ff565b6145126040830186613aef565b818103606083015261452581848661411a565b90509695505050505050565b50565b6000614541600083613c73565b915061454c82614531565b600082019050919050565b600060808201905061456c60008301866138ff565b61457960208301856138ff565b6145866040830184613aef565b818103606083015261459781614534565b9050949350505050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006145da6145d56145d0846145a1565b613f13565b6145ab565b9050919050565b6145ea816145bf565b82525050565b600060208201905061460560008301846145e1565b92915050565b60008151905061461a816139db565b92915050565b60006020828403121561463657614635613808565b5b60006146448482850161460b565b91505092915050565b600060608201905061466260008301866138ff565b61466f6020830185613aef565b81810360408301526146818184613cbf565b905094935050505056fea2646970667358221220941896e3d59e9ac06178cd3f6d81655ea98ab5673dcb4c9fbe36da3706825be364736f6c63430008160033",
866
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101585760003560e01c80637b103999116100c3578063bd1d07b51161007c578063bd1d07b51461038b578063c9437e5e146103a9578063cb3cfb29146103c7578063cd6dc687146103e3578063e3d79a6e146103ff578063e534155d1461041b57610158565b80637b103999146102df57806383d38fcb146102fd5780638fb33c3c14610319578063a47d1f5e14610335578063acec338a14610353578063baf139751461036f57610158565b806320f99c0a1161011557806320f99c0a14610233578063299e11d814610251578063308f8e1c1461026d57806334427f611461028957806338af3eed146102a5578063452736fd146102c357610158565b806301ffc9a71461015d57806302fb0c5e1461018d578063035aedfa146101ab57806305de0a2e146101c9578063150b7a02146101e557806317d70f7c14610215575b600080fd5b6101776004803603810190610172919061386a565b610439565b60405161018491906138b2565b60405180910390f35b6101956104a3565b6040516101a291906138b2565b60405180910390f35b6101b36104b6565b6040516101c0919061390e565b60405180910390f35b6101e360048036038101906101de919061398e565b6104dc565b005b6101ff60048036038101906101fa9190613a3d565b6109aa565b60405161020c9190613ad4565b60405180910390f35b61021d610ea7565b60405161022a9190613afe565b60405180910390f35b61023b610ead565b604051610248919061390e565b60405180910390f35b61026b60048036038101906102669190613b19565b610ed3565b005b61028760048036038101906102829190613b94565b610fff565b005b6102a3600480360381019061029e9190613bf4565b61148a565b005b6102ad6114a6565b6040516102ba919061390e565b60405180910390f35b6102dd60048036038101906102d8919061398e565b6114cc565b005b6102e7611acb565b6040516102f4919061390e565b60405180910390f35b6103176004803603810190610312919061398e565b611aef565b005b610333600480360381019061032e919061398e565b611f6b565b005b61033d612253565b60405161034a9190613cf8565b60405180910390f35b61036d60048036038101906103689190613d46565b6122e1565b005b61038960048036038101906103849190613b94565b6122fe565b005b610393612787565b6040516103a0919061390e565b60405180910390f35b6103b16127ad565b6040516103be91906138b2565b60405180910390f35b6103e160048036038101906103dc919061398e565b6127bc565b005b6103fd60048036038101906103f89190613d73565b612c8a565b005b61041960048036038101906104149190613b94565b612e1b565b005b6104236132a4565b604051610430919061390e565b60405180910390f35b60007f3e143f7b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600660149054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056e9190613dc8565b905080156105a8576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff166105ee576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610675576040517f667b3fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067d6132ca565b6106b3576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828260788282905011156106f3576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361077b576040517f2c75c45a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610824576040517f8c90bf4500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84846007918261083592919061403b565b506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506108d28188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061339b565b6000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f279c68b511f19d28a79afc0687d9909fc941d6f7551e4b0e333a1171cc2eea5f60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001548b8b6040516109999493929190614147565b60405180910390a350505050505050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3c9190613dc8565b90508015610a76576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff16610abc576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001548514610b0257846040517fed15e6cf000000000000000000000000000000000000000000000000000000008152600401610af99190613afe565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b9257336040517f540b9601000000000000000000000000000000000000000000000000000000008152600401610b89919061390e565b60405180910390fd5b60008073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610c3e5750600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15610d935760008585905003610c80576040517f10daa94f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008787810190610c9491906142b7565b925092509250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610d015750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610d455782826040517fbd805e91000000000000000000000000000000000000000000000000000000008152600401610d3c929190614326565b60405180910390fd5b610d5e836040518060200160405280600081525061348d565b610d77826040518060200160405280600081525061339b565b8060079081610d86919061434f565b5060019350505050610da6565b848460079182610da492919061403b565b505b801515600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f44fc4ffe7e585a241451c67b41553546c65c2b07de6e9d33405e53f75357293b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001546007604051610e71939291906144a5565b60405180910390a47f150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f9250505095945050505050565b60015481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360018190555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660146101000a81548160ff0219169083151502179055505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110919190613dc8565b905080156110cb576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff16611111576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611198576040517f667b3fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111a06132ca565b6111d6576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82826078828290501115611216576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361127c576040517f2c75c45a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061134757508573ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61137d576040517f1c98cac300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084846007918261143392919061403b565b506114828686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061348d565b505050505050565b611495848383610fff565b6114a08383836122fe565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561153a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155e9190613dc8565b90508015611598576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff166115de576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115e66132ca565b61161c576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116a3576040517ff52018ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461172a576040517f667b3fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8282607882829050111561176a576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806118155750600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561184c576040517f2c75c45a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84846007918261185d92919061403b565b506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611948818a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061348d565b611996838a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061339b565b6000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f2812f41a966386b432bd1d43d72b6613f5eca9adf4ed9e193f95f5c91a1b66268660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001548f8f604051611ab89594939291906144e3565b60405180910390a4505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b819190613dc8565b90508015611bbb576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff16611c01576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c88576040517ff52018ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d0f576040517f667b3fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d176132ca565b611d4d576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82826078828290501115611d8d576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611da7600060405180602001604052806000815250613616565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ab67aa583060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001546040518463ffffffff1660e01b8152600401611e2693929190614557565b600060405180830381600087803b158015611e4057600080fd5b505af1158015611e54573d6000803e3d6000fd5b50505050848460079182611e6992919061403b565b506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fea17cbc366059ac6185e6bfc7eebd173d3260bb6bc373830f9d04260e72c244b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001548888604051611f5c9493929190614147565b60405180910390a25050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffd9190613dc8565b90508015612037576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff1661207d576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828260788282905011156120bd576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120c56132ca565b156120fc576040517fd5475a0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461218c57336040517f540b9601000000000000000000000000000000000000000000000000000000008152600401612183919061390e565b60405180910390fd5b6121a660006040518060200160405280600081525061348d565b6121c060006040518060200160405280600081525061339b565b6000600660146101000a81548160ff0219169083151502179055508484600791826121ec92919061403b565b507f49c56a060f3a16e899a045537fb86df850339c10c8c140a052aca89cbcc30c0b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015487876040516122449493929190614147565b60405180910390a15050505050565b6007805461226090613e5e565b80601f016020809104026020016040519081016040528092919081815260200182805461228c90613e5e565b80156122d95780601f106122ae576101008083540402835291602001916122d9565b820191906000526020600020905b8154815290600101906020018083116122bc57829003601f168201915b505050505081565b80600660146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123909190613dc8565b905080156123ca576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff16612410576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612497576040517f667b3fbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61249f6132ca565b6124d5576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82826078828290501115612515576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361257b576040517f2c75c45a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612602576040517f702e6e6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036126bc576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084846007918261273092919061403b565b5061277f8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061339b565b505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006127b76132ca565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284e9190613dc8565b90508015612888576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff166128ce576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612955576040517ff52018ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61295d6132ca565b612993576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828260788282905011156129d3576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612a5b576040517f2c75c45a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612b04576040517f8c90bf4500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848460079182612b1592919061403b565b506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050612bb28188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061348d565b6000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f26cb5b08a00ade9c3c65737592d8344548bf60664af05af8ed04720b893eca2760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001548b8b604051612c799493929190614147565b60405180910390a350505050505050565b6000612c94613708565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff16148015612ce25750825b9050600060018367ffffffffffffffff16148015612d17575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015612d25575080155b15612d5c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508315612dac5760018560000160086101000a81548160ff0219169083151502179055505b612db68787613730565b8315612e125760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d26001604051612e0991906145f0565b60405180910390a15b50505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ead9190613dc8565b90508015612ee7576040517fad49811c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660149054906101000a900460ff16612f2d576040517f7c339b1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612fb4576040517ff52018ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612fbc6132ca565b612ff2576040517f2fd3952300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82826078828290501115613032576040517f1408658400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036130b9576040517fdd9f921d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603613140576040517f98f83ce800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361323c576000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b84846007918261324d92919061403b565b5061329c8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613616565b505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e6001546040518263ffffffff1660e01b815260040161333e9190613afe565b602060405180830381865afa15801561335b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061337f9190614620565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b8173ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f30426d047f8ae6511337356e511764b12f79993bd73501d0e993b3da7a780a4d60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154856040516134409392919061464d565b60405180910390a381600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f9081b884d1178ac5e4855291131f541f64a88854f90b8df23412ffd63c39be1d60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154856040516135329392919061464d565b60405180910390a3600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146135d1576135d060006040518060400160405280600281526020017f3078000000000000000000000000000000000000000000000000000000000000815250613616565b5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b8173ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ffbe262229f456b8d55f1e1887503540dc0a1efcb4b048b6b739117e66d03121460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154856040516136bb9392919061464d565b60405180910390a381600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b61373861379e565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806001819055506001600660146101000a81548160ff0219169083151502179055505050565b6137a66137de565b6137dc576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006137e8613708565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61384781613812565b811461385257600080fd5b50565b6000813590506138648161383e565b92915050565b6000602082840312156138805761387f613808565b5b600061388e84828501613855565b91505092915050565b60008115159050919050565b6138ac81613897565b82525050565b60006020820190506138c760008301846138a3565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138f8826138cd565b9050919050565b613908816138ed565b82525050565b600060208201905061392360008301846138ff565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261394e5761394d613929565b5b8235905067ffffffffffffffff81111561396b5761396a61392e565b5b60208301915083600182028301111561398757613986613933565b5b9250929050565b600080602083850312156139a5576139a4613808565b5b600083013567ffffffffffffffff8111156139c3576139c261380d565b5b6139cf85828601613938565b92509250509250929050565b6139e4816138ed565b81146139ef57600080fd5b50565b600081359050613a01816139db565b92915050565b6000819050919050565b613a1a81613a07565b8114613a2557600080fd5b50565b600081359050613a3781613a11565b92915050565b600080600080600060808688031215613a5957613a58613808565b5b6000613a67888289016139f2565b9550506020613a78888289016139f2565b9450506040613a8988828901613a28565b935050606086013567ffffffffffffffff811115613aaa57613aa961380d565b5b613ab688828901613938565b92509250509295509295909350565b613ace81613812565b82525050565b6000602082019050613ae96000830184613ac5565b92915050565b613af881613a07565b82525050565b6000602082019050613b136000830184613aef565b92915050565b600080600080600060a08688031215613b3557613b34613808565b5b6000613b43888289016139f2565b9550506020613b5488828901613a28565b9450506040613b65888289016139f2565b9350506060613b76888289016139f2565b9250506080613b87888289016139f2565b9150509295509295909350565b600080600060408486031215613bad57613bac613808565b5b6000613bbb868287016139f2565b935050602084013567ffffffffffffffff811115613bdc57613bdb61380d565b5b613be886828701613938565b92509250509250925092565b60008060008060608587031215613c0e57613c0d613808565b5b6000613c1c878288016139f2565b9450506020613c2d878288016139f2565b935050604085013567ffffffffffffffff811115613c4e57613c4d61380d565b5b613c5a87828801613938565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ca2578082015181840152602081019050613c87565b60008484015250505050565b6000601f19601f8301169050919050565b6000613cca82613c68565b613cd48185613c73565b9350613ce4818560208601613c84565b613ced81613cae565b840191505092915050565b60006020820190508181036000830152613d128184613cbf565b905092915050565b613d2381613897565b8114613d2e57600080fd5b50565b600081359050613d4081613d1a565b92915050565b600060208284031215613d5c57613d5b613808565b5b6000613d6a84828501613d31565b91505092915050565b60008060408385031215613d8a57613d89613808565b5b6000613d98858286016139f2565b9250506020613da985828601613a28565b9150509250929050565b600081519050613dc281613d1a565b92915050565b600060208284031215613dde57613ddd613808565b5b6000613dec84828501613db3565b91505092915050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e7657607f821691505b602082108103613e8957613e88613e2f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613ef17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613eb4565b613efb8683613eb4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613f38613f33613f2e84613a07565b613f13565b613a07565b9050919050565b6000819050919050565b613f5283613f1d565b613f66613f5e82613f3f565b848454613ec1565b825550505050565b600090565b613f7b613f6e565b613f86818484613f49565b505050565b5b81811015613faa57613f9f600082613f73565b600181019050613f8c565b5050565b601f821115613fef57613fc081613e8f565b613fc984613ea4565b81016020851015613fd8578190505b613fec613fe485613ea4565b830182613f8b565b50505b505050565b600082821c905092915050565b600061401260001984600802613ff4565b1980831691505092915050565b600061402b8383614001565b9150826002028217905092915050565b6140458383613df5565b67ffffffffffffffff81111561405e5761405d613e00565b5b6140688254613e5e565b614073828285613fae565b6000601f8311600181146140a25760008415614090578287013590505b61409a858261401f565b865550614102565b601f1984166140b086613e8f565b60005b828110156140d8578489013582556001820191506020850194506020810190506140b3565b868310156140f557848901356140f1601f891682614001565b8355505b6001600288020188555050505b50505050505050565b82818337600083830152505050565b60006141268385613c73565b935061413383858461410b565b61413c83613cae565b840190509392505050565b600060608201905061415c60008301876138ff565b6141696020830186613aef565b818103604083015261417c81848661411a565b905095945050505050565b6000614192826138cd565b9050919050565b6141a281614187565b81146141ad57600080fd5b50565b6000813590506141bf81614199565b92915050565b600080fd5b6141d382613cae565b810181811067ffffffffffffffff821117156141f2576141f1613e00565b5b80604052505050565b60006142056137fe565b905061421182826141ca565b919050565b600067ffffffffffffffff82111561423157614230613e00565b5b61423a82613cae565b9050602081019050919050565b600061425a61425584614216565b6141fb565b905082815260208101848484011115614276576142756141c5565b5b61428184828561410b565b509392505050565b600082601f83011261429e5761429d613929565b5b81356142ae848260208601614247565b91505092915050565b6000806000606084860312156142d0576142cf613808565b5b60006142de868287016141b0565b93505060206142ef868287016141b0565b925050604084013567ffffffffffffffff8111156143105761430f61380d565b5b61431c86828701614289565b9150509250925092565b600060408201905061433b60008301856138ff565b61434860208301846138ff565b9392505050565b61435882613c68565b67ffffffffffffffff81111561437157614370613e00565b5b61437b8254613e5e565b614386828285613fae565b600060209050601f8311600181146143b957600084156143a7578287015190505b6143b1858261401f565b865550614419565b601f1984166143c786613e8f565b60005b828110156143ef578489015182556001820191506020850194506020810190506143ca565b8683101561440c5784890151614408601f891682614001565b8355505b6001600288020188555050505b505050505050565b6000815461442e81613e5e565b6144388186613c73565b9450600182166000811461445357600181146144695761449c565b60ff19831686528115156020028601935061449c565b61447285613e8f565b60005b8381101561449457815481890152600182019150602081019050614475565b808801955050505b50505092915050565b60006060820190506144ba60008301866138ff565b6144c76020830185613aef565b81810360408301526144d98184614421565b9050949350505050565b60006080820190506144f860008301886138ff565b61450560208301876138ff565b6145126040830186613aef565b818103606083015261452581848661411a565b90509695505050505050565b50565b6000614541600083613c73565b915061454c82614531565b600082019050919050565b600060808201905061456c60008301866138ff565b61457960208301856138ff565b6145866040830184613aef565b818103606083015261459781614534565b9050949350505050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006145da6145d56145d0846145a1565b613f13565b6145ab565b9050919050565b6145ea816145bf565b82525050565b600060208201905061460560008301846145e1565b92915050565b60008151905061461a816139db565b92915050565b60006020828403121561463657614635613808565b5b60006146448482850161460b565b91505092915050565b600060608201905061466260008301866138ff565b61466f6020830185613aef565b81810360408301526146818184613cbf565b905094935050505056fea2646970667358221220941896e3d59e9ac06178cd3f6d81655ea98ab5673dcb4c9fbe36da3706825be364736f6c63430008160033",
867
+ "linkReferences": {},
868
+ "deployedLinkReferences": {}
869
+ }