@decaf-ts/integrations 0.3.3 → 0.3.5

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 (643) hide show
  1. package/dist/integrations.cjs +48 -2
  2. package/dist/integrations.js +49 -2
  3. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  4. package/lib/cjs/blob/azure/index.cjs +2 -2
  5. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  6. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  7. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  8. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  9. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  10. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  11. package/lib/cjs/blob/core/index.cjs +2 -2
  12. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  13. package/lib/cjs/blob/gcp/index.cjs +2 -2
  14. package/lib/cjs/blob/index.cjs +2 -2
  15. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
  16. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
  17. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
  18. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
  19. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
  20. package/lib/cjs/blob/ipfs/index.cjs +2 -2
  21. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  22. package/lib/cjs/blob/local/index.cjs +2 -2
  23. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
  24. package/lib/cjs/blob/memory/index.cjs +2 -2
  25. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  26. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  27. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  28. package/lib/cjs/blob/s3/index.cjs +2 -2
  29. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  30. package/lib/cjs/docker/index.cjs +2 -2
  31. package/lib/cjs/graph/constants.cjs +2 -2
  32. package/lib/cjs/graph/decorators.cjs +2 -2
  33. package/lib/cjs/graph/errors/GraphCycleError.cjs +2 -2
  34. package/lib/cjs/graph/errors/GraphExecutionError.cjs +2 -2
  35. package/lib/cjs/graph/errors/GraphInputError.cjs +2 -2
  36. package/lib/cjs/graph/errors/GraphLoopLimitError.cjs +2 -2
  37. package/lib/cjs/graph/errors/GraphPinningError.cjs +2 -2
  38. package/lib/cjs/graph/errors/GraphPortError.cjs +2 -2
  39. package/lib/cjs/graph/errors/GraphStoreError.cjs +2 -2
  40. package/lib/cjs/graph/errors/GraphTopologyError.cjs +2 -2
  41. package/lib/cjs/graph/errors/index.cjs +2 -2
  42. package/lib/cjs/graph/events/GraphExecutionEvent.cjs +2 -2
  43. package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs +2 -2
  44. package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs +2 -2
  45. package/lib/cjs/graph/events/GraphExecutionObserver.cjs +2 -2
  46. package/lib/cjs/graph/events/index.cjs +2 -2
  47. package/lib/cjs/graph/execution/CodeSandboxEvaluator.cjs +4 -0
  48. package/lib/cjs/graph/execution/GraphExecutionContext.cjs +2 -2
  49. package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +4 -2
  50. package/lib/cjs/graph/execution/GraphExecutionFrame.cjs +2 -2
  51. package/lib/cjs/graph/execution/GraphExecutionResult.cjs +2 -2
  52. package/lib/cjs/graph/execution/GraphNodeExecutor.cjs +2 -2
  53. package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +95 -0
  54. package/lib/cjs/graph/execution/index.cjs +4 -2
  55. package/lib/cjs/graph/index.cjs +7 -2
  56. package/lib/cjs/graph/loops/ConditionExpressionEvaluator.cjs +87 -0
  57. package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs +2 -2
  58. package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +25 -3
  59. package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs +2 -2
  60. package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs +2 -2
  61. package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs +2 -2
  62. package/lib/cjs/graph/loops/index.cjs +3 -2
  63. package/lib/cjs/graph/nodes/agent.cjs +110 -0
  64. package/lib/cjs/graph/nodes/category-styles.cjs +38 -0
  65. package/lib/cjs/graph/nodes/flow-control.cjs +436 -0
  66. package/lib/cjs/graph/nodes/index.cjs +34 -0
  67. package/lib/cjs/graph/nodes/triggers.cjs +250 -0
  68. package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs +2 -2
  69. package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs +2 -2
  70. package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs +2 -2
  71. package/lib/cjs/graph/pinning/GraphPinningService.cjs +2 -2
  72. package/lib/cjs/graph/pinning/index.cjs +2 -2
  73. package/lib/cjs/graph/planning/GraphExecutionPlan.cjs +2 -2
  74. package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs +2 -2
  75. package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs +2 -2
  76. package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs +2 -2
  77. package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs +2 -2
  78. package/lib/cjs/graph/planning/GraphRelationResolver.cjs +2 -2
  79. package/lib/cjs/graph/planning/GraphTopology.cjs +2 -2
  80. package/lib/cjs/graph/planning/index.cjs +2 -2
  81. package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs +2 -2
  82. package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs +2 -2
  83. package/lib/cjs/graph/registry/index.cjs +2 -2
  84. package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
  85. package/lib/cjs/graph/snapshots/index.cjs +2 -2
  86. package/lib/cjs/graph/store/GraphCachedValue.cjs +2 -2
  87. package/lib/cjs/graph/store/GraphValueKey.cjs +2 -2
  88. package/lib/cjs/graph/store/GraphValueStore.cjs +2 -2
  89. package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs +2 -2
  90. package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
  91. package/lib/cjs/graph/store/index.cjs +2 -2
  92. package/lib/cjs/graph/types.cjs +2 -2
  93. package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs +2 -2
  94. package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs +2 -2
  95. package/lib/cjs/graph/validation/GraphValueValidator.cjs +2 -2
  96. package/lib/cjs/graph/validation/index.cjs +2 -2
  97. package/lib/cjs/index.cjs +5 -5
  98. package/lib/cjs/keycloak/index.cjs +2 -2
  99. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +5 -4
  100. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +5 -4
  101. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +5 -4
  102. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +8 -7
  103. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +5 -4
  104. package/lib/cjs/keycloak/services/KeycloakService.cjs +16 -13
  105. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +5 -4
  106. package/lib/cjs/keycloak/services/index.cjs +2 -2
  107. package/lib/cjs/keycloak/services/runtime.cjs +20 -0
  108. package/lib/cjs/keycloak/types.cjs +2 -2
  109. package/lib/cjs/kibana/helpers.cjs +2 -2
  110. package/lib/cjs/kibana/index.cjs +2 -2
  111. package/lib/cjs/kibana/services/KibanaAuthService.cjs +6 -5
  112. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +9 -8
  113. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +7 -6
  114. package/lib/cjs/kibana/services/KibanaRoleService.cjs +5 -4
  115. package/lib/cjs/kibana/services/KibanaService.cjs +13 -10
  116. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +5 -4
  117. package/lib/cjs/kibana/services/KibanaUserService.cjs +5 -4
  118. package/lib/cjs/kibana/services/index.cjs +2 -2
  119. package/lib/cjs/kibana/services/runtime.cjs +20 -0
  120. package/lib/cjs/kibana/types.cjs +2 -2
  121. package/lib/cjs/nest/authService.cjs +2 -2
  122. package/lib/cjs/nest/index.cjs +2 -2
  123. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  124. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  125. package/lib/cjs/nest/logging.cjs +2 -2
  126. package/lib/cjs/nest/types.cjs +2 -2
  127. package/lib/cjs/nest/utils.cjs +2 -2
  128. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  129. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  130. package/lib/cjs/secrets/aws/index.cjs +2 -2
  131. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  132. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  133. package/lib/cjs/secrets/azure/index.cjs +2 -2
  134. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  135. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  136. package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
  137. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  138. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  139. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  140. package/lib/cjs/secrets/core/index.cjs +2 -2
  141. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  142. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  143. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  144. package/lib/cjs/secrets/index.cjs +2 -2
  145. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  146. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  147. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  148. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  149. package/lib/cjs/secrets/model/index.cjs +2 -2
  150. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  151. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  152. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  153. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  154. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  155. package/lib/cjs/secrets/vault/index.cjs +2 -2
  156. package/lib/cjs/shared/runtime.cjs +2 -2
  157. package/lib/cjs/utils.cjs +2 -2
  158. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  159. package/lib/esm/blob/azure/index.js +1 -1
  160. package/lib/esm/blob/core/BlobErrors.js +1 -1
  161. package/lib/esm/blob/core/BlobKey.js +1 -1
  162. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  163. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  164. package/lib/esm/blob/core/BlobTypes.js +1 -1
  165. package/lib/esm/blob/core/BlobValue.js +1 -1
  166. package/lib/esm/blob/core/index.js +1 -1
  167. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  168. package/lib/esm/blob/gcp/index.js +1 -1
  169. package/lib/esm/blob/index.js +1 -1
  170. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
  171. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
  172. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
  173. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
  174. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
  175. package/lib/esm/blob/ipfs/index.js +1 -1
  176. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  177. package/lib/esm/blob/local/index.js +1 -1
  178. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  179. package/lib/esm/blob/memory/index.js +1 -1
  180. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  181. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  182. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  183. package/lib/esm/blob/s3/index.js +1 -1
  184. package/lib/esm/docker/DockerComposeService.js +1 -1
  185. package/lib/esm/docker/index.js +1 -1
  186. package/lib/esm/graph/constants.js +1 -1
  187. package/lib/esm/graph/decorators.js +1 -1
  188. package/lib/esm/graph/errors/GraphCycleError.js +1 -1
  189. package/lib/esm/graph/errors/GraphExecutionError.js +1 -1
  190. package/lib/esm/graph/errors/GraphInputError.js +1 -1
  191. package/lib/esm/graph/errors/GraphLoopLimitError.js +1 -1
  192. package/lib/esm/graph/errors/GraphPinningError.js +1 -1
  193. package/lib/esm/graph/errors/GraphPortError.js +1 -1
  194. package/lib/esm/graph/errors/GraphStoreError.js +1 -1
  195. package/lib/esm/graph/errors/GraphTopologyError.js +1 -1
  196. package/lib/esm/graph/errors/index.js +1 -1
  197. package/lib/esm/graph/events/GraphExecutionEvent.js +1 -1
  198. package/lib/esm/graph/events/GraphExecutionEventEmitter.js +1 -1
  199. package/lib/esm/graph/events/GraphExecutionEventFactory.js +1 -1
  200. package/lib/esm/graph/events/GraphExecutionObserver.js +1 -1
  201. package/lib/esm/graph/events/index.js +1 -1
  202. package/lib/esm/graph/execution/CodeSandboxEvaluator.js +18 -0
  203. package/lib/esm/graph/execution/GraphExecutionContext.js +1 -1
  204. package/lib/esm/graph/execution/GraphExecutionEngine.js +3 -1
  205. package/lib/esm/graph/execution/GraphExecutionFrame.js +1 -1
  206. package/lib/esm/graph/execution/GraphExecutionResult.js +1 -1
  207. package/lib/esm/graph/execution/GraphNodeExecutor.js +1 -1
  208. package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +90 -0
  209. package/lib/esm/graph/execution/index.js +3 -1
  210. package/lib/esm/graph/index.js +6 -1
  211. package/lib/esm/graph/loops/ConditionExpressionEvaluator.js +82 -0
  212. package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js +1 -1
  213. package/lib/esm/graph/loops/GraphConditionEvaluator.js +24 -2
  214. package/lib/esm/graph/loops/GraphLoopExecutionContext.js +1 -1
  215. package/lib/esm/graph/loops/UntilGraphNodeExecutor.js +1 -1
  216. package/lib/esm/graph/loops/WhileGraphNodeExecutor.js +1 -1
  217. package/lib/esm/graph/loops/index.js +2 -1
  218. package/lib/esm/graph/nodes/agent.js +101 -0
  219. package/lib/esm/graph/nodes/category-styles.js +34 -0
  220. package/lib/esm/graph/nodes/flow-control.js +427 -0
  221. package/lib/esm/graph/nodes/index.js +17 -0
  222. package/lib/esm/graph/nodes/triggers.js +241 -0
  223. package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js +1 -1
  224. package/lib/esm/graph/pinning/GraphPinningMetadata.js +1 -1
  225. package/lib/esm/graph/pinning/GraphPinningPolicy.js +1 -1
  226. package/lib/esm/graph/pinning/GraphPinningService.js +1 -1
  227. package/lib/esm/graph/pinning/index.js +1 -1
  228. package/lib/esm/graph/planning/GraphExecutionPlan.js +1 -1
  229. package/lib/esm/graph/planning/GraphExecutionPlanEdge.js +1 -1
  230. package/lib/esm/graph/planning/GraphExecutionPlanLayer.js +1 -1
  231. package/lib/esm/graph/planning/GraphExecutionPlanNode.js +1 -1
  232. package/lib/esm/graph/planning/GraphExecutionPlanner.js +1 -1
  233. package/lib/esm/graph/planning/GraphRelationResolver.js +1 -1
  234. package/lib/esm/graph/planning/GraphTopology.js +1 -1
  235. package/lib/esm/graph/planning/index.js +1 -1
  236. package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js +1 -1
  237. package/lib/esm/graph/registry/GraphNodeExecutorResolver.js +1 -1
  238. package/lib/esm/graph/registry/index.js +1 -1
  239. package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js +1 -1
  240. package/lib/esm/graph/snapshots/index.js +1 -1
  241. package/lib/esm/graph/store/GraphCachedValue.js +1 -1
  242. package/lib/esm/graph/store/GraphValueKey.js +1 -1
  243. package/lib/esm/graph/store/GraphValueStore.js +1 -1
  244. package/lib/esm/graph/store/GraphValueStoreAdapter.js +1 -1
  245. package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js +1 -1
  246. package/lib/esm/graph/store/index.js +1 -1
  247. package/lib/esm/graph/types.js +1 -1
  248. package/lib/esm/graph/validation/GraphDefinitionValidator.js +1 -1
  249. package/lib/esm/graph/validation/GraphPortSchemaResolver.js +1 -1
  250. package/lib/esm/graph/validation/GraphValueValidator.js +1 -1
  251. package/lib/esm/graph/validation/index.js +1 -1
  252. package/lib/esm/index.js +4 -4
  253. package/lib/esm/keycloak/index.js +1 -1
  254. package/lib/esm/keycloak/services/KeycloakAuthService.js +4 -3
  255. package/lib/esm/keycloak/services/KeycloakClientService.js +4 -3
  256. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +4 -3
  257. package/lib/esm/keycloak/services/KeycloakRealmService.js +4 -3
  258. package/lib/esm/keycloak/services/KeycloakRoleService.js +4 -3
  259. package/lib/esm/keycloak/services/KeycloakService.js +15 -12
  260. package/lib/esm/keycloak/services/KeycloakUserService.js +4 -3
  261. package/lib/esm/keycloak/services/index.js +1 -1
  262. package/lib/esm/keycloak/services/runtime.js +15 -0
  263. package/lib/esm/keycloak/types.js +1 -1
  264. package/lib/esm/kibana/helpers.js +1 -1
  265. package/lib/esm/kibana/index.js +1 -1
  266. package/lib/esm/kibana/services/KibanaAuthService.js +5 -4
  267. package/lib/esm/kibana/services/KibanaDashboardService.js +5 -4
  268. package/lib/esm/kibana/services/KibanaDataViewService.js +4 -3
  269. package/lib/esm/kibana/services/KibanaRoleService.js +4 -3
  270. package/lib/esm/kibana/services/KibanaService.js +12 -9
  271. package/lib/esm/kibana/services/KibanaSpaceService.js +4 -3
  272. package/lib/esm/kibana/services/KibanaUserService.js +4 -3
  273. package/lib/esm/kibana/services/index.js +1 -1
  274. package/lib/esm/kibana/services/runtime.js +15 -0
  275. package/lib/esm/kibana/types.js +1 -1
  276. package/lib/esm/nest/authService.js +1 -1
  277. package/lib/esm/nest/index.js +1 -1
  278. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  279. package/lib/esm/nest/keycloakModule.js +1 -1
  280. package/lib/esm/nest/logging.js +1 -1
  281. package/lib/esm/nest/types.js +1 -1
  282. package/lib/esm/nest/utils.js +1 -1
  283. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  284. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  285. package/lib/esm/secrets/aws/index.js +1 -1
  286. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  287. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  288. package/lib/esm/secrets/azure/index.js +1 -1
  289. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  290. package/lib/esm/secrets/core/SecretName.js +1 -1
  291. package/lib/esm/secrets/core/SecretReference.js +1 -1
  292. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  293. package/lib/esm/secrets/core/SecretService.js +1 -1
  294. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  295. package/lib/esm/secrets/core/index.js +1 -1
  296. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  297. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  298. package/lib/esm/secrets/gcp/index.js +1 -1
  299. package/lib/esm/secrets/index.js +1 -1
  300. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  301. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  302. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  303. package/lib/esm/secrets/model/Secret.js +1 -1
  304. package/lib/esm/secrets/model/index.js +1 -1
  305. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  306. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  307. package/lib/esm/secrets/onepassword/index.js +1 -1
  308. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  309. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  310. package/lib/esm/secrets/vault/index.js +1 -1
  311. package/lib/esm/shared/runtime.js +1 -1
  312. package/lib/esm/utils.js +1 -1
  313. package/lib/types/graph/execution/CodeSandboxEvaluator.d.cts +53 -0
  314. package/lib/types/graph/execution/CodeSandboxEvaluator.d.mts +53 -0
  315. package/lib/types/graph/execution/GraphExecutionEngine.d.cts +17 -0
  316. package/lib/types/graph/execution/GraphExecutionEngine.d.mts +17 -0
  317. package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.cts +42 -0
  318. package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.mts +42 -0
  319. package/lib/types/graph/execution/index.d.cts +2 -0
  320. package/lib/types/graph/execution/index.d.mts +2 -0
  321. package/lib/types/graph/index.d.cts +4 -0
  322. package/lib/types/graph/index.d.mts +4 -0
  323. package/lib/types/graph/loops/ConditionExpressionEvaluator.d.cts +36 -0
  324. package/lib/types/graph/loops/ConditionExpressionEvaluator.d.mts +36 -0
  325. package/lib/types/graph/loops/GraphConditionEvaluator.d.cts +20 -4
  326. package/lib/types/graph/loops/GraphConditionEvaluator.d.mts +20 -4
  327. package/lib/types/graph/loops/index.d.cts +1 -0
  328. package/lib/types/graph/loops/index.d.mts +1 -0
  329. package/lib/types/graph/nodes/agent.d.cts +44 -0
  330. package/lib/types/graph/nodes/agent.d.mts +44 -0
  331. package/lib/types/graph/nodes/category-styles.d.cts +8 -0
  332. package/lib/types/graph/nodes/category-styles.d.mts +8 -0
  333. package/lib/types/graph/nodes/flow-control.d.cts +104 -0
  334. package/lib/types/graph/nodes/flow-control.d.mts +104 -0
  335. package/lib/types/graph/nodes/index.d.cts +16 -0
  336. package/lib/types/graph/nodes/index.d.mts +16 -0
  337. package/lib/types/graph/nodes/triggers.d.cts +53 -0
  338. package/lib/types/graph/nodes/triggers.d.mts +53 -0
  339. package/lib/types/graph/types.d.cts +102 -0
  340. package/lib/types/graph/types.d.mts +102 -0
  341. package/lib/types/index.d.cts +2 -2
  342. package/lib/types/index.d.mts +2 -2
  343. package/lib/types/keycloak/services/KeycloakService.d.cts +1 -1
  344. package/lib/types/keycloak/services/KeycloakService.d.mts +1 -1
  345. package/lib/types/keycloak/services/runtime.d.cts +6 -0
  346. package/lib/types/keycloak/services/runtime.d.mts +6 -0
  347. package/lib/types/kibana/services/KibanaService.d.cts +1 -1
  348. package/lib/types/kibana/services/KibanaService.d.mts +1 -1
  349. package/lib/types/kibana/services/runtime.d.cts +6 -0
  350. package/lib/types/kibana/services/runtime.d.mts +6 -0
  351. package/package.json +1 -1
  352. package/dist/integrations.cjs.map +0 -1
  353. package/dist/integrations.js.map +0 -1
  354. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
  355. package/lib/cjs/blob/azure/index.cjs.map +0 -1
  356. package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
  357. package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
  358. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
  359. package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
  360. package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
  361. package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
  362. package/lib/cjs/blob/core/index.cjs.map +0 -1
  363. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
  364. package/lib/cjs/blob/gcp/index.cjs.map +0 -1
  365. package/lib/cjs/blob/index.cjs.map +0 -1
  366. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
  367. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
  368. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
  369. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
  370. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
  371. package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
  372. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
  373. package/lib/cjs/blob/local/index.cjs.map +0 -1
  374. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
  375. package/lib/cjs/blob/memory/index.cjs.map +0 -1
  376. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
  377. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
  378. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
  379. package/lib/cjs/blob/s3/index.cjs.map +0 -1
  380. package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
  381. package/lib/cjs/docker/index.cjs.map +0 -1
  382. package/lib/cjs/graph/constants.cjs.map +0 -1
  383. package/lib/cjs/graph/decorators.cjs.map +0 -1
  384. package/lib/cjs/graph/errors/GraphCycleError.cjs.map +0 -1
  385. package/lib/cjs/graph/errors/GraphExecutionError.cjs.map +0 -1
  386. package/lib/cjs/graph/errors/GraphInputError.cjs.map +0 -1
  387. package/lib/cjs/graph/errors/GraphLoopLimitError.cjs.map +0 -1
  388. package/lib/cjs/graph/errors/GraphPinningError.cjs.map +0 -1
  389. package/lib/cjs/graph/errors/GraphPortError.cjs.map +0 -1
  390. package/lib/cjs/graph/errors/GraphStoreError.cjs.map +0 -1
  391. package/lib/cjs/graph/errors/GraphTopologyError.cjs.map +0 -1
  392. package/lib/cjs/graph/errors/index.cjs.map +0 -1
  393. package/lib/cjs/graph/events/GraphExecutionEvent.cjs.map +0 -1
  394. package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs.map +0 -1
  395. package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs.map +0 -1
  396. package/lib/cjs/graph/events/GraphExecutionObserver.cjs.map +0 -1
  397. package/lib/cjs/graph/events/index.cjs.map +0 -1
  398. package/lib/cjs/graph/execution/GraphExecutionContext.cjs.map +0 -1
  399. package/lib/cjs/graph/execution/GraphExecutionEngine.cjs.map +0 -1
  400. package/lib/cjs/graph/execution/GraphExecutionFrame.cjs.map +0 -1
  401. package/lib/cjs/graph/execution/GraphExecutionResult.cjs.map +0 -1
  402. package/lib/cjs/graph/execution/GraphNodeExecutor.cjs.map +0 -1
  403. package/lib/cjs/graph/execution/index.cjs.map +0 -1
  404. package/lib/cjs/graph/index.cjs.map +0 -1
  405. package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
  406. package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs.map +0 -1
  407. package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs.map +0 -1
  408. package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs.map +0 -1
  409. package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs.map +0 -1
  410. package/lib/cjs/graph/loops/index.cjs.map +0 -1
  411. package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
  412. package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs.map +0 -1
  413. package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs.map +0 -1
  414. package/lib/cjs/graph/pinning/GraphPinningService.cjs.map +0 -1
  415. package/lib/cjs/graph/pinning/index.cjs.map +0 -1
  416. package/lib/cjs/graph/planning/GraphExecutionPlan.cjs.map +0 -1
  417. package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs.map +0 -1
  418. package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs.map +0 -1
  419. package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs.map +0 -1
  420. package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs.map +0 -1
  421. package/lib/cjs/graph/planning/GraphRelationResolver.cjs.map +0 -1
  422. package/lib/cjs/graph/planning/GraphTopology.cjs.map +0 -1
  423. package/lib/cjs/graph/planning/index.cjs.map +0 -1
  424. package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
  425. package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs.map +0 -1
  426. package/lib/cjs/graph/registry/index.cjs.map +0 -1
  427. package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
  428. package/lib/cjs/graph/snapshots/index.cjs.map +0 -1
  429. package/lib/cjs/graph/store/GraphCachedValue.cjs.map +0 -1
  430. package/lib/cjs/graph/store/GraphValueKey.cjs.map +0 -1
  431. package/lib/cjs/graph/store/GraphValueStore.cjs.map +0 -1
  432. package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs.map +0 -1
  433. package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
  434. package/lib/cjs/graph/store/index.cjs.map +0 -1
  435. package/lib/cjs/graph/types.cjs.map +0 -1
  436. package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs.map +0 -1
  437. package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs.map +0 -1
  438. package/lib/cjs/graph/validation/GraphValueValidator.cjs.map +0 -1
  439. package/lib/cjs/graph/validation/index.cjs.map +0 -1
  440. package/lib/cjs/index.cjs.map +0 -1
  441. package/lib/cjs/keycloak/index.cjs.map +0 -1
  442. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
  443. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
  444. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
  445. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
  446. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
  447. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
  448. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
  449. package/lib/cjs/keycloak/services/index.cjs.map +0 -1
  450. package/lib/cjs/keycloak/types.cjs.map +0 -1
  451. package/lib/cjs/kibana/helpers.cjs.map +0 -1
  452. package/lib/cjs/kibana/index.cjs.map +0 -1
  453. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
  454. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
  455. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
  456. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
  457. package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
  458. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
  459. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
  460. package/lib/cjs/kibana/services/index.cjs.map +0 -1
  461. package/lib/cjs/kibana/types.cjs.map +0 -1
  462. package/lib/cjs/nest/authService.cjs.map +0 -1
  463. package/lib/cjs/nest/index.cjs.map +0 -1
  464. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
  465. package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
  466. package/lib/cjs/nest/logging.cjs.map +0 -1
  467. package/lib/cjs/nest/types.cjs.map +0 -1
  468. package/lib/cjs/nest/utils.cjs.map +0 -1
  469. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
  470. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
  471. package/lib/cjs/secrets/aws/index.cjs.map +0 -1
  472. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
  473. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
  474. package/lib/cjs/secrets/azure/index.cjs.map +0 -1
  475. package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
  476. package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
  477. package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
  478. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
  479. package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
  480. package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
  481. package/lib/cjs/secrets/core/index.cjs.map +0 -1
  482. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
  483. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
  484. package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
  485. package/lib/cjs/secrets/index.cjs.map +0 -1
  486. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
  487. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
  488. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
  489. package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
  490. package/lib/cjs/secrets/model/index.cjs.map +0 -1
  491. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
  492. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
  493. package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
  494. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
  495. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
  496. package/lib/cjs/secrets/vault/index.cjs.map +0 -1
  497. package/lib/cjs/shared/runtime.cjs.map +0 -1
  498. package/lib/cjs/utils.cjs.map +0 -1
  499. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
  500. package/lib/esm/blob/azure/index.js.map +0 -1
  501. package/lib/esm/blob/core/BlobErrors.js.map +0 -1
  502. package/lib/esm/blob/core/BlobKey.js.map +0 -1
  503. package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
  504. package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
  505. package/lib/esm/blob/core/BlobTypes.js.map +0 -1
  506. package/lib/esm/blob/core/BlobValue.js.map +0 -1
  507. package/lib/esm/blob/core/index.js.map +0 -1
  508. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
  509. package/lib/esm/blob/gcp/index.js.map +0 -1
  510. package/lib/esm/blob/index.js.map +0 -1
  511. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +0 -1
  512. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +0 -1
  513. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +0 -1
  514. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +0 -1
  515. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +0 -1
  516. package/lib/esm/blob/ipfs/index.js.map +0 -1
  517. package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
  518. package/lib/esm/blob/local/index.js.map +0 -1
  519. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
  520. package/lib/esm/blob/memory/index.js.map +0 -1
  521. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
  522. package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
  523. package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
  524. package/lib/esm/blob/s3/index.js.map +0 -1
  525. package/lib/esm/docker/DockerComposeService.js.map +0 -1
  526. package/lib/esm/docker/index.js.map +0 -1
  527. package/lib/esm/graph/constants.js.map +0 -1
  528. package/lib/esm/graph/decorators.js.map +0 -1
  529. package/lib/esm/graph/errors/GraphCycleError.js.map +0 -1
  530. package/lib/esm/graph/errors/GraphExecutionError.js.map +0 -1
  531. package/lib/esm/graph/errors/GraphInputError.js.map +0 -1
  532. package/lib/esm/graph/errors/GraphLoopLimitError.js.map +0 -1
  533. package/lib/esm/graph/errors/GraphPinningError.js.map +0 -1
  534. package/lib/esm/graph/errors/GraphPortError.js.map +0 -1
  535. package/lib/esm/graph/errors/GraphStoreError.js.map +0 -1
  536. package/lib/esm/graph/errors/GraphTopologyError.js.map +0 -1
  537. package/lib/esm/graph/errors/index.js.map +0 -1
  538. package/lib/esm/graph/events/GraphExecutionEvent.js.map +0 -1
  539. package/lib/esm/graph/events/GraphExecutionEventEmitter.js.map +0 -1
  540. package/lib/esm/graph/events/GraphExecutionEventFactory.js.map +0 -1
  541. package/lib/esm/graph/events/GraphExecutionObserver.js.map +0 -1
  542. package/lib/esm/graph/events/index.js.map +0 -1
  543. package/lib/esm/graph/execution/GraphExecutionContext.js.map +0 -1
  544. package/lib/esm/graph/execution/GraphExecutionEngine.js.map +0 -1
  545. package/lib/esm/graph/execution/GraphExecutionFrame.js.map +0 -1
  546. package/lib/esm/graph/execution/GraphExecutionResult.js.map +0 -1
  547. package/lib/esm/graph/execution/GraphNodeExecutor.js.map +0 -1
  548. package/lib/esm/graph/execution/index.js.map +0 -1
  549. package/lib/esm/graph/index.js.map +0 -1
  550. package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js.map +0 -1
  551. package/lib/esm/graph/loops/GraphConditionEvaluator.js.map +0 -1
  552. package/lib/esm/graph/loops/GraphLoopExecutionContext.js.map +0 -1
  553. package/lib/esm/graph/loops/UntilGraphNodeExecutor.js.map +0 -1
  554. package/lib/esm/graph/loops/WhileGraphNodeExecutor.js.map +0 -1
  555. package/lib/esm/graph/loops/index.js.map +0 -1
  556. package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js.map +0 -1
  557. package/lib/esm/graph/pinning/GraphPinningMetadata.js.map +0 -1
  558. package/lib/esm/graph/pinning/GraphPinningPolicy.js.map +0 -1
  559. package/lib/esm/graph/pinning/GraphPinningService.js.map +0 -1
  560. package/lib/esm/graph/pinning/index.js.map +0 -1
  561. package/lib/esm/graph/planning/GraphExecutionPlan.js.map +0 -1
  562. package/lib/esm/graph/planning/GraphExecutionPlanEdge.js.map +0 -1
  563. package/lib/esm/graph/planning/GraphExecutionPlanLayer.js.map +0 -1
  564. package/lib/esm/graph/planning/GraphExecutionPlanNode.js.map +0 -1
  565. package/lib/esm/graph/planning/GraphExecutionPlanner.js.map +0 -1
  566. package/lib/esm/graph/planning/GraphRelationResolver.js.map +0 -1
  567. package/lib/esm/graph/planning/GraphTopology.js.map +0 -1
  568. package/lib/esm/graph/planning/index.js.map +0 -1
  569. package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js.map +0 -1
  570. package/lib/esm/graph/registry/GraphNodeExecutorResolver.js.map +0 -1
  571. package/lib/esm/graph/registry/index.js.map +0 -1
  572. package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
  573. package/lib/esm/graph/snapshots/index.js.map +0 -1
  574. package/lib/esm/graph/store/GraphCachedValue.js.map +0 -1
  575. package/lib/esm/graph/store/GraphValueKey.js.map +0 -1
  576. package/lib/esm/graph/store/GraphValueStore.js.map +0 -1
  577. package/lib/esm/graph/store/GraphValueStoreAdapter.js.map +0 -1
  578. package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
  579. package/lib/esm/graph/store/index.js.map +0 -1
  580. package/lib/esm/graph/types.js.map +0 -1
  581. package/lib/esm/graph/validation/GraphDefinitionValidator.js.map +0 -1
  582. package/lib/esm/graph/validation/GraphPortSchemaResolver.js.map +0 -1
  583. package/lib/esm/graph/validation/GraphValueValidator.js.map +0 -1
  584. package/lib/esm/graph/validation/index.js.map +0 -1
  585. package/lib/esm/index.js.map +0 -1
  586. package/lib/esm/keycloak/index.js.map +0 -1
  587. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
  588. package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
  589. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
  590. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
  591. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
  592. package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
  593. package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
  594. package/lib/esm/keycloak/services/index.js.map +0 -1
  595. package/lib/esm/keycloak/types.js.map +0 -1
  596. package/lib/esm/kibana/helpers.js.map +0 -1
  597. package/lib/esm/kibana/index.js.map +0 -1
  598. package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
  599. package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
  600. package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
  601. package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
  602. package/lib/esm/kibana/services/KibanaService.js.map +0 -1
  603. package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
  604. package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
  605. package/lib/esm/kibana/services/index.js.map +0 -1
  606. package/lib/esm/kibana/types.js.map +0 -1
  607. package/lib/esm/nest/authService.js.map +0 -1
  608. package/lib/esm/nest/index.js.map +0 -1
  609. package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
  610. package/lib/esm/nest/keycloakModule.js.map +0 -1
  611. package/lib/esm/nest/logging.js.map +0 -1
  612. package/lib/esm/nest/types.js.map +0 -1
  613. package/lib/esm/nest/utils.js.map +0 -1
  614. package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
  615. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
  616. package/lib/esm/secrets/aws/index.js.map +0 -1
  617. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
  618. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
  619. package/lib/esm/secrets/azure/index.js.map +0 -1
  620. package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
  621. package/lib/esm/secrets/core/SecretName.js.map +0 -1
  622. package/lib/esm/secrets/core/SecretReference.js.map +0 -1
  623. package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
  624. package/lib/esm/secrets/core/SecretService.js.map +0 -1
  625. package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
  626. package/lib/esm/secrets/core/index.js.map +0 -1
  627. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
  628. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
  629. package/lib/esm/secrets/gcp/index.js.map +0 -1
  630. package/lib/esm/secrets/index.js.map +0 -1
  631. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
  632. package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
  633. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
  634. package/lib/esm/secrets/model/Secret.js.map +0 -1
  635. package/lib/esm/secrets/model/index.js.map +0 -1
  636. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
  637. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
  638. package/lib/esm/secrets/onepassword/index.js.map +0 -1
  639. package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
  640. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
  641. package/lib/esm/secrets/vault/index.js.map +0 -1
  642. package/lib/esm/shared/runtime.js.map +0 -1
  643. package/lib/esm/utils.js.map +0 -1
@@ -55,6 +55,7 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
55
55
  const core_1 = require("@decaf-ts/core");
56
56
  const axios_1 = __importDefault(require("axios"));
57
57
  const https = __importStar(require("node:https"));
58
+ const runtime_js_1 = require("./runtime.cjs");
58
59
  const KibanaAuthService_js_1 = require("./KibanaAuthService.cjs");
59
60
  class KibanaRoleService extends core_1.ClientBasedService {
60
61
  async initialize(...args) {
@@ -96,7 +97,7 @@ class KibanaRoleService extends core_1.ClientBasedService {
96
97
  baseURL: `${config.protocol}://${config.host}`,
97
98
  validateStatus: () => true,
98
99
  httpsAgent: new https.Agent({
99
- rejectUnauthorized: (this.config.isProduction()),
100
+ rejectUnauthorized: ((0, runtime_js_1.resolveKibanaIsProduction)(this.config)),
100
101
  }),
101
102
  });
102
103
  }
@@ -166,7 +167,7 @@ class KibanaRoleService extends core_1.ClientBasedService {
166
167
  : undefined,
167
168
  validateStatus: () => true,
168
169
  httpsAgent: new https.Agent({
169
- rejectUnauthorized: (this.config.isProduction()),
170
+ rejectUnauthorized: ((0, runtime_js_1.resolveKibanaIsProduction)(this.config)),
170
171
  }),
171
172
  ...extra,
172
173
  });
@@ -177,5 +178,5 @@ __decorate([
177
178
  (0, core_1.service)(),
178
179
  __metadata("design:type", KibanaAuthService_js_1.KibanaAuthService)
179
180
  ], KibanaRoleService.prototype, "authService", void 0);
180
- //# sourceMappingURL=KibanaRoleService.js.map
181
- //# sourceMappingURL=KibanaRoleService.cjs.map
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hUm9sZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMva2liYW5hL3NlcnZpY2VzL0tpYmFuYVJvbGVTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0QsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUscUJBQWtCO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwrQkFBNEI7QUFFeEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUd0QztJQUlDLEtBQUssQ0FBQyxVQUFVLENBQ2QsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQzVDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFzQixDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUNkLFNBQWlCLEVBQ2pCLE9B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WyJpbXBvcnQge1xuICBCYWRSZXF1ZXN0RXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29udGV4dHVhbEFyZ3MsIE1heWJlQ29udGV4dHVhbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ2xpZW50QmFzZWRTZXJ2aWNlLCBzZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgdHlwZSB7IEtpYmFuYVJvbGVDb25maWcsIEtpYmFuYVNldHVwQ29uZmlnLCBLaWJhbmFVc2VyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgQXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IHJlc29sdmVLaWJhbmFJc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi9ydW50aW1lXCI7XG5pbXBvcnQgeyBLaWJhbmFBdXRoU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYUF1dGhTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBLaWJhbmFSb2xlU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZTxcbiAgQXhpb3NJbnN0YW5jZSxcbiAgS2liYW5hU2V0dXBDb25maWdcbj4ge1xuICBAc2VydmljZSgpXG4gIHByb3RlY3RlZCBhdXRoU2VydmljZSE6IEtpYmFuYUF1dGhTZXJ2aWNlO1xuXG4gIGFzeW5jIGluaXRpYWxpemUoXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx7IGNvbmZpZzogS2liYW5hU2V0dXBDb25maWc7IGNsaWVudDogQXhpb3NJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2liYW5hU2V0dXBDb25maWc7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChjb25maWcpO1xuICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUm9sZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtpYmFuYVJvbGVDb25maWc+IHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVSb2xlXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVSb2xlKTtcbiAgICBjb25zdCByb2xlID0gdGhpcy5ub3JtYWxpemVSb2xlQ29uZmlnKHJlYWxtTmFtZSwgcGF5bG9hZCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuZXNfaG9zdH0vX3NlY3VyaXR5L3JvbGUvJHtlbmNvZGVVUklDb21wb25lbnQocm9sZS5uYW1lKX1gLFxuICAgICAge1xuICAgICAgICBpbmRpY2VzOiByb2xlLmluZGljZXMsXG4gICAgICAgIGFwcGxpY2F0aW9uczogcm9sZS5hcHBsaWNhdGlvbnMsXG4gICAgICAgIG1ldGFkYXRhOiByb2xlLm1ldGFkYXRhID8/IHt9LFxuICAgICAgfSxcbiAgICAgIHRoaXMuY29uZmlnLmFkbWluQXBpVXNlcixcbiAgICAgIHsgaGVhZGVyczogeyBcImtibi14c3JmXCI6IFwidHJ1ZVwiLCBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9IH0sXG4gICAgICAyMDAsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID49IDMwMCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBVbmFibGUgdG8gY3JlYXRlIHJvbGUgZm9yICR7cmVhbG1OYW1lfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVJvbGUoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogUGFydGlhbDxLaWJhbmFSb2xlQ29uZmlnPixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlUm9sZVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMudXBkYXRlUm9sZSk7XG4gICAgY29uc3Qgcm9sZSA9IHRoaXMubm9ybWFsaXplUm9sZUNvbmZpZyhyZWFsbU5hbWUsIHBheWxvYWQpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQVVRcIixcbiAgICAgIGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuZXNfaG9zdH0vX3NlY3VyaXR5L3JvbGUvJHtlbmNvZGVVUklDb21wb25lbnQocm9sZS5uYW1lKX1gLFxuICAgICAge1xuICAgICAgICBpbmRpY2VzOiByb2xlLmluZGljZXMsXG4gICAgICAgIGFwcGxpY2F0aW9uczogcm9sZS5hcHBsaWNhdGlvbnMsXG4gICAgICAgIG1ldGFkYXRhOiByb2xlLm1ldGFkYXRhID8/IHt9LFxuICAgICAgfSxcbiAgICAgIHRoaXMuY29uZmlnLmFkbWluQXBpVXNlcixcbiAgICAgIHsgaGVhZGVyczogeyBcImtibi14c3JmXCI6IFwidHJ1ZVwiLCBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9IH0sXG4gICAgICAyMDAsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID49IDMwMCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBVbmFibGUgdG8gdXBkYXRlIHJvbGUgZm9yICR7cmVhbG1OYW1lfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSHR0cENsaWVudChjb25maWc6IEtpYmFuYVNldHVwQ29uZmlnKTogQXhpb3NJbnN0YW5jZSB7XG4gICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2liYW5hSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnIGFzIGFueSkpLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogRXJyb3IpOiBFcnJvciB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVJvbGVDb25maWcoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogUGFydGlhbDxLaWJhbmFSb2xlQ29uZmlnPiA9IHt9XG4gICk6IEtpYmFuYVJvbGVDb25maWcge1xuICAgIGNvbnN0IHN1ZmZpeCA9IHJlYWxtTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGJhc2UgPSB0aGlzLmNvbmZpZy5yb2xlID8/IHt9O1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBwYXlsb2FkLm5hbWUgPz8gYmFzZS5uYW1lID8/IGBwbGFfJHtzdWZmaXh9X3JlYWRlcmAsXG4gICAgICBpbmRpY2VzOiBwYXlsb2FkLmluZGljZXMgPz9cbiAgICAgICAgYmFzZS5pbmRpY2VzID8/IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lczogW2BmaWxlYmVhdC1wbGEtJHtzdWZmaXh9LSpgLCBgbWV0cmljYmVhdC1wbGEtJHtzdWZmaXh9LSpgXSxcbiAgICAgICAgICAgIHByaXZpbGVnZXM6IFtcInJlYWRcIiwgXCJ2aWV3X2luZGV4X21ldGFkYXRhXCJdLFxuICAgICAgICAgICAgYWxsb3dfcmVzdHJpY3RlZF9pbmRpY2VzOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgYXBwbGljYXRpb25zOiBwYXlsb2FkLmFwcGxpY2F0aW9ucyA/P1xuICAgICAgICBiYXNlLmFwcGxpY2F0aW9ucyA/PyBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYXBwbGljYXRpb246IFwia2liYW5hLS5raWJhbmFcIixcbiAgICAgICAgICAgIHByaXZpbGVnZXM6IFtcImZlYXR1cmVfZGlzY292ZXIucmVhZFwiLCBcImZlYXR1cmVfZGFzaGJvYXJkLnJlYWRcIl0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFtgc3BhY2U6JHtyZWFsbU5hbWV9YF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIGtpYmFuYTogcGF5bG9hZC5raWJhbmEgPz9cbiAgICAgICAgYmFzZS5raWJhbmEgPz8gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNwYWNlczogW3JlYWxtTmFtZV0sXG4gICAgICAgICAgICBiYXNlOiBbXCJyZWFkXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICBtZXRhZGF0YTogcGF5bG9hZC5tZXRhZGF0YSA/PyBiYXNlLm1ldGFkYXRhID8/IHt9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcXVlc3QoXG4gICAgbWV0aG9kOiBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJERUxFVEVcIixcbiAgICB1cmw6IHN0cmluZyxcbiAgICBwYXlsb2FkOiB1bmtub3duLFxuICAgIGFwaVVzZXI6IEtpYmFuYVVzZXIgfCB1bmRlZmluZWQsXG4gICAgZXh0cmE6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXF1ZXN0KTtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmwsXG4gICAgICBkYXRhOlxuICAgICAgICBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gcGF5bG9hZFxuICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgIGF1dGg6IGFwaVVzZXJcbiAgICAgICAgPyB7IHVzZXJuYW1lOiBhcGlVc2VyLnVzZXJuYW1lLCBwYXNzd29yZDogYXBpVXNlci5wYXNzd29yZCB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2liYW5hSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnIGFzIGFueSkpLFxuICAgICAgfSksXG4gICAgICAuLi5leHRyYSxcbiAgICB9KTtcbiAgfVxufVxuIl19
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hUm9sZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJLaWJhbmFSb2xlU2VydmljZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJO0lBQ2pGLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0gsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFVBQVU7UUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzs7UUFDMUgsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENB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RCxVQUFVLENBQUM7SUFDUCxJQUFBLGNBQU8sR0FBRTtJQUNULFVBQVUsQ0FBQyxhQUFhLEVBQUUsd0NBQWlCLENBQUM7Q0FDL0MsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdkQsODJlQUE4MmUiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgQmFkUmVxdWVzdEVycm9yLCBDb25mbGljdEVycm9yLCBJbnRlcm5hbEVycm9yLCBOb3RGb3VuZEVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ2xpZW50QmFzZWRTZXJ2aWNlLCBzZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgQXhpb3MgZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tIFwibm9kZTpodHRwc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWUuanNcIjtcbmltcG9ydCB7IEtpYmFuYUF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4vS2liYW5hQXV0aFNlcnZpY2UuanNcIjtcbmV4cG9ydCBjbGFzcyBLaWJhbmFSb2xlU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgYXN5bmMgaW5pdGlhbGl6ZSguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKSkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF07XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlUm9sZShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVSb2xlXCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVSb2xlKTtcbiAgICAgICAgY29uc3Qgcm9sZSA9IHRoaXMubm9ybWFsaXplUm9sZUNvbmZpZyhyZWFsbU5hbWUsIHBheWxvYWQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5lc19ob3N0fS9fc2VjdXJpdHkvcm9sZS8ke2VuY29kZVVSSUNvbXBvbmVudChyb2xlLm5hbWUpfWAsIHtcbiAgICAgICAgICAgIGluZGljZXM6IHJvbGUuaW5kaWNlcyxcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uczogcm9sZS5hcHBsaWNhdGlvbnMsXG4gICAgICAgICAgICBtZXRhZGF0YTogcm9sZS5tZXRhZGF0YSA/PyB7fSxcbiAgICAgICAgfSwgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLCB7IGhlYWRlcnM6IHsgXCJrYm4teHNyZlwiOiBcInRydWVcIiwgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSB9LCAyMDAsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID49IDMwMCkge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBVbmFibGUgdG8gY3JlYXRlIHJvbGUgZm9yICR7cmVhbG1OYW1lfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZVJvbGUocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlUm9sZVwiLCB0cnVlKSkuZm9yKHRoaXMudXBkYXRlUm9sZSk7XG4gICAgICAgIGNvbnN0IHJvbGUgPSB0aGlzLm5vcm1hbGl6ZVJvbGVDb25maWcocmVhbG1OYW1lLCBwYXlsb2FkKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJQVVRcIiwgYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5lc19ob3N0fS9fc2VjdXJpdHkvcm9sZS8ke2VuY29kZVVSSUNvbXBvbmVudChyb2xlLm5hbWUpfWAsIHtcbiAgICAgICAgICAgIGluZGljZXM6IHJvbGUuaW5kaWNlcyxcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uczogcm9sZS5hcHBsaWNhdGlvbnMsXG4gICAgICAgICAgICBtZXRhZGF0YTogcm9sZS5tZXRhZGF0YSA/PyB7fSxcbiAgICAgICAgfSwgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLCB7IGhlYWRlcnM6IHsgXCJrYm4teHNyZlwiOiBcInRydWVcIiwgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSB9LCAyMDAsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID49IDMwMCkge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBVbmFibGUgdG8gdXBkYXRlIHJvbGUgZm9yICR7cmVhbG1OYW1lfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2liYW5hSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBhcnNlRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICAgICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIG5vcm1hbGl6ZVJvbGVDb25maWcocmVhbG1OYW1lLCBwYXlsb2FkID0ge30pIHtcbiAgICAgICAgY29uc3Qgc3VmZml4ID0gcmVhbG1OYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGJhc2UgPSB0aGlzLmNvbmZpZy5yb2xlID8/IHt9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogcGF5bG9hZC5uYW1lID8/IGJhc2UubmFtZSA/PyBgcGxhXyR7c3VmZml4fV9yZWFkZXJgLFxuICAgICAgICAgICAgaW5kaWNlczogcGF5bG9hZC5pbmRpY2VzID8/XG4gICAgICAgICAgICAgICAgYmFzZS5pbmRpY2VzID8/IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbYGZpbGViZWF0LXBsYS0ke3N1ZmZpeH0tKmAsIGBtZXRyaWNiZWF0LXBsYS0ke3N1ZmZpeH0tKmBdLFxuICAgICAgICAgICAgICAgICAgICBwcml2aWxlZ2VzOiBbXCJyZWFkXCIsIFwidmlld19pbmRleF9tZXRhZGF0YVwiXSxcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dfcmVzdHJpY3RlZF9pbmRpY2VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uczogcGF5bG9hZC5hcHBsaWNhdGlvbnMgPz9cbiAgICAgICAgICAgICAgICBiYXNlLmFwcGxpY2F0aW9ucyA/PyBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbjogXCJraWJhbmEtLmtpYmFuYVwiLFxuICAgICAgICAgICAgICAgICAgICBwcml2aWxlZ2VzOiBbXCJmZWF0dXJlX2Rpc2NvdmVyLnJlYWRcIiwgXCJmZWF0dXJlX2Rhc2hib2FyZC5yZWFkXCJdLFxuICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXM6IFtgc3BhY2U6JHtyZWFsbU5hbWV9YF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBraWJhbmE6IHBheWxvYWQua2liYW5hID8/XG4gICAgICAgICAgICAgICAgYmFzZS5raWJhbmEgPz8gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3BhY2VzOiBbcmVhbG1OYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgYmFzZTogW1wicmVhZFwiXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiBwYXlsb2FkLm1ldGFkYXRhID8/IGJhc2UubWV0YWRhdGEgPz8ge30sXG4gICAgICAgIH07XG4gICAgfVxuICAgIGFzeW5jIHJlcXVlc3QobWV0aG9kLCB1cmwsIHBheWxvYWQsIGFwaVVzZXIsIGV4dHJhLCBzdWNjZXNzQ29kZSwgLi4uYXJncykge1xuICAgICAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgICAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBkYXRhOiBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICAgICAgICBhdXRoOiBhcGlVc2VyXG4gICAgICAgICAgICAgICAgPyB7IHVzZXJuYW1lOiBhcGlVc2VyLnVzZXJuYW1lLCBwYXNzd29yZDogYXBpVXNlci5wYXNzd29yZCB9XG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbih0aGlzLmNvbmZpZykpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAuLi5leHRyYSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuX19kZWNvcmF0ZShbXG4gICAgc2VydmljZSgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBLaWJhbmFBdXRoU2VydmljZSlcbl0sIEtpYmFuYVJvbGVTZXJ2aWNlLnByb3RvdHlwZSwgXCJhdXRoU2VydmljZVwiLCB2b2lkIDApO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUzJsaVlXNWhVbTlzWlZObGNuWnBZMlV1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdmEybGlZVzVoTDNObGNuWnBZMlZ6TDB0cFltRnVZVkp2YkdWVFpYSjJhV05sTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3T3p0QlFVRkJMRTlCUVU4c1JVRkRUQ3hsUVVGbExFVkJRMllzWVVGQllTeEZRVU5pTEdGQlFXRXNSVUZEWWl4aFFVRmhMRWRCUTJRc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVVnFReXhQUVVGUExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkZOMFFzVDBGQlR5eExRVUYzUWl4TlFVRk5MRTlCUVU4c1EwRkJRenRCUVVNM1F5eFBRVUZQTEV0QlFVc3NTMEZCU3l4TlFVRk5MRmxCUVZrc1EwRkJRenRCUVVOd1F5eFBRVUZQTEVWQlFVVXNlVUpCUVhsQ0xFVkJRVVVzY1VKQlFXdENPMEZCUTNSRUxFOUJRVThzUlVGQlJTeHBRa0ZCYVVJc1JVRkJSU3dyUWtGQk5FSTdRVUZGZUVRc1RVRkJUU3hQUVVGUExHbENRVUZyUWl4VFFVRlJMR3RDUVVkMFF6dEpRVWxETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTJRc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpWRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOMlFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGelFpeERRVUZETzFGQlF5OURMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETzFGQlEzUkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU0zUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVU4wUWl4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETzBsQlF6VkNMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVU5rTEZOQlFXbENMRVZCUTJwQ0xFOUJRVGhETEVWQlF6bERMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEZOQlFWTXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNeFJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMnBETEUxQlFVMHNSVUZEVGl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXh0UWtGQmJVSXNhMEpCUVd0Q0xFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUTJ4SE8xbEJRMFVzVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4UFFVRlBPMWxCUTNKQ0xGbEJRVmtzUlVGQlJTeEpRVUZKTEVOQlFVTXNXVUZCV1R0WlFVTXZRaXhSUVVGUkxFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNTVUZCU1N4RlFVRkZPMU5CUXpsQ0xFVkJRMFFzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRVZCUTNoQ0xFVkJRVVVzVDBGQlR5eEZRVUZGTEVWQlFVVXNWVUZCVlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hqUVVGakxFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1JVRkJSU3hGUVVOMlJTeEhRVUZITEVWQlEwZ3NSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNTVUZCU1N4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVNelFpeE5RVUZOTEU5QlFVOHNSMEZCUnl3MlFrRkJOa0lzVTBGQlV5eExRVUZMTEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRaUVVOcVJpeE5RVUZOTEVsQlFVa3NaVUZCWlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0pETEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGRFpDeFRRVUZwUWl4RlFVTnFRaXhQUVVGclF5eEZRVU5zUXl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxGbEJRVmtzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZETlVNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMUZCUTNaQ0xFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eFRRVUZUTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRNVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOcVF5eExRVUZMTEVWQlEwd3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c2JVSkJRVzFDTEd0Q1FVRnJRaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RlFVTnNSenRaUVVORkxFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHp0WlFVTnlRaXhaUVVGWkxFVkJRVVVzU1VGQlNTeERRVUZETEZsQlFWazdXVUZETDBJc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVsQlFVa3NSVUZCUlR0VFFVTTVRaXhGUVVORUxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RlFVTjRRaXhGUVVGRkxFOUJRVThzUlVGQlJTeEZRVUZGTEZWQlFWVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1kwRkJZeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMRVZCUVVVc1JVRkRka1VzUjBGQlJ5eEZRVU5JTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhKUVVGSkxGRkJRVkVzUTBGQlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRNMElzVFVGQlRTeFBRVUZQTEVkQlFVY3NOa0pCUVRaQ0xGTkJRVk1zUzBGQlN5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1dVRkRha1lzVFVGQlRTeEpRVUZKTEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOeVF5eERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVlBMR2RDUVVGblFpeERRVUZETEUxQlFYbENPMUZCUTJoRUxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0WlFVTnNRaXhQUVVGUExFVkJRVVVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNVVUZCVVN4TlFVRk5MRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVU3V1VGRE9VTXNZMEZCWXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3V1VGRE1VSXNWVUZCVlN4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZETVVJc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCWVN4RFFVRkRMRU5CUVVNN1lVRkRjRVVzUTBGQlF6dFRRVU5JTEVOQlFVTXNRMEZCUXp0SlFVTk1MRU5CUVVNN1NVRkZVeXhWUVVGVkxFTkJRVU1zUzBGQldUdFJRVU12UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zVDBGQlR5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SlFVRkpMRWxCUVVrc1pVRkJaU3hEUVVGRE8xRkJReTlFTEUxQlFVMHNXVUZCV1N4SFFVRkhMRTlCUVU4c1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFJRVVV6UXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzWkZMRTlCUVU4c1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJRenRSUVVWRUxFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRMnBJTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU0zUnl4UFFVRlBMRWxCUVVrc1pVRkJaU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzUkRMRU5CUVVNN1VVRkZSQ3hKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXpGRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGRrVXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UXl4RFFVRkRPMUZCUlVRc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTndReXhEUVVGRE8wbEJSVThzYlVKQlFXMUNMRU5CUTNwQ0xGTkJRV2xDTEVWQlEycENMRlZCUVhGRExFVkJRVVU3VVVGRmRrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1UwRkJVeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzFGQlEzWkRMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVOd1F5eFBRVUZQTzFsQlEwd3NTVUZCU1N4RlFVRkZMRTlCUVU4c1EwRkJReXhKUVVGSkxFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NTVUZCU1N4UFFVRlBMRTFCUVUwc1UwRkJVenRaUVVONlJDeFBRVUZQTEVWQlFVVXNUMEZCVHl4RFFVRkRMRTlCUVU4N1owSkJRM1JDTEVsQlFVa3NRMEZCUXl4UFFVRlBMRWxCUVVrN1owSkJRMlE3YjBKQlEwVXNTMEZCU3l4RlFVRkZMRU5CUVVNc1owSkJRV2RDTEUxQlFVMHNTVUZCU1N4RlFVRkZMR3RDUVVGclFpeE5RVUZOTEVsQlFVa3NRMEZCUXp0dlFrRkRha1VzVlVGQlZTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMSEZDUVVGeFFpeERRVUZETzI5Q1FVTXpReXgzUWtGQmQwSXNSVUZCUlN4TFFVRkxPMmxDUVVOb1F6dGhRVU5HTzFsQlEwZ3NXVUZCV1N4RlFVRkZMRTlCUVU4c1EwRkJReXhaUVVGWk8yZENRVU5vUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hKUVVGSk8yZENRVU51UWp0dlFrRkRSU3hYUVVGWExFVkJRVVVzWjBKQlFXZENPMjlDUVVNM1FpeFZRVUZWTEVWQlFVVXNRMEZCUXl4MVFrRkJkVUlzUlVGQlJTeDNRa0ZCZDBJc1EwRkJRenR2UWtGREwwUXNVMEZCVXl4RlFVRkZMRU5CUVVNc1UwRkJVeXhUUVVGVExFVkJRVVVzUTBGQlF6dHBRa0ZEYkVNN1lVRkRSanRaUVVOSUxFMUJRVTBzUlVGQlJTeFBRVUZQTEVOQlFVTXNUVUZCVFR0blFrRkRjRUlzU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1R0blFrRkRZanR2UWtGRFJTeE5RVUZOTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNN2IwSkJRMjVDTEVsQlFVa3NSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJRenRwUWtGRFpqdGhRVU5HTzFsQlEwZ3NVVUZCVVN4RlFVRkZMRTlCUVU4c1EwRkJReXhSUVVGUkxFbEJRVWtzU1VGQlNTeERRVUZETEZGQlFWRXNTVUZCU1N4RlFVRkZPMU5CUTJ4RUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVOHNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkRia0lzVFVGQmVVTXNSVUZEZWtNc1IwRkJWeXhGUVVOWUxFOUJRV2RDTEVWQlEyaENMRTlCUVN0Q0xFVkJReTlDTEV0QlFUQkNMRVZCUXpGQ0xGZEJRVzFDTEVWQlEyNUNMRWRCUVVjc1NVRkJlVUk3VVVGRk5VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTJoRExFOUJRVThzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNN1dVRkRla0lzVFVGQlRUdFpRVU5PTEVkQlFVYzdXVUZEU0N4SlFVRkpMRVZCUTBZc1QwRkJUeXhMUVVGTExGTkJRVk03WjBKQlEyNUNMRU5CUVVNc1EwRkJReXhUUVVGVE8yZENRVU5ZTEVOQlFVTXNRMEZCUXl4UFFVRlBMRTlCUVU4c1MwRkJTeXhSUVVGUk8yOUNRVU16UWl4RFFVRkRMRU5CUVVNc1QwRkJUenR2UWtGRFZDeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU03V1VGREwwSXNTVUZCU1N4RlFVRkZMRTlCUVU4N1owSkJRMWdzUTBGQlF5eERRVUZETEVWQlFVVXNVVUZCVVN4RlFVRkZMRTlCUVU4c1EwRkJReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEU5QlFVOHNRMEZCUXl4UlFVRlJMRVZCUVVVN1owSkJRelZFTEVOQlFVTXNRMEZCUXl4VFFVRlRPMWxCUTJJc1kwRkJZeXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdXVUZETVVJc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXp0blFrRkRNVUlzYTBKQlFXdENMRVZCUVVVc1EwRkJReXg1UWtGQmVVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJZU3hEUVVGRExFTkJRVU03WVVGRGNFVXNRMEZCUXp0WlFVTkdMRWRCUVVjc1MwRkJTenRUUVVOVUxFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTTdRMEZEUmp0QlFUVkxWenRKUVVSVUxFOUJRVThzUlVGQlJUczRRa0ZEWXl4cFFrRkJhVUk3YzBSQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMXh1SUNCQ1lXUlNaWEYxWlhOMFJYSnliM0lzWEc0Z0lFTnZibVpzYVdOMFJYSnliM0lzWEc0Z0lFbHVkR1Z5Ym1Gc1JYSnliM0lzWEc0Z0lFNXZkRVp2ZFc1a1JYSnliM0lzWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHSXRaR1ZqYjNKaGRHOXljMXdpTzF4dWFXMXdiM0owSUhzZ1EyOXVkR1Y0ZEhWaGJFRnlaM01zSUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5WnlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1EyeHBaVzUwUW1GelpXUlRaWEoyYVdObExDQnpaWEoyYVdObElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUV0cFltRnVZVkp2YkdWRGIyNW1hV2NzSUV0cFltRnVZVk5sZEhWd1EyOXVabWxuTENCTGFXSmhibUZWYzJWeUlIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdRWGhwYjNNc0lIc2dRWGhwYjNOSmJuTjBZVzVqWlNCOUlHWnliMjBnWENKaGVHbHZjMXdpTzF4dWFXMXdiM0owSUNvZ1lYTWdhSFIwY0hNZ1puSnZiU0JjSW01dlpHVTZhSFIwY0hOY0lqdGNibWx0Y0c5eWRDQjdJSEpsYzI5c2RtVkxhV0poYm1GSmMxQnliMlIxWTNScGIyNGdmU0JtY205dElGd2lMaTl5ZFc1MGFXMWxYQ0k3WEc1cGJYQnZjblFnZXlCTGFXSmhibUZCZFhSb1UyVnlkbWxqWlNCOUlHWnliMjBnWENJdUwwdHBZbUZ1WVVGMWRHaFRaWEoyYVdObFhDSTdYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QkxhV0poYm1GU2IyeGxVMlZ5ZG1salpTQmxlSFJsYm1SeklFTnNhV1Z1ZEVKaGMyVmtVMlZ5ZG1salpUeGNiaUFnUVhocGIzTkpibk4wWVc1alpTeGNiaUFnUzJsaVlXNWhVMlYwZFhCRGIyNW1hV2RjYmo0Z2UxeHVJQ0JBYzJWeWRtbGpaU2dwWEc0Z0lIQnliM1JsWTNSbFpDQmhkWFJvVTJWeWRtbGpaU0U2SUV0cFltRnVZVUYxZEdoVFpYSjJhV05sTzF4dVhHNGdJR0Z6ZVc1aklHbHVhWFJwWVd4cGVtVW9YRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDdJR052Ym1acFp6b2dTMmxpWVc1aFUyVjBkWEJEYjI1bWFXYzdJR05zYVdWdWREb2dRWGhwYjNOSmJuTjBZVzVqWlNCOVBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltbHVhWFJwWVd4cGVtVmNJaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtbHVhWFJwWVd4cGVtVXBPMXh1SUNBZ0lHTnZibk4wSUdOdmJtWnBaeUE5SUdOMGVFRnlaM05iTUYwZ1lYTWdTMmxpWVc1aFUyVjBkWEJEYjI1bWFXYzdYRzRnSUNBZ2RHaHBjeTVmWTI5dVptbG5JRDBnWTI5dVptbG5PMXh1SUNBZ0lHTnZibk4wSUdOc2FXVnVkQ0E5SUhSb2FYTXVZM0psWVhSbFNIUjBjRU5zYVdWdWRDaGpiMjVtYVdjcE8xeHVJQ0FnSUhSb2FYTXVYMk5zYVdWdWRDQTlJR05zYVdWdWREdGNiaUFnSUNCeVpYUjFjbTRnZXlCamIyNW1hV2NzSUdOc2FXVnVkQ0I5TzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWTNKbFlYUmxVbTlzWlNoY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQndZWGxzYjJGa09pQlFZWEowYVdGc1BFdHBZbUZ1WVZKdmJHVkRiMjVtYVdjK0lId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKamNtVmhkR1ZTYjJ4bFhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amNtVmhkR1ZTYjJ4bEtUdGNiaUFnSUNCamIyNXpkQ0J5YjJ4bElEMGdkR2hwY3k1dWIzSnRZV3hwZW1WU2IyeGxRMjl1Wm1sbktISmxZV3h0VG1GdFpTd2djR0Y1Ykc5aFpDazdYRzRnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lsQlBVMVJjSWl4Y2JpQWdJQ0FnSUdBa2UzUm9hWE11WTI5dVptbG5MbkJ5YjNSdlkyOXNmVG92THlSN2RHaHBjeTVqYjI1bWFXY3VaWE5mYUc5emRIMHZYM05sWTNWeWFYUjVMM0p2YkdVdkpIdGxibU52WkdWVlVrbERiMjF3YjI1bGJuUW9jbTlzWlM1dVlXMWxLWDFnTEZ4dUlDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNCcGJtUnBZMlZ6T2lCeWIyeGxMbWx1WkdsalpYTXNYRzRnSUNBZ0lDQWdJR0Z3Y0d4cFkyRjBhVzl1Y3pvZ2NtOXNaUzVoY0hCc2FXTmhkR2x2Ym5Nc1hHNGdJQ0FnSUNBZ0lHMWxkR0ZrWVhSaE9pQnliMnhsTG0xbGRHRmtZWFJoSUQ4L0lIdDlMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSFJvYVhNdVkyOXVabWxuTG1Ga2JXbHVRWEJwVlhObGNpeGNiaUFnSUNBZ0lIc2dhR1ZoWkdWeWN6b2dleUJjSW10aWJpMTRjM0ptWENJNklGd2lkSEoxWlZ3aUxDQmNJa052Ym5SbGJuUXRWSGx3WlZ3aU9pQmNJbUZ3Y0d4cFkyRjBhVzl1TDJwemIyNWNJaUI5SUgwc1hHNGdJQ0FnSUNBeU1EQXNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9jbVZ6Y0c5dWMyVXVjM1JoZEhWeklENDlJRE13TUNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYldWemMyRm5aU0E5SUdCVmJtRmliR1VnZEc4Z1kzSmxZWFJsSUhKdmJHVWdabTl5SUNSN2NtVmhiRzFPWVcxbGZUb2dKSHR5WlhOd2IyNXpaUzV6ZEdGMGRYTlVaWGgwZldBN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1FtRmtVbVZ4ZFdWemRFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSFZ3WkdGMFpWSnZiR1VvWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NHRjViRzloWkRvZ1VHRnlkR2xoYkR4TGFXSmhibUZTYjJ4bFEyOXVabWxuUGl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lkWEJrWVhSbFVtOXNaVndpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVkWEJrWVhSbFVtOXNaU2s3WEc0Z0lDQWdZMjl1YzNRZ2NtOXNaU0E5SUhSb2FYTXVibTl5YldGc2FYcGxVbTlzWlVOdmJtWnBaeWh5WldGc2JVNWhiV1VzSUhCaGVXeHZZV1FwTzF4dUlDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdYQ0pRVlZSY0lpeGNiaUFnSUNBZ0lHQWtlM1JvYVhNdVkyOXVabWxuTG5CeWIzUnZZMjlzZlRvdkx5UjdkR2hwY3k1amIyNW1hV2N1WlhOZmFHOXpkSDB2WDNObFkzVnlhWFI1TDNKdmJHVXZKSHRsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvY205c1pTNXVZVzFsS1gxZ0xGeHVJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQnBibVJwWTJWek9pQnliMnhsTG1sdVpHbGpaWE1zWEc0Z0lDQWdJQ0FnSUdGd2NHeHBZMkYwYVc5dWN6b2djbTlzWlM1aGNIQnNhV05oZEdsdmJuTXNYRzRnSUNBZ0lDQWdJRzFsZEdGa1lYUmhPaUJ5YjJ4bExtMWxkR0ZrWVhSaElEOC9JSHQ5TEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUhSb2FYTXVZMjl1Wm1sbkxtRmtiV2x1UVhCcFZYTmxjaXhjYmlBZ0lDQWdJSHNnYUdWaFpHVnljem9nZXlCY0ltdGliaTE0YzNKbVhDSTZJRndpZEhKMVpWd2lMQ0JjSWtOdmJuUmxiblF0Vkhsd1pWd2lPaUJjSW1Gd2NHeHBZMkYwYVc5dUwycHpiMjVjSWlCOUlIMHNYRzRnSUNBZ0lDQXlNREFzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvY21WemNHOXVjMlV1YzNSaGRIVnpJRDQ5SURNd01Da2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2JXVnpjMkZuWlNBOUlHQlZibUZpYkdVZ2RHOGdkWEJrWVhSbElISnZiR1VnWm05eUlDUjdjbVZoYkcxT1lXMWxmVG9nSkh0eVpYTndiMjV6WlM1emRHRjBkWE5VWlhoMGZXQTdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRbUZrVW1WeGRXVnpkRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1kzSmxZWFJsU0hSMGNFTnNhV1Z1ZENoamIyNW1hV2M2SUV0cFltRnVZVk5sZEhWd1EyOXVabWxuS1RvZ1FYaHBiM05KYm5OMFlXNWpaU0I3WEc0Z0lDQWdjbVYwZFhKdUlFRjRhVzl6TG1OeVpXRjBaU2g3WEc0Z0lDQWdJQ0JpWVhObFZWSk1PaUJnSkh0amIyNW1hV2N1Y0hKdmRHOWpiMng5T2k4dkpIdGpiMjVtYVdjdWFHOXpkSDFnTEZ4dUlDQWdJQ0FnZG1Gc2FXUmhkR1ZUZEdGMGRYTTZJQ2dwSUQwK0lIUnlkV1VzWEc0Z0lDQWdJQ0JvZEhSd2MwRm5aVzUwT2lCdVpYY2dhSFIwY0hNdVFXZGxiblFvZTF4dUlDQWdJQ0FnSUNCeVpXcGxZM1JWYm1GMWRHaHZjbWw2WldRNklDaHlaWE52YkhabFMybGlZVzVoU1hOUWNtOWtkV04wYVc5dUtIUm9hWE11WTI5dVptbG5JR0Z6SUdGdWVTa3BMRnh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ2NHRnljMlZGY25KdmNpaGxjbkp2Y2pvZ1JYSnliM0lwT2lCRmNuSnZjaUI3WEc0Z0lDQWdZMjl1YzNRZ2JXVnpjMkZuWlNBOUlHVnljbTl5TG0xbGMzTmhaMlVnZkh3Z1pYSnliM0l1Ym1GdFpTQjhmQ0JjSWxWdWEyNXZkMjRnWlhKeWIzSmNJanRjYmlBZ0lDQmpiMjV6ZENCc2IzZGxjazFsYzNOaFoyVWdQU0J0WlhOellXZGxMblJ2VEc5M1pYSkRZWE5sS0NrN1hHNWNiaUFnSUNCcFppQW9iRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aWJtOTBJR1p2ZFc1a1hDSXBJSHg4SUd4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJalF3TkZ3aUtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKaGJISmxZV1I1SUdWNGFYTjBjMXdpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKamIyNW1iR2xqZEZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNRGxjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dRMjl1Wm14cFkzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpYVc1MllXeHBaRndpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKaVlXUWdjbVZ4ZFdWemRGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTURCY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlLRzFsYzNOaFoyVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2hzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSjFibUYxZEdodmNtbDZaV1JjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aU5EQXhYQ0lwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0d4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJbVp2Y21KcFpHUmxibHdpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENJME1ETmNJaWtwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1RtOTBSbTkxYm1SRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHNXZjbTFoYkdsNlpWSnZiR1ZEYjI1bWFXY29YRzRnSUNBZ2NtVmhiRzFPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnY0dGNWJHOWhaRG9nVUdGeWRHbGhiRHhMYVdKaGJtRlNiMnhsUTI5dVptbG5QaUE5SUh0OVhHNGdJQ2s2SUV0cFltRnVZVkp2YkdWRGIyNW1hV2NnZTF4dUlDQWdJR052Ym5OMElITjFabVpwZUNBOUlISmxZV3h0VG1GdFpTNTBiMHh2ZDJWeVEyRnpaU2dwTzF4dUlDQWdJR052Ym5OMElHSmhjMlVnUFNCMGFHbHpMbU52Ym1acFp5NXliMnhsSUQ4L0lIdDlPMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCdVlXMWxPaUJ3WVhsc2IyRmtMbTVoYldVZ1B6OGdZbUZ6WlM1dVlXMWxJRDgvSUdCd2JHRmZKSHR6ZFdabWFYaDlYM0psWVdSbGNtQXNYRzRnSUNBZ0lDQnBibVJwWTJWek9pQndZWGxzYjJGa0xtbHVaR2xqWlhNZ1B6OWNiaUFnSUNBZ0lDQWdZbUZ6WlM1cGJtUnBZMlZ6SUQ4L0lGdGNiaUFnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnVZVzFsY3pvZ1cyQm1hV3hsWW1WaGRDMXdiR0V0Skh0emRXWm1hWGg5TFNwZ0xDQmdiV1YwY21salltVmhkQzF3YkdFdEpIdHpkV1ptYVhoOUxTcGdYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnlhWFpwYkdWblpYTTZJRnRjSW5KbFlXUmNJaXdnWENKMmFXVjNYMmx1WkdWNFgyMWxkR0ZrWVhSaFhDSmRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lXeHNiM2RmY21WemRISnBZM1JsWkY5cGJtUnBZMlZ6T2lCbVlXeHpaU3hjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQmRMRnh1SUNBZ0lDQWdZWEJ3YkdsallYUnBiMjV6T2lCd1lYbHNiMkZrTG1Gd2NHeHBZMkYwYVc5dWN5QS9QMXh1SUNBZ0lDQWdJQ0JpWVhObExtRndjR3hwWTJGMGFXOXVjeUEvUHlCYlhHNGdJQ0FnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1lYQndiR2xqWVhScGIyNDZJRndpYTJsaVlXNWhMUzVyYVdKaGJtRmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnlhWFpwYkdWblpYTTZJRnRjSW1abFlYUjFjbVZmWkdselkyOTJaWEl1Y21WaFpGd2lMQ0JjSW1abFlYUjFjbVZmWkdGemFHSnZZWEprTG5KbFlXUmNJbDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWE52ZFhKalpYTTZJRnRnYzNCaFkyVTZKSHR5WldGc2JVNWhiV1Y5WUYwc1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnWFN4Y2JpQWdJQ0FnSUd0cFltRnVZVG9nY0dGNWJHOWhaQzVyYVdKaGJtRWdQejljYmlBZ0lDQWdJQ0FnWW1GelpTNXJhV0poYm1FZ1B6OGdXMXh1SUNBZ0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE53WVdObGN6b2dXM0psWVd4dFRtRnRaVjBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmlZWE5sT2lCYlhDSnlaV0ZrWENKZExGeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUYwc1hHNGdJQ0FnSUNCdFpYUmhaR0YwWVRvZ2NHRjViRzloWkM1dFpYUmhaR0YwWVNBL1B5QmlZWE5sTG0xbGRHRmtZWFJoSUQ4L0lIdDlMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklISmxjWFZsYzNRb1hHNGdJQ0FnYldWMGFHOWtPaUJjSWtkRlZGd2lJSHdnWENKUVQxTlVYQ0lnZkNCY0lsQlZWRndpSUh3Z1hDSkVSVXhGVkVWY0lpeGNiaUFnSUNCMWNtdzZJSE4wY21sdVp5eGNiaUFnSUNCd1lYbHNiMkZrT2lCMWJtdHViM2R1TEZ4dUlDQWdJR0Z3YVZWelpYSTZJRXRwWW1GdVlWVnpaWElnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnWlhoMGNtRTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRzWEc0Z0lDQWdjM1ZqWTJWemMwTnZaR1U2SUc1MWJXSmxjaXhjYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOFlXNTVQaUI3WEc0Z0lDQWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1eVpYRjFaWE4wS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amJHbGxiblF1Y21WeGRXVnpkQ2g3WEc0Z0lDQWdJQ0J0WlhSb2IyUXNYRzRnSUNBZ0lDQjFjbXdzWEc0Z0lDQWdJQ0JrWVhSaE9seHVJQ0FnSUNBZ0lDQndZWGxzYjJGa0lEMDlQU0IxYm1SbFptbHVaV1JjYmlBZ0lDQWdJQ0FnSUNBL0lIVnVaR1ZtYVc1bFpGeHVJQ0FnSUNBZ0lDQWdJRG9nZEhsd1pXOW1JSEJoZVd4dllXUWdQVDA5SUZ3aWMzUnlhVzVuWENKY2JpQWdJQ0FnSUNBZ0lDQWdJRDhnY0dGNWJHOWhaRnh1SUNBZ0lDQWdJQ0FnSUNBZ09pQktVMDlPTG5OMGNtbHVaMmxtZVNod1lYbHNiMkZrS1N4Y2JpQWdJQ0FnSUdGMWRHZzZJR0Z3YVZWelpYSmNiaUFnSUNBZ0lDQWdQeUI3SUhWelpYSnVZVzFsT2lCaGNHbFZjMlZ5TG5WelpYSnVZVzFsTENCd1lYTnpkMjl5WkRvZ1lYQnBWWE5sY2k1d1lYTnpkMjl5WkNCOVhHNGdJQ0FnSUNBZ0lEb2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdkbUZzYVdSaGRHVlRkR0YwZFhNNklDZ3BJRDArSUhSeWRXVXNYRzRnSUNBZ0lDQm9kSFJ3YzBGblpXNTBPaUJ1WlhjZ2FIUjBjSE11UVdkbGJuUW9lMXh1SUNBZ0lDQWdJQ0J5WldwbFkzUlZibUYxZEdodmNtbDZaV1E2SUNoeVpYTnZiSFpsUzJsaVlXNWhTWE5RY205a2RXTjBhVzl1S0hSb2FYTXVZMjl1Wm1sbklHRnpJR0Z1ZVNrcExGeHVJQ0FnSUNBZ2ZTa3NYRzRnSUNBZ0lDQXVMaTVsZUhSeVlTeGNiaUFnSUNCOUtUdGNiaUFnZlZ4dWZWeHVJbDE5Il19
@@ -47,6 +47,7 @@ const KibanaRoleService_js_1 = require("./KibanaRoleService.cjs");
47
47
  const KibanaUserService_js_1 = require("./KibanaUserService.cjs");
48
48
  const KibanaDashboardService_js_1 = require("./KibanaDashboardService.cjs");
49
49
  const KibanaAuthService_js_1 = require("./KibanaAuthService.cjs");
50
+ const runtime_js_1 = require("./runtime.cjs");
50
51
  /**
51
52
  * @class KibanaService
52
53
  * @summary Orchestrates Kibana setup and provisioning flows.
@@ -67,6 +68,7 @@ class KibanaService extends core_1.ClientBasedService {
67
68
  isProduction: this.isProduction.bind(this),
68
69
  };
69
70
  this._config = runtimeConfig;
71
+ (0, runtime_js_1.setKibanaProductionResolver)(this.isProduction.bind(this));
70
72
  this.spaceService = new KibanaSpaceService_js_1.KibanaSpaceService();
71
73
  await this.spaceService.initialize(runtimeConfig, ...ctxArgs);
72
74
  this.dataViewService = new KibanaDataViewService_js_1.KibanaDataViewService();
@@ -85,24 +87,25 @@ class KibanaService extends core_1.ClientBasedService {
85
87
  }
86
88
  async setupOrganization(config, ...args) {
87
89
  const { ctxArgs } = (await this.logCtx(args, "setupOrganization", true)).for(this.setupOrganization);
88
- const realmName = config.realm;
90
+ const effectiveConfig = config ?? this.config;
91
+ const realmName = effectiveConfig.realm;
89
92
  try {
90
- await this.spaceService.createSpace(realmName, config.space ?? {}, ...ctxArgs);
93
+ await this.spaceService.createSpace(realmName, effectiveConfig.space ?? {}, ...ctxArgs);
91
94
  }
92
95
  catch (error) {
93
96
  if (!(error instanceof db_decorators_1.ConflictError))
94
97
  throw error;
95
98
  }
96
99
  const dashboardId = await this.dashboardService.cloneDefaultDashboards(realmName, ...ctxArgs);
97
- if (config.dashboards && dashboardId) {
98
- config.dashboards = { ...config.dashboards, dashboard: dashboardId };
100
+ if (effectiveConfig.dashboards && dashboardId) {
101
+ effectiveConfig.dashboards = { ...effectiveConfig.dashboards, dashboard: dashboardId };
99
102
  }
100
- await this.dataViewService.createDataViews(realmName, config.dataViews, ...ctxArgs);
103
+ await this.dataViewService.createDataViews(realmName, effectiveConfig.dataViews, ...ctxArgs);
101
104
  await this.dataViewService.setDefaultDataView(realmName, undefined, ...ctxArgs);
102
- await this.roleService.createRole(realmName, config.role ?? {}, ...ctxArgs);
103
- await this.userService.createUser(config.realmApiUser, realmName, undefined, ...ctxArgs);
105
+ await this.roleService.createRole(realmName, effectiveConfig.role ?? {}, ...ctxArgs);
106
+ await this.userService.createUser(effectiveConfig.realmApiUser, realmName, undefined, ...ctxArgs);
104
107
  await this.dashboardService.verifySpaceSetup(realmName, ...ctxArgs);
105
- return config;
108
+ return effectiveConfig;
106
109
  }
107
110
  generateDashboardEmbedUrl(options) {
108
111
  return this.dashboardService.generateDashboardEmbedUrl(options);
@@ -170,5 +173,5 @@ class KibanaService extends core_1.ClientBasedService {
170
173
  }
171
174
  }
172
175
  exports.KibanaService = KibanaService;
173
- //# sourceMappingURL=KibanaService.js.map
174
- //# sourceMappingURL=KibanaService.cjs.map
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9raWJhbmEvc2VydmljZXMvS2liYW5hU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRcEQsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQztBQUVwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0NBQTZCO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQ0FBZ0M7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLCtCQUE0QjtBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsK0JBQTRCO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQ0FBaUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLCtCQUE0QjtBQUN4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUscUJBQWtCO0FBTXhEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUdsQztJQWFDO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRVMsWUFBWTtRQUNwQixPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUM1QyxDQUFDLEdBQUcsQ0FBQyxJ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aEQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRTtZQUM5QyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUMxQixVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUMxQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO2FBQ3hDLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25mbGljdEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUge1xuICBLaWJhbmFEYXRhVmlld0NvbmZpZyxcbiAgS2liYW5hUm9sZUNvbmZpZyxcbiAgS2liYW5hU2V0dXBDb25maWcsXG4gIEtpYmFuYVNwYWNlQ29uZmlnLFxuICBLaWJhbmFVc2VyLFxufSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCBBeGlvcywgeyBBeGlvc0luc3RhbmNlIH0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tIFwibm9kZTpodHRwc1wiO1xuXG5pbXBvcnQgeyBLaWJhbmFTcGFjZVNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFTcGFjZVNlcnZpY2VcIjtcbmltcG9ydCB7IEtpYmFuYURhdGFWaWV3U2VydmljZSB9IGZyb20gXCIuL0tpYmFuYURhdGFWaWV3U2VydmljZVwiO1xuaW1wb3J0IHsgS2liYW5hUm9sZVNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFSb2xlU2VydmljZVwiO1xuaW1wb3J0IHsgS2liYW5hVXNlclNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFVc2VyU2VydmljZVwiO1xuaW1wb3J0IHsgS2liYW5hRGFzaGJvYXJkU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYURhc2hib2FyZFNlcnZpY2VcIjtcbmltcG9ydCB7IEtpYmFuYUF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4vS2liYW5hQXV0aFNlcnZpY2VcIjtcbmltcG9ydCB7IHNldEtpYmFuYVByb2R1Y3Rpb25SZXNvbHZlciB9IGZyb20gXCIuL3J1bnRpbWVcIjtcblxudHlwZSBLaWJhbmFSdW50aW1lU2V0dXBDb25maWcgPSBLaWJhbmFTZXR1cENvbmZpZyAmIHtcbiAgaXNQcm9kdWN0aW9uKCk6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEBjbGFzcyBLaWJhbmFTZXJ2aWNlXG4gKiBAc3VtbWFyeSBPcmNoZXN0cmF0ZXMgS2liYW5hIHNldHVwIGFuZCBwcm92aXNpb25pbmcgZmxvd3MuXG4gKiBAZGVzY3JpcHRpb24gQm9vdHMgdGhlIGxvd2VyLWxldmVsIEtpYmFuYSBzZXJ2aWNlcywgY29vcmRpbmF0ZXMgY3JlYXRpb24gb2Ygc3BhY2VzLCBkYXRhIHZpZXdzLCByb2xlcywgdXNlcnMsIGRhc2hib2FyZHMsIGFuZCBleHBvc2VzIGhlbHBlciBtZXRob2RzIGZvciBlbWJlZCBVUkxzIGFuZCBvcmdhbml6YXRpb24gc2V0dXAuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaWJhbmFTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlPFxuICBBeGlvc0luc3RhbmNlLFxuICBLaWJhbmFTZXR1cENvbmZpZ1xuPiB7XG4gIHByb3RlY3RlZCBzcGFjZVNlcnZpY2UhOiBLaWJhbmFTcGFjZVNlcnZpY2U7XG5cbiAgcHJvdGVjdGVkIGRhdGFWaWV3U2VydmljZSE6IEtpYmFuYURhdGFWaWV3U2VydmljZTtcblxuICBwcm90ZWN0ZWQgcm9sZVNlcnZpY2UhOiBLaWJhbmFSb2xlU2VydmljZTtcblxuICBwcm90ZWN0ZWQgdXNlclNlcnZpY2UhOiBLaWJhbmFVc2VyU2VydmljZTtcblxuICBwcm90ZWN0ZWQgZGFzaGJvYXJkU2VydmljZSE6IEtpYmFuYURhc2hib2FyZFNlcnZpY2U7XG5cbiAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlITogS2liYW5hQXV0aFNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc1Byb2R1Y3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFbXCJkZXZlbG9wbWVudFwiLCBcImxvY2FsXCJdLmluY2x1ZGVzKFxuICAgICAgcHJvY2Vzcy5lbnZbXCJOT0RFX0VOVlwiXSA/PyBcIlwiXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx7IGNvbmZpZzogS2liYW5hU2V0dXBDb25maWc7IGNsaWVudDogQXhpb3NJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2liYW5hU2V0dXBDb25maWc7XG4gICAgY29uc3QgcnVudGltZUNvbmZpZzogS2liYW5hUnVudGltZVNldHVwQ29uZmlnID0ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgaXNQcm9kdWN0aW9uOiB0aGlzLmlzUHJvZHVjdGlvbi5iaW5kKHRoaXMpLFxuICAgIH07XG4gICAgdGhpcy5fY29uZmlnID0gcnVudGltZUNvbmZpZztcbiAgICBzZXRLaWJhbmFQcm9kdWN0aW9uUmVzb2x2ZXIodGhpcy5pc1Byb2R1Y3Rpb24uYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnNwYWNlU2VydmljZSA9IG5ldyBLaWJhbmFTcGFjZVNlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLnNwYWNlU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgIHRoaXMuZGF0YVZpZXdTZXJ2aWNlID0gbmV3IEtpYmFuYURhdGFWaWV3U2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgdGhpcy5yb2xlU2VydmljZSA9IG5ldyBLaWJhbmFSb2xlU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlID0gbmV3IEtpYmFuYVVzZXJTZXJ2aWNlKCk7XG4gICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZSA9IG5ldyBLaWJhbmFEYXNoYm9hcmRTZXJ2aWNlKCk7XG4gICAgYXdhaXQgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgdGhpcy5hdXRoU2VydmljZSA9IG5ldyBLaWJhbmFBdXRoU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcblxuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChydW50aW1lQ29uZmlnKTtcbiAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgfVxuXG4gIGFzeW5jIHNldHVwT3JnYW5pemF0aW9uKFxuICAgIGNvbmZpZz86IEtpYmFuYVNldHVwQ29uZmlnLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8S2liYW5hU2V0dXBDb25maWc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0dXBPcmdhbml6YXRpb25cIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnNldHVwT3JnYW5pemF0aW9uKTtcbiAgICBjb25zdCBlZmZlY3RpdmVDb25maWcgPSBjb25maWcgPz8gdGhpcy5jb25maWc7XG4gICAgY29uc3QgcmVhbG1OYW1lID0gZWZmZWN0aXZlQ29uZmlnLnJlYWxtO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnNwYWNlU2VydmljZS5jcmVhdGVTcGFjZShcbiAgICAgICAgcmVhbG1OYW1lLFxuICAgICAgICBlZmZlY3RpdmVDb25maWcuc3BhY2UgPz8ge30sXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgQ29uZmxpY3RFcnJvcikpIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IGRhc2hib2FyZElkID0gYXdhaXQgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmNsb25lRGVmYXVsdERhc2hib2FyZHMoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBpZiAoZWZmZWN0aXZlQ29uZmlnLmRhc2hib2FyZHMgJiYgZGFzaGJvYXJkSWQpIHtcbiAgICAgIGVmZmVjdGl2ZUNvbmZpZy5kYXNoYm9hcmRzID0geyAuLi5lZmZlY3RpdmVDb25maWcuZGFzaGJvYXJkcywgZGFzaGJvYXJkOiBkYXNoYm9hcmRJZCB9O1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmNyZWF0ZURhdGFWaWV3cyhcbiAgICAgIHJlYWxtTmFtZSxcbiAgICAgIGVmZmVjdGl2ZUNvbmZpZy5kYXRhVmlld3MsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5zZXREZWZhdWx0RGF0YVZpZXcocmVhbG1OYW1lLCB1bmRlZmluZWQsIC4uLmN0eEFyZ3MpO1xuICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuY3JlYXRlUm9sZShyZWFsbU5hbWUsIGVmZmVjdGl2ZUNvbmZpZy5yb2xlID8/IHt9LCAuLi5jdHhBcmdzKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZVVzZXIoXG4gICAgICBlZmZlY3RpdmVDb25maWcucmVhbG1BcGlVc2VyLFxuICAgICAgcmVhbG1OYW1lLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnZlcmlmeVNwYWNlU2V0dXAocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcblxuICAgIHJldHVybiBlZmZlY3RpdmVDb25maWc7XG4gIH1cblxuICBnZW5lcmF0ZURhc2hib2FyZEVtYmVkVXJsKG9wdGlvbnM6IHtcbiAgICBzcGFjZTogc3RyaW5nO1xuICAgIGRhc2hib2FyZElkOiBzdHJpbmc7XG4gICAgc2hvd1RpbWVGaWx0ZXI/OiBib29sZWFuO1xuICAgIHNob3dRdWVyeUlucHV0PzogYm9vbGVhbjtcbiAgICBzaG93RmlsdGVyQmFyPzogYm9vbGVhbjtcbiAgICBoaWRlUGFuZWxUaXRsZXM/OiBib29sZWFuO1xuICAgIHRpbWVSYW5nZT86IHsgZnJvbTogc3RyaW5nOyB0bzogc3RyaW5nIH07XG4gIH0pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2VuZXJhdGVEYXNoYm9hcmRFbWJlZFVybChvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNwYWNlKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IFBhcnRpYWw8S2liYW5hU3BhY2VDb25maWc+IHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVTcGFjZVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlU3BhY2UpO1xuICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmNyZWF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVTcGFjZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtpYmFuYVNwYWNlQ29uZmlnPixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlU3BhY2VcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnVwZGF0ZVNwYWNlKTtcbiAgICBhd2FpdCB0aGlzLnNwYWNlU2VydmljZS51cGRhdGVTcGFjZShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlU3BhY2UoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVNwYWNlXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5kZWxldGVTcGFjZSk7XG4gICAgYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UuZGVsZXRlU3BhY2UocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZURhdGFWaWV3KFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHNwZWM6IEtpYmFuYURhdGFWaWV3Q29uZmlnLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVEYXRhVmlld1wiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlRGF0YVZpZXcpO1xuICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmNyZWF0ZURhdGFWaWV3KHJlYWxtTmFtZSwgc3BlYywgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVEYXRhVmlldyhcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBzcGVjOiBLaWJhbmFEYXRhVmlld0NvbmZpZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlRGF0YVZpZXdcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnVwZGF0ZURhdGFWaWV3KTtcbiAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS51cGRhdGVEYXRhVmlldyhyZWFsbU5hbWUsIHNwZWMsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRGF0YVZpZXdzKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIGRhdGFWaWV3czogS2liYW5hRGF0YVZpZXdDb25maWdbXSB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlRGF0YVZpZXdzXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVEYXRhVmlld3MpO1xuICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmNyZWF0ZURhdGFWaWV3cyhcbiAgICAgIHJlYWxtTmFtZSxcbiAgICAgIGRhdGFWaWV3cyA/PyBbXSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2V0RGVmYXVsdERhdGFWaWV3KFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIGRhdGFWaWV3SWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0RGVmYXVsdERhdGFWaWV3XCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zZXREZWZhdWx0RGF0YVZpZXcpO1xuICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLnNldERlZmF1bHREYXRhVmlldyhcbiAgICAgIHJlYWxtTmFtZSxcbiAgICAgIGRhdGFWaWV3SWQsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGNsb25lRGVmYXVsdERhc2hib2FyZHMoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY2xvbmVEZWZhdWx0RGFzaGJvYXJkc1wiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyk7XG4gICAgcmV0dXJuIHRoaXMuZGFzaGJvYXJkU2VydmljZS5jbG9uZURlZmF1bHREYXNoYm9hcmRzKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVSb2xlKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IFBhcnRpYWw8S2liYW5hUm9sZUNvbmZpZz4gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZVJvbGVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZVJvbGUpO1xuICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuY3JlYXRlUm9sZShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUm9sZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtpYmFuYVJvbGVDb25maWc+LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ1cGRhdGVSb2xlXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy51cGRhdGVSb2xlKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLnVwZGF0ZVJvbGUocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVVzZXIoXG4gICAgdXNlcjogS2liYW5hVXNlcixcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVVc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVVc2VyKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZVVzZXIoXG4gICAgICB1c2VyLFxuICAgICAgcmVhbG1OYW1lLFxuICAgICAgcm9sZU5hbWVzID8/IFtdLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVVc2VyKFxuICAgIHVzZXI6IEtpYmFuYVVzZXIsXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlVXNlclwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMudXBkYXRlVXNlcik7XG4gICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS51cGRhdGVVc2VyKFxuICAgICAgdXNlcixcbiAgICAgIHJlYWxtTmFtZSxcbiAgICAgIHJvbGVOYW1lcyA/PyBbXSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5U3BhY2VTZXR1cChcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidmVyaWZ5U3BhY2VTZXR1cFwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMudmVyaWZ5U3BhY2VTZXR1cCk7XG4gICAgYXdhaXQgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnZlcmlmeVNwYWNlU2V0dXAocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSHR0cENsaWVudChjb25maWc6IEtpYmFuYVNldHVwQ29uZmlnKTogQXhpb3NJbnN0YW5jZSB7XG4gICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IHRoaXMuaXNQcm9kdWN0aW9uKCksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxufVxuIl19
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktpYmFuYVNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXdEO0FBQ3hELHlDQUFvRDtBQUNwRCxrREFBMEI7QUFDMUIsa0RBQW9DO0FBQ3BDLG1FQUE2RDtBQUM3RCx5RUFBbUU7QUFDbkUsaUVBQTJEO0FBQzNELGlFQUEyRDtBQUMzRCwyRUFBcUU7QUFDckUsaUVBQTJEO0FBQzNELDZDQUEyRDtBQUMzRDs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEseUJBQWtCO0lBQ2pEO1FBQ0ksS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsWUFBWTtRQUNSLE9BQU8sQ0FBQyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUk7UUFDcEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixNQUFNLGFBQWEsR0FBRztZQUNsQixHQUFHLE1BQU07WUFDVCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzdDLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQztRQUM3QixJQUFBLHdDQUEyQixFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFD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TUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUNELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJO1FBQ3JDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELGdCQUFnQixDQUFDLE1BQU07UUFDbkIsT0FBTyxlQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRTtZQUM5QyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUMxQixVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN4QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO2FBQzFDLENBQUM7U0FDTCxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUF0SEQsc0NBc0hDO0FBQ0Qsa3F0QkFBa3F0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZsaWN0RXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IEF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IEtpYmFuYVNwYWNlU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYVNwYWNlU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2liYW5hRGF0YVZpZXdTZXJ2aWNlIH0gZnJvbSBcIi4vS2liYW5hRGF0YVZpZXdTZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBLaWJhbmFSb2xlU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYVJvbGVTZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBLaWJhbmFVc2VyU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYVVzZXJTZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBLaWJhbmFEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSBcIi4vS2liYW5hRGFzaGJvYXJkU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2liYW5hQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFBdXRoU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgc2V0S2liYW5hUHJvZHVjdGlvblJlc29sdmVyIH0gZnJvbSBcIi4vcnVudGltZS5qc1wiO1xuLyoqXG4gKiBAY2xhc3MgS2liYW5hU2VydmljZVxuICogQHN1bW1hcnkgT3JjaGVzdHJhdGVzIEtpYmFuYSBzZXR1cCBhbmQgcHJvdmlzaW9uaW5nIGZsb3dzLlxuICogQGRlc2NyaXB0aW9uIEJvb3RzIHRoZSBsb3dlci1sZXZlbCBLaWJhbmEgc2VydmljZXMsIGNvb3JkaW5hdGVzIGNyZWF0aW9uIG9mIHNwYWNlcywgZGF0YSB2aWV3cywgcm9sZXMsIHVzZXJzLCBkYXNoYm9hcmRzLCBhbmQgZXhwb3NlcyBoZWxwZXIgbWV0aG9kcyBmb3IgZW1iZWQgVVJMcyBhbmQgb3JnYW5pemF0aW9uIHNldHVwLlxuICovXG5leHBvcnQgY2xhc3MgS2liYW5hU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIGlzUHJvZHVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICFbXCJkZXZlbG9wbWVudFwiLCBcImxvY2FsXCJdLmluY2x1ZGVzKHByb2Nlc3MuZW52W1wiTk9ERV9FTlZcIl0gPz8gXCJcIik7XG4gICAgfVxuICAgIGFzeW5jIGluaXRpYWxpemUoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSkpLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgICAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdO1xuICAgICAgICBjb25zdCBydW50aW1lQ29uZmlnID0ge1xuICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgaXNQcm9kdWN0aW9uOiB0aGlzLmlzUHJvZHVjdGlvbi5iaW5kKHRoaXMpLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9jb25maWcgPSBydW50aW1lQ29uZmlnO1xuICAgICAgICBzZXRLaWJhbmFQcm9kdWN0aW9uUmVzb2x2ZXIodGhpcy5pc1Byb2R1Y3Rpb24uYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuc3BhY2VTZXJ2aWNlID0gbmV3IEtpYmFuYVNwYWNlU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLnNwYWNlU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB0aGlzLmRhdGFWaWV3U2VydmljZSA9IG5ldyBLaWJhbmFEYXRhVmlld1NlcnZpY2UoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgdGhpcy5yb2xlU2VydmljZSA9IG5ldyBLaWJhbmFSb2xlU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UgPSBuZXcgS2liYW5hVXNlclNlcnZpY2UoKTtcbiAgICAgICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UgPSBuZXcgS2liYW5hRGFzaGJvYXJkU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmRhc2hib2FyZFNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZSA9IG5ldyBLaWJhbmFBdXRoU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChydW50aW1lQ29uZmlnKTtcbiAgICAgICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgICAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICAgIH1cbiAgICBhc3luYyBzZXR1cE9yZ2FuaXphdGlvbihjb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzZXR1cE9yZ2FuaXphdGlvblwiLCB0cnVlKSkuZm9yKHRoaXMuc2V0dXBPcmdhbml6YXRpb24pO1xuICAgICAgICBjb25zdCBlZmZlY3RpdmVDb25maWcgPSBjb25maWcgPz8gdGhpcy5jb25maWc7XG4gICAgICAgIGNvbnN0IHJlYWxtTmFtZSA9IGVmZmVjdGl2ZUNvbmZpZy5yZWFsbTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmNyZWF0ZVNwYWNlKHJlYWxtTmFtZSwgZWZmZWN0aXZlQ29uZmlnLnNwYWNlID8/IHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgQ29uZmxpY3RFcnJvcikpXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGFzaGJvYXJkSWQgPSBhd2FpdCB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyhyZWFsbU5hbWUsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBpZiAoZWZmZWN0aXZlQ29uZmlnLmRhc2hib2FyZHMgJiYgZGFzaGJvYXJkSWQpIHtcbiAgICAgICAgICAgIGVmZmVjdGl2ZUNvbmZpZy5kYXNoYm9hcmRzID0geyAuLi5lZmZlY3RpdmVDb25maWcuZGFzaGJvYXJkcywgZGFzaGJvYXJkOiBkYXNoYm9hcmRJZCB9O1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmNyZWF0ZURhdGFWaWV3cyhyZWFsbU5hbWUsIGVmZmVjdGl2ZUNvbmZpZy5kYXRhVmlld3MsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5zZXREZWZhdWx0RGF0YVZpZXcocmVhbG1OYW1lLCB1bmRlZmluZWQsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmNyZWF0ZVJvbGUocmVhbG1OYW1lLCBlZmZlY3RpdmVDb25maWcucm9sZSA/PyB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UuY3JlYXRlVXNlcihlZmZlY3RpdmVDb25maWcucmVhbG1BcGlVc2VyLCByZWFsbU5hbWUsIHVuZGVmaW5lZCwgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGFzaGJvYXJkU2VydmljZS52ZXJpZnlTcGFjZVNldHVwKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiBlZmZlY3RpdmVDb25maWc7XG4gICAgfVxuICAgIGdlbmVyYXRlRGFzaGJvYXJkRW1iZWRVcmwob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdlbmVyYXRlRGFzaGJvYXJkRW1iZWRVcmwob3B0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZVNwYWNlXCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVTcGFjZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmNyZWF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZVNwYWNlXCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVTcGFjZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLnVwZGF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZVNwYWNlKHJlYWxtTmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVNwYWNlXCIsIHRydWUpKS5mb3IodGhpcy5kZWxldGVTcGFjZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmRlbGV0ZVNwYWNlKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZURhdGFWaWV3KHJlYWxtTmFtZSwgc3BlYywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZURhdGFWaWV3XCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVEYXRhVmlldyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmNyZWF0ZURhdGFWaWV3KHJlYWxtTmFtZSwgc3BlYywgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZURhdGFWaWV3KHJlYWxtTmFtZSwgc3BlYywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZURhdGFWaWV3XCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVEYXRhVmlldyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLnVwZGF0ZURhdGFWaWV3KHJlYWxtTmFtZSwgc3BlYywgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZURhdGFWaWV3cyhyZWFsbU5hbWUsIGRhdGFWaWV3cywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZURhdGFWaWV3c1wiLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlRGF0YVZpZXdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2UuY3JlYXRlRGF0YVZpZXdzKHJlYWxtTmFtZSwgZGF0YVZpZXdzID8/IFtdLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgc2V0RGVmYXVsdERhdGFWaWV3KHJlYWxtTmFtZSwgZGF0YVZpZXdJZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInNldERlZmF1bHREYXRhVmlld1wiLCB0cnVlKSkuZm9yKHRoaXMuc2V0RGVmYXVsdERhdGFWaWV3KTtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2Uuc2V0RGVmYXVsdERhdGFWaWV3KHJlYWxtTmFtZSwgZGF0YVZpZXdJZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNsb25lRGVmYXVsdERhc2hib2FyZHMocmVhbG1OYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY2xvbmVEZWZhdWx0RGFzaGJvYXJkc1wiLCB0cnVlKSkuZm9yKHRoaXMuY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyk7XG4gICAgICAgIHJldHVybiB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyhyZWFsbU5hbWUsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVSb2xlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZVJvbGVcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZVJvbGUpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmNyZWF0ZVJvbGUocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlUm9sZShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ1cGRhdGVSb2xlXCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVSb2xlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS51cGRhdGVSb2xlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVVzZXIodXNlciwgcmVhbG1OYW1lLCByb2xlTmFtZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVVc2VyXCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVVc2VyKTtcbiAgICAgICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5jcmVhdGVVc2VyKHVzZXIsIHJlYWxtTmFtZSwgcm9sZU5hbWVzID8/IFtdLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlVXNlcih1c2VyLCByZWFsbU5hbWUsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZVVzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLnVwZGF0ZVVzZXIpO1xuICAgICAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLnVwZGF0ZVVzZXIodXNlciwgcmVhbG1OYW1lLCByb2xlTmFtZXMgPz8gW10sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyB2ZXJpZnlTcGFjZVNldHVwKHJlYWxtTmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInZlcmlmeVNwYWNlU2V0dXBcIiwgdHJ1ZSkpLmZvcih0aGlzLnZlcmlmeVNwYWNlU2V0dXApO1xuICAgICAgICBhd2FpdCB0aGlzLmRhc2hib2FyZFNlcnZpY2UudmVyaWZ5U3BhY2VTZXR1cChyZWFsbU5hbWUsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZykge1xuICAgICAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgICAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiB0aGlzLmlzUHJvZHVjdGlvbigpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVMybGlZVzVoVTJWeWRtbGpaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5cmFXSmhibUV2YzJWeWRtbGpaWE12UzJsaVlXNWhVMlZ5ZG1salpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVVVc1lVRkJZU3hGUVVGRkxFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkZlRVFzVDBGQlR5eEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRlJjRVFzVDBGQlR5eExRVUYzUWl4TlFVRk5MRTlCUVU4c1EwRkJRenRCUVVNM1F5eFBRVUZQTEV0QlFVc3NTMEZCU3l4TlFVRk5MRmxCUVZrc1EwRkJRenRCUVVWd1F5eFBRVUZQTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzWjBOQlFUWkNPMEZCUXpGRUxFOUJRVThzUlVGQlJTeHhRa0ZCY1VJc1JVRkJSU3h0UTBGQlowTTdRVUZEYUVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RlFVRkZMQ3RDUVVFMFFqdEJRVU40UkN4UFFVRlBMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNLMEpCUVRSQ08wRkJRM2hFTEU5QlFVOHNSVUZCUlN4elFrRkJjMElzUlVGQlJTeHZRMEZCYVVNN1FVRkRiRVVzVDBGQlR5eEZRVUZGTEdsQ1FVRnBRaXhGUVVGRkxDdENRVUUwUWp0QlFVTjRSQ3hQUVVGUExFVkJRVVVzTWtKQlFUSkNMRVZCUVVVc2NVSkJRV3RDTzBGQlRYaEVPenM3TzBkQlNVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1lVRkJZeXhUUVVGUkxHdENRVWRzUXp0SlFXRkRPMUZCUTBVc1MwRkJTeXhGUVVGRkxFTkJRVU03U1VGRFZpeERRVUZETzBsQlJWTXNXVUZCV1R0UlFVTndRaXhQUVVGUExFTkJRVU1zUTBGQlF5eGhRVUZoTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVOMlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGRE9VSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVU5rTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTJ4Q0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU0xUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCYzBJc1EwRkJRenRSUVVNdlF5eE5RVUZOTEdGQlFXRXNSMEZCTmtJN1dVRkRPVU1zUjBGQlJ5eE5RVUZOTzFsQlExUXNXVUZCV1N4RlFVRkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXp0VFFVTXpReXhEUVVGRE8xRkJRMFlzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4aFFVRmhMRU5CUVVNN1VVRkROMElzTWtKQlFUSkNMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVVeFJDeEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRWxCUVVrc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXp0UlFVTTNReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNWVUZCVlN4RFFVRkRMR0ZCUVdFc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlF6bEVMRWxCUVVrc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeHhRa0ZCY1VJc1JVRkJSU3hEUVVGRE8xRkJRMjVFTEUxQlFVMHNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhWUVVGVkxFTkJRVU1zWVVGQllTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRha1VzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMR2xDUVVGcFFpeEZRVUZGTEVOQlFVTTdVVUZETTBNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZWQlFWVXNRMEZCUXl4aFFVRmhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFbEJRVWtzYVVKQlFXbENMRVZCUVVVc1EwRkJRenRSUVVNelF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUXpkRUxFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxITkNRVUZ6UWl4RlFVRkZMRU5CUVVNN1VVRkRja1FzVFVGQlRTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVlVGQlZTeERRVUZETEdGQlFXRXNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMnhGTEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hwUWtGQmFVSXNSVUZCUlN4RFFVRkRPMUZCUXpORExFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1lVRkJZU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZGTjBRc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlEzQkVMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETzFGQlEzUkNMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTTdTVUZETlVJc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkRja0lzVFVGQk1FSXNSVUZETVVJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGJrUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1VVRkRPVUlzVFVGQlRTeGxRVUZsTEVkQlFVY3NUVUZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRE9VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1pVRkJaU3hEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU40UXl4SlFVRkpMRU5CUVVNN1dVRkRTQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNWMEZCVnl4RFFVTnFReXhUUVVGVExFVkJRMVFzWlVGQlpTeERRVUZETEV0QlFVc3NTVUZCU1N4RlFVRkZMRVZCUXpOQ0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU5tTEVsQlFVa3NRMEZCUXl4RFFVRkRMRXRCUVVzc1dVRkJXU3hoUVVGaExFTkJRVU03WjBKQlFVVXNUVUZCVFN4TFFVRkxMRU5CUVVNN1VVRkRja1FzUTBGQlF6dFJRVVZFTEUxQlFVMHNWMEZCVnl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMSE5DUVVGelFpeERRVU53UlN4VFFVRlRMRVZCUTFRc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5HTEVsQlFVa3NaVUZCWlN4RFFVRkRMRlZCUVZVc1NVRkJTU3hYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU01UXl4bFFVRmxMRU5CUVVNc1ZVRkJWU3hIUVVGSExFVkJRVVVzUjBGQlJ5eGxRVUZsTEVOQlFVTXNWVUZCVlN4RlFVRkZMRk5CUVZNc1JVRkJSU3hYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU42Uml4RFFVRkRPMUZCUlVRc1RVRkJUU3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEdWQlFXVXNRMEZEZUVNc1UwRkJVeXhGUVVOVUxHVkJRV1VzUTBGQlF5eFRRVUZUTEVWQlEzcENMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeE5RVUZOTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyaEdMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RlFVRkZMR1ZCUVdVc1EwRkJReXhKUVVGSkxFbEJRVWtzUlVGQlJTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRja1lzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkRMMElzWlVGQlpTeERRVUZETEZsQlFWa3NSVUZETlVJc1UwRkJVeXhGUVVOVUxGTkJRVk1zUlVGRFZDeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRmNFVXNUMEZCVHl4bFFVRmxMRU5CUVVNN1NVRkRla0lzUTBGQlF6dEpRVVZFTEhsQ1FVRjVRaXhEUVVGRExFOUJVWHBDTzFGQlEwTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEYkVVc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlEyWXNVMEZCYVVJc1JVRkRha0lzVDBGQkswTXNSVUZETDBNc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeGhRVUZoTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpkRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVONFFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJWeXhEUVVGRExGTkJRVk1zUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOMFJTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkRaaXhUUVVGcFFpeEZRVU5xUWl4UFFVRnRReXhGUVVOdVF5eEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE4wTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFGQlEzaENMRTFCUVUwc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFhRVUZYTEVOQlFVTXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzUkZMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVjBGQlZ5eERRVU5tTEZOQlFXbENMRVZCUTJwQ0xFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNM1F5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRGVFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNM1JDeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkRiRUlzVTBGQmFVSXNSVUZEYWtJc1NVRkJNRUlzUlVGRE1VSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRhRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8xRkJRek5DTEUxQlFVMHNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhqUVVGakxFTkJRVU1zVTBGQlV5eEZRVUZGTEVsQlFVa3NSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM3BGTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVOc1FpeFRRVUZwUWl4RlFVTnFRaXhKUVVFd1FpeEZRVU14UWl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxHZENRVUZuUWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOb1JDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03VVVGRE0wSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExHTkJRV01zUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRMjVDTEZOQlFXbENMRVZCUTJwQ0xGTkJRVFpETEVWQlF6ZERMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzYVVKQlFXbENMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRMnBFTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF6dFJRVU0xUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zWlVGQlpTeERRVU40UXl4VFFVRlRMRVZCUTFRc1UwRkJVeXhKUVVGSkxFVkJRVVVzUlVGRFppeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1EwRkRkRUlzVTBGQmFVSXNSVUZEYWtJc1ZVRkJPRUlzUlVGRE9VSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3h2UWtGQmIwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRjRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdVVUZETDBJc1RVRkJUU3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEd0Q1FVRnJRaXhEUVVNelF5eFRRVUZUTEVWQlExUXNWVUZCVlN4RlFVTldMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMSE5DUVVGelFpeERRVU14UWl4VFFVRnBRaXhGUVVOcVFpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMSGRDUVVGM1FpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTjRSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUTBGQlF6dFJRVU51UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4elFrRkJjMElzUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNM1JTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkRaQ3hUUVVGcFFpeEZRVU5xUWl4UFFVRTRReXhGUVVNNVF5eEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRmxCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE5VTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzQkZMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVU5rTEZOQlFXbENMRVZCUTJwQ0xFOUJRV3RETEVWQlEyeERMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRjRVVzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTJRc1NVRkJaMElzUlVGRGFFSXNVMEZCYVVJc1JVRkRha0lzVTBGQkswSXNSVUZETDBJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpWRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOMlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVNdlFpeEpRVUZKTEVWQlEwb3NVMEZCVXl4RlFVTlVMRk5CUVZNc1NVRkJTU3hGUVVGRkxFVkJRMllzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVU5rTEVsQlFXZENMRVZCUTJoQ0xGTkJRV2xDTEVWQlEycENMRk5CUVN0Q0xFVkJReTlDTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTJ4Q0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU0xUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZWQlFWVXNRMEZETDBJc1NVRkJTU3hGUVVOS0xGTkJRVk1zUlVGRFZDeFRRVUZUTEVsQlFVa3NSVUZCUlN4RlFVTm1MRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR2RDUVVGblFpeERRVU53UWl4VFFVRnBRaXhGUVVOcVFpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnNSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dFJRVU0zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOMFJTeERRVUZETzBsQlJVOHNaMEpCUVdkQ0xFTkJRVU1zVFVGQmVVSTdVVUZEYUVRc1QwRkJUeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETzFsQlEyeENMRTlCUVU4c1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF5eFJRVUZSTEUxQlFVMHNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSVHRaUVVNNVF5eGpRVUZqTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTVHRaUVVNeFFpeFZRVUZWTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRE8yZENRVU14UWl4clFrRkJhMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZPMkZCUTNoRExFTkJRVU03VTBGRFNDeERRVUZETEVOQlFVTTdTVUZEVEN4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QkRiMjVtYkdsamRFVnljbTl5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lFTnNhV1Z1ZEVKaGMyVmtVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIUjVjR1VnZTF4dUlDQkxhV0poYm1GRVlYUmhWbWxsZDBOdmJtWnBaeXhjYmlBZ1MybGlZVzVoVW05c1pVTnZibVpwWnl4Y2JpQWdTMmxpWVc1aFUyVjBkWEJEYjI1bWFXY3NYRzRnSUV0cFltRnVZVk53WVdObFEyOXVabWxuTEZ4dUlDQkxhV0poYm1GVmMyVnlMRnh1ZlNCbWNtOXRJRndpTGk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCQmVHbHZjeXdnZXlCQmVHbHZjMGx1YzNSaGJtTmxJSDBnWm5KdmJTQmNJbUY0YVc5elhDSTdYRzVwYlhCdmNuUWdLaUJoY3lCb2RIUndjeUJtY205dElGd2libTlrWlRwb2RIUndjMXdpTzF4dVhHNXBiWEJ2Y25RZ2V5QkxhV0poYm1GVGNHRmpaVk5sY25acFkyVWdmU0JtY205dElGd2lMaTlMYVdKaGJtRlRjR0ZqWlZObGNuWnBZMlZjSWp0Y2JtbHRjRzl5ZENCN0lFdHBZbUZ1WVVSaGRHRldhV1YzVTJWeWRtbGpaU0I5SUdaeWIyMGdYQ0l1TDB0cFltRnVZVVJoZEdGV2FXVjNVMlZ5ZG1salpWd2lPMXh1YVcxd2IzSjBJSHNnUzJsaVlXNWhVbTlzWlZObGNuWnBZMlVnZlNCbWNtOXRJRndpTGk5TGFXSmhibUZTYjJ4bFUyVnlkbWxqWlZ3aU8xeHVhVzF3YjNKMElIc2dTMmxpWVc1aFZYTmxjbE5sY25acFkyVWdmU0JtY205dElGd2lMaTlMYVdKaGJtRlZjMlZ5VTJWeWRtbGpaVndpTzF4dWFXMXdiM0owSUhzZ1MybGlZVzVoUkdGemFHSnZZWEprVTJWeWRtbGpaU0I5SUdaeWIyMGdYQ0l1TDB0cFltRnVZVVJoYzJoaWIyRnlaRk5sY25acFkyVmNJanRjYm1sdGNHOXlkQ0I3SUV0cFltRnVZVUYxZEdoVFpYSjJhV05sSUgwZ1puSnZiU0JjSWk0dlMybGlZVzVoUVhWMGFGTmxjblpwWTJWY0lqdGNibWx0Y0c5eWRDQjdJSE5sZEV0cFltRnVZVkJ5YjJSMVkzUnBiMjVTWlhOdmJIWmxjaUI5SUdaeWIyMGdYQ0l1TDNKMWJuUnBiV1ZjSWp0Y2JseHVkSGx3WlNCTGFXSmhibUZTZFc1MGFXMWxVMlYwZFhCRGIyNW1hV2NnUFNCTGFXSmhibUZUWlhSMWNFTnZibVpwWnlBbUlIdGNiaUFnYVhOUWNtOWtkV04wYVc5dUtDazZJR0p2YjJ4bFlXNDdYRzU5TzF4dVhHNHZLaXBjYmlBcUlFQmpiR0Z6Y3lCTGFXSmhibUZUWlhKMmFXTmxYRzRnS2lCQWMzVnRiV0Z5ZVNCUGNtTm9aWE4wY21GMFpYTWdTMmxpWVc1aElITmxkSFZ3SUdGdVpDQndjbTkyYVhOcGIyNXBibWNnWm14dmQzTXVYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdRbTl2ZEhNZ2RHaGxJR3h2ZDJWeUxXeGxkbVZzSUV0cFltRnVZU0J6WlhKMmFXTmxjeXdnWTI5dmNtUnBibUYwWlhNZ1kzSmxZWFJwYjI0Z2IyWWdjM0JoWTJWekxDQmtZWFJoSUhacFpYZHpMQ0J5YjJ4bGN5d2dkWE5sY25Nc0lHUmhjMmhpYjJGeVpITXNJR0Z1WkNCbGVIQnZjMlZ6SUdobGJIQmxjaUJ0WlhSb2IyUnpJR1p2Y2lCbGJXSmxaQ0JWVWt4eklHRnVaQ0J2Y21kaGJtbDZZWFJwYjI0Z2MyVjBkWEF1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTGFXSmhibUZUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRMnhwWlc1MFFtRnpaV1JUWlhKMmFXTmxQRnh1SUNCQmVHbHZjMGx1YzNSaGJtTmxMRnh1SUNCTGFXSmhibUZUWlhSMWNFTnZibVpwWjF4dVBpQjdYRzRnSUhCeWIzUmxZM1JsWkNCemNHRmpaVk5sY25acFkyVWhPaUJMYVdKaGJtRlRjR0ZqWlZObGNuWnBZMlU3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR1JoZEdGV2FXVjNVMlZ5ZG1salpTRTZJRXRwWW1GdVlVUmhkR0ZXYVdWM1UyVnlkbWxqWlR0Y2JseHVJQ0J3Y205MFpXTjBaV1FnY205c1pWTmxjblpwWTJVaE9pQkxhV0poYm1GU2IyeGxVMlZ5ZG1salpUdGNibHh1SUNCd2NtOTBaV04wWldRZ2RYTmxjbE5sY25acFkyVWhPaUJMYVdKaGJtRlZjMlZ5VTJWeWRtbGpaVHRjYmx4dUlDQndjbTkwWldOMFpXUWdaR0Z6YUdKdllYSmtVMlZ5ZG1salpTRTZJRXRwWW1GdVlVUmhjMmhpYjJGeVpGTmxjblpwWTJVN1hHNWNiaUFnY0hKdmRHVmpkR1ZrSUdGMWRHaFRaWEoyYVdObElUb2dTMmxpWVc1aFFYVjBhRk5sY25acFkyVTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdjM1Z3WlhJb0tUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JwYzFCeWIyUjFZM1JwYjI0b0tUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ2NtVjBkWEp1SUNGYlhDSmtaWFpsYkc5d2JXVnVkRndpTENCY0lteHZZMkZzWENKZExtbHVZMngxWkdWektGeHVJQ0FnSUNBZ2NISnZZMlZ6Y3k1bGJuWmJYQ0pPVDBSRlgwVk9WbHdpWFNBL1B5QmNJbHdpWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR2x1YVhScFlXeHBlbVVvWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHg3SUdOdmJtWnBaem9nUzJsaVlXNWhVMlYwZFhCRGIyNW1hV2M3SUdOc2FXVnVkRG9nUVhocGIzTkpibk4wWVc1alpTQjlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbWx1YVhScFlXeHBlbVZjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbWx1YVhScFlXeHBlbVVwTzF4dUlDQWdJR052Ym5OMElHTnZibVpwWnlBOUlHTjBlRUZ5WjNOYk1GMGdZWE1nUzJsaVlXNWhVMlYwZFhCRGIyNW1hV2M3WEc0Z0lDQWdZMjl1YzNRZ2NuVnVkR2x0WlVOdmJtWnBaem9nUzJsaVlXNWhVblZ1ZEdsdFpWTmxkSFZ3UTI5dVptbG5JRDBnZTF4dUlDQWdJQ0FnTGk0dVkyOXVabWxuTEZ4dUlDQWdJQ0FnYVhOUWNtOWtkV04wYVc5dU9pQjBhR2x6TG1selVISnZaSFZqZEdsdmJpNWlhVzVrS0hSb2FYTXBMRnh1SUNBZ0lIMDdYRzRnSUNBZ2RHaHBjeTVmWTI5dVptbG5JRDBnY25WdWRHbHRaVU52Ym1acFp6dGNiaUFnSUNCelpYUkxhV0poYm1GUWNtOWtkV04wYVc5dVVtVnpiMngyWlhJb2RHaHBjeTVwYzFCeWIyUjFZM1JwYjI0dVltbHVaQ2gwYUdsektTazdYRzVjYmlBZ0lDQjBhR2x6TG5Od1lXTmxVMlZ5ZG1salpTQTlJRzVsZHlCTGFXSmhibUZUY0dGalpWTmxjblpwWTJVb0tUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuTndZV05sVTJWeWRtbGpaUzVwYm1sMGFXRnNhWHBsS0hKMWJuUnBiV1ZEYjI1bWFXY3NJQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJSFJvYVhNdVpHRjBZVlpwWlhkVFpYSjJhV05sSUQwZ2JtVjNJRXRwWW1GdVlVUmhkR0ZXYVdWM1UyVnlkbWxqWlNncE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHRjBZVlpwWlhkVFpYSjJhV05sTG1sdWFYUnBZV3hwZW1Vb2NuVnVkR2x0WlVOdmJtWnBaeXdnTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnZEdocGN5NXliMnhsVTJWeWRtbGpaU0E5SUc1bGR5QkxhV0poYm1GU2IyeGxVMlZ5ZG1salpTZ3BPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbTlzWlZObGNuWnBZMlV1YVc1cGRHbGhiR2w2WlNoeWRXNTBhVzFsUTI5dVptbG5MQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdJQ0IwYUdsekxuVnpaWEpUWlhKMmFXTmxJRDBnYm1WM0lFdHBZbUZ1WVZWelpYSlRaWEoyYVdObEtDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NTFjMlZ5VTJWeWRtbGpaUzVwYm1sMGFXRnNhWHBsS0hKMWJuUnBiV1ZEYjI1bWFXY3NJQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJSFJvYVhNdVpHRnphR0p2WVhKa1UyVnlkbWxqWlNBOUlHNWxkeUJMYVdKaGJtRkVZWE5vWW05aGNtUlRaWEoyYVdObEtDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NWtZWE5vWW05aGNtUlRaWEoyYVdObExtbHVhWFJwWVd4cGVtVW9jblZ1ZEdsdFpVTnZibVpwWnl3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ2RHaHBjeTVoZFhSb1UyVnlkbWxqWlNBOUlHNWxkeUJMYVdKaGJtRkJkWFJvVTJWeWRtbGpaU2dwTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11WVhWMGFGTmxjblpwWTJVdWFXNXBkR2xoYkdsNlpTaHlkVzUwYVcxbFEyOXVabWxuTENBdUxpNWpkSGhCY21kektUdGNibHh1SUNBZ0lHTnZibk4wSUdOc2FXVnVkQ0E5SUhSb2FYTXVZM0psWVhSbFNIUjBjRU5zYVdWdWRDaHlkVzUwYVcxbFEyOXVabWxuS1R0Y2JpQWdJQ0IwYUdsekxsOWpiR2xsYm5RZ1BTQmpiR2xsYm5RN1hHNGdJQ0FnY21WMGRYSnVJSHNnWTI5dVptbG5MQ0JqYkdsbGJuUWdmVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSE5sZEhWd1QzSm5ZVzVwZW1GMGFXOXVLRnh1SUNBZ0lHTnZibVpwWno4NklFdHBZbUZ1WVZObGRIVndRMjl1Wm1sbkxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOFMybGlZVzVoVTJWMGRYQkRiMjVtYVdjK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWMyVjBkWEJQY21kaGJtbDZZWFJwYjI1Y0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG5ObGRIVndUM0puWVc1cGVtRjBhVzl1S1R0Y2JpQWdJQ0JqYjI1emRDQmxabVpsWTNScGRtVkRiMjVtYVdjZ1BTQmpiMjVtYVdjZ1B6OGdkR2hwY3k1amIyNW1hV2M3WEc0Z0lDQWdZMjl1YzNRZ2NtVmhiRzFPWVcxbElEMGdaV1ptWldOMGFYWmxRMjl1Wm1sbkxuSmxZV3h0TzF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxuTndZV05sVTJWeWRtbGpaUzVqY21WaGRHVlRjR0ZqWlNoY2JpQWdJQ0FnSUNBZ2NtVmhiRzFPWVcxbExGeHVJQ0FnSUNBZ0lDQmxabVpsWTNScGRtVkRiMjVtYVdjdWMzQmhZMlVnUHo4Z2UzMHNYRzRnSUNBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lHbG1JQ2doS0dWeWNtOXlJR2x1YzNSaGJtTmxiMllnUTI5dVpteHBZM1JGY25KdmNpa3BJSFJvY205M0lHVnljbTl5TzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHUmhjMmhpYjJGeVpFbGtJRDBnWVhkaGFYUWdkR2hwY3k1a1lYTm9ZbTloY21SVFpYSjJhV05sTG1Oc2IyNWxSR1ZtWVhWc2RFUmhjMmhpYjJGeVpITW9YRzRnSUNBZ0lDQnlaV0ZzYlU1aGJXVXNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9aV1ptWldOMGFYWmxRMjl1Wm1sbkxtUmhjMmhpYjJGeVpITWdKaVlnWkdGemFHSnZZWEprU1dRcElIdGNiaUFnSUNBZ0lHVm1abVZqZEdsMlpVTnZibVpwWnk1a1lYTm9ZbTloY21SeklEMGdleUF1TGk1bFptWmxZM1JwZG1WRGIyNW1hV2N1WkdGemFHSnZZWEprY3l3Z1pHRnphR0p2WVhKa09pQmtZWE5vWW05aGNtUkpaQ0I5TzF4dUlDQWdJSDFjYmx4dUlDQWdJR0YzWVdsMElIUm9hWE11WkdGMFlWWnBaWGRUWlhKMmFXTmxMbU55WldGMFpVUmhkR0ZXYVdWM2N5aGNiaUFnSUNBZ0lISmxZV3h0VG1GdFpTeGNiaUFnSUNBZ0lHVm1abVZqZEdsMlpVTnZibVpwWnk1a1lYUmhWbWxsZDNNc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG1SaGRHRldhV1YzVTJWeWRtbGpaUzV6WlhSRVpXWmhkV3gwUkdGMFlWWnBaWGNvY21WaGJHMU9ZVzFsTENCMWJtUmxabWx1WldRc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbTlzWlZObGNuWnBZMlV1WTNKbFlYUmxVbTlzWlNoeVpXRnNiVTVoYldVc0lHVm1abVZqZEdsMlpVTnZibVpwWnk1eWIyeGxJRDgvSUh0OUxDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMblZ6WlhKVFpYSjJhV05sTG1OeVpXRjBaVlZ6WlhJb1hHNGdJQ0FnSUNCbFptWmxZM1JwZG1WRGIyNW1hV2N1Y21WaGJHMUJjR2xWYzJWeUxGeHVJQ0FnSUNBZ2NtVmhiRzFPWVcxbExGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1a1lYTm9ZbTloY21SVFpYSjJhV05sTG5abGNtbG1lVk53WVdObFUyVjBkWEFvY21WaGJHMU9ZVzFsTENBdUxpNWpkSGhCY21kektUdGNibHh1SUNBZ0lISmxkSFZ5YmlCbFptWmxZM1JwZG1WRGIyNW1hV2M3WEc0Z0lIMWNibHh1SUNCblpXNWxjbUYwWlVSaGMyaGliMkZ5WkVWdFltVmtWWEpzS0c5d2RHbHZibk02SUh0Y2JpQWdJQ0J6Y0dGalpUb2djM1J5YVc1bk8xeHVJQ0FnSUdSaGMyaGliMkZ5WkVsa09pQnpkSEpwYm1jN1hHNGdJQ0FnYzJodmQxUnBiV1ZHYVd4MFpYSS9PaUJpYjI5c1pXRnVPMXh1SUNBZ0lITm9iM2RSZFdWeWVVbHVjSFYwUHpvZ1ltOXZiR1ZoYmp0Y2JpQWdJQ0J6YUc5M1JtbHNkR1Z5UW1GeVB6b2dZbTl2YkdWaGJqdGNiaUFnSUNCb2FXUmxVR0Z1Wld4VWFYUnNaWE0vT2lCaWIyOXNaV0Z1TzF4dUlDQWdJSFJwYldWU1lXNW5aVDg2SUhzZ1puSnZiVG9nYzNSeWFXNW5PeUIwYnpvZ2MzUnlhVzVuSUgwN1hHNGdJSDBwT2lCemRISnBibWNnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1SaGMyaGliMkZ5WkZObGNuWnBZMlV1WjJWdVpYSmhkR1ZFWVhOb1ltOWhjbVJGYldKbFpGVnliQ2h2Y0hScGIyNXpLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR055WldGMFpWTndZV05sS0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmhlV3h2WVdRNklGQmhjblJwWVd3OFMybGlZVzVoVTNCaFkyVkRiMjVtYVdjK0lId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKamNtVmhkR1ZUY0dGalpWd2lMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVkzSmxZWFJsVTNCaFkyVXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjM0JoWTJWVFpYSjJhV05sTG1OeVpXRjBaVk53WVdObEtISmxZV3h0VG1GdFpTd2djR0Y1Ykc5aFpDd2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUIxY0dSaGRHVlRjR0ZqWlNoY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQndZWGxzYjJGa09pQlFZWEowYVdGc1BFdHBZbUZ1WVZOd1lXTmxRMjl1Wm1sblBpeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpZFhCa1lYUmxVM0JoWTJWY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG5Wd1pHRjBaVk53WVdObEtUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuTndZV05sVTJWeWRtbGpaUzUxY0dSaGRHVlRjR0ZqWlNoeVpXRnNiVTVoYldVc0lIQmhlV3h2WVdRc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdaR1ZzWlhSbFUzQmhZMlVvWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1SbGJHVjBaVk53WVdObFhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1a1pXeGxkR1ZUY0dGalpTazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXpjR0ZqWlZObGNuWnBZMlV1WkdWc1pYUmxVM0JoWTJVb2NtVmhiRzFPWVcxbExDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR055WldGMFpVUmhkR0ZXYVdWM0tGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJSE53WldNNklFdHBZbUZ1WVVSaGRHRldhV1YzUTI5dVptbG5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKamNtVmhkR1ZFWVhSaFZtbGxkMXdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVZM0psWVhSbFJHRjBZVlpwWlhjcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHRjBZVlpwWlhkVFpYSjJhV05sTG1OeVpXRjBaVVJoZEdGV2FXVjNLSEpsWVd4dFRtRnRaU3dnYzNCbFl5d2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUIxY0dSaGRHVkVZWFJoVm1sbGR5aGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0J6Y0dWak9pQkxhV0poYm1GRVlYUmhWbWxsZDBOdmJtWnBaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWRYQmtZWFJsUkdGMFlWWnBaWGRjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMblZ3WkdGMFpVUmhkR0ZXYVdWM0tUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtUmhkR0ZXYVdWM1UyVnlkbWxqWlM1MWNHUmhkR1ZFWVhSaFZtbGxkeWh5WldGc2JVNWhiV1VzSUhOd1pXTXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWTNKbFlYUmxSR0YwWVZacFpYZHpLRnh1SUNBZ0lISmxZV3h0VG1GdFpUb2djM1J5YVc1bkxGeHVJQ0FnSUdSaGRHRldhV1YzY3pvZ1MybGlZVzVoUkdGMFlWWnBaWGREYjI1bWFXZGJYU0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZM0psWVhSbFJHRjBZVlpwWlhkelhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amNtVmhkR1ZFWVhSaFZtbGxkM01wTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11WkdGMFlWWnBaWGRUWlhKMmFXTmxMbU55WldGMFpVUmhkR0ZXYVdWM2N5aGNiaUFnSUNBZ0lISmxZV3h0VG1GdFpTeGNiaUFnSUNBZ0lHUmhkR0ZXYVdWM2N5QS9QeUJiWFN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYzJWMFJHVm1ZWFZzZEVSaGRHRldhV1YzS0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lHUmhkR0ZXYVdWM1NXUTZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWMyVjBSR1ZtWVhWc2RFUmhkR0ZXYVdWM1hDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1elpYUkVaV1poZFd4MFJHRjBZVlpwWlhjcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHRjBZVlpwWlhkVFpYSjJhV05sTG5ObGRFUmxabUYxYkhSRVlYUmhWbWxsZHloY2JpQWdJQ0FnSUhKbFlXeHRUbUZ0WlN4Y2JpQWdJQ0FnSUdSaGRHRldhV1YzU1dRc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdOc2IyNWxSR1ZtWVhWc2RFUmhjMmhpYjJGeVpITW9YRzRnSUNBZ2NtVmhiRzFPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4emRISnBibWNnZkNCMWJtUmxabWx1WldRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVkyeHZibVZFWldaaGRXeDBSR0Z6YUdKdllYSmtjMXdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVZMnh2Ym1WRVpXWmhkV3gwUkdGemFHSnZZWEprY3lrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVpHRnphR0p2WVhKa1UyVnlkbWxqWlM1amJHOXVaVVJsWm1GMWJIUkVZWE5vWW05aGNtUnpLSEpsWVd4dFRtRnRaU3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCamNtVmhkR1ZTYjJ4bEtGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJSEJoZVd4dllXUTZJRkJoY25ScFlXdzhTMmxpWVc1aFVtOXNaVU52Ym1acFp6NGdmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltTnlaV0YwWlZKdmJHVmNJaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtTnlaV0YwWlZKdmJHVXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbTlzWlZObGNuWnBZMlV1WTNKbFlYUmxVbTlzWlNoeVpXRnNiVTVoYldVc0lIQmhlV3h2WVdRc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdkWEJrWVhSbFVtOXNaU2hjYmlBZ0lDQnlaV0ZzYlU1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNCd1lYbHNiMkZrT2lCUVlYSjBhV0ZzUEV0cFltRnVZVkp2YkdWRGIyNW1hV2MrTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSjFjR1JoZEdWU2IyeGxYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NTFjR1JoZEdWU2IyeGxLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbkp2YkdWVFpYSjJhV05sTG5Wd1pHRjBaVkp2YkdVb2NtVmhiRzFPWVcxbExDQndZWGxzYjJGa0xDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR055WldGMFpWVnpaWElvWEc0Z0lDQWdkWE5sY2pvZ1MybGlZVzVoVlhObGNpeGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0J5YjJ4bFRtRnRaWE02SUhOMGNtbHVaMXRkSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0pqY21WaGRHVlZjMlZ5WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVqY21WaGRHVlZjMlZ5S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5WelpYSlRaWEoyYVdObExtTnlaV0YwWlZWelpYSW9YRzRnSUNBZ0lDQjFjMlZ5TEZ4dUlDQWdJQ0FnY21WaGJHMU9ZVzFsTEZ4dUlDQWdJQ0FnY205c1pVNWhiV1Z6SUQ4L0lGdGRMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QjFjR1JoZEdWVmMyVnlLRnh1SUNBZ0lIVnpaWEk2SUV0cFltRnVZVlZ6WlhJc1hHNGdJQ0FnY21WaGJHMU9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdjbTlzWlU1aGJXVnpPaUJ6ZEhKcGJtZGJYU0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lkWEJrWVhSbFZYTmxjbHdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVkWEJrWVhSbFZYTmxjaWs3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTUxYzJWeVUyVnlkbWxqWlM1MWNHUmhkR1ZWYzJWeUtGeHVJQ0FnSUNBZ2RYTmxjaXhjYmlBZ0lDQWdJSEpsWVd4dFRtRnRaU3hjYmlBZ0lDQWdJSEp2YkdWT1lXMWxjeUEvUHlCYlhTeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2RtVnlhV1o1VTNCaFkyVlRaWFIxY0NoY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWRtVnlhV1o1VTNCaFkyVlRaWFIxY0Z3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11ZG1WeWFXWjVVM0JoWTJWVFpYUjFjQ2s3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVrWVhOb1ltOWhjbVJUWlhKMmFXTmxMblpsY21sbWVWTndZV05sVTJWMGRYQW9jbVZoYkcxT1lXMWxMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1kzSmxZWFJsU0hSMGNFTnNhV1Z1ZENoamIyNW1hV2M2SUV0cFltRnVZVk5sZEhWd1EyOXVabWxuS1RvZ1FYaHBiM05KYm5OMFlXNWpaU0I3WEc0Z0lDQWdjbVYwZFhKdUlFRjRhVzl6TG1OeVpXRjBaU2g3WEc0Z0lDQWdJQ0JpWVhObFZWSk1PaUJnSkh0amIyNW1hV2N1Y0hKdmRHOWpiMng5T2k4dkpIdGpiMjVtYVdjdWFHOXpkSDFnTEZ4dUlDQWdJQ0FnZG1Gc2FXUmhkR1ZUZEdGMGRYTTZJQ2dwSUQwK0lIUnlkV1VzWEc0Z0lDQWdJQ0JvZEhSd2MwRm5aVzUwT2lCdVpYY2dhSFIwY0hNdVFXZGxiblFvZTF4dUlDQWdJQ0FnSUNCeVpXcGxZM1JWYm1GMWRHaHZjbWw2WldRNklIUm9hWE11YVhOUWNtOWtkV04wYVc5dUtDa3NYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
@@ -55,6 +55,7 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
55
55
  const core_1 = require("@decaf-ts/core");
56
56
  const axios_1 = __importDefault(require("axios"));
57
57
  const https = __importStar(require("node:https"));
58
+ const runtime_js_1 = require("./runtime.cjs");
58
59
  const KibanaAuthService_js_1 = require("./KibanaAuthService.cjs");
59
60
  class KibanaSpaceService extends core_1.ClientBasedService {
60
61
  async initialize(...args) {
@@ -103,7 +104,7 @@ class KibanaSpaceService extends core_1.ClientBasedService {
103
104
  baseURL: `${config.protocol}://${config.host}`,
104
105
  validateStatus: () => true,
105
106
  httpsAgent: new https.Agent({
106
- rejectUnauthorized: (this.config.isProduction()),
107
+ rejectUnauthorized: ((0, runtime_js_1.resolveKibanaIsProduction)(this.config)),
107
108
  }),
108
109
  });
109
110
  }
@@ -161,7 +162,7 @@ class KibanaSpaceService extends core_1.ClientBasedService {
161
162
  : undefined,
162
163
  validateStatus: () => true,
163
164
  httpsAgent: new https.Agent({
164
- rejectUnauthorized: (this.config.isProduction()),
165
+ rejectUnauthorized: ((0, runtime_js_1.resolveKibanaIsProduction)(this.config)),
165
166
  }),
166
167
  ...extra,
167
168
  });
@@ -172,5 +173,5 @@ __decorate([
172
173
  (0, core_1.service)(),
173
174
  __metadata("design:type", KibanaAuthService_js_1.KibanaAuthService)
174
175
  ], KibanaSpaceService.prototype, "authService", void 0);
175
- //# sourceMappingURL=KibanaSpaceService.js.map
176
- //# sourceMappingURL=KibanaSpaceService.cjs.map
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hU3BhY2VTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2tpYmFuYS9zZXJ2aWNlcy9LaWJhbmFTcGFjZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsYUFBYSxFQUNiLGFBQWEsR0FDZCxNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU03RCxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxxQkFBa0I7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLCtCQUE0QjtBQUV4RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsa0JBR3ZDO0lBSUMsS0FBSyxDQUFDLFVBQVUsQ0FDZCxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FDNUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQXNCLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQ2YsU0FBaUIsRUFDakIs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LFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUM1RCxDQUFDLENBQUMsU0FBUztZQUNiLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzFCLFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLGtCQUFrQixFQUFFLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE1BQWEsQ0FBQyxDQUFDO2FBQ3BFLENBQUM7WUFDRixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2TFc7SUFEVCxPQUFPLEVBQUU7OEJBQ2MsaUJBQWlCO3VEQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFkUmVxdWVzdEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbnRleHR1YWxBcmdzLCBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSwgc2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUge1xuICBLaWJhbmFTZXR1cENvbmZpZyxcbiAgS2liYW5hU3BhY2VDb25maWcsXG4gIEtpYmFuYVVzZXIsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IEF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2liYW5hSXNQcm9kdWN0aW9uIH0gZnJvbSBcIi4vcnVudGltZVwiO1xuaW1wb3J0IHsgS2liYW5hQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFBdXRoU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgS2liYW5hU3BhY2VTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlPFxuICBBeGlvc0luc3RhbmNlLFxuICBLaWJhbmFTZXR1cENvbmZpZ1xuPiB7XG4gIEBzZXJ2aWNlKClcbiAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlITogS2liYW5hQXV0aFNlcnZpY2U7XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBLaWJhbmFTZXR1cENvbmZpZzsgY2xpZW50OiBBeGlvc0luc3RhbmNlIH0+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgY29uc3QgY29uZmlnID0gY3R4QXJnc1swXSBhcyBLaWJhbmFTZXR1cENvbmZpZztcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gIH1cblxuICBhc3luYyBjcmVhdGVTcGFjZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtpYmFuYVNwYWNlQ29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlU3BhY2VcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZVNwYWNlKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgXCIvYXBpL3NwYWNlcy9zcGFjZVwiLFxuICAgICAgdGhpcy5ub3JtYWxpemVTcGFjZUNvbmZpZyhyZWFsbU5hbWUsIHBheWxvYWQpLFxuICAgICAgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLFxuICAgICAge1xuICAgICAgICBoZWFkZXJzOiB7IFwia2JuLXhzcmZcIjogXCJ0cnVlXCIsIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICB9LFxuICAgICAgMjAwLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA5KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFNwYWNlICR7cmVhbG1OYW1lfSBhbHJlYWR5IGV4aXN0c2A7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA+PSAzMDApIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVW5hYmxlIHRvIGNyZWF0ZSBzcGFjZSAke3JlYWxtTmFtZX06ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGVTcGFjZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtpYmFuYVNwYWNlQ29uZmlnPixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlU3BhY2VcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnVwZGF0ZVNwYWNlKTtcbiAgICBjb25zdCBub3JtYWxpemVkID0gdGhpcy5ub3JtYWxpemVTcGFjZUNvbmZpZyhyZWFsbU5hbWUsIHBheWxvYWQpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQVVRcIixcbiAgICAgIGAvYXBpL3NwYWNlcy9zcGFjZS8ke2VuY29kZVVSSUNvbXBvbmVudChwYXlsb2FkLmlkID8/IHJlYWxtTmFtZS50b0xvd2VyQ2FzZSgpKX1gLFxuICAgICAgbm9ybWFsaXplZCxcbiAgICAgIHRoaXMuY29uZmlnLmFkbWluQXBpVXNlcixcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyczogeyBcImtibi14c3JmXCI6IFwidHJ1ZVwiLCBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgfSxcbiAgICAgIDIwMCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPj0gMzAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFVuYWJsZSB0byB1cGRhdGUgc3BhY2UgJHtyZWFsbU5hbWV9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGVsZXRlU3BhY2UoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVNwYWNlXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5kZWxldGVTcGFjZSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkRFTEVURVwiLFxuICAgICAgYC9hcGkvc3BhY2VzL3NwYWNlLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlYWxtTmFtZS50b0xvd2VyQ2FzZSgpKX1gLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLFxuICAgICAgeyBoZWFkZXJzOiB7IFwia2JuLXhzcmZcIjogXCJ0cnVlXCIgfSB9LFxuICAgICAgMjAwLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA+PSAzMDAgJiYgcmVzcG9uc2Uuc3RhdHVzICE9PSAyMDQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVW5hYmxlIHRvIGRlbGV0ZSBzcGFjZSAke3JlYWxtTmFtZX06ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnOiBLaWJhbmFTZXR1cENvbmZpZyk6IEF4aW9zSW5zdGFuY2Uge1xuICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbih0aGlzLmNvbmZpZyBhcyBhbnkpKSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlRXJyb3IoZXJyb3I6IEVycm9yKTogRXJyb3Ige1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVTcGFjZUNvbmZpZyhcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtpYmFuYVNwYWNlQ29uZmlnPiA9IHt9XG4gICk6IEtpYmFuYVNwYWNlQ29uZmlnIHtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5jb25maWcuc3BhY2UgPz8ge307XG4gICAgY29uc3QgaWQgPSBwYXlsb2FkLmlkID8/IGJhc2UuaWQgPz8gcmVhbG1OYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbmFtZSA9IHBheWxvYWQubmFtZSA/PyBiYXNlLm5hbWUgPz8gcmVhbG1OYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkLFxuICAgICAgbmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBwYXlsb2FkLmRlc2NyaXB0aW9uID8/XG4gICAgICAgIGJhc2UuZGVzY3JpcHRpb24gPz9cbiAgICAgICAgYFRlbmFudCBzcGFjZSBmb3IgJHtyZWFsbU5hbWUudG9VcHBlckNhc2UoKX0gZGFzaGJvYXJkcyBhbmQgbG9nc2AsXG4gICAgICBpbml0aWFsczpcbiAgICAgICAgcGF5bG9hZC5pbml0aWFscyA/P1xuICAgICAgICBiYXNlLmluaXRpYWxzID8/XG4gICAgICAgIHJlYWxtTmFtZS5zbGljZSgwLCAyKS50b1VwcGVyQ2FzZSgpLFxuICAgICAgY29sb3I6IHBheWxvYWQuY29sb3IgPz8gYmFzZS5jb2xvcixcbiAgICAgIGRpc2FibGVkRmVhdHVyZXM6IHBheWxvYWQuZGlzYWJsZWRGZWF0dXJlcyA/PyBiYXNlLmRpc2FibGVkRmVhdHVyZXMgPz8gW10sXG4gICAgICBzb2x1dGlvbjogcGF5bG9hZC5zb2x1dGlvbiA/PyBiYXNlLnNvbHV0aW9uLFxuICAgICAgaW1hZ2VVcmw6IHBheWxvYWQuaW1hZ2VVcmwgPz8gYmFzZS5pbWFnZVVybCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXF1ZXN0KFxuICAgIG1ldGhvZDogXCJHRVRcIiB8IFwiUE9TVFwiIHwgXCJQVVRcIiB8IFwiREVMRVRFXCIsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogdW5rbm93bixcbiAgICBhcGlVc2VyOiBLaWJhbmFVc2VyIHwgdW5kZWZpbmVkLFxuICAgIGV4dHJhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHN1Y2Nlc3NDb2RlOiBudW1iZXIsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVxdWVzdCk7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgbWV0aG9kLFxuICAgICAgdXJsLFxuICAgICAgZGF0YTpcbiAgICAgICAgcGF5bG9hZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICA6IHR5cGVvZiBwYXlsb2FkID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICBhdXRoOiBhcGlVc2VyXG4gICAgICAgID8geyB1c2VybmFtZTogYXBpVXNlci51c2VybmFtZSwgcGFzc3dvcmQ6IGFwaVVzZXIucGFzc3dvcmQgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbih0aGlzLmNvbmZpZyBhcyBhbnkpKSxcbiAgICAgIH0pLFxuICAgICAgLi4uZXh0cmEsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hU3BhY2VTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiS2liYW5hU3BhY2VTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMs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LFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUM1RCxDQUFDLENBQUMsU0FBUztZQUNmLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzFCLFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ3hCLGtCQUFrQixFQUFFLENBQUMsSUFBQSxzQ0FBeUIsRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDL0QsQ0FBQztZQUNGLEdBQUcsS0FBSztTQUNYLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQTlHRCxnREE4R0M7QUFDRCxVQUFVLENBQUM7SUFDUCxJQUFBLGNBQU8sR0FBRTtJQUNULFVBQVUsQ0FBQyxhQUFhLEVBQUUsd0NBQWlCLENBQUM7Q0FDL0MsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDeEQsc3BnQkFBc3BnQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG5pbXBvcnQgeyBCYWRSZXF1ZXN0RXJyb3IsIENvbmZsaWN0RXJyb3IsIEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UsIHNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCBBeGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2liYW5hSXNQcm9kdWN0aW9uIH0gZnJvbSBcIi4vcnVudGltZS5qc1wiO1xuaW1wb3J0IHsgS2liYW5hQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFBdXRoU2VydmljZS5qc1wiO1xuZXhwb3J0IGNsYXNzIEtpYmFuYVNwYWNlU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgYXN5bmMgaW5pdGlhbGl6ZSguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKSkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF07XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlU3BhY2UocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlU3BhY2VcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZVNwYWNlKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJQT1NUXCIsIFwiL2FwaS9zcGFjZXMvc3BhY2VcIiwgdGhpcy5ub3JtYWxpemVTcGFjZUNvbmZpZyhyZWFsbU5hbWUsIHBheWxvYWQpLCB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJrYm4teHNyZlwiOiBcInRydWVcIiwgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSwgMjAwLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA5KSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYFNwYWNlICR7cmVhbG1OYW1lfSBhbHJlYWR5IGV4aXN0c2A7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID49IDMwMCkge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBVbmFibGUgdG8gY3JlYXRlIHNwYWNlICR7cmVhbG1OYW1lfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZVNwYWNlXCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVTcGFjZSk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0aGlzLm5vcm1hbGl6ZVNwYWNlQ29uZmlnKHJlYWxtTmFtZSwgcGF5bG9hZCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUFVUXCIsIGAvYXBpL3NwYWNlcy9zcGFjZS8ke2VuY29kZVVSSUNvbXBvbmVudChwYXlsb2FkLmlkID8/IHJlYWxtTmFtZS50b0xvd2VyQ2FzZSgpKX1gLCBub3JtYWxpemVkLCB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJrYm4teHNyZlwiOiBcInRydWVcIiwgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSwgMjAwLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVW5hYmxlIHRvIHVwZGF0ZSBzcGFjZSAke3JlYWxtTmFtZX06ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBkZWxldGVTcGFjZShyZWFsbU5hbWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVTcGFjZVwiLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlU3BhY2UpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkRFTEVURVwiLCBgL2FwaS9zcGFjZXMvc3BhY2UvJHtlbmNvZGVVUklDb21wb25lbnQocmVhbG1OYW1lLnRvTG93ZXJDYXNlKCkpfWAsIHVuZGVmaW5lZCwgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLCB7IGhlYWRlcnM6IHsgXCJrYm4teHNyZlwiOiBcInRydWVcIiB9IH0sIDIwMCwgLi4uY3R4QXJncyk7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPj0gMzAwICYmIHJlc3BvbnNlLnN0YXR1cyAhPT0gMjA0KSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYFVuYWJsZSB0byBkZWxldGUgc3BhY2UgJHtyZWFsbU5hbWV9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY3JlYXRlSHR0cENsaWVudChjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICAgICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLaWJhbmFJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcGFyc2VFcnJvcihlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IubWVzc2FnZSB8fCBlcnJvci5uYW1lIHx8IFwiVW5rbm93biBlcnJvclwiO1xuICAgICAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJub3QgZm91bmRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImFscmVhZHkgZXhpc3RzXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImNvbmZsaWN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwOVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJpbnZhbGlkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImJhZCByZXF1ZXN0XCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcInVuYXV0aG9yaXplZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDFcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiZm9yYmlkZGVuXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwM1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgbm9ybWFsaXplU3BhY2VDb25maWcocmVhbG1OYW1lLCBwYXlsb2FkID0ge30pIHtcbiAgICAgICAgY29uc3QgYmFzZSA9IHRoaXMuY29uZmlnLnNwYWNlID8/IHt9O1xuICAgICAgICBjb25zdCBpZCA9IHBheWxvYWQuaWQgPz8gYmFzZS5pZCA/PyByZWFsbU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgbmFtZSA9IHBheWxvYWQubmFtZSA/PyBiYXNlLm5hbWUgPz8gcmVhbG1OYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogcGF5bG9hZC5kZXNjcmlwdGlvbiA/P1xuICAgICAgICAgICAgICAgIGJhc2UuZGVzY3JpcHRpb24gPz9cbiAgICAgICAgICAgICAgICBgVGVuYW50IHNwYWNlIGZvciAke3JlYWxtTmFtZS50b1VwcGVyQ2FzZSgpfSBkYXNoYm9hcmRzIGFuZCBsb2dzYCxcbiAgICAgICAgICAgIGluaXRpYWxzOiBwYXlsb2FkLmluaXRpYWxzID8/XG4gICAgICAgICAgICAgICAgYmFzZS5pbml0aWFscyA/P1xuICAgICAgICAgICAgICAgIHJlYWxtTmFtZS5zbGljZSgwLCAyKS50b1VwcGVyQ2FzZSgpLFxuICAgICAgICAgICAgY29sb3I6IHBheWxvYWQuY29sb3IgPz8gYmFzZS5jb2xvcixcbiAgICAgICAgICAgIGRpc2FibGVkRmVhdHVyZXM6IHBheWxvYWQuZGlzYWJsZWRGZWF0dXJlcyA/PyBiYXNlLmRpc2FibGVkRmVhdHVyZXMgPz8gW10sXG4gICAgICAgICAgICBzb2x1dGlvbjogcGF5bG9hZC5zb2x1dGlvbiA/PyBiYXNlLnNvbHV0aW9uLFxuICAgICAgICAgICAgaW1hZ2VVcmw6IHBheWxvYWQuaW1hZ2VVcmwgPz8gYmFzZS5pbWFnZVVybCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYXN5bmMgcmVxdWVzdChtZXRob2QsIHVybCwgcGF5bG9hZCwgYXBpVXNlciwgZXh0cmEsIHN1Y2Nlc3NDb2RlLCAuLi5hcmdzKSB7XG4gICAgICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVxdWVzdCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGRhdGE6IHBheWxvYWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgOiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgICAgIGF1dGg6IGFwaVVzZXJcbiAgICAgICAgICAgICAgICA/IHsgdXNlcm5hbWU6IGFwaVVzZXIudXNlcm5hbWUsIHBhc3N3b3JkOiBhcGlVc2VyLnBhc3N3b3JkIH1cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2liYW5hSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC4uLmV4dHJhLFxuICAgICAgICB9KTtcbiAgICB9XG59XG5fX2RlY29yYXRlKFtcbiAgICBzZXJ2aWNlKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEtpYmFuYUF1dGhTZXJ2aWNlKVxuXSwgS2liYW5hU3BhY2VTZXJ2aWNlLnByb3RvdHlwZSwgXCJhdXRoU2VydmljZVwiLCB2b2lkIDApO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUzJsaVlXNWhVM0JoWTJWVFpYSjJhV05sTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwydHBZbUZ1WVM5elpYSjJhV05sY3k5TGFXSmhibUZUY0dGalpWTmxjblpwWTJVdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN08wRkJRVUVzVDBGQlR5eEZRVU5NTEdWQlFXVXNSVUZEWml4aFFVRmhMRVZCUTJJc1lVRkJZU3hGUVVOaUxHRkJRV0VzUjBGRFpDeE5RVUZOTEhsQ1FVRjVRaXhEUVVGRE8wRkJSV3BETEU5QlFVOHNSVUZCUlN4clFrRkJhMElzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVTAzUkN4UFFVRlBMRXRCUVhkQ0xFMUJRVTBzVDBGQlR5eERRVUZETzBGQlF6ZERMRTlCUVU4c1MwRkJTeXhMUVVGTExFMUJRVTBzV1VGQldTeERRVUZETzBGQlEzQkRMRTlCUVU4c1JVRkJSU3g1UWtGQmVVSXNSVUZCUlN4eFFrRkJhMEk3UVVGRGRFUXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTEN0Q1FVRTBRanRCUVVWNFJDeE5RVUZOTEU5QlFVOHNhMEpCUVcxQ0xGTkJRVkVzYTBKQlIzWkRPMGxCU1VNc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGRFpDeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRmxCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE5VTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlEzWkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFYTkNMRU5CUVVNN1VVRkRMME1zU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkRkRUlzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpkRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRPMUZCUTNSQ0xFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkROVUlzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUTJZc1UwRkJhVUlzUlVGRGFrSXNUMEZCSzBNc1JVRkRMME1zUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4aFFVRmhMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRemRETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dFJRVU40UWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlEycERMRTFCUVUwc1JVRkRUaXh0UWtGQmJVSXNSVUZEYmtJc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRk5CUVZNc1JVRkJSU3hQUVVGUExFTkJRVU1zUlVGRE4wTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRM2hDTzFsQlEwVXNUMEZCVHl4RlFVRkZMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFMUJRVTBzUlVGQlJTeGpRVUZqTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVU3VTBGRGNFVXNSVUZEUkN4SFFVRkhMRVZCUTBnc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5HTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1MwRkJTeXhIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU0xUWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhUUVVGVExGTkJRVk1zYVVKQlFXbENMRU5CUVVNN1dVRkRjRVFzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOdVF5eERRVUZETzFGQlEwUXNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzFsQlF6TkNMRTFCUVUwc1QwRkJUeXhIUVVGSExEQkNRVUV3UWl4VFFVRlRMRXRCUVVzc1VVRkJVU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFsQlF6bEZMRTFCUVUwc1NVRkJTU3hsUVVGbExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY2tNc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVTm1MRk5CUVdsQ0xFVkJRMnBDTEU5QlFXMURMRVZCUTI1RExFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNM1F5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRGVFSXNUVUZCVFN4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRk5CUVZNc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU5xUlN4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlEycERMRXRCUVVzc1JVRkRUQ3h4UWtGQmNVSXNhMEpCUVd0Q0xFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNTVUZCU1N4VFFVRlRMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVU5vUml4VlFVRlZMRVZCUTFZc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVWQlEzaENPMWxCUTBVc1QwRkJUeXhGUVVGRkxFVkJRVVVzVlVGQlZTeEZRVUZGTEUxQlFVMHNSVUZCUlN4alFVRmpMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVTdVMEZEY0VVc1JVRkRSQ3hIUVVGSExFVkJRMGdzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTkdMRWxCUVVrc1VVRkJVU3hEUVVGRExFMUJRVTBzU1VGQlNTeEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTXpRaXhOUVVGTkxFOUJRVThzUjBGQlJ5d3dRa0ZCTUVJc1UwRkJVeXhMUVVGTExGRkJRVkVzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTTVSU3hOUVVGTkxFbEJRVWtzWlVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNKRExFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkRaaXhUUVVGcFFpeEZRVU5xUWl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxHRkJRV0VzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZETjBNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTNoQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRha01zVVVGQlVTeEZRVU5TTEhGQ1FVRnhRaXhyUWtGQmEwSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVU5zUlN4VFFVRlRMRVZCUTFRc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVWQlEzaENMRVZCUVVVc1QwRkJUeXhGUVVGRkxFVkJRVVVzVlVGQlZTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZMRVZCUTI1RExFZEJRVWNzUlVGRFNDeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlEzUkVMRTFCUVUwc1QwRkJUeXhIUVVGSExEQkNRVUV3UWl4VFFVRlRMRXRCUVVzc1VVRkJVU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFsQlF6bEZMRTFCUVUwc1NVRkJTU3hsUVVGbExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY2tNc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlR5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGNVFqdFJRVU5vUkN4UFFVRlBMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03V1VGRGJFSXNUMEZCVHl4RlFVRkZMRWRCUVVjc1RVRkJUU3hEUVVGRExGRkJRVkVzVFVGQlRTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZPMWxCUXpsRExHTkJRV01zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMWxCUXpGQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRekZDTEd0Q1FVRnJRaXhGUVVGRkxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRV0VzUTBGQlF5eERRVUZETzJGQlEzQkZMRU5CUVVNN1UwRkRTQ3hEUVVGRExFTkJRVU03U1VGRFRDeERRVUZETzBsQlJWTXNWVUZCVlN4RFFVRkRMRXRCUVZrN1VVRkRMMElzVFVGQlRTeFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeEpRVUZKTEdWQlFXVXNRMEZCUXp0UlFVTXZSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1VVRkZNME1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOMlJTeFBRVUZQTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JETEVOQlFVTTdVVUZGUkN4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTnFTQ3hQUVVGUExFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRExFTkJRVU03VVVGRlJDeEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkROMGNzVDBGQlR5eEpRVUZKTEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOMFF5eERRVUZETzFGQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU14UlN4UFFVRlBMRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzQkRMRU5CUVVNN1VVRkZSQ3hKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTNaRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGNFTXNRMEZCUXp0SlFVVlBMRzlDUVVGdlFpeERRVU14UWl4VFFVRnBRaXhGUVVOcVFpeFZRVUZ6UXl4RlFVRkZPMUZCUlhoRExFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVU55UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUlVGQlJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4RlFVRkZMRWxCUVVrc1UwRkJVeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzFGQlF6VkVMRTFCUVUwc1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eEpRVUZKTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1NVRkJTU3hUUVVGVExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdVVUZEYkVVc1QwRkJUenRaUVVOTUxFVkJRVVU3V1VGRFJpeEpRVUZKTzFsQlEwb3NWMEZCVnl4RlFVTlVMRTlCUVU4c1EwRkJReXhYUVVGWE8yZENRVU51UWl4SlFVRkpMRU5CUVVNc1YwRkJWenRuUWtGRGFFSXNiMEpCUVc5Q0xGTkJRVk1zUTBGQlF5eFhRVUZYTEVWQlFVVXNjMEpCUVhOQ08xbEJRMjVGTEZGQlFWRXNSVUZEVGl4UFFVRlBMRU5CUVVNc1VVRkJVVHRuUWtGRGFFSXNTVUZCU1N4RFFVRkRMRkZCUVZFN1owSkJRMklzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zVjBGQlZ5eEZRVUZGTzFsQlEzSkRMRXRCUVVzc1JVRkJSU3hQUVVGUExFTkJRVU1zUzBGQlN5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxPMWxCUTJ4RExHZENRVUZuUWl4RlFVRkZMRTlCUVU4c1EwRkJReXhuUWtGQlowSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVsQlFVa3NSVUZCUlR0WlFVTjZSU3hSUVVGUkxFVkJRVVVzVDBGQlR5eERRVUZETEZGQlFWRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1VVRkJVVHRaUVVNelF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRkZCUVZFc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVUdFRRVU0xUXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWUExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlEyNUNMRTFCUVhsRExFVkJRM3BETEVkQlFWY3NSVUZEV0N4UFFVRm5RaXhGUVVOb1FpeFBRVUVyUWl4RlFVTXZRaXhMUVVFd1FpeEZRVU14UWl4WFFVRnRRaXhGUVVOdVFpeEhRVUZITEVsQlFYbENPMUZCUlRWQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU5vUXl4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETzFsQlEzcENMRTFCUVUwN1dVRkRUaXhIUVVGSE8xbEJRMGdzU1VGQlNTeEZRVU5HTEU5QlFVOHNTMEZCU3l4VFFVRlRPMmRDUVVOdVFpeERRVUZETEVOQlFVTXNVMEZCVXp0blFrRkRXQ3hEUVVGRExFTkJRVU1zVDBGQlR5eFBRVUZQTEV0QlFVc3NVVUZCVVR0dlFrRkRNMElzUTBGQlF5eERRVUZETEU5QlFVODdiMEpCUTFRc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRPMWxCUXk5Q0xFbEJRVWtzUlVGQlJTeFBRVUZQTzJkQ1FVTllMRU5CUVVNc1EwRkJReXhGUVVGRkxGRkJRVkVzUlVGQlJTeFBRVUZQTEVOQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zVVVGQlVTeEZRVUZGTzJkQ1FVTTFSQ3hEUVVGRExFTkJRVU1zVTBGQlV6dFpRVU5pTEdOQlFXTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xbEJRekZDTEZWQlFWVXNSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU03WjBKQlF6RkNMR3RDUVVGclFpeEZRVUZGTEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFXRXNRMEZCUXl4RFFVRkRPMkZCUTNCRkxFTkJRVU03V1VGRFJpeEhRVUZITEV0QlFVczdVMEZEVkN4RFFVRkRMRU5CUVVNN1NVRkRUQ3hEUVVGRE8wTkJRMFk3UVVGMlRGYzdTVUZFVkN4UFFVRlBMRVZCUVVVN09FSkJRMk1zYVVKQlFXbENPM1ZFUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdGNiaUFnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlMRnh1SUNCRGIyNW1iR2xqZEVWeWNtOXlMRnh1SUNCSmJuUmxjbTVoYkVWeWNtOXlMRnh1SUNCT2IzUkdiM1Z1WkVWeWNtOXlMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUVOdmJuUmxlSFIxWVd4QmNtZHpMQ0JOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWNnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3SUVOc2FXVnVkRUpoYzJWa1UyVnlkbWxqWlN3Z2MyVnlkbWxqWlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhSNWNHVWdlMXh1SUNCTGFXSmhibUZUWlhSMWNFTnZibVpwWnl4Y2JpQWdTMmxpWVc1aFUzQmhZMlZEYjI1bWFXY3NYRzRnSUV0cFltRnVZVlZ6WlhJc1hHNTlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJRUY0YVc5ekxDQjdJRUY0YVc5elNXNXpkR0Z1WTJVZ2ZTQm1jbTl0SUZ3aVlYaHBiM05jSWp0Y2JtbHRjRzl5ZENBcUlHRnpJR2gwZEhCeklHWnliMjBnWENKdWIyUmxPbWgwZEhCelhDSTdYRzVwYlhCdmNuUWdleUJ5WlhOdmJIWmxTMmxpWVc1aFNYTlFjbTlrZFdOMGFXOXVJSDBnWm5KdmJTQmNJaTR2Y25WdWRHbHRaVndpTzF4dWFXMXdiM0owSUhzZ1MybGlZVzVoUVhWMGFGTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aUxpOUxhV0poYm1GQmRYUm9VMlZ5ZG1salpWd2lPMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdTMmxpWVc1aFUzQmhZMlZUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRMnhwWlc1MFFtRnpaV1JUWlhKMmFXTmxQRnh1SUNCQmVHbHZjMGx1YzNSaGJtTmxMRnh1SUNCTGFXSmhibUZUWlhSMWNFTnZibVpwWjF4dVBpQjdYRzRnSUVCelpYSjJhV05sS0NsY2JpQWdjSEp2ZEdWamRHVmtJR0YxZEdoVFpYSjJhV05sSVRvZ1MybGlZVzVoUVhWMGFGTmxjblpwWTJVN1hHNWNiaUFnWVhONWJtTWdhVzVwZEdsaGJHbDZaU2hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSHNnWTI5dVptbG5PaUJMYVdKaGJtRlRaWFIxY0VOdmJtWnBaenNnWTJ4cFpXNTBPaUJCZUdsdmMwbHVjM1JoYm1ObElIMCtJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lhVzVwZEdsaGJHbDZaVndpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVhVzVwZEdsaGJHbDZaU2s3WEc0Z0lDQWdZMjl1YzNRZ1kyOXVabWxuSUQwZ1kzUjRRWEpuYzFzd1hTQmhjeUJMYVdKaGJtRlRaWFIxY0VOdmJtWnBaenRjYmlBZ0lDQjBhR2x6TGw5amIyNW1hV2NnUFNCamIyNW1hV2M3WEc0Z0lDQWdZMjl1YzNRZ1kyeHBaVzUwSUQwZ2RHaHBjeTVqY21WaGRHVklkSFJ3UTJ4cFpXNTBLR052Ym1acFp5azdYRzRnSUNBZ2RHaHBjeTVmWTJ4cFpXNTBJRDBnWTJ4cFpXNTBPMXh1SUNBZ0lISmxkSFZ5YmlCN0lHTnZibVpwWnl3Z1kyeHBaVzUwSUgwN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCamNtVmhkR1ZUY0dGalpTaGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0J3WVhsc2IyRmtPaUJRWVhKMGFXRnNQRXRwWW1GdVlWTndZV05sUTI5dVptbG5QaUI4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZM0psWVhSbFUzQmhZMlZjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbU55WldGMFpWTndZV05sS1R0Y2JpQWdJQ0JqYjI1emRDQnlaWE53YjI1elpTQTlJR0YzWVdsMElIUm9hWE11Y21WeGRXVnpkQ2hjYmlBZ0lDQWdJRndpVUU5VFZGd2lMRnh1SUNBZ0lDQWdYQ0l2WVhCcEwzTndZV05sY3k5emNHRmpaVndpTEZ4dUlDQWdJQ0FnZEdocGN5NXViM0p0WVd4cGVtVlRjR0ZqWlVOdmJtWnBaeWh5WldGc2JVNWhiV1VzSUhCaGVXeHZZV1FwTEZ4dUlDQWdJQ0FnZEdocGN5NWpiMjVtYVdjdVlXUnRhVzVCY0dsVmMyVnlMRnh1SUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0JvWldGa1pYSnpPaUI3SUZ3aWEySnVMWGh6Y21aY0lqb2dYQ0owY25WbFhDSXNJRndpUTI5dWRHVnVkQzFVZVhCbFhDSTZJRndpWVhCd2JHbGpZWFJwYjI0dmFuTnZibHdpSUgwc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ2FXWWdLSEpsYzNCdmJuTmxMbk4wWVhSMWN5QTlQVDBnTkRBNUtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdFpYTnpZV2RsSUQwZ1lGTndZV05sSUNSN2NtVmhiRzFPWVcxbGZTQmhiSEpsWVdSNUlHVjRhWE4wYzJBN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1EyOXVabXhwWTNSRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLSEpsYzNCdmJuTmxMbk4wWVhSMWN5QStQU0F6TURBcElIdGNiaUFnSUNBZ0lHTnZibk4wSUcxbGMzTmhaMlVnUFNCZ1ZXNWhZbXhsSUhSdklHTnlaV0YwWlNCemNHRmpaU0FrZTNKbFlXeHRUbUZ0WlgwNklDUjdjbVZ6Y0c5dWMyVXVjM1JoZEhWelZHVjRkSDFnTzF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVKaFpGSmxjWFZsYzNSRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QjFjR1JoZEdWVGNHRmpaU2hjYmlBZ0lDQnlaV0ZzYlU1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNCd1lYbHNiMkZrT2lCUVlYSjBhV0ZzUEV0cFltRnVZVk53WVdObFEyOXVabWxuUGl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lkWEJrWVhSbFUzQmhZMlZjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMblZ3WkdGMFpWTndZV05sS1R0Y2JpQWdJQ0JqYjI1emRDQnViM0p0WVd4cGVtVmtJRDBnZEdocGN5NXViM0p0WVd4cGVtVlRjR0ZqWlVOdmJtWnBaeWh5WldGc2JVNWhiV1VzSUhCaGVXeHZZV1FwTzF4dUlDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdYQ0pRVlZSY0lpeGNiaUFnSUNBZ0lHQXZZWEJwTDNOd1lXTmxjeTl6Y0dGalpTOGtlMlZ1WTI5a1pWVlNTVU52YlhCdmJtVnVkQ2h3WVhsc2IyRmtMbWxrSUQ4L0lISmxZV3h0VG1GdFpTNTBiMHh2ZDJWeVEyRnpaU2dwS1gxZ0xGeHVJQ0FnSUNBZ2JtOXliV0ZzYVhwbFpDeGNiaUFnSUNBZ0lIUm9hWE11WTI5dVptbG5MbUZrYldsdVFYQnBWWE5sY2l4Y2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ2FHVmhaR1Z5Y3pvZ2V5QmNJbXRpYmkxNGMzSm1YQ0k2SUZ3aWRISjFaVndpTENCY0lrTnZiblJsYm5RdFZIbHdaVndpT2lCY0ltRndjR3hwWTJGMGFXOXVMMnB6YjI1Y0lpQjlMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJREl3TUN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR2xtSUNoeVpYTndiMjV6WlM1emRHRjBkWE1nUGowZ016QXdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdZRlZ1WVdKc1pTQjBieUIxY0dSaGRHVWdjM0JoWTJVZ0pIdHlaV0ZzYlU1aGJXVjlPaUFrZTNKbGMzQnZibk5sTG5OMFlYUjFjMVJsZUhSOVlEdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkNZV1JTWlhGMVpYTjBSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWkdWc1pYUmxVM0JoWTJVb1hHNGdJQ0FnY21WaGJHMU9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltUmxiR1YwWlZOd1lXTmxYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NWtaV3hsZEdWVGNHRmpaU2s3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa1JGVEVWVVJWd2lMRnh1SUNBZ0lDQWdZQzloY0drdmMzQmhZMlZ6TDNOd1lXTmxMeVI3Wlc1amIyUmxWVkpKUTI5dGNHOXVaVzUwS0hKbFlXeHRUbUZ0WlM1MGIweHZkMlZ5UTJGelpTZ3BLWDFnTEZ4dUlDQWdJQ0FnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnZEdocGN5NWpiMjVtYVdjdVlXUnRhVzVCY0dsVmMyVnlMRnh1SUNBZ0lDQWdleUJvWldGa1pYSnpPaUI3SUZ3aWEySnVMWGh6Y21aY0lqb2dYQ0owY25WbFhDSWdmU0I5TEZ4dUlDQWdJQ0FnTWpBd0xGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnYVdZZ0tISmxjM0J2Ym5ObExuTjBZWFIxY3lBK1BTQXpNREFnSmlZZ2NtVnpjRzl1YzJVdWMzUmhkSFZ6SUNFOVBTQXlNRFFwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJRzFsYzNOaFoyVWdQU0JnVlc1aFlteGxJSFJ2SUdSbGJHVjBaU0J6Y0dGalpTQWtlM0psWVd4dFRtRnRaWDA2SUNSN2NtVnpjRzl1YzJVdWMzUmhkSFZ6VkdWNGRIMWdPMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRUpoWkZKbGNYVmxjM1JGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHTnlaV0YwWlVoMGRIQkRiR2xsYm5Rb1kyOXVabWxuT2lCTGFXSmhibUZUWlhSMWNFTnZibVpwWnlrNklFRjRhVzl6U1c1emRHRnVZMlVnZTF4dUlDQWdJSEpsZEhWeWJpQkJlR2x2Y3k1amNtVmhkR1VvZTF4dUlDQWdJQ0FnWW1GelpWVlNURG9nWUNSN1kyOXVabWxuTG5CeWIzUnZZMjlzZlRvdkx5UjdZMjl1Wm1sbkxtaHZjM1I5WUN4Y2JpQWdJQ0FnSUhaaGJHbGtZWFJsVTNSaGRIVnpPaUFvS1NBOVBpQjBjblZsTEZ4dUlDQWdJQ0FnYUhSMGNITkJaMlZ1ZERvZ2JtVjNJR2gwZEhCekxrRm5aVzUwS0h0Y2JpQWdJQ0FnSUNBZ2NtVnFaV04wVlc1aGRYUm9iM0pwZW1Wa09pQW9jbVZ6YjJ4MlpVdHBZbUZ1WVVselVISnZaSFZqZEdsdmJpaDBhR2x6TG1OdmJtWnBaeUJoY3lCaGJua3BLU3hjYmlBZ0lDQWdJSDBwTEZ4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lIQmhjbk5sUlhKeWIzSW9aWEp5YjNJNklFVnljbTl5S1RvZ1JYSnliM0lnZTF4dUlDQWdJR052Ym5OMElHMWxjM05oWjJVZ1BTQmxjbkp2Y2k1dFpYTnpZV2RsSUh4OElHVnljbTl5TG01aGJXVWdmSHdnWENKVmJtdHViM2R1SUdWeWNtOXlYQ0k3WEc0Z0lDQWdZMjl1YzNRZ2JHOTNaWEpOWlhOellXZGxJRDBnYldWemMyRm5aUzUwYjB4dmQyVnlRMkZ6WlNncE8xeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltNXZkQ0JtYjNWdVpGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTURSY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVlXeHlaV0ZrZVNCbGVHbHpkSE5jSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVkyOXVabXhwWTNSY0lpa2dmSHdnYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lOREE1WENJcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRU52Ym1ac2FXTjBSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSW1sdWRtRnNhV1JjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVltRmtJSEpsY1hWbGMzUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBd1hDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUVKaFpGSmxjWFZsYzNSRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lkVzVoZFhSb2IzSnBlbVZrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdNVndpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0ptYjNKaWFXUmtaVzVjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aU5EQXpYQ0lwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnViM0p0WVd4cGVtVlRjR0ZqWlVOdmJtWnBaeWhjYmlBZ0lDQnlaV0ZzYlU1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNCd1lYbHNiMkZrT2lCUVlYSjBhV0ZzUEV0cFltRnVZVk53WVdObFEyOXVabWxuUGlBOUlIdDlYRzRnSUNrNklFdHBZbUZ1WVZOd1lXTmxRMjl1Wm1sbklIdGNiaUFnSUNCamIyNXpkQ0JpWVhObElEMGdkR2hwY3k1amIyNW1hV2N1YzNCaFkyVWdQejhnZTMwN1hHNGdJQ0FnWTI5dWMzUWdhV1FnUFNCd1lYbHNiMkZrTG1sa0lEOC9JR0poYzJVdWFXUWdQejhnY21WaGJHMU9ZVzFsTG5SdlRHOTNaWEpEWVhObEtDazdYRzRnSUNBZ1kyOXVjM1FnYm1GdFpTQTlJSEJoZVd4dllXUXVibUZ0WlNBL1B5QmlZWE5sTG01aGJXVWdQejhnY21WaGJHMU9ZVzFsTG5SdlZYQndaWEpEWVhObEtDazdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUdsa0xGeHVJQ0FnSUNBZ2JtRnRaU3hjYmlBZ0lDQWdJR1JsYzJOeWFYQjBhVzl1T2x4dUlDQWdJQ0FnSUNCd1lYbHNiMkZrTG1SbGMyTnlhWEIwYVc5dUlEOC9YRzRnSUNBZ0lDQWdJR0poYzJVdVpHVnpZM0pwY0hScGIyNGdQejljYmlBZ0lDQWdJQ0FnWUZSbGJtRnVkQ0J6Y0dGalpTQm1iM0lnSkh0eVpXRnNiVTVoYldVdWRHOVZjSEJsY2tOaGMyVW9LWDBnWkdGemFHSnZZWEprY3lCaGJtUWdiRzluYzJBc1hHNGdJQ0FnSUNCcGJtbDBhV0ZzY3pwY2JpQWdJQ0FnSUNBZ2NHRjViRzloWkM1cGJtbDBhV0ZzY3lBL1AxeHVJQ0FnSUNBZ0lDQmlZWE5sTG1sdWFYUnBZV3h6SUQ4L1hHNGdJQ0FnSUNBZ0lISmxZV3h0VG1GdFpTNXpiR2xqWlNnd0xDQXlLUzUwYjFWd2NHVnlRMkZ6WlNncExGeHVJQ0FnSUNBZ1kyOXNiM0k2SUhCaGVXeHZZV1F1WTI5c2IzSWdQejhnWW1GelpTNWpiMnh2Y2l4Y2JpQWdJQ0FnSUdScGMyRmliR1ZrUm1WaGRIVnlaWE02SUhCaGVXeHZZV1F1WkdsellXSnNaV1JHWldGMGRYSmxjeUEvUHlCaVlYTmxMbVJwYzJGaWJHVmtSbVZoZEhWeVpYTWdQejhnVzEwc1hHNGdJQ0FnSUNCemIyeDFkR2x2YmpvZ2NHRjViRzloWkM1emIyeDFkR2x2YmlBL1B5QmlZWE5sTG5OdmJIVjBhVzl1TEZ4dUlDQWdJQ0FnYVcxaFoyVlZjbXc2SUhCaGVXeHZZV1F1YVcxaFoyVlZjbXdnUHo4Z1ltRnpaUzVwYldGblpWVnliQ3hjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QnlaWEYxWlhOMEtGeHVJQ0FnSUcxbGRHaHZaRG9nWENKSFJWUmNJaUI4SUZ3aVVFOVRWRndpSUh3Z1hDSlFWVlJjSWlCOElGd2lSRVZNUlZSRlhDSXNYRzRnSUNBZ2RYSnNPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NHRjViRzloWkRvZ2RXNXJibTkzYml4Y2JpQWdJQ0JoY0dsVmMyVnlPaUJMYVdKaGJtRlZjMlZ5SUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUdWNGRISmhPaUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrTEZ4dUlDQWdJSE4xWTJObGMzTkRiMlJsT2lCdWRXMWlaWElzWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBHRnVlVDRnZTF4dUlDQWdJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdWNtVnhkV1Z6ZENrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVkyeHBaVzUwTG5KbGNYVmxjM1FvZTF4dUlDQWdJQ0FnYldWMGFHOWtMRnh1SUNBZ0lDQWdkWEpzTEZ4dUlDQWdJQ0FnWkdGMFlUcGNiaUFnSUNBZ0lDQWdjR0Y1Ykc5aFpDQTlQVDBnZFc1a1pXWnBibVZrWEc0Z0lDQWdJQ0FnSUNBZ1B5QjFibVJsWm1sdVpXUmNiaUFnSUNBZ0lDQWdJQ0E2SUhSNWNHVnZaaUJ3WVhsc2IyRmtJRDA5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUhCaGVXeHZZV1JjYmlBZ0lDQWdJQ0FnSUNBZ0lEb2dTbE5QVGk1emRISnBibWRwWm5rb2NHRjViRzloWkNrc1hHNGdJQ0FnSUNCaGRYUm9PaUJoY0dsVmMyVnlYRzRnSUNBZ0lDQWdJRDhnZXlCMWMyVnlibUZ0WlRvZ1lYQnBWWE5sY2k1MWMyVnlibUZ0WlN3Z2NHRnpjM2R2Y21RNklHRndhVlZ6WlhJdWNHRnpjM2R2Y21RZ2ZWeHVJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJSFpoYkdsa1lYUmxVM1JoZEhWek9pQW9LU0E5UGlCMGNuVmxMRnh1SUNBZ0lDQWdhSFIwY0hOQloyVnVkRG9nYm1WM0lHaDBkSEJ6TGtGblpXNTBLSHRjYmlBZ0lDQWdJQ0FnY21WcVpXTjBWVzVoZFhSb2IzSnBlbVZrT2lBb2NtVnpiMngyWlV0cFltRnVZVWx6VUhKdlpIVmpkR2x2YmloMGFHbHpMbU52Ym1acFp5QmhjeUJoYm5rcEtTeGNiaUFnSUNBZ0lIMHBMRnh1SUNBZ0lDQWdMaTR1WlhoMGNtRXNYRzRnSUNBZ2ZTazdYRzRnSUgxY2JuMWNiaUpkZlE9PSJdfQ==