@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,1118 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ResidualCalculator",
4
+ "sourceName": "contracts/ResidualCalculator.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
+ {
51
+ "internalType": "address",
52
+ "name": "implementation",
53
+ "type": "address"
54
+ }
55
+ ],
56
+ "name": "ERC1967InvalidImplementation",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [],
61
+ "name": "ERC1967NonPayable",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [],
66
+ "name": "FailedCall",
67
+ "type": "error"
68
+ },
69
+ {
70
+ "inputs": [
71
+ {
72
+ "internalType": "uint256",
73
+ "name": "rate",
74
+ "type": "uint256"
75
+ }
76
+ ],
77
+ "name": "InvalidFeeRate",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "InvalidInitialization",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [],
87
+ "name": "InvalidMerchantId",
88
+ "type": "error"
89
+ },
90
+ {
91
+ "inputs": [],
92
+ "name": "InvalidTierConfiguration",
93
+ "type": "error"
94
+ },
95
+ {
96
+ "inputs": [],
97
+ "name": "InvalidTransactionAmount",
98
+ "type": "error"
99
+ },
100
+ {
101
+ "inputs": [],
102
+ "name": "LookbackPeriodExceeded",
103
+ "type": "error"
104
+ },
105
+ {
106
+ "inputs": [
107
+ {
108
+ "internalType": "bytes32",
109
+ "name": "merchantId",
110
+ "type": "bytes32"
111
+ }
112
+ ],
113
+ "name": "MerchantNotConfigured",
114
+ "type": "error"
115
+ },
116
+ {
117
+ "inputs": [],
118
+ "name": "NotInitializing",
119
+ "type": "error"
120
+ },
121
+ {
122
+ "inputs": [],
123
+ "name": "UUPSUnauthorizedCallContext",
124
+ "type": "error"
125
+ },
126
+ {
127
+ "inputs": [
128
+ {
129
+ "internalType": "bytes32",
130
+ "name": "slot",
131
+ "type": "bytes32"
132
+ }
133
+ ],
134
+ "name": "UUPSUnsupportedProxiableUUID",
135
+ "type": "error"
136
+ },
137
+ {
138
+ "anonymous": false,
139
+ "inputs": [
140
+ {
141
+ "indexed": true,
142
+ "internalType": "bytes32",
143
+ "name": "merchantId",
144
+ "type": "bytes32"
145
+ },
146
+ {
147
+ "indexed": false,
148
+ "internalType": "string",
149
+ "name": "anomalyType",
150
+ "type": "string"
151
+ },
152
+ {
153
+ "indexed": false,
154
+ "internalType": "int256",
155
+ "name": "amount",
156
+ "type": "int256"
157
+ }
158
+ ],
159
+ "name": "AnomalyDetected",
160
+ "type": "event"
161
+ },
162
+ {
163
+ "anonymous": false,
164
+ "inputs": [
165
+ {
166
+ "indexed": true,
167
+ "internalType": "bytes32",
168
+ "name": "companyId",
169
+ "type": "bytes32"
170
+ },
171
+ {
172
+ "indexed": false,
173
+ "internalType": "string",
174
+ "name": "companyName",
175
+ "type": "string"
176
+ },
177
+ {
178
+ "indexed": false,
179
+ "internalType": "string",
180
+ "name": "templateVersion",
181
+ "type": "string"
182
+ }
183
+ ],
184
+ "name": "CompanyConfigured",
185
+ "type": "event"
186
+ },
187
+ {
188
+ "anonymous": false,
189
+ "inputs": [
190
+ {
191
+ "components": [
192
+ {
193
+ "internalType": "uint256",
194
+ "name": "baseRateBps",
195
+ "type": "uint256"
196
+ },
197
+ {
198
+ "internalType": "uint256",
199
+ "name": "volumeTier1",
200
+ "type": "uint256"
201
+ },
202
+ {
203
+ "internalType": "uint256",
204
+ "name": "volumeTier2",
205
+ "type": "uint256"
206
+ },
207
+ {
208
+ "internalType": "uint256",
209
+ "name": "tier1RateBps",
210
+ "type": "uint256"
211
+ },
212
+ {
213
+ "internalType": "uint256",
214
+ "name": "tier2RateBps",
215
+ "type": "uint256"
216
+ },
217
+ {
218
+ "internalType": "uint256",
219
+ "name": "tier3RateBps",
220
+ "type": "uint256"
221
+ }
222
+ ],
223
+ "indexed": false,
224
+ "internalType": "struct ResidualCalculator.FeeStructure",
225
+ "name": "newStructure",
226
+ "type": "tuple"
227
+ }
228
+ ],
229
+ "name": "DefaultFeeStructureUpdated",
230
+ "type": "event"
231
+ },
232
+ {
233
+ "anonymous": false,
234
+ "inputs": [
235
+ {
236
+ "indexed": true,
237
+ "internalType": "bytes32",
238
+ "name": "merchantId",
239
+ "type": "bytes32"
240
+ },
241
+ {
242
+ "components": [
243
+ {
244
+ "internalType": "uint256",
245
+ "name": "baseRateBps",
246
+ "type": "uint256"
247
+ },
248
+ {
249
+ "internalType": "uint256",
250
+ "name": "volumeTier1",
251
+ "type": "uint256"
252
+ },
253
+ {
254
+ "internalType": "uint256",
255
+ "name": "volumeTier2",
256
+ "type": "uint256"
257
+ },
258
+ {
259
+ "internalType": "uint256",
260
+ "name": "tier1RateBps",
261
+ "type": "uint256"
262
+ },
263
+ {
264
+ "internalType": "uint256",
265
+ "name": "tier2RateBps",
266
+ "type": "uint256"
267
+ },
268
+ {
269
+ "internalType": "uint256",
270
+ "name": "tier3RateBps",
271
+ "type": "uint256"
272
+ }
273
+ ],
274
+ "indexed": false,
275
+ "internalType": "struct ResidualCalculator.FeeStructure",
276
+ "name": "newStructure",
277
+ "type": "tuple"
278
+ }
279
+ ],
280
+ "name": "FeeStructureUpdated",
281
+ "type": "event"
282
+ },
283
+ {
284
+ "anonymous": false,
285
+ "inputs": [
286
+ {
287
+ "indexed": false,
288
+ "internalType": "uint64",
289
+ "name": "version",
290
+ "type": "uint64"
291
+ }
292
+ ],
293
+ "name": "Initialized",
294
+ "type": "event"
295
+ },
296
+ {
297
+ "anonymous": false,
298
+ "inputs": [
299
+ {
300
+ "indexed": true,
301
+ "internalType": "bytes32",
302
+ "name": "merchantId",
303
+ "type": "bytes32"
304
+ },
305
+ {
306
+ "indexed": false,
307
+ "internalType": "uint256",
308
+ "name": "transactionAmount",
309
+ "type": "uint256"
310
+ },
311
+ {
312
+ "indexed": false,
313
+ "internalType": "uint256",
314
+ "name": "grossResidual",
315
+ "type": "uint256"
316
+ },
317
+ {
318
+ "indexed": false,
319
+ "internalType": "uint256",
320
+ "name": "appliedRateBps",
321
+ "type": "uint256"
322
+ }
323
+ ],
324
+ "name": "ResidualCalculated",
325
+ "type": "event"
326
+ },
327
+ {
328
+ "anonymous": false,
329
+ "inputs": [
330
+ {
331
+ "indexed": true,
332
+ "internalType": "bytes32",
333
+ "name": "role",
334
+ "type": "bytes32"
335
+ },
336
+ {
337
+ "indexed": true,
338
+ "internalType": "bytes32",
339
+ "name": "previousAdminRole",
340
+ "type": "bytes32"
341
+ },
342
+ {
343
+ "indexed": true,
344
+ "internalType": "bytes32",
345
+ "name": "newAdminRole",
346
+ "type": "bytes32"
347
+ }
348
+ ],
349
+ "name": "RoleAdminChanged",
350
+ "type": "event"
351
+ },
352
+ {
353
+ "anonymous": false,
354
+ "inputs": [
355
+ {
356
+ "indexed": true,
357
+ "internalType": "bytes32",
358
+ "name": "role",
359
+ "type": "bytes32"
360
+ },
361
+ {
362
+ "indexed": true,
363
+ "internalType": "address",
364
+ "name": "account",
365
+ "type": "address"
366
+ },
367
+ {
368
+ "indexed": true,
369
+ "internalType": "address",
370
+ "name": "sender",
371
+ "type": "address"
372
+ }
373
+ ],
374
+ "name": "RoleGranted",
375
+ "type": "event"
376
+ },
377
+ {
378
+ "anonymous": false,
379
+ "inputs": [
380
+ {
381
+ "indexed": true,
382
+ "internalType": "bytes32",
383
+ "name": "role",
384
+ "type": "bytes32"
385
+ },
386
+ {
387
+ "indexed": true,
388
+ "internalType": "address",
389
+ "name": "account",
390
+ "type": "address"
391
+ },
392
+ {
393
+ "indexed": true,
394
+ "internalType": "address",
395
+ "name": "sender",
396
+ "type": "address"
397
+ }
398
+ ],
399
+ "name": "RoleRevoked",
400
+ "type": "event"
401
+ },
402
+ {
403
+ "anonymous": false,
404
+ "inputs": [
405
+ {
406
+ "indexed": true,
407
+ "internalType": "address",
408
+ "name": "implementation",
409
+ "type": "address"
410
+ }
411
+ ],
412
+ "name": "Upgraded",
413
+ "type": "event"
414
+ },
415
+ {
416
+ "inputs": [],
417
+ "name": "ADMIN_ROLE",
418
+ "outputs": [
419
+ {
420
+ "internalType": "bytes32",
421
+ "name": "",
422
+ "type": "bytes32"
423
+ }
424
+ ],
425
+ "stateMutability": "view",
426
+ "type": "function"
427
+ },
428
+ {
429
+ "inputs": [],
430
+ "name": "CONFIG_ROLE",
431
+ "outputs": [
432
+ {
433
+ "internalType": "bytes32",
434
+ "name": "",
435
+ "type": "bytes32"
436
+ }
437
+ ],
438
+ "stateMutability": "view",
439
+ "type": "function"
440
+ },
441
+ {
442
+ "inputs": [],
443
+ "name": "DEFAULT_ADMIN_ROLE",
444
+ "outputs": [
445
+ {
446
+ "internalType": "bytes32",
447
+ "name": "",
448
+ "type": "bytes32"
449
+ }
450
+ ],
451
+ "stateMutability": "view",
452
+ "type": "function"
453
+ },
454
+ {
455
+ "inputs": [],
456
+ "name": "UPGRADE_INTERFACE_VERSION",
457
+ "outputs": [
458
+ {
459
+ "internalType": "string",
460
+ "name": "",
461
+ "type": "string"
462
+ }
463
+ ],
464
+ "stateMutability": "view",
465
+ "type": "function"
466
+ },
467
+ {
468
+ "inputs": [
469
+ {
470
+ "internalType": "bytes32",
471
+ "name": "merchantId",
472
+ "type": "bytes32"
473
+ },
474
+ {
475
+ "internalType": "uint256",
476
+ "name": "lookbackDays",
477
+ "type": "uint256"
478
+ }
479
+ ],
480
+ "name": "calculateAverageResidualRate",
481
+ "outputs": [
482
+ {
483
+ "internalType": "uint256",
484
+ "name": "averageRateBps",
485
+ "type": "uint256"
486
+ }
487
+ ],
488
+ "stateMutability": "view",
489
+ "type": "function"
490
+ },
491
+ {
492
+ "inputs": [
493
+ {
494
+ "internalType": "uint256",
495
+ "name": "transactionAmount",
496
+ "type": "uint256"
497
+ },
498
+ {
499
+ "internalType": "uint256",
500
+ "name": "feePercentageBps",
501
+ "type": "uint256"
502
+ }
503
+ ],
504
+ "name": "calculateGrossResidual",
505
+ "outputs": [
506
+ {
507
+ "internalType": "uint256",
508
+ "name": "grossResidual",
509
+ "type": "uint256"
510
+ }
511
+ ],
512
+ "stateMutability": "pure",
513
+ "type": "function"
514
+ },
515
+ {
516
+ "inputs": [
517
+ {
518
+ "internalType": "bytes32",
519
+ "name": "merchantId",
520
+ "type": "bytes32"
521
+ },
522
+ {
523
+ "internalType": "uint256",
524
+ "name": "transactionAmount",
525
+ "type": "uint256"
526
+ }
527
+ ],
528
+ "name": "calculateTieredResidual",
529
+ "outputs": [
530
+ {
531
+ "components": [
532
+ {
533
+ "internalType": "uint256",
534
+ "name": "grossResidual",
535
+ "type": "uint256"
536
+ },
537
+ {
538
+ "internalType": "uint256",
539
+ "name": "appliedRateBps",
540
+ "type": "uint256"
541
+ },
542
+ {
543
+ "internalType": "uint256",
544
+ "name": "tier",
545
+ "type": "uint256"
546
+ },
547
+ {
548
+ "internalType": "bool",
549
+ "name": "isValid",
550
+ "type": "bool"
551
+ },
552
+ {
553
+ "internalType": "string",
554
+ "name": "validationIssue",
555
+ "type": "string"
556
+ }
557
+ ],
558
+ "internalType": "struct ResidualCalculator.ResidualResult",
559
+ "name": "result",
560
+ "type": "tuple"
561
+ }
562
+ ],
563
+ "stateMutability": "view",
564
+ "type": "function"
565
+ },
566
+ {
567
+ "inputs": [],
568
+ "name": "companyConfig",
569
+ "outputs": [
570
+ {
571
+ "internalType": "bytes32",
572
+ "name": "companyId",
573
+ "type": "bytes32"
574
+ },
575
+ {
576
+ "internalType": "uint256",
577
+ "name": "deploymentTimestamp",
578
+ "type": "uint256"
579
+ },
580
+ {
581
+ "internalType": "address",
582
+ "name": "deployer",
583
+ "type": "address"
584
+ },
585
+ {
586
+ "internalType": "bool",
587
+ "name": "isActive",
588
+ "type": "bool"
589
+ },
590
+ {
591
+ "internalType": "string",
592
+ "name": "companyName",
593
+ "type": "string"
594
+ },
595
+ {
596
+ "internalType": "string",
597
+ "name": "templateVersion",
598
+ "type": "string"
599
+ }
600
+ ],
601
+ "stateMutability": "view",
602
+ "type": "function"
603
+ },
604
+ {
605
+ "inputs": [
606
+ {
607
+ "internalType": "bytes32",
608
+ "name": "merchantId",
609
+ "type": "bytes32"
610
+ }
611
+ ],
612
+ "name": "detectAnomalies",
613
+ "outputs": [
614
+ {
615
+ "components": [
616
+ {
617
+ "internalType": "bytes32",
618
+ "name": "merchantId",
619
+ "type": "bytes32"
620
+ },
621
+ {
622
+ "internalType": "string",
623
+ "name": "anomalyType",
624
+ "type": "string"
625
+ },
626
+ {
627
+ "internalType": "uint256",
628
+ "name": "detectedAt",
629
+ "type": "uint256"
630
+ },
631
+ {
632
+ "internalType": "int256",
633
+ "name": "amount",
634
+ "type": "int256"
635
+ },
636
+ {
637
+ "internalType": "string",
638
+ "name": "description",
639
+ "type": "string"
640
+ }
641
+ ],
642
+ "internalType": "struct ResidualCalculator.Anomaly[]",
643
+ "name": "anomalies",
644
+ "type": "tuple[]"
645
+ }
646
+ ],
647
+ "stateMutability": "view",
648
+ "type": "function"
649
+ },
650
+ {
651
+ "inputs": [
652
+ {
653
+ "internalType": "bytes32",
654
+ "name": "repId",
655
+ "type": "bytes32"
656
+ }
657
+ ],
658
+ "name": "forecastNextMonthResiduals",
659
+ "outputs": [
660
+ {
661
+ "internalType": "uint256",
662
+ "name": "forecastedAmount",
663
+ "type": "uint256"
664
+ }
665
+ ],
666
+ "stateMutability": "view",
667
+ "type": "function"
668
+ },
669
+ {
670
+ "inputs": [],
671
+ "name": "getDefaultFeeStructure",
672
+ "outputs": [
673
+ {
674
+ "components": [
675
+ {
676
+ "internalType": "uint256",
677
+ "name": "baseRateBps",
678
+ "type": "uint256"
679
+ },
680
+ {
681
+ "internalType": "uint256",
682
+ "name": "volumeTier1",
683
+ "type": "uint256"
684
+ },
685
+ {
686
+ "internalType": "uint256",
687
+ "name": "volumeTier2",
688
+ "type": "uint256"
689
+ },
690
+ {
691
+ "internalType": "uint256",
692
+ "name": "tier1RateBps",
693
+ "type": "uint256"
694
+ },
695
+ {
696
+ "internalType": "uint256",
697
+ "name": "tier2RateBps",
698
+ "type": "uint256"
699
+ },
700
+ {
701
+ "internalType": "uint256",
702
+ "name": "tier3RateBps",
703
+ "type": "uint256"
704
+ }
705
+ ],
706
+ "internalType": "struct ResidualCalculator.FeeStructure",
707
+ "name": "",
708
+ "type": "tuple"
709
+ }
710
+ ],
711
+ "stateMutability": "view",
712
+ "type": "function"
713
+ },
714
+ {
715
+ "inputs": [
716
+ {
717
+ "internalType": "bytes32",
718
+ "name": "merchantId",
719
+ "type": "bytes32"
720
+ }
721
+ ],
722
+ "name": "getMerchantFeeStructure",
723
+ "outputs": [
724
+ {
725
+ "components": [
726
+ {
727
+ "internalType": "uint256",
728
+ "name": "baseRateBps",
729
+ "type": "uint256"
730
+ },
731
+ {
732
+ "internalType": "uint256",
733
+ "name": "volumeTier1",
734
+ "type": "uint256"
735
+ },
736
+ {
737
+ "internalType": "uint256",
738
+ "name": "volumeTier2",
739
+ "type": "uint256"
740
+ },
741
+ {
742
+ "internalType": "uint256",
743
+ "name": "tier1RateBps",
744
+ "type": "uint256"
745
+ },
746
+ {
747
+ "internalType": "uint256",
748
+ "name": "tier2RateBps",
749
+ "type": "uint256"
750
+ },
751
+ {
752
+ "internalType": "uint256",
753
+ "name": "tier3RateBps",
754
+ "type": "uint256"
755
+ }
756
+ ],
757
+ "internalType": "struct ResidualCalculator.FeeStructure",
758
+ "name": "",
759
+ "type": "tuple"
760
+ }
761
+ ],
762
+ "stateMutability": "view",
763
+ "type": "function"
764
+ },
765
+ {
766
+ "inputs": [
767
+ {
768
+ "internalType": "bytes32",
769
+ "name": "role",
770
+ "type": "bytes32"
771
+ }
772
+ ],
773
+ "name": "getRoleAdmin",
774
+ "outputs": [
775
+ {
776
+ "internalType": "bytes32",
777
+ "name": "",
778
+ "type": "bytes32"
779
+ }
780
+ ],
781
+ "stateMutability": "view",
782
+ "type": "function"
783
+ },
784
+ {
785
+ "inputs": [
786
+ {
787
+ "internalType": "bytes32",
788
+ "name": "role",
789
+ "type": "bytes32"
790
+ },
791
+ {
792
+ "internalType": "address",
793
+ "name": "account",
794
+ "type": "address"
795
+ }
796
+ ],
797
+ "name": "grantRole",
798
+ "outputs": [],
799
+ "stateMutability": "nonpayable",
800
+ "type": "function"
801
+ },
802
+ {
803
+ "inputs": [
804
+ {
805
+ "internalType": "bytes32",
806
+ "name": "role",
807
+ "type": "bytes32"
808
+ },
809
+ {
810
+ "internalType": "address",
811
+ "name": "account",
812
+ "type": "address"
813
+ }
814
+ ],
815
+ "name": "hasRole",
816
+ "outputs": [
817
+ {
818
+ "internalType": "bool",
819
+ "name": "",
820
+ "type": "bool"
821
+ }
822
+ ],
823
+ "stateMutability": "view",
824
+ "type": "function"
825
+ },
826
+ {
827
+ "inputs": [
828
+ {
829
+ "internalType": "address",
830
+ "name": "_admin",
831
+ "type": "address"
832
+ }
833
+ ],
834
+ "name": "initialize",
835
+ "outputs": [],
836
+ "stateMutability": "nonpayable",
837
+ "type": "function"
838
+ },
839
+ {
840
+ "inputs": [],
841
+ "name": "proxiableUUID",
842
+ "outputs": [
843
+ {
844
+ "internalType": "bytes32",
845
+ "name": "",
846
+ "type": "bytes32"
847
+ }
848
+ ],
849
+ "stateMutability": "view",
850
+ "type": "function"
851
+ },
852
+ {
853
+ "inputs": [
854
+ {
855
+ "internalType": "bytes32",
856
+ "name": "merchantId",
857
+ "type": "bytes32"
858
+ },
859
+ {
860
+ "internalType": "int256",
861
+ "name": "residual",
862
+ "type": "int256"
863
+ },
864
+ {
865
+ "internalType": "uint256",
866
+ "name": "rateBps",
867
+ "type": "uint256"
868
+ }
869
+ ],
870
+ "name": "recordResidualHistory",
871
+ "outputs": [],
872
+ "stateMutability": "nonpayable",
873
+ "type": "function"
874
+ },
875
+ {
876
+ "inputs": [
877
+ {
878
+ "internalType": "bytes32",
879
+ "name": "role",
880
+ "type": "bytes32"
881
+ },
882
+ {
883
+ "internalType": "address",
884
+ "name": "callerConfirmation",
885
+ "type": "address"
886
+ }
887
+ ],
888
+ "name": "renounceRole",
889
+ "outputs": [],
890
+ "stateMutability": "nonpayable",
891
+ "type": "function"
892
+ },
893
+ {
894
+ "inputs": [
895
+ {
896
+ "internalType": "bytes32",
897
+ "name": "role",
898
+ "type": "bytes32"
899
+ },
900
+ {
901
+ "internalType": "address",
902
+ "name": "account",
903
+ "type": "address"
904
+ }
905
+ ],
906
+ "name": "revokeRole",
907
+ "outputs": [],
908
+ "stateMutability": "nonpayable",
909
+ "type": "function"
910
+ },
911
+ {
912
+ "inputs": [
913
+ {
914
+ "internalType": "bytes32",
915
+ "name": "_companyId",
916
+ "type": "bytes32"
917
+ },
918
+ {
919
+ "internalType": "string",
920
+ "name": "_companyName",
921
+ "type": "string"
922
+ },
923
+ {
924
+ "internalType": "string",
925
+ "name": "_templateVersion",
926
+ "type": "string"
927
+ }
928
+ ],
929
+ "name": "setCompanyConfig",
930
+ "outputs": [],
931
+ "stateMutability": "nonpayable",
932
+ "type": "function"
933
+ },
934
+ {
935
+ "inputs": [
936
+ {
937
+ "components": [
938
+ {
939
+ "internalType": "uint256",
940
+ "name": "baseRateBps",
941
+ "type": "uint256"
942
+ },
943
+ {
944
+ "internalType": "uint256",
945
+ "name": "volumeTier1",
946
+ "type": "uint256"
947
+ },
948
+ {
949
+ "internalType": "uint256",
950
+ "name": "volumeTier2",
951
+ "type": "uint256"
952
+ },
953
+ {
954
+ "internalType": "uint256",
955
+ "name": "tier1RateBps",
956
+ "type": "uint256"
957
+ },
958
+ {
959
+ "internalType": "uint256",
960
+ "name": "tier2RateBps",
961
+ "type": "uint256"
962
+ },
963
+ {
964
+ "internalType": "uint256",
965
+ "name": "tier3RateBps",
966
+ "type": "uint256"
967
+ }
968
+ ],
969
+ "internalType": "struct ResidualCalculator.FeeStructure",
970
+ "name": "structure",
971
+ "type": "tuple"
972
+ }
973
+ ],
974
+ "name": "setDefaultFeeStructure",
975
+ "outputs": [],
976
+ "stateMutability": "nonpayable",
977
+ "type": "function"
978
+ },
979
+ {
980
+ "inputs": [
981
+ {
982
+ "internalType": "bytes32",
983
+ "name": "merchantId",
984
+ "type": "bytes32"
985
+ },
986
+ {
987
+ "components": [
988
+ {
989
+ "internalType": "uint256",
990
+ "name": "baseRateBps",
991
+ "type": "uint256"
992
+ },
993
+ {
994
+ "internalType": "uint256",
995
+ "name": "volumeTier1",
996
+ "type": "uint256"
997
+ },
998
+ {
999
+ "internalType": "uint256",
1000
+ "name": "volumeTier2",
1001
+ "type": "uint256"
1002
+ },
1003
+ {
1004
+ "internalType": "uint256",
1005
+ "name": "tier1RateBps",
1006
+ "type": "uint256"
1007
+ },
1008
+ {
1009
+ "internalType": "uint256",
1010
+ "name": "tier2RateBps",
1011
+ "type": "uint256"
1012
+ },
1013
+ {
1014
+ "internalType": "uint256",
1015
+ "name": "tier3RateBps",
1016
+ "type": "uint256"
1017
+ }
1018
+ ],
1019
+ "internalType": "struct ResidualCalculator.FeeStructure",
1020
+ "name": "structure",
1021
+ "type": "tuple"
1022
+ }
1023
+ ],
1024
+ "name": "setMerchantFeeStructure",
1025
+ "outputs": [],
1026
+ "stateMutability": "nonpayable",
1027
+ "type": "function"
1028
+ },
1029
+ {
1030
+ "inputs": [
1031
+ {
1032
+ "internalType": "bytes4",
1033
+ "name": "interfaceId",
1034
+ "type": "bytes4"
1035
+ }
1036
+ ],
1037
+ "name": "supportsInterface",
1038
+ "outputs": [
1039
+ {
1040
+ "internalType": "bool",
1041
+ "name": "",
1042
+ "type": "bool"
1043
+ }
1044
+ ],
1045
+ "stateMutability": "view",
1046
+ "type": "function"
1047
+ },
1048
+ {
1049
+ "inputs": [
1050
+ {
1051
+ "internalType": "bytes32",
1052
+ "name": "merchantId",
1053
+ "type": "bytes32"
1054
+ },
1055
+ {
1056
+ "internalType": "uint256",
1057
+ "name": "volumeIncrease",
1058
+ "type": "uint256"
1059
+ }
1060
+ ],
1061
+ "name": "updateMerchantVolume",
1062
+ "outputs": [],
1063
+ "stateMutability": "nonpayable",
1064
+ "type": "function"
1065
+ },
1066
+ {
1067
+ "inputs": [
1068
+ {
1069
+ "internalType": "address",
1070
+ "name": "newImplementation",
1071
+ "type": "address"
1072
+ },
1073
+ {
1074
+ "internalType": "bytes",
1075
+ "name": "data",
1076
+ "type": "bytes"
1077
+ }
1078
+ ],
1079
+ "name": "upgradeToAndCall",
1080
+ "outputs": [],
1081
+ "stateMutability": "payable",
1082
+ "type": "function"
1083
+ },
1084
+ {
1085
+ "inputs": [
1086
+ {
1087
+ "internalType": "bytes32",
1088
+ "name": "merchantId",
1089
+ "type": "bytes32"
1090
+ },
1091
+ {
1092
+ "internalType": "uint256",
1093
+ "name": "feePercentageBps",
1094
+ "type": "uint256"
1095
+ }
1096
+ ],
1097
+ "name": "validateFeeStructure",
1098
+ "outputs": [
1099
+ {
1100
+ "internalType": "bool",
1101
+ "name": "isValid",
1102
+ "type": "bool"
1103
+ },
1104
+ {
1105
+ "internalType": "string",
1106
+ "name": "issue",
1107
+ "type": "string"
1108
+ }
1109
+ ],
1110
+ "stateMutability": "view",
1111
+ "type": "function"
1112
+ }
1113
+ ],
1114
+ "bytecode": "0x60a0806040523461011e57604061002b913060805267784678edc72014e1602082015260208152610122565b610049604080516701e8bb29a7d52b84602082015260208152610122565b6100676040805167157e4e914d5d2f4a602082015260208152610122565b5f5160206161145f395f51905f525460ff8160401c1661010f576002600160401b03196001600160401b038216016100b9575b604051615fba908161015a8239608051818181610750015261082e0152f35b6001600160401b0319166001600160401b039081175f5160206161145f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009a565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b601f909101601f19168101906001600160401b0382119082101761014557604052565b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146101c45780630dc23993146101bf578063248a9ca3146101ba5780632b5fb016146101b55780632f2ff15d146101b057806336568abe146101ab5780634f1ef286146101a657806352d1902d146101a157806356ff4f3d1461019c5780635943cd4c146101975780636296677314610192578063633861f01461018d578063661efcd31461018857806375b238fc146101835780638d85c3d41461017e57806391d1485414610179578063929555a114610174578063a217fddf1461016f578063a4d19feb1461016a578063a56240ba14610165578063ad3cb1cc14610160578063b612f3ab1461015b578063c4d66de814610156578063d547741f14610151578063dedec9021461014c578063e4b0b21b146101475763f1d21a0214610142575f80fd5b612fbd565b612f46565b612939565b6128ef565b612766565b612543565b6124fc565b6124c9565b61248f565b612475565b612437565b6123dc565b6123bb565b612381565b61184e565b6116ee565b61126d565b610b35565b6108a0565b61081c565b610702565b6105dd565b61058c565b61044f565b610410565b610240565b3461021a57602036600319011261021a5760043563ffffffff60e01b811680910361021a57602090637965db0b60e01b8114908115610209575b506040519015158152f35b6301ffc9a760e01b1490505f6101fe565b5f80fd5b60c090600319011261021a57600490565b60c090602319011261021a57602490565b3461021a5760c036600319011261021a577f562fd8620a4e720900cae1fbf0e7dd18bcedfbe235d4e93b2340d47bf4898b5561040b61027e3661021e565b61029c604080516782d25141b9e16aae602082015260208152610670565b6102a46148d9565b6102c2604080516733e96dff25fd8e58602082015260208152610670565b6102f0604051806102e26020820190676de4783d48b442a5602083019252565b0390601f1982018152610670565b610310604051806102e26020820190670521cbb9e4dc6214602083019252565b610330604051806102e2602082019067148af5125b7a1953602083019252565b61033981614a4c565b610359604051806102e260208201906722a2ebf870cb1b54602083019252565b80356006556020810135600755604081013560085560608101356009556080810135600a5560a0810135600b556103a6604051806102e26020820190677a2d6d75f8b32ce7602083019252565b6103c6604051806102e260208201906729d5359925d5e1fc602083019252565b6040519182918291909160a08060c083019480358452602081013560208501526040810135604085015260608101356060850152608081013560808501520135910152565b0390a1005b3461021a57602036600319011261021a5760206104476004355f525f516020615f455f395f51905f52602052600160405f20015490565b604051908152f35b3461021a57604036600319011261021a5760043561055c6105546024359261048b60408051677c67282253d764ee602082015260208152610670565b6104936148d9565b6104b160408051672b1009fb0344c533602082015260208152610670565b6104cf6040805167a04f2150c607d9df602082015260208152610670565b6104ef604051806102e260208201906703ce1a50363469b0602083019252565b61050f604051806102e2602082019067840f27d2851adee2602083019252565b61054762278d00420491610539604051806102e2602082019067ad70a786d8b0feac602083019252565b5f52600e60205260405f2090565b905f5260205260405f2090565b918254613023565b9055005b602435906001600160a01b038216820361021a57565b600435906001600160a01b038216820361021a57565b3461021a57604036600319011261021a576105db6004356105ab610560565b906105d66105d1825f525f516020615f455f395f51905f52602052600160405f20015490565b614a06565b6153bb565b005b3461021a57604036600319011261021a576004356105f9610560565b336001600160a01b03821603610612576105db91615450565b63334bd91960e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761065057604052565b610621565b60c081019081106001600160401b0382111761065057604052565b90601f801991011681019081106001600160401b0382111761065057604052565b604051906106a060c083610670565b565b604051906106a060a083610670565b6001600160401b03811161065057601f01601f191660200190565b9291926106d8826106b1565b916106e66040519384610670565b82948184528183011161021a578281602093845f960137010152565b604036600319011261021a57610716610576565b6024356001600160401b03811161021a573660238201121561021a576107469036906024816004013591016106cc565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163081149081156107fa575b506107eb576105db916107a26040805167d3296d2360f1f612602082015260208152610670565b6107aa614948565b6107c860408051675dab68ba2a1a2394602082015260208152610670565b6107e66040805167ade19e7ae8d540e9602082015260208152610670565b6154f0565b63703e46dd60e11b5f5260045ffd5b5f516020615f255f395f51905f52546001600160a01b0316141590505f61077b565b3461021a575f36600319011261021a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036107eb5760206040515f516020615f255f395f51905f528152f35b9181601f8401121561021a578235916001600160401b03831161021a576020838186019501011161021a57565b3461021a57606036600319011261021a576004356024356001600160401b03811161021a576108d3903690600401610873565b6044356001600160401b03811161021a576108f2903690600401610873565b9290610912604080516769021d700d82dae8602082015260208152610670565b61091a614948565b610938604080516741c1769e04a9cf58602082015260208152610670565b610958604051806102e26020820190670f7dd0ab9bc755a4602083019252565b610978604051806102e2602082019067e9309a7f9edf1f19602083019252565b610998604051806102e2602082019067510e2a860316e944602083019252565b600154156109cf576109c0604051806102e26020820190671ed22f09b8a218f4602083019252565b6308db0db560e11b5f5260045ffd5b7f5a4b9f27a26618330986254014b0a0081a144ab6878da8d57d4d1e176ce915bf93610ac791610a15604051806102e2602082019067a96e4ae893420a34602083019252565b610a35604051806102e26020820190675cf53f31906e7b76602083019252565b610a7b610a40610691565b88815242602082015233604082015260016060820152610a613688886106cc565b6080820152610a713685856106cc565b60a0820152613163565b610a9b604051806102e2602082019067ead7733755d42816602083019252565b610abb604051806102e2602082019067810036624469685b602083019252565b604051948594856131eb565b0390a2005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60c06080610b329360208452805160208501526020810151604085015260408101516060850152606081015115158285015201519160a0808201520190610acc565b90565b3461021a57604036600319011261021a57600435602435610b54613212565b50610b75604051806102e2602082019067e66c3c7c651597e9602083019252565b610b95604051806102e26020820190675f0952359ae65557602083019252565b610bb5604051806102e2602082019067d6a6fdd872a96d37602083019252565b81610be957610bda604051806102e260208201906749193239de07eb80602083019252565b637ccfccc960e11b5f5260045ffd5b610c09604051806102e260208201906771c0aebe569145dd602083019252565b610c29604051806102e2602082019067dcaa84c434b641a9602083019252565b610c49604051806102e2602082019067d0ffed63934becff602083019252565b80610c7d57610c6e604051806102e2602082019067e21cd91fcd73e8a7602083019252565b63cc36378360e01b5f5260045ffd5b6110ee91610ca1604051806102e2602082019067779968546289265a602083019252565b610cc1604051806102e2602082019067e35c23ed7a89fd3c602083019252565b610ce1604051806102e26020820190675a037c874408daea602083019252565b610cfb610cf6825f52600560205260405f2090565b613278565b610d1b604051806102e260208201906715ad6e586f49d192602083019252565b610d3b604051806102e2602082019067aa6d32517ea9dbed602083019252565b80516112435750610d62604051806102e2602082019067216f4e5c30d77358602083019252565b610d82604051806102e2602082019067c30f8373fff5de5d602083019252565b610e99610d8d61323c565b915b610daf604051806102e26020820190673ca7e5b94629281d602083019252565b610dcf604051806102e2602082019067e149b5b0184d52d4602083019252565b610def604051806102e26020820190674faa03e41893b814602083019252565b610e0f604051806102e2602082019067d46a50fadc2399b0602083019252565b610e2f604051806102e260208201906783e5ad2c4866329b602083019252565b610e4f604051806102e26020820190671b408d2afcef3467602083019252565b61054762278d00420491610e79604051806102e2602082019067d61f510db0792469602083019252565b610539604051806102e2602082019067f8a404fc21776039602083019252565b54610eba604051806102e2602082019067eb2cee89a45c2fa7602083019252565b610eda604051806102e2602082019067de1f789993d27595602083019252565b602082015181101561111c5750610f07604051806102e2602082019067894ea8c95cec6982602083019252565b610f27604051806102e2602082019067dffdafbaa36c9af0602083019252565b805190610f4a604051806102e2602082019067a495f5d470134fe9602083019252565b5f915b610f6d604051806102e2602082019067e4a3f2ac2ead56d5602083019252565b610f8d604051806102e26020820190671de7c7744e7a702c602083019252565b60408201518411156110f2575060a09150610fbe604051806102e26020820190678b8d649f96d96396602083019252565b610fde604051806102e2602082019067a6236e7200cb7f45602083019252565b0151611000604051806102e26020820190674436134080e47c6e602083019252565b6110dd6003915b611027604051806102e26020820190671609f829d6adf8d2602083019252565b611047604051806102e26020820190678d408c608dc9a69a602083019252565b61109c816110558187614710565b95611076604051806102e2602082019067d06dc5e618b5f998602083019252565b611096604051806102e260208201906778ead8fab6bd7afe602083019252565b86615693565b9390916110bf604051806102e260208201906766191fcacbec3685602083019252565b6110c76106a2565b9586526020860152604085015215156060840152565b608082015260405191829182610af0565b0390f35b6110dd9150611117604051806102e2602082019067dea74d71ddd41760602083019252565b611007565b61113c604051806102e2602082019067f432c1588def59d3602083019252565b61115c604051806102e260208201906717fb2d49c5308ca8602083019252565b604082015111156111d557611187604051806102e26020820190673926627e4e2202c2602083019252565b6111a7604051806102e2602082019067d3125178c3133f4b602083019252565b6060810151906111cd604051806102e260208201906751d7864d8a452133602083019252565b600191610f4d565b6111f5604051806102e2602082019067bc9fffb1c0647dc6602083019252565b611215604051806102e260208201906710f8520fd09b63c9602083019252565b60808101519061123b604051806102e26020820190673662c14ae807f545602083019252565b600291610f4d565b90610e9990611268604051806102e26020820190674bae5a4c00765cbe602083019252565b610d8f565b3461021a57606036600319011261021a57600435602435604435906112a66040805167bae87e6e12443599602082015260208152610670565b6112ae6148d9565b6112cc6040805167c4af58c9e8e18340602082015260208152610670565b6112ec604051806102e26020820190674521406e47180748602083019252565b61130c604051806102e26020820190674e6bf22698d794b6602083019252565b61132c604051806102e26020820190675f8d3a35b05f2486602083019252565b6064611340845f52600d60205260405f2090565b541061167357611366604051806102e2602082019067f51dc9233007efa5602083019252565b611386604051806102e2602082019067fc550cc3d94e06ef602083019252565b6113a6604051806102e2602082019067635cf47fd2f61b22602083019252565b60635f5b8181106115f95750506113f9906113d7604051806102e2602082019067fb4185e61f70f120602083019252565b6113f360636113ee865f52600d60205260405f2090565b6132d2565b90613030565b611419604051806102e2602082019067da50121ebe16724e602083019252565b611439604051806102e26020820190671012d0ed46e6a92e602083019252565b606461144d835f52600c60205260405f2090565b541061158d57611473604051806102e26020820190678ecd175a239739cb602083019252565b611493604051806102e260208201906721ae2fe0f1ac207a602083019252565b6114b3604051806102e2602082019067ed98a5a8dc538881602083019252565b60635f5b8181106114fa5750506113f360636113ee6105db946114ec604051806102e2602082019067c3579c227a732157602083019252565b5f52600c60205260405f2090565b60019061151d604051806102e26020820190675e98bb510e4f9ccd602083019252565b611567611551611547611538885f52600c60205260405f2090565b61154185613010565b906132d2565b90549060031b1c90565b6113f3836113ee895f52600c60205260405f2090565b611587604051806102e26020820190679f540d25b7f2e537602083019252565b016114b7565b6115f46105db926115b4604051806102e2602082019067ef350c50efacae58602083019252565b6115d4604051806102e260208201906707b1d6fd77f8566e602083019252565b6114ec604051806102e2602082019067c7ee9be5f5510944602083019252565b6132ec565b60019061161c604051806102e260208201906752082a43677e8e4e602083019252565b61164d611637611547611538895f52600d60205260405f2090565b6113f3836113ee8a5f52600d60205260405f2090565b61166d604051806102e26020820190671fc531165359ad18602083019252565b016113aa565b6116e990611697604051806102e2602082019067e3a0b4d72ecb65dd602083019252565b6116b7604051806102e26020820190679f2bd7a297107b20602083019252565b6116d7604051806102e2602082019067e00cdbcc2aad6199602083019252565b6115f4845f52600d60205260405f2090565b6113f9565b3461021a575f36600319011261021a5761170661333f565b506117256040805167158009998c20b950602082015260208152610670565b6117436040805167a1b78267ca6b532f602082015260208152610670565b611761604080516796fec2906e101073602082015260208152610670565b6110ee61176c61323c565b6040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106117e357505050505090565b909192939460208061183f600193603f1986820301875289519081518152608061181a8584015160a08785015260a0840190610acc565b9260408101516040840152606081015160608401520151906080818403910152610acc565b970193019301919392906117d4565b3461021a57602036600319011261021a57600435611882604051806102e2602082019067418bc2997876585c602083019252565b6118a2604051806102e2602082019067daaab0ea844292a2602083019252565b6118c2604051806102e2602082019067dffb2585e00fa6ed602083019252565b806118e757610bda604051806102e26020820190677d2434592fc3ea81602083019252565b611907604051806102e260208201906719c834d148c480eb602083019252565b611927604051806102e26020820190678088c2b8558debed602083019252565b611947604051806102e26020820190675844c8c639ac3268602083019252565b61194f613386565b61196f604051806102e26020820190679265711c22f96ee9602083019252565b61198f604051806102e2602082019067d4acc32796c148be602083019252565b5f6119b0604051806102e26020820190679a4cb7a937758ede602083019252565b6119d0604051806102e2602082019067750eff7dfcbe4939602083019252565b6119ea6119e5845f52600d60205260405f2090565b6133ef565b611a0a604051806102e2602082019067456d7a836f65ea1b602083019252565b611a2a604051806102e26020820190679d0a2709dec24099602083019252565b805190611a4d604051806102e2602082019067c59a152e541067a2602083019252565b611a6d604051806102e2602082019067817c634c91e114c0602083019252565b811561235a57611a93604051806102e260208201906787016a3397543afa602083019252565b611ab3604051806102e26020820190674be8777354f1ae51602083019252565b611ad3604051806102e2602082019067f35aedcfc66493eb602083019252565b601e8211801561234c575b8061233e575b1561233557611b34601e5b611b0f604051806102e2602082019067321c4bc9cb396890602083019252565b611b2e604051806102e26020820190667b4f24cd8a28d7602083019252565b83613332565b915b8083106121b9575b5050505b611b62604051806102e2602082019067ccbe8580c48a5849602083019252565b611b82604051806102e26020820190672c2be51d1dea0baa602083019252565b611b976119e5845f52600c60205260405f2090565b611bb7604051806102e26020820190673f5d5b7298cb5ef8602083019252565b611bd7604051806102e260208201906787dd42b6580bc476602083019252565b80511561219757611bfe604051806102e260208201906721ab70b013050226602083019252565b611c1e604051806102e26020820190676bdd6bf4adfa0c7e602083019252565b611c3e604051806102e2602082019067f4ba5aea2f9c218a602083019252565b611c9b611c4a856135a6565b91611c6b604051806102e260208201906734657379b933466f602083019252565b611c8b604051806102e26020820190679e4e2179c8bb421d602083019252565b611c958151613324565b90613437565b51611cbc604051806102e2602082019067e269061b9499467c602083019252565b611cdc604051806102e2602082019067ef89cceccdcfab51602083019252565b60c8611cf0611ceb84846134c3565b615cf9565b611d10604051806102e26020820190674d805cb863f590a6602083019252565b611d30604051806102e26020820190674e19ee02ef638d98602083019252565b111561216f57611df09291611d8491611d5f604051806102e2602082019067c8aa1fde715dbeb5602083019252565b611d7f604051806102e2602082019067154ab50b3dbee353602083019252565b6134c3565b611d8c6106a2565b90858252611d986134db565b60208301524260408301526060820152611db0613507565b6080820152611dbf8285613437565b52611dca8184613437565b50611deb604051806102e26020820190675f1ab85f2443a097602083019252565b6134b5565b905b611e12604051806102e26020820190676c1f9f7a6323b326602083019252565b611e32604051806102e26020820190672085665a89b085e4602083019252565b62278d004204611e58604051806102e2602082019067acc1885396438f9b602083019252565b611e78604051806102e26020820190671200219229de3819602083019252565b5f91611e9a604051806102e260208201906737bbae16c55cacc5602083019252565b611eba604051806102e2602082019067080807b4b63c5e1a602083019252565b6001925b601e84111580612165575b15611fd657611eee604051806102e2602082019067626ad3b69f38bc59602083019252565b611f0e604051806102e2602082019067c73a5639f6fa7eb3602083019252565b611f39611f23875f52600e60205260405f2090565b611f2d8686613332565b5f5260205260405f2090565b54611fad57611f84600191611f64604051806102e2602082019067d90d74e63915e5c8602083019252565b611deb604051806102e2602082019067e9901b124881a00f602083019252565b935b611fa6604051806102e26020820190678ba7ca188660aeda602083019252565b0192611ebe565b92600190611fd1604051806102e26020820190671eb3b516774b0c76602083019252565b611f86565b6110ee92508486611ffd604051806102e2602082019067bc5543b704bce202602083019252565b61201d604051806102e26020820190677a4d42a3e8bdea83602083019252565b601e831061213d576120cf92612049604051806102e260208201906777e028758fa37c05602083019252565b612069604051806102e2602082019067e41b715d98a42447602083019252565b6120716106a2565b91825261207c613542565b6020830152426040830152606082015261209461356b565b60808201526120a38285613437565b526120ae8184613437565b50611deb604051806102e26020820190674ad78555289f93b8602083019252565b6120ef604051806102e260208201906766f67d2c80b50c90602083019252565b8152612111604051806102e2602082019067f8a21a3a87ed6379602083019252565b612131604051806102e26020820190670c867953e209b12a602083019252565b604051918291826117b1565b509050612160604051806102e2602082019067f579a5065058bc0a602083019252565b6120cf565b5082841115611ec9565b505090612192604051806102e2602082019067bb6f8847a3da9fcc602083019252565b611df2565b5090612192604051806102e260208201906775d8ee3b472af2e3602083019252565b6121d9604051806102e260208201906742f56711f6416dff602083019252565b6121f9604051806102e26020820190677f89da26b7e23dac602083019252565b5f6122048484613437565b5112156122ea57506122c2929161225a91612235604051806102e260208201906745ac63ffe0927a82602083019252565b612255604051806102e260208201906767e967163fd3174c602083019252565b613437565b516122636106a2565b9085825261226f61344b565b6020830152426040830152606082015261228761347a565b60808201526122968285613437565b526122a18184613437565b50611deb604051806102e260208201906708e3af33bf51c90e602083019252565b6122e2604051806102e26020820190675021d302e37dd5cc602083019252565b5f8080611b3e565b9160019061230e604051806102e2602082019067c16103b7b6d830e8602083019252565b61232e604051806102e2602082019067d99833d8cf5aad52602083019252565b0191611b36565b611b3482611aef565b50612347615af6565b611ae4565b50612355615a8f565b611ade565b505061237c604051806102e2602082019067b5cd0ab0cdbe8944602083019252565b611b42565b3461021a575f36600319011261021a5760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b3461021a57604036600319011261021a576020610447602435600435613917565b3461021a57604036600319011261021a57602060ff61242b6004356123ff610560565b905f525f516020615f455f395f51905f52845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461021a57604036600319011261021a57612456602435600435613d6b565b906110ee60405192839215158352604060208401526040830190610acc565b3461021a575f36600319011261021a5760206040515f8152f35b3461021a575f36600319011261021a5760206040517f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f58152f35b3461021a57602036600319011261021a576110ee61176c60043561430e565b604051906124f7602083610670565b5f8252565b3461021a575f36600319011261021a576110ee60405161251d604082610670565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610acc565b3461021a5760e036600319011261021a576004356125603661022f565b61257e60408051679c3c817323d3c6e3602082015260208152610670565b612586614997565b6125a46040805167fc85a0b62c518530602082015260208152610670565b6125c4604051806102e26020820190676b3a377b8bd8629f602083019252565b6125e4604051806102e2602082019067cd75d4934ea6fe94602083019252565b612604604051806102e2602082019067c47744e73665f42c602083019252565b8161262957610bda604051806102e26020820190672d6255166c0e723e602083019252565b610ac77fe3549d384ec638cd041259730b4dcc4bc3285c48ec358bce734bfe6f7810d18f9161266e604051806102e26020820190678e662a9f994d31b7602083019252565b61268e604051806102e2602082019067db53d2d756634a30602083019252565b6126ae604051806102e26020820190676740b35096f4d7c5602083019252565b6126b781614a4c565b6126d7604051806102e2602082019067f9dbc040f2d9d5a7602083019252565b612726816126ed865f52600560205260405f2090565b9060a060059180358455602081013560018501556040810135600285015560608101356003850155608081013560048501550135910155565b612746604051806102e26020820190677c5d82eeb2414208602083019252565b6103c6604051806102e2602082019067bdf743a8535b7eb8602083019252565b3461021a57602036600319011261021a5761277f610576565b61279d60408051674e0c748a19981247602082015260208152610670565b5f516020615f655f395f51905f5254906001600160401b036127ce60ff604085901c1615936001600160401b031690565b16801590816128e7575b60011490816128dd575b1590816128d4575b506128c55761282d908261282460016001600160401b03195f516020615f655f395f51905f525416175f516020615f655f395f51905f5255565b6128905761448d565b61283357005b61285d60ff60401b195f516020615f655f395f51905f5254165f516020615f655f395f51905f5255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290806020810161040b565b6128c0600160401b60ff60401b195f516020615f655f395f51905f525416175f516020615f655f395f51905f5255565b61448d565b63f92ee8a960e01b5f5260045ffd5b9050155f6127ea565b303b1591506127e2565b8391506127d8565b3461021a57604036600319011261021a576105db60043561290e610560565b906129346105d1825f525f516020615f455f395f51905f52602052600160405f20015490565b615450565b3461021a57602036600319011261021a576004355f61296e604051806102e260208201906709b00e280b2f4249602083019252565b61298e604051806102e26020820190672d825343d87950fc602083019252565b6129ae604051806102e2602082019067e970461dd706afc6602083019252565b6129ce604051806102e2602082019067a0631502fc4008ae602083019252565b6129ee604051806102e2602082019067966c0d1306971e69602083019252565b62278d004204612a14604051806102e2602082019067f4f7187097ab858d602083019252565b612a34604051806102e2602082019067e10b51746d2d0c11602083019252565b5f612a55604051806102e2602082019067e4e61f2e4c0eb72f602083019252565b612a75604051806102e2602082019067933d87be40694000602083019252565b5f91612a97604051806102e260208201906715a054c0135a6dd3602083019252565b612ab7604051806102e2602082019067f58f47e3878a4165602083019252565b6001915b600383111580612dba575b15612c5857612aeb604051806102e2602082019067de95bb22c140930f602083019252565b612b0b604051806102e2602082019067b4979236f016fa4f602083019252565b612b4c612b47612b1b8585613332565b60408051602081018b815281830193909352908152612b3b606082610670565b519020620186a0900690565b6146c3565b90612b6d604051806102e2602082019067208af7eae6797e9d602083019252565b612b8d604051806102e2602082019067b01026801815b06a602083019252565b8115612c2d57612be2600192612c0392612bbd604051806102e26020820190675758b555cbb5fcff602083019252565b612bdd604051806102e260208201906764f1bea52e879cf7602083019252565b613023565b94611deb604051806102e2602082019067ac3ad4e261e42b6d602083019252565b925b612c25604051806102e2602082019067307171ee4d4135bc602083019252565b019192612abb565b939260019150612c53604051806102e26020820190678051d3389ec60311602083019252565b612c05565b836110ee9186612c7e604051806102e26020820190678b283fe638ce9d00602083019252565b612c9e604051806102e2602082019067e1e205883f940814602083019252565b8215612d925750612d15612d4292612d3a92612cd0604051806102e26020820190677cc4a5a2a2046453602083019252565b612cf0604051806102e2602082019067e828ae315c1bf998602083019252565b612d10604051806102e260208201906763a4b2f7c4d459a4602083019252565b612ff2565b612d35604051806102e260208201906789edd1fa6f2f6409602083019252565b6146e7565b612710900490565b612d62604051806102e26020820190670571cf30d3202ce8602083019252565b612d82604051806102e2602082019067c400dd735305664f602083019252565b6040519081529081906020820190565b915050612db5604051806102e260208201906731346adea2ac163c602083019252565b612d42565b5081831115612ac6565b90600182811c92168015612df2575b6020831014612dde57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612dd3565b604051905f8260035491612e0f83612dc4565b8083529260018116908115612e925750600114612e33575b6106a092500383610670565b5060035f90815290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b818310612e765750509060206106a092820101612e27565b6020919350806001915483858901015201910190918492612e5e565b602092506106a094915060ff191682840152151560051b820101612e27565b604051905f8260045491612ec483612dc4565b8083529260018116908115612e925750600114612ee7576106a092500383610670565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818310612f2a5750509060206106a092820101612e27565b6020919350806001915483858901015201910190918492612f12565b3461021a575f36600319011261021a575f54600154906110ee600254612faf612f6d612dfc565b60ff612f77612eb1565b936040519788978852602088015260018060a01b038116604088015260a01c161515606086015260c0608086015260c0850190610acc565b9083820360a0850152610acc565b3461021a57604036600319011261021a576020610447602435600435614710565b634e487b7160e01b5f52601160045260245ffd5b8115612ffc570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161301e57565b612fde565b9190820180921161301e57565b916130499183549060031b91821b915f19901b19161790565b9055565b601f821161305a57505050565b5f5260205f20906020601f840160051c83019310613092575b601f0160051c01905b818110613087575050565b5f815560010161307c565b9091508190613073565b91909182516001600160401b038111610650576130c3816130bd8454612dc4565b8461304d565b6020601f82116001146130fe5781906130499394955f926130f3575b50508160011b915f199060031b1c19161790565b015190505f806130df565b601f19821690613111845f5260205f2090565b915f5b81811061314b57509583600195969710613133575b505050811b019055565b01515f1960f88460031b161c191690555f8080613129565b9192602060018192868b015181550194019201613114565b80515f55602081015160015560408101516002805460608401516001600160a81b03199091166001600160a01b03939093169290921791151560a090811b60ff60a01b1692909217905560808201516106a092906131c290600361309c565b0151600461309c565b908060209392818452848401375f828201840152601f01601f1916010190565b929061320490610b3295936040865260408601916131cb565b9260208185039101526131cb565b6040519061321f82610635565b60606080835f81525f60208201525f60408201525f838201520152565b6040519061324982610655565b6006548252600754602083015260085460408301526009546060830152600a546080830152600b5460a0830152565b9060405161328581610655565b60a06005829480548452600181015460208501526002810154604085015260038101546060850152600481015460808501520154910152565b634e487b7160e01b5f52603260045260245ffd5b80548210156132e7575f5260205f2001905f90565b6132be565b805490600160401b821015610650578161330e916001613049940181556132d2565b819391549060031b91821b915f19901b19161790565b5f1981019190821161301e57565b9190820391821161301e57565b6040519061334c82610655565b5f60a0838281528260208201528260408201528260608201528260808201520152565b6001600160401b0381116106505760051b60200190565b6040519061339661016083610670565b600a825281601f196133a8600a61336f565b01905f5b8281106133b857505050565b6020906040516133c781610635565b5f81526060838201525f60408201525f606082015260606080820152828285010152016133ac565b90604051918281549182825260208201905f5260205f20925f5b81811061341e5750506106a092500383610670565b8454835260019485019487945060209093019201613409565b80518210156132e75760209160051b010190565b6040519061345a604083610670565b6011825270139151d05512559157d49154d251155053607a1b6020830152565b60405190613489604083610670565b601a82527f4e6567617469766520726573696475616c2064657465637465640000000000006020830152565b5f19811461301e5760010190565b81810392915f13801582851316918412161761301e57565b604051906134ea604083610670565b600e82526d2920aa22afa222ab24a0aa24a7a760911b6020830152565b60405190613516604083610670565b601982527f556e757375616c206665652072617465206465746563746564000000000000006020830152565b60405190613551604083610670565b600b82526a5a45524f5f564f4c554d4560a81b6020830152565b6040519061357a604083610670565b601e82527f457874656e64656420706572696f64206f66207a65726f20766f6c756d6500006020830152565b6119e561366d916135cd604051806102e2602082019067805f2a16697a8783602083019252565b6135ed604051806102e260208201906791b84c61f11364ca602083019252565b61360d604051806102e2602082019067edf95dd0b362098a602083019252565b61362d604051806102e26020820190678cb6fd5e00991ad9602083019252565b61364d604051806102e2602082019067915ee6a9d39c1fd2602083019252565b6114ec604051806102e26020820190677c5174c8b76456ed602083019252565b9061368e604051806102e260208201906790b69987b9c69080602083019252565b6136ae604051806102e26020820190673cc12b5e0eb55186602083019252565b81516136cf604051806102e260208201906603848ff88a6615602083019252565b6136ef604051806102e26020820190678c559f8fc407795c602083019252565b8061375d57509050613717604051806102e2602082019067de105720401be526602083019252565b613737604051806102e2602082019067c6db98ebde9afb2f602083019252565b613757604051806102e2602082019067ec2042e1b7b8a653602083019252565b60065490565b61377d604051806102e26020820190674632344a44d8ed90602083019252565b61379d604051806102e2602082019067bfbe0cdf53b10eec602083019252565b6137bd604051806102e2602082019067fb4702c1fd42bb8b602083019252565b80601e108015613909575b806138fb575b156138f557601e905b6137f7604051806102e2602082019067cc4a98d56cfa248f602083019252565b613817604051806102e260208201906788ef64fbbda5f6c0602083019252565b5f90613839604051806102e26020820190679284464fa7a923da602083019252565b613859604051806102e26020820190674631098032230924602083019252565b6138638382613332565b905b808210613894575050610b32929350612d10604051806102e2602082019067bd17cc4b69132a94602083019252565b90916138cd6001916138bc604051806102e260208201906728083abdc186ac51602083019252565b6138c68589613437565b5190613023565b926138ee604051806102e26020820190670f3fe9f65028e149602083019252565b0190613865565b806137d7565b50613904615b1c565b6137ce565b50613912615ab4565b6137c8565b91909161393a604051806102e2602082019067805f2a16697a8783602083019252565b61395a604051806102e260208201906791b84c61f11364ca602083019252565b61397a604051806102e2602082019067edf95dd0b362098a602083019252565b61016d8311156139b3576139a4604051806102e2602082019067afde9ab242ff8fca602083019252565b631f17089160e31b5f5260045ffd5b6119e56139da9161362d604051806102e26020820190678cb6fd5e00991ad9602083019252565b916139fb604051806102e260208201906790b69987b9c69080602083019252565b613a1b604051806102e26020820190673cc12b5e0eb55186602083019252565b825190613a3d604051806102e260208201906603848ff88a6615602083019252565b613a5d604051806102e26020820190678c559f8fc407795c602083019252565b81613a865750509050613717604051806102e2602082019067de105720401be526602083019252565b613aa6604051806102e26020820190674632344a44d8ed90602083019252565b613ac6604051806102e2602082019067bfbe0cdf53b10eec602083019252565b613ae6604051806102e2602082019067fb4702c1fd42bb8b602083019252565b8181108015613c1f575b80613c11575b15613c0a57905b613b1d604051806102e2602082019067cc4a98d56cfa248f602083019252565b613b3d604051806102e260208201906788ef64fbbda5f6c0602083019252565b5f90613b5f604051806102e26020820190679284464fa7a923da602083019252565b613b7f604051806102e26020820190674631098032230924602083019252565b613b898382613332565b905b808210613bba575050610b32929350612d10604051806102e2602082019067bd17cc4b69132a94602083019252565b9091613be26001916138bc604051806102e260208201906728083abdc186ac51602083019252565b92613c03604051806102e26020820190670f3fe9f65028e149602083019252565b0190613b8b565b5080613afd565b50613c1a615b1c565b613af6565b50613c28615ab4565b613af0565b60405190613c3c604083610670565b6013825272125b9d985b1a59081b595c98da185b9d081251606a1b6020830152565b60405190613c6d604083610670565b601682527546656520726174652062656c6f77206d696e696d756d60501b6020830152565b60405190613ca1604083610670565b601882527f46656520726174652065786365656473206d6178696d756d00000000000000006020830152565b60405190613cdc606083610670565b602a8252692062617365207261746560b01b6040837f54696572203120726174652073686f756c64206265206c6f776572207468616e60208201520152565b60405190613d2a606083610670565b602c82526b20746965722031207261746560a01b6040837f54696572203220726174652073686f756c64206265206c6f776572207468616e60208201520152565b90613d8c604051806102e26020820190671bc87bab31c22488602083019252565b613dac604051806102e260208201906770999bf81ba3ae11602083019252565b613dcc604051806102e2602082019067ccce6f51c7c0f883602083019252565b81613e3d575050613df3604051806102e260208201906734f89b0ac0383546602083019252565b613e13604051806102e2602082019067f5d726a571cb776f602083019252565b613e33604051806102e2602082019067ab2abbf0da6f0e46602083019252565b5f90610b32613c2d565b613e5d604051806102e2602082019067833320855afce42a602083019252565b613e7d604051806102e26020820190672cf66f6e50d12504602083019252565b613e9d604051806102e2602082019067fb30f5b31fd7c3e1602083019252565b600a811015613f12575050613ec8604051806102e2602082019067aeee43987b823b1c602083019252565b613ee8604051806102e260208201906739d21ce56e5cacbf602083019252565b613f08604051806102e2602082019067b3f465aeae787dcb602083019252565b5f90610b32613c5e565b6101f490613f36604051806102e2602082019067febd65c6ea47c234602083019252565b613f56604051806102e26020820190671451f39cd0862425602083019252565b613f76604051806102e260208201906752be4423c520dec2602083019252565b1115613fe75750613f9d604051806102e260208201906704e8b5069863ce62602083019252565b613fbd604051806102e2602082019067fe4450be6aa220cd602083019252565b613fdd604051806102e26020820190676062618bf108132c602083019252565b5f90610b32613c92565b610cf661405c9161400e604051806102e260208201906749da9b2a0896bcf3602083019252565b61402e604051806102e26020820190676009f91191943c3c602083019252565b61404e604051806102e2602082019067d7b5e4145ceb247b602083019252565b5f52600560205260405f2090565b61407c604051806102e2602082019067d2e7fe5bff57b115602083019252565b61409c604051806102e2602082019067e293c9f1af8b08c8602083019252565b80516142e957506140c3604051806102e260208201906785f28b23052fa77e602083019252565b6140e3604051806102e2602082019067d7cbe11054bafdb2602083019252565b6140eb61323c565b61410b604051806102e26020820190672277910ed4046301602083019252565b61412b604051806102e260208201906718c171ed2acb2258602083019252565b606081019081518151105f146141a757505061415d604051806102e2602082019067237545ed7842e02b602083019252565b61417d604051806102e26020820190672b530357a716056a602083019252565b61419d604051806102e26020820190674f852ca528d8811c602083019252565b5f90610b32613ccd565b6080906141ca604051806102e26020820190670e39d2ea6602ab2a602083019252565b6141ea604051806102e26020820190672add9db82382038d602083019252565b61420a604051806102e26020820190678b67cd57f66fe1c2602083019252565b01519051101561427e57614234604051806102e26020820190674e719f9d3ddde770602083019252565b614254604051806102e260208201906732a7422734116847602083019252565b614274604051806102e260208201906748fe659cd372c85f602083019252565b5f90610b32613d1b565b61429e604051806102e26020820190678b241d68dad49a49602083019252565b6142be604051806102e2602082019067b27fcb0def21d9ca602083019252565b6142de604051806102e26020820190671333085ebf315279602083019252565b600190610b326124e8565b614309604051806102e2602082019067aa7bd1ef07c99ac1602083019252565b6140eb565b610cf661437e9161431d61333f565b5061433e604051806102e260208201906725694f3b500c8727602083019252565b61435e604051806102e260208201906755db04649f476138602083019252565b61404e604051806102e2602082019067a81dddde35cce75b602083019252565b61439e604051806102e2602082019067cfeacd5f5c30c888602083019252565b6143be604051806102e2602082019067e1de7a3989f5e996602083019252565b805161442d57506143e5604051806102e260208201906787d1a41267820b7c602083019252565b614405604051806102e2602082019067c0c9602937fe5a3a602083019252565b614425604051806102e260208201906744f4d4d1b740d7e8602083019252565b610b3261323c565b61444d604051806102e2602082019067aae439eeea9dd006602083019252565b61446d604051806102e2602082019067e5ca59cf4e90f975602083019252565b610b32604051806102e26020820190674748c734aa8669f6602083019252565b614638906144af6040805167fdff48a7aedafc9f602082015260208152610670565b6144cf604051806102e26020820190677d737efd6470c80e602083019252565b6144ef604051806102e260208201906772afa60d12e629fa602083019252565b61450f604051806102e2602082019067f985dfc4b3585931602083019252565b614517615e3b565b614537604051806102e2602082019067b8c73956ea197ee5602083019252565b614557604051806102e260208201906752cddd31306ceb86602083019252565b61455f615e3b565b61457f604051806102e26020820190679693533c22691253602083019252565b61459f604051806102e26020820190673857901a36adc5e1602083019252565b6145a88161519d565b506145c9604051806102e2602082019067b5ac84373741f43a602083019252565b6145e9604051806102e26020820190672c96be1d50cdff18602083019252565b6145f281615239565b50614613604051806102e26020820190678f332cac73ccef4f602083019252565b614633604051806102e2602082019067fac2e3f684527c44602083019252565b6152fa565b50614659604051806102e26020820190672340353ea17c29d9602083019252565b6106a0614664610691565b60fa80825269021e19e0c9bab240000060208301819052690a968163f0a57b4000006040840181905260c860608501819052609660808601819052606460a0909601869052600694909455600792909255600855600955600a55600b55565b90670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561301e57565b9060fa82029180830460fa149015171561301e57565b8181029291811591840414171561301e57565b614730604051806102e2602082019067b5aa0b154d4b349c602083019252565b614750604051806102e260208201906777c8c2449519b995602083019252565b614770604051806102e260208201906785431a24268fc98d602083019252565b8061479557610c6e604051806102e26020820190674124440c24a4568e602083019252565b6147b5604051806102e260208201906724503fc3bc6ca44e602083019252565b6147d5604051806102e26020820190673da1c354569a0389602083019252565b6147f5604051806102e26020820190673bf1acf7c1a94357602083019252565b600a8210806148cb575b80156148b1575b15614864576148618261482f604051806102e2602082019067e9393ba0a9a1369f602083019252565b61484f604051806102e26020820190674e11ef1ca2ae2a04602083019252565b6336e6824b60e21b5f52600452602490565b5ffd5b610b3291612d3a9161488c604051806102e260208201906735c9f3bb306cedcf602083019252565b6148ac604051806102e26020820190679eba9a9efb1fb954602083019252565b6146fd565b506101f48211801561480657506148c6615b5e565b614806565b506148d4615b3d565b6147ff565b335f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff161561491157565b63e2517d3f60e01b5f52336004527fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177560245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561498057565b63e2517d3f60e01b5f52336004525f60245260445ffd5b335f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b0602052604090205460ff16156149cf57565b63e2517d3f60e01b5f52336004527f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f560245260445ffd5b5f8181525f516020615f455f395f51905f526020908152604080832033845290915290205460ff1615614a365750565b63e2517d3f60e01b5f523360045260245260445ffd5b614a6c604051806102e26020820190674f0115ae7fd19f3d602083019252565b614a8c604051806102e2602082019067cff66ac7ad408d1b602083019252565b614aac604051806102e2602082019067e3da6b3f7c3ba141602083019252565b803590600a82108061518f575b8015615175575b15614b095761486182614ae9604051806102e2602082019067dd5b985d5b7c9e88602083019252565b61484f604051806102e26020820190673fe217f8122a1780602083019252565b90614b2a604051806102e26020820190675d43a5e7adaf87d6602083019252565b614b4a604051806102e2602082019067422081665b26b54a602083019252565b614b6a604051806102e26020820190673607006dd6fa99eb602083019252565b606082013591600a831080615167575b801561514d575b15614bca5761486183614baa604051806102e2602082019067ef64f806f1ed91b8602083019252565b61484f604051806102e2602082019067c39f6e5f9e8e96b3602083019252565b9091614bec604051806102e26020820190673b19c5cdd50d1cf9602083019252565b614c0c604051806102e2602082019067c2b5da159143ea56602083019252565b614c2c604051806102e260208201906712662010c204b827602083019252565b608082013592600a84108061513f575b8015615125575b15614c8c5761486184614c6c604051806102e2602082019067867171f66fb2943e602083019252565b61484f604051806102e260208201906794bb184101969114602083019252565b614caf604094939451806102e260208201906767fb27694bf1ede6602083019252565b614ccf604051806102e260208201906740dae8ce4bae3715602083019252565b614cef604051806102e26020820190672b7adb491e9c85a3602083019252565b60a084013593600a851080615117575b80156150fd575b15614d4f5761486185614d2f604051806102e260208201906760eeb19146f1e5d2602083019252565b61484f604051806102e2602082019067aa87fe3096faafdc602083019252565b614d72604095949551806102e2602082019067dab8c05118269ede602083019252565b614d92604051806102e2602082019067e3dee722d80841cb602083019252565b614db2604051806102e2602082019067c3a9ef9f1dbce158602083019252565b6020810135908115806150ef575b80156150d4575b15614e1b57614dec604051806102e2602082019067867fbbf32b47c64b602083019252565b614e0c604051806102e260208201906721ab90b66417e11a602083019252565b63adf8131b60e01b5f5260045ffd5b604090614e3d8251806102e26020820190673ed8dbfb8b25957d602083019252565b815167deba7507bb01d4576020820152614e5b9080604081016102e2565b815167d292367d2a5d66726020820152614e799080604081016102e2565b013511614ec057614ea0604051806102e26020820190677cd9881b96acde13602083019252565b614e0c604051806102e26020820190677e562dce734bf047602083019252565b614ee0604051806102e2602082019067a666f98b0cc1b9e3602083019252565b614f00604051806102e2602082019067fd8d2e4eb9cbf012602083019252565b614f20604051806102e2602082019067c30592a9108e6787602083019252565b811115614f6757614f47604051806102e26020820190679aac09fbf43e940b602083019252565b614e0c604051806102e26020820190670c3930840d7f3b64602083019252565b614f87604051806102e2602082019067c37a8a710defaa86602083019252565b614fa7604051806102e2602082019067da0bf8a572d49c03602083019252565b614fc7604051806102e2602082019067e49fc01267574d67602083019252565b82111561500e57614fee604051806102e2602082019067ea77b2441fd2dc3d602083019252565b614e0c604051806102e2602082019067fb7d7a71f1e61545602083019252565b61502e604051806102e260208201906708e70f837105198c602083019252565b61504e604051806102e260208201906767ea3067475fbec2602083019252565b61506e604051806102e2602082019067b100ca0f4dcfa951602083019252565b11156150b457615094604051806102e2602082019067dc08fe5523a8af65602083019252565b614e0c604051806102e260208201906718b8a5c08106f16e602083019252565b6106a0604051806102e2602082019067a6b86cb1331c34c3602083019252565b506040810135158015614dc757506150ea615ca8565b614dc7565b506150f8615c87565b614dc0565b506101f485118015614d065750615112615c66565b614d06565b50615120615c45565b614cff565b506101f484118015614c43575061513a615c24565b614c43565b50615148615c03565b614c3c565b506101f483118015614b815750615162615be2565b614b81565b50615170615bc1565b614b7a565b506101f482118015614ac0575061518a615ba0565b614ac0565b50615198615b7f565b614ab9565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16615234576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f516020615f055f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff16615234576001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c60205260409020805460ff1916600117905533906001600160a01b03167fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217755f516020615f055f395f51905f525f80a4600190565b6001600160a01b0381165f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b0602052604090205460ff16615234576001600160a01b0381165f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b060205260409020805460ff1916600117905533906001600160a01b03167f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f55f516020615f055f395f51905f525f80a4600190565b5f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661544a575f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916600117905533916001600160a01b0316905f516020615f055f395f51905f525f80a4600190565b50505f90565b5f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561544a575f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516352d1902d60e01b81529290916020846004816001600160a01b0387165afa5f9481615570575b5061553b57634c9c8ce360e01b5f526001600160a01b03831660045260245ffd5b90915f516020615f255f395f51905f52840361555c576106a0929350615d99565b632a87526960e21b5f52600484905260245ffd5b9094506020813d60201161559c575b8161558c60209383610670565b8101031261021a5751935f61551a565b3d915061557f565b604051906155b3606083610670565b60238252621d5b9d60ea1b6040837f526573696475616c2065786365656473207472616e73616374696f6e20616d6f60208201520152565b604051906155fa604083610670565b601a82527f4170706c69656420726174652062656c6f77206d696e696d756d0000000000006020830152565b60405190615635604083610670565b601c82527f4170706c69656420726174652065786365656473206d6178696d756d000000006020830152565b60405190615670604083610670565b6014825273086c2d8c6ead8c2e8d2dedc40dad2e6dac2e8c6d60631b6020830152565b91906156b5604051806102e2602082019067d6f3bdd156aa03fc602083019252565b6156d5604051806102e260208201906785214db735c94682602083019252565b6156f5604051806102e2602082019067af91e78e8c38cc30602083019252565b8083111561576a57505050615720604051806102e2602082019067844e2b40bc6cde8a602083019252565b615740604051806102e2602082019067b570d739d42a0959602083019252565b615760604051806102e26020820190677026bcbf64586077602083019252565b5f90610b326155a4565b61578a604051806102e2602082019067663d215eb1a5f2cf602083019252565b6157aa604051806102e260208201906783dba432b2cec792602083019252565b6157ca604051806102e2602082019067b7d9deea5411b737602083019252565b600a821015615840575050506157f6604051806102e26020820190674481afd64849cffb602083019252565b615816604051806102e2602082019067021b2fc0d08c51d1602083019252565b615836604051806102e2602082019067df6cfa2a8a192ae2602083019252565b5f90610b326155eb565b615860604051806102e260208201906783b62e0eedf99a7e602083019252565b615880604051806102e2602082019067bacee8b96f63448d602083019252565b6158a0604051806102e2602082019067643890c3855b8c42602083019252565b6101f4821115615917575050506158cd604051806102e260208201906777a489e6e32f1442602083019252565b6158ed604051806102e2602082019067faa2ad1d4d3e482a602083019252565b61590d604051806102e260208201906702dde887041a31f5602083019252565b5f90610b32615626565b61597f91612d3a9161593f604051806102e2602082019067b0c173eac201e9a2602083019252565b61595f604051806102e26020820190673bf345539ddb5661602083019252565b6148ac604051806102e26020820190676735b78584117d16602083019252565b906159a0604051806102e260208201906773fa8803d756179c602083019252565b6159c0604051806102e260208201906769da72965c2cc882602083019252565b14615a2f576159e5604051806102e2602082019067b5c23461022219dc602083019252565b615a05604051806102e26020820190675339cc2beac6a70e602083019252565b615a25604051806102e26020820190673269b493f8b3fcb4602083019252565b5f90610b32615661565b615a4f604051806102e2602082019067da5d7a9ef7d7e7a7602083019252565b615a6f604051806102e2602082019067b4b7741d1f55bbca602083019252565b6142de604051806102e2602082019067b7cf7f0309fed57a602083019252565b615ab060408051679b3239249fc1469f60c01b602082015260208152610670565b5f90565b615ab06040805167722f095d6fe6690f60c11b602082015260208152610670565b615ab060408051672eb0f51321b6284360c11b602082015260208152610670565b615b17604080516711ffc15e94d1d72d60c01b602082015260208152610670565b600190565b615b17604080516707f9fef40ab6529560c31b602082015260208152610670565b615b1760408051675b2920d65bbd2e4f60c01b602082015260208152610670565b615b176040805167f6275cf06424963560c01b602082015260208152610670565b615b1760408051672afb8ece48e719cb60c11b602082015260208152610670565b615b176040805167251021355c981c8760c21b602082015260208152610670565b615b176040805167419025bbde3ab04f60c01b602082015260208152610670565b615b17604080516711be83a07bb5931560c11b602082015260208152610670565b615b17604080516701d95aaf64442f4360c41b602082015260208152610670565b615b1760408051671e8f1e62e7bb0c8760c11b602082015260208152610670565b615b176040805167c452d0152af3d3cb60c01b602082015260208152610670565b615b17604080516709a7d12eab7a400960c21b602082015260208152610670565b615b1760408051676d44ed800829005360c01b602082015260208152610670565b615b176040805166f97a7a868e65c160c01b602082015260208152610670565b615b1760408051674a6900822a6f224360c01b602082015260208152610670565b600160ff1b811461301e575f0390565b604080516702197d60f0d74c876020808301919091528152615d1b9190610670565b615d3b604051806102e2602082019067d520f05f4cc56f77602083019252565b615d5b604051806102e2602082019067c53068484663bb06602083019252565b5f8112801590615d8b575b80615d7d575b15615d745790565b610b3290615ce9565b50615d86615cc8565b615d6c565b50615d94615ad5565b615d66565b90813b15615e1a575f516020615f255f395f51905f5280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115615e0257615dff91615e66565b50565b505034615e0b57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b60ff5f516020615f655f395f51905f525460401c1615615e5757565b631afcd79f60e31b5f5260045ffd5b5f80610b3293602081519101845af43d15615ea2573d91615e86836106b1565b92615e946040519485610670565b83523d5f602085013e615ea6565b6060915b90615eca5750805115615ebb57602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615efb575b615edb575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615ed356fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220d025daeb639717c0ee4076b326607adbcc26e6daae060dc4d2d82f26d440180a64736f6c634300081c0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00",
1115
+ "deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146101c45780630dc23993146101bf578063248a9ca3146101ba5780632b5fb016146101b55780632f2ff15d146101b057806336568abe146101ab5780634f1ef286146101a657806352d1902d146101a157806356ff4f3d1461019c5780635943cd4c146101975780636296677314610192578063633861f01461018d578063661efcd31461018857806375b238fc146101835780638d85c3d41461017e57806391d1485414610179578063929555a114610174578063a217fddf1461016f578063a4d19feb1461016a578063a56240ba14610165578063ad3cb1cc14610160578063b612f3ab1461015b578063c4d66de814610156578063d547741f14610151578063dedec9021461014c578063e4b0b21b146101475763f1d21a0214610142575f80fd5b612fbd565b612f46565b612939565b6128ef565b612766565b612543565b6124fc565b6124c9565b61248f565b612475565b612437565b6123dc565b6123bb565b612381565b61184e565b6116ee565b61126d565b610b35565b6108a0565b61081c565b610702565b6105dd565b61058c565b61044f565b610410565b610240565b3461021a57602036600319011261021a5760043563ffffffff60e01b811680910361021a57602090637965db0b60e01b8114908115610209575b506040519015158152f35b6301ffc9a760e01b1490505f6101fe565b5f80fd5b60c090600319011261021a57600490565b60c090602319011261021a57602490565b3461021a5760c036600319011261021a577f562fd8620a4e720900cae1fbf0e7dd18bcedfbe235d4e93b2340d47bf4898b5561040b61027e3661021e565b61029c604080516782d25141b9e16aae602082015260208152610670565b6102a46148d9565b6102c2604080516733e96dff25fd8e58602082015260208152610670565b6102f0604051806102e26020820190676de4783d48b442a5602083019252565b0390601f1982018152610670565b610310604051806102e26020820190670521cbb9e4dc6214602083019252565b610330604051806102e2602082019067148af5125b7a1953602083019252565b61033981614a4c565b610359604051806102e260208201906722a2ebf870cb1b54602083019252565b80356006556020810135600755604081013560085560608101356009556080810135600a5560a0810135600b556103a6604051806102e26020820190677a2d6d75f8b32ce7602083019252565b6103c6604051806102e260208201906729d5359925d5e1fc602083019252565b6040519182918291909160a08060c083019480358452602081013560208501526040810135604085015260608101356060850152608081013560808501520135910152565b0390a1005b3461021a57602036600319011261021a5760206104476004355f525f516020615f455f395f51905f52602052600160405f20015490565b604051908152f35b3461021a57604036600319011261021a5760043561055c6105546024359261048b60408051677c67282253d764ee602082015260208152610670565b6104936148d9565b6104b160408051672b1009fb0344c533602082015260208152610670565b6104cf6040805167a04f2150c607d9df602082015260208152610670565b6104ef604051806102e260208201906703ce1a50363469b0602083019252565b61050f604051806102e2602082019067840f27d2851adee2602083019252565b61054762278d00420491610539604051806102e2602082019067ad70a786d8b0feac602083019252565b5f52600e60205260405f2090565b905f5260205260405f2090565b918254613023565b9055005b602435906001600160a01b038216820361021a57565b600435906001600160a01b038216820361021a57565b3461021a57604036600319011261021a576105db6004356105ab610560565b906105d66105d1825f525f516020615f455f395f51905f52602052600160405f20015490565b614a06565b6153bb565b005b3461021a57604036600319011261021a576004356105f9610560565b336001600160a01b03821603610612576105db91615450565b63334bd91960e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761065057604052565b610621565b60c081019081106001600160401b0382111761065057604052565b90601f801991011681019081106001600160401b0382111761065057604052565b604051906106a060c083610670565b565b604051906106a060a083610670565b6001600160401b03811161065057601f01601f191660200190565b9291926106d8826106b1565b916106e66040519384610670565b82948184528183011161021a578281602093845f960137010152565b604036600319011261021a57610716610576565b6024356001600160401b03811161021a573660238201121561021a576107469036906024816004013591016106cc565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163081149081156107fa575b506107eb576105db916107a26040805167d3296d2360f1f612602082015260208152610670565b6107aa614948565b6107c860408051675dab68ba2a1a2394602082015260208152610670565b6107e66040805167ade19e7ae8d540e9602082015260208152610670565b6154f0565b63703e46dd60e11b5f5260045ffd5b5f516020615f255f395f51905f52546001600160a01b0316141590505f61077b565b3461021a575f36600319011261021a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036107eb5760206040515f516020615f255f395f51905f528152f35b9181601f8401121561021a578235916001600160401b03831161021a576020838186019501011161021a57565b3461021a57606036600319011261021a576004356024356001600160401b03811161021a576108d3903690600401610873565b6044356001600160401b03811161021a576108f2903690600401610873565b9290610912604080516769021d700d82dae8602082015260208152610670565b61091a614948565b610938604080516741c1769e04a9cf58602082015260208152610670565b610958604051806102e26020820190670f7dd0ab9bc755a4602083019252565b610978604051806102e2602082019067e9309a7f9edf1f19602083019252565b610998604051806102e2602082019067510e2a860316e944602083019252565b600154156109cf576109c0604051806102e26020820190671ed22f09b8a218f4602083019252565b6308db0db560e11b5f5260045ffd5b7f5a4b9f27a26618330986254014b0a0081a144ab6878da8d57d4d1e176ce915bf93610ac791610a15604051806102e2602082019067a96e4ae893420a34602083019252565b610a35604051806102e26020820190675cf53f31906e7b76602083019252565b610a7b610a40610691565b88815242602082015233604082015260016060820152610a613688886106cc565b6080820152610a713685856106cc565b60a0820152613163565b610a9b604051806102e2602082019067ead7733755d42816602083019252565b610abb604051806102e2602082019067810036624469685b602083019252565b604051948594856131eb565b0390a2005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60c06080610b329360208452805160208501526020810151604085015260408101516060850152606081015115158285015201519160a0808201520190610acc565b90565b3461021a57604036600319011261021a57600435602435610b54613212565b50610b75604051806102e2602082019067e66c3c7c651597e9602083019252565b610b95604051806102e26020820190675f0952359ae65557602083019252565b610bb5604051806102e2602082019067d6a6fdd872a96d37602083019252565b81610be957610bda604051806102e260208201906749193239de07eb80602083019252565b637ccfccc960e11b5f5260045ffd5b610c09604051806102e260208201906771c0aebe569145dd602083019252565b610c29604051806102e2602082019067dcaa84c434b641a9602083019252565b610c49604051806102e2602082019067d0ffed63934becff602083019252565b80610c7d57610c6e604051806102e2602082019067e21cd91fcd73e8a7602083019252565b63cc36378360e01b5f5260045ffd5b6110ee91610ca1604051806102e2602082019067779968546289265a602083019252565b610cc1604051806102e2602082019067e35c23ed7a89fd3c602083019252565b610ce1604051806102e26020820190675a037c874408daea602083019252565b610cfb610cf6825f52600560205260405f2090565b613278565b610d1b604051806102e260208201906715ad6e586f49d192602083019252565b610d3b604051806102e2602082019067aa6d32517ea9dbed602083019252565b80516112435750610d62604051806102e2602082019067216f4e5c30d77358602083019252565b610d82604051806102e2602082019067c30f8373fff5de5d602083019252565b610e99610d8d61323c565b915b610daf604051806102e26020820190673ca7e5b94629281d602083019252565b610dcf604051806102e2602082019067e149b5b0184d52d4602083019252565b610def604051806102e26020820190674faa03e41893b814602083019252565b610e0f604051806102e2602082019067d46a50fadc2399b0602083019252565b610e2f604051806102e260208201906783e5ad2c4866329b602083019252565b610e4f604051806102e26020820190671b408d2afcef3467602083019252565b61054762278d00420491610e79604051806102e2602082019067d61f510db0792469602083019252565b610539604051806102e2602082019067f8a404fc21776039602083019252565b54610eba604051806102e2602082019067eb2cee89a45c2fa7602083019252565b610eda604051806102e2602082019067de1f789993d27595602083019252565b602082015181101561111c5750610f07604051806102e2602082019067894ea8c95cec6982602083019252565b610f27604051806102e2602082019067dffdafbaa36c9af0602083019252565b805190610f4a604051806102e2602082019067a495f5d470134fe9602083019252565b5f915b610f6d604051806102e2602082019067e4a3f2ac2ead56d5602083019252565b610f8d604051806102e26020820190671de7c7744e7a702c602083019252565b60408201518411156110f2575060a09150610fbe604051806102e26020820190678b8d649f96d96396602083019252565b610fde604051806102e2602082019067a6236e7200cb7f45602083019252565b0151611000604051806102e26020820190674436134080e47c6e602083019252565b6110dd6003915b611027604051806102e26020820190671609f829d6adf8d2602083019252565b611047604051806102e26020820190678d408c608dc9a69a602083019252565b61109c816110558187614710565b95611076604051806102e2602082019067d06dc5e618b5f998602083019252565b611096604051806102e260208201906778ead8fab6bd7afe602083019252565b86615693565b9390916110bf604051806102e260208201906766191fcacbec3685602083019252565b6110c76106a2565b9586526020860152604085015215156060840152565b608082015260405191829182610af0565b0390f35b6110dd9150611117604051806102e2602082019067dea74d71ddd41760602083019252565b611007565b61113c604051806102e2602082019067f432c1588def59d3602083019252565b61115c604051806102e260208201906717fb2d49c5308ca8602083019252565b604082015111156111d557611187604051806102e26020820190673926627e4e2202c2602083019252565b6111a7604051806102e2602082019067d3125178c3133f4b602083019252565b6060810151906111cd604051806102e260208201906751d7864d8a452133602083019252565b600191610f4d565b6111f5604051806102e2602082019067bc9fffb1c0647dc6602083019252565b611215604051806102e260208201906710f8520fd09b63c9602083019252565b60808101519061123b604051806102e26020820190673662c14ae807f545602083019252565b600291610f4d565b90610e9990611268604051806102e26020820190674bae5a4c00765cbe602083019252565b610d8f565b3461021a57606036600319011261021a57600435602435604435906112a66040805167bae87e6e12443599602082015260208152610670565b6112ae6148d9565b6112cc6040805167c4af58c9e8e18340602082015260208152610670565b6112ec604051806102e26020820190674521406e47180748602083019252565b61130c604051806102e26020820190674e6bf22698d794b6602083019252565b61132c604051806102e26020820190675f8d3a35b05f2486602083019252565b6064611340845f52600d60205260405f2090565b541061167357611366604051806102e2602082019067f51dc9233007efa5602083019252565b611386604051806102e2602082019067fc550cc3d94e06ef602083019252565b6113a6604051806102e2602082019067635cf47fd2f61b22602083019252565b60635f5b8181106115f95750506113f9906113d7604051806102e2602082019067fb4185e61f70f120602083019252565b6113f360636113ee865f52600d60205260405f2090565b6132d2565b90613030565b611419604051806102e2602082019067da50121ebe16724e602083019252565b611439604051806102e26020820190671012d0ed46e6a92e602083019252565b606461144d835f52600c60205260405f2090565b541061158d57611473604051806102e26020820190678ecd175a239739cb602083019252565b611493604051806102e260208201906721ae2fe0f1ac207a602083019252565b6114b3604051806102e2602082019067ed98a5a8dc538881602083019252565b60635f5b8181106114fa5750506113f360636113ee6105db946114ec604051806102e2602082019067c3579c227a732157602083019252565b5f52600c60205260405f2090565b60019061151d604051806102e26020820190675e98bb510e4f9ccd602083019252565b611567611551611547611538885f52600c60205260405f2090565b61154185613010565b906132d2565b90549060031b1c90565b6113f3836113ee895f52600c60205260405f2090565b611587604051806102e26020820190679f540d25b7f2e537602083019252565b016114b7565b6115f46105db926115b4604051806102e2602082019067ef350c50efacae58602083019252565b6115d4604051806102e260208201906707b1d6fd77f8566e602083019252565b6114ec604051806102e2602082019067c7ee9be5f5510944602083019252565b6132ec565b60019061161c604051806102e260208201906752082a43677e8e4e602083019252565b61164d611637611547611538895f52600d60205260405f2090565b6113f3836113ee8a5f52600d60205260405f2090565b61166d604051806102e26020820190671fc531165359ad18602083019252565b016113aa565b6116e990611697604051806102e2602082019067e3a0b4d72ecb65dd602083019252565b6116b7604051806102e26020820190679f2bd7a297107b20602083019252565b6116d7604051806102e2602082019067e00cdbcc2aad6199602083019252565b6115f4845f52600d60205260405f2090565b6113f9565b3461021a575f36600319011261021a5761170661333f565b506117256040805167158009998c20b950602082015260208152610670565b6117436040805167a1b78267ca6b532f602082015260208152610670565b611761604080516796fec2906e101073602082015260208152610670565b6110ee61176c61323c565b6040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106117e357505050505090565b909192939460208061183f600193603f1986820301875289519081518152608061181a8584015160a08785015260a0840190610acc565b9260408101516040840152606081015160608401520151906080818403910152610acc565b970193019301919392906117d4565b3461021a57602036600319011261021a57600435611882604051806102e2602082019067418bc2997876585c602083019252565b6118a2604051806102e2602082019067daaab0ea844292a2602083019252565b6118c2604051806102e2602082019067dffb2585e00fa6ed602083019252565b806118e757610bda604051806102e26020820190677d2434592fc3ea81602083019252565b611907604051806102e260208201906719c834d148c480eb602083019252565b611927604051806102e26020820190678088c2b8558debed602083019252565b611947604051806102e26020820190675844c8c639ac3268602083019252565b61194f613386565b61196f604051806102e26020820190679265711c22f96ee9602083019252565b61198f604051806102e2602082019067d4acc32796c148be602083019252565b5f6119b0604051806102e26020820190679a4cb7a937758ede602083019252565b6119d0604051806102e2602082019067750eff7dfcbe4939602083019252565b6119ea6119e5845f52600d60205260405f2090565b6133ef565b611a0a604051806102e2602082019067456d7a836f65ea1b602083019252565b611a2a604051806102e26020820190679d0a2709dec24099602083019252565b805190611a4d604051806102e2602082019067c59a152e541067a2602083019252565b611a6d604051806102e2602082019067817c634c91e114c0602083019252565b811561235a57611a93604051806102e260208201906787016a3397543afa602083019252565b611ab3604051806102e26020820190674be8777354f1ae51602083019252565b611ad3604051806102e2602082019067f35aedcfc66493eb602083019252565b601e8211801561234c575b8061233e575b1561233557611b34601e5b611b0f604051806102e2602082019067321c4bc9cb396890602083019252565b611b2e604051806102e26020820190667b4f24cd8a28d7602083019252565b83613332565b915b8083106121b9575b5050505b611b62604051806102e2602082019067ccbe8580c48a5849602083019252565b611b82604051806102e26020820190672c2be51d1dea0baa602083019252565b611b976119e5845f52600c60205260405f2090565b611bb7604051806102e26020820190673f5d5b7298cb5ef8602083019252565b611bd7604051806102e260208201906787dd42b6580bc476602083019252565b80511561219757611bfe604051806102e260208201906721ab70b013050226602083019252565b611c1e604051806102e26020820190676bdd6bf4adfa0c7e602083019252565b611c3e604051806102e2602082019067f4ba5aea2f9c218a602083019252565b611c9b611c4a856135a6565b91611c6b604051806102e260208201906734657379b933466f602083019252565b611c8b604051806102e26020820190679e4e2179c8bb421d602083019252565b611c958151613324565b90613437565b51611cbc604051806102e2602082019067e269061b9499467c602083019252565b611cdc604051806102e2602082019067ef89cceccdcfab51602083019252565b60c8611cf0611ceb84846134c3565b615cf9565b611d10604051806102e26020820190674d805cb863f590a6602083019252565b611d30604051806102e26020820190674e19ee02ef638d98602083019252565b111561216f57611df09291611d8491611d5f604051806102e2602082019067c8aa1fde715dbeb5602083019252565b611d7f604051806102e2602082019067154ab50b3dbee353602083019252565b6134c3565b611d8c6106a2565b90858252611d986134db565b60208301524260408301526060820152611db0613507565b6080820152611dbf8285613437565b52611dca8184613437565b50611deb604051806102e26020820190675f1ab85f2443a097602083019252565b6134b5565b905b611e12604051806102e26020820190676c1f9f7a6323b326602083019252565b611e32604051806102e26020820190672085665a89b085e4602083019252565b62278d004204611e58604051806102e2602082019067acc1885396438f9b602083019252565b611e78604051806102e26020820190671200219229de3819602083019252565b5f91611e9a604051806102e260208201906737bbae16c55cacc5602083019252565b611eba604051806102e2602082019067080807b4b63c5e1a602083019252565b6001925b601e84111580612165575b15611fd657611eee604051806102e2602082019067626ad3b69f38bc59602083019252565b611f0e604051806102e2602082019067c73a5639f6fa7eb3602083019252565b611f39611f23875f52600e60205260405f2090565b611f2d8686613332565b5f5260205260405f2090565b54611fad57611f84600191611f64604051806102e2602082019067d90d74e63915e5c8602083019252565b611deb604051806102e2602082019067e9901b124881a00f602083019252565b935b611fa6604051806102e26020820190678ba7ca188660aeda602083019252565b0192611ebe565b92600190611fd1604051806102e26020820190671eb3b516774b0c76602083019252565b611f86565b6110ee92508486611ffd604051806102e2602082019067bc5543b704bce202602083019252565b61201d604051806102e26020820190677a4d42a3e8bdea83602083019252565b601e831061213d576120cf92612049604051806102e260208201906777e028758fa37c05602083019252565b612069604051806102e2602082019067e41b715d98a42447602083019252565b6120716106a2565b91825261207c613542565b6020830152426040830152606082015261209461356b565b60808201526120a38285613437565b526120ae8184613437565b50611deb604051806102e26020820190674ad78555289f93b8602083019252565b6120ef604051806102e260208201906766f67d2c80b50c90602083019252565b8152612111604051806102e2602082019067f8a21a3a87ed6379602083019252565b612131604051806102e26020820190670c867953e209b12a602083019252565b604051918291826117b1565b509050612160604051806102e2602082019067f579a5065058bc0a602083019252565b6120cf565b5082841115611ec9565b505090612192604051806102e2602082019067bb6f8847a3da9fcc602083019252565b611df2565b5090612192604051806102e260208201906775d8ee3b472af2e3602083019252565b6121d9604051806102e260208201906742f56711f6416dff602083019252565b6121f9604051806102e26020820190677f89da26b7e23dac602083019252565b5f6122048484613437565b5112156122ea57506122c2929161225a91612235604051806102e260208201906745ac63ffe0927a82602083019252565b612255604051806102e260208201906767e967163fd3174c602083019252565b613437565b516122636106a2565b9085825261226f61344b565b6020830152426040830152606082015261228761347a565b60808201526122968285613437565b526122a18184613437565b50611deb604051806102e260208201906708e3af33bf51c90e602083019252565b6122e2604051806102e26020820190675021d302e37dd5cc602083019252565b5f8080611b3e565b9160019061230e604051806102e2602082019067c16103b7b6d830e8602083019252565b61232e604051806102e2602082019067d99833d8cf5aad52602083019252565b0191611b36565b611b3482611aef565b50612347615af6565b611ae4565b50612355615a8f565b611ade565b505061237c604051806102e2602082019067b5cd0ab0cdbe8944602083019252565b611b42565b3461021a575f36600319011261021a5760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b3461021a57604036600319011261021a576020610447602435600435613917565b3461021a57604036600319011261021a57602060ff61242b6004356123ff610560565b905f525f516020615f455f395f51905f52845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461021a57604036600319011261021a57612456602435600435613d6b565b906110ee60405192839215158352604060208401526040830190610acc565b3461021a575f36600319011261021a5760206040515f8152f35b3461021a575f36600319011261021a5760206040517f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f58152f35b3461021a57602036600319011261021a576110ee61176c60043561430e565b604051906124f7602083610670565b5f8252565b3461021a575f36600319011261021a576110ee60405161251d604082610670565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610acc565b3461021a5760e036600319011261021a576004356125603661022f565b61257e60408051679c3c817323d3c6e3602082015260208152610670565b612586614997565b6125a46040805167fc85a0b62c518530602082015260208152610670565b6125c4604051806102e26020820190676b3a377b8bd8629f602083019252565b6125e4604051806102e2602082019067cd75d4934ea6fe94602083019252565b612604604051806102e2602082019067c47744e73665f42c602083019252565b8161262957610bda604051806102e26020820190672d6255166c0e723e602083019252565b610ac77fe3549d384ec638cd041259730b4dcc4bc3285c48ec358bce734bfe6f7810d18f9161266e604051806102e26020820190678e662a9f994d31b7602083019252565b61268e604051806102e2602082019067db53d2d756634a30602083019252565b6126ae604051806102e26020820190676740b35096f4d7c5602083019252565b6126b781614a4c565b6126d7604051806102e2602082019067f9dbc040f2d9d5a7602083019252565b612726816126ed865f52600560205260405f2090565b9060a060059180358455602081013560018501556040810135600285015560608101356003850155608081013560048501550135910155565b612746604051806102e26020820190677c5d82eeb2414208602083019252565b6103c6604051806102e2602082019067bdf743a8535b7eb8602083019252565b3461021a57602036600319011261021a5761277f610576565b61279d60408051674e0c748a19981247602082015260208152610670565b5f516020615f655f395f51905f5254906001600160401b036127ce60ff604085901c1615936001600160401b031690565b16801590816128e7575b60011490816128dd575b1590816128d4575b506128c55761282d908261282460016001600160401b03195f516020615f655f395f51905f525416175f516020615f655f395f51905f5255565b6128905761448d565b61283357005b61285d60ff60401b195f516020615f655f395f51905f5254165f516020615f655f395f51905f5255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290806020810161040b565b6128c0600160401b60ff60401b195f516020615f655f395f51905f525416175f516020615f655f395f51905f5255565b61448d565b63f92ee8a960e01b5f5260045ffd5b9050155f6127ea565b303b1591506127e2565b8391506127d8565b3461021a57604036600319011261021a576105db60043561290e610560565b906129346105d1825f525f516020615f455f395f51905f52602052600160405f20015490565b615450565b3461021a57602036600319011261021a576004355f61296e604051806102e260208201906709b00e280b2f4249602083019252565b61298e604051806102e26020820190672d825343d87950fc602083019252565b6129ae604051806102e2602082019067e970461dd706afc6602083019252565b6129ce604051806102e2602082019067a0631502fc4008ae602083019252565b6129ee604051806102e2602082019067966c0d1306971e69602083019252565b62278d004204612a14604051806102e2602082019067f4f7187097ab858d602083019252565b612a34604051806102e2602082019067e10b51746d2d0c11602083019252565b5f612a55604051806102e2602082019067e4e61f2e4c0eb72f602083019252565b612a75604051806102e2602082019067933d87be40694000602083019252565b5f91612a97604051806102e260208201906715a054c0135a6dd3602083019252565b612ab7604051806102e2602082019067f58f47e3878a4165602083019252565b6001915b600383111580612dba575b15612c5857612aeb604051806102e2602082019067de95bb22c140930f602083019252565b612b0b604051806102e2602082019067b4979236f016fa4f602083019252565b612b4c612b47612b1b8585613332565b60408051602081018b815281830193909352908152612b3b606082610670565b519020620186a0900690565b6146c3565b90612b6d604051806102e2602082019067208af7eae6797e9d602083019252565b612b8d604051806102e2602082019067b01026801815b06a602083019252565b8115612c2d57612be2600192612c0392612bbd604051806102e26020820190675758b555cbb5fcff602083019252565b612bdd604051806102e260208201906764f1bea52e879cf7602083019252565b613023565b94611deb604051806102e2602082019067ac3ad4e261e42b6d602083019252565b925b612c25604051806102e2602082019067307171ee4d4135bc602083019252565b019192612abb565b939260019150612c53604051806102e26020820190678051d3389ec60311602083019252565b612c05565b836110ee9186612c7e604051806102e26020820190678b283fe638ce9d00602083019252565b612c9e604051806102e2602082019067e1e205883f940814602083019252565b8215612d925750612d15612d4292612d3a92612cd0604051806102e26020820190677cc4a5a2a2046453602083019252565b612cf0604051806102e2602082019067e828ae315c1bf998602083019252565b612d10604051806102e260208201906763a4b2f7c4d459a4602083019252565b612ff2565b612d35604051806102e260208201906789edd1fa6f2f6409602083019252565b6146e7565b612710900490565b612d62604051806102e26020820190670571cf30d3202ce8602083019252565b612d82604051806102e2602082019067c400dd735305664f602083019252565b6040519081529081906020820190565b915050612db5604051806102e260208201906731346adea2ac163c602083019252565b612d42565b5081831115612ac6565b90600182811c92168015612df2575b6020831014612dde57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612dd3565b604051905f8260035491612e0f83612dc4565b8083529260018116908115612e925750600114612e33575b6106a092500383610670565b5060035f90815290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b818310612e765750509060206106a092820101612e27565b6020919350806001915483858901015201910190918492612e5e565b602092506106a094915060ff191682840152151560051b820101612e27565b604051905f8260045491612ec483612dc4565b8083529260018116908115612e925750600114612ee7576106a092500383610670565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818310612f2a5750509060206106a092820101612e27565b6020919350806001915483858901015201910190918492612f12565b3461021a575f36600319011261021a575f54600154906110ee600254612faf612f6d612dfc565b60ff612f77612eb1565b936040519788978852602088015260018060a01b038116604088015260a01c161515606086015260c0608086015260c0850190610acc565b9083820360a0850152610acc565b3461021a57604036600319011261021a576020610447602435600435614710565b634e487b7160e01b5f52601160045260245ffd5b8115612ffc570490565b634e487b7160e01b5f52601260045260245ffd5b906001820180921161301e57565b612fde565b9190820180921161301e57565b916130499183549060031b91821b915f19901b19161790565b9055565b601f821161305a57505050565b5f5260205f20906020601f840160051c83019310613092575b601f0160051c01905b818110613087575050565b5f815560010161307c565b9091508190613073565b91909182516001600160401b038111610650576130c3816130bd8454612dc4565b8461304d565b6020601f82116001146130fe5781906130499394955f926130f3575b50508160011b915f199060031b1c19161790565b015190505f806130df565b601f19821690613111845f5260205f2090565b915f5b81811061314b57509583600195969710613133575b505050811b019055565b01515f1960f88460031b161c191690555f8080613129565b9192602060018192868b015181550194019201613114565b80515f55602081015160015560408101516002805460608401516001600160a81b03199091166001600160a01b03939093169290921791151560a090811b60ff60a01b1692909217905560808201516106a092906131c290600361309c565b0151600461309c565b908060209392818452848401375f828201840152601f01601f1916010190565b929061320490610b3295936040865260408601916131cb565b9260208185039101526131cb565b6040519061321f82610635565b60606080835f81525f60208201525f60408201525f838201520152565b6040519061324982610655565b6006548252600754602083015260085460408301526009546060830152600a546080830152600b5460a0830152565b9060405161328581610655565b60a06005829480548452600181015460208501526002810154604085015260038101546060850152600481015460808501520154910152565b634e487b7160e01b5f52603260045260245ffd5b80548210156132e7575f5260205f2001905f90565b6132be565b805490600160401b821015610650578161330e916001613049940181556132d2565b819391549060031b91821b915f19901b19161790565b5f1981019190821161301e57565b9190820391821161301e57565b6040519061334c82610655565b5f60a0838281528260208201528260408201528260608201528260808201520152565b6001600160401b0381116106505760051b60200190565b6040519061339661016083610670565b600a825281601f196133a8600a61336f565b01905f5b8281106133b857505050565b6020906040516133c781610635565b5f81526060838201525f60408201525f606082015260606080820152828285010152016133ac565b90604051918281549182825260208201905f5260205f20925f5b81811061341e5750506106a092500383610670565b8454835260019485019487945060209093019201613409565b80518210156132e75760209160051b010190565b6040519061345a604083610670565b6011825270139151d05512559157d49154d251155053607a1b6020830152565b60405190613489604083610670565b601a82527f4e6567617469766520726573696475616c2064657465637465640000000000006020830152565b5f19811461301e5760010190565b81810392915f13801582851316918412161761301e57565b604051906134ea604083610670565b600e82526d2920aa22afa222ab24a0aa24a7a760911b6020830152565b60405190613516604083610670565b601982527f556e757375616c206665652072617465206465746563746564000000000000006020830152565b60405190613551604083610670565b600b82526a5a45524f5f564f4c554d4560a81b6020830152565b6040519061357a604083610670565b601e82527f457874656e64656420706572696f64206f66207a65726f20766f6c756d6500006020830152565b6119e561366d916135cd604051806102e2602082019067805f2a16697a8783602083019252565b6135ed604051806102e260208201906791b84c61f11364ca602083019252565b61360d604051806102e2602082019067edf95dd0b362098a602083019252565b61362d604051806102e26020820190678cb6fd5e00991ad9602083019252565b61364d604051806102e2602082019067915ee6a9d39c1fd2602083019252565b6114ec604051806102e26020820190677c5174c8b76456ed602083019252565b9061368e604051806102e260208201906790b69987b9c69080602083019252565b6136ae604051806102e26020820190673cc12b5e0eb55186602083019252565b81516136cf604051806102e260208201906603848ff88a6615602083019252565b6136ef604051806102e26020820190678c559f8fc407795c602083019252565b8061375d57509050613717604051806102e2602082019067de105720401be526602083019252565b613737604051806102e2602082019067c6db98ebde9afb2f602083019252565b613757604051806102e2602082019067ec2042e1b7b8a653602083019252565b60065490565b61377d604051806102e26020820190674632344a44d8ed90602083019252565b61379d604051806102e2602082019067bfbe0cdf53b10eec602083019252565b6137bd604051806102e2602082019067fb4702c1fd42bb8b602083019252565b80601e108015613909575b806138fb575b156138f557601e905b6137f7604051806102e2602082019067cc4a98d56cfa248f602083019252565b613817604051806102e260208201906788ef64fbbda5f6c0602083019252565b5f90613839604051806102e26020820190679284464fa7a923da602083019252565b613859604051806102e26020820190674631098032230924602083019252565b6138638382613332565b905b808210613894575050610b32929350612d10604051806102e2602082019067bd17cc4b69132a94602083019252565b90916138cd6001916138bc604051806102e260208201906728083abdc186ac51602083019252565b6138c68589613437565b5190613023565b926138ee604051806102e26020820190670f3fe9f65028e149602083019252565b0190613865565b806137d7565b50613904615b1c565b6137ce565b50613912615ab4565b6137c8565b91909161393a604051806102e2602082019067805f2a16697a8783602083019252565b61395a604051806102e260208201906791b84c61f11364ca602083019252565b61397a604051806102e2602082019067edf95dd0b362098a602083019252565b61016d8311156139b3576139a4604051806102e2602082019067afde9ab242ff8fca602083019252565b631f17089160e31b5f5260045ffd5b6119e56139da9161362d604051806102e26020820190678cb6fd5e00991ad9602083019252565b916139fb604051806102e260208201906790b69987b9c69080602083019252565b613a1b604051806102e26020820190673cc12b5e0eb55186602083019252565b825190613a3d604051806102e260208201906603848ff88a6615602083019252565b613a5d604051806102e26020820190678c559f8fc407795c602083019252565b81613a865750509050613717604051806102e2602082019067de105720401be526602083019252565b613aa6604051806102e26020820190674632344a44d8ed90602083019252565b613ac6604051806102e2602082019067bfbe0cdf53b10eec602083019252565b613ae6604051806102e2602082019067fb4702c1fd42bb8b602083019252565b8181108015613c1f575b80613c11575b15613c0a57905b613b1d604051806102e2602082019067cc4a98d56cfa248f602083019252565b613b3d604051806102e260208201906788ef64fbbda5f6c0602083019252565b5f90613b5f604051806102e26020820190679284464fa7a923da602083019252565b613b7f604051806102e26020820190674631098032230924602083019252565b613b898382613332565b905b808210613bba575050610b32929350612d10604051806102e2602082019067bd17cc4b69132a94602083019252565b9091613be26001916138bc604051806102e260208201906728083abdc186ac51602083019252565b92613c03604051806102e26020820190670f3fe9f65028e149602083019252565b0190613b8b565b5080613afd565b50613c1a615b1c565b613af6565b50613c28615ab4565b613af0565b60405190613c3c604083610670565b6013825272125b9d985b1a59081b595c98da185b9d081251606a1b6020830152565b60405190613c6d604083610670565b601682527546656520726174652062656c6f77206d696e696d756d60501b6020830152565b60405190613ca1604083610670565b601882527f46656520726174652065786365656473206d6178696d756d00000000000000006020830152565b60405190613cdc606083610670565b602a8252692062617365207261746560b01b6040837f54696572203120726174652073686f756c64206265206c6f776572207468616e60208201520152565b60405190613d2a606083610670565b602c82526b20746965722031207261746560a01b6040837f54696572203220726174652073686f756c64206265206c6f776572207468616e60208201520152565b90613d8c604051806102e26020820190671bc87bab31c22488602083019252565b613dac604051806102e260208201906770999bf81ba3ae11602083019252565b613dcc604051806102e2602082019067ccce6f51c7c0f883602083019252565b81613e3d575050613df3604051806102e260208201906734f89b0ac0383546602083019252565b613e13604051806102e2602082019067f5d726a571cb776f602083019252565b613e33604051806102e2602082019067ab2abbf0da6f0e46602083019252565b5f90610b32613c2d565b613e5d604051806102e2602082019067833320855afce42a602083019252565b613e7d604051806102e26020820190672cf66f6e50d12504602083019252565b613e9d604051806102e2602082019067fb30f5b31fd7c3e1602083019252565b600a811015613f12575050613ec8604051806102e2602082019067aeee43987b823b1c602083019252565b613ee8604051806102e260208201906739d21ce56e5cacbf602083019252565b613f08604051806102e2602082019067b3f465aeae787dcb602083019252565b5f90610b32613c5e565b6101f490613f36604051806102e2602082019067febd65c6ea47c234602083019252565b613f56604051806102e26020820190671451f39cd0862425602083019252565b613f76604051806102e260208201906752be4423c520dec2602083019252565b1115613fe75750613f9d604051806102e260208201906704e8b5069863ce62602083019252565b613fbd604051806102e2602082019067fe4450be6aa220cd602083019252565b613fdd604051806102e26020820190676062618bf108132c602083019252565b5f90610b32613c92565b610cf661405c9161400e604051806102e260208201906749da9b2a0896bcf3602083019252565b61402e604051806102e26020820190676009f91191943c3c602083019252565b61404e604051806102e2602082019067d7b5e4145ceb247b602083019252565b5f52600560205260405f2090565b61407c604051806102e2602082019067d2e7fe5bff57b115602083019252565b61409c604051806102e2602082019067e293c9f1af8b08c8602083019252565b80516142e957506140c3604051806102e260208201906785f28b23052fa77e602083019252565b6140e3604051806102e2602082019067d7cbe11054bafdb2602083019252565b6140eb61323c565b61410b604051806102e26020820190672277910ed4046301602083019252565b61412b604051806102e260208201906718c171ed2acb2258602083019252565b606081019081518151105f146141a757505061415d604051806102e2602082019067237545ed7842e02b602083019252565b61417d604051806102e26020820190672b530357a716056a602083019252565b61419d604051806102e26020820190674f852ca528d8811c602083019252565b5f90610b32613ccd565b6080906141ca604051806102e26020820190670e39d2ea6602ab2a602083019252565b6141ea604051806102e26020820190672add9db82382038d602083019252565b61420a604051806102e26020820190678b67cd57f66fe1c2602083019252565b01519051101561427e57614234604051806102e26020820190674e719f9d3ddde770602083019252565b614254604051806102e260208201906732a7422734116847602083019252565b614274604051806102e260208201906748fe659cd372c85f602083019252565b5f90610b32613d1b565b61429e604051806102e26020820190678b241d68dad49a49602083019252565b6142be604051806102e2602082019067b27fcb0def21d9ca602083019252565b6142de604051806102e26020820190671333085ebf315279602083019252565b600190610b326124e8565b614309604051806102e2602082019067aa7bd1ef07c99ac1602083019252565b6140eb565b610cf661437e9161431d61333f565b5061433e604051806102e260208201906725694f3b500c8727602083019252565b61435e604051806102e260208201906755db04649f476138602083019252565b61404e604051806102e2602082019067a81dddde35cce75b602083019252565b61439e604051806102e2602082019067cfeacd5f5c30c888602083019252565b6143be604051806102e2602082019067e1de7a3989f5e996602083019252565b805161442d57506143e5604051806102e260208201906787d1a41267820b7c602083019252565b614405604051806102e2602082019067c0c9602937fe5a3a602083019252565b614425604051806102e260208201906744f4d4d1b740d7e8602083019252565b610b3261323c565b61444d604051806102e2602082019067aae439eeea9dd006602083019252565b61446d604051806102e2602082019067e5ca59cf4e90f975602083019252565b610b32604051806102e26020820190674748c734aa8669f6602083019252565b614638906144af6040805167fdff48a7aedafc9f602082015260208152610670565b6144cf604051806102e26020820190677d737efd6470c80e602083019252565b6144ef604051806102e260208201906772afa60d12e629fa602083019252565b61450f604051806102e2602082019067f985dfc4b3585931602083019252565b614517615e3b565b614537604051806102e2602082019067b8c73956ea197ee5602083019252565b614557604051806102e260208201906752cddd31306ceb86602083019252565b61455f615e3b565b61457f604051806102e26020820190679693533c22691253602083019252565b61459f604051806102e26020820190673857901a36adc5e1602083019252565b6145a88161519d565b506145c9604051806102e2602082019067b5ac84373741f43a602083019252565b6145e9604051806102e26020820190672c96be1d50cdff18602083019252565b6145f281615239565b50614613604051806102e26020820190678f332cac73ccef4f602083019252565b614633604051806102e2602082019067fac2e3f684527c44602083019252565b6152fa565b50614659604051806102e26020820190672340353ea17c29d9602083019252565b6106a0614664610691565b60fa80825269021e19e0c9bab240000060208301819052690a968163f0a57b4000006040840181905260c860608501819052609660808601819052606460a0909601869052600694909455600792909255600855600955600a55600b55565b90670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561301e57565b9060fa82029180830460fa149015171561301e57565b8181029291811591840414171561301e57565b614730604051806102e2602082019067b5aa0b154d4b349c602083019252565b614750604051806102e260208201906777c8c2449519b995602083019252565b614770604051806102e260208201906785431a24268fc98d602083019252565b8061479557610c6e604051806102e26020820190674124440c24a4568e602083019252565b6147b5604051806102e260208201906724503fc3bc6ca44e602083019252565b6147d5604051806102e26020820190673da1c354569a0389602083019252565b6147f5604051806102e26020820190673bf1acf7c1a94357602083019252565b600a8210806148cb575b80156148b1575b15614864576148618261482f604051806102e2602082019067e9393ba0a9a1369f602083019252565b61484f604051806102e26020820190674e11ef1ca2ae2a04602083019252565b6336e6824b60e21b5f52600452602490565b5ffd5b610b3291612d3a9161488c604051806102e260208201906735c9f3bb306cedcf602083019252565b6148ac604051806102e26020820190679eba9a9efb1fb954602083019252565b6146fd565b506101f48211801561480657506148c6615b5e565b614806565b506148d4615b3d565b6147ff565b335f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff161561491157565b63e2517d3f60e01b5f52336004527fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177560245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561498057565b63e2517d3f60e01b5f52336004525f60245260445ffd5b335f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b0602052604090205460ff16156149cf57565b63e2517d3f60e01b5f52336004527f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f560245260445ffd5b5f8181525f516020615f455f395f51905f526020908152604080832033845290915290205460ff1615614a365750565b63e2517d3f60e01b5f523360045260245260445ffd5b614a6c604051806102e26020820190674f0115ae7fd19f3d602083019252565b614a8c604051806102e2602082019067cff66ac7ad408d1b602083019252565b614aac604051806102e2602082019067e3da6b3f7c3ba141602083019252565b803590600a82108061518f575b8015615175575b15614b095761486182614ae9604051806102e2602082019067dd5b985d5b7c9e88602083019252565b61484f604051806102e26020820190673fe217f8122a1780602083019252565b90614b2a604051806102e26020820190675d43a5e7adaf87d6602083019252565b614b4a604051806102e2602082019067422081665b26b54a602083019252565b614b6a604051806102e26020820190673607006dd6fa99eb602083019252565b606082013591600a831080615167575b801561514d575b15614bca5761486183614baa604051806102e2602082019067ef64f806f1ed91b8602083019252565b61484f604051806102e2602082019067c39f6e5f9e8e96b3602083019252565b9091614bec604051806102e26020820190673b19c5cdd50d1cf9602083019252565b614c0c604051806102e2602082019067c2b5da159143ea56602083019252565b614c2c604051806102e260208201906712662010c204b827602083019252565b608082013592600a84108061513f575b8015615125575b15614c8c5761486184614c6c604051806102e2602082019067867171f66fb2943e602083019252565b61484f604051806102e260208201906794bb184101969114602083019252565b614caf604094939451806102e260208201906767fb27694bf1ede6602083019252565b614ccf604051806102e260208201906740dae8ce4bae3715602083019252565b614cef604051806102e26020820190672b7adb491e9c85a3602083019252565b60a084013593600a851080615117575b80156150fd575b15614d4f5761486185614d2f604051806102e260208201906760eeb19146f1e5d2602083019252565b61484f604051806102e2602082019067aa87fe3096faafdc602083019252565b614d72604095949551806102e2602082019067dab8c05118269ede602083019252565b614d92604051806102e2602082019067e3dee722d80841cb602083019252565b614db2604051806102e2602082019067c3a9ef9f1dbce158602083019252565b6020810135908115806150ef575b80156150d4575b15614e1b57614dec604051806102e2602082019067867fbbf32b47c64b602083019252565b614e0c604051806102e260208201906721ab90b66417e11a602083019252565b63adf8131b60e01b5f5260045ffd5b604090614e3d8251806102e26020820190673ed8dbfb8b25957d602083019252565b815167deba7507bb01d4576020820152614e5b9080604081016102e2565b815167d292367d2a5d66726020820152614e799080604081016102e2565b013511614ec057614ea0604051806102e26020820190677cd9881b96acde13602083019252565b614e0c604051806102e26020820190677e562dce734bf047602083019252565b614ee0604051806102e2602082019067a666f98b0cc1b9e3602083019252565b614f00604051806102e2602082019067fd8d2e4eb9cbf012602083019252565b614f20604051806102e2602082019067c30592a9108e6787602083019252565b811115614f6757614f47604051806102e26020820190679aac09fbf43e940b602083019252565b614e0c604051806102e26020820190670c3930840d7f3b64602083019252565b614f87604051806102e2602082019067c37a8a710defaa86602083019252565b614fa7604051806102e2602082019067da0bf8a572d49c03602083019252565b614fc7604051806102e2602082019067e49fc01267574d67602083019252565b82111561500e57614fee604051806102e2602082019067ea77b2441fd2dc3d602083019252565b614e0c604051806102e2602082019067fb7d7a71f1e61545602083019252565b61502e604051806102e260208201906708e70f837105198c602083019252565b61504e604051806102e260208201906767ea3067475fbec2602083019252565b61506e604051806102e2602082019067b100ca0f4dcfa951602083019252565b11156150b457615094604051806102e2602082019067dc08fe5523a8af65602083019252565b614e0c604051806102e260208201906718b8a5c08106f16e602083019252565b6106a0604051806102e2602082019067a6b86cb1331c34c3602083019252565b506040810135158015614dc757506150ea615ca8565b614dc7565b506150f8615c87565b614dc0565b506101f485118015614d065750615112615c66565b614d06565b50615120615c45565b614cff565b506101f484118015614c43575061513a615c24565b614c43565b50615148615c03565b614c3c565b506101f483118015614b815750615162615be2565b614b81565b50615170615bc1565b614b7a565b506101f482118015614ac0575061518a615ba0565b614ac0565b50615198615b7f565b614ab9565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16615234576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f516020615f055f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff16615234576001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c60205260409020805460ff1916600117905533906001600160a01b03167fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217755f516020615f055f395f51905f525f80a4600190565b6001600160a01b0381165f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b0602052604090205460ff16615234576001600160a01b0381165f9081527ffa006db768b1e8c7c1632e058ea72e339a9273fbcc219d3c747e82fc536729b060205260409020805460ff1916600117905533906001600160a01b03167f82db594318110a04b6349ce48645aa69f0892751bc893d15e61d9e2b9c4630f55f516020615f055f395f51905f525f80a4600190565b5f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661544a575f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916600117905533916001600160a01b0316905f516020615f055f395f51905f525f80a4600190565b50505f90565b5f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561544a575f8181525f516020615f455f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516352d1902d60e01b81529290916020846004816001600160a01b0387165afa5f9481615570575b5061553b57634c9c8ce360e01b5f526001600160a01b03831660045260245ffd5b90915f516020615f255f395f51905f52840361555c576106a0929350615d99565b632a87526960e21b5f52600484905260245ffd5b9094506020813d60201161559c575b8161558c60209383610670565b8101031261021a5751935f61551a565b3d915061557f565b604051906155b3606083610670565b60238252621d5b9d60ea1b6040837f526573696475616c2065786365656473207472616e73616374696f6e20616d6f60208201520152565b604051906155fa604083610670565b601a82527f4170706c69656420726174652062656c6f77206d696e696d756d0000000000006020830152565b60405190615635604083610670565b601c82527f4170706c69656420726174652065786365656473206d6178696d756d000000006020830152565b60405190615670604083610670565b6014825273086c2d8c6ead8c2e8d2dedc40dad2e6dac2e8c6d60631b6020830152565b91906156b5604051806102e2602082019067d6f3bdd156aa03fc602083019252565b6156d5604051806102e260208201906785214db735c94682602083019252565b6156f5604051806102e2602082019067af91e78e8c38cc30602083019252565b8083111561576a57505050615720604051806102e2602082019067844e2b40bc6cde8a602083019252565b615740604051806102e2602082019067b570d739d42a0959602083019252565b615760604051806102e26020820190677026bcbf64586077602083019252565b5f90610b326155a4565b61578a604051806102e2602082019067663d215eb1a5f2cf602083019252565b6157aa604051806102e260208201906783dba432b2cec792602083019252565b6157ca604051806102e2602082019067b7d9deea5411b737602083019252565b600a821015615840575050506157f6604051806102e26020820190674481afd64849cffb602083019252565b615816604051806102e2602082019067021b2fc0d08c51d1602083019252565b615836604051806102e2602082019067df6cfa2a8a192ae2602083019252565b5f90610b326155eb565b615860604051806102e260208201906783b62e0eedf99a7e602083019252565b615880604051806102e2602082019067bacee8b96f63448d602083019252565b6158a0604051806102e2602082019067643890c3855b8c42602083019252565b6101f4821115615917575050506158cd604051806102e260208201906777a489e6e32f1442602083019252565b6158ed604051806102e2602082019067faa2ad1d4d3e482a602083019252565b61590d604051806102e260208201906702dde887041a31f5602083019252565b5f90610b32615626565b61597f91612d3a9161593f604051806102e2602082019067b0c173eac201e9a2602083019252565b61595f604051806102e26020820190673bf345539ddb5661602083019252565b6148ac604051806102e26020820190676735b78584117d16602083019252565b906159a0604051806102e260208201906773fa8803d756179c602083019252565b6159c0604051806102e260208201906769da72965c2cc882602083019252565b14615a2f576159e5604051806102e2602082019067b5c23461022219dc602083019252565b615a05604051806102e26020820190675339cc2beac6a70e602083019252565b615a25604051806102e26020820190673269b493f8b3fcb4602083019252565b5f90610b32615661565b615a4f604051806102e2602082019067da5d7a9ef7d7e7a7602083019252565b615a6f604051806102e2602082019067b4b7741d1f55bbca602083019252565b6142de604051806102e2602082019067b7cf7f0309fed57a602083019252565b615ab060408051679b3239249fc1469f60c01b602082015260208152610670565b5f90565b615ab06040805167722f095d6fe6690f60c11b602082015260208152610670565b615ab060408051672eb0f51321b6284360c11b602082015260208152610670565b615b17604080516711ffc15e94d1d72d60c01b602082015260208152610670565b600190565b615b17604080516707f9fef40ab6529560c31b602082015260208152610670565b615b1760408051675b2920d65bbd2e4f60c01b602082015260208152610670565b615b176040805167f6275cf06424963560c01b602082015260208152610670565b615b1760408051672afb8ece48e719cb60c11b602082015260208152610670565b615b176040805167251021355c981c8760c21b602082015260208152610670565b615b176040805167419025bbde3ab04f60c01b602082015260208152610670565b615b17604080516711be83a07bb5931560c11b602082015260208152610670565b615b17604080516701d95aaf64442f4360c41b602082015260208152610670565b615b1760408051671e8f1e62e7bb0c8760c11b602082015260208152610670565b615b176040805167c452d0152af3d3cb60c01b602082015260208152610670565b615b17604080516709a7d12eab7a400960c21b602082015260208152610670565b615b1760408051676d44ed800829005360c01b602082015260208152610670565b615b176040805166f97a7a868e65c160c01b602082015260208152610670565b615b1760408051674a6900822a6f224360c01b602082015260208152610670565b600160ff1b811461301e575f0390565b604080516702197d60f0d74c876020808301919091528152615d1b9190610670565b615d3b604051806102e2602082019067d520f05f4cc56f77602083019252565b615d5b604051806102e2602082019067c53068484663bb06602083019252565b5f8112801590615d8b575b80615d7d575b15615d745790565b610b3290615ce9565b50615d86615cc8565b615d6c565b50615d94615ad5565b615d66565b90813b15615e1a575f516020615f255f395f51905f5280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115615e0257615dff91615e66565b50565b505034615e0b57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b60ff5f516020615f655f395f51905f525460401c1615615e5757565b631afcd79f60e31b5f5260045ffd5b5f80610b3293602081519101845af43d15615ea2573d91615e86836106b1565b92615e946040519485610670565b83523d5f602085013e615ea6565b6060915b90615eca5750805115615ebb57602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615efb575b615edb575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615ed356fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220d025daeb639717c0ee4076b326607adbcc26e6daae060dc4d2d82f26d440180a64736f6c634300081c0033",
1116
+ "linkReferences": {},
1117
+ "deployedLinkReferences": {}
1118
+ }