@varity-labs/sdk 2.0.0-alpha.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 (295) hide show
  1. package/LICENSE +31 -0
  2. package/README.md +253 -0
  3. package/dist/analytics/index.d.ts +7 -0
  4. package/dist/analytics/index.d.ts.map +1 -0
  5. package/dist/analytics/index.js +6 -0
  6. package/dist/analytics/tracker.d.ts +128 -0
  7. package/dist/analytics/tracker.d.ts.map +1 -0
  8. package/dist/analytics/tracker.js +203 -0
  9. package/dist/blockchain/BlockchainService.d.ts +100 -0
  10. package/dist/blockchain/BlockchainService.d.ts.map +1 -0
  11. package/dist/blockchain/BlockchainService.js +188 -0
  12. package/dist/blockchain/NFTLicensingService.d.ts +69 -0
  13. package/dist/blockchain/NFTLicensingService.d.ts.map +1 -0
  14. package/dist/blockchain/NFTLicensingService.js +136 -0
  15. package/dist/blockchain/RevenueSplitService.d.ts +71 -0
  16. package/dist/blockchain/RevenueSplitService.d.ts.map +1 -0
  17. package/dist/blockchain/RevenueSplitService.js +111 -0
  18. package/dist/blockchain/index.d.ts +48 -0
  19. package/dist/blockchain/index.d.ts.map +1 -0
  20. package/dist/blockchain/index.js +46 -0
  21. package/dist/blockchain/types.d.ts +63 -0
  22. package/dist/blockchain/types.d.ts.map +1 -0
  23. package/dist/blockchain/types.js +6 -0
  24. package/dist/chains/arbitrum.d.ts +89 -0
  25. package/dist/chains/arbitrum.d.ts.map +1 -0
  26. package/dist/chains/arbitrum.js +134 -0
  27. package/dist/chains/base.d.ts +84 -0
  28. package/dist/chains/base.d.ts.map +1 -0
  29. package/dist/chains/base.js +131 -0
  30. package/dist/chains/index.d.ts +36 -0
  31. package/dist/chains/index.d.ts.map +1 -0
  32. package/dist/chains/index.js +32 -0
  33. package/dist/chains/registry.d.ts +113 -0
  34. package/dist/chains/registry.d.ts.map +1 -0
  35. package/dist/chains/registry.js +201 -0
  36. package/dist/chains/varityL3.d.ts +81 -0
  37. package/dist/chains/varityL3.d.ts.map +1 -0
  38. package/dist/chains/varityL3.js +125 -0
  39. package/dist/cli/commands/clone.d.ts +8 -0
  40. package/dist/cli/commands/clone.d.ts.map +1 -0
  41. package/dist/cli/commands/clone.js +391 -0
  42. package/dist/cli/commands/dev.d.ts +8 -0
  43. package/dist/cli/commands/dev.d.ts.map +1 -0
  44. package/dist/cli/commands/dev.js +40 -0
  45. package/dist/cli/commands/generate.d.ts +8 -0
  46. package/dist/cli/commands/generate.d.ts.map +1 -0
  47. package/dist/cli/commands/generate.js +303 -0
  48. package/dist/cli/commands/init.d.ts +8 -0
  49. package/dist/cli/commands/init.d.ts.map +1 -0
  50. package/dist/cli/commands/init.js +317 -0
  51. package/dist/cli/commands/validate.d.ts +8 -0
  52. package/dist/cli/commands/validate.d.ts.map +1 -0
  53. package/dist/cli/commands/validate.js +69 -0
  54. package/dist/cli/index.d.ts +8 -0
  55. package/dist/cli/index.d.ts.map +1 -0
  56. package/dist/cli/index.js +33 -0
  57. package/dist/cli/utils/logger.d.ts +17 -0
  58. package/dist/cli/utils/logger.d.ts.map +1 -0
  59. package/dist/cli/utils/logger.js +35 -0
  60. package/dist/cli/utils/prompts.d.ts +21 -0
  61. package/dist/cli/utils/prompts.d.ts.map +1 -0
  62. package/dist/cli/utils/prompts.js +103 -0
  63. package/dist/contracts/abis/iso/AccessControlRegistry.json +1468 -0
  64. package/dist/contracts/abis/iso/DataProofRegistry.json +797 -0
  65. package/dist/contracts/abis/iso/MerchantRegistry.json +1237 -0
  66. package/dist/contracts/abis/iso/RepPerformance.json +1351 -0
  67. package/dist/contracts/abis/iso/ResidualCalculator.json +1118 -0
  68. package/dist/contracts/abis/iso/TransactionVault.json +1588 -0
  69. package/dist/contracts/abis/iso/VarityWalletFactory.json +475 -0
  70. package/dist/contracts/addresses.d.ts +88 -0
  71. package/dist/contracts/addresses.d.ts.map +1 -0
  72. package/dist/contracts/addresses.js +94 -0
  73. package/dist/contracts/index.d.ts +7 -0
  74. package/dist/contracts/index.d.ts.map +1 -0
  75. package/dist/contracts/index.js +6 -0
  76. package/dist/core/VaritySDK.d.ts +177 -0
  77. package/dist/core/VaritySDK.d.ts.map +1 -0
  78. package/dist/core/VaritySDK.js +325 -0
  79. package/dist/core/config.d.ts +120 -0
  80. package/dist/core/config.d.ts.map +1 -0
  81. package/dist/core/config.js +187 -0
  82. package/dist/core/credentials-proxy.d.ts +157 -0
  83. package/dist/core/credentials-proxy.d.ts.map +1 -0
  84. package/dist/core/credentials-proxy.js +345 -0
  85. package/dist/core/credentials.d.ts +219 -0
  86. package/dist/core/credentials.d.ts.map +1 -0
  87. package/dist/core/credentials.js +345 -0
  88. package/dist/core/template-loader.d.ts +15 -0
  89. package/dist/core/template-loader.d.ts.map +1 -0
  90. package/dist/core/template-loader.js +380 -0
  91. package/dist/core/template.d.ts +321 -0
  92. package/dist/core/template.d.ts.map +1 -0
  93. package/dist/core/template.js +189 -0
  94. package/dist/core/types.d.ts +572 -0
  95. package/dist/core/types.d.ts.map +1 -0
  96. package/dist/core/types.js +52 -0
  97. package/dist/dev/dev-server.d.ts +16 -0
  98. package/dist/dev/dev-server.d.ts.map +1 -0
  99. package/dist/dev/dev-server.js +119 -0
  100. package/dist/generators/contracts/generator.d.ts +21 -0
  101. package/dist/generators/contracts/generator.d.ts.map +1 -0
  102. package/dist/generators/contracts/generator.js +252 -0
  103. package/dist/generators/tests/generator.d.ts +20 -0
  104. package/dist/generators/tests/generator.d.ts.map +1 -0
  105. package/dist/generators/tests/generator.js +375 -0
  106. package/dist/generators/types/generator.d.ts +19 -0
  107. package/dist/generators/types/generator.d.ts.map +1 -0
  108. package/dist/generators/types/generator.js +165 -0
  109. package/dist/generators/ui/component-generator.d.ts +20 -0
  110. package/dist/generators/ui/component-generator.d.ts.map +1 -0
  111. package/dist/generators/ui/component-generator.js +749 -0
  112. package/dist/generators/ui/dashboard-generator.d.ts +20 -0
  113. package/dist/generators/ui/dashboard-generator.d.ts.map +1 -0
  114. package/dist/generators/ui/dashboard-generator.js +349 -0
  115. package/dist/index.d.ts +61 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +74 -0
  118. package/dist/modules/analytics/AnalyticsModule.d.ts +349 -0
  119. package/dist/modules/analytics/AnalyticsModule.d.ts.map +1 -0
  120. package/dist/modules/analytics/AnalyticsModule.js +274 -0
  121. package/dist/modules/analytics/index.d.ts +3 -0
  122. package/dist/modules/analytics/index.d.ts.map +1 -0
  123. package/dist/modules/analytics/index.js +1 -0
  124. package/dist/modules/auth/AccessKeyModule.d.ts +189 -0
  125. package/dist/modules/auth/AccessKeyModule.d.ts.map +1 -0
  126. package/dist/modules/auth/AccessKeyModule.js +322 -0
  127. package/dist/modules/auth/AuthModule.d.ts +133 -0
  128. package/dist/modules/auth/AuthModule.d.ts.map +1 -0
  129. package/dist/modules/auth/AuthModule.js +214 -0
  130. package/dist/modules/auth/index.d.ts +8 -0
  131. package/dist/modules/auth/index.d.ts.map +1 -0
  132. package/dist/modules/auth/index.js +6 -0
  133. package/dist/modules/cache/CacheModule.d.ts +279 -0
  134. package/dist/modules/cache/CacheModule.d.ts.map +1 -0
  135. package/dist/modules/cache/CacheModule.js +493 -0
  136. package/dist/modules/cache/index.d.ts +3 -0
  137. package/dist/modules/cache/index.d.ts.map +1 -0
  138. package/dist/modules/cache/index.js +1 -0
  139. package/dist/modules/compute/ComputeModule.d.ts +226 -0
  140. package/dist/modules/compute/ComputeModule.d.ts.map +1 -0
  141. package/dist/modules/compute/ComputeModule.js +379 -0
  142. package/dist/modules/compute/index.d.ts +6 -0
  143. package/dist/modules/compute/index.d.ts.map +1 -0
  144. package/dist/modules/compute/index.js +4 -0
  145. package/dist/modules/contracts/ContractsModule.d.ts +164 -0
  146. package/dist/modules/contracts/ContractsModule.d.ts.map +1 -0
  147. package/dist/modules/contracts/ContractsModule.js +242 -0
  148. package/dist/modules/contracts/index.d.ts +6 -0
  149. package/dist/modules/contracts/index.d.ts.map +1 -0
  150. package/dist/modules/contracts/index.js +4 -0
  151. package/dist/modules/export/ExportModule.d.ts +346 -0
  152. package/dist/modules/export/ExportModule.d.ts.map +1 -0
  153. package/dist/modules/export/ExportModule.js +432 -0
  154. package/dist/modules/export/index.d.ts +3 -0
  155. package/dist/modules/export/index.d.ts.map +1 -0
  156. package/dist/modules/export/index.js +1 -0
  157. package/dist/modules/forecasting/ForecastingModule.d.ts +579 -0
  158. package/dist/modules/forecasting/ForecastingModule.d.ts.map +1 -0
  159. package/dist/modules/forecasting/ForecastingModule.js +310 -0
  160. package/dist/modules/forecasting/index.d.ts +3 -0
  161. package/dist/modules/forecasting/index.d.ts.map +1 -0
  162. package/dist/modules/forecasting/index.js +1 -0
  163. package/dist/modules/monitoring/MonitoringModule.d.ts +359 -0
  164. package/dist/modules/monitoring/MonitoringModule.d.ts.map +1 -0
  165. package/dist/modules/monitoring/MonitoringModule.js +483 -0
  166. package/dist/modules/monitoring/index.d.ts +3 -0
  167. package/dist/modules/monitoring/index.d.ts.map +1 -0
  168. package/dist/modules/monitoring/index.js +1 -0
  169. package/dist/modules/notifications/NotificationsModule.d.ts +336 -0
  170. package/dist/modules/notifications/NotificationsModule.d.ts.map +1 -0
  171. package/dist/modules/notifications/NotificationsModule.js +418 -0
  172. package/dist/modules/notifications/index.d.ts +3 -0
  173. package/dist/modules/notifications/index.d.ts.map +1 -0
  174. package/dist/modules/notifications/index.js +1 -0
  175. package/dist/modules/oracle/OracleModule.d.ts +110 -0
  176. package/dist/modules/oracle/OracleModule.d.ts.map +1 -0
  177. package/dist/modules/oracle/OracleModule.js +151 -0
  178. package/dist/modules/oracle/index.d.ts +6 -0
  179. package/dist/modules/oracle/index.d.ts.map +1 -0
  180. package/dist/modules/oracle/index.js +4 -0
  181. package/dist/modules/storage/S3Module.d.ts +377 -0
  182. package/dist/modules/storage/S3Module.d.ts.map +1 -0
  183. package/dist/modules/storage/S3Module.js +680 -0
  184. package/dist/modules/storage/StorageModule.d.ts +157 -0
  185. package/dist/modules/storage/StorageModule.d.ts.map +1 -0
  186. package/dist/modules/storage/StorageModule.js +302 -0
  187. package/dist/modules/storage/adapters/AdapterFactory.d.ts +100 -0
  188. package/dist/modules/storage/adapters/AdapterFactory.d.ts.map +1 -0
  189. package/dist/modules/storage/adapters/AdapterFactory.js +209 -0
  190. package/dist/modules/storage/adapters/FilecoinAdapter.d.ts +94 -0
  191. package/dist/modules/storage/adapters/FilecoinAdapter.d.ts.map +1 -0
  192. package/dist/modules/storage/adapters/FilecoinAdapter.js +263 -0
  193. package/dist/modules/storage/adapters/IStorageAdapter.d.ts +287 -0
  194. package/dist/modules/storage/adapters/IStorageAdapter.d.ts.map +1 -0
  195. package/dist/modules/storage/adapters/IStorageAdapter.js +81 -0
  196. package/dist/modules/storage/adapters/MultiTierAdapter.d.ts +187 -0
  197. package/dist/modules/storage/adapters/MultiTierAdapter.d.ts.map +1 -0
  198. package/dist/modules/storage/adapters/MultiTierAdapter.js +430 -0
  199. package/dist/modules/storage/adapters/index.d.ts +12 -0
  200. package/dist/modules/storage/adapters/index.d.ts.map +1 -0
  201. package/dist/modules/storage/adapters/index.js +12 -0
  202. package/dist/modules/storage/index.d.ts +16 -0
  203. package/dist/modules/storage/index.d.ts.map +1 -0
  204. package/dist/modules/storage/index.js +15 -0
  205. package/dist/modules/storage/tiering/AccessAnalyzer.d.ts +227 -0
  206. package/dist/modules/storage/tiering/AccessAnalyzer.d.ts.map +1 -0
  207. package/dist/modules/storage/tiering/AccessAnalyzer.js +367 -0
  208. package/dist/modules/storage/tiering/CostOptimizer.d.ts +248 -0
  209. package/dist/modules/storage/tiering/CostOptimizer.d.ts.map +1 -0
  210. package/dist/modules/storage/tiering/CostOptimizer.js +356 -0
  211. package/dist/modules/storage/tiering/MetadataStore.d.ts +287 -0
  212. package/dist/modules/storage/tiering/MetadataStore.d.ts.map +1 -0
  213. package/dist/modules/storage/tiering/MetadataStore.js +535 -0
  214. package/dist/modules/storage/tiering/TieringEngine.d.ts +237 -0
  215. package/dist/modules/storage/tiering/TieringEngine.d.ts.map +1 -0
  216. package/dist/modules/storage/tiering/TieringEngine.js +419 -0
  217. package/dist/modules/storage/tiering/example.d.ts +8 -0
  218. package/dist/modules/storage/tiering/example.d.ts.map +1 -0
  219. package/dist/modules/storage/tiering/example.js +250 -0
  220. package/dist/modules/storage/tiering/index.d.ts +17 -0
  221. package/dist/modules/storage/tiering/index.d.ts.map +1 -0
  222. package/dist/modules/storage/tiering/index.js +13 -0
  223. package/dist/modules/webhooks/WebhooksModule.d.ts +476 -0
  224. package/dist/modules/webhooks/WebhooksModule.d.ts.map +1 -0
  225. package/dist/modules/webhooks/WebhooksModule.js +359 -0
  226. package/dist/modules/webhooks/index.d.ts +3 -0
  227. package/dist/modules/webhooks/index.d.ts.map +1 -0
  228. package/dist/modules/webhooks/index.js +1 -0
  229. package/dist/modules/zk/ZKModule.d.ts +153 -0
  230. package/dist/modules/zk/ZKModule.d.ts.map +1 -0
  231. package/dist/modules/zk/ZKModule.js +262 -0
  232. package/dist/modules/zk/index.d.ts +7 -0
  233. package/dist/modules/zk/index.d.ts.map +1 -0
  234. package/dist/modules/zk/index.js +4 -0
  235. package/dist/thirdweb/BridgeClient.d.ts +228 -0
  236. package/dist/thirdweb/BridgeClient.d.ts.map +1 -0
  237. package/dist/thirdweb/BridgeClient.js +160 -0
  238. package/dist/thirdweb/EngineClient.d.ts +396 -0
  239. package/dist/thirdweb/EngineClient.d.ts.map +1 -0
  240. package/dist/thirdweb/EngineClient.js +386 -0
  241. package/dist/thirdweb/GatewayClient.d.ts +190 -0
  242. package/dist/thirdweb/GatewayClient.d.ts.map +1 -0
  243. package/dist/thirdweb/GatewayClient.js +257 -0
  244. package/dist/thirdweb/NebulaClient.d.ts +292 -0
  245. package/dist/thirdweb/NebulaClient.d.ts.map +1 -0
  246. package/dist/thirdweb/NebulaClient.js +180 -0
  247. package/dist/thirdweb/StorageClient.d.ts +445 -0
  248. package/dist/thirdweb/StorageClient.d.ts.map +1 -0
  249. package/dist/thirdweb/StorageClient.js +405 -0
  250. package/dist/thirdweb/ThirdwebWrapper.d.ts +236 -0
  251. package/dist/thirdweb/ThirdwebWrapper.d.ts.map +1 -0
  252. package/dist/thirdweb/ThirdwebWrapper.js +332 -0
  253. package/dist/thirdweb/index.d.ts +21 -0
  254. package/dist/thirdweb/index.d.ts.map +1 -0
  255. package/dist/thirdweb/index.js +28 -0
  256. package/dist/thirdweb/varity-chain.d.ts +48 -0
  257. package/dist/thirdweb/varity-chain.d.ts.map +1 -0
  258. package/dist/thirdweb/varity-chain.js +64 -0
  259. package/dist/thirdweb/x402Client.d.ts +319 -0
  260. package/dist/thirdweb/x402Client.d.ts.map +1 -0
  261. package/dist/thirdweb/x402Client.js +223 -0
  262. package/dist/tracking/gasTracker.d.ts +158 -0
  263. package/dist/tracking/gasTracker.d.ts.map +1 -0
  264. package/dist/tracking/gasTracker.js +227 -0
  265. package/dist/tracking/index.d.ts +10 -0
  266. package/dist/tracking/index.d.ts.map +1 -0
  267. package/dist/tracking/index.js +8 -0
  268. package/dist/tracking/types.d.ts +327 -0
  269. package/dist/tracking/types.d.ts.map +1 -0
  270. package/dist/tracking/types.js +8 -0
  271. package/dist/ui/components/ChartWidget.d.ts +36 -0
  272. package/dist/ui/components/ChartWidget.d.ts.map +1 -0
  273. package/dist/ui/components/ChartWidget.js +82 -0
  274. package/dist/ui/components/DashboardLayout.d.ts +41 -0
  275. package/dist/ui/components/DashboardLayout.d.ts.map +1 -0
  276. package/dist/ui/components/DashboardLayout.js +102 -0
  277. package/dist/ui/components/DataTable.d.ts +49 -0
  278. package/dist/ui/components/DataTable.d.ts.map +1 -0
  279. package/dist/ui/components/DataTable.js +96 -0
  280. package/dist/ui/components/EntityForm.d.ts +60 -0
  281. package/dist/ui/components/EntityForm.d.ts.map +1 -0
  282. package/dist/ui/components/EntityForm.js +182 -0
  283. package/dist/ui/components/KPICard.d.ts +29 -0
  284. package/dist/ui/components/KPICard.d.ts.map +1 -0
  285. package/dist/ui/components/KPICard.js +61 -0
  286. package/dist/ui/components/Modal.d.ts +34 -0
  287. package/dist/ui/components/Modal.d.ts.map +1 -0
  288. package/dist/ui/components/Modal.js +30 -0
  289. package/dist/ui/components/index.d.ts +18 -0
  290. package/dist/ui/components/index.d.ts.map +1 -0
  291. package/dist/ui/components/index.js +11 -0
  292. package/dist/validation/template-validator.d.ts +25 -0
  293. package/dist/validation/template-validator.d.ts.map +1 -0
  294. package/dist/validation/template-validator.js +305 -0
  295. package/package.json +102 -0
@@ -0,0 +1,1588 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "TransactionVault",
4
+ "sourceName": "contracts/TransactionVault.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "AccessControlBadConfirmation",
14
+ "type": "error"
15
+ },
16
+ {
17
+ "inputs": [
18
+ {
19
+ "internalType": "address",
20
+ "name": "account",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "bytes32",
25
+ "name": "neededRole",
26
+ "type": "bytes32"
27
+ }
28
+ ],
29
+ "name": "AccessControlUnauthorizedAccount",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "address",
36
+ "name": "target",
37
+ "type": "address"
38
+ }
39
+ ],
40
+ "name": "AddressEmptyCode",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [],
45
+ "name": "AlreadyConfigured",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [],
50
+ "name": "BatchSizeExceeded",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [
55
+ {
56
+ "internalType": "uint256",
57
+ "name": "provided",
58
+ "type": "uint256"
59
+ },
60
+ {
61
+ "internalType": "uint256",
62
+ "name": "minimum",
63
+ "type": "uint256"
64
+ }
65
+ ],
66
+ "name": "BatchTooSmall",
67
+ "type": "error"
68
+ },
69
+ {
70
+ "inputs": [
71
+ {
72
+ "internalType": "address",
73
+ "name": "implementation",
74
+ "type": "address"
75
+ }
76
+ ],
77
+ "name": "ERC1967InvalidImplementation",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "ERC1967NonPayable",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [],
87
+ "name": "EnforcedPause",
88
+ "type": "error"
89
+ },
90
+ {
91
+ "inputs": [],
92
+ "name": "ExpectedPause",
93
+ "type": "error"
94
+ },
95
+ {
96
+ "inputs": [
97
+ {
98
+ "internalType": "address",
99
+ "name": "target",
100
+ "type": "address"
101
+ },
102
+ {
103
+ "internalType": "string",
104
+ "name": "functionName",
105
+ "type": "string"
106
+ }
107
+ ],
108
+ "name": "ExternalCallFailedCritical",
109
+ "type": "error"
110
+ },
111
+ {
112
+ "inputs": [],
113
+ "name": "FailedCall",
114
+ "type": "error"
115
+ },
116
+ {
117
+ "inputs": [],
118
+ "name": "InvalidDateRange",
119
+ "type": "error"
120
+ },
121
+ {
122
+ "inputs": [],
123
+ "name": "InvalidInitialization",
124
+ "type": "error"
125
+ },
126
+ {
127
+ "inputs": [],
128
+ "name": "InvalidMerchantId",
129
+ "type": "error"
130
+ },
131
+ {
132
+ "inputs": [],
133
+ "name": "InvalidRepId",
134
+ "type": "error"
135
+ },
136
+ {
137
+ "inputs": [],
138
+ "name": "InvalidTransactionAmount",
139
+ "type": "error"
140
+ },
141
+ {
142
+ "inputs": [],
143
+ "name": "NotInitializing",
144
+ "type": "error"
145
+ },
146
+ {
147
+ "inputs": [],
148
+ "name": "QueryLimitExceeded",
149
+ "type": "error"
150
+ },
151
+ {
152
+ "inputs": [
153
+ {
154
+ "internalType": "address",
155
+ "name": "caller",
156
+ "type": "address"
157
+ },
158
+ {
159
+ "internalType": "uint256",
160
+ "name": "timeSinceLastAction",
161
+ "type": "uint256"
162
+ },
163
+ {
164
+ "internalType": "uint256",
165
+ "name": "required",
166
+ "type": "uint256"
167
+ }
168
+ ],
169
+ "name": "RateLimitExceeded",
170
+ "type": "error"
171
+ },
172
+ {
173
+ "inputs": [],
174
+ "name": "ReentrancyGuardReentrantCall",
175
+ "type": "error"
176
+ },
177
+ {
178
+ "inputs": [],
179
+ "name": "TransactionDateInFuture",
180
+ "type": "error"
181
+ },
182
+ {
183
+ "inputs": [
184
+ {
185
+ "internalType": "bytes32",
186
+ "name": "transactionId",
187
+ "type": "bytes32"
188
+ }
189
+ ],
190
+ "name": "TransactionNotFound",
191
+ "type": "error"
192
+ },
193
+ {
194
+ "inputs": [],
195
+ "name": "UUPSUnauthorizedCallContext",
196
+ "type": "error"
197
+ },
198
+ {
199
+ "inputs": [
200
+ {
201
+ "internalType": "bytes32",
202
+ "name": "slot",
203
+ "type": "bytes32"
204
+ }
205
+ ],
206
+ "name": "UUPSUnsupportedProxiableUUID",
207
+ "type": "error"
208
+ },
209
+ {
210
+ "anonymous": false,
211
+ "inputs": [
212
+ {
213
+ "indexed": true,
214
+ "internalType": "bytes32",
215
+ "name": "batchId",
216
+ "type": "bytes32"
217
+ },
218
+ {
219
+ "indexed": false,
220
+ "internalType": "uint256",
221
+ "name": "transactionCount",
222
+ "type": "uint256"
223
+ },
224
+ {
225
+ "indexed": false,
226
+ "internalType": "uint256",
227
+ "name": "totalVolume",
228
+ "type": "uint256"
229
+ },
230
+ {
231
+ "indexed": false,
232
+ "internalType": "uint256",
233
+ "name": "totalResiduals",
234
+ "type": "uint256"
235
+ }
236
+ ],
237
+ "name": "BatchTransactionsRecorded",
238
+ "type": "event"
239
+ },
240
+ {
241
+ "anonymous": false,
242
+ "inputs": [
243
+ {
244
+ "indexed": true,
245
+ "internalType": "bytes32",
246
+ "name": "companyId",
247
+ "type": "bytes32"
248
+ },
249
+ {
250
+ "indexed": false,
251
+ "internalType": "string",
252
+ "name": "companyName",
253
+ "type": "string"
254
+ },
255
+ {
256
+ "indexed": false,
257
+ "internalType": "string",
258
+ "name": "templateVersion",
259
+ "type": "string"
260
+ }
261
+ ],
262
+ "name": "CompanyConfigured",
263
+ "type": "event"
264
+ },
265
+ {
266
+ "anonymous": false,
267
+ "inputs": [
268
+ {
269
+ "indexed": true,
270
+ "internalType": "address",
271
+ "name": "target",
272
+ "type": "address"
273
+ },
274
+ {
275
+ "indexed": false,
276
+ "internalType": "string",
277
+ "name": "functionName",
278
+ "type": "string"
279
+ },
280
+ {
281
+ "indexed": false,
282
+ "internalType": "bytes",
283
+ "name": "returnData",
284
+ "type": "bytes"
285
+ }
286
+ ],
287
+ "name": "ExternalCallFailed",
288
+ "type": "event"
289
+ },
290
+ {
291
+ "anonymous": false,
292
+ "inputs": [
293
+ {
294
+ "indexed": false,
295
+ "internalType": "string",
296
+ "name": "contractName",
297
+ "type": "string"
298
+ },
299
+ {
300
+ "indexed": false,
301
+ "internalType": "address",
302
+ "name": "newAddress",
303
+ "type": "address"
304
+ }
305
+ ],
306
+ "name": "ExternalContractUpdated",
307
+ "type": "event"
308
+ },
309
+ {
310
+ "anonymous": false,
311
+ "inputs": [
312
+ {
313
+ "indexed": false,
314
+ "internalType": "uint64",
315
+ "name": "version",
316
+ "type": "uint64"
317
+ }
318
+ ],
319
+ "name": "Initialized",
320
+ "type": "event"
321
+ },
322
+ {
323
+ "anonymous": false,
324
+ "inputs": [
325
+ {
326
+ "indexed": false,
327
+ "internalType": "address",
328
+ "name": "account",
329
+ "type": "address"
330
+ }
331
+ ],
332
+ "name": "Paused",
333
+ "type": "event"
334
+ },
335
+ {
336
+ "anonymous": false,
337
+ "inputs": [
338
+ {
339
+ "indexed": true,
340
+ "internalType": "bytes32",
341
+ "name": "role",
342
+ "type": "bytes32"
343
+ },
344
+ {
345
+ "indexed": true,
346
+ "internalType": "bytes32",
347
+ "name": "previousAdminRole",
348
+ "type": "bytes32"
349
+ },
350
+ {
351
+ "indexed": true,
352
+ "internalType": "bytes32",
353
+ "name": "newAdminRole",
354
+ "type": "bytes32"
355
+ }
356
+ ],
357
+ "name": "RoleAdminChanged",
358
+ "type": "event"
359
+ },
360
+ {
361
+ "anonymous": false,
362
+ "inputs": [
363
+ {
364
+ "indexed": true,
365
+ "internalType": "bytes32",
366
+ "name": "role",
367
+ "type": "bytes32"
368
+ },
369
+ {
370
+ "indexed": true,
371
+ "internalType": "address",
372
+ "name": "account",
373
+ "type": "address"
374
+ },
375
+ {
376
+ "indexed": true,
377
+ "internalType": "address",
378
+ "name": "sender",
379
+ "type": "address"
380
+ }
381
+ ],
382
+ "name": "RoleGranted",
383
+ "type": "event"
384
+ },
385
+ {
386
+ "anonymous": false,
387
+ "inputs": [
388
+ {
389
+ "indexed": true,
390
+ "internalType": "bytes32",
391
+ "name": "role",
392
+ "type": "bytes32"
393
+ },
394
+ {
395
+ "indexed": true,
396
+ "internalType": "address",
397
+ "name": "account",
398
+ "type": "address"
399
+ },
400
+ {
401
+ "indexed": true,
402
+ "internalType": "address",
403
+ "name": "sender",
404
+ "type": "address"
405
+ }
406
+ ],
407
+ "name": "RoleRevoked",
408
+ "type": "event"
409
+ },
410
+ {
411
+ "anonymous": false,
412
+ "inputs": [
413
+ {
414
+ "indexed": true,
415
+ "internalType": "bytes32",
416
+ "name": "transactionId",
417
+ "type": "bytes32"
418
+ },
419
+ {
420
+ "indexed": true,
421
+ "internalType": "bytes32",
422
+ "name": "merchantId",
423
+ "type": "bytes32"
424
+ },
425
+ {
426
+ "indexed": true,
427
+ "internalType": "bytes32",
428
+ "name": "repId",
429
+ "type": "bytes32"
430
+ },
431
+ {
432
+ "indexed": false,
433
+ "internalType": "uint256",
434
+ "name": "transactionDate",
435
+ "type": "uint256"
436
+ },
437
+ {
438
+ "indexed": false,
439
+ "internalType": "uint256",
440
+ "name": "transactionAmount",
441
+ "type": "uint256"
442
+ },
443
+ {
444
+ "indexed": false,
445
+ "internalType": "uint256",
446
+ "name": "grossResidual",
447
+ "type": "uint256"
448
+ },
449
+ {
450
+ "indexed": false,
451
+ "internalType": "enum TransactionVault.TransactionType",
452
+ "name": "txType",
453
+ "type": "uint8"
454
+ },
455
+ {
456
+ "indexed": false,
457
+ "internalType": "bool",
458
+ "name": "isForecast",
459
+ "type": "bool"
460
+ },
461
+ {
462
+ "indexed": false,
463
+ "internalType": "uint256",
464
+ "name": "blockTimestamp",
465
+ "type": "uint256"
466
+ }
467
+ ],
468
+ "name": "TransactionRecorded",
469
+ "type": "event"
470
+ },
471
+ {
472
+ "anonymous": false,
473
+ "inputs": [
474
+ {
475
+ "indexed": true,
476
+ "internalType": "bytes32",
477
+ "name": "transactionId",
478
+ "type": "bytes32"
479
+ },
480
+ {
481
+ "indexed": true,
482
+ "internalType": "bytes32",
483
+ "name": "dataCommitmentHash",
484
+ "type": "bytes32"
485
+ },
486
+ {
487
+ "indexed": false,
488
+ "internalType": "uint256",
489
+ "name": "timestamp",
490
+ "type": "uint256"
491
+ }
492
+ ],
493
+ "name": "TransactionRecordedWithCommitment",
494
+ "type": "event"
495
+ },
496
+ {
497
+ "anonymous": false,
498
+ "inputs": [
499
+ {
500
+ "indexed": false,
501
+ "internalType": "address",
502
+ "name": "account",
503
+ "type": "address"
504
+ }
505
+ ],
506
+ "name": "Unpaused",
507
+ "type": "event"
508
+ },
509
+ {
510
+ "anonymous": false,
511
+ "inputs": [
512
+ {
513
+ "indexed": true,
514
+ "internalType": "address",
515
+ "name": "implementation",
516
+ "type": "address"
517
+ }
518
+ ],
519
+ "name": "Upgraded",
520
+ "type": "event"
521
+ },
522
+ {
523
+ "inputs": [],
524
+ "name": "ADMIN_ROLE",
525
+ "outputs": [
526
+ {
527
+ "internalType": "bytes32",
528
+ "name": "",
529
+ "type": "bytes32"
530
+ }
531
+ ],
532
+ "stateMutability": "view",
533
+ "type": "function"
534
+ },
535
+ {
536
+ "inputs": [],
537
+ "name": "DEFAULT_ADMIN_ROLE",
538
+ "outputs": [
539
+ {
540
+ "internalType": "bytes32",
541
+ "name": "",
542
+ "type": "bytes32"
543
+ }
544
+ ],
545
+ "stateMutability": "view",
546
+ "type": "function"
547
+ },
548
+ {
549
+ "inputs": [],
550
+ "name": "RECORDER_ROLE",
551
+ "outputs": [
552
+ {
553
+ "internalType": "bytes32",
554
+ "name": "",
555
+ "type": "bytes32"
556
+ }
557
+ ],
558
+ "stateMutability": "view",
559
+ "type": "function"
560
+ },
561
+ {
562
+ "inputs": [],
563
+ "name": "SYSTEM_ROLE",
564
+ "outputs": [
565
+ {
566
+ "internalType": "bytes32",
567
+ "name": "",
568
+ "type": "bytes32"
569
+ }
570
+ ],
571
+ "stateMutability": "view",
572
+ "type": "function"
573
+ },
574
+ {
575
+ "inputs": [],
576
+ "name": "UPGRADE_INTERFACE_VERSION",
577
+ "outputs": [
578
+ {
579
+ "internalType": "string",
580
+ "name": "",
581
+ "type": "string"
582
+ }
583
+ ],
584
+ "stateMutability": "view",
585
+ "type": "function"
586
+ },
587
+ {
588
+ "inputs": [
589
+ {
590
+ "internalType": "bytes32[]",
591
+ "name": "txIds",
592
+ "type": "bytes32[]"
593
+ }
594
+ ],
595
+ "name": "batchGetTransactions",
596
+ "outputs": [
597
+ {
598
+ "components": [
599
+ {
600
+ "internalType": "bytes32",
601
+ "name": "transactionId",
602
+ "type": "bytes32"
603
+ },
604
+ {
605
+ "internalType": "bytes32",
606
+ "name": "merchantId",
607
+ "type": "bytes32"
608
+ },
609
+ {
610
+ "internalType": "bytes32",
611
+ "name": "repId",
612
+ "type": "bytes32"
613
+ },
614
+ {
615
+ "internalType": "uint256",
616
+ "name": "transactionDate",
617
+ "type": "uint256"
618
+ },
619
+ {
620
+ "internalType": "uint256",
621
+ "name": "transactionAmount",
622
+ "type": "uint256"
623
+ },
624
+ {
625
+ "internalType": "uint256",
626
+ "name": "grossResidual",
627
+ "type": "uint256"
628
+ },
629
+ {
630
+ "internalType": "enum TransactionVault.TransactionType",
631
+ "name": "txType",
632
+ "type": "uint8"
633
+ },
634
+ {
635
+ "internalType": "bool",
636
+ "name": "isForecast",
637
+ "type": "bool"
638
+ },
639
+ {
640
+ "internalType": "uint256",
641
+ "name": "recordedAt",
642
+ "type": "uint256"
643
+ },
644
+ {
645
+ "internalType": "bytes32",
646
+ "name": "batchId",
647
+ "type": "bytes32"
648
+ }
649
+ ],
650
+ "internalType": "struct TransactionVault.Transaction[]",
651
+ "name": "",
652
+ "type": "tuple[]"
653
+ }
654
+ ],
655
+ "stateMutability": "view",
656
+ "type": "function"
657
+ },
658
+ {
659
+ "inputs": [],
660
+ "name": "companyConfig",
661
+ "outputs": [
662
+ {
663
+ "internalType": "bytes32",
664
+ "name": "companyId",
665
+ "type": "bytes32"
666
+ },
667
+ {
668
+ "internalType": "uint256",
669
+ "name": "deploymentTimestamp",
670
+ "type": "uint256"
671
+ },
672
+ {
673
+ "internalType": "address",
674
+ "name": "deployer",
675
+ "type": "address"
676
+ },
677
+ {
678
+ "internalType": "bool",
679
+ "name": "isActive",
680
+ "type": "bool"
681
+ },
682
+ {
683
+ "internalType": "string",
684
+ "name": "companyName",
685
+ "type": "string"
686
+ },
687
+ {
688
+ "internalType": "string",
689
+ "name": "templateVersion",
690
+ "type": "string"
691
+ }
692
+ ],
693
+ "stateMutability": "view",
694
+ "type": "function"
695
+ },
696
+ {
697
+ "inputs": [],
698
+ "name": "getAggregateStats",
699
+ "outputs": [
700
+ {
701
+ "internalType": "uint256",
702
+ "name": "_transactionCount",
703
+ "type": "uint256"
704
+ },
705
+ {
706
+ "internalType": "uint256",
707
+ "name": "_totalVolume",
708
+ "type": "uint256"
709
+ },
710
+ {
711
+ "internalType": "uint256",
712
+ "name": "_totalResiduals",
713
+ "type": "uint256"
714
+ },
715
+ {
716
+ "internalType": "uint256",
717
+ "name": "_merchantCount",
718
+ "type": "uint256"
719
+ },
720
+ {
721
+ "internalType": "uint256",
722
+ "name": "_repCount",
723
+ "type": "uint256"
724
+ }
725
+ ],
726
+ "stateMutability": "view",
727
+ "type": "function"
728
+ },
729
+ {
730
+ "inputs": [
731
+ {
732
+ "internalType": "uint256",
733
+ "name": "startDate",
734
+ "type": "uint256"
735
+ },
736
+ {
737
+ "internalType": "uint256",
738
+ "name": "endDate",
739
+ "type": "uint256"
740
+ }
741
+ ],
742
+ "name": "getDashboardSummaryForDateRange",
743
+ "outputs": [
744
+ {
745
+ "internalType": "uint256",
746
+ "name": "txCount",
747
+ "type": "uint256"
748
+ },
749
+ {
750
+ "internalType": "uint256",
751
+ "name": "volume",
752
+ "type": "uint256"
753
+ },
754
+ {
755
+ "internalType": "uint256",
756
+ "name": "residuals",
757
+ "type": "uint256"
758
+ }
759
+ ],
760
+ "stateMutability": "view",
761
+ "type": "function"
762
+ },
763
+ {
764
+ "inputs": [
765
+ {
766
+ "internalType": "bytes32",
767
+ "name": "role",
768
+ "type": "bytes32"
769
+ }
770
+ ],
771
+ "name": "getRoleAdmin",
772
+ "outputs": [
773
+ {
774
+ "internalType": "bytes32",
775
+ "name": "",
776
+ "type": "bytes32"
777
+ }
778
+ ],
779
+ "stateMutability": "view",
780
+ "type": "function"
781
+ },
782
+ {
783
+ "inputs": [],
784
+ "name": "getTotalResiduals",
785
+ "outputs": [
786
+ {
787
+ "internalType": "uint256",
788
+ "name": "",
789
+ "type": "uint256"
790
+ }
791
+ ],
792
+ "stateMutability": "view",
793
+ "type": "function"
794
+ },
795
+ {
796
+ "inputs": [],
797
+ "name": "getTotalVolume",
798
+ "outputs": [
799
+ {
800
+ "internalType": "uint256",
801
+ "name": "",
802
+ "type": "uint256"
803
+ }
804
+ ],
805
+ "stateMutability": "view",
806
+ "type": "function"
807
+ },
808
+ {
809
+ "inputs": [
810
+ {
811
+ "internalType": "bytes32",
812
+ "name": "txId",
813
+ "type": "bytes32"
814
+ }
815
+ ],
816
+ "name": "getTransaction",
817
+ "outputs": [
818
+ {
819
+ "components": [
820
+ {
821
+ "internalType": "bytes32",
822
+ "name": "transactionId",
823
+ "type": "bytes32"
824
+ },
825
+ {
826
+ "internalType": "bytes32",
827
+ "name": "merchantId",
828
+ "type": "bytes32"
829
+ },
830
+ {
831
+ "internalType": "bytes32",
832
+ "name": "repId",
833
+ "type": "bytes32"
834
+ },
835
+ {
836
+ "internalType": "uint256",
837
+ "name": "transactionDate",
838
+ "type": "uint256"
839
+ },
840
+ {
841
+ "internalType": "uint256",
842
+ "name": "transactionAmount",
843
+ "type": "uint256"
844
+ },
845
+ {
846
+ "internalType": "uint256",
847
+ "name": "grossResidual",
848
+ "type": "uint256"
849
+ },
850
+ {
851
+ "internalType": "enum TransactionVault.TransactionType",
852
+ "name": "txType",
853
+ "type": "uint8"
854
+ },
855
+ {
856
+ "internalType": "bool",
857
+ "name": "isForecast",
858
+ "type": "bool"
859
+ },
860
+ {
861
+ "internalType": "uint256",
862
+ "name": "recordedAt",
863
+ "type": "uint256"
864
+ },
865
+ {
866
+ "internalType": "bytes32",
867
+ "name": "batchId",
868
+ "type": "bytes32"
869
+ }
870
+ ],
871
+ "internalType": "struct TransactionVault.Transaction",
872
+ "name": "",
873
+ "type": "tuple"
874
+ }
875
+ ],
876
+ "stateMutability": "view",
877
+ "type": "function"
878
+ },
879
+ {
880
+ "inputs": [],
881
+ "name": "getTransactionCount",
882
+ "outputs": [
883
+ {
884
+ "internalType": "uint256",
885
+ "name": "",
886
+ "type": "uint256"
887
+ }
888
+ ],
889
+ "stateMutability": "view",
890
+ "type": "function"
891
+ },
892
+ {
893
+ "inputs": [
894
+ {
895
+ "internalType": "uint256",
896
+ "name": "startDate",
897
+ "type": "uint256"
898
+ },
899
+ {
900
+ "internalType": "uint256",
901
+ "name": "endDate",
902
+ "type": "uint256"
903
+ },
904
+ {
905
+ "internalType": "uint256",
906
+ "name": "offset",
907
+ "type": "uint256"
908
+ },
909
+ {
910
+ "internalType": "uint256",
911
+ "name": "limit",
912
+ "type": "uint256"
913
+ }
914
+ ],
915
+ "name": "getTransactionsByDateRange",
916
+ "outputs": [
917
+ {
918
+ "components": [
919
+ {
920
+ "internalType": "bytes32",
921
+ "name": "transactionId",
922
+ "type": "bytes32"
923
+ },
924
+ {
925
+ "internalType": "bytes32",
926
+ "name": "merchantId",
927
+ "type": "bytes32"
928
+ },
929
+ {
930
+ "internalType": "bytes32",
931
+ "name": "repId",
932
+ "type": "bytes32"
933
+ },
934
+ {
935
+ "internalType": "uint256",
936
+ "name": "transactionDate",
937
+ "type": "uint256"
938
+ },
939
+ {
940
+ "internalType": "uint256",
941
+ "name": "transactionAmount",
942
+ "type": "uint256"
943
+ },
944
+ {
945
+ "internalType": "uint256",
946
+ "name": "grossResidual",
947
+ "type": "uint256"
948
+ },
949
+ {
950
+ "internalType": "enum TransactionVault.TransactionType",
951
+ "name": "txType",
952
+ "type": "uint8"
953
+ },
954
+ {
955
+ "internalType": "bool",
956
+ "name": "isForecast",
957
+ "type": "bool"
958
+ },
959
+ {
960
+ "internalType": "uint256",
961
+ "name": "recordedAt",
962
+ "type": "uint256"
963
+ },
964
+ {
965
+ "internalType": "bytes32",
966
+ "name": "batchId",
967
+ "type": "bytes32"
968
+ }
969
+ ],
970
+ "internalType": "struct TransactionVault.Transaction[]",
971
+ "name": "",
972
+ "type": "tuple[]"
973
+ }
974
+ ],
975
+ "stateMutability": "view",
976
+ "type": "function"
977
+ },
978
+ {
979
+ "inputs": [
980
+ {
981
+ "internalType": "bytes32",
982
+ "name": "merchantId",
983
+ "type": "bytes32"
984
+ },
985
+ {
986
+ "internalType": "uint256",
987
+ "name": "offset",
988
+ "type": "uint256"
989
+ },
990
+ {
991
+ "internalType": "uint256",
992
+ "name": "limit",
993
+ "type": "uint256"
994
+ }
995
+ ],
996
+ "name": "getTransactionsByMerchant",
997
+ "outputs": [
998
+ {
999
+ "components": [
1000
+ {
1001
+ "internalType": "bytes32",
1002
+ "name": "transactionId",
1003
+ "type": "bytes32"
1004
+ },
1005
+ {
1006
+ "internalType": "bytes32",
1007
+ "name": "merchantId",
1008
+ "type": "bytes32"
1009
+ },
1010
+ {
1011
+ "internalType": "bytes32",
1012
+ "name": "repId",
1013
+ "type": "bytes32"
1014
+ },
1015
+ {
1016
+ "internalType": "uint256",
1017
+ "name": "transactionDate",
1018
+ "type": "uint256"
1019
+ },
1020
+ {
1021
+ "internalType": "uint256",
1022
+ "name": "transactionAmount",
1023
+ "type": "uint256"
1024
+ },
1025
+ {
1026
+ "internalType": "uint256",
1027
+ "name": "grossResidual",
1028
+ "type": "uint256"
1029
+ },
1030
+ {
1031
+ "internalType": "enum TransactionVault.TransactionType",
1032
+ "name": "txType",
1033
+ "type": "uint8"
1034
+ },
1035
+ {
1036
+ "internalType": "bool",
1037
+ "name": "isForecast",
1038
+ "type": "bool"
1039
+ },
1040
+ {
1041
+ "internalType": "uint256",
1042
+ "name": "recordedAt",
1043
+ "type": "uint256"
1044
+ },
1045
+ {
1046
+ "internalType": "bytes32",
1047
+ "name": "batchId",
1048
+ "type": "bytes32"
1049
+ }
1050
+ ],
1051
+ "internalType": "struct TransactionVault.Transaction[]",
1052
+ "name": "",
1053
+ "type": "tuple[]"
1054
+ }
1055
+ ],
1056
+ "stateMutability": "view",
1057
+ "type": "function"
1058
+ },
1059
+ {
1060
+ "inputs": [
1061
+ {
1062
+ "internalType": "bytes32",
1063
+ "name": "repId",
1064
+ "type": "bytes32"
1065
+ },
1066
+ {
1067
+ "internalType": "uint256",
1068
+ "name": "offset",
1069
+ "type": "uint256"
1070
+ },
1071
+ {
1072
+ "internalType": "uint256",
1073
+ "name": "limit",
1074
+ "type": "uint256"
1075
+ }
1076
+ ],
1077
+ "name": "getTransactionsByRep",
1078
+ "outputs": [
1079
+ {
1080
+ "components": [
1081
+ {
1082
+ "internalType": "bytes32",
1083
+ "name": "transactionId",
1084
+ "type": "bytes32"
1085
+ },
1086
+ {
1087
+ "internalType": "bytes32",
1088
+ "name": "merchantId",
1089
+ "type": "bytes32"
1090
+ },
1091
+ {
1092
+ "internalType": "bytes32",
1093
+ "name": "repId",
1094
+ "type": "bytes32"
1095
+ },
1096
+ {
1097
+ "internalType": "uint256",
1098
+ "name": "transactionDate",
1099
+ "type": "uint256"
1100
+ },
1101
+ {
1102
+ "internalType": "uint256",
1103
+ "name": "transactionAmount",
1104
+ "type": "uint256"
1105
+ },
1106
+ {
1107
+ "internalType": "uint256",
1108
+ "name": "grossResidual",
1109
+ "type": "uint256"
1110
+ },
1111
+ {
1112
+ "internalType": "enum TransactionVault.TransactionType",
1113
+ "name": "txType",
1114
+ "type": "uint8"
1115
+ },
1116
+ {
1117
+ "internalType": "bool",
1118
+ "name": "isForecast",
1119
+ "type": "bool"
1120
+ },
1121
+ {
1122
+ "internalType": "uint256",
1123
+ "name": "recordedAt",
1124
+ "type": "uint256"
1125
+ },
1126
+ {
1127
+ "internalType": "bytes32",
1128
+ "name": "batchId",
1129
+ "type": "bytes32"
1130
+ }
1131
+ ],
1132
+ "internalType": "struct TransactionVault.Transaction[]",
1133
+ "name": "",
1134
+ "type": "tuple[]"
1135
+ }
1136
+ ],
1137
+ "stateMutability": "view",
1138
+ "type": "function"
1139
+ },
1140
+ {
1141
+ "inputs": [
1142
+ {
1143
+ "internalType": "bytes32",
1144
+ "name": "role",
1145
+ "type": "bytes32"
1146
+ },
1147
+ {
1148
+ "internalType": "address",
1149
+ "name": "account",
1150
+ "type": "address"
1151
+ }
1152
+ ],
1153
+ "name": "grantRole",
1154
+ "outputs": [],
1155
+ "stateMutability": "nonpayable",
1156
+ "type": "function"
1157
+ },
1158
+ {
1159
+ "inputs": [
1160
+ {
1161
+ "internalType": "bytes32",
1162
+ "name": "role",
1163
+ "type": "bytes32"
1164
+ },
1165
+ {
1166
+ "internalType": "address",
1167
+ "name": "account",
1168
+ "type": "address"
1169
+ }
1170
+ ],
1171
+ "name": "hasRole",
1172
+ "outputs": [
1173
+ {
1174
+ "internalType": "bool",
1175
+ "name": "",
1176
+ "type": "bool"
1177
+ }
1178
+ ],
1179
+ "stateMutability": "view",
1180
+ "type": "function"
1181
+ },
1182
+ {
1183
+ "inputs": [
1184
+ {
1185
+ "internalType": "address",
1186
+ "name": "_admin",
1187
+ "type": "address"
1188
+ },
1189
+ {
1190
+ "internalType": "address",
1191
+ "name": "_merchantRegistry",
1192
+ "type": "address"
1193
+ },
1194
+ {
1195
+ "internalType": "address",
1196
+ "name": "_residualCalculator",
1197
+ "type": "address"
1198
+ }
1199
+ ],
1200
+ "name": "initialize",
1201
+ "outputs": [],
1202
+ "stateMutability": "nonpayable",
1203
+ "type": "function"
1204
+ },
1205
+ {
1206
+ "inputs": [],
1207
+ "name": "merchantRegistry",
1208
+ "outputs": [
1209
+ {
1210
+ "internalType": "address",
1211
+ "name": "",
1212
+ "type": "address"
1213
+ }
1214
+ ],
1215
+ "stateMutability": "view",
1216
+ "type": "function"
1217
+ },
1218
+ {
1219
+ "inputs": [],
1220
+ "name": "pause",
1221
+ "outputs": [],
1222
+ "stateMutability": "nonpayable",
1223
+ "type": "function"
1224
+ },
1225
+ {
1226
+ "inputs": [],
1227
+ "name": "paused",
1228
+ "outputs": [
1229
+ {
1230
+ "internalType": "bool",
1231
+ "name": "",
1232
+ "type": "bool"
1233
+ }
1234
+ ],
1235
+ "stateMutability": "view",
1236
+ "type": "function"
1237
+ },
1238
+ {
1239
+ "inputs": [],
1240
+ "name": "proxiableUUID",
1241
+ "outputs": [
1242
+ {
1243
+ "internalType": "bytes32",
1244
+ "name": "",
1245
+ "type": "bytes32"
1246
+ }
1247
+ ],
1248
+ "stateMutability": "view",
1249
+ "type": "function"
1250
+ },
1251
+ {
1252
+ "inputs": [
1253
+ {
1254
+ "components": [
1255
+ {
1256
+ "internalType": "bytes32",
1257
+ "name": "transactionId",
1258
+ "type": "bytes32"
1259
+ },
1260
+ {
1261
+ "internalType": "bytes32",
1262
+ "name": "merchantId",
1263
+ "type": "bytes32"
1264
+ },
1265
+ {
1266
+ "internalType": "bytes32",
1267
+ "name": "repId",
1268
+ "type": "bytes32"
1269
+ },
1270
+ {
1271
+ "internalType": "uint256",
1272
+ "name": "transactionDate",
1273
+ "type": "uint256"
1274
+ },
1275
+ {
1276
+ "internalType": "uint256",
1277
+ "name": "transactionAmount",
1278
+ "type": "uint256"
1279
+ },
1280
+ {
1281
+ "internalType": "uint256",
1282
+ "name": "grossResidual",
1283
+ "type": "uint256"
1284
+ },
1285
+ {
1286
+ "internalType": "enum TransactionVault.TransactionType",
1287
+ "name": "txType",
1288
+ "type": "uint8"
1289
+ },
1290
+ {
1291
+ "internalType": "bool",
1292
+ "name": "isForecast",
1293
+ "type": "bool"
1294
+ },
1295
+ {
1296
+ "internalType": "uint256",
1297
+ "name": "recordedAt",
1298
+ "type": "uint256"
1299
+ },
1300
+ {
1301
+ "internalType": "bytes32",
1302
+ "name": "batchId",
1303
+ "type": "bytes32"
1304
+ }
1305
+ ],
1306
+ "internalType": "struct TransactionVault.Transaction[]",
1307
+ "name": "_transactions",
1308
+ "type": "tuple[]"
1309
+ }
1310
+ ],
1311
+ "name": "recordBatchTransactions",
1312
+ "outputs": [
1313
+ {
1314
+ "internalType": "bytes32",
1315
+ "name": "batchId",
1316
+ "type": "bytes32"
1317
+ },
1318
+ {
1319
+ "internalType": "uint256",
1320
+ "name": "count",
1321
+ "type": "uint256"
1322
+ }
1323
+ ],
1324
+ "stateMutability": "nonpayable",
1325
+ "type": "function"
1326
+ },
1327
+ {
1328
+ "inputs": [
1329
+ {
1330
+ "internalType": "bytes32",
1331
+ "name": "merchantId",
1332
+ "type": "bytes32"
1333
+ },
1334
+ {
1335
+ "internalType": "bytes32",
1336
+ "name": "repId",
1337
+ "type": "bytes32"
1338
+ },
1339
+ {
1340
+ "internalType": "uint256",
1341
+ "name": "transactionDate",
1342
+ "type": "uint256"
1343
+ },
1344
+ {
1345
+ "internalType": "uint256",
1346
+ "name": "transactionAmount",
1347
+ "type": "uint256"
1348
+ },
1349
+ {
1350
+ "internalType": "uint256",
1351
+ "name": "grossResidual",
1352
+ "type": "uint256"
1353
+ },
1354
+ {
1355
+ "internalType": "enum TransactionVault.TransactionType",
1356
+ "name": "txType",
1357
+ "type": "uint8"
1358
+ },
1359
+ {
1360
+ "internalType": "bool",
1361
+ "name": "isForecast",
1362
+ "type": "bool"
1363
+ }
1364
+ ],
1365
+ "name": "recordTransaction",
1366
+ "outputs": [
1367
+ {
1368
+ "internalType": "bytes32",
1369
+ "name": "transactionId",
1370
+ "type": "bytes32"
1371
+ }
1372
+ ],
1373
+ "stateMutability": "nonpayable",
1374
+ "type": "function"
1375
+ },
1376
+ {
1377
+ "inputs": [
1378
+ {
1379
+ "internalType": "bytes32",
1380
+ "name": "role",
1381
+ "type": "bytes32"
1382
+ },
1383
+ {
1384
+ "internalType": "address",
1385
+ "name": "callerConfirmation",
1386
+ "type": "address"
1387
+ }
1388
+ ],
1389
+ "name": "renounceRole",
1390
+ "outputs": [],
1391
+ "stateMutability": "nonpayable",
1392
+ "type": "function"
1393
+ },
1394
+ {
1395
+ "inputs": [],
1396
+ "name": "repPerformance",
1397
+ "outputs": [
1398
+ {
1399
+ "internalType": "address",
1400
+ "name": "",
1401
+ "type": "address"
1402
+ }
1403
+ ],
1404
+ "stateMutability": "view",
1405
+ "type": "function"
1406
+ },
1407
+ {
1408
+ "inputs": [],
1409
+ "name": "residualCalculator",
1410
+ "outputs": [
1411
+ {
1412
+ "internalType": "address",
1413
+ "name": "",
1414
+ "type": "address"
1415
+ }
1416
+ ],
1417
+ "stateMutability": "view",
1418
+ "type": "function"
1419
+ },
1420
+ {
1421
+ "inputs": [
1422
+ {
1423
+ "internalType": "bytes32",
1424
+ "name": "role",
1425
+ "type": "bytes32"
1426
+ },
1427
+ {
1428
+ "internalType": "address",
1429
+ "name": "account",
1430
+ "type": "address"
1431
+ }
1432
+ ],
1433
+ "name": "revokeRole",
1434
+ "outputs": [],
1435
+ "stateMutability": "nonpayable",
1436
+ "type": "function"
1437
+ },
1438
+ {
1439
+ "inputs": [
1440
+ {
1441
+ "internalType": "bytes32",
1442
+ "name": "_companyId",
1443
+ "type": "bytes32"
1444
+ },
1445
+ {
1446
+ "internalType": "string",
1447
+ "name": "_companyName",
1448
+ "type": "string"
1449
+ },
1450
+ {
1451
+ "internalType": "string",
1452
+ "name": "_templateVersion",
1453
+ "type": "string"
1454
+ }
1455
+ ],
1456
+ "name": "setCompanyConfig",
1457
+ "outputs": [],
1458
+ "stateMutability": "nonpayable",
1459
+ "type": "function"
1460
+ },
1461
+ {
1462
+ "inputs": [
1463
+ {
1464
+ "internalType": "address",
1465
+ "name": "_merchantRegistry",
1466
+ "type": "address"
1467
+ }
1468
+ ],
1469
+ "name": "setMerchantRegistry",
1470
+ "outputs": [],
1471
+ "stateMutability": "nonpayable",
1472
+ "type": "function"
1473
+ },
1474
+ {
1475
+ "inputs": [
1476
+ {
1477
+ "internalType": "address",
1478
+ "name": "_repPerformance",
1479
+ "type": "address"
1480
+ }
1481
+ ],
1482
+ "name": "setRepPerformance",
1483
+ "outputs": [],
1484
+ "stateMutability": "nonpayable",
1485
+ "type": "function"
1486
+ },
1487
+ {
1488
+ "inputs": [
1489
+ {
1490
+ "internalType": "address",
1491
+ "name": "_residualCalculator",
1492
+ "type": "address"
1493
+ }
1494
+ ],
1495
+ "name": "setResidualCalculator",
1496
+ "outputs": [],
1497
+ "stateMutability": "nonpayable",
1498
+ "type": "function"
1499
+ },
1500
+ {
1501
+ "inputs": [
1502
+ {
1503
+ "internalType": "bytes4",
1504
+ "name": "interfaceId",
1505
+ "type": "bytes4"
1506
+ }
1507
+ ],
1508
+ "name": "supportsInterface",
1509
+ "outputs": [
1510
+ {
1511
+ "internalType": "bool",
1512
+ "name": "",
1513
+ "type": "bool"
1514
+ }
1515
+ ],
1516
+ "stateMutability": "view",
1517
+ "type": "function"
1518
+ },
1519
+ {
1520
+ "inputs": [],
1521
+ "name": "totalResiduals",
1522
+ "outputs": [
1523
+ {
1524
+ "internalType": "uint256",
1525
+ "name": "",
1526
+ "type": "uint256"
1527
+ }
1528
+ ],
1529
+ "stateMutability": "view",
1530
+ "type": "function"
1531
+ },
1532
+ {
1533
+ "inputs": [],
1534
+ "name": "totalVolume",
1535
+ "outputs": [
1536
+ {
1537
+ "internalType": "uint256",
1538
+ "name": "",
1539
+ "type": "uint256"
1540
+ }
1541
+ ],
1542
+ "stateMutability": "view",
1543
+ "type": "function"
1544
+ },
1545
+ {
1546
+ "inputs": [],
1547
+ "name": "transactionCount",
1548
+ "outputs": [
1549
+ {
1550
+ "internalType": "uint256",
1551
+ "name": "",
1552
+ "type": "uint256"
1553
+ }
1554
+ ],
1555
+ "stateMutability": "view",
1556
+ "type": "function"
1557
+ },
1558
+ {
1559
+ "inputs": [],
1560
+ "name": "unpause",
1561
+ "outputs": [],
1562
+ "stateMutability": "nonpayable",
1563
+ "type": "function"
1564
+ },
1565
+ {
1566
+ "inputs": [
1567
+ {
1568
+ "internalType": "address",
1569
+ "name": "newImplementation",
1570
+ "type": "address"
1571
+ },
1572
+ {
1573
+ "internalType": "bytes",
1574
+ "name": "data",
1575
+ "type": "bytes"
1576
+ }
1577
+ ],
1578
+ "name": "upgradeToAndCall",
1579
+ "outputs": [],
1580
+ "stateMutability": "payable",
1581
+ "type": "function"
1582
+ }
1583
+ ],
1584
+ "bytecode": "0x60a0806040523461011e57604061002b91306080526744440ed35762a600602082015260208152610122565b6100496040805167ca26a553a0856395602082015260208152610122565b6100676040805167890f58ca7db1cdbd602082015260208152610122565b5f5160206160b65f395f51905f525460ff8160401c1661010f576002600160401b03196001600160401b038216016100b9575b604051615f5c908161015a823960805181818161262d01526126d10152f35b6001600160401b0319166001600160401b039081175f5160206160b65f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009a565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b601f909101601f19168101906001600160401b0382119082101761014557604052565b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a714614097575080630b9d98e9146140205780631965423e146130c15780632485429014612e63578063248a9ca314612e235780632e7700f014612dab5780632f2ff15d14612d6057806336568abe14612d1b57806338c61cd014612d005780633f4ba83a14612bea57806347adc4f514612aa45780634aae13ca146128d15780634f1ef2861461268157806352d1902d1461261a57806356c95121146125f157806356ff4f3d1461208b5780635c975abb1461205c5780635f81a57c1461203e5780636441b651146120205780636e7ed7ac14611ed85780636eca504214611eaf57806375071d2a14611e7457806375b238fc14611e395780637f2e5a071461198a5780638456cb59146118815780638d508f511461180957806391d14854146117b3578063a217fddf14611797578063a2696fab1461176e578063a96c00c1146116d8578063ad3cb1cc1461168f578063b77bf60014611671578063bc54e58f14611648578063bea865811461160d578063c0c53b8b146111f4578063d547741f146111a0578063e4b0b21b14610fc7578063f1856dd014610e83578063fd7aba8814610e585763ff6dd4a5146101d6575f80fd5b34610e55576020366003190112610e55576001600160401b0360043511610e5557366023600435011215610e55576001600160401b036004356004013511610e55573660246101406004356004013502600435010111610e555761024e604080516763a9d7daeb110a44602082015260208152614231565b61025661577e565b6102746040805167281dd782aef3e3cd602082015260208152614231565b61029260408051677d540bae592a32c2602082015260208152614231565b61029a6157b6565b6102b8604080516768bb5a333dda48e6602082015260208152614231565b6102d66040805167086b41b9323cc6b3602082015260208152614231565b6102de6157dd565b6102fc6040805167206d5ebaafde899e602082015260208152614231565b61031a604080516726055819abc93f8b602082015260208152614231565b6103386040805167cf82090451510abb602082015260208152614231565b6103566040805167deadddb32dc3bc82602082015260208152614231565b61037460408051674aaaa3e827d369df602082015260208152614231565b6103926040805167746ab680127dab44602082015260208152614231565b600160048035013510156103db576044906103c16040805167aa193163495bee66602082015260208152614231565b637baad00760e11b81526004803581013590526001602452fd5b6103f9604080516795b3e8decdb5cf00602082015260208152614231565b61041760408051678117dc2df3467b8a602082015260208152614231565b61043560408051677631d1e7063cde3b602082015260208152614231565b60646004803501351115610470576004906104646040805167f15e4f57684777c1602082015260208152614231565b63abcf3d2360e01b8152fd5b61048e6040805167c0ee0209c61a1df1602082015260208152614231565b6104ac604080516726b146da5b1edc1c602082015260208152614231565b6104ca604080516721f5f80683b3d2d1602082015260208152614231565b6001600954018060095560405160208101914283526040820152604081526104f3606082614231565b519020906105156040805167b8d5bb6c5e43e443602082015260208152614231565b6105336040805167372d35ba65491aa7602082015260208152614231565b806105526040805167e25aae24af4e64d1602082015260208152614231565b610570604080516749176e84a4a59c7b602082015260208152614231565b8161058f6040805167e09880fef464fbdc602082015260208152614231565b6105ad60408051670257f70bd4375ab5602082015260208152614231565b825b60043560040135811015610d20576105db6040805167c8c5e759b2d723db602082015260208152614231565b6105f96040805167b519e9152c958d7a602082015260208152614231565b6101408102600435016101406023198236030112610d1c576040519361061e85614201565b6024820135855260448201356020860152606482013560408601526084820135606086015260a4820135608086015260c482013560a086015260e48201356004811015610d185760c0860152610104820135918215158303610d18576101449060e0870193845261012481013561010088015201356101208601526106b760408051673ad952b949d0bc3f602082015260208152614231565b6106d5604080516706948e08eeda100e602082015260208152614231565b602085015161070b576004866106ff6040805167ff68cd8de3d35d75602082015260208152614231565b637ccfccc960e11b8152fd5b61072960408051678392692a2eeceab4602082015260208152614231565b6107476040805167cf897baebd27ac67602082015260208152614231565b6107656040805167b8078928bfa2fcb7602082015260208152614231565b604085015161079b5760048661078f6040805167388bbad87d76294c602082015260208152614231565b63456f7a6760e11b8152fd5b6107b96040805167478b6dd9f22fb1f5602082015260208152614231565b6107d760408051675440faddf52616db602082015260208152614231565b6107f56040805167409f9268784946ea602082015260208152614231565b608085015161082b5760048661081f604080516749fb7880d44519b1602082015260208152614231565b63cc36378360e01b8152fd5b61084960408051678fc112b7b02c360e602082015260208152614231565b61086760408051672a9595df4c5ed4a9602082015260208152614231565b6108856040805167361aa4f405cd580a602082015260208152614231565b8451610cf5576108a960408051676c136eeefe9f4fdf602082015260208152614231565b6108c7604080516714c56f62d8cfc529602082015260208152614231565b6020850151604086015160808701516008549060405192602084019442865260408501526060840152608083015260a08201528460c082015260c0815261090f60e082614231565b51902085525b61093360408051673607a26609571747602082015260208152614231565b866101208601526109586040805167c2ae34220a93d828602082015260208152614231565b4261010086015261097d6040805167ad08ea3526cfb185602082015260208152614231565b61099b6040805167ad0a66d650e51060602082015260208152614231565b6109a485614391565b6109c260408051679dab6ab00e2fc96a602082015260208152614231565b6109e06040805167c32b7b713ed86472602082015260208152614231565b85545f198101908111610ce157610bb491610b61610b8a92610a166040805167a262f4c2f9f07891602082015260208152614231565b88518a5260016020528060408b2055610a436040805167ba87f8f949d0fbf5602082015260208152614231565b610a616040805167fa6d4ac8d38ae751602082015260208152614231565b60208901518a526002602052610a7a8160408c20614457565b610a986040805167955d3b92d7fea529602082015260208152614231565b610ab660408051673f61b62255f522b6602082015260208152614231565b60408901518a526003602052610acf8160408c20614457565b610aed6040805167e2e4b4380bf65add602082015260208152614231565b610b0b60408051678477f5427d201135602082015260208152614231565b6201518060608a015104610b3360408051678f0d6797e902d932602082015260208152614231565b610b51604080516769c7ff32ec1f8b78602082015260208152614231565b8a52600460205260408a20614457565b610b7f60408051675451326f020bcc6d602082015260208152614231565b60808701519061447e565b93610ba9604080516751154c33ded0abb5602082015260208152614231565b60a08601519061447e565b93610bd36040805167e20861d677a38ace602082015260208152614231565b610bf16040805167e6fca33cf4e6b428602082015260208152614231565b8051602082015191604081015193606082015160808301519160c060a0850151940151906004821015610ccd5760019897969594927f3c69fa9a19358747a2f84bc15a2a5d62acb875ec6bea883b8e036aa4b15ce79e9492610c5f925115159060405195869542948761448b565b0390a4610c80604080516776699926f98c227c602082015260208152614231565b610c9e6040805167ce2ded2183af47b4602082015260208152614231565b8160085401600855610cc4604080516783d0db03ae5a41aa602082015260208152614231565b019190916105af565b634e487b7160e01b8c52602160045260248cfd5b634e487b7160e01b87526011600452602487fd5b610d1360408051678c68701e91c3c02c602082015260208152614231565b610915565b8680fd5b8480fd5b604085807f784aa23ef1c9d6e40c852a4f872070521683b1bd8e7e05c35180021412594a718587610d6486805167d46ebc3e4f816796602082015260208152614231565b610d708160065461447e565b600655610d90868051676a2e70364cff1254602082015260208152614231565b610d9c8260075461447e565b600755610dbc868051671eeb7640debb5782602082015260208152614231565b610dd9868051672c098f1c6da38ecb602082015260208152614231565b8551600480350135815260208101919091526040810191909152606090a2610e14828051672c6e87ec6138a976602082015260208152614231565b610e3182805167b7c778e61f8d07d0602082015260208152614231565b60015f516020615ee75f395f51905f52558151908152600435600401356020820152f35b80fd5b5034610e5557610e7f610e73610e6d366141e7565b91615315565b60405191829182614177565b0390f35b5034610e55576020366003190112610e55577f5ced9e4e69bf8eca510483cc73378f7f3fe87758ef0d19ef3fdaf3adcbd527fe6080610ec06141d1565b610ede604080516722fddf01e4642984602082015260208152614231565b610ee661584c565b610f04604080516709df4f088eed4989602082015260208152614231565b610f226040805167b534afac237952c6602082015260208152614231565b610f406040805167dbbf12c0bc257233602082015260208152614231565b60018060a01b0316806001600160601b0360a01b600b541617600b55610f7a6040805167a01a408a4460e428602082015260208152614231565b610f986040805167e2b1f5ff4971cdd0602082015260208152614231565b6040519060408252600e60408301526d526570506572666f726d616e636560901b60608301526020820152a180f35b5034610e555780600319360112610e5557600d54600e5491600f5460405190828260105491610ff5836142f4565b80835292600181169081156111815750600114611123575b61101992500383614231565b60405192806011549061102b826142f4565b80875291600181169081156110fb57506001146110a1575b50509160ff6110939261105c86610e7f97960386614231565b6040519788978852602088015260018060a01b038116604088015260a01c161515606086015260c0608086015260c08501906142d0565b9083820360a08501526142d0565b6011815291507f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c685b8183106110e1575050830160200160ff611093611043565b6001816020929493945483858a01015201910191906110c9565b60ff191660208089019190915292151560051b8701909201925060ff91506110939050611043565b50601085529084907f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6725b8183106111655750509060206110199282010161100d565b602091935080600191548385890101520191019091849261114d565b6020925061101994915060ff191682840152151560051b82010161100d565b5034610e55576040366003190112610e55576111f06004356111c06141bb565b906111eb6111e6825f525f516020615ea75f395f51905f52602052600160405f20015490565b61590a565b615d21565b5080f35b5034610e55576060366003190112610e555761120e6141d1565b6112166141bb565b6044356001600160a01b03811691908290036116095761124a6040805167f18fcabb631bd40b602082015260208152614231565b5f516020615f075f395f51905f52549260ff8460401c1615936001600160401b03811680159081611601575b60011490816115f7575b1590816115ee575b506115df5767ffffffffffffffff1981166001175f516020615f075f395f51905f52556114e99190856115b3575b506112d56040805167b4e98152e2095106602082015260208152614231565b6112f3604080516799d342b91732f5ee602082015260208152614231565b611311604080516779b701f9b92b5436602082015260208152614231565b61132f60408051677fbb486246e3da15602082015260208152614231565b611337615dbd565b6113556040805167f492cd38b9650d3d602082015260208152614231565b6113736040805167f16c93e12035be50602082015260208152614231565b61137b615dbd565b611383615dbd565b60015f516020615ee75f395f51905f52556113b2604080516746a548c3d05c331c602082015260208152614231565b6113d06040805167e1a2e6386a41916e602082015260208152614231565b6113d8615dbd565b6113f660408051673761290bda473517602082015260208152614231565b611414604080516720a6c98291438f06602082015260208152614231565b61141c615dbd565b61143a604080516772e811f7f78b1ac1602082015260208152614231565b6114586040805167402d54e1479aaba5602082015260208152614231565b61146181615a82565b506114806040805167a08557360cb2bcdd602082015260208152614231565b61149e6040805167b81e6bf76aa7d16d602082015260208152614231565b6114a781615b1e565b506114c660408051675e0de763eaffdd0d602082015260208152614231565b6114e46040805167da25a2af788b6ed3602082015260208152614231565b615bd7565b506115086040805167887b4f9c357b55ed602082015260208152614231565b60018060a01b03166001600160601b0360a01b600a541617600a5561154160408051678e79d22b532bcda7602082015260208152614231565b6001600160601b0360a01b600c541617600c5561155b5780f35b68ff0000000000000000195f516020615f075f395f51905f5254165f516020615f075f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b68ffffffffffffffffff191668010000000000000001175f516020615f075f395f51905f52555f6112b6565b63f92ee8a960e01b8652600486fd5b9050155f611288565b303b159150611280565b869150611276565b8380fd5b5034610e555780600319360112610e555760206040517ff996da754c790e95d5c7ca3330cfcad529487fe9d1d8edb7afc65076fdf9adb48152f35b5034610e555780600319360112610e5557600c546040516001600160a01b039091168152602090f35b5034610e555780600319360112610e55576020600854604051908152f35b5034610e555780600319360112610e555750610e7f6040516116b2604082614231565b60058152640352e302e360dc1b60208201526040519182916020835260208301906142d0565b5034610e555780600319360112610e555760a09061170a6040805167aa705fd1f09c782f602082015260208152614231565b61172860408051676aa5092cf5a0ce4e602082015260208152614231565b6117466040805167d3bf8d193c10160b602082015260208152614231565b6008549060065460075490604051938452602084015260408301528060608301526080820152f35b5034610e55576080366003190112610e5557610e7f610e73606435604435602435600435614af3565b5034610e555780600319360112610e5557602090604051908152f35b5034610e55576040366003190112610e555760406117cf6141bb565b9160043581525f516020615ea75f395f51905f52602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b5034610e555780600319360112610e55576118386040805167661a78dc6223043b602082015260208152614231565b611856604080516720e57b0e6f35a944602082015260208152614231565b6118746040805167bc2811cd893d1e10602082015260208152614231565b6020600754604051908152f35b5034610e555780600319360112610e55576118b060408051674023693b49fa17c7602082015260208152614231565b6118b861584c565b6118d66040805167fbc85bfe6458c5e7602082015260208152614231565b6118f460408051675b53dc870a8377d8602082015260208152614231565b6119126040805167b40939fd188174bb602082015260208152614231565b61193060408051675a714a8128a8dc84602082015260208152614231565b6119386157b6565b600160ff195f516020615ec75f395f51905f525416175f516020615ec75f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610e55576040366003190112610e55576004356024358290839284916119c6604080516776b68345f6c3dad5602082015260208152614231565b6119e46040805167494cb1ee44e3f1d3602082015260208152614231565b611a01604080516693e860cf882296602082015260208152614231565b611a1f604080516739beb4cc30688e2b602082015260208152614231565b808211611dff57908591611a47604080516702f763e0bc1aa97e602082015260208152614231565b611a65604080516783ce311b501a8831602082015260208152614231565b611a83604080516758cdda495a234678602082015260208152614231565b611aa16040805167d61832104ca28d3f602082015260208152614231565b611abf604080516725ac9d24e6b75bcd602082015260208152614231565b62015180810490611ae46040805167b6a1495720df5af3602082015260208152614231565b611b0260408051673d14a0cb3b4310c0602082015260208152614231565b620151808304925b82841115611b71578787610e7f88611b3660408051672e42b129a4b3ba89602082015260208152614231565b611b5460408051670730fdf5c22ef148602082015260208152614231565b604051938493846040919493926060820195825260208201520152565b90919396929594611b966040805167404c3e28c4b81715602082015260208152614231565b611bb46040805167174b0e30c7f64330602082015260208152614231565b8688526004602052604088209760405180998a91602082549182815201918452602084209084905b808210611de65750505090611bf291038a614231565b611c106040805167615c9a3923275937602082015260208152614231565b611c2e6040805167884540b6f7485afe602082015260208152614231565b80915b8951831015611dc957611c586040805167584f9cd36f821038602082015260208152614231565b611c76604080516744386476baeb8c01602082015260208152614231565b611c92611c8c611c86858d6145a7565b51614345565b506145bb565b97611cb160408051675e7f03a16e677dbc602082015260208152614231565b611ccf60408051675b1e3abbcd6d5cdb602082015260208152614231565b606089015186868210159182611dbe575b505015611d945760019160a0611d61611d37611d8894611d1460408051670343d6d29abc703b602082015260208152614231565b611d3260408051676209cf7f4b7db431602082015260208152614231565b614ae5565b99611d566040805167b33e43ddbc609393602082015260208152614231565b60808d01519061447e565b9a611d806040805167f86c334d9bccb7a5602082015260208152614231565b01519061447e565b925b0191969496611c31565b95975091600190611db96040805167391d02a91d83ef83602082015260208152614231565b611d8a565b11159050868d611ce0565b959497909850611dd99150614ae5565b9291909693949596611b0a565b8254845260209093019260019283019290910190611bdc565b60405162461bcd60e51b8152602060048201526012602482015271496e76616c696420646174652072616e676560701b6044820152606490fd5b5034610e555780600319360112610e555760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b5034610e555780600319360112610e555760206040517f5719df9ef2c4678b547f89e4f5ae410dbf400fc51cf3ded434c55f6adea2c43f8152f35b5034610e555780600319360112610e5557600a546040516001600160a01b039091168152602090f35b5034610e55576020366003190112610e55577f5ced9e4e69bf8eca510483cc73378f7f3fe87758ef0d19ef3fdaf3adcbd527fe6080611f156141d1565b611f336040805167aaff269d07226b34602082015260208152614231565b611f3b61584c565b611f596040805167023b36a36db51820602082015260208152614231565b611f776040805167ec146847a623c7b0602082015260208152614231565b611f956040805167976517c7146b1620602082015260208152614231565b60018060a01b0316806001600160601b0360a01b600c541617600c55611fcf6040805167b5df78ff1f333eb1602082015260208152614231565b611fed6040805167c801e3189e7f2c04602082015260208152614231565b604051906040825260126040830152712932b9b4b23ab0b621b0b631bab630ba37b960711b60608301526020820152a180f35b5034610e555780600319360112610e55576020600754604051908152f35b5034610e555780600319360112610e55576020600654604051908152f35b5034610e555780600319360112610e5557602060ff5f516020615ec75f395f51905f5254166040519015158152f35b5034610e55576060366003190112610e5557600435906024356001600160401b0381116125ed576120c09036906004016142a3565b92906044356001600160401b038111611609576120e19036906004016142a3565b949061210160408051670da9387630b3e5a6602082015260208152614231565b6121096158bb565b61212760408051678b29ca4754e0535c602082015260208152614231565b61214560408051673ad92ba64ae62138602082015260208152614231565b612163604080516727eb3202014b0781602082015260208152614231565b61218160408051678dd86d7daaf0732e602082015260208152614231565b61219f60408051672b46d4b111899d0c602082015260208152614231565b600e546125b3576121c460408051671c6e48502cf0b3d8602082015260208152614231565b6121e26040805167367f52c6aee8f9d2602082015260208152614231565b60405160c081018181106001600160401b038211176124ae57604052848152602081014281526040820133815260608301906001825261222336878961426d565b9260808501938452612236368c8861426d565b60a08087019182529551600d559051600e559051600f805493516001600160a81b03199094166001600160a01b03929092169190911792151590941b60ff60a01b1691909117909255518051906001600160401b03821161259f57819061229e6010546142f4565b601f8111612531575b50602090601f83116001146124cd5789926124c2575b50508160011b915f199060031b1c1916176010555b519586516001600160401b0381116124ae576122ef6011546142f4565b601f811161244b575b506020601f82116001146123c05790806123af949392899a7f5a4b9f27a26618330986254014b0a0081a144ab6878da8d57d4d1e176ce915bf999a926123b5575b50508160011b915f199060031b1c1916176011555b61236c604080516771f257b8ffd6f108602082015260208152614231565b61238a60408051675e907bbb8c216bd0602082015260208152614231565b6123a1604051958695604087526040870191614ac5565b918483036020860152614ac5565b0390a280f35b015190505f80612339565b6011885280882098601f198316895b81811061243357509960019284926123af9796957f5a4b9f27a26618330986254014b0a0081a144ab6878da8d57d4d1e176ce915bf9b9c9d1061241b575b505050811b0160115561234e565b01515f1960f88460031b161c191690555f808061240d565b838301518c556001909b019a602093840193016123cf565b601188527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68601f830160051c810191602084106124a4575b601f0160051c01905b81811061249957506122f8565b88815560010161248c565b9091508190612483565b634e487b7160e01b87526041600452602487fd5b015190505f806122bd565b60108a52818a209250601f1984168a5b8181106125195750908460019594939210612501575b505050811b016010556122d2565b01515f1960f88460031b161c191690555f80806124f3565b929360206001819287860151815501950193016124dd565b60108a529091507f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672601f840160051c81019160208510612595575b90601f859493920160051c01905b81811061258757506122a7565b8a815584935060010161257a565b909150819061256c565b634e487b7160e01b88526041600452602488fd5b60405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e4818dbdb999a59dd5c995960721b6044820152606490fd5b5080fd5b5034610e555780600319360112610e5557600b546040516001600160a01b039091168152602090f35b5034610e555780600319360112610e55577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036126725760206040515f516020615e875f395f51905f528152f35b63703e46dd60e11b8152600490fd5b506040366003190112610e55576126966141d1565b906024356001600160401b0381116125ed57366023820112156125ed576126c790369060248160040135910161426d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163081149081156128af575b506128a05761271f60408051679dd062068a30fc8a602082015260208152614231565b6127276158bb565b61274560408051678e7f588fa1d6fcde602082015260208152614231565b61276360408051672b6a0169500792bf602082015260208152614231565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa8095859661286c575b506127a857634c9c8ce360e01b84526004839052602484fd5b9091845f516020615e875f395f51905f52810361285a5750813b15612848575f516020615e875f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2815183901561282e57808360206111f095519101845af4612828615a1a565b91615de8565b505050346128395780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612898575b8161288860209383614231565b81010312610d1c5751945f61278f565b3d915061287b565b63703e46dd60e11b8252600482fd5b5f516020615e875f395f51905f52546001600160a01b0316141590505f6126fc565b5034610e55576020366003190112610e5557600435906128ef6144d5565b5061290e6040805167b1d79062fc68fd71602082015260208152614231565b61292c6040805167655d7f1dcda7c8a4602082015260208152614231565b61294a6040805167b2d42bc9e813acce602082015260208152614231565b81815260016020526040812054916129766040805167a0dfb7eaca124fa6602082015260208152614231565b6129946040805167e3bdb88fd43b3fe7602082015260208152614231565b821580612a9a575b80612a6e575b156129f657602492506129c9604080516744fa963b3a999b15602082015260208152614231565b6129e76040805167ac8983c666816853602082015260208152614231565b63925fea7360e01b8252600452fd5b610140612a5f611c8c85612a1e6040805167c9a18f4e5cd82c51602082015260208152614231565b612a3c604080516783331ae538667fcf602082015260208152614231565b612a5a604080516757e00973afcd2e4c602082015260208152614231565b614345565b612a6c604051809261410b565bf35b50815415612a865781805280602083205414156129a2565b634e487b7160e01b82526032600452602482fd5b508154151561299c565b5034610e55576020366003190112610e55577f5ced9e4e69bf8eca510483cc73378f7f3fe87758ef0d19ef3fdaf3adcbd527fe6080612ae16141d1565b612aff60408051670a048e3d7e76b833602082015260208152614231565b612b0761584c565b612b25604080516742dcd35d7ed9bb1b602082015260208152614231565b612b43604080516764fb1c4865de0dcd602082015260208152614231565b612b6160408051672934dd8b11ec264f602082015260208152614231565b60018060a01b0316806001600160601b0360a01b600a541617600a55612b9b6040805167170247361aa4cc23602082015260208152614231565b612bb96040805167531d9a6f64851daa602082015260208152614231565b6040519060408252601060408301526f4d65726368616e74526567697374727960801b60608301526020820152a180f35b5034610e555780600319360112610e5557612c196040805167fe525f9c853a1c0f602082015260208152614231565b612c2161584c565b612c3f6040805167d3fa39de97c2e791602082015260208152614231565b612c5d60408051670213c55e44295526602082015260208152614231565b612c7b6040805167e333865238553559602082015260208152614231565b612c996040805167ea50daaf2b166969602082015260208152614231565b5f516020615ec75f395f51905f525460ff811615612cf15760ff19165f516020615ec75f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b5034610e5557610e7f610e73612d15366141e7565b91614637565b5034610e55576040366003190112610e5557612d356141bb565b336001600160a01b03821603612d51576111f090600435615d21565b63334bd91960e11b8252600482fd5b5034610e55576040366003190112610e55576111f0600435612d806141bb565b90612da66111e6825f525f516020615ea75f395f51905f52602052600160405f20015490565b615c90565b5034610e555780600319360112610e5557612dda60408051679c1ce39400292ccf602082015260208152614231565b612df86040805167264106f5465940f1602082015260208152614231565b612e1660408051676abc7cfda1da642a602082015260208152614231565b6020600854604051908152f35b5034610e55576020366003190112610e55576020612e5b6004355f525f516020615ea75f395f51905f52602052600160405f20015490565b604051908152f35b5034610e55576020366003190112610e55576004356001600160401b0381116125ed57366023820112156125ed5780600401356001600160401b0381116130bd573660248260051b840101116130bd5790612ed260408051674ae7c8504a6a5c78602082015260208152614231565b612ef06040805167405734ec848770a7602082015260208152614231565b612f0e6040805167c14123f37d56598e602082015260208152614231565b612f1782614558565b92612f3660408051678dbe55fd2025b062602082015260208152614231565b612f54604080516736e5cf75d154b79d602082015260208152614231565b805491815b8481101561307d57600190612f826040805167e482ccf6fdbb8e96602082015260208152614231565b612fa06040805167ec7ced04f52803d5602082015260208152614231565b60248160051b840101358452816020526040842054612fd360408051674ea5f644400f5bbd602082015260208152614231565b612ff16040805167dd911d3f1dfbf4dc602082015260208152614231565b8581101561305957611c8c61303c9161301e6040805167cb0aa4f91fd3f68c602082015260208152614231565b612a5a6040805167db6ef13e6a426097602082015260208152614231565b61304682896145a7565b5261305181886145a7565b505b01612f59565b506130786040805167a3ce6aeda2fc0d6d602082015260208152614231565b613053565b610e7f8661309f6040805167817146c24367c34a602082015260208152614231565b610e7360408051679e1efab324986e0f602082015260208152614231565b8280fd5b5034613f805760e0366003190112613f80576044359060a4356024356084356064356004803590851015613f805760c43580151595868203613f805761311b60408051671b145eec6a6fb389602082015260208152614231565b61312361577e565b613141604080516757edf3c037c1bc52602082015260208152614231565b61315f6040805167416f79befff6ce0d602082015260208152614231565b6131676157b6565b6131856040805167180d21d5ac4da029602082015260208152614231565b6131a36040805167d126fa6467955e64602082015260208152614231565b6131c16040805167e64e22a7ad43c307602082015260208152614231565b6131df6040805167335a7c89f3700c48602082015260208152614231565b6131fd60408051670318c6b3fda82aa9602082015260208152614231565b335f52601260205261321360405f20544261432c565b98613232604080516793bc9f3dd4e8e48d602082015260208152614231565b613250604080516733607084c6b8264e602082015260208152614231565b60018a10156132b1578961327860408051670dfd6047d0b87d00602082015260208152614231565b6132966040805167b9d7d59ab8519880602082015260208152614231565b6310a7b17960e31b5f5233600452602452600160445260645ffd5b6132cf6040805167a42fde9718eddafa602082015260208152614231565b6132ed6040805167a28431c7739b64db602082015260208152614231565b335f5260126020524260405f205561331960408051672050c98d682a339f602082015260208152614231565b613337604080516719d205ebebc0d69e602082015260208152614231565b6133556040805167e72c4e937f153047602082015260208152614231565b61335d6157dd565b61337b604080516769d5b3cb3d2ac980602082015260208152614231565b613399604080516790fcf6b84bed7562602082015260208152614231565b6133b76040805167daa27b989a4b7f8b602082015260208152614231565b6133d560408051672cf09789412d9304602082015260208152614231565b6133f36040805167449dac14e540ac96602082015260208152614231565b836134255761341660408051677921be116c318442602082015260208152614231565b637ccfccc960e11b5f5260045ffd5b6134436040805167d5c7c0a04e9a4aa5602082015260208152614231565b61346160408051673b788e133ffe8e18602082015260208152614231565b61347f6040805167dfb6c993b7e3276e602082015260208152614231565b866134b1576134a260408051671e3669e4cc3a90db602082015260208152614231565b63456f7a6760e11b5f5260045ffd5b6134cf60408051673ea53fbbe0d23be5602082015260208152614231565b6134ed604080516787d5f86f84192158602082015260208152614231565b61350b6040805167c8064c8d69e431d7602082015260208152614231565b841580613ff7575b8015613fb8575b1561356a5761353d6040805167a184f39f8d68ccb2602082015260208152614231565b61355b6040805167cf617bd969ba5083602082015260208152614231565b63cc36378360e01b5f5260045ffd5b61358860408051674d1448b292016846602082015260208152614231565b6135a6604080516742eeb6d079721d2e602082015260208152614231565b6135c4604080516770c92e7bdfab6938602082015260208152614231565b42811115613617576135ea6040805167c5c026f80b1d546c602082015260208152614231565b613608604080516768dc26726651a62d602082015260208152614231565b63649741a360e11b5f5260045ffd5b6136356040805167032208f90b000b2f602082015260208152614231565b6136536040805167af181920de8b3351602082015260208152614231565b61367160408051674e1f103c86f08360602082015260208152614231565b61368f6040805167ccec087a070efb49602082015260208152614231565b6136ad6040805167819b52c48933c67d602082015260208152614231565b6137b360085460405160208101914283528760408301528a606083015288608083015260a082015260a081526136e460c082614231565b5190209861370660408051676b27968423706fcd602082015260208152614231565b61372460408051678ec2b060c9ed0276602082015260208152614231565b6040519061373182614201565b8a82528660208301528960408301528360608301528760808301528860a083015261375f8560c08401614339565b60e0820152426101008201525f610120820152613790604080516701c1221913587c1a602082015260208152614231565b6137ae6040805167ac1270704fdfd586602082015260208152614231565b614391565b6137d16040805167e6c961a2be58f316602082015260208152614231565b6137ef6040805167a0b021b1aa6ae91a602082015260208152614231565b5f545f19810191908211613fa45787938593613a727f3c69fa9a19358747a2f84bc15a2a5d62acb875ec6bea883b8e036aa4b15ce79e936139878d966138496040805167759bb5dbd7577f51602082015260208152614231565b875f5260016020528060405f20556138756040805167b0c51b5f4df592ff602082015260208152614231565b6138936040805167fa8482b8a3a73a3d602082015260208152614231565b885f5260026020526138a88160405f20614457565b6138c66040805167bb5337b0e649f9fa602082015260208152614231565b6138e460408051670e05cebcdd9403af602082015260208152614231565b895f5260036020526138f98160405f20614457565b61391760408051673abc4f5f7209aaf5602082015260208152614231565b6139356040805167815f5c8fc572cb20602082015260208152614231565b61395360408051673ef0f24f0c95ffac602082015260208152614231565b61397160408051677d423a8b05054cf4602082015260208152614231565b6201518083045f52600460205260405f20614457565b6139a560408051677163d20a9ab50bb0602082015260208152614231565b6139b18a60065461447e565b6006556139d2604080516711d049897e4f7df3602082015260208152614231565b6139de8b60075461447e565b6007556139ff60408051676dcf7d7af1a0e5e0602082015260208152614231565b613a1d60408051677d6fbe92b778c1dd602082015260208152614231565b600160085401600855613a446040805167428f3888446c5553602082015260208152614231565b613a626040805167b6d10d1e121fcdd7602082015260208152614231565b6040519384938c8c42948761448b565b0390a4613a936040805167d4f68968da12a622602082015260208152614231565b613ab160408051679c2caab0deea2d8f602082015260208152614231565b613acf6040805167ba20b306de51dab2602082015260208152614231565b613aed6040805167d1a071f2ead23186602082015260208152614231565b613b0b6040805167659a1d9bf9c4ab8e602082015260208152614231565b600a546001600160a01b03168015613f8457613b3b60408051672764e21ea69c29ee602082015260208152614231565b613b596040805167f93bebd2073dae4e602082015260208152614231565b613b776040805167077a98becb0338d3602082015260208152614231565b803b15613f8057604051632c188b7b60e21b8152600481019290925260248201839052604482018490525f908290606490829084905af19081613f6b575b50613f66576001613bc4615950565b6308c379a014613ee0575b613e6b575b613bf26040805167651e967137ac200c602082015260208152614231565b613c1060408051677905f997d724bcdc602082015260208152614231565b600b546001600160a01b0316908115613e425790859291613c456040805167c136fc4ed167017a602082015260208152614231565b613c636040805167fcee146e33f3eb99602082015260208152614231565b613c816040805167c7dafce7bbfd06b2602082015260208152614231565b813b156116095760405163758ee63960e11b81526004810195909552602485015260448401919091528290606490829084905af19081613e2d575b5060209290613e2757600190613cd0615950565b6308c379a014613da3575b50613d32575b613cfd6040805167262c8d6cc223012e85820152848152614231565b613d196040805167fac8ef3f09c41a3585820152848152614231565b60015f516020615ee75f395f51905f5255604051908152f35b613d3a615a1a565b613d5660408051678fb082f189acd16386820152858152614231565b613d726040805167369ccc1e546e510a86820152858152614231565b5f516020615e675f395f51905f52613d9b60018060a01b03600b54169260405191829182615a49565b0390a2613ce1565b613dab61596b565b9081613db8575b50613cdb565b90915090613dd860408051679944eaa24e3e47b387820152868152614231565b613df460408051679f55416dd5c0240987820152868152614231565b5f516020615e675f395f51905f52613e1d60018060a01b03600b54169260405191829182615a49565b0390a28380613db2565b50613ce1565b613e38848092614231565b6130bd5783613cbc565b5050505060209150613e666040805167f8c4d55a161bf21185820152848152614231565b613ce1565b613e73615a1a565b613e916040805167984e0422f472acc1602082015260208152614231565b613eaf60408051670ed9d630c8cbedb1602082015260208152614231565b5f516020615e675f395f51905f52613ed860018060a01b03600a541692604051918291826159dd565b0390a2613bd4565b613ee861596b565b80613ef4575b50613bcf565b90508590613f166040805167d831a4b7927eb16d602082015260208152614231565b613f3460408051678247f8bf5c6cdf8f602082015260208152614231565b5f516020615e675f395f51905f52613f5d60018060a01b03600a541692604051918291826159dd565b0390a286613eee565b613bd4565b613f789196505f90614231565b5f9486613bb5565b5f80fd5b5050613f666040805167a42fe91a5324269d602082015260208152614231565b634e487b7160e01b5f52601160045260245ffd5b506b033b2e3c9fd0803ce80000008511801561351a5750613ff060408051673cca07edf3b5029d60c11b602082015260208152614231565b600161351a565b5061401960408051671ad1c8cecd4a41e160c21b602082015260208152614231565b6001613513565b34613f80575f366003190112613f805761404e60408051675884309d347acc4f602082015260208152614231565b61406c60408051677f571889c8a9b30b602082015260208152614231565b61408a604080516714d974d7c87d9754602082015260208152614231565b6020600654604051908152f35b34613f80576020366003190112613f80576004359063ffffffff60e01b8216809203613f8057602091637965db0b60e01b81149081156140d9575b5015158152f35b6301ffc9a760e01b149050836140d2565b9060048210156140f75752565b634e487b7160e01b5f52602160045260245ffd5b6101208091805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015261415860c082015160c08601906140ea565b60e0810151151560e08501526101008101516101008501520151910152565b60206040818301928281528451809452019201905f5b81811061419a5750505090565b9091926020610140826141b0600194885161410b565b01940192910161418d565b602435906001600160a01b0382168203613f8057565b600435906001600160a01b0382168203613f8057565b6060906003190112613f8057600435906024359060443590565b61014081019081106001600160401b0382111761421d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761421d57604052565b6001600160401b03811161421d57601f01601f191660200190565b92919261427982614252565b916142876040519384614231565b829481845281830111613f80578281602093845f960137010152565b9181601f84011215613f80578235916001600160401b038311613f805760208381860195010111613f8057565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90600182811c92168015614322575b602083101461430e57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691614303565b91908203918211613fa457565b60048210156140f75752565b5f5481101561437d575f8080526009919091027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630191565b634e487b7160e01b5f52603260045260245ffd5b5f54600160401b81101561421d57600181015f555f5481101561437d575f80526009027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630190805182556020810151600183015560408101516002830155606081015160038301556080810151600483015560a08101516005830155600682019060c08101519060048210156140f75760089261012092815460ff61ff0060e08601511515881b1692169061ffff19161717905561010081015160078501550151910155565b805490600160401b82101561421d576001820180825582101561437d575f5260205f200155565b91908201809211613fa457565b929360a0946144b3929897969360c086019986526020860152604085015260608401906140ea565b151560808201520152565b6001600160401b03811161421d5760051b60200190565b604051906144e282614201565b5f610120838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152565b6040519061452e602083614231565b5f80835282815b82811061454157505050565b60209061454c6144d5565b82828501015201614535565b90614562826144be565b61456f6040519182614231565b8281528092614580601f19916144be565b01905f5b82811061459057505050565b60209061459b6144d5565b82828501015201614584565b805182101561437d5760209160051b010190565b906040516145c881614201565b610120600882948054845260018101546020850152600281015460408501526003810154606085015260048101546080850152600581015460a085015260ff600682015461461b82821660c08801614339565b831c16151560e085015260078101546101008501520154910152565b9190916146586040805167ffe85580ffc3562e602082015260208152614231565b6146766040805167e767f11d2dbc282e602082015260208152614231565b61469460408051676c5a9dabfcac20e9602082015260208152614231565b6103e88211156146cb576146bc604080516797309a734508a388602082015260208152614231565b638e590a2b60e01b5f5260045ffd5b6146e9604080516760d42d2511b437ef602082015260208152614231565b614707604080516781d992825e38173d602082015260208152614231565b61472560408051676d371cdc339e23ff602082015260208152614231565b5f52600260205260405f2090604051808360208295549384815201905f5260205f20925f5b818110614aac57505061475f92500383614231565b61477d6040805167025f9f7487032860602082015260208152614231565b61479b604080516729a1fa76c7d1e42a602082015260208152614231565b8151906147bc6040805167600468928233155b602082015260208152614231565b6147da6040805167d07a2701b244ae33602082015260208152614231565b81841061484a57505050506148036040805167035694840034d279602082015260208152614231565b614821604080516740515b0e82e2a423602082015260208152614231565b61483f6040805167837992acf1b3a5ed602082015260208152614231565b61484761451f565b90565b61490b91849161486e604080516711efc7986baba268602082015260208152614231565b61488c6040805167655f56fe3993760f602082015260208152614231565b6148aa6040805167c4e5d2944426de5b602082015260208152614231565b816148b5828561447e565b118015614a84575b80614a5b575b15614a4b57505b6148e860408051671eca591d6141e7c0602082015260208152614231565b61490660408051677fba7093c473cca2602082015260208152614231565b61432c565b9061492a60408051675bbdfff2517fcfc9602082015260208152614231565b61494860408051672340eb40a463604a602082015260208152614231565b61495182614558565b92614970604080516757765729e623d274602082015260208152614231565b61498e60408051676521a04c8f4e9a7c602082015260208152614231565b5f5b8381106149d757505050506149b9604080516717082129eda82c9d602082015260208152614231565b614847604080516725e579f1e409a701602082015260208152614231565b6001906149f86040805167ace9046350394626602082015260208152614231565b614a11611c8c611c86614a0b848761447e565b876145a7565b614a1b82886145a7565b52614a2681876145a7565b50614a45604080516797d6cc05a163fc53602082015260208152614231565b01614990565b614a5691508261447e565b6148ca565b50614a7d604080516701bfe5822d6748b760c61b602082015260208152614231565b60016148c3565b50614aa6604080516703f451a2293e1f6f60c51b602082015260208152614231565b5f6148bd565b845483526001948501948794506020909301920161474a565b908060209392818452848401375f828201840152601f01601f1916010190565b5f198114613fa45760010190565b92909192614b1560408051676d7ac561ca34e699602082015260208152614231565b614b3360408051671b0a7dd55d6d8878602082015260208152614231565b614b51604080516766bf33e72cc69263602082015260208152614231565b6103e8821115614b79576146bc6040805167b09d2ddf680c6c95602082015260208152614231565b614b97604080516775844433478a8626602082015260208152614231565b614bb5604080516758aaae97fea3c2d4602082015260208152614231565b614bd3604080516752a9191658e89bb8602082015260208152614231565b80831015614c0857614bf96040805167c49bbae69cd859de602082015260208152614231565b637b1cb04d60e11b5f5260045ffd5b620151808091614c2c60408051675ede52b95afe1623602082015260208152614231565b614c4a6040805167d65c73516a47d49a602082015260208152614231565b614c6860408051671219a1d2cb4c9554602082015260208152614231565b0492614c88604080516703f8897ce2c0b63e602082015260208152614231565b614ca6604080516701ec6b578a806357602082015260208152614231565b0490614cc66040805167d73fc236694b964b602082015260208152614231565b614ce460408051675266b52a273a5731602082015260208152614231565b5f90614d046040805167babc31a6df63f32d602082015260208152614231565b614d2260408051678bc648d99a647819602082015260208152614231565b835b838111156152b85750614d4b6040805167b0a325e55ea92639602082015260208152614231565b614d6960408051671fc32011f5e68e71602082015260208152614231565b818510614dcf575050505050614d9360408051670265583d80bf340c602082015260208152614231565b614db16040805167e7f8ef6c07c54bee602082015260208152614231565b61483f6040805167ff1d7de4f3bfa6ea602082015260208152614231565b614e8b918591614df360408051674069dcb8d72a94b0602082015260208152614231565b614e11604080516701e66cd0bd3d3934602082015260208152614231565b614e2f6040805167a7da69e771b7fb5c602082015260208152614231565b81614e3a828561447e565b118015615290575b80615267575b1561525757505b614e6d604080516734bbb5b82161266c602082015260208152614231565b6149066040805167073f409e6d4d8660602082015260208152614231565b91614eaa6040805167604045636832f9cf602082015260208152614231565b614ec860408051676177ec24e3d199d3602082015260208152614231565b614ed183614558565b90614ef0604080516754c929be05460c30602082015260208152614231565b614f0e6040805167250f6f5b2af9a915602082015260208152614231565b5f90614f2e6040805167cfd2a6cdb52d528d602082015260208152614231565b614f4c6040805167044f36a9add27647602082015260208152614231565b5f90614f6c6040805167a280a76fa9a68888602082015260208152614231565b614f8a6040805167aa5540579d589df4602082015260208152614231565b848111158061524e575b1561520b57614fba604080949394516788c3820740e9f75d602082015260208152614231565b614fd860408051671c81bda81f46f0c7602082015260208152614231565b805f52600460205260405f20916040519283602082549182815201915f5260205f20905f905b8082106151f25750505083615014910384614231565b6150326040805167751ea8bae0552328602082015260208152614231565b615050604080516776e4cbfbd73f9c21602082015260208152614231565b5f935b83518510806151e9575b156151b95761508060408051673d31e389cc4df02f602082015260208152614231565b61509e6040805167b0c40fe0dc3a98e7602082015260208152614231565b8882106151915760018080926150c860408051674b46843f5a61e9da602082015260208152614231565b6150e66040805167b1487d696f873244602082015260208152614231565b6150f6611c8c611c868a8a6145a7565b615100828b6145a7565b5261510b818a6145a7565b5061512a60408051675fa99a6ab6ae89e5602082015260208152614231565b01925b61514b60408051672a31ba7f255ab041602082015260208152614231565b6151696040805167fbc5897d9ec78fde602082015260208152614231565b0194615189604080516784e2319efe9043a8602082015260208152614231565b019390615053565b90600180916151b4604080516724ed4ca197ecbc10602082015260208152614231565b61512d565b93509491506001906151df6040805167391bf09766bf4479602082015260208152614231565b0190939190614f8a565b5087811061505d565b8254845260209093019260019283019290910190614ffe565b505050925050506152306040805167b40114bc25e70ca1602082015260208152614231565b6148476040805167a179664623036109602082015260208152614231565b50858210614f94565b61526291508261447e565b614e4f565b5061528960408051673fdd4f3aabbe98eb60c21b602082015260208152614231565b6001614e48565b506152b260408051672be201572b7561af60c21b602082015260208152614231565b5f614e42565b916152f06001916152dd6040805167e09873e196de660a602082015260208152614231565b845f52600460205260405f20549061447e565b9261530f604080516744d1e356e3d34f3f602082015260208152614231565b01614d24565b9190916153366040805167f5fc78f7d3d4f08d602082015260208152614231565b6153546040805167de87678812ad99a5602082015260208152614231565b6153726040805167acd300594840fa40602082015260208152614231565b6103e882111561539a576146bc6040805167eec1224995bada5a602082015260208152614231565b6153b860408051671ff5e8a1a79f8ffe602082015260208152614231565b6153d66040805167bdb78dae7dfb2f2d602082015260208152614231565b6153f460408051679d0faf34ef0d393d602082015260208152614231565b5f52600360205260405f2090604051808360208295549384815201905f5260205f20925f5b81811061576557505061542e92500383614231565b61544c6040805167ec8803f768122e36602082015260208152614231565b61546a6040805167cf995562e906ca1e602082015260208152614231565b81519061548b60408051674fc96a6c99b83dfc602082015260208152614231565b6154a96040805167b3027a0501451412602082015260208152614231565b81841061550e57505050506154d26040805167d0eb3c57fbaeec61602082015260208152614231565b6154f06040805167d35206eb865c9185602082015260208152614231565b61483f60408051674d3b66731eda7de6602082015260208152614231565b6155ca9184916155326040805167731792d7f9cf2958602082015260208152614231565b61555060408051679b63f25994f6f944602082015260208152614231565b61556e6040805167487615a0b75f2d20602082015260208152614231565b81615579828561447e565b11801561573d575b80615714575b1561570457505b6155ac604080516739687a556eb9e82c602082015260208152614231565b6149066040805167bd24b60c2486d9e2602082015260208152614231565b906155e96040805167ebd571cb71ac0e11602082015260208152614231565b6156076040805167e4b49e96a2738a4e602082015260208152614231565b61561082614558565b9261562f60408051674288868599349d8b602082015260208152614231565b61564d60408051678ba3e63e2b6f3e1f602082015260208152614231565b5f5b838110615696575050505061567860408051672a6d90b2e371c0e4602082015260208152614231565b6148476040805167e651ebf8c0c72c0f602082015260208152614231565b6001906156b76040805167cca0dac1e2871461602082015260208152614231565b6156ca611c8c611c86614a0b848761447e565b6156d482886145a7565b526156df81876145a7565b506156fe6040805167ee16127b2477b772602082015260208152614231565b0161564f565b61570f91508261447e565b61558e565b506157366040805167260fc90b6d829f8b60c01b602082015260208152614231565b6001615587565b5061575f604080516764973134ecabca9d60c01b602082015260208152614231565b5f615581565b8454835260019485019487945060209093019201615419565b60025f516020615ee75f395f51905f5254146157a75760025f516020615ee75f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b60ff5f516020615ec75f395f51905f5254166157ce57565b63d93c066560e01b5f5260045ffd5b335f9081527f49d7e8cdc094c5050b7beeb12b1261576ee8ac7033b98e9379ac751a1a95e0c1602052604090205460ff161561581557565b63e2517d3f60e01b5f52336004527ff996da754c790e95d5c7ca3330cfcad529487fe9d1d8edb7afc65076fdf9adb460245260445ffd5b335f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff161561588457565b63e2517d3f60e01b5f52336004527fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177560245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156158f357565b63e2517d3f60e01b5f52336004525f60245260445ffd5b5f8181525f516020615ea75f395f51905f526020908152604080832033845290915290205460ff161561593a5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f9060033d1161595c57565b905060045f803e5f5160e01c90565b5f60443d10614847576040513d600319016004823e8051913d60248401116001600160401b038411176159d757828201928351916001600160401b0383116159cf573d840160031901858401602001116159cf575061484792910160200190614231565b949350505050565b92915050565b906080614847926040815260156040820152747570646174654d65726368616e744d65747269637360581b606082015281602082015201906142d0565b3d15615a44573d90615a2b82614252565b91615a396040519384614231565b82523d5f602084013e565b606090565b90608061484792604081526011604082015270757064617465506572666f726d616e636560781b606082015281602082015201906142d0565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16615b19576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f516020615e475f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff16615b19576001600160a01b03165f8181527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c60205260408120805460ff191660011790553391907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775905f516020615e475f395f51905f529080a4600190565b6001600160a01b0381165f9081527f49d7e8cdc094c5050b7beeb12b1261576ee8ac7033b98e9379ac751a1a95e0c1602052604090205460ff16615b19576001600160a01b03165f8181527f49d7e8cdc094c5050b7beeb12b1261576ee8ac7033b98e9379ac751a1a95e0c160205260408120805460ff191660011790553391907ff996da754c790e95d5c7ca3330cfcad529487fe9d1d8edb7afc65076fdf9adb4905f516020615e475f395f51905f529080a4600190565b5f8181525f516020615ea75f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16615d1b575f8181525f516020615ea75f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291905f516020615e475f395f51905f529080a4600190565b50505f90565b5f8181525f516020615ea75f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615615d1b575f8181525f516020615ea75f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff5f516020615f075f395f51905f525460401c1615615dd957565b631afcd79f60e31b5f5260045ffd5b90615e0c5750805115615dfd57602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615e3d575b615e1d575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615e1556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d0e555162ce99b75ac3c2ee9036bdad63aaa0c2b9d690e5a232b3c20bbdda5ad6360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122000af690b43b537280360cd5ef9ff379d66b9abf41c83ddde28033b664fe18d1064736f6c634300081c0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00",
1585
+ "deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a714614097575080630b9d98e9146140205780631965423e146130c15780632485429014612e63578063248a9ca314612e235780632e7700f014612dab5780632f2ff15d14612d6057806336568abe14612d1b57806338c61cd014612d005780633f4ba83a14612bea57806347adc4f514612aa45780634aae13ca146128d15780634f1ef2861461268157806352d1902d1461261a57806356c95121146125f157806356ff4f3d1461208b5780635c975abb1461205c5780635f81a57c1461203e5780636441b651146120205780636e7ed7ac14611ed85780636eca504214611eaf57806375071d2a14611e7457806375b238fc14611e395780637f2e5a071461198a5780638456cb59146118815780638d508f511461180957806391d14854146117b3578063a217fddf14611797578063a2696fab1461176e578063a96c00c1146116d8578063ad3cb1cc1461168f578063b77bf60014611671578063bc54e58f14611648578063bea865811461160d578063c0c53b8b146111f4578063d547741f146111a0578063e4b0b21b14610fc7578063f1856dd014610e83578063fd7aba8814610e585763ff6dd4a5146101d6575f80fd5b34610e55576020366003190112610e55576001600160401b0360043511610e5557366023600435011215610e55576001600160401b036004356004013511610e55573660246101406004356004013502600435010111610e555761024e604080516763a9d7daeb110a44602082015260208152614231565b61025661577e565b6102746040805167281dd782aef3e3cd602082015260208152614231565b61029260408051677d540bae592a32c2602082015260208152614231565b61029a6157b6565b6102b8604080516768bb5a333dda48e6602082015260208152614231565b6102d66040805167086b41b9323cc6b3602082015260208152614231565b6102de6157dd565b6102fc6040805167206d5ebaafde899e602082015260208152614231565b61031a604080516726055819abc93f8b602082015260208152614231565b6103386040805167cf82090451510abb602082015260208152614231565b6103566040805167deadddb32dc3bc82602082015260208152614231565b61037460408051674aaaa3e827d369df602082015260208152614231565b6103926040805167746ab680127dab44602082015260208152614231565b600160048035013510156103db576044906103c16040805167aa193163495bee66602082015260208152614231565b637baad00760e11b81526004803581013590526001602452fd5b6103f9604080516795b3e8decdb5cf00602082015260208152614231565b61041760408051678117dc2df3467b8a602082015260208152614231565b61043560408051677631d1e7063cde3b602082015260208152614231565b60646004803501351115610470576004906104646040805167f15e4f57684777c1602082015260208152614231565b63abcf3d2360e01b8152fd5b61048e6040805167c0ee0209c61a1df1602082015260208152614231565b6104ac604080516726b146da5b1edc1c602082015260208152614231565b6104ca604080516721f5f80683b3d2d1602082015260208152614231565b6001600954018060095560405160208101914283526040820152604081526104f3606082614231565b519020906105156040805167b8d5bb6c5e43e443602082015260208152614231565b6105336040805167372d35ba65491aa7602082015260208152614231565b806105526040805167e25aae24af4e64d1602082015260208152614231565b610570604080516749176e84a4a59c7b602082015260208152614231565b8161058f6040805167e09880fef464fbdc602082015260208152614231565b6105ad60408051670257f70bd4375ab5602082015260208152614231565b825b60043560040135811015610d20576105db6040805167c8c5e759b2d723db602082015260208152614231565b6105f96040805167b519e9152c958d7a602082015260208152614231565b6101408102600435016101406023198236030112610d1c576040519361061e85614201565b6024820135855260448201356020860152606482013560408601526084820135606086015260a4820135608086015260c482013560a086015260e48201356004811015610d185760c0860152610104820135918215158303610d18576101449060e0870193845261012481013561010088015201356101208601526106b760408051673ad952b949d0bc3f602082015260208152614231565b6106d5604080516706948e08eeda100e602082015260208152614231565b602085015161070b576004866106ff6040805167ff68cd8de3d35d75602082015260208152614231565b637ccfccc960e11b8152fd5b61072960408051678392692a2eeceab4602082015260208152614231565b6107476040805167cf897baebd27ac67602082015260208152614231565b6107656040805167b8078928bfa2fcb7602082015260208152614231565b604085015161079b5760048661078f6040805167388bbad87d76294c602082015260208152614231565b63456f7a6760e11b8152fd5b6107b96040805167478b6dd9f22fb1f5602082015260208152614231565b6107d760408051675440faddf52616db602082015260208152614231565b6107f56040805167409f9268784946ea602082015260208152614231565b608085015161082b5760048661081f604080516749fb7880d44519b1602082015260208152614231565b63cc36378360e01b8152fd5b61084960408051678fc112b7b02c360e602082015260208152614231565b61086760408051672a9595df4c5ed4a9602082015260208152614231565b6108856040805167361aa4f405cd580a602082015260208152614231565b8451610cf5576108a960408051676c136eeefe9f4fdf602082015260208152614231565b6108c7604080516714c56f62d8cfc529602082015260208152614231565b6020850151604086015160808701516008549060405192602084019442865260408501526060840152608083015260a08201528460c082015260c0815261090f60e082614231565b51902085525b61093360408051673607a26609571747602082015260208152614231565b866101208601526109586040805167c2ae34220a93d828602082015260208152614231565b4261010086015261097d6040805167ad08ea3526cfb185602082015260208152614231565b61099b6040805167ad0a66d650e51060602082015260208152614231565b6109a485614391565b6109c260408051679dab6ab00e2fc96a602082015260208152614231565b6109e06040805167c32b7b713ed86472602082015260208152614231565b85545f198101908111610ce157610bb491610b61610b8a92610a166040805167a262f4c2f9f07891602082015260208152614231565b88518a5260016020528060408b2055610a436040805167ba87f8f949d0fbf5602082015260208152614231565b610a616040805167fa6d4ac8d38ae751602082015260208152614231565b60208901518a526002602052610a7a8160408c20614457565b610a986040805167955d3b92d7fea529602082015260208152614231565b610ab660408051673f61b62255f522b6602082015260208152614231565b60408901518a526003602052610acf8160408c20614457565b610aed6040805167e2e4b4380bf65add602082015260208152614231565b610b0b60408051678477f5427d201135602082015260208152614231565b6201518060608a015104610b3360408051678f0d6797e902d932602082015260208152614231565b610b51604080516769c7ff32ec1f8b78602082015260208152614231565b8a52600460205260408a20614457565b610b7f60408051675451326f020bcc6d602082015260208152614231565b60808701519061447e565b93610ba9604080516751154c33ded0abb5602082015260208152614231565b60a08601519061447e565b93610bd36040805167e20861d677a38ace602082015260208152614231565b610bf16040805167e6fca33cf4e6b428602082015260208152614231565b8051602082015191604081015193606082015160808301519160c060a0850151940151906004821015610ccd5760019897969594927f3c69fa9a19358747a2f84bc15a2a5d62acb875ec6bea883b8e036aa4b15ce79e9492610c5f925115159060405195869542948761448b565b0390a4610c80604080516776699926f98c227c602082015260208152614231565b610c9e6040805167ce2ded2183af47b4602082015260208152614231565b8160085401600855610cc4604080516783d0db03ae5a41aa602082015260208152614231565b019190916105af565b634e487b7160e01b8c52602160045260248cfd5b634e487b7160e01b87526011600452602487fd5b610d1360408051678c68701e91c3c02c602082015260208152614231565b610915565b8680fd5b8480fd5b604085807f784aa23ef1c9d6e40c852a4f872070521683b1bd8e7e05c35180021412594a718587610d6486805167d46ebc3e4f816796602082015260208152614231565b610d708160065461447e565b600655610d90868051676a2e70364cff1254602082015260208152614231565b610d9c8260075461447e565b600755610dbc868051671eeb7640debb5782602082015260208152614231565b610dd9868051672c098f1c6da38ecb602082015260208152614231565b8551600480350135815260208101919091526040810191909152606090a2610e14828051672c6e87ec6138a976602082015260208152614231565b610e3182805167b7c778e61f8d07d0602082015260208152614231565b60015f516020615ee75f395f51905f52558151908152600435600401356020820152f35b80fd5b5034610e5557610e7f610e73610e6d366141e7565b91615315565b60405191829182614177565b0390f35b5034610e55576020366003190112610e55577f5ced9e4e69bf8eca510483cc73378f7f3fe87758ef0d19ef3fdaf3adcbd527fe6080610ec06141d1565b610ede604080516722fddf01e4642984602082015260208152614231565b610ee661584c565b610f04604080516709df4f088eed4989602082015260208152614231565b610f226040805167b534afac237952c6602082015260208152614231565b610f406040805167dbbf12c0bc257233602082015260208152614231565b60018060a01b0316806001600160601b0360a01b600b541617600b55610f7a6040805167a01a408a4460e428602082015260208152614231565b610f986040805167e2b1f5ff4971cdd0602082015260208152614231565b6040519060408252600e60408301526d526570506572666f726d616e636560901b60608301526020820152a180f35b5034610e555780600319360112610e5557600d54600e5491600f5460405190828260105491610ff5836142f4565b80835292600181169081156111815750600114611123575b61101992500383614231565b60405192806011549061102b826142f4565b80875291600181169081156110fb57506001146110a1575b50509160ff6110939261105c86610e7f97960386614231565b6040519788978852602088015260018060a01b038116604088015260a01c161515606086015260c0608086015260c08501906142d0565b9083820360a08501526142d0565b6011815291507f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c685b8183106110e1575050830160200160ff611093611043565b6001816020929493945483858a01015201910191906110c9565b60ff191660208089019190915292151560051b8701909201925060ff91506110939050611043565b50601085529084907f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6725b8183106111655750509060206110199282010161100d565b602091935080600191548385890101520191019091849261114d565b6020925061101994915060ff191682840152151560051b82010161100d565b5034610e55576040366003190112610e55576111f06004356111c06141bb565b906111eb6111e6825f525f516020615ea75f395f51905f52602052600160405f20015490565b61590a565b615d21565b5080f35b5034610e55576060366003190112610e555761120e6141d1565b6112166141bb565b6044356001600160a01b03811691908290036116095761124a6040805167f18fcabb631bd40b602082015260208152614231565b5f516020615f075f395f51905f52549260ff8460401c1615936001600160401b03811680159081611601575b60011490816115f7575b1590816115ee575b506115df5767ffffffffffffffff1981166001175f516020615f075f395f51905f52556114e99190856115b3575b506112d56040805167b4e98152e2095106602082015260208152614231565b6112f3604080516799d342b91732f5ee602082015260208152614231565b611311604080516779b701f9b92b5436602082015260208152614231565b61132f60408051677fbb486246e3da15602082015260208152614231565b611337615dbd565b6113556040805167f492cd38b9650d3d602082015260208152614231565b6113736040805167f16c93e12035be50602082015260208152614231565b61137b615dbd565b611383615dbd565b60015f516020615ee75f395f51905f52556113b2604080516746a548c3d05c331c602082015260208152614231565b6113d06040805167e1a2e6386a41916e602082015260208152614231565b6113d8615dbd565b6113f660408051673761290bda473517602082015260208152614231565b611414604080516720a6c98291438f06602082015260208152614231565b61141c615dbd565b61143a604080516772e811f7f78b1ac1602082015260208152614231565b6114586040805167402d54e1479aaba5602082015260208152614231565b61146181615a82565b506114806040805167a08557360cb2bcdd602082015260208152614231565b61149e6040805167b81e6bf76aa7d16d602082015260208152614231565b6114a781615b1e565b506114c660408051675e0de763eaffdd0d602082015260208152614231565b6114e46040805167da25a2af788b6ed3602082015260208152614231565b615bd7565b506115086040805167887b4f9c357b55ed602082015260208152614231565b60018060a01b03166001600160601b0360a01b600a541617600a5561154160408051678e79d22b532bcda7602082015260208152614231565b6001600160601b0360a01b600c541617600c5561155b5780f35b68ff0000000000000000195f516020615f075f395f51905f5254165f516020615f075f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b68ffffffffffffffffff191668010000000000000001175f516020615f075f395f51905f52555f6112b6565b63f92ee8a960e01b8652600486fd5b9050155f611288565b303b159150611280565b869150611276565b8380fd5b5034610e555780600319360112610e555760206040517ff996da754c790e95d5c7ca3330cfcad529487fe9d1d8edb7afc65076fdf9adb48152f35b5034610e555780600319360112610e5557600c546040516001600160a01b039091168152602090f35b5034610e555780600319360112610e55576020600854604051908152f35b5034610e555780600319360112610e555750610e7f6040516116b2604082614231565b60058152640352e302e360dc1b60208201526040519182916020835260208301906142d0565b5034610e555780600319360112610e555760a09061170a6040805167aa705fd1f09c782f602082015260208152614231565b61172860408051676aa5092cf5a0ce4e602082015260208152614231565b6117466040805167d3bf8d193c10160b602082015260208152614231565b6008549060065460075490604051938452602084015260408301528060608301526080820152f35b5034610e55576080366003190112610e5557610e7f610e73606435604435602435600435614af3565b5034610e555780600319360112610e5557602090604051908152f35b5034610e55576040366003190112610e555760406117cf6141bb565b9160043581525f516020615ea75f395f51905f52602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b5034610e555780600319360112610e55576118386040805167661a78dc6223043b602082015260208152614231565b611856604080516720e57b0e6f35a944602082015260208152614231565b6118746040805167bc2811cd893d1e10602082015260208152614231565b6020600754604051908152f35b5034610e555780600319360112610e55576118b060408051674023693b49fa17c7602082015260208152614231565b6118b861584c565b6118d66040805167fbc85bfe6458c5e7602082015260208152614231565b6118f460408051675b53dc870a8377d8602082015260208152614231565b6119126040805167b40939fd188174bb602082015260208152614231565b61193060408051675a714a8128a8dc84602082015260208152614231565b6119386157b6565b600160ff195f516020615ec75f395f51905f525416175f516020615ec75f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610e55576040366003190112610e55576004356024358290839284916119c6604080516776b68345f6c3dad5602082015260208152614231565b6119e46040805167494cb1ee44e3f1d3602082015260208152614231565b611a01604080516693e860cf882296602082015260208152614231565b611a1f604080516739beb4cc30688e2b602082015260208152614231565b808211611dff57908591611a47604080516702f763e0bc1aa97e602082015260208152614231565b611a65604080516783ce311b501a8831602082015260208152614231565b611a83604080516758cdda495a234678602082015260208152614231565b611aa16040805167d61832104ca28d3f602082015260208152614231565b611abf604080516725ac9d24e6b75bcd602082015260208152614231565b62015180810490611ae46040805167b6a1495720df5af3602082015260208152614231565b611b0260408051673d14a0cb3b4310c0602082015260208152614231565b620151808304925b82841115611b71578787610e7f88611b3660408051672e42b129a4b3ba89602082015260208152614231565b611b5460408051670730fdf5c22ef148602082015260208152614231565b604051938493846040919493926060820195825260208201520152565b90919396929594611b966040805167404c3e28c4b81715602082015260208152614231565b611bb46040805167174b0e30c7f64330602082015260208152614231565b8688526004602052604088209760405180998a91602082549182815201918452602084209084905b808210611de65750505090611bf291038a614231565b611c106040805167615c9a3923275937602082015260208152614231565b611c2e6040805167884540b6f7485afe602082015260208152614231565b80915b8951831015611dc957611c586040805167584f9cd36f821038602082015260208152614231565b611c76604080516744386476baeb8c01602082015260208152614231565b611c92611c8c611c86858d6145a7565b51614345565b506145bb565b97611cb160408051675e7f03a16e677dbc602082015260208152614231565b611ccf60408051675b1e3abbcd6d5cdb602082015260208152614231565b606089015186868210159182611dbe575b505015611d945760019160a0611d61611d37611d8894611d1460408051670343d6d29abc703b602082015260208152614231565b611d3260408051676209cf7f4b7db431602082015260208152614231565b614ae5565b99611d566040805167b33e43ddbc609393602082015260208152614231565b60808d01519061447e565b9a611d806040805167f86c334d9bccb7a5602082015260208152614231565b01519061447e565b925b0191969496611c31565b95975091600190611db96040805167391d02a91d83ef83602082015260208152614231565b611d8a565b11159050868d611ce0565b959497909850611dd99150614ae5565b9291909693949596611b0a565b8254845260209093019260019283019290910190611bdc565b60405162461bcd60e51b8152602060048201526012602482015271496e76616c696420646174652072616e676560701b6044820152606490fd5b5034610e555780600319360112610e555760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b5034610e555780600319360112610e555760206040517f5719df9ef2c4678b547f89e4f5ae410dbf400fc51cf3ded434c55f6adea2c43f8152f35b5034610e555780600319360112610e5557600a546040516001600160a01b039091168152602090f35b5034610e55576020366003190112610e55577f5ced9e4e69bf8eca510483cc73378f7f3fe87758ef0d19ef3fdaf3adcbd527fe6080611f156141d1565b611f336040805167aaff269d07226b34602082015260208152614231565b611f3b61584c565b611f596040805167023b36a36db51820602082015260208152614231565b611f776040805167ec146847a623c7b0602082015260208152614231565b611f956040805167976517c7146b1620602082015260208152614231565b60018060a01b0316806001600160601b0360a01b600c541617600c55611fcf6040805167b5df78ff1f333eb1602082015260208152614231565b611fed6040805167c801e3189e7f2c04602082015260208152614231565b604051906040825260126040830152712932b9b4b23ab0b621b0b631bab630ba37b960711b60608301526020820152a180f35b5034610e555780600319360112610e55576020600754604051908152f35b5034610e555780600319360112610e55576020600654604051908152f35b5034610e555780600319360112610e5557602060ff5f516020615ec75f395f51905f5254166040519015158152f35b5034610e55576060366003190112610e5557600435906024356001600160401b0381116125ed576120c09036906004016142a3565b92906044356001600160401b038111611609576120e19036906004016142a3565b949061210160408051670da9387630b3e5a6602082015260208152614231565b6121096158bb565b61212760408051678b29ca4754e0535c602082015260208152614231565b61214560408051673ad92ba64ae62138602082015260208152614231565b612163604080516727eb3202014b0781602082015260208152614231565b61218160408051678dd86d7daaf0732e602082015260208152614231565b61219f60408051672b46d4b111899d0c602082015260208152614231565b600e546125b3576121c460408051671c6e48502cf0b3d8602082015260208152614231565b6121e26040805167367f52c6aee8f9d2602082015260208152614231565b60405160c081018181106001600160401b038211176124ae57604052848152602081014281526040820133815260608301906001825261222336878961426d565b9260808501938452612236368c8861426d565b60a08087019182529551600d559051600e559051600f805493516001600160a81b03199094166001600160a01b03929092169190911792151590941b60ff60a01b1691909117909255518051906001600160401b03821161259f57819061229e6010546142f4565b601f8111612531575b50602090601f83116001146124cd5789926124c2575b50508160011b915f199060031b1c1916176010555b519586516001600160401b0381116124ae576122ef6011546142f4565b601f811161244b575b506020601f82116001146123c05790806123af949392899a7f5a4b9f27a26618330986254014b0a0081a144ab6878da8d57d4d1e176ce915bf999a926123b5575b50508160011b915f199060031b1c1916176011555b61236c604080516771f257b8ffd6f108602082015260208152614231565b61238a60408051675e907bbb8c216bd0602082015260208152614231565b6123a1604051958695604087526040870191614ac5565b918483036020860152614ac5565b0390a280f35b015190505f80612339565b6011885280882098601f198316895b81811061243357509960019284926123af9796957f5a4b9f27a26618330986254014b0a0081a144ab6878da8d57d4d1e176ce915bf9b9c9d1061241b575b505050811b0160115561234e565b01515f1960f88460031b161c191690555f808061240d565b838301518c556001909b019a602093840193016123cf565b601188527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68601f830160051c810191602084106124a4575b601f0160051c01905b81811061249957506122f8565b88815560010161248c565b9091508190612483565b634e487b7160e01b87526041600452602487fd5b015190505f806122bd565b60108a52818a209250601f1984168a5b8181106125195750908460019594939210612501575b505050811b016010556122d2565b01515f1960f88460031b161c191690555f80806124f3565b929360206001819287860151815501950193016124dd565b60108a529091507f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672601f840160051c81019160208510612595575b90601f859493920160051c01905b81811061258757506122a7565b8a815584935060010161257a565b909150819061256c565b634e487b7160e01b88526041600452602488fd5b60405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e4818dbdb999a59dd5c995960721b6044820152606490fd5b5080fd5b5034610e555780600319360112610e5557600b546040516001600160a01b039091168152602090f35b5034610e555780600319360112610e55577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036126725760206040515f516020615e875f395f51905f528152f35b63703e46dd60e11b8152600490fd5b506040366003190112610e55576126966141d1565b906024356001600160401b0381116125ed57366023820112156125ed576126c790369060248160040135910161426d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163081149081156128af575b506128a05761271f60408051679dd062068a30fc8a602082015260208152614231565b6127276158bb565b61274560408051678e7f588fa1d6fcde602082015260208152614231565b61276360408051672b6a0169500792bf602082015260208152614231565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa8095859661286c575b506127a857634c9c8ce360e01b84526004839052602484fd5b9091845f516020615e875f395f51905f52810361285a5750813b15612848575f516020615e875f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2815183901561282e57808360206111f095519101845af4612828615a1a565b91615de8565b505050346128395780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612898575b8161288860209383614231565b81010312610d1c5751945f61278f565b3d915061287b565b63703e46dd60e11b8252600482fd5b5f516020615e875f395f51905f52546001600160a01b0316141590505f6126fc565b5034610e55576020366003190112610e5557600435906128ef6144d5565b5061290e6040805167b1d79062fc68fd71602082015260208152614231565b61292c6040805167655d7f1dcda7c8a4602082015260208152614231565b61294a6040805167b2d42bc9e813acce602082015260208152614231565b81815260016020526040812054916129766040805167a0dfb7eaca124fa6602082015260208152614231565b6129946040805167e3bdb88fd43b3fe7602082015260208152614231565b821580612a9a575b80612a6e575b156129f657602492506129c9604080516744fa963b3a999b15602082015260208152614231565b6129e76040805167ac8983c666816853602082015260208152614231565b63925fea7360e01b8252600452fd5b610140612a5f611c8c85612a1e6040805167c9a18f4e5cd82c51602082015260208152614231565b612a3c604080516783331ae538667fcf602082015260208152614231565b612a5a604080516757e00973afcd2e4c602082015260208152614231565b614345565b612a6c604051809261410b565bf35b50815415612a865781805280602083205414156129a2565b634e487b7160e01b82526032600452602482fd5b508154151561299c565b5034610e55576020366003190112610e55577f5ced9e4e69bf8eca510483cc73378f7f3fe87758ef0d19ef3fdaf3adcbd527fe6080612ae16141d1565b612aff60408051670a048e3d7e76b833602082015260208152614231565b612b0761584c565b612b25604080516742dcd35d7ed9bb1b602082015260208152614231565b612b43604080516764fb1c4865de0dcd602082015260208152614231565b612b6160408051672934dd8b11ec264f602082015260208152614231565b60018060a01b0316806001600160601b0360a01b600a541617600a55612b9b6040805167170247361aa4cc23602082015260208152614231565b612bb96040805167531d9a6f64851daa602082015260208152614231565b6040519060408252601060408301526f4d65726368616e74526567697374727960801b60608301526020820152a180f35b5034610e555780600319360112610e5557612c196040805167fe525f9c853a1c0f602082015260208152614231565b612c2161584c565b612c3f6040805167d3fa39de97c2e791602082015260208152614231565b612c5d60408051670213c55e44295526602082015260208152614231565b612c7b6040805167e333865238553559602082015260208152614231565b612c996040805167ea50daaf2b166969602082015260208152614231565b5f516020615ec75f395f51905f525460ff811615612cf15760ff19165f516020615ec75f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b5034610e5557610e7f610e73612d15366141e7565b91614637565b5034610e55576040366003190112610e5557612d356141bb565b336001600160a01b03821603612d51576111f090600435615d21565b63334bd91960e11b8252600482fd5b5034610e55576040366003190112610e55576111f0600435612d806141bb565b90612da66111e6825f525f516020615ea75f395f51905f52602052600160405f20015490565b615c90565b5034610e555780600319360112610e5557612dda60408051679c1ce39400292ccf602082015260208152614231565b612df86040805167264106f5465940f1602082015260208152614231565b612e1660408051676abc7cfda1da642a602082015260208152614231565b6020600854604051908152f35b5034610e55576020366003190112610e55576020612e5b6004355f525f516020615ea75f395f51905f52602052600160405f20015490565b604051908152f35b5034610e55576020366003190112610e55576004356001600160401b0381116125ed57366023820112156125ed5780600401356001600160401b0381116130bd573660248260051b840101116130bd5790612ed260408051674ae7c8504a6a5c78602082015260208152614231565b612ef06040805167405734ec848770a7602082015260208152614231565b612f0e6040805167c14123f37d56598e602082015260208152614231565b612f1782614558565b92612f3660408051678dbe55fd2025b062602082015260208152614231565b612f54604080516736e5cf75d154b79d602082015260208152614231565b805491815b8481101561307d57600190612f826040805167e482ccf6fdbb8e96602082015260208152614231565b612fa06040805167ec7ced04f52803d5602082015260208152614231565b60248160051b840101358452816020526040842054612fd360408051674ea5f644400f5bbd602082015260208152614231565b612ff16040805167dd911d3f1dfbf4dc602082015260208152614231565b8581101561305957611c8c61303c9161301e6040805167cb0aa4f91fd3f68c602082015260208152614231565b612a5a6040805167db6ef13e6a426097602082015260208152614231565b61304682896145a7565b5261305181886145a7565b505b01612f59565b506130786040805167a3ce6aeda2fc0d6d602082015260208152614231565b613053565b610e7f8661309f6040805167817146c24367c34a602082015260208152614231565b610e7360408051679e1efab324986e0f602082015260208152614231565b8280fd5b5034613f805760e0366003190112613f80576044359060a4356024356084356064356004803590851015613f805760c43580151595868203613f805761311b60408051671b145eec6a6fb389602082015260208152614231565b61312361577e565b613141604080516757edf3c037c1bc52602082015260208152614231565b61315f6040805167416f79befff6ce0d602082015260208152614231565b6131676157b6565b6131856040805167180d21d5ac4da029602082015260208152614231565b6131a36040805167d126fa6467955e64602082015260208152614231565b6131c16040805167e64e22a7ad43c307602082015260208152614231565b6131df6040805167335a7c89f3700c48602082015260208152614231565b6131fd60408051670318c6b3fda82aa9602082015260208152614231565b335f52601260205261321360405f20544261432c565b98613232604080516793bc9f3dd4e8e48d602082015260208152614231565b613250604080516733607084c6b8264e602082015260208152614231565b60018a10156132b1578961327860408051670dfd6047d0b87d00602082015260208152614231565b6132966040805167b9d7d59ab8519880602082015260208152614231565b6310a7b17960e31b5f5233600452602452600160445260645ffd5b6132cf6040805167a42fde9718eddafa602082015260208152614231565b6132ed6040805167a28431c7739b64db602082015260208152614231565b335f5260126020524260405f205561331960408051672050c98d682a339f602082015260208152614231565b613337604080516719d205ebebc0d69e602082015260208152614231565b6133556040805167e72c4e937f153047602082015260208152614231565b61335d6157dd565b61337b604080516769d5b3cb3d2ac980602082015260208152614231565b613399604080516790fcf6b84bed7562602082015260208152614231565b6133b76040805167daa27b989a4b7f8b602082015260208152614231565b6133d560408051672cf09789412d9304602082015260208152614231565b6133f36040805167449dac14e540ac96602082015260208152614231565b836134255761341660408051677921be116c318442602082015260208152614231565b637ccfccc960e11b5f5260045ffd5b6134436040805167d5c7c0a04e9a4aa5602082015260208152614231565b61346160408051673b788e133ffe8e18602082015260208152614231565b61347f6040805167dfb6c993b7e3276e602082015260208152614231565b866134b1576134a260408051671e3669e4cc3a90db602082015260208152614231565b63456f7a6760e11b5f5260045ffd5b6134cf60408051673ea53fbbe0d23be5602082015260208152614231565b6134ed604080516787d5f86f84192158602082015260208152614231565b61350b6040805167c8064c8d69e431d7602082015260208152614231565b841580613ff7575b8015613fb8575b1561356a5761353d6040805167a184f39f8d68ccb2602082015260208152614231565b61355b6040805167cf617bd969ba5083602082015260208152614231565b63cc36378360e01b5f5260045ffd5b61358860408051674d1448b292016846602082015260208152614231565b6135a6604080516742eeb6d079721d2e602082015260208152614231565b6135c4604080516770c92e7bdfab6938602082015260208152614231565b42811115613617576135ea6040805167c5c026f80b1d546c602082015260208152614231565b613608604080516768dc26726651a62d602082015260208152614231565b63649741a360e11b5f5260045ffd5b6136356040805167032208f90b000b2f602082015260208152614231565b6136536040805167af181920de8b3351602082015260208152614231565b61367160408051674e1f103c86f08360602082015260208152614231565b61368f6040805167ccec087a070efb49602082015260208152614231565b6136ad6040805167819b52c48933c67d602082015260208152614231565b6137b360085460405160208101914283528760408301528a606083015288608083015260a082015260a081526136e460c082614231565b5190209861370660408051676b27968423706fcd602082015260208152614231565b61372460408051678ec2b060c9ed0276602082015260208152614231565b6040519061373182614201565b8a82528660208301528960408301528360608301528760808301528860a083015261375f8560c08401614339565b60e0820152426101008201525f610120820152613790604080516701c1221913587c1a602082015260208152614231565b6137ae6040805167ac1270704fdfd586602082015260208152614231565b614391565b6137d16040805167e6c961a2be58f316602082015260208152614231565b6137ef6040805167a0b021b1aa6ae91a602082015260208152614231565b5f545f19810191908211613fa45787938593613a727f3c69fa9a19358747a2f84bc15a2a5d62acb875ec6bea883b8e036aa4b15ce79e936139878d966138496040805167759bb5dbd7577f51602082015260208152614231565b875f5260016020528060405f20556138756040805167b0c51b5f4df592ff602082015260208152614231565b6138936040805167fa8482b8a3a73a3d602082015260208152614231565b885f5260026020526138a88160405f20614457565b6138c66040805167bb5337b0e649f9fa602082015260208152614231565b6138e460408051670e05cebcdd9403af602082015260208152614231565b895f5260036020526138f98160405f20614457565b61391760408051673abc4f5f7209aaf5602082015260208152614231565b6139356040805167815f5c8fc572cb20602082015260208152614231565b61395360408051673ef0f24f0c95ffac602082015260208152614231565b61397160408051677d423a8b05054cf4602082015260208152614231565b6201518083045f52600460205260405f20614457565b6139a560408051677163d20a9ab50bb0602082015260208152614231565b6139b18a60065461447e565b6006556139d2604080516711d049897e4f7df3602082015260208152614231565b6139de8b60075461447e565b6007556139ff60408051676dcf7d7af1a0e5e0602082015260208152614231565b613a1d60408051677d6fbe92b778c1dd602082015260208152614231565b600160085401600855613a446040805167428f3888446c5553602082015260208152614231565b613a626040805167b6d10d1e121fcdd7602082015260208152614231565b6040519384938c8c42948761448b565b0390a4613a936040805167d4f68968da12a622602082015260208152614231565b613ab160408051679c2caab0deea2d8f602082015260208152614231565b613acf6040805167ba20b306de51dab2602082015260208152614231565b613aed6040805167d1a071f2ead23186602082015260208152614231565b613b0b6040805167659a1d9bf9c4ab8e602082015260208152614231565b600a546001600160a01b03168015613f8457613b3b60408051672764e21ea69c29ee602082015260208152614231565b613b596040805167f93bebd2073dae4e602082015260208152614231565b613b776040805167077a98becb0338d3602082015260208152614231565b803b15613f8057604051632c188b7b60e21b8152600481019290925260248201839052604482018490525f908290606490829084905af19081613f6b575b50613f66576001613bc4615950565b6308c379a014613ee0575b613e6b575b613bf26040805167651e967137ac200c602082015260208152614231565b613c1060408051677905f997d724bcdc602082015260208152614231565b600b546001600160a01b0316908115613e425790859291613c456040805167c136fc4ed167017a602082015260208152614231565b613c636040805167fcee146e33f3eb99602082015260208152614231565b613c816040805167c7dafce7bbfd06b2602082015260208152614231565b813b156116095760405163758ee63960e11b81526004810195909552602485015260448401919091528290606490829084905af19081613e2d575b5060209290613e2757600190613cd0615950565b6308c379a014613da3575b50613d32575b613cfd6040805167262c8d6cc223012e85820152848152614231565b613d196040805167fac8ef3f09c41a3585820152848152614231565b60015f516020615ee75f395f51905f5255604051908152f35b613d3a615a1a565b613d5660408051678fb082f189acd16386820152858152614231565b613d726040805167369ccc1e546e510a86820152858152614231565b5f516020615e675f395f51905f52613d9b60018060a01b03600b54169260405191829182615a49565b0390a2613ce1565b613dab61596b565b9081613db8575b50613cdb565b90915090613dd860408051679944eaa24e3e47b387820152868152614231565b613df460408051679f55416dd5c0240987820152868152614231565b5f516020615e675f395f51905f52613e1d60018060a01b03600b54169260405191829182615a49565b0390a28380613db2565b50613ce1565b613e38848092614231565b6130bd5783613cbc565b5050505060209150613e666040805167f8c4d55a161bf21185820152848152614231565b613ce1565b613e73615a1a565b613e916040805167984e0422f472acc1602082015260208152614231565b613eaf60408051670ed9d630c8cbedb1602082015260208152614231565b5f516020615e675f395f51905f52613ed860018060a01b03600a541692604051918291826159dd565b0390a2613bd4565b613ee861596b565b80613ef4575b50613bcf565b90508590613f166040805167d831a4b7927eb16d602082015260208152614231565b613f3460408051678247f8bf5c6cdf8f602082015260208152614231565b5f516020615e675f395f51905f52613f5d60018060a01b03600a541692604051918291826159dd565b0390a286613eee565b613bd4565b613f789196505f90614231565b5f9486613bb5565b5f80fd5b5050613f666040805167a42fe91a5324269d602082015260208152614231565b634e487b7160e01b5f52601160045260245ffd5b506b033b2e3c9fd0803ce80000008511801561351a5750613ff060408051673cca07edf3b5029d60c11b602082015260208152614231565b600161351a565b5061401960408051671ad1c8cecd4a41e160c21b602082015260208152614231565b6001613513565b34613f80575f366003190112613f805761404e60408051675884309d347acc4f602082015260208152614231565b61406c60408051677f571889c8a9b30b602082015260208152614231565b61408a604080516714d974d7c87d9754602082015260208152614231565b6020600654604051908152f35b34613f80576020366003190112613f80576004359063ffffffff60e01b8216809203613f8057602091637965db0b60e01b81149081156140d9575b5015158152f35b6301ffc9a760e01b149050836140d2565b9060048210156140f75752565b634e487b7160e01b5f52602160045260245ffd5b6101208091805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015261415860c082015160c08601906140ea565b60e0810151151560e08501526101008101516101008501520151910152565b60206040818301928281528451809452019201905f5b81811061419a5750505090565b9091926020610140826141b0600194885161410b565b01940192910161418d565b602435906001600160a01b0382168203613f8057565b600435906001600160a01b0382168203613f8057565b6060906003190112613f8057600435906024359060443590565b61014081019081106001600160401b0382111761421d57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761421d57604052565b6001600160401b03811161421d57601f01601f191660200190565b92919261427982614252565b916142876040519384614231565b829481845281830111613f80578281602093845f960137010152565b9181601f84011215613f80578235916001600160401b038311613f805760208381860195010111613f8057565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90600182811c92168015614322575b602083101461430e57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691614303565b91908203918211613fa457565b60048210156140f75752565b5f5481101561437d575f8080526009919091027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630191565b634e487b7160e01b5f52603260045260245ffd5b5f54600160401b81101561421d57600181015f555f5481101561437d575f80526009027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630190805182556020810151600183015560408101516002830155606081015160038301556080810151600483015560a08101516005830155600682019060c08101519060048210156140f75760089261012092815460ff61ff0060e08601511515881b1692169061ffff19161717905561010081015160078501550151910155565b805490600160401b82101561421d576001820180825582101561437d575f5260205f200155565b91908201809211613fa457565b929360a0946144b3929897969360c086019986526020860152604085015260608401906140ea565b151560808201520152565b6001600160401b03811161421d5760051b60200190565b604051906144e282614201565b5f610120838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152565b6040519061452e602083614231565b5f80835282815b82811061454157505050565b60209061454c6144d5565b82828501015201614535565b90614562826144be565b61456f6040519182614231565b8281528092614580601f19916144be565b01905f5b82811061459057505050565b60209061459b6144d5565b82828501015201614584565b805182101561437d5760209160051b010190565b906040516145c881614201565b610120600882948054845260018101546020850152600281015460408501526003810154606085015260048101546080850152600581015460a085015260ff600682015461461b82821660c08801614339565b831c16151560e085015260078101546101008501520154910152565b9190916146586040805167ffe85580ffc3562e602082015260208152614231565b6146766040805167e767f11d2dbc282e602082015260208152614231565b61469460408051676c5a9dabfcac20e9602082015260208152614231565b6103e88211156146cb576146bc604080516797309a734508a388602082015260208152614231565b638e590a2b60e01b5f5260045ffd5b6146e9604080516760d42d2511b437ef602082015260208152614231565b614707604080516781d992825e38173d602082015260208152614231565b61472560408051676d371cdc339e23ff602082015260208152614231565b5f52600260205260405f2090604051808360208295549384815201905f5260205f20925f5b818110614aac57505061475f92500383614231565b61477d6040805167025f9f7487032860602082015260208152614231565b61479b604080516729a1fa76c7d1e42a602082015260208152614231565b8151906147bc6040805167600468928233155b602082015260208152614231565b6147da6040805167d07a2701b244ae33602082015260208152614231565b81841061484a57505050506148036040805167035694840034d279602082015260208152614231565b614821604080516740515b0e82e2a423602082015260208152614231565b61483f6040805167837992acf1b3a5ed602082015260208152614231565b61484761451f565b90565b61490b91849161486e604080516711efc7986baba268602082015260208152614231565b61488c6040805167655f56fe3993760f602082015260208152614231565b6148aa6040805167c4e5d2944426de5b602082015260208152614231565b816148b5828561447e565b118015614a84575b80614a5b575b15614a4b57505b6148e860408051671eca591d6141e7c0602082015260208152614231565b61490660408051677fba7093c473cca2602082015260208152614231565b61432c565b9061492a60408051675bbdfff2517fcfc9602082015260208152614231565b61494860408051672340eb40a463604a602082015260208152614231565b61495182614558565b92614970604080516757765729e623d274602082015260208152614231565b61498e60408051676521a04c8f4e9a7c602082015260208152614231565b5f5b8381106149d757505050506149b9604080516717082129eda82c9d602082015260208152614231565b614847604080516725e579f1e409a701602082015260208152614231565b6001906149f86040805167ace9046350394626602082015260208152614231565b614a11611c8c611c86614a0b848761447e565b876145a7565b614a1b82886145a7565b52614a2681876145a7565b50614a45604080516797d6cc05a163fc53602082015260208152614231565b01614990565b614a5691508261447e565b6148ca565b50614a7d604080516701bfe5822d6748b760c61b602082015260208152614231565b60016148c3565b50614aa6604080516703f451a2293e1f6f60c51b602082015260208152614231565b5f6148bd565b845483526001948501948794506020909301920161474a565b908060209392818452848401375f828201840152601f01601f1916010190565b5f198114613fa45760010190565b92909192614b1560408051676d7ac561ca34e699602082015260208152614231565b614b3360408051671b0a7dd55d6d8878602082015260208152614231565b614b51604080516766bf33e72cc69263602082015260208152614231565b6103e8821115614b79576146bc6040805167b09d2ddf680c6c95602082015260208152614231565b614b97604080516775844433478a8626602082015260208152614231565b614bb5604080516758aaae97fea3c2d4602082015260208152614231565b614bd3604080516752a9191658e89bb8602082015260208152614231565b80831015614c0857614bf96040805167c49bbae69cd859de602082015260208152614231565b637b1cb04d60e11b5f5260045ffd5b620151808091614c2c60408051675ede52b95afe1623602082015260208152614231565b614c4a6040805167d65c73516a47d49a602082015260208152614231565b614c6860408051671219a1d2cb4c9554602082015260208152614231565b0492614c88604080516703f8897ce2c0b63e602082015260208152614231565b614ca6604080516701ec6b578a806357602082015260208152614231565b0490614cc66040805167d73fc236694b964b602082015260208152614231565b614ce460408051675266b52a273a5731602082015260208152614231565b5f90614d046040805167babc31a6df63f32d602082015260208152614231565b614d2260408051678bc648d99a647819602082015260208152614231565b835b838111156152b85750614d4b6040805167b0a325e55ea92639602082015260208152614231565b614d6960408051671fc32011f5e68e71602082015260208152614231565b818510614dcf575050505050614d9360408051670265583d80bf340c602082015260208152614231565b614db16040805167e7f8ef6c07c54bee602082015260208152614231565b61483f6040805167ff1d7de4f3bfa6ea602082015260208152614231565b614e8b918591614df360408051674069dcb8d72a94b0602082015260208152614231565b614e11604080516701e66cd0bd3d3934602082015260208152614231565b614e2f6040805167a7da69e771b7fb5c602082015260208152614231565b81614e3a828561447e565b118015615290575b80615267575b1561525757505b614e6d604080516734bbb5b82161266c602082015260208152614231565b6149066040805167073f409e6d4d8660602082015260208152614231565b91614eaa6040805167604045636832f9cf602082015260208152614231565b614ec860408051676177ec24e3d199d3602082015260208152614231565b614ed183614558565b90614ef0604080516754c929be05460c30602082015260208152614231565b614f0e6040805167250f6f5b2af9a915602082015260208152614231565b5f90614f2e6040805167cfd2a6cdb52d528d602082015260208152614231565b614f4c6040805167044f36a9add27647602082015260208152614231565b5f90614f6c6040805167a280a76fa9a68888602082015260208152614231565b614f8a6040805167aa5540579d589df4602082015260208152614231565b848111158061524e575b1561520b57614fba604080949394516788c3820740e9f75d602082015260208152614231565b614fd860408051671c81bda81f46f0c7602082015260208152614231565b805f52600460205260405f20916040519283602082549182815201915f5260205f20905f905b8082106151f25750505083615014910384614231565b6150326040805167751ea8bae0552328602082015260208152614231565b615050604080516776e4cbfbd73f9c21602082015260208152614231565b5f935b83518510806151e9575b156151b95761508060408051673d31e389cc4df02f602082015260208152614231565b61509e6040805167b0c40fe0dc3a98e7602082015260208152614231565b8882106151915760018080926150c860408051674b46843f5a61e9da602082015260208152614231565b6150e66040805167b1487d696f873244602082015260208152614231565b6150f6611c8c611c868a8a6145a7565b615100828b6145a7565b5261510b818a6145a7565b5061512a60408051675fa99a6ab6ae89e5602082015260208152614231565b01925b61514b60408051672a31ba7f255ab041602082015260208152614231565b6151696040805167fbc5897d9ec78fde602082015260208152614231565b0194615189604080516784e2319efe9043a8602082015260208152614231565b019390615053565b90600180916151b4604080516724ed4ca197ecbc10602082015260208152614231565b61512d565b93509491506001906151df6040805167391bf09766bf4479602082015260208152614231565b0190939190614f8a565b5087811061505d565b8254845260209093019260019283019290910190614ffe565b505050925050506152306040805167b40114bc25e70ca1602082015260208152614231565b6148476040805167a179664623036109602082015260208152614231565b50858210614f94565b61526291508261447e565b614e4f565b5061528960408051673fdd4f3aabbe98eb60c21b602082015260208152614231565b6001614e48565b506152b260408051672be201572b7561af60c21b602082015260208152614231565b5f614e42565b916152f06001916152dd6040805167e09873e196de660a602082015260208152614231565b845f52600460205260405f20549061447e565b9261530f604080516744d1e356e3d34f3f602082015260208152614231565b01614d24565b9190916153366040805167f5fc78f7d3d4f08d602082015260208152614231565b6153546040805167de87678812ad99a5602082015260208152614231565b6153726040805167acd300594840fa40602082015260208152614231565b6103e882111561539a576146bc6040805167eec1224995bada5a602082015260208152614231565b6153b860408051671ff5e8a1a79f8ffe602082015260208152614231565b6153d66040805167bdb78dae7dfb2f2d602082015260208152614231565b6153f460408051679d0faf34ef0d393d602082015260208152614231565b5f52600360205260405f2090604051808360208295549384815201905f5260205f20925f5b81811061576557505061542e92500383614231565b61544c6040805167ec8803f768122e36602082015260208152614231565b61546a6040805167cf995562e906ca1e602082015260208152614231565b81519061548b60408051674fc96a6c99b83dfc602082015260208152614231565b6154a96040805167b3027a0501451412602082015260208152614231565b81841061550e57505050506154d26040805167d0eb3c57fbaeec61602082015260208152614231565b6154f06040805167d35206eb865c9185602082015260208152614231565b61483f60408051674d3b66731eda7de6602082015260208152614231565b6155ca9184916155326040805167731792d7f9cf2958602082015260208152614231565b61555060408051679b63f25994f6f944602082015260208152614231565b61556e6040805167487615a0b75f2d20602082015260208152614231565b81615579828561447e565b11801561573d575b80615714575b1561570457505b6155ac604080516739687a556eb9e82c602082015260208152614231565b6149066040805167bd24b60c2486d9e2602082015260208152614231565b906155e96040805167ebd571cb71ac0e11602082015260208152614231565b6156076040805167e4b49e96a2738a4e602082015260208152614231565b61561082614558565b9261562f60408051674288868599349d8b602082015260208152614231565b61564d60408051678ba3e63e2b6f3e1f602082015260208152614231565b5f5b838110615696575050505061567860408051672a6d90b2e371c0e4602082015260208152614231565b6148476040805167e651ebf8c0c72c0f602082015260208152614231565b6001906156b76040805167cca0dac1e2871461602082015260208152614231565b6156ca611c8c611c86614a0b848761447e565b6156d482886145a7565b526156df81876145a7565b506156fe6040805167ee16127b2477b772602082015260208152614231565b0161564f565b61570f91508261447e565b61558e565b506157366040805167260fc90b6d829f8b60c01b602082015260208152614231565b6001615587565b5061575f604080516764973134ecabca9d60c01b602082015260208152614231565b5f615581565b8454835260019485019487945060209093019201615419565b60025f516020615ee75f395f51905f5254146157a75760025f516020615ee75f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b60ff5f516020615ec75f395f51905f5254166157ce57565b63d93c066560e01b5f5260045ffd5b335f9081527f49d7e8cdc094c5050b7beeb12b1261576ee8ac7033b98e9379ac751a1a95e0c1602052604090205460ff161561581557565b63e2517d3f60e01b5f52336004527ff996da754c790e95d5c7ca3330cfcad529487fe9d1d8edb7afc65076fdf9adb460245260445ffd5b335f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff161561588457565b63e2517d3f60e01b5f52336004527fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177560245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16156158f357565b63e2517d3f60e01b5f52336004525f60245260445ffd5b5f8181525f516020615ea75f395f51905f526020908152604080832033845290915290205460ff161561593a5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f9060033d1161595c57565b905060045f803e5f5160e01c90565b5f60443d10614847576040513d600319016004823e8051913d60248401116001600160401b038411176159d757828201928351916001600160401b0383116159cf573d840160031901858401602001116159cf575061484792910160200190614231565b949350505050565b92915050565b906080614847926040815260156040820152747570646174654d65726368616e744d65747269637360581b606082015281602082015201906142d0565b3d15615a44573d90615a2b82614252565b91615a396040519384614231565b82523d5f602084013e565b606090565b90608061484792604081526011604082015270757064617465506572666f726d616e636560781b606082015281602082015201906142d0565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16615b19576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f516020615e475f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff16615b19576001600160a01b03165f8181527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c60205260408120805460ff191660011790553391907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775905f516020615e475f395f51905f529080a4600190565b6001600160a01b0381165f9081527f49d7e8cdc094c5050b7beeb12b1261576ee8ac7033b98e9379ac751a1a95e0c1602052604090205460ff16615b19576001600160a01b03165f8181527f49d7e8cdc094c5050b7beeb12b1261576ee8ac7033b98e9379ac751a1a95e0c160205260408120805460ff191660011790553391907ff996da754c790e95d5c7ca3330cfcad529487fe9d1d8edb7afc65076fdf9adb4905f516020615e475f395f51905f529080a4600190565b5f8181525f516020615ea75f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16615d1b575f8181525f516020615ea75f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291905f516020615e475f395f51905f529080a4600190565b50505f90565b5f8181525f516020615ea75f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615615d1b575f8181525f516020615ea75f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff5f516020615f075f395f51905f525460401c1615615dd957565b631afcd79f60e31b5f5260045ffd5b90615e0c5750805115615dfd57602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615e3d575b615e1d575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615e1556fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d0e555162ce99b75ac3c2ee9036bdad63aaa0c2b9d690e5a232b3c20bbdda5ad6360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122000af690b43b537280360cd5ef9ff379d66b9abf41c83ddde28033b664fe18d1064736f6c634300081c0033",
1586
+ "linkReferences": {},
1587
+ "deployedLinkReferences": {}
1588
+ }