@decaf-ts/ui-decorators 0.20.7 → 0.20.8

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 (469) hide show
  1. package/dist/ui-decorators.cjs +2 -1059
  2. package/dist/ui-decorators.cjs.map +1 -0
  3. package/dist/ui-decorators.js +2 -1090
  4. package/dist/ui-decorators.js.map +1 -0
  5. package/lib/cjs/dashboard/constants.cjs +2 -2
  6. package/lib/cjs/dashboard/constants.cjs.map +1 -0
  7. package/lib/cjs/dashboard/decorators.cjs +2 -2
  8. package/lib/cjs/dashboard/decorators.cjs.map +1 -0
  9. package/lib/cjs/dashboard/index.cjs +2 -2
  10. package/lib/cjs/dashboard/index.cjs.map +1 -0
  11. package/lib/cjs/dashboard/reader.cjs +2 -2
  12. package/lib/cjs/dashboard/reader.cjs.map +1 -0
  13. package/lib/cjs/dashboard/registry.cjs +2 -2
  14. package/lib/cjs/dashboard/registry.cjs.map +1 -0
  15. package/lib/cjs/dashboard/types.cjs +2 -2
  16. package/lib/cjs/dashboard/types.cjs.map +1 -0
  17. package/lib/cjs/graph/GraphExecutionStateMapper.cjs +2 -2
  18. package/lib/cjs/graph/GraphExecutionStateMapper.cjs.map +1 -0
  19. package/lib/cjs/graph/GraphResolution.cjs +2 -2
  20. package/lib/cjs/graph/GraphResolution.cjs.map +1 -0
  21. package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs +2 -2
  22. package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs.map +1 -0
  23. package/lib/cjs/graph/catalog/GraphCredentialReference.cjs +2 -2
  24. package/lib/cjs/graph/catalog/GraphCredentialReference.cjs.map +1 -0
  25. package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs +2 -2
  26. package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs.map +1 -0
  27. package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs +2 -2
  28. package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs.map +1 -0
  29. package/lib/cjs/graph/catalog/GraphIconReference.cjs +2 -2
  30. package/lib/cjs/graph/catalog/GraphIconReference.cjs.map +1 -0
  31. package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs +11 -2
  32. package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs.map +1 -0
  33. package/lib/cjs/graph/catalog/GraphNodeCapability.cjs +2 -2
  34. package/lib/cjs/graph/catalog/GraphNodeCapability.cjs.map +1 -0
  35. package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs +2 -2
  36. package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs.map +1 -0
  37. package/lib/cjs/graph/catalog/GraphNodeManifest.cjs +2 -2
  38. package/lib/cjs/graph/catalog/GraphNodeManifest.cjs.map +1 -0
  39. package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs +2 -2
  40. package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs.map +1 -0
  41. package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs +2 -2
  42. package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs.map +1 -0
  43. package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs +2 -2
  44. package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs.map +1 -0
  45. package/lib/cjs/graph/catalog/GraphParameterBase.cjs +2 -2
  46. package/lib/cjs/graph/catalog/GraphParameterBase.cjs.map +1 -0
  47. package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs +2 -2
  48. package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs.map +1 -0
  49. package/lib/cjs/graph/catalog/GraphParameterOption.cjs +2 -2
  50. package/lib/cjs/graph/catalog/GraphParameterOption.cjs.map +1 -0
  51. package/lib/cjs/graph/catalog/GraphParameterValidation.cjs +2 -2
  52. package/lib/cjs/graph/catalog/GraphParameterValidation.cjs.map +1 -0
  53. package/lib/cjs/graph/catalog/GraphPortManifest.cjs +2 -2
  54. package/lib/cjs/graph/catalog/GraphPortManifest.cjs.map +1 -0
  55. package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs +2 -2
  56. package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs.map +1 -0
  57. package/lib/cjs/graph/catalog/GraphValueSchema.cjs +2 -2
  58. package/lib/cjs/graph/catalog/GraphValueSchema.cjs.map +1 -0
  59. package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs +2 -2
  60. package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs.map +1 -0
  61. package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs +2 -2
  62. package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs.map +1 -0
  63. package/lib/cjs/graph/catalog/index.cjs +2 -2
  64. package/lib/cjs/graph/catalog/index.cjs.map +1 -0
  65. package/lib/cjs/graph/constants.cjs +76 -11
  66. package/lib/cjs/graph/constants.cjs.map +1 -0
  67. package/lib/cjs/graph/decorators.cjs +2 -2
  68. package/lib/cjs/graph/decorators.cjs.map +1 -0
  69. package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs +2 -2
  70. package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs.map +1 -0
  71. package/lib/cjs/graph/document/GraphEdgeInstance.cjs +2 -2
  72. package/lib/cjs/graph/document/GraphEdgeInstance.cjs.map +1 -0
  73. package/lib/cjs/graph/document/GraphEndpoint.cjs +2 -2
  74. package/lib/cjs/graph/document/GraphEndpoint.cjs.map +1 -0
  75. package/lib/cjs/graph/document/GraphJsonValue.cjs +2 -2
  76. package/lib/cjs/graph/document/GraphJsonValue.cjs.map +1 -0
  77. package/lib/cjs/graph/document/GraphLoopConfiguration.cjs +2 -2
  78. package/lib/cjs/graph/document/GraphLoopConfiguration.cjs.map +1 -0
  79. package/lib/cjs/graph/document/GraphNodeBinding.cjs +2 -2
  80. package/lib/cjs/graph/document/GraphNodeBinding.cjs.map +1 -0
  81. package/lib/cjs/graph/document/GraphNodeInstance.cjs +2 -2
  82. package/lib/cjs/graph/document/GraphNodeInstance.cjs.map +1 -0
  83. package/lib/cjs/graph/document/GraphWorkflowDocument.cjs +2 -2
  84. package/lib/cjs/graph/document/GraphWorkflowDocument.cjs.map +1 -0
  85. package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs +2 -2
  86. package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs.map +1 -0
  87. package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs +2 -2
  88. package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs.map +1 -0
  89. package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs +2 -2
  90. package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs.map +1 -0
  91. package/lib/cjs/graph/document/GraphWorkflowUiState.cjs +2 -2
  92. package/lib/cjs/graph/document/GraphWorkflowUiState.cjs.map +1 -0
  93. package/lib/cjs/graph/document/index.cjs +2 -2
  94. package/lib/cjs/graph/document/index.cjs.map +1 -0
  95. package/lib/cjs/graph/index.cjs +2 -2
  96. package/lib/cjs/graph/index.cjs.map +1 -0
  97. package/lib/cjs/graph/nodes/agents/agent.cjs +2 -2
  98. package/lib/cjs/graph/nodes/agents/agent.cjs.map +1 -0
  99. package/lib/cjs/graph/nodes/base.cjs +2 -2
  100. package/lib/cjs/graph/nodes/base.cjs.map +1 -0
  101. package/lib/cjs/graph/nodes/boundary/input-value.cjs +2 -2
  102. package/lib/cjs/graph/nodes/boundary/input-value.cjs.map +1 -0
  103. package/lib/cjs/graph/nodes/category-styles.cjs +2 -2
  104. package/lib/cjs/graph/nodes/category-styles.cjs.map +1 -0
  105. package/lib/cjs/graph/nodes/flow-control/break.cjs +3 -3
  106. package/lib/cjs/graph/nodes/flow-control/break.cjs.map +1 -0
  107. package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs +3 -3
  108. package/lib/cjs/graph/nodes/flow-control/error-boundary.cjs.map +1 -0
  109. package/lib/cjs/graph/nodes/flow-control/human-approval.cjs +3 -3
  110. package/lib/cjs/graph/nodes/flow-control/human-approval.cjs.map +1 -0
  111. package/lib/cjs/graph/nodes/flow-control/if.cjs +2 -2
  112. package/lib/cjs/graph/nodes/flow-control/if.cjs.map +1 -0
  113. package/lib/cjs/graph/nodes/flow-control/parallel.cjs +3 -3
  114. package/lib/cjs/graph/nodes/flow-control/parallel.cjs.map +1 -0
  115. package/lib/cjs/graph/nodes/flow-control/switch.cjs +12 -7
  116. package/lib/cjs/graph/nodes/flow-control/switch.cjs.map +1 -0
  117. package/lib/cjs/graph/nodes/index.cjs +2 -2
  118. package/lib/cjs/graph/nodes/index.cjs.map +1 -0
  119. package/lib/cjs/graph/nodes/loops/foreach.cjs +2 -2
  120. package/lib/cjs/graph/nodes/loops/foreach.cjs.map +1 -0
  121. package/lib/cjs/graph/nodes/loops/until.cjs +3 -3
  122. package/lib/cjs/graph/nodes/loops/until.cjs.map +1 -0
  123. package/lib/cjs/graph/nodes/loops/while.cjs +3 -3
  124. package/lib/cjs/graph/nodes/loops/while.cjs.map +1 -0
  125. package/lib/cjs/graph/nodes/manifests.cjs +17 -13
  126. package/lib/cjs/graph/nodes/manifests.cjs.map +1 -0
  127. package/lib/cjs/graph/nodes/triggers/chat.cjs +3 -3
  128. package/lib/cjs/graph/nodes/triggers/chat.cjs.map +1 -0
  129. package/lib/cjs/graph/nodes/triggers/event.cjs +3 -3
  130. package/lib/cjs/graph/nodes/triggers/event.cjs.map +1 -0
  131. package/lib/cjs/graph/nodes/triggers/form.cjs +3 -3
  132. package/lib/cjs/graph/nodes/triggers/form.cjs.map +1 -0
  133. package/lib/cjs/graph/nodes/triggers/manual.cjs +2 -2
  134. package/lib/cjs/graph/nodes/triggers/manual.cjs.map +1 -0
  135. package/lib/cjs/graph/nodes/triggers/schedule.cjs +3 -3
  136. package/lib/cjs/graph/nodes/triggers/schedule.cjs.map +1 -0
  137. package/lib/cjs/graph/nodes/triggers/webhook.cjs +3 -3
  138. package/lib/cjs/graph/nodes/triggers/webhook.cjs.map +1 -0
  139. package/lib/cjs/graph/nodes/utility/code.cjs +3 -3
  140. package/lib/cjs/graph/nodes/utility/code.cjs.map +1 -0
  141. package/lib/cjs/graph/nodes/utility/delay.cjs +3 -3
  142. package/lib/cjs/graph/nodes/utility/delay.cjs.map +1 -0
  143. package/lib/cjs/graph/nodes/utility/log.cjs +3 -3
  144. package/lib/cjs/graph/nodes/utility/log.cjs.map +1 -0
  145. package/lib/cjs/graph/nodes/utility/map.cjs +3 -3
  146. package/lib/cjs/graph/nodes/utility/map.cjs.map +1 -0
  147. package/lib/cjs/graph/nodes/utility/merge.cjs +2 -2
  148. package/lib/cjs/graph/nodes/utility/merge.cjs.map +1 -0
  149. package/lib/cjs/graph/nodes/utility/return.cjs +3 -3
  150. package/lib/cjs/graph/nodes/utility/return.cjs.map +1 -0
  151. package/lib/cjs/graph/nodes/utility/utility-log.cjs +3 -3
  152. package/lib/cjs/graph/nodes/utility/utility-log.cjs.map +1 -0
  153. package/lib/cjs/graph/overrides/Metadata.cjs +2 -2
  154. package/lib/cjs/graph/overrides/Metadata.cjs.map +1 -0
  155. package/lib/cjs/graph/overrides/Rendering.cjs +2 -2
  156. package/lib/cjs/graph/overrides/Rendering.cjs.map +1 -0
  157. package/lib/cjs/graph/overrides/index.cjs +2 -2
  158. package/lib/cjs/graph/overrides/index.cjs.map +1 -0
  159. package/lib/cjs/graph/overrides/overrides.cjs +2 -2
  160. package/lib/cjs/graph/overrides/overrides.cjs.map +1 -0
  161. package/lib/cjs/graph/reader.cjs +5 -2
  162. package/lib/cjs/graph/reader.cjs.map +1 -0
  163. package/lib/cjs/graph/registry.cjs +2 -2
  164. package/lib/cjs/graph/registry.cjs.map +1 -0
  165. package/lib/cjs/graph/snapshot.cjs +2 -2
  166. package/lib/cjs/graph/snapshot.cjs.map +1 -0
  167. package/lib/cjs/graph/types.cjs +2 -2
  168. package/lib/cjs/graph/types.cjs.map +1 -0
  169. package/lib/cjs/index.cjs +4 -4
  170. package/lib/cjs/index.cjs.map +1 -0
  171. package/lib/cjs/model/Renderable.cjs +2 -2
  172. package/lib/cjs/model/Renderable.cjs.map +1 -0
  173. package/lib/cjs/model/decorators.cjs +2 -2
  174. package/lib/cjs/model/decorators.cjs.map +1 -0
  175. package/lib/cjs/model/index.cjs +2 -2
  176. package/lib/cjs/model/index.cjs.map +1 -0
  177. package/lib/cjs/model/model.cjs +2 -2
  178. package/lib/cjs/model/model.cjs.map +1 -0
  179. package/lib/cjs/model/overrides.cjs +2 -2
  180. package/lib/cjs/model/overrides.cjs.map +1 -0
  181. package/lib/cjs/overrides/ModelBuilderExtensions.cjs +2 -2
  182. package/lib/cjs/overrides/ModelBuilderExtensions.cjs.map +1 -0
  183. package/lib/cjs/overrides/index.cjs +2 -2
  184. package/lib/cjs/overrides/index.cjs.map +1 -0
  185. package/lib/cjs/ui/DecafComponent.cjs +2 -2
  186. package/lib/cjs/ui/DecafComponent.cjs.map +1 -0
  187. package/lib/cjs/ui/DecafEventHandler.cjs +2 -2
  188. package/lib/cjs/ui/DecafEventHandler.cjs.map +1 -0
  189. package/lib/cjs/ui/DecafTranslateService.cjs +2 -2
  190. package/lib/cjs/ui/DecafTranslateService.cjs.map +1 -0
  191. package/lib/cjs/ui/Rendering.cjs +2 -2
  192. package/lib/cjs/ui/Rendering.cjs.map +1 -0
  193. package/lib/cjs/ui/UIValidator.cjs +2 -2
  194. package/lib/cjs/ui/UIValidator.cjs.map +1 -0
  195. package/lib/cjs/ui/constants.cjs +2 -2
  196. package/lib/cjs/ui/constants.cjs.map +1 -0
  197. package/lib/cjs/ui/decorators.cjs +2 -2
  198. package/lib/cjs/ui/decorators.cjs.map +1 -0
  199. package/lib/cjs/ui/errors.cjs +2 -2
  200. package/lib/cjs/ui/errors.cjs.map +1 -0
  201. package/lib/cjs/ui/index.cjs +2 -2
  202. package/lib/cjs/ui/index.cjs.map +1 -0
  203. package/lib/cjs/ui/interfaces/IDecafModal.cjs +2 -2
  204. package/lib/cjs/ui/interfaces/IDecafModal.cjs.map +1 -0
  205. package/lib/cjs/ui/interfaces/IDecafRouter.cjs +2 -2
  206. package/lib/cjs/ui/interfaces/IDecafRouter.cjs.map +1 -0
  207. package/lib/cjs/ui/interfaces/IDecafSpinner.cjs +2 -2
  208. package/lib/cjs/ui/interfaces/IDecafSpinner.cjs.map +1 -0
  209. package/lib/cjs/ui/interfaces/IDecafToast.cjs +2 -2
  210. package/lib/cjs/ui/interfaces/IDecafToast.cjs.map +1 -0
  211. package/lib/cjs/ui/interfaces/index.cjs +2 -2
  212. package/lib/cjs/ui/interfaces/index.cjs.map +1 -0
  213. package/lib/cjs/ui/overrides.cjs +2 -2
  214. package/lib/cjs/ui/overrides.cjs.map +1 -0
  215. package/lib/cjs/ui/types.cjs +2 -2
  216. package/lib/cjs/ui/types.cjs.map +1 -0
  217. package/lib/cjs/ui/utils.cjs +2 -2
  218. package/lib/cjs/ui/utils.cjs.map +1 -0
  219. package/lib/cjs/ui/validator.cjs +2 -2
  220. package/lib/cjs/ui/validator.cjs.map +1 -0
  221. package/lib/cjs/user-requests/UserRequestHandler.cjs +2 -2
  222. package/lib/cjs/user-requests/UserRequestHandler.cjs.map +1 -0
  223. package/lib/cjs/user-requests/constants.cjs +2 -2
  224. package/lib/cjs/user-requests/constants.cjs.map +1 -0
  225. package/lib/cjs/user-requests/decorators.cjs +2 -2
  226. package/lib/cjs/user-requests/decorators.cjs.map +1 -0
  227. package/lib/cjs/user-requests/errors.cjs +2 -2
  228. package/lib/cjs/user-requests/errors.cjs.map +1 -0
  229. package/lib/cjs/user-requests/index.cjs +2 -2
  230. package/lib/cjs/user-requests/index.cjs.map +1 -0
  231. package/lib/cjs/user-requests/types.cjs +2 -2
  232. package/lib/cjs/user-requests/types.cjs.map +1 -0
  233. package/lib/esm/dashboard/constants.js +1 -1
  234. package/lib/esm/dashboard/constants.js.map +1 -0
  235. package/lib/esm/dashboard/decorators.js +1 -1
  236. package/lib/esm/dashboard/decorators.js.map +1 -0
  237. package/lib/esm/dashboard/index.js +1 -1
  238. package/lib/esm/dashboard/index.js.map +1 -0
  239. package/lib/esm/dashboard/reader.js +1 -1
  240. package/lib/esm/dashboard/reader.js.map +1 -0
  241. package/lib/esm/dashboard/registry.js +1 -1
  242. package/lib/esm/dashboard/registry.js.map +1 -0
  243. package/lib/esm/dashboard/types.js +1 -1
  244. package/lib/esm/dashboard/types.js.map +1 -0
  245. package/lib/esm/graph/GraphExecutionStateMapper.js +1 -1
  246. package/lib/esm/graph/GraphExecutionStateMapper.js.map +1 -0
  247. package/lib/esm/graph/GraphResolution.js +1 -1
  248. package/lib/esm/graph/GraphResolution.js.map +1 -0
  249. package/lib/esm/graph/catalog/GraphConnectionPolicy.js +1 -1
  250. package/lib/esm/graph/catalog/GraphConnectionPolicy.js.map +1 -0
  251. package/lib/esm/graph/catalog/GraphCredentialReference.js +1 -1
  252. package/lib/esm/graph/catalog/GraphCredentialReference.js.map +1 -0
  253. package/lib/esm/graph/catalog/GraphCredentialRequirement.js +1 -1
  254. package/lib/esm/graph/catalog/GraphCredentialRequirement.js.map +1 -0
  255. package/lib/esm/graph/catalog/GraphDynamicPortRule.js +1 -1
  256. package/lib/esm/graph/catalog/GraphDynamicPortRule.js.map +1 -0
  257. package/lib/esm/graph/catalog/GraphIconReference.js +1 -1
  258. package/lib/esm/graph/catalog/GraphIconReference.js.map +1 -0
  259. package/lib/esm/graph/catalog/GraphManifestCompiler.js +10 -1
  260. package/lib/esm/graph/catalog/GraphManifestCompiler.js.map +1 -0
  261. package/lib/esm/graph/catalog/GraphNodeCapability.js +1 -1
  262. package/lib/esm/graph/catalog/GraphNodeCapability.js.map +1 -0
  263. package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js +1 -1
  264. package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js.map +1 -0
  265. package/lib/esm/graph/catalog/GraphNodeManifest.js +1 -1
  266. package/lib/esm/graph/catalog/GraphNodeManifest.js.map +1 -0
  267. package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js +1 -1
  268. package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js.map +1 -0
  269. package/lib/esm/graph/catalog/GraphNodeMethodManifest.js +1 -1
  270. package/lib/esm/graph/catalog/GraphNodeMethodManifest.js.map +1 -0
  271. package/lib/esm/graph/catalog/GraphNodePolicyManifest.js +1 -1
  272. package/lib/esm/graph/catalog/GraphNodePolicyManifest.js.map +1 -0
  273. package/lib/esm/graph/catalog/GraphParameterBase.js +1 -1
  274. package/lib/esm/graph/catalog/GraphParameterBase.js.map +1 -0
  275. package/lib/esm/graph/catalog/GraphParameterDefinition.js +1 -1
  276. package/lib/esm/graph/catalog/GraphParameterDefinition.js.map +1 -0
  277. package/lib/esm/graph/catalog/GraphParameterOption.js +1 -1
  278. package/lib/esm/graph/catalog/GraphParameterOption.js.map +1 -0
  279. package/lib/esm/graph/catalog/GraphParameterValidation.js +1 -1
  280. package/lib/esm/graph/catalog/GraphParameterValidation.js.map +1 -0
  281. package/lib/esm/graph/catalog/GraphPortManifest.js +1 -1
  282. package/lib/esm/graph/catalog/GraphPortManifest.js.map +1 -0
  283. package/lib/esm/graph/catalog/GraphResourceLocatorMode.js +1 -1
  284. package/lib/esm/graph/catalog/GraphResourceLocatorMode.js.map +1 -0
  285. package/lib/esm/graph/catalog/GraphValueSchema.js +1 -1
  286. package/lib/esm/graph/catalog/GraphValueSchema.js.map +1 -0
  287. package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js +1 -1
  288. package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js.map +1 -0
  289. package/lib/esm/graph/catalog/GraphVisibilityExpression.js +1 -1
  290. package/lib/esm/graph/catalog/GraphVisibilityExpression.js.map +1 -0
  291. package/lib/esm/graph/catalog/index.js +1 -1
  292. package/lib/esm/graph/catalog/index.js.map +1 -0
  293. package/lib/esm/graph/constants.js +73 -9
  294. package/lib/esm/graph/constants.js.map +1 -0
  295. package/lib/esm/graph/decorators.js +1 -1
  296. package/lib/esm/graph/decorators.js.map +1 -0
  297. package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js +1 -1
  298. package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js.map +1 -0
  299. package/lib/esm/graph/document/GraphEdgeInstance.js +1 -1
  300. package/lib/esm/graph/document/GraphEdgeInstance.js.map +1 -0
  301. package/lib/esm/graph/document/GraphEndpoint.js +1 -1
  302. package/lib/esm/graph/document/GraphEndpoint.js.map +1 -0
  303. package/lib/esm/graph/document/GraphJsonValue.js +1 -1
  304. package/lib/esm/graph/document/GraphJsonValue.js.map +1 -0
  305. package/lib/esm/graph/document/GraphLoopConfiguration.js +1 -1
  306. package/lib/esm/graph/document/GraphLoopConfiguration.js.map +1 -0
  307. package/lib/esm/graph/document/GraphNodeBinding.js +1 -1
  308. package/lib/esm/graph/document/GraphNodeBinding.js.map +1 -0
  309. package/lib/esm/graph/document/GraphNodeInstance.js +1 -1
  310. package/lib/esm/graph/document/GraphNodeInstance.js.map +1 -0
  311. package/lib/esm/graph/document/GraphWorkflowDocument.js +1 -1
  312. package/lib/esm/graph/document/GraphWorkflowDocument.js.map +1 -0
  313. package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js +1 -1
  314. package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js.map +1 -0
  315. package/lib/esm/graph/document/GraphWorkflowDocumentReader.js +1 -1
  316. package/lib/esm/graph/document/GraphWorkflowDocumentReader.js.map +1 -0
  317. package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js +1 -1
  318. package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js.map +1 -0
  319. package/lib/esm/graph/document/GraphWorkflowUiState.js +1 -1
  320. package/lib/esm/graph/document/GraphWorkflowUiState.js.map +1 -0
  321. package/lib/esm/graph/document/index.js +1 -1
  322. package/lib/esm/graph/document/index.js.map +1 -0
  323. package/lib/esm/graph/index.js +1 -1
  324. package/lib/esm/graph/index.js.map +1 -0
  325. package/lib/esm/graph/nodes/agents/agent.js +1 -1
  326. package/lib/esm/graph/nodes/agents/agent.js.map +1 -0
  327. package/lib/esm/graph/nodes/base.js +1 -1
  328. package/lib/esm/graph/nodes/base.js.map +1 -0
  329. package/lib/esm/graph/nodes/boundary/input-value.js +1 -1
  330. package/lib/esm/graph/nodes/boundary/input-value.js.map +1 -0
  331. package/lib/esm/graph/nodes/category-styles.js +1 -1
  332. package/lib/esm/graph/nodes/category-styles.js.map +1 -0
  333. package/lib/esm/graph/nodes/flow-control/break.js +2 -2
  334. package/lib/esm/graph/nodes/flow-control/break.js.map +1 -0
  335. package/lib/esm/graph/nodes/flow-control/error-boundary.js +2 -2
  336. package/lib/esm/graph/nodes/flow-control/error-boundary.js.map +1 -0
  337. package/lib/esm/graph/nodes/flow-control/human-approval.js +2 -2
  338. package/lib/esm/graph/nodes/flow-control/human-approval.js.map +1 -0
  339. package/lib/esm/graph/nodes/flow-control/if.js +1 -1
  340. package/lib/esm/graph/nodes/flow-control/if.js.map +1 -0
  341. package/lib/esm/graph/nodes/flow-control/parallel.js +2 -2
  342. package/lib/esm/graph/nodes/flow-control/parallel.js.map +1 -0
  343. package/lib/esm/graph/nodes/flow-control/switch.js +12 -7
  344. package/lib/esm/graph/nodes/flow-control/switch.js.map +1 -0
  345. package/lib/esm/graph/nodes/index.js +1 -1
  346. package/lib/esm/graph/nodes/index.js.map +1 -0
  347. package/lib/esm/graph/nodes/loops/foreach.js +1 -1
  348. package/lib/esm/graph/nodes/loops/foreach.js.map +1 -0
  349. package/lib/esm/graph/nodes/loops/until.js +2 -2
  350. package/lib/esm/graph/nodes/loops/until.js.map +1 -0
  351. package/lib/esm/graph/nodes/loops/while.js +2 -2
  352. package/lib/esm/graph/nodes/loops/while.js.map +1 -0
  353. package/lib/esm/graph/nodes/manifests.js +16 -12
  354. package/lib/esm/graph/nodes/manifests.js.map +1 -0
  355. package/lib/esm/graph/nodes/triggers/chat.js +2 -2
  356. package/lib/esm/graph/nodes/triggers/chat.js.map +1 -0
  357. package/lib/esm/graph/nodes/triggers/event.js +2 -2
  358. package/lib/esm/graph/nodes/triggers/event.js.map +1 -0
  359. package/lib/esm/graph/nodes/triggers/form.js +2 -2
  360. package/lib/esm/graph/nodes/triggers/form.js.map +1 -0
  361. package/lib/esm/graph/nodes/triggers/manual.js +1 -1
  362. package/lib/esm/graph/nodes/triggers/manual.js.map +1 -0
  363. package/lib/esm/graph/nodes/triggers/schedule.js +2 -2
  364. package/lib/esm/graph/nodes/triggers/schedule.js.map +1 -0
  365. package/lib/esm/graph/nodes/triggers/webhook.js +2 -2
  366. package/lib/esm/graph/nodes/triggers/webhook.js.map +1 -0
  367. package/lib/esm/graph/nodes/utility/code.js +2 -2
  368. package/lib/esm/graph/nodes/utility/code.js.map +1 -0
  369. package/lib/esm/graph/nodes/utility/delay.js +2 -2
  370. package/lib/esm/graph/nodes/utility/delay.js.map +1 -0
  371. package/lib/esm/graph/nodes/utility/log.js +2 -2
  372. package/lib/esm/graph/nodes/utility/log.js.map +1 -0
  373. package/lib/esm/graph/nodes/utility/map.js +2 -2
  374. package/lib/esm/graph/nodes/utility/map.js.map +1 -0
  375. package/lib/esm/graph/nodes/utility/merge.js +1 -1
  376. package/lib/esm/graph/nodes/utility/merge.js.map +1 -0
  377. package/lib/esm/graph/nodes/utility/return.js +2 -2
  378. package/lib/esm/graph/nodes/utility/return.js.map +1 -0
  379. package/lib/esm/graph/nodes/utility/utility-log.js +2 -2
  380. package/lib/esm/graph/nodes/utility/utility-log.js.map +1 -0
  381. package/lib/esm/graph/overrides/Metadata.js +1 -1
  382. package/lib/esm/graph/overrides/Metadata.js.map +1 -0
  383. package/lib/esm/graph/overrides/Rendering.js +1 -1
  384. package/lib/esm/graph/overrides/Rendering.js.map +1 -0
  385. package/lib/esm/graph/overrides/index.js +1 -1
  386. package/lib/esm/graph/overrides/index.js.map +1 -0
  387. package/lib/esm/graph/overrides/overrides.js +1 -1
  388. package/lib/esm/graph/overrides/overrides.js.map +1 -0
  389. package/lib/esm/graph/reader.js +4 -1
  390. package/lib/esm/graph/reader.js.map +1 -0
  391. package/lib/esm/graph/registry.js +1 -1
  392. package/lib/esm/graph/registry.js.map +1 -0
  393. package/lib/esm/graph/snapshot.js +1 -1
  394. package/lib/esm/graph/snapshot.js.map +1 -0
  395. package/lib/esm/graph/types.js +1 -1
  396. package/lib/esm/graph/types.js.map +1 -0
  397. package/lib/esm/index.js +3 -3
  398. package/lib/esm/index.js.map +1 -0
  399. package/lib/esm/model/Renderable.js +1 -1
  400. package/lib/esm/model/Renderable.js.map +1 -0
  401. package/lib/esm/model/decorators.js +1 -1
  402. package/lib/esm/model/decorators.js.map +1 -0
  403. package/lib/esm/model/index.js +1 -1
  404. package/lib/esm/model/index.js.map +1 -0
  405. package/lib/esm/model/model.js +1 -1
  406. package/lib/esm/model/model.js.map +1 -0
  407. package/lib/esm/model/overrides.js +1 -1
  408. package/lib/esm/model/overrides.js.map +1 -0
  409. package/lib/esm/overrides/ModelBuilderExtensions.js +1 -1
  410. package/lib/esm/overrides/ModelBuilderExtensions.js.map +1 -0
  411. package/lib/esm/overrides/index.js +1 -1
  412. package/lib/esm/overrides/index.js.map +1 -0
  413. package/lib/esm/ui/DecafComponent.js +1 -1
  414. package/lib/esm/ui/DecafComponent.js.map +1 -0
  415. package/lib/esm/ui/DecafEventHandler.js +1 -1
  416. package/lib/esm/ui/DecafEventHandler.js.map +1 -0
  417. package/lib/esm/ui/DecafTranslateService.js +1 -1
  418. package/lib/esm/ui/DecafTranslateService.js.map +1 -0
  419. package/lib/esm/ui/Rendering.js +1 -1
  420. package/lib/esm/ui/Rendering.js.map +1 -0
  421. package/lib/esm/ui/UIValidator.js +1 -1
  422. package/lib/esm/ui/UIValidator.js.map +1 -0
  423. package/lib/esm/ui/constants.js +1 -1
  424. package/lib/esm/ui/constants.js.map +1 -0
  425. package/lib/esm/ui/decorators.js +1 -1
  426. package/lib/esm/ui/decorators.js.map +1 -0
  427. package/lib/esm/ui/errors.js +1 -1
  428. package/lib/esm/ui/errors.js.map +1 -0
  429. package/lib/esm/ui/index.js +1 -1
  430. package/lib/esm/ui/index.js.map +1 -0
  431. package/lib/esm/ui/interfaces/IDecafModal.js +1 -1
  432. package/lib/esm/ui/interfaces/IDecafModal.js.map +1 -0
  433. package/lib/esm/ui/interfaces/IDecafRouter.js +1 -1
  434. package/lib/esm/ui/interfaces/IDecafRouter.js.map +1 -0
  435. package/lib/esm/ui/interfaces/IDecafSpinner.js +1 -1
  436. package/lib/esm/ui/interfaces/IDecafSpinner.js.map +1 -0
  437. package/lib/esm/ui/interfaces/IDecafToast.js +1 -1
  438. package/lib/esm/ui/interfaces/IDecafToast.js.map +1 -0
  439. package/lib/esm/ui/interfaces/index.js +1 -1
  440. package/lib/esm/ui/interfaces/index.js.map +1 -0
  441. package/lib/esm/ui/overrides.js +1 -1
  442. package/lib/esm/ui/overrides.js.map +1 -0
  443. package/lib/esm/ui/types.js +1 -1
  444. package/lib/esm/ui/types.js.map +1 -0
  445. package/lib/esm/ui/utils.js +1 -1
  446. package/lib/esm/ui/utils.js.map +1 -0
  447. package/lib/esm/ui/validator.js +1 -1
  448. package/lib/esm/ui/validator.js.map +1 -0
  449. package/lib/esm/user-requests/UserRequestHandler.js +1 -1
  450. package/lib/esm/user-requests/UserRequestHandler.js.map +1 -0
  451. package/lib/esm/user-requests/constants.js +1 -1
  452. package/lib/esm/user-requests/constants.js.map +1 -0
  453. package/lib/esm/user-requests/decorators.js +1 -1
  454. package/lib/esm/user-requests/decorators.js.map +1 -0
  455. package/lib/esm/user-requests/errors.js +1 -1
  456. package/lib/esm/user-requests/errors.js.map +1 -0
  457. package/lib/esm/user-requests/index.js +1 -1
  458. package/lib/esm/user-requests/index.js.map +1 -0
  459. package/lib/esm/user-requests/types.js +1 -1
  460. package/lib/esm/user-requests/types.js.map +1 -0
  461. package/lib/types/graph/catalog/GraphNodeDisplayManifest.d.cts +17 -0
  462. package/lib/types/graph/catalog/GraphNodeDisplayManifest.d.mts +17 -0
  463. package/lib/types/graph/constants.d.cts +101 -6
  464. package/lib/types/graph/constants.d.mts +101 -6
  465. package/lib/types/graph/document/GraphWorkflowUiState.d.cts +8 -0
  466. package/lib/types/graph/document/GraphWorkflowUiState.d.mts +8 -0
  467. package/lib/types/index.d.cts +2 -2
  468. package/lib/types/index.d.mts +2 -2
  469. package/package.json +3 -1
@@ -380,5 +380,5 @@ exports.WindowColorSchemes = {
380
380
  dark: "dark",
381
381
  undefined: "undefined",
382
382
  };
383
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBQ2IsY0FBYyxFQUNkLGVBQWUsRUFDZiwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxHQUVmLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIscUNBQWUsQ0FBQTtJQUNmLHVDQUFpQixDQUFBO0lBQ2pCLHFDQUFlLENBQUE7SUFDZix1Q0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUs3QjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLFNBQVM7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixXQUFXLEVBQUUsUUFBUTtJQUNyQixrQkFBa0IsRUFBRSxtQkFBbUI7SUFFdkMsV0FBVyxFQUFFLGFBQWE7SUFDMUIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsUUFBUSxFQUFF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RUFBRSxVQUFVO0lBQ3BCLElBQUksRUFBRSxFQUFFO0NBQ0EsQ0FBQztBQUVYOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYSxDQUFDLE1BQU07SUFDNUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxDQUFDLElBQUk7SUFDeEMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYSxDQUFDLE1BQU07SUFDNUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYSxDQUFDLE1BQU07Q0FDcEMsQ0FBQztBQUVYOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLFNBQVMsRUFBRSxXQUFXO0NBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0YW50cyBhbmQgZW51bXMgZm9yIFVJIHJlbmRlcmluZyBhbmQgdmFsaWRhdGlvblxuICogQHN1bW1hcnkgRGVmaW5lcyBrZXlzLCBtYXBwaW5ncywgYW5kIEhUTUw1IGlucHV0IHR5cGVzIGZvciBVSSBjb21wb25lbnRzXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBjb25zdGFudHMgdXNlZCB0aHJvdWdob3V0IHRoZSBVSSBkZWNvcmF0b3JzIGxpYnJhcnkgZm9yXG4gKiByZW5kZXJpbmcsIHZhbGlkYXRpb24sIGFuZCBIVE1MIGVsZW1lbnQgZ2VuZXJhdGlvbi5cbiAqIEBtb2R1bGUgdWkvY29uc3RhbnRzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuXG5pbXBvcnQge1xuICBEYXRlVmFsaWRhdG9yLFxuICBEaWZmVmFsaWRhdG9yLFxuICBFbWFpbFZhbGlkYXRvcixcbiAgRXF1YWxzVmFsaWRhdG9yLFxuICBHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3IsXG4gIEdyZWF0ZXJUaGFuVmFsaWRhdG9yLFxuICBMZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3IsXG4gIExlc3NUaGFuVmFsaWRhdG9yLFxuICBNYXhMZW5ndGhWYWxpZGF0b3IsXG4gIE1heFZhbGlkYXRvcixcbiAgTWluTGVuZ3RoVmFsaWRhdG9yLFxuICBNaW5WYWxpZGF0b3IsXG4gIFBhc3N3b3JkVmFsaWRhdG9yLFxuICBQYXR0ZXJuVmFsaWRhdG9yLFxuICBSZXF1aXJlZFZhbGlkYXRvcixcbiAgU3RlcFZhbGlkYXRvcixcbiAgVVJMVmFsaWRhdG9yLFxuICBWYWxpZGF0aW9uS2V5cyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgZW51bSBVSU1lZGlhQnJlYWtQb2ludHMge1xuICBTTUFMTCA9IFwic21hbGxcIixcbiAgTUVESVVNID0gXCJtZWRpdW1cIixcbiAgTEFSR0UgPSBcImxhcmdlXCIsXG4gIFhMQVJHRSA9IFwieGxhcmdlXCIsXG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEtleSBjb25zdGFudHMgdXNlZCBmb3IgVUkgbWV0YWRhdGEgYW5kIHJlbmRlcmluZ1xuICogQHN1bW1hcnkgQ29sbGVjdGlvbiBvZiBzdHJpbmcgY29uc3RhbnRzIHVzZWQgYXMga2V5cyBmb3IgVUktcmVsYXRlZCBtZXRhZGF0YVxuICogVGhlc2Uga2V5cyBhcmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5IHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBtZXRhZGF0YSByZWxhdGVkIHRvXG4gKiBVSSBtb2RlbHMsIGVsZW1lbnRzLCBwcm9wZXJ0aWVzLCBhbmQgdmFsaWRhdGlvbiBydWxlcy5cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBVSUtleXNUeXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVGTEVDVCAtIEJhc2UgcmVmbGVjdGlvbiBrZXkgZm9yIFVJIG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVUlNT0RFTCAtIEtleSBmb3IgVUkgbW9kZWwgbWV0YWRhdGFcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRU5ERVJFRF9CWSAtIEtleSBmb3Igc3BlY2lmeWluZyByZW5kZXJpbmcgZW5naW5lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRUxFTUVOVCAtIEtleSBmb3IgZWxlbWVudCBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBST1AgLSBLZXkgZm9yIHByb3BlcnR5IG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTkFNRSAtIEtleSBmb3IgbmFtZSBhdHRyaWJ1dGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBOQU1FX1BSRUZJWCAtIFByZWZpeCBmb3IgaW5wdXQgbmFtZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDVVNUT01fUFJPUFMgLSBLZXkgZm9yIGN1c3RvbSB2YWxpZGF0aW9uIHByb3BlcnRpZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBVSUxJU1RNT0RFTCAtIEtleSBmb3IgbGlzdCBpdGVtIG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVUlMSVNUUFJPUCAtIEtleSBmb3IgbGlzdCBwcm9wZXJ0eSBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRZUEUgLSBLZXkgZm9yIHR5cGUgbWV0YWRhdGFcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTVUJfVFlQRSAtIEtleSBmb3Igc3VidHlwZSBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEhJRERFTiAtIEtleSBmb3IgaGlkZGVuIGF0dHJpYnV0ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEZPUk1BVCAtIEtleSBmb3IgZm9ybWF0IG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVBRF9PTkxZIC0gS2V5IGZvciByZWFkb25seSBhdHRyaWJ1dGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRVFVSVJFRCAtIEtleSBmb3IgcmVxdWlyZWQgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1JTiAtIEtleSBmb3IgbWluaW11bSB2YWx1ZSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUlOX0xFTkdUSCAtIEtleSBmb3IgbWluaW11bSBsZW5ndGggdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1BWCAtIEtleSBmb3IgbWF4aW11bSB2YWx1ZSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUFYX0xFTkdUSCAtIEtleSBmb3IgbWF4aW11bSBsZW5ndGggdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBVFRFUk4gLSBLZXkgZm9yIHBhdHRlcm4gdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFVSTCAtIEtleSBmb3IgVVJMIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTVEVQIC0gS2V5IGZvciBzdGVwIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBEQVRFIC0gS2V5IGZvciBkYXRlIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFTUFJTCAtIEtleSBmb3IgZW1haWwgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBU1NXT1JEIC0gS2V5IGZvciBwYXNzd29yZCB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRVFVQUxTIC0gS2V5IGZvciBlcXVhbGl0eSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRElGRiAtIEtleSBmb3IgZGlmZmVyZW5jZSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTEVTU19USEFOIC0gS2V5IGZvciBsZXNzIHRoYW4gdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IExFU1NfVEhBTl9PUl9FUVVBTCAtIEtleSBmb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBHUkVBVEVSX1RIQU4gLSBLZXkgZm9yIGdyZWF0ZXIgdGhhbiB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gR1JFQVRFUl9USEFOX09SX0VRVUFMIC0gS2V5IGZvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdmFsaWRhdGlvblxuICpcbiAqIEBjb25zdCBVSUtleXNcbiAqIEB0eXBlIHtVSUtleXNUeXBlfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFVJS2V5cyA9IHtcbiAgUkVGTEVDVDogYHVpYCxcbiAgVUlNT0RFTDogXCJ1aW1vZGVsXCIsXG4gIFJFTkRFUkVEX0JZOiBcInJlbmRlcmVkLWJ5XCIsXG4gIEVMRU1FTlQ6IFwidWllbGVtZW50XCIsXG4gIFBST1A6IFwidWlwcm9wXCIsXG4gIENISUxEOiBcInVpY2hpbGRcIixcbiAgTkFNRTogXCJuYW1lXCIsXG4gIE5BTUVfUFJFRklYOiBcImlucHV0LVwiLFxuICBWQUxJREFUSU9OX01FU1NBR0U6IFwidmFsaWRhdGlvbk1lc3NhZ2VcIixcblxuICBVSUxJU1RNT0RFTDogXCJ1aWxpc3Rtb2RlbFwiLFxuICBVSUxJU1RQUk9QOiBcInVpbGlzdHByb3BcIixcbiAgVUlMQVlPVVQ6IFwidWlsYXlvdXRcIixcbiAgVUlMQVlPVVRQUk9QOiBcInVpbGF5b3V0cHJvcFwiLFxuICBIQU5ETEVSUzogXCJoYW5kbGVyc1wiLFxuXG4gIFRZUEU6IFwidHlwZVwiLFxuICBTVUJfVFlQRTogXCJzdWJUeXBlXCIsXG5cbiAgSElEREVOOiBcImhpZGRlblwiLFxuICBISURFX0ZPUjogXCJoaWRlLWZvclwiLFxuICBTSE9XX0ZPUjogXCJzaG93LWZvclwiLFxuICBSRU5ERVJfSUY6IFwicmVuZGVyLWlmXCIsXG4gIEZPUk1BVDogXCJmb3JtYXRcIixcbiAgT1JERVI6IFwib3JkZXJcIixcbiAgUEFHRTogXCJwYWdlXCIsXG4gIEVWRU5UUzogXCJldmVudHNcIixcblxuICBGSVJTVDogXCJmaXJzdFwiLFxuICBMQVNUOiBcImxhc3RcIixcblxuICBSRUFEX09OTFk6IFwicmVhZG9ubHlcIixcbiAgU0VRVUVOQ0U6IFwic2VxdWVuY2VcIixcbiAgUkVRVUlSRUQ6IFZhbGlkYXRpb25LZXlzLlJFUVVJUkVELFxuICBNSU46IFZhbGlkYXRpb25LZXlzLk1JTixcbiAgTUlOX0xFTkdUSDogVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSCxcbiAgTUFYOiBWYWxpZGF0aW9uS2V5cy5NQVgsXG4gIE1BWF9MRU5HVEg6IFZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEgsXG4gIFBBVFRFUk46IFZhbGlkYXRpb25LZXlzLlBBVFRFUk4sXG4gIFVSTDogVmFsaWRhdGlvbktleXMuVVJMLFxuICBTVEVQOiBWYWxpZGF0aW9uS2V5cy5TVEVQLFxuICBEQVRFOiBWYWxpZGF0aW9uS2V5cy5EQVRFLFxuICBFTUFJTDogVmFsaWRhdGlvbktleXMuRU1BSUwsXG4gIFBBU1NXT1JEOiBWYWxpZGF0aW9uS2V5cy5QQVNTV09SRCxcbiAgRVFVQUxTOiBWYWxpZGF0aW9uS2V5cy5FUVVBTFMsXG4gIERJRkY6IFZhbGlkYXRpb25LZXlzLkRJRkYsXG4gIExFU1NfVEhBTjogVmFsaWRhdGlvbktleXMuTEVTU19USEFOLFxuICBMRVNTX1RIQU5fT1JfRVFVQUw6IFZhbGlkYXRpb25LZXlzLkxFU1NfVEhBTl9PUl9FUVVBTCxcbiAgR1JFQVRFUl9USEFOOiBWYWxpZGF0aW9uS2V5cy5HUkVBVEVSX1RIQU4sXG4gIEdSRUFURVJfVEhBTl9PUl9FUVVBTDogVmFsaWRhdGlvbktleXMuR1JFQVRFUl9USEFOX09SX0VRVUFMLFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWFwcGluZyBvZiBpbnB1dCB0eXBlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIHZhbGlkYXRvcnNcbiAqIEBzdW1tYXJ5IE1hcHMgc3BlY2lhbCBpbnB1dCB0eXBlcyB0byB0aGVpciB2YWxpZGF0b3IgY2xhc3Nlc1xuICogVGhpcyBjb25zdGFudCBtYXBzIGlucHV0IHR5cGVzIGxpa2UgZW1haWwsIFVSTCwgZGF0ZSwgYW5kIHBhc3N3b3JkIHRvIHRoZWlyXG4gKiBjb3JyZXNwb25kaW5nIHZhbGlkYXRvciBjbGFzc2VzIGZyb20gdGhlIGRlY29yYXRvci12YWxpZGF0aW9uIGxpYnJhcnkuXG4gKlxuICogQHR5cGVkZWYge09iamVjdC48c3RyaW5nLCBDb25zdHJ1Y3RvcjxWYWxpZGF0b3I+Pn0gVmFsaWRhdGFibGVCeVR5cGVNYXBcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8RW1haWxWYWxpZGF0b3I+fSBlbWFpbCAtIFZhbGlkYXRvciBmb3IgZW1haWwgaW5wdXRzXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPFVSTFZhbGlkYXRvcj59IHVybCAtIFZhbGlkYXRvciBmb3IgVVJMIGlucHV0c1xuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxEYXRlVmFsaWRhdG9yPn0gZGF0ZSAtIFZhbGlkYXRvciBmb3IgZGF0ZSBpbnB1dHNcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8UGFzc3dvcmRWYWxpZGF0b3I+fSBwYXNzd29yZCAtIFZhbGlkYXRvciBmb3IgcGFzc3dvcmQgaW5wdXRzXG4gKlxuICogQGNvbnN0IFZhbGlkYXRhYmxlQnlUeXBlXG4gKiBAdHlwZSB7VmFsaWRhdGFibGVCeVR5cGVNYXB9XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgVmFsaWRhdGFibGVCeVR5cGU6IFJlY29yZDxzdHJpbmcsIENvbnN0cnVjdG9yPFZhbGlkYXRvcj4+ID0ge1xuICBbVUlLZXlzLkVNQUlMXTogRW1haWxWYWxpZGF0b3IsXG4gIFtVSUtleXMuVVJMXTogVVJMVmFsaWRhdG9yLFxuICBbVUlLZXlzLkRBVEVdOiBEYXRlVmFsaWRhdG9yLFxuICBbVUlLZXlzLlBBU1NXT1JEXTogUGFzc3dvcmRWYWxpZGF0b3IsXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNYXBwaW5nIG9mIHZhbGlkYXRpb24gYXR0cmlidXRlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIHZhbGlkYXRvcnNcbiAqIEBzdW1tYXJ5IE1hcHMgSFRNTCB2YWxpZGF0aW9uIGF0dHJpYnV0ZXMgdG8gdGhlaXIgdmFsaWRhdG9yIGNsYXNzZXNcbiAqIFRoaXMgY29uc3RhbnQgbWFwcyBIVE1MIHZhbGlkYXRpb24gYXR0cmlidXRlcyBsaWtlIHJlcXVpcmVkLCBtaW4sIG1heCwgcGF0dGVybiwgZXRjLlxuICogdG8gdGhlaXIgY29ycmVzcG9uZGluZyB2YWxpZGF0b3IgY2xhc3NlcyBmcm9tIHRoZSBkZWNvcmF0b3ItdmFsaWRhdGlvbiBsaWJyYXJ5LlxuICpcbiAqIEB0eXBlZGVmIHtPYmplY3QuPHN0cmluZywgQ29uc3RydWN0b3I8VmFsaWRhdG9yPj59IFZhbGlkYXRhYmxlQnlBdHRyaWJ1dGVNYXBcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8UmVxdWlyZWRWYWxpZGF0b3I+fSByZXF1aXJlZCAtIFZhbGlkYXRvciBmb3IgcmVxdWlyZWQgZmllbGRzXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPE1pblZhbGlkYXRvcj59IG1pbiAtIFZhbGlkYXRvciBmb3IgbWluaW11bSB2YWx1ZVxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxNYXhWYWxpZGF0b3I+fSBtYXggLSBWYWxpZGF0b3IgZm9yIG1heGltdW0gdmFsdWVcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8U3RlcFZhbGlkYXRvcj59IHN0ZXAgLSBWYWxpZGF0b3IgZm9yIHN0ZXAgdmFsdWVcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8TWluTGVuZ3RoVmFsaWRhdG9yPn0gbWlubGVuZ3RoIC0gVmFsaWRhdG9yIGZvciBtaW5pbXVtIGxlbmd0aFxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxNYXhMZW5ndGhWYWxpZGF0b3I+fSBtYXhsZW5ndGggLSBWYWxpZGF0b3IgZm9yIG1heGltdW0gbGVuZ3RoXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPFBhdHRlcm5WYWxpZGF0b3I+fSBwYXR0ZXJuIC0gVmFsaWRhdG9yIGZvciByZWdleCBwYXR0ZXJuXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPEVxdWFsc1ZhbGlkYXRvcj59IGVxdWFscyAtIFZhbGlkYXRvciBmb3IgZXF1YWxpdHlcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8RGlmZlZhbGlkYXRvcj59IGRpZmYgLSBWYWxpZGF0b3IgZm9yIGRpZmZlcmVuY2VcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8TGVzc1RoYW5WYWxpZGF0b3I+fSBsZXNzdGhhbiAtIFZhbGlkYXRvciBmb3IgbGVzcyB0aGFuIGNvbXBhcmlzb25cbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8TGVzc1RoYW5PckVxdWFsVmFsaWRhdG9yPn0gbGVzc3RoYW5vcmVxdWFsIC0gVmFsaWRhdG9yIGZvciBsZXNzIHRoYW4gb3IgZXF1YWwgY29tcGFyaXNvblxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxHcmVhdGVyVGhhblZhbGlkYXRvcj59IGdyZWF0ZXJ0aGFuIC0gVmFsaWRhdG9yIGZvciBncmVhdGVyIHRoYW4gY29tcGFyaXNvblxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3I+fSBncmVhdGVydGhhbm9yZXF1YWwgLSBWYWxpZGF0b3IgZm9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBjb21wYXJpc29uXG4gKlxuICogQGNvbnN0IFZhbGlkYXRhYmxlQnlBdHRyaWJ1dGVcbiAqIEB0eXBlIHtWYWxpZGF0YWJsZUJ5QXR0cmlidXRlTWFwfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFZhbGlkYXRhYmxlQnlBdHRyaWJ1dGU6IFJlY29yZDxzdHJpbmcsIENvbnN0cnVjdG9yPFZhbGlkYXRvcj4+ID0ge1xuICBbVUlLZXlzLlJFUVVJUkVEXTogUmVxdWlyZWRWYWxpZGF0b3IsXG4gIFtVSUtleXMuTUlOXTogTWluVmFsaWRhdG9yLFxuICBbVUlLZXlzLk1BWF06IE1heFZhbGlkYXRvcixcbiAgW1VJS2V5cy5TVEVQXTogU3RlcFZhbGlkYXRvcixcbiAgW1VJS2V5cy5NSU5fTEVOR1RIXTogTWluTGVuZ3RoVmFsaWRhdG9yLFxuICBbVUlLZXlzLk1BWF9MRU5HVEhdOiBNYXhMZW5ndGhWYWxpZGF0b3IsXG4gIFtVSUtleXMuUEFUVEVSTl06IFBhdHRlcm5WYWxpZGF0b3IsXG4gIFtVSUtleXMuRVFVQUxTXTogRXF1YWxzVmFsaWRhdG9yLFxuICBbVUlLZXlzLkRJRkZdOiBEaWZmVmFsaWRhdG9yLFxuICBbVUlLZXlzLkxFU1NfVEhBTl06IExlc3NUaGFuVmFsaWRhdG9yLFxuICBbVUlLZXlzLkxFU1NfVEhBTl9PUl9FUVVBTF06IExlc3NUaGFuT3JFcXVhbFZhbGlkYXRvcixcbiAgW1VJS2V5cy5HUkVBVEVSX1RIQU5dOiBHcmVhdGVyVGhhblZhbGlkYXRvcixcbiAgW1VJS2V5cy5HUkVBVEVSX1RIQU5fT1JfRVFVQUxdOiBHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3IsXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdGFuZGFyZCBkYXRlIGZvcm1hdCBzdHJpbmcgZm9yIEhUTUw1IGRhdGUgaW5wdXRzXG4gKiBAc3VtbWFyeSBGb3JtYXQgc3RyaW5nIGZvciBIVE1MNSBkYXRlIGlucHV0cyAoeXl5eS1NTS1kZClcbiAqIFRoaXMgY29uc3RhbnQgZGVmaW5lcyB0aGUgc3RhbmRhcmQgZGF0ZSBmb3JtYXQgc3RyaW5nIHVzZWQgZm9yIEhUTUw1IGRhdGUgaW5wdXRzLlxuICpcbiAqIEBjb25zdCBIVE1MNURhdGVGb3JtYXRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgSFRNTDVEYXRlRm9ybWF0ID0gXCJ5eXl5LU1NLWRkXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbGxlY3Rpb24gb2YgSFRNTDUgaW5wdXQgdHlwZSB2YWx1ZXNcbiAqIEBzdW1tYXJ5IE1hcHMgaW5wdXQgdHlwZSBjb25zdGFudHMgdG8gdGhlaXIgSFRNTCBhdHRyaWJ1dGUgdmFsdWVzXG4gKiBUaGlzIGNvbnN0YW50IHByb3ZpZGVzIGEgbWFwcGluZyBvZiBpbnB1dCB0eXBlIGNvbnN0YW50cyB0byB0aGVpciBjb3JyZXNwb25kaW5nXG4gKiBIVE1MIGF0dHJpYnV0ZSB2YWx1ZXMgZm9yIHVzZSBpbiBmb3JtIGVsZW1lbnRzLlxuICpcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEhUTUw1SW5wdXRUeXBlc01hcFxuICogQHByb3BlcnR5IHtzdHJpbmd9IEJVVFRPTiAtIEJ1dHRvbiBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQ0hFQ0tCT1ggLSBDaGVja2JveCBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQ09MT1IgLSBDb2xvciBwaWNrZXIgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IERBVEUgLSBEYXRlIHBpY2tlciBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gREFURVRJTUVfTE9DQUwgLSBMb2NhbCBkYXRldGltZSBwaWNrZXIgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEVNQUlMIC0gRW1haWwgaW5wdXQgdHlwZSB3aXRoIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBGSUxFIC0gRmlsZSB1cGxvYWQgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEhJRERFTiAtIEhpZGRlbiBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSU1BR0UgLSBJbWFnZSBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTU9OVEggLSBNb250aCBwaWNrZXIgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE5VTUJFUiAtIE51bWVyaWMgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBU1NXT1JEIC0gUGFzc3dvcmQgaW5wdXQgdHlwZSB3aXRoIG1hc2tlZCB0ZXh0XG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkFESU8gLSBSYWRpbyBidXR0b24gaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJBTkdFIC0gUmFuZ2Ugc2xpZGVyIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRVNFVCAtIEZvcm0gcmVzZXQgYnV0dG9uIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTRUFSQ0ggLSBTZWFyY2ggaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFNVQk1JVCAtIEZvcm0gc3VibWl0IGJ1dHRvbiBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVEVMIC0gVGVsZXBob25lIG51bWJlciBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVEVYVCAtIEJhc2ljIHRleHQgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRJTUUgLSBUaW1lIHBpY2tlciBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVVJMIC0gVVJMIGlucHV0IHR5cGUgd2l0aCB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gV0VFSyAtIFdlZWsgcGlja2VyIGlucHV0IHR5cGVcbiAqXG4gKiBAY29uc3QgSFRNTDVJbnB1dFR5cGVzXG4gKiBAdHlwZSB7SFRNTDVJbnB1dFR5cGVzTWFwfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEhUTUw1SW5wdXRUeXBlcyA9IHtcbiAgQlVUVE9OOiBcImJ1dHRvblwiLFxuICBDSEVDS0JPWDogXCJjaGVja2JveFwiLFxuICBDT0xPUjogXCJjb2xvclwiLFxuICBEQVRFOiBVSUtleXMuREFURSxcbiAgREFURVRJTUVfTE9DQUw6IFwiZGF0ZXRpbWUtbG9jYWxcIixcbiAgRU1BSUw6IFVJS2V5cy5FTUFJTCxcbiAgRklMRTogXCJmaWxlXCIsXG4gIEhJRERFTjogXCJoaWRkZW5cIixcbiAgSU1BR0U6IFwiaW1hZ2VcIixcbiAgTU9OVEg6IFwibW9udGhcIixcbiAgTlVNQkVSOiBcIm51bWJlclwiLFxuICBQQVNTV09SRDogVUlLZXlzLlBBU1NXT1JELFxuICBSQURJTzogXCJyYWRpb1wiLFxuICBSQU5HRTogXCJyYW5nZVwiLFxuICBSRVNFVDogXCJyZXNldFwiLFxuICBTRUFSQ0g6IFwic2VhcmNoXCIsXG4gIFNVQk1JVDogXCJzdWJtaXRcIixcbiAgVEVMOiBcInRlbFwiLFxuICBURVhUOiBcInRleHRcIixcbiAgVEVYVEFSRUE6IFwidGV4dGFyZWFcIixcbiAgU0VMRUNUOiBcInNlbGVjdFwiLFxuICBUSU1FOiBcInRpbWVcIixcbiAgVVJMOiBVSUtleXMuVVJMLFxuICBXRUVLOiBcIndlZWtcIixcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIEhUTUw1IGlucHV0IHR5cGVzIHRoYXQgdXNlIGNoZWNrYm94ZXNcbiAqIEBzdW1tYXJ5IExpc3Qgb2YgaW5wdXQgdHlwZXMgdGhhdCByZXByZXNlbnQgY2hlY2thYmxlIGNvbnRyb2xzXG4gKiBUaGlzIGNvbnN0YW50IGRlZmluZXMgYW4gYXJyYXkgb2YgSFRNTDUgaW5wdXQgdHlwZXMgdGhhdCByZXByZXNlbnRcbiAqIGNoZWNrYWJsZSBjb250cm9scyAoY2hlY2tib3ggYW5kIHJhZGlvKS5cbiAqXG4gKiBAY29uc3QgSFRNTDVDaGVja1R5cGVzXG4gKiBAdHlwZSB7c3RyaW5nW119XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgSFRNTDVDaGVja1R5cGVzOiBzdHJpbmdbXSA9IFtcbiAgSFRNTDVJbnB1dFR5cGVzLkNIRUNLQk9YLFxuICBIVE1MNUlucHV0VHlwZXMuUkFESU8sXG5dO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFdmVudCBuYW1lIGNvbnN0YW50cy5cbiAqIEBzdW1tYXJ5IENvbnRhaW5zIGNvbnN0YW50cyBmb3Igc3RhbmRhcmRpemVkIGV2ZW50IG5hbWVzIHVzZWQgdGhyb3VnaG91dCB0aGUgYXBwbGljYXRpb24uXG4gKiBUaGVzZSBjb25zdGFudHMgZW5zdXJlIGNvbnNpc3RlbnQgZXZlbnQgbmFtaW5nIGFjcm9zcyBjb21wb25lbnRzIGFuZCBtYWtlIGl0IGVhc2llciB0b1xuICogdHJhY2sgYW5kIGhhbmRsZSBldmVudHMuIEVhY2ggY29uc3RhbnQgcmVwcmVzZW50cyBhIHNwZWNpZmljIGFwcGxpY2F0aW9uIGV2ZW50IHR5cGUuXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBDb21wb25lbnRFdmVudE5hbWVzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQmFja0J1dHRvbkNsaWNrRXZlbnQgLSBFdmVudCBmaXJlZCB3aGVuIGJhY2sgYnV0dG9uIG5hdmlnYXRpb24gZW5kc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFJlbmRlciAtIEV2ZW50IGFmdGVyIGNvbXBvbmVudCBpbml0aWFsaXplIGFjdGlvbiBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSZWZyZXNoIC0gRXZlbnQgZmlyZWQgd2hlbiBhIHJlZnJlc2ggYWN0aW9uIG9jY3Vyc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IENsaWNrIC0gRXZlbnQgZmlyZWQgd2hlbiBhIGNsaWNrIGFjdGlvbiBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDaGFuZ2UgLSBFdmVudCBmaXJlZCB3aGVuIGEgY2hhbmdlIGFjdGlvbiBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTdWJtaXQgLSBFdmVudCBmaXJlZCB3aGVuIGEgZm9ybSBzdWJtaXNzaW9uIG9jY3Vyc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFZhbGlkYXRpb25FcnJvciAtIEV2ZW50IGZpcmVkIHdoZW4gYSB2YWxpZGF0aW9uIGVycm9yIG9jY3Vyc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFRoZW1lQ2hhbmdlIC0gRXZlbnQgZmlyZWQgd2hlbiBhIHRoZW1lIGNoYW5nZSBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBGb3JtR3JvdXBMb2FkZWQgLSBFdmVudCBmaXJlZCB3aGVuIGEgcmVhY3R2ZSBmb3JtIGdyb3VwIGlzIGxvYWRlZFxuICogQGNvbnN0IENvbXBvbmVudEV2ZW50TmFtZXNcbiAqL1xuZXhwb3J0IGNvbnN0IENvbXBvbmVudEV2ZW50TmFtZXMgPSB7XG4gIFJlbmRlcjogXCJyZW5kZXJcIixcbiAgQmFja0J1dHRvbkNsaWNrRXZlbnQ6IFwiYmFja0J1dHRvbk5hdmlnYXRpb25FbmRFdmVudFwiLFxuICBSZWZyZXNoOiBcIlJlZnJlc2hFdmVudFwiLFxuICBDbGljazogXCJDbGlja0V2ZW50XCIsXG4gIENoYW5nZTogXCJDaGFuZ2VFdmVudFwiLFxuICBTdWJtaXQ6IFwiU3VibWl0RXZlbnRcIixcbiAgVmFsaWRhdGlvbkVycm9yOiBcInZhbGlkYXRpb25FcnJvckV2ZW50XCIsXG4gIFRoZW1lQ2hhbmdlOiBcInRoZW1lQ2hhbmdlRXZlbnRcIixcbiAgRm9ybUdyb3VwTG9hZGVkOiBcImZvcm1Hcm91cExvYWRlZEV2ZW50XCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBMaWZlY3ljbGUgaG9vayBsYWJlbHMgZm9yIHJlcG9zaXRvcnkgdHJhbnNhY3Rpb25zLlxuICogQHN1bW1hcnkgUHJvdmlkZXMgY2Fub25pY2FsIG5hbWVzIGZvciBDUlVEIGxpZmVjeWNsZSBjYWxsYmFja3Mgc28gZGVjb3JhdG9ycyBhbmRcbiAqIGNvbXBvbmVudHMgY2FuIHJlZ2lzdGVyIHdvcmsgYmVmb3JlIG9yIGFmdGVyIHJlcG9zaXRvcnkgb3BlcmF0aW9ucyBpbiBhIGNvbnNpc3RlbnQgd2F5LlxuICogRWFjaCBrZXkgbWFwcyB0byB0aGUgc3RyaW5nIHVzZWQgd2hlbiB3aXJpbmcgdHJhbnNhY3Rpb24gbWlkZGxld2FyZS5cbiAqIEBjb25zdCBUcmFuc2FjdGlvbkhvb2tzXG4gKi9cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbkhvb2tzID0ge1xuICBCZWZvcmVSZWFkOiBcImJlZm9yZVJlYWRcIixcbiAgQWZ0ZXJSZWFkOiBcImFmdGVyUmVhZFwiLFxuICBCZWZvcmVDcmVhdGU6IFwiYmVmb3JlQ3JlYXRlXCIsXG4gIEFmdGVyQ3JlYXRlOiBcImFmdGVyQ3JlYXRlXCIsXG4gIEJlZm9yZVVwZGF0ZTogXCJiZWZvcmVVcGRhdGVcIixcbiAgQWZ0ZXJVcGRhdGU6IFwiYWZ0ZXJVcGRhdGVcIixcbiAgQmVmb3JlRGVsZXRlOiBcImJlZm9yZURlbGV0ZVwiLFxuICBBZnRlckRlbGV0ZTogXCJhZnRlckRlbGV0ZVwiLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU3RhbmRhcmRpemVkIHNpemUgdG9rZW5zIGZvciBVSSBlbGVtZW50cy5cbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHNlbWFudGljIHNpemUga2V5d29yZHMgc3VwcG9ydGVkIGJ5IGxheW91dCBhbmQgZm9ybSBkZWNvcmF0b3JzLlxuICogVGhlc2UgdmFsdWVzIGZlZWQgcmVuZGVyaW5nIGVuZ2luZXMgc28gY29tcG9uZW50cyBjYW4gZXhwcmVzcyBzaXppbmcgaW4gYSB1bmlmb3JtIHZvY2FidWxhcnkuXG4gKiBAY29uc3QgRWxlbWVudFNpemVzXG4gKi9cbmV4cG9ydCBjb25zdCBFbGVtZW50U2l6ZXMgPSB7XG4gIHhzbWFsbDogXCJ4c21hbGxcIixcbiAgc21hbGw6IFwic21hbGxcIixcbiAgbWVkaXVtOiBcIm1lZGl1bVwiLFxuICBkZWZhdWx0OiBcImRlZmF1bHRcIixcbiAgbGFyZ2U6IFwibGFyZ2VcIixcbiAgeExhcmdlOiBcInhsYXJnZVwiLFxuICBcIjJ4TGFyZ2VcIjogXCIyeGxhcmdlXCIsXG4gIGF1dG86IFwiYXV0b1wiLFxuICBleHBhbmQ6IFwiZXhwYW5kXCIsXG4gIGJsb2NrOiBcImJsb2NrXCIsXG4gIGhhbGY6IFwiaGFsZlwiLFxuICBmdWxsOiBcImZ1bGxcIixcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFsaWdubWVudCBrZXl3b3JkcyBmb3IgZWxlbWVudCBwb3NpdGlvbmluZy5cbiAqIEBzdW1tYXJ5IFN1cHBsaWVzIGNhbm9uaWNhbCBwb3NpdGlvbiB2YWx1ZXMgKGhvcml6b250YWwgYW5kIHZlcnRpY2FsKSB0aGF0IGRlY29yYXRvcnMgY2FuXG4gKiB1c2Ugd2hlbiBhbGlnbmluZyBsYWJlbHMsIGNvbnRyb2xzLCBvciBoZWxwZXIgdGV4dCBhY3Jvc3MgY29tcG9uZW50cy5cbiAqIEBjb25zdCBFbGVtZW50UG9zaXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBFbGVtZW50UG9zaXRpb25zID0ge1xuICBsZWZ0OiBcImxlZnRcIixcbiAgY2VudGVyOiBcImNlbnRlclwiLFxuICByaWdodDogXCJyaWdodFwiLFxuICB0b3A6IFwidG9wXCIsXG4gIGJvdHRvbTogXCJib3R0b21cIixcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdyaWQgc3BhY2luZyBwcmVzZXRzIGZvciBsYXlvdXQgZGVjb3JhdG9ycy5cbiAqIEBzdW1tYXJ5IE1hcHMgaHVtYW4tcmVhZGFibGUgZ2FwIHNpemVzIHRvIHRoZSB0b2tlbnMgaW50ZXJwcmV0ZWQgYnkgdGhlIHJlbmRlcmluZyBlbmdpbmVcbiAqIHdoZW4gYnVpbGRpbmcgQ1NTIGdyaWQgbGF5b3V0cywgZW5hYmxpbmcgcHJlZGljdGFibGUgc3BhY2luZyBhY3Jvc3MgY29tcG9uZW50cy5cbiAqIEBjb25zdCBMYXlvdXRHcmlkR2Fwc1xuICovXG5leHBvcnQgY29uc3QgTGF5b3V0R3JpZEdhcHMgPSB7XG4gIHNtYWxsOiBcInNtYWxsXCIsXG4gIG1lZGl1bTogXCJtZWRpdW1cIixcbiAgbGFyZ2U6IFwibGFyZ2VcIixcbiAgY29sbGFwc2U6IFwiY29sbGFwc2VcIixcbiAgbm9uZTogXCJcIixcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENhbm9uaWNhbCBhY3Rpb24gcm9sZSBpZGVudGlmaWVycyBmb3IgVUkgY29udHJvbHMuXG4gKiBAc3VtbWFyeSBFbnVtZXJhdGVzIHRoZSBzZW1hbnRpYyByb2xlcyBhIGJ1dHRvbiBvciBhY3Rpb24gbWF5IHJlcHJlc2VudCBzbyBkZWNvcmF0b3JzIGFuZFxuICogcmVuZGVyZXJzIGNhbiBhdHRhY2ggY29uc2lzdGVudCBiZWhhdmlvcnMgYW5kIHN0eWxpbmcgKGluY2x1ZGluZyBDUlVEIHZlcmJzIHRpZWQgdG9cbiAqIGBPcGVyYXRpb25LZXlzYCkuXG4gKiBAY29uc3QgQWN0aW9uUm9sZXNcbiAqL1xuZXhwb3J0IGNvbnN0IEFjdGlvblJvbGVzID0ge1xuICBjYW5jZWw6IFwiY2FuY2VsXCIsXG4gIGNvbmZpcm06IFwiY29uZmlybVwiLFxuICBzdWJtaXQ6IFwic3VibWl0XCIsXG4gIGNsZWFyOiBcImNsZWFyXCIsXG4gIGJhY2s6IFwiYmFja1wiLFxuICBbT3BlcmF0aW9uS2V5cy5DUkVBVEVdOiBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgW09wZXJhdGlvbktleXMuUkVBRF06IE9wZXJhdGlvbktleXMuUkVBRCxcbiAgW09wZXJhdGlvbktleXMuVVBEQVRFXTogT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gIFtPcGVyYXRpb25LZXlzLkRFTEVURV06IE9wZXJhdGlvbktleXMuREVMRVRFLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWxsb3dlZCBjb2xvciBzY2hlbWUgdG9rZW5zIGZvciB3aW5kb3dlZCBzdXJmYWNlcy5cbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIHRoZSBzdXBwb3J0ZWQgdGhlbWUgaWRlbnRpZmllcnMgZXhwb3NlZCB0byBjb25zdW1pbmcgYXBwcyBzbyB0aGV5XG4gKiBjYW4gdGFyZ2V0IGxpZ2h0LCBkYXJrLCBvciB1bnNldCB3aW5kb3cgY29sb3Igc2NoZW1lcyBpbiBhIHByZWRpY3RhYmxlIHdheS5cbiAqIEBjb25zdCBXaW5kb3dDb2xvclNjaGVtZXNcbiAqL1xuZXhwb3J0IGNvbnN0IFdpbmRvd0NvbG9yU2NoZW1lcyA9IHtcbiAgbGlnaHQ6IFwibGlnaHRcIixcbiAgZGFyazogXCJkYXJrXCIsXG4gIHVuZGVmaW5lZDogXCJ1bmRlZmluZWRcIixcbn0gYXMgY29uc3Q7XG4iXX0=
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7O0dBT0c7QUFDSCx5RUFBeVg7QUFDelgsMkRBQXdEO0FBRXhELENBQUMsVUFBVSxrQkFBa0I7SUFDekIsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ3RDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUN4QyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDdEMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDLDBCQUFrQixJQUFJLENBQUMsMEJBQWtCLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q0c7QUFDVSxRQUFBLE1BQU0sR0FBRztJQUNsQixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLFNBQVM7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixXQUFXLEVBQUUsUUFBUTtJQUNyQixrQkFBa0IsRUFBRSxtQkFBbUI7SUFDdkMsV0FBVyxFQUFFLGFBQWE7SUFDMUIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsSUFBSSxFQUFFLE1BQU07SUFDWixRQUFRLEVBQUUsU0FBUztJQUNuQixNQUFNLEVBQUUsUUFBUTtJQUNoQixRQUFRLEVBQUUsVUFBVTtJQUNwQixRQUFRLEVBQUUsVUFBVTtJQUNwQixTQUFTLEVBQUUs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LDZCQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsNkJBQWEsQ0FBQyxJQUFJO0lBQ3hDLENBQUMsNkJBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSw2QkFBYSxDQUFDLE1BQU07SUFDNUMsQ0FBQyw2QkFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLDZCQUFhLENBQUMsTUFBTTtDQUMvQyxDQUFDO0FBQ0Y7Ozs7O0dBS0c7QUFDVSxRQUFBLGtCQUFrQixHQUFHO0lBQzlCLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE1BQU07SUFDWixTQUFTLEVBQUUsV0FBVztDQUN6QixDQUFDO0FBQ0YsaysyQkFBaysyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0YW50cyBhbmQgZW51bXMgZm9yIFVJIHJlbmRlcmluZyBhbmQgdmFsaWRhdGlvblxuICogQHN1bW1hcnkgRGVmaW5lcyBrZXlzLCBtYXBwaW5ncywgYW5kIEhUTUw1IGlucHV0IHR5cGVzIGZvciBVSSBjb21wb25lbnRzXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBjb25zdGFudHMgdXNlZCB0aHJvdWdob3V0IHRoZSBVSSBkZWNvcmF0b3JzIGxpYnJhcnkgZm9yXG4gKiByZW5kZXJpbmcsIHZhbGlkYXRpb24sIGFuZCBIVE1MIGVsZW1lbnQgZ2VuZXJhdGlvbi5cbiAqIEBtb2R1bGUgdWkvY29uc3RhbnRzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuaW1wb3J0IHsgRGF0ZVZhbGlkYXRvciwgRGlmZlZhbGlkYXRvciwgRW1haWxWYWxpZGF0b3IsIEVxdWFsc1ZhbGlkYXRvciwgR3JlYXRlclRoYW5PckVxdWFsVmFsaWRhdG9yLCBHcmVhdGVyVGhhblZhbGlkYXRvciwgTGVzc1RoYW5PckVxdWFsVmFsaWRhdG9yLCBMZXNzVGhhblZhbGlkYXRvciwgTWF4TGVuZ3RoVmFsaWRhdG9yLCBNYXhWYWxpZGF0b3IsIE1pbkxlbmd0aFZhbGlkYXRvciwgTWluVmFsaWRhdG9yLCBQYXNzd29yZFZhbGlkYXRvciwgUGF0dGVyblZhbGlkYXRvciwgUmVxdWlyZWRWYWxpZGF0b3IsIFN0ZXBWYWxpZGF0b3IsIFVSTFZhbGlkYXRvciwgVmFsaWRhdGlvbktleXMsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuZXhwb3J0IHZhciBVSU1lZGlhQnJlYWtQb2ludHM7XG4oZnVuY3Rpb24gKFVJTWVkaWFCcmVha1BvaW50cykge1xuICAgIFVJTWVkaWFCcmVha1BvaW50c1tcIlNNQUxMXCJdID0gXCJzbWFsbFwiO1xuICAgIFVJTWVkaWFCcmVha1BvaW50c1tcIk1FRElVTVwiXSA9IFwibWVkaXVtXCI7XG4gICAgVUlNZWRpYUJyZWFrUG9pbnRzW1wiTEFSR0VcIl0gPSBcImxhcmdlXCI7XG4gICAgVUlNZWRpYUJyZWFrUG9pbnRzW1wiWExBUkdFXCJdID0gXCJ4bGFyZ2VcIjtcbn0pKFVJTWVkaWFCcmVha1BvaW50cyB8fCAoVUlNZWRpYUJyZWFrUG9pbnRzID0ge30pKTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEtleSBjb25zdGFudHMgdXNlZCBmb3IgVUkgbWV0YWRhdGEgYW5kIHJlbmRlcmluZ1xuICogQHN1bW1hcnkgQ29sbGVjdGlvbiBvZiBzdHJpbmcgY29uc3RhbnRzIHVzZWQgYXMga2V5cyBmb3IgVUktcmVsYXRlZCBtZXRhZGF0YVxuICogVGhlc2Uga2V5cyBhcmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5IHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBtZXRhZGF0YSByZWxhdGVkIHRvXG4gKiBVSSBtb2RlbHMsIGVsZW1lbnRzLCBwcm9wZXJ0aWVzLCBhbmQgdmFsaWRhdGlvbiBydWxlcy5cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBVSUtleXNUeXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVGTEVDVCAtIEJhc2UgcmVmbGVjdGlvbiBrZXkgZm9yIFVJIG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVUlNT0RFTCAtIEtleSBmb3IgVUkgbW9kZWwgbWV0YWRhdGFcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRU5ERVJFRF9CWSAtIEtleSBmb3Igc3BlY2lmeWluZyByZW5kZXJpbmcgZW5naW5lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRUxFTUVOVCAtIEtleSBmb3IgZWxlbWVudCBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBST1AgLSBLZXkgZm9yIHByb3BlcnR5IG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTkFNRSAtIEtleSBmb3IgbmFtZSBhdHRyaWJ1dGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBOQU1FX1BSRUZJWCAtIFByZWZpeCBmb3IgaW5wdXQgbmFtZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDVVNUT01fUFJPUFMgLSBLZXkgZm9yIGN1c3RvbSB2YWxpZGF0aW9uIHByb3BlcnRpZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBVSUxJU1RNT0RFTCAtIEtleSBmb3IgbGlzdCBpdGVtIG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVUlMSVNUUFJPUCAtIEtleSBmb3IgbGlzdCBwcm9wZXJ0eSBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRZUEUgLSBLZXkgZm9yIHR5cGUgbWV0YWRhdGFcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTVUJfVFlQRSAtIEtleSBmb3Igc3VidHlwZSBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEhJRERFTiAtIEtleSBmb3IgaGlkZGVuIGF0dHJpYnV0ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEZPUk1BVCAtIEtleSBmb3IgZm9ybWF0IG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVBRF9PTkxZIC0gS2V5IGZvciByZWFkb25seSBhdHRyaWJ1dGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRVFVSVJFRCAtIEtleSBmb3IgcmVxdWlyZWQgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1JTiAtIEtleSBmb3IgbWluaW11bSB2YWx1ZSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUlOX0xFTkdUSCAtIEtleSBmb3IgbWluaW11bSBsZW5ndGggdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1BWCAtIEtleSBmb3IgbWF4aW11bSB2YWx1ZSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUFYX0xFTkdUSCAtIEtleSBmb3IgbWF4aW11bSBsZW5ndGggdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBVFRFUk4gLSBLZXkgZm9yIHBhdHRlcm4gdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFVSTCAtIEtleSBmb3IgVVJMIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTVEVQIC0gS2V5IGZvciBzdGVwIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBEQVRFIC0gS2V5IGZvciBkYXRlIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFTUFJTCAtIEtleSBmb3IgZW1haWwgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBU1NXT1JEIC0gS2V5IGZvciBwYXNzd29yZCB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRVFVQUxTIC0gS2V5IGZvciBlcXVhbGl0eSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRElGRiAtIEtleSBmb3IgZGlmZmVyZW5jZSB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTEVTU19USEFOIC0gS2V5IGZvciBsZXNzIHRoYW4gdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IExFU1NfVEhBTl9PUl9FUVVBTCAtIEtleSBmb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBHUkVBVEVSX1RIQU4gLSBLZXkgZm9yIGdyZWF0ZXIgdGhhbiB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gR1JFQVRFUl9USEFOX09SX0VRVUFMIC0gS2V5IGZvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdmFsaWRhdGlvblxuICpcbiAqIEBjb25zdCBVSUtleXNcbiAqIEB0eXBlIHtVSUtleXNUeXBlfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFVJS2V5cyA9IHtcbiAgICBSRUZMRUNUOiBgdWlgLFxuICAgIFVJTU9ERUw6IFwidWltb2RlbFwiLFxuICAgIFJFTkRFUkVEX0JZOiBcInJlbmRlcmVkLWJ5XCIsXG4gICAgRUxFTUVOVDogXCJ1aWVsZW1lbnRcIixcbiAgICBQUk9QOiBcInVpcHJvcFwiLFxuICAgIENISUxEOiBcInVpY2hpbGRcIixcbiAgICBOQU1FOiBcIm5hbWVcIixcbiAgICBOQU1FX1BSRUZJWDogXCJpbnB1dC1cIixcbiAgICBWQUxJREFUSU9OX01FU1NBR0U6IFwidmFsaWRhdGlvbk1lc3NhZ2VcIixcbiAgICBVSUxJU1RNT0RFTDogXCJ1aWxpc3Rtb2RlbFwiLFxuICAgIFVJTElTVFBST1A6IFwidWlsaXN0cHJvcFwiLFxuICAgIFVJTEFZT1VUOiBcInVpbGF5b3V0XCIsXG4gICAgVUlMQVlPVVRQUk9QOiBcInVpbGF5b3V0cHJvcFwiLFxuICAgIEhBTkRMRVJTOiBcImhhbmRsZXJzXCIsXG4gICAgVFlQRTogXCJ0eXBlXCIsXG4gICAgU1VCX1RZUEU6IFwic3ViVHlwZVwiLFxuICAgIEhJRERFTjogXCJoaWRkZW5cIixcbiAgICBISURFX0ZPUjogXCJoaWRlLWZvclwiLFxuICAgIFNIT1dfRk9SOiBcInNob3ctZm9yXCIsXG4gICAgUkVOREVSX0lGOiBcInJlbmRlci1pZlwiLFxuICAgIEZPUk1BVDogXCJmb3JtYXRcIixcbiAgICBPUkRFUjogXCJvcmRlclwiLFxuICAgIFBBR0U6IFwicGFnZVwiLFxuICAgIEVWRU5UUzogXCJldmVudHNcIixcbiAgICBGSVJTVDogXCJmaXJzdFwiLFxuICAgIExBU1Q6IFwibGFzdFwiLFxuICAgIFJFQURfT05MWTogXCJyZWFkb25seVwiLFxuICAgIFNFUVVFTkNFOiBcInNlcXVlbmNlXCIsXG4gICAgUkVRVUlSRUQ6IFZhbGlkYXRpb25LZXlzLlJFUVVJUkVELFxuICAgIE1JTjogVmFsaWRhdGlvbktleXMuTUlOLFxuICAgIE1JTl9MRU5HVEg6IFZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEgsXG4gICAgTUFYOiBWYWxpZGF0aW9uS2V5cy5NQVgsXG4gICAgTUFYX0xFTkdUSDogVmFsaWRhdGlvbktleXMuTUFYX0xFTkdUSCxcbiAgICBQQVRURVJOOiBWYWxpZGF0aW9uS2V5cy5QQVRURVJOLFxuICAgIFVSTDogVmFsaWRhdGlvbktleXMuVVJMLFxuICAgIFNURVA6IFZhbGlkYXRpb25LZXlzLlNURVAsXG4gICAgREFURTogVmFsaWRhdGlvbktleXMuREFURSxcbiAgICBFTUFJTDogVmFsaWRhdGlvbktleXMuRU1BSUwsXG4gICAgUEFTU1dPUkQ6IFZhbGlkYXRpb25LZXlzLlBBU1NXT1JELFxuICAgIEVRVUFMUzogVmFsaWRhdGlvbktleXMuRVFVQUxTLFxuICAgIERJRkY6IFZhbGlkYXRpb25LZXlzLkRJRkYsXG4gICAgTEVTU19USEFOOiBWYWxpZGF0aW9uS2V5cy5MRVNTX1RIQU4sXG4gICAgTEVTU19USEFOX09SX0VRVUFMOiBWYWxpZGF0aW9uS2V5cy5MRVNTX1RIQU5fT1JfRVFVQUwsXG4gICAgR1JFQVRFUl9USEFOOiBWYWxpZGF0aW9uS2V5cy5HUkVBVEVSX1RIQU4sXG4gICAgR1JFQVRFUl9USEFOX09SX0VRVUFMOiBWYWxpZGF0aW9uS2V5cy5HUkVBVEVSX1RIQU5fT1JfRVFVQUwsXG59O1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWFwcGluZyBvZiBpbnB1dCB0eXBlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIHZhbGlkYXRvcnNcbiAqIEBzdW1tYXJ5IE1hcHMgc3BlY2lhbCBpbnB1dCB0eXBlcyB0byB0aGVpciB2YWxpZGF0b3IgY2xhc3Nlc1xuICogVGhpcyBjb25zdGFudCBtYXBzIGlucHV0IHR5cGVzIGxpa2UgZW1haWwsIFVSTCwgZGF0ZSwgYW5kIHBhc3N3b3JkIHRvIHRoZWlyXG4gKiBjb3JyZXNwb25kaW5nIHZhbGlkYXRvciBjbGFzc2VzIGZyb20gdGhlIGRlY29yYXRvci12YWxpZGF0aW9uIGxpYnJhcnkuXG4gKlxuICogQHR5cGVkZWYge09iamVjdC48c3RyaW5nLCBDb25zdHJ1Y3RvcjxWYWxpZGF0b3I+Pn0gVmFsaWRhdGFibGVCeVR5cGVNYXBcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8RW1haWxWYWxpZGF0b3I+fSBlbWFpbCAtIFZhbGlkYXRvciBmb3IgZW1haWwgaW5wdXRzXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPFVSTFZhbGlkYXRvcj59IHVybCAtIFZhbGlkYXRvciBmb3IgVVJMIGlucHV0c1xuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxEYXRlVmFsaWRhdG9yPn0gZGF0ZSAtIFZhbGlkYXRvciBmb3IgZGF0ZSBpbnB1dHNcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8UGFzc3dvcmRWYWxpZGF0b3I+fSBwYXNzd29yZCAtIFZhbGlkYXRvciBmb3IgcGFzc3dvcmQgaW5wdXRzXG4gKlxuICogQGNvbnN0IFZhbGlkYXRhYmxlQnlUeXBlXG4gKiBAdHlwZSB7VmFsaWRhdGFibGVCeVR5cGVNYXB9XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgVmFsaWRhdGFibGVCeVR5cGUgPSB7XG4gICAgW1VJS2V5cy5FTUFJTF06IEVtYWlsVmFsaWRhdG9yLFxuICAgIFtVSUtleXMuVVJMXTogVVJMVmFsaWRhdG9yLFxuICAgIFtVSUtleXMuREFURV06IERhdGVWYWxpZGF0b3IsXG4gICAgW1VJS2V5cy5QQVNTV09SRF06IFBhc3N3b3JkVmFsaWRhdG9yLFxufTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIE1hcHBpbmcgb2YgdmFsaWRhdGlvbiBhdHRyaWJ1dGVzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgdmFsaWRhdG9yc1xuICogQHN1bW1hcnkgTWFwcyBIVE1MIHZhbGlkYXRpb24gYXR0cmlidXRlcyB0byB0aGVpciB2YWxpZGF0b3IgY2xhc3Nlc1xuICogVGhpcyBjb25zdGFudCBtYXBzIEhUTUwgdmFsaWRhdGlvbiBhdHRyaWJ1dGVzIGxpa2UgcmVxdWlyZWQsIG1pbiwgbWF4LCBwYXR0ZXJuLCBldGMuXG4gKiB0byB0aGVpciBjb3JyZXNwb25kaW5nIHZhbGlkYXRvciBjbGFzc2VzIGZyb20gdGhlIGRlY29yYXRvci12YWxpZGF0aW9uIGxpYnJhcnkuXG4gKlxuICogQHR5cGVkZWYge09iamVjdC48c3RyaW5nLCBDb25zdHJ1Y3RvcjxWYWxpZGF0b3I+Pn0gVmFsaWRhdGFibGVCeUF0dHJpYnV0ZU1hcFxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxSZXF1aXJlZFZhbGlkYXRvcj59IHJlcXVpcmVkIC0gVmFsaWRhdG9yIGZvciByZXF1aXJlZCBmaWVsZHNcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8TWluVmFsaWRhdG9yPn0gbWluIC0gVmFsaWRhdG9yIGZvciBtaW5pbXVtIHZhbHVlXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPE1heFZhbGlkYXRvcj59IG1heCAtIFZhbGlkYXRvciBmb3IgbWF4aW11bSB2YWx1ZVxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxTdGVwVmFsaWRhdG9yPn0gc3RlcCAtIFZhbGlkYXRvciBmb3Igc3RlcCB2YWx1ZVxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxNaW5MZW5ndGhWYWxpZGF0b3I+fSBtaW5sZW5ndGggLSBWYWxpZGF0b3IgZm9yIG1pbmltdW0gbGVuZ3RoXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPE1heExlbmd0aFZhbGlkYXRvcj59IG1heGxlbmd0aCAtIFZhbGlkYXRvciBmb3IgbWF4aW11bSBsZW5ndGhcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8UGF0dGVyblZhbGlkYXRvcj59IHBhdHRlcm4gLSBWYWxpZGF0b3IgZm9yIHJlZ2V4IHBhdHRlcm5cbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8RXF1YWxzVmFsaWRhdG9yPn0gZXF1YWxzIC0gVmFsaWRhdG9yIGZvciBlcXVhbGl0eVxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxEaWZmVmFsaWRhdG9yPn0gZGlmZiAtIFZhbGlkYXRvciBmb3IgZGlmZmVyZW5jZVxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxMZXNzVGhhblZhbGlkYXRvcj59IGxlc3N0aGFuIC0gVmFsaWRhdG9yIGZvciBsZXNzIHRoYW4gY29tcGFyaXNvblxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxMZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3I+fSBsZXNzdGhhbm9yZXF1YWwgLSBWYWxpZGF0b3IgZm9yIGxlc3MgdGhhbiBvciBlcXVhbCBjb21wYXJpc29uXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPEdyZWF0ZXJUaGFuVmFsaWRhdG9yPn0gZ3JlYXRlcnRoYW4gLSBWYWxpZGF0b3IgZm9yIGdyZWF0ZXIgdGhhbiBjb21wYXJpc29uXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPEdyZWF0ZXJUaGFuT3JFcXVhbFZhbGlkYXRvcj59IGdyZWF0ZXJ0aGFub3JlcXVhbCAtIFZhbGlkYXRvciBmb3IgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGNvbXBhcmlzb25cbiAqXG4gKiBAY29uc3QgVmFsaWRhdGFibGVCeUF0dHJpYnV0ZVxuICogQHR5cGUge1ZhbGlkYXRhYmxlQnlBdHRyaWJ1dGVNYXB9XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgVmFsaWRhdGFibGVCeUF0dHJpYnV0ZSA9IHtcbiAgICBbVUlLZXlzLlJFUVVJUkVEXTogUmVxdWlyZWRWYWxpZGF0b3IsXG4gICAgW1VJS2V5cy5NSU5dOiBNaW5WYWxpZGF0b3IsXG4gICAgW1VJS2V5cy5NQVhdOiBNYXhWYWxpZGF0b3IsXG4gICAgW1VJS2V5cy5TVEVQXTogU3RlcFZhbGlkYXRvcixcbiAgICBbVUlLZXlzLk1JTl9MRU5HVEhdOiBNaW5MZW5ndGhWYWxpZGF0b3IsXG4gICAgW1VJS2V5cy5NQVhfTEVOR1RIXTogTWF4TGVuZ3RoVmFsaWRhdG9yLFxuICAgIFtVSUtleXMuUEFUVEVSTl06IFBhdHRlcm5WYWxpZGF0b3IsXG4gICAgW1VJS2V5cy5FUVVBTFNdOiBFcXVhbHNWYWxpZGF0b3IsXG4gICAgW1VJS2V5cy5ESUZGXTogRGlmZlZhbGlkYXRvcixcbiAgICBbVUlLZXlzLkxFU1NfVEhBTl06IExlc3NUaGFuVmFsaWRhdG9yLFxuICAgIFtVSUtleXMuTEVTU19USEFOX09SX0VRVUFMXTogTGVzc1RoYW5PckVxdWFsVmFsaWRhdG9yLFxuICAgIFtVSUtleXMuR1JFQVRFUl9USEFOXTogR3JlYXRlclRoYW5WYWxpZGF0b3IsXG4gICAgW1VJS2V5cy5HUkVBVEVSX1RIQU5fT1JfRVFVQUxdOiBHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3IsXG59O1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gU3RhbmRhcmQgZGF0ZSBmb3JtYXQgc3RyaW5nIGZvciBIVE1MNSBkYXRlIGlucHV0c1xuICogQHN1bW1hcnkgRm9ybWF0IHN0cmluZyBmb3IgSFRNTDUgZGF0ZSBpbnB1dHMgKHl5eXktTU0tZGQpXG4gKiBUaGlzIGNvbnN0YW50IGRlZmluZXMgdGhlIHN0YW5kYXJkIGRhdGUgZm9ybWF0IHN0cmluZyB1c2VkIGZvciBIVE1MNSBkYXRlIGlucHV0cy5cbiAqXG4gKiBAY29uc3QgSFRNTDVEYXRlRm9ybWF0XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEhUTUw1RGF0ZUZvcm1hdCA9IFwieXl5eS1NTS1kZFwiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29sbGVjdGlvbiBvZiBIVE1MNSBpbnB1dCB0eXBlIHZhbHVlc1xuICogQHN1bW1hcnkgTWFwcyBpbnB1dCB0eXBlIGNvbnN0YW50cyB0byB0aGVpciBIVE1MIGF0dHJpYnV0ZSB2YWx1ZXNcbiAqIFRoaXMgY29uc3RhbnQgcHJvdmlkZXMgYSBtYXBwaW5nIG9mIGlucHV0IHR5cGUgY29uc3RhbnRzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmdcbiAqIEhUTUwgYXR0cmlidXRlIHZhbHVlcyBmb3IgdXNlIGluIGZvcm0gZWxlbWVudHMuXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gSFRNTDVJbnB1dFR5cGVzTWFwXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQlVUVE9OIC0gQnV0dG9uIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDSEVDS0JPWCAtIENoZWNrYm94IGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDT0xPUiAtIENvbG9yIHBpY2tlciBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gREFURSAtIERhdGUgcGlja2VyIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBEQVRFVElNRV9MT0NBTCAtIExvY2FsIGRhdGV0aW1lIHBpY2tlciBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRU1BSUwgLSBFbWFpbCBpbnB1dCB0eXBlIHdpdGggdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IEZJTEUgLSBGaWxlIHVwbG9hZCBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSElEREVOIC0gSGlkZGVuIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBJTUFHRSAtIEltYWdlIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNT05USCAtIE1vbnRoIHBpY2tlciBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTlVNQkVSIC0gTnVtZXJpYyBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUEFTU1dPUkQgLSBQYXNzd29yZCBpbnB1dCB0eXBlIHdpdGggbWFza2VkIHRleHRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSQURJTyAtIFJhZGlvIGJ1dHRvbiBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkFOR0UgLSBSYW5nZSBzbGlkZXIgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFU0VUIC0gRm9ybSByZXNldCBidXR0b24gaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFNFQVJDSCAtIFNlYXJjaCBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gU1VCTUlUIC0gRm9ybSBzdWJtaXQgYnV0dG9uIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBURUwgLSBUZWxlcGhvbmUgbnVtYmVyIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBURVhUIC0gQmFzaWMgdGV4dCBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVElNRSAtIFRpbWUgcGlja2VyIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBVUkwgLSBVUkwgaW5wdXQgdHlwZSB3aXRoIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBXRUVLIC0gV2VlayBwaWNrZXIgaW5wdXQgdHlwZVxuICpcbiAqIEBjb25zdCBIVE1MNUlucHV0VHlwZXNcbiAqIEB0eXBlIHtIVE1MNUlucHV0VHlwZXNNYXB9XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgSFRNTDVJbnB1dFR5cGVzID0ge1xuICAgIEJVVFRPTjogXCJidXR0b25cIixcbiAgICBDSEVDS0JPWDogXCJjaGVja2JveFwiLFxuICAgIENPTE9SOiBcImNvbG9yXCIsXG4gICAgREFURTogVUlLZXlzLkRBVEUsXG4gICAgREFURVRJTUVfTE9DQUw6IFwiZGF0ZXRpbWUtbG9jYWxcIixcbiAgICBFTUFJTDogVUlLZXlzLkVNQUlMLFxuICAgIEZJTEU6IFwiZmlsZVwiLFxuICAgIEhJRERFTjogXCJoaWRkZW5cIixcbiAgICBJTUFHRTogXCJpbWFnZVwiLFxuICAgIE1PTlRIOiBcIm1vbnRoXCIsXG4gICAgTlVNQkVSOiBcIm51bWJlclwiLFxuICAgIFBBU1NXT1JEOiBVSUtleXMuUEFTU1dPUkQsXG4gICAgUkFESU86IFwicmFkaW9cIixcbiAgICBSQU5HRTogXCJyYW5nZVwiLFxuICAgIFJFU0VUOiBcInJlc2V0XCIsXG4gICAgU0VBUkNIOiBcInNlYXJjaFwiLFxuICAgIFNVQk1JVDogXCJzdWJtaXRcIixcbiAgICBURUw6IFwidGVsXCIsXG4gICAgVEVYVDogXCJ0ZXh0XCIsXG4gICAgVEVYVEFSRUE6IFwidGV4dGFyZWFcIixcbiAgICBTRUxFQ1Q6IFwic2VsZWN0XCIsXG4gICAgVElNRTogXCJ0aW1lXCIsXG4gICAgVVJMOiBVSUtleXMuVVJMLFxuICAgIFdFRUs6IFwid2Vla1wiLFxufTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIEhUTUw1IGlucHV0IHR5cGVzIHRoYXQgdXNlIGNoZWNrYm94ZXNcbiAqIEBzdW1tYXJ5IExpc3Qgb2YgaW5wdXQgdHlwZXMgdGhhdCByZXByZXNlbnQgY2hlY2thYmxlIGNvbnRyb2xzXG4gKiBUaGlzIGNvbnN0YW50IGRlZmluZXMgYW4gYXJyYXkgb2YgSFRNTDUgaW5wdXQgdHlwZXMgdGhhdCByZXByZXNlbnRcbiAqIGNoZWNrYWJsZSBjb250cm9scyAoY2hlY2tib3ggYW5kIHJhZGlvKS5cbiAqXG4gKiBAY29uc3QgSFRNTDVDaGVja1R5cGVzXG4gKiBAdHlwZSB7c3RyaW5nW119XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgSFRNTDVDaGVja1R5cGVzID0gW1xuICAgIEhUTUw1SW5wdXRUeXBlcy5DSEVDS0JPWCxcbiAgICBIVE1MNUlucHV0VHlwZXMuUkFESU8sXG5dO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXZlbnQgbmFtZSBjb25zdGFudHMuXG4gKiBAc3VtbWFyeSBDb250YWlucyBjb25zdGFudHMgZm9yIHN0YW5kYXJkaXplZCBldmVudCBuYW1lcyB1c2VkIHRocm91Z2hvdXQgdGhlIGFwcGxpY2F0aW9uLlxuICogVGhlc2UgY29uc3RhbnRzIGVuc3VyZSBjb25zaXN0ZW50IGV2ZW50IG5hbWluZyBhY3Jvc3MgY29tcG9uZW50cyBhbmQgbWFrZSBpdCBlYXNpZXIgdG9cbiAqIHRyYWNrIGFuZCBoYW5kbGUgZXZlbnRzLiBFYWNoIGNvbnN0YW50IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBhcHBsaWNhdGlvbiBldmVudCB0eXBlLlxuICogQHR5cGVkZWYge09iamVjdH0gQ29tcG9uZW50RXZlbnROYW1lc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IEJhY2tCdXR0b25DbGlja0V2ZW50IC0gRXZlbnQgZmlyZWQgd2hlbiBiYWNrIGJ1dHRvbiBuYXZpZ2F0aW9uIGVuZHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSZW5kZXIgLSBFdmVudCBhZnRlciBjb21wb25lbnQgaW5pdGlhbGl6ZSBhY3Rpb24gb2NjdXJzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUmVmcmVzaCAtIEV2ZW50IGZpcmVkIHdoZW4gYSByZWZyZXNoIGFjdGlvbiBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDbGljayAtIEV2ZW50IGZpcmVkIHdoZW4gYSBjbGljayBhY3Rpb24gb2NjdXJzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQ2hhbmdlIC0gRXZlbnQgZmlyZWQgd2hlbiBhIGNoYW5nZSBhY3Rpb24gb2NjdXJzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gU3VibWl0IC0gRXZlbnQgZmlyZWQgd2hlbiBhIGZvcm0gc3VibWlzc2lvbiBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBWYWxpZGF0aW9uRXJyb3IgLSBFdmVudCBmaXJlZCB3aGVuIGEgdmFsaWRhdGlvbiBlcnJvciBvY2N1cnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBUaGVtZUNoYW5nZSAtIEV2ZW50IGZpcmVkIHdoZW4gYSB0aGVtZSBjaGFuZ2Ugb2NjdXJzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRm9ybUdyb3VwTG9hZGVkIC0gRXZlbnQgZmlyZWQgd2hlbiBhIHJlYWN0dmUgZm9ybSBncm91cCBpcyBsb2FkZWRcbiAqIEBjb25zdCBDb21wb25lbnRFdmVudE5hbWVzXG4gKi9cbmV4cG9ydCBjb25zdCBDb21wb25lbnRFdmVudE5hbWVzID0ge1xuICAgIFJlbmRlcjogXCJyZW5kZXJcIixcbiAgICBCYWNrQnV0dG9uQ2xpY2tFdmVudDogXCJiYWNrQnV0dG9uTmF2aWdhdGlvbkVuZEV2ZW50XCIsXG4gICAgUmVmcmVzaDogXCJSZWZyZXNoRXZlbnRcIixcbiAgICBDbGljazogXCJDbGlja0V2ZW50XCIsXG4gICAgQ2hhbmdlOiBcIkNoYW5nZUV2ZW50XCIsXG4gICAgU3VibWl0OiBcIlN1Ym1pdEV2ZW50XCIsXG4gICAgVmFsaWRhdGlvbkVycm9yOiBcInZhbGlkYXRpb25FcnJvckV2ZW50XCIsXG4gICAgVGhlbWVDaGFuZ2U6IFwidGhlbWVDaGFuZ2VFdmVudFwiLFxuICAgIEZvcm1Hcm91cExvYWRlZDogXCJmb3JtR3JvdXBMb2FkZWRFdmVudFwiLFxufTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIExpZmVjeWNsZSBob29rIGxhYmVscyBmb3IgcmVwb3NpdG9yeSB0cmFuc2FjdGlvbnMuXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBjYW5vbmljYWwgbmFtZXMgZm9yIENSVUQgbGlmZWN5Y2xlIGNhbGxiYWNrcyBzbyBkZWNvcmF0b3JzIGFuZFxuICogY29tcG9uZW50cyBjYW4gcmVnaXN0ZXIgd29yayBiZWZvcmUgb3IgYWZ0ZXIgcmVwb3NpdG9yeSBvcGVyYXRpb25zIGluIGEgY29uc2lzdGVudCB3YXkuXG4gKiBFYWNoIGtleSBtYXBzIHRvIHRoZSBzdHJpbmcgdXNlZCB3aGVuIHdpcmluZyB0cmFuc2FjdGlvbiBtaWRkbGV3YXJlLlxuICogQGNvbnN0IFRyYW5zYWN0aW9uSG9va3NcbiAqL1xuZXhwb3J0IGNvbnN0IFRyYW5zYWN0aW9uSG9va3MgPSB7XG4gICAgQmVmb3JlUmVhZDogXCJiZWZvcmVSZWFkXCIsXG4gICAgQWZ0ZXJSZWFkOiBcImFmdGVyUmVhZFwiLFxuICAgIEJlZm9yZUNyZWF0ZTogXCJiZWZvcmVDcmVhdGVcIixcbiAgICBBZnRlckNyZWF0ZTogXCJhZnRlckNyZWF0ZVwiLFxuICAgIEJlZm9yZVVwZGF0ZTogXCJiZWZvcmVVcGRhdGVcIixcbiAgICBBZnRlclVwZGF0ZTogXCJhZnRlclVwZGF0ZVwiLFxuICAgIEJlZm9yZURlbGV0ZTogXCJiZWZvcmVEZWxldGVcIixcbiAgICBBZnRlckRlbGV0ZTogXCJhZnRlckRlbGV0ZVwiLFxufTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0YW5kYXJkaXplZCBzaXplIHRva2VucyBmb3IgVUkgZWxlbWVudHMuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzZW1hbnRpYyBzaXplIGtleXdvcmRzIHN1cHBvcnRlZCBieSBsYXlvdXQgYW5kIGZvcm0gZGVjb3JhdG9ycy5cbiAqIFRoZXNlIHZhbHVlcyBmZWVkIHJlbmRlcmluZyBlbmdpbmVzIHNvIGNvbXBvbmVudHMgY2FuIGV4cHJlc3Mgc2l6aW5nIGluIGEgdW5pZm9ybSB2b2NhYnVsYXJ5LlxuICogQGNvbnN0IEVsZW1lbnRTaXplc1xuICovXG5leHBvcnQgY29uc3QgRWxlbWVudFNpemVzID0ge1xuICAgIHhzbWFsbDogXCJ4c21hbGxcIixcbiAgICBzbWFsbDogXCJzbWFsbFwiLFxuICAgIG1lZGl1bTogXCJtZWRpdW1cIixcbiAgICBkZWZhdWx0OiBcImRlZmF1bHRcIixcbiAgICBsYXJnZTogXCJsYXJnZVwiLFxuICAgIHhMYXJnZTogXCJ4bGFyZ2VcIixcbiAgICBcIjJ4TGFyZ2VcIjogXCIyeGxhcmdlXCIsXG4gICAgYXV0bzogXCJhdXRvXCIsXG4gICAgZXhwYW5kOiBcImV4cGFuZFwiLFxuICAgIGJsb2NrOiBcImJsb2NrXCIsXG4gICAgaGFsZjogXCJoYWxmXCIsXG4gICAgZnVsbDogXCJmdWxsXCIsXG59O1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWxpZ25tZW50IGtleXdvcmRzIGZvciBlbGVtZW50IHBvc2l0aW9uaW5nLlxuICogQHN1bW1hcnkgU3VwcGxpZXMgY2Fub25pY2FsIHBvc2l0aW9uIHZhbHVlcyAoaG9yaXpvbnRhbCBhbmQgdmVydGljYWwpIHRoYXQgZGVjb3JhdG9ycyBjYW5cbiAqIHVzZSB3aGVuIGFsaWduaW5nIGxhYmVscywgY29udHJvbHMsIG9yIGhlbHBlciB0ZXh0IGFjcm9zcyBjb21wb25lbnRzLlxuICogQGNvbnN0IEVsZW1lbnRQb3NpdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IEVsZW1lbnRQb3NpdGlvbnMgPSB7XG4gICAgbGVmdDogXCJsZWZ0XCIsXG4gICAgY2VudGVyOiBcImNlbnRlclwiLFxuICAgIHJpZ2h0OiBcInJpZ2h0XCIsXG4gICAgdG9wOiBcInRvcFwiLFxuICAgIGJvdHRvbTogXCJib3R0b21cIixcbn07XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHcmlkIHNwYWNpbmcgcHJlc2V0cyBmb3IgbGF5b3V0IGRlY29yYXRvcnMuXG4gKiBAc3VtbWFyeSBNYXBzIGh1bWFuLXJlYWRhYmxlIGdhcCBzaXplcyB0byB0aGUgdG9rZW5zIGludGVycHJldGVkIGJ5IHRoZSByZW5kZXJpbmcgZW5naW5lXG4gKiB3aGVuIGJ1aWxkaW5nIENTUyBncmlkIGxheW91dHMsIGVuYWJsaW5nIHByZWRpY3RhYmxlIHNwYWNpbmcgYWNyb3NzIGNvbXBvbmVudHMuXG4gKiBAY29uc3QgTGF5b3V0R3JpZEdhcHNcbiAqL1xuZXhwb3J0IGNvbnN0IExheW91dEdyaWRHYXBzID0ge1xuICAgIHNtYWxsOiBcInNtYWxsXCIsXG4gICAgbWVkaXVtOiBcIm1lZGl1bVwiLFxuICAgIGxhcmdlOiBcImxhcmdlXCIsXG4gICAgY29sbGFwc2U6IFwiY29sbGFwc2VcIixcbiAgICBub25lOiBcIlwiLFxufTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIENhbm9uaWNhbCBhY3Rpb24gcm9sZSBpZGVudGlmaWVycyBmb3IgVUkgY29udHJvbHMuXG4gKiBAc3VtbWFyeSBFbnVtZXJhdGVzIHRoZSBzZW1hbnRpYyByb2xlcyBhIGJ1dHRvbiBvciBhY3Rpb24gbWF5IHJlcHJlc2VudCBzbyBkZWNvcmF0b3JzIGFuZFxuICogcmVuZGVyZXJzIGNhbiBhdHRhY2ggY29uc2lzdGVudCBiZWhhdmlvcnMgYW5kIHN0eWxpbmcgKGluY2x1ZGluZyBDUlVEIHZlcmJzIHRpZWQgdG9cbiAqIGBPcGVyYXRpb25LZXlzYCkuXG4gKiBAY29uc3QgQWN0aW9uUm9sZXNcbiAqL1xuZXhwb3J0IGNvbnN0IEFjdGlvblJvbGVzID0ge1xuICAgIGNhbmNlbDogXCJjYW5jZWxcIixcbiAgICBjb25maXJtOiBcImNvbmZpcm1cIixcbiAgICBzdWJtaXQ6IFwic3VibWl0XCIsXG4gICAgY2xlYXI6IFwiY2xlYXJcIixcbiAgICBiYWNrOiBcImJhY2tcIixcbiAgICBbT3BlcmF0aW9uS2V5cy5DUkVBVEVdOiBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICBbT3BlcmF0aW9uS2V5cy5SRUFEXTogT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgIFtPcGVyYXRpb25LZXlzLlVQREFURV06IE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgIFtPcGVyYXRpb25LZXlzLkRFTEVURV06IE9wZXJhdGlvbktleXMuREVMRVRFLFxufTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEFsbG93ZWQgY29sb3Igc2NoZW1lIHRva2VucyBmb3Igd2luZG93ZWQgc3VyZmFjZXMuXG4gKiBAc3VtbWFyeSBQcm92aWRlcyB0aGUgc3VwcG9ydGVkIHRoZW1lIGlkZW50aWZpZXJzIGV4cG9zZWQgdG8gY29uc3VtaW5nIGFwcHMgc28gdGhleVxuICogY2FuIHRhcmdldCBsaWdodCwgZGFyaywgb3IgdW5zZXQgd2luZG93IGNvbG9yIHNjaGVtZXMgaW4gYSBwcmVkaWN0YWJsZSB3YXkuXG4gKiBAY29uc3QgV2luZG93Q29sb3JTY2hlbWVzXG4gKi9cbmV4cG9ydCBjb25zdCBXaW5kb3dDb2xvclNjaGVtZXMgPSB7XG4gICAgbGlnaHQ6IFwibGlnaHRcIixcbiAgICBkYXJrOiBcImRhcmtcIixcbiAgICB1bmRlZmluZWQ6IFwidW5kZWZpbmVkXCIsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWTI5dWMzUmhiblJ6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDNWcEwyTnZibk4wWVc1MGN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096czdPenRIUVU5SE8wRkJSVWdzVDBGQlR5eEZRVU5NTEdGQlFXRXNSVUZEWWl4aFFVRmhMRVZCUTJJc1kwRkJZeXhGUVVOa0xHVkJRV1VzUlVGRFppd3lRa0ZCTWtJc1JVRkRNMElzYjBKQlFXOUNMRVZCUTNCQ0xIZENRVUYzUWl4RlFVTjRRaXhwUWtGQmFVSXNSVUZEYWtJc2EwSkJRV3RDTEVWQlEyeENMRmxCUVZrc1JVRkRXaXhyUWtGQmEwSXNSVUZEYkVJc1dVRkJXU3hGUVVOYUxHbENRVUZwUWl4RlFVTnFRaXhuUWtGQlowSXNSVUZEYUVJc2FVSkJRV2xDTEVWQlEycENMR0ZCUVdFc1JVRkRZaXhaUVVGWkxFVkJRMW9zWTBGQll5eEhRVVZtTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGRmVFTXNUMEZCVHl4RlFVRkZMR0ZCUVdFc1JVRkJSU3hOUVVGTkxIbENRVUY1UWl4RFFVRkRPMEZCUlhoRUxFMUJRVTBzUTBGQlRpeEpRVUZaTEd0Q1FVdFlPMEZCVEVRc1YwRkJXU3hyUWtGQmEwSTdTVUZETlVJc2NVTkJRV1VzUTBGQlFUdEpRVU5tTEhWRFFVRnBRaXhEUVVGQk8wbEJRMnBDTEhGRFFVRmxMRU5CUVVFN1NVRkRaaXgxUTBGQmFVSXNRMEZCUVR0QlFVTnVRaXhEUVVGRExFVkJURmNzYTBKQlFXdENMRXRCUVd4Q0xHdENRVUZyUWl4UlFVczNRanRCUVVWRU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0SFFUUkRSenRCUVVOSUxFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNSMEZCUnp0SlFVTndRaXhQUVVGUExFVkJRVVVzU1VGQlNUdEpRVU5pTEU5QlFVOHNSVUZCUlN4VFFVRlRPMGxCUTJ4Q0xGZEJRVmNzUlVGQlJTeGhRVUZoTzBsQlF6RkNMRTlCUVU4c1JVRkJSU3hYUVVGWE8wbEJRM0JDTEVsQlFVa3NSVUZCUlN4UlFVRlJPMGxCUTJRc1MwRkJTeXhGUVVGRkxGTkJRVk03U1VGRGFFSXNTVUZCU1N4RlFVRkZMRTFCUVUwN1NVRkRXaXhYUVVGWExFVkJRVVVzVVVGQlVUdEpRVU55UWl4clFrRkJhMElzUlVGQlJTeHRRa0ZCYlVJN1NVRkZka01zVjBGQlZ5eEZRVUZGTEdGQlFXRTdTVUZETVVJc1ZVRkJWU3hGUVVGRkxGbEJRVms3U1VGRGVFSXNVVUZCVVN4RlFVRkZMRlZCUVZVN1NVRkRjRUlzV1VGQldTeEZRVUZGTEdOQlFXTTdTVUZETlVJc1VVRkJVU3hGUVVGRkxGVkJRVlU3U1VGRmNFSXNTVUZCU1N4RlFVRkZMRTFCUVUwN1NVRkRXaXhSUVVGUkxFVkJRVVVzVTBGQlV6dEpRVVZ1UWl4TlFVRk5MRVZCUVVVc1VVRkJVVHRKUVVOb1FpeFJRVUZSTEVWQlFVVXNWVUZCVlR0SlFVTndRaXhSUVVGUkxFVkJRVVVzVlVGQlZUdEpRVU53UWl4VFFVRlRMRVZCUVVVc1YwRkJWenRKUVVOMFFpeE5RVUZOTEVWQlFVVXNVVUZCVVR0SlFVTm9RaXhMUVVGTExFVkJRVVVzVDBGQlR6dEpRVU5rTEVsQlFVa3NSVUZCUlN4TlFVRk5PMGxCUTFvc1RVRkJUU3hGUVVGRkxGRkJRVkU3U1VGRmFFSXNTMEZCU3l4RlFVRkZMRTlCUVU4N1NVRkRaQ3hKUVVGSkxFVkJRVVVzVFVGQlRUdEpRVVZhTEZOQlFWTXNSVUZCUlN4VlFVRlZPMGxCUTNKQ0xGRkJRVkVzUlVGQlJTeFZRVUZWTzBsQlEzQkNMRkZCUVZFc1JVRkJSU3hqUVVGakxFTkJRVU1zVVVGQlVUdEpRVU5xUXl4SFFVRkhMRVZCUVVVc1kwRkJZeXhEUVVGRExFZEJRVWM3U1VGRGRrSXNWVUZCVlN4RlFVRkZMR05CUVdNc1EwRkJReXhWUVVGVk8wbEJRM0pETEVkQlFVY3NSVUZCUlN4alFVRmpMRU5CUVVNc1IwRkJSenRKUVVOMlFpeFZRVUZWTEVWQlFVVXNZMEZCWXl4RFFVRkRMRlZCUVZVN1NVRkRja01zVDBGQlR5eEZRVUZGTEdOQlFXTXNRMEZCUXl4UFFVRlBPMGxCUXk5Q0xFZEJRVWNzUlVGQlJTeGpRVUZqTEVOQlFVTXNSMEZCUnp0SlFVTjJRaXhKUVVGSkxFVkJRVVVzWTBGQll5eERRVUZETEVsQlFVazdTVUZEZWtJc1NVRkJTU3hGUVVGRkxHTkJRV01zUTBGQlF5eEpRVUZKTzBsQlEzcENMRXRCUVVzc1JVRkJSU3hqUVVGakxFTkJRVU1zUzBGQlN6dEpRVU16UWl4UlFVRlJMRVZCUVVVc1kwRkJZeXhEUVVGRExGRkJRVkU3U1VGRGFrTXNUVUZCVFN4RlFVRkZMR05CUVdNc1EwRkJReXhOUVVGTk8wbEJRemRDTEVsQlFVa3NSVUZCUlN4alFVRmpMRU5CUVVNc1NVRkJTVHRKUVVONlFpeFRRVUZUTEVWQlFVVXNZMEZCWXl4RFFVRkRMRk5CUVZNN1NVRkRia01zYTBKQlFXdENMRVZCUVVVc1kwRkJZeXhEUVVGRExHdENRVUZyUWp0SlFVTnlSQ3haUVVGWkxFVkJRVVVzWTBGQll5eERRVUZETEZsQlFWazdTVUZEZWtNc2NVSkJRWEZDTEVWQlFVVXNZMEZCWXl4RFFVRkRMSEZDUVVGeFFqdERRVU0xUkN4RFFVRkRPMEZCUlVZN096czdPenM3T3pzN096czdPenM3UjBGblFrYzdRVUZEU0N4TlFVRk5MRU5CUVVNc1RVRkJUU3hwUWtGQmFVSXNSMEZCTWtNN1NVRkRka1VzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1kwRkJZenRKUVVNNVFpeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3haUVVGWk8wbEJRekZDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxHRkJRV0U3U1VGRE5VSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzYVVKQlFXbENPME5CUTNKRExFTkJRVU03UVVGRlJqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0SFFYbENSenRCUVVOSUxFMUJRVTBzUTBGQlF5eE5RVUZOTEhOQ1FVRnpRaXhIUVVFeVF6dEpRVU0xUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeHBRa0ZCYVVJN1NVRkRjRU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1dVRkJXVHRKUVVNeFFpeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3haUVVGWk8wbEJRekZDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxHRkJRV0U3U1VGRE5VSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJRVVVzYTBKQlFXdENPMGxCUTNaRExFTkJRVU1zVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMR3RDUVVGclFqdEpRVU4yUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeG5Ra0ZCWjBJN1NVRkRiRU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1pVRkJaVHRKUVVOb1F5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hoUVVGaE8wbEJRelZDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhGUVVGRkxHbENRVUZwUWp0SlFVTnlReXhEUVVGRExFMUJRVTBzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhGUVVGRkxIZENRVUYzUWp0SlFVTnlSQ3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNSVUZCUlN4dlFrRkJiMEk3U1VGRE0wTXNRMEZCUXl4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNSVUZCUlN3eVFrRkJNa0k3UTBGRE5VUXNRMEZCUXp0QlFVVkdPenM3T3pzN096czdSMEZUUnp0QlFVTklMRTFCUVUwc1EwRkJReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eFpRVUZaTEVOQlFVTTdRVUZGTlVNN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBGclEwYzdRVUZEU0N4TlFVRk5MRU5CUVVNc1RVRkJUU3hsUVVGbExFZEJRVWM3U1VGRE4wSXNUVUZCVFN4RlFVRkZMRkZCUVZFN1NVRkRhRUlzVVVGQlVTeEZRVUZGTEZWQlFWVTdTVUZEY0VJc1MwRkJTeXhGUVVGRkxFOUJRVTg3U1VGRFpDeEpRVUZKTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrN1NVRkRha0lzWTBGQll5eEZRVUZGTEdkQ1FVRm5RanRKUVVOb1F5eExRVUZMTEVWQlFVVXNUVUZCVFN4RFFVRkRMRXRCUVVzN1NVRkRia0lzU1VGQlNTeEZRVUZGTEUxQlFVMDdTVUZEV2l4TlFVRk5MRVZCUVVVc1VVRkJVVHRKUVVOb1FpeExRVUZMTEVWQlFVVXNUMEZCVHp0SlFVTmtMRXRCUVVzc1JVRkJSU3hQUVVGUE8wbEJRMlFzVFVGQlRTeEZRVUZGTEZGQlFWRTdTVUZEYUVJc1VVRkJVU3hGUVVGRkxFMUJRVTBzUTBGQlF5eFJRVUZSTzBsQlEzcENMRXRCUVVzc1JVRkJSU3hQUVVGUE8wbEJRMlFzUzBGQlN5eEZRVUZGTEU5QlFVODdTVUZEWkN4TFFVRkxMRVZCUVVVc1QwRkJUenRKUVVOa0xFMUJRVTBzUlVGQlJTeFJRVUZSTzBsQlEyaENMRTFCUVUwc1JVRkJSU3hSUVVGUk8wbEJRMmhDTEVkQlFVY3NSVUZCUlN4TFFVRkxPMGxCUTFZc1NVRkJTU3hGUVVGRkxFMUJRVTA3U1VGRFdpeFJRVUZSTEVWQlFVVXNWVUZCVlR0SlFVTndRaXhOUVVGTkxFVkJRVVVzVVVGQlVUdEpRVU5vUWl4SlFVRkpMRVZCUVVVc1RVRkJUVHRKUVVOYUxFZEJRVWNzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnp0SlFVTm1MRWxCUVVrc1JVRkJSU3hOUVVGTk8wTkJRMklzUTBGQlF6dEJRVVZHT3pzN096czdPenM3TzBkQlZVYzdRVUZEU0N4TlFVRk5MRU5CUVVNc1RVRkJUU3hsUVVGbExFZEJRV0U3U1VGRGRrTXNaVUZCWlN4RFFVRkRMRkZCUVZFN1NVRkRlRUlzWlVGQlpTeERRVUZETEV0QlFVczdRMEZEZEVJc1EwRkJRenRCUVVWR096czdPenM3T3pzN096czdPenM3TzBkQlowSkhPMEZCUTBnc1RVRkJUU3hEUVVGRExFMUJRVTBzYlVKQlFXMUNMRWRCUVVjN1NVRkRha01zVFVGQlRTeEZRVUZGTEZGQlFWRTdTVUZEYUVJc2IwSkJRVzlDTEVWQlFVVXNPRUpCUVRoQ08wbEJRM0JFTEU5QlFVOHNSVUZCUlN4alFVRmpPMGxCUTNaQ0xFdEJRVXNzUlVGQlJTeFpRVUZaTzBsQlEyNUNMRTFCUVUwc1JVRkJSU3hoUVVGaE8wbEJRM0pDTEUxQlFVMHNSVUZCUlN4aFFVRmhPMGxCUTNKQ0xHVkJRV1VzUlVGQlJTeHpRa0ZCYzBJN1NVRkRka01zVjBGQlZ5eEZRVUZGTEd0Q1FVRnJRanRKUVVNdlFpeGxRVUZsTEVWQlFVVXNjMEpCUVhOQ08wTkJReTlDTEVOQlFVTTdRVUZGV0RzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSenRKUVVNNVFpeFZRVUZWTEVWQlFVVXNXVUZCV1R0SlFVTjRRaXhUUVVGVExFVkJRVVVzVjBGQlZ6dEpRVU4wUWl4WlFVRlpMRVZCUVVVc1kwRkJZenRKUVVNMVFpeFhRVUZYTEVWQlFVVXNZVUZCWVR0SlFVTXhRaXhaUVVGWkxFVkJRVVVzWTBGQll6dEpRVU0xUWl4WFFVRlhMRVZCUVVVc1lVRkJZVHRKUVVNeFFpeFpRVUZaTEVWQlFVVXNZMEZCWXp0SlFVTTFRaXhYUVVGWExFVkJRVVVzWVVGQllUdERRVU5zUWl4RFFVRkRPMEZCUlZnN096czdPMGRCUzBjN1FVRkRTQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeFpRVUZaTEVkQlFVYzdTVUZETVVJc1RVRkJUU3hGUVVGRkxGRkJRVkU3U1VGRGFFSXNTMEZCU3l4RlFVRkZMRTlCUVU4N1NVRkRaQ3hOUVVGTkxFVkJRVVVzVVVGQlVUdEpRVU5vUWl4UFFVRlBMRVZCUVVVc1UwRkJVenRKUVVOc1FpeExRVUZMTEVWQlFVVXNUMEZCVHp0SlFVTmtMRTFCUVUwc1JVRkJSU3hSUVVGUk8wbEJRMmhDTEZOQlFWTXNSVUZCUlN4VFFVRlRPMGxCUTNCQ0xFbEJRVWtzUlVGQlJTeE5RVUZOTzBsQlExb3NUVUZCVFN4RlFVRkZMRkZCUVZFN1NVRkRhRUlzUzBGQlN5eEZRVUZGTEU5QlFVODdTVUZEWkN4SlFVRkpMRVZCUVVVc1RVRkJUVHRKUVVOYUxFbEJRVWtzUlVGQlJTeE5RVUZOTzBOQlEwb3NRMEZCUXp0QlFVVllPenM3T3p0SFFVdEhPMEZCUTBnc1RVRkJUU3hEUVVGRExFMUJRVTBzWjBKQlFXZENMRWRCUVVjN1NVRkRPVUlzU1VGQlNTeEZRVUZGTEUxQlFVMDdTVUZEV2l4TlFVRk5MRVZCUVVVc1VVRkJVVHRKUVVOb1FpeExRVUZMTEVWQlFVVXNUMEZCVHp0SlFVTmtMRWRCUVVjc1JVRkJSU3hMUVVGTE8wbEJRMVlzVFVGQlRTeEZRVUZGTEZGQlFWRTdRMEZEVWl4RFFVRkRPMEZCUlZnN096czdPMGRCUzBjN1FVRkRTQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeGpRVUZqTEVkQlFVYzdTVUZETlVJc1MwRkJTeXhGUVVGRkxFOUJRVTg3U1VGRFpDeE5RVUZOTEVWQlFVVXNVVUZCVVR0SlFVTm9RaXhMUVVGTExFVkJRVVVzVDBGQlR6dEpRVU5rTEZGQlFWRXNSVUZCUlN4VlFVRlZPMGxCUTNCQ0xFbEJRVWtzUlVGQlJTeEZRVUZGTzBOQlEwRXNRMEZCUXp0QlFVVllPenM3T3pzN1IwRk5SenRCUVVOSUxFMUJRVTBzUTBGQlF5eE5RVUZOTEZkQlFWY3NSMEZCUnp0SlFVTjZRaXhOUVVGTkxFVkJRVVVzVVVGQlVUdEpRVU5vUWl4UFFVRlBMRVZCUVVVc1UwRkJVenRKUVVOc1FpeE5RVUZOTEVWQlFVVXNVVUZCVVR0SlFVTm9RaXhMUVVGTExFVkJRVVVzVDBGQlR6dEpRVU5rTEVsQlFVa3NSVUZCUlN4TlFVRk5PMGxCUTFvc1EwRkJReXhoUVVGaExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNZVUZCWVN4RFFVRkRMRTFCUVUwN1NVRkROVU1zUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1lVRkJZU3hEUVVGRExFbEJRVWs3U1VGRGVFTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzWVVGQllTeERRVUZETEUxQlFVMDdTVUZETlVNc1EwRkJReXhoUVVGaExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNZVUZCWVN4RFFVRkRMRTFCUVUwN1EwRkRjRU1zUTBGQlF6dEJRVVZZT3pzN096dEhRVXRITzBGQlEwZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc2EwSkJRV3RDTEVkQlFVYzdTVUZEYUVNc1MwRkJTeXhGUVVGRkxFOUJRVTg3U1VGRFpDeEpRVUZKTEVWQlFVVXNUVUZCVFR0SlFVTmFMRk5CUVZNc1JVRkJSU3hYUVVGWE8wTkJRMlFzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVOdmJuTjBZVzUwY3lCaGJtUWdaVzUxYlhNZ1ptOXlJRlZKSUhKbGJtUmxjbWx1WnlCaGJtUWdkbUZzYVdSaGRHbHZibHh1SUNvZ1FITjFiVzFoY25rZ1JHVm1hVzVsY3lCclpYbHpMQ0J0WVhCd2FXNW5jeXdnWVc1a0lFaFVUVXcxSUdsdWNIVjBJSFI1Y0dWeklHWnZjaUJWU1NCamIyMXdiMjVsYm5SelhHNGdLaUJVYUdseklHMXZaSFZzWlNCd2NtOTJhV1JsY3lCamIyNXpkR0Z1ZEhNZ2RYTmxaQ0IwYUhKdmRXZG9iM1YwSUhSb1pTQlZTU0JrWldOdmNtRjBiM0p6SUd4cFluSmhjbmtnWm05eVhHNGdLaUJ5Wlc1a1pYSnBibWNzSUhaaGJHbGtZWFJwYjI0c0lHRnVaQ0JJVkUxTUlHVnNaVzFsYm5RZ1oyVnVaWEpoZEdsdmJpNWNiaUFxSUVCdGIyUjFiR1VnZFdrdlkyOXVjM1JoYm5SelhHNGdLaUJBYldWdFltVnlUMllnYlc5a2RXeGxPblZwTFdSbFkyOXlZWFJ2Y25OY2JpQXFMMXh1WEc1cGJYQnZjblFnZTF4dUlDQkVZWFJsVm1Gc2FXUmhkRzl5TEZ4dUlDQkVhV1ptVm1Gc2FXUmhkRzl5TEZ4dUlDQkZiV0ZwYkZaaGJHbGtZWFJ2Y2l4Y2JpQWdSWEYxWVd4elZtRnNhV1JoZEc5eUxGeHVJQ0JIY21WaGRHVnlWR2hoYms5eVJYRjFZV3hXWVd4cFpHRjBiM0lzWEc0Z0lFZHlaV0YwWlhKVWFHRnVWbUZzYVdSaGRHOXlMRnh1SUNCTVpYTnpWR2hoYms5eVJYRjFZV3hXWVd4cFpHRjBiM0lzWEc0Z0lFeGxjM05VYUdGdVZtRnNhV1JoZEc5eUxGeHVJQ0JOWVhoTVpXNW5kR2hXWVd4cFpHRjBiM0lzWEc0Z0lFMWhlRlpoYkdsa1lYUnZjaXhjYmlBZ1RXbHVUR1Z1WjNSb1ZtRnNhV1JoZEc5eUxGeHVJQ0JOYVc1V1lXeHBaR0YwYjNJc1hHNGdJRkJoYzNOM2IzSmtWbUZzYVdSaGRHOXlMRnh1SUNCUVlYUjBaWEp1Vm1Gc2FXUmhkRzl5TEZ4dUlDQlNaWEYxYVhKbFpGWmhiR2xrWVhSdmNpeGNiaUFnVTNSbGNGWmhiR2xrWVhSdmNpeGNiaUFnVlZKTVZtRnNhV1JoZEc5eUxGeHVJQ0JXWVd4cFpHRjBhVzl1UzJWNWN5eGNiaUFnVm1Gc2FXUmhkRzl5TEZ4dWZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmxZMjl5WVhSdmNpMTJZV3hwWkdGMGFXOXVYQ0k3WEc1cGJYQnZjblFnZXlCRGIyNXpkSEoxWTNSdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHbHZibHdpTzF4dWFXMXdiM0owSUhzZ1QzQmxjbUYwYVc5dVMyVjVjeUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdJdFpHVmpiM0poZEc5eWMxd2lPMXh1WEc1bGVIQnZjblFnWlc1MWJTQlZTVTFsWkdsaFFuSmxZV3RRYjJsdWRITWdlMXh1SUNCVFRVRk1UQ0E5SUZ3aWMyMWhiR3hjSWl4Y2JpQWdUVVZFU1ZWTklEMGdYQ0p0WldScGRXMWNJaXhjYmlBZ1RFRlNSMFVnUFNCY0lteGhjbWRsWENJc1hHNGdJRmhNUVZKSFJTQTlJRndpZUd4aGNtZGxYQ0lzWEc1OVhHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUV0bGVTQmpiMjV6ZEdGdWRITWdkWE5sWkNCbWIzSWdWVWtnYldWMFlXUmhkR0VnWVc1a0lISmxibVJsY21sdVoxeHVJQ29nUUhOMWJXMWhjbmtnUTI5c2JHVmpkR2x2YmlCdlppQnpkSEpwYm1jZ1kyOXVjM1JoYm5SeklIVnpaV1FnWVhNZ2EyVjVjeUJtYjNJZ1ZVa3RjbVZzWVhSbFpDQnRaWFJoWkdGMFlWeHVJQ29nVkdobGMyVWdhMlY1Y3lCaGNtVWdkWE5sWkNCMGFISnZkV2RvYjNWMElIUm9aU0JzYVdKeVlYSjVJSFJ2SUhOMGIzSmxJR0Z1WkNCeVpYUnlhV1YyWlNCdFpYUmhaR0YwWVNCeVpXeGhkR1ZrSUhSdlhHNGdLaUJWU1NCdGIyUmxiSE1zSUdWc1pXMWxiblJ6TENCd2NtOXdaWEowYVdWekxDQmhibVFnZG1Gc2FXUmhkR2x2YmlCeWRXeGxjeTVjYmlBcVhHNGdLaUJBZEhsd1pXUmxaaUI3VDJKcVpXTjBmU0JWU1V0bGVYTlVlWEJsWEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdVa1ZHVEVWRFZDQXRJRUpoYzJVZ2NtVm1iR1ZqZEdsdmJpQnJaWGtnWm05eUlGVkpJRzFsZEdGa1lYUmhYRzRnS2lCQWNISnZjR1Z5ZEhrZ2UzTjBjbWx1WjMwZ1ZVbE5UMFJGVENBdElFdGxlU0JtYjNJZ1ZVa2diVzlrWld3Z2JXVjBZV1JoZEdGY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JTUlU1RVJWSkZSRjlDV1NBdElFdGxlU0JtYjNJZ2MzQmxZMmxtZVdsdVp5QnlaVzVrWlhKcGJtY2daVzVuYVc1bFhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnUlV4RlRVVk9WQ0F0SUV0bGVTQm1iM0lnWld4bGJXVnVkQ0J0WlhSaFpHRjBZVnh1SUNvZ1FIQnliM0JsY25SNUlIdHpkSEpwYm1kOUlGQlNUMUFnTFNCTFpYa2dabTl5SUhCeWIzQmxjblI1SUcxbGRHRmtZWFJoWEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdUa0ZOUlNBdElFdGxlU0JtYjNJZ2JtRnRaU0JoZEhSeWFXSjFkR1ZjYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQk9RVTFGWDFCU1JVWkpXQ0F0SUZCeVpXWnBlQ0JtYjNJZ2FXNXdkWFFnYm1GdFpYTmNiaUFxSUVCd2NtOXdaWEowZVNCN2MzUnlhVzVuZlNCRFZWTlVUMDFmVUZKUFVGTWdMU0JMWlhrZ1ptOXlJR04xYzNSdmJTQjJZV3hwWkdGMGFXOXVJSEJ5YjNCbGNuUnBaWE5jYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQlZTVXhKVTFSTlQwUkZUQ0F0SUV0bGVTQm1iM0lnYkdsemRDQnBkR1Z0SUcxbGRHRmtZWFJoWEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdWVWxNU1ZOVVVGSlBVQ0F0SUV0bGVTQm1iM0lnYkdsemRDQndjbTl3WlhKMGVTQnRaWFJoWkdGMFlWeHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUZSWlVFVWdMU0JMWlhrZ1ptOXlJSFI1Y0dVZ2JXVjBZV1JoZEdGY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JUVlVKZlZGbFFSU0F0SUV0bGVTQm1iM0lnYzNWaWRIbHdaU0J0WlhSaFpHRjBZVnh1SUNvZ1FIQnliM0JsY25SNUlIdHpkSEpwYm1kOUlFaEpSRVJGVGlBdElFdGxlU0JtYjNJZ2FHbGtaR1Z1SUdGMGRISnBZblYwWlZ4dUlDb2dRSEJ5YjNCbGNuUjVJSHR6ZEhKcGJtZDlJRVpQVWsxQlZDQXRJRXRsZVNCbWIzSWdabTl5YldGMElHMWxkR0ZrWVhSaFhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnVWtWQlJGOVBUa3haSUMwZ1MyVjVJR1p2Y2lCeVpXRmtiMjVzZVNCaGRIUnlhV0oxZEdWY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JTUlZGVlNWSkZSQ0F0SUV0bGVTQm1iM0lnY21WeGRXbHlaV1FnZG1Gc2FXUmhkR2x2Ymx4dUlDb2dRSEJ5YjNCbGNuUjVJSHR6ZEhKcGJtZDlJRTFKVGlBdElFdGxlU0JtYjNJZ2JXbHVhVzExYlNCMllXeDFaU0IyWVd4cFpHRjBhVzl1WEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdUVWxPWDB4RlRrZFVTQ0F0SUV0bGVTQm1iM0lnYldsdWFXMTFiU0JzWlc1bmRHZ2dkbUZzYVdSaGRHbHZibHh1SUNvZ1FIQnliM0JsY25SNUlIdHpkSEpwYm1kOUlFMUJXQ0F0SUV0bGVTQm1iM0lnYldGNGFXMTFiU0IyWVd4MVpTQjJZV3hwWkdGMGFXOXVYRzRnS2lCQWNISnZjR1Z5ZEhrZ2UzTjBjbWx1WjMwZ1RVRllYMHhGVGtkVVNDQXRJRXRsZVNCbWIzSWdiV0Y0YVcxMWJTQnNaVzVuZEdnZ2RtRnNhV1JoZEdsdmJseHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUZCQlZGUkZVazRnTFNCTFpYa2dabTl5SUhCaGRIUmxjbTRnZG1Gc2FXUmhkR2x2Ymx4dUlDb2dRSEJ5YjNCbGNuUjVJSHR6ZEhKcGJtZDlJRlZTVENBdElFdGxlU0JtYjNJZ1ZWSk1JSFpoYkdsa1lYUnBiMjVjYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQlRWRVZRSUMwZ1MyVjVJR1p2Y2lCemRHVndJSFpoYkdsa1lYUnBiMjVjYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQkVRVlJGSUMwZ1MyVjVJR1p2Y2lCa1lYUmxJSFpoYkdsa1lYUnBiMjVjYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQkZUVUZKVENBdElFdGxlU0JtYjNJZ1pXMWhhV3dnZG1Gc2FXUmhkR2x2Ymx4dUlDb2dRSEJ5YjNCbGNuUjVJSHR6ZEhKcGJtZDlJRkJCVTFOWFQxSkVJQzBnUzJWNUlHWnZjaUJ3WVhOemQyOXlaQ0IyWVd4cFpHRjBhVzl1WEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdSVkZWUVV4VElDMGdTMlY1SUdadmNpQmxjWFZoYkdsMGVTQjJZV3hwWkdGMGFXOXVYRzRnS2lCQWNISnZjR1Z5ZEhrZ2UzTjBjbWx1WjMwZ1JFbEdSaUF0SUV0bGVTQm1iM0lnWkdsbVptVnlaVzVqWlNCMllXeHBaR0YwYVc5dVhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnVEVWVFUxOVVTRUZPSUMwZ1MyVjVJR1p2Y2lCc1pYTnpJSFJvWVc0Z2RtRnNhV1JoZEdsdmJseHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUV4RlUxTmZWRWhCVGw5UFVsOUZVVlZCVENBdElFdGxlU0JtYjNJZ2JHVnpjeUIwYUdGdUlHOXlJR1Z4ZFdGc0lIWmhiR2xrWVhScGIyNWNiaUFxSUVCd2NtOXdaWEowZVNCN2MzUnlhVzVuZlNCSFVrVkJWRVZTWDFSSVFVNGdMU0JMWlhrZ1ptOXlJR2R5WldGMFpYSWdkR2hoYmlCMllXeHBaR0YwYVc5dVhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnUjFKRlFWUkZVbDlVU0VGT1gwOVNYMFZSVlVGTUlDMGdTMlY1SUdadmNpQm5jbVZoZEdWeUlIUm9ZVzRnYjNJZ1pYRjFZV3dnZG1Gc2FXUmhkR2x2Ymx4dUlDcGNiaUFxSUVCamIyNXpkQ0JWU1V0bGVYTmNiaUFxSUVCMGVYQmxJSHRWU1V0bGVYTlVlWEJsZlZ4dUlDb2dRSEpsWVdSdmJteDVYRzRnS2lCQWJXVnRZbVZ5VDJZZ2JXOWtkV3hsT25WcExXUmxZMjl5WVhSdmNuTmNiaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRlZKUzJWNWN5QTlJSHRjYmlBZ1VrVkdURVZEVkRvZ1lIVnBZQ3hjYmlBZ1ZVbE5UMFJGVERvZ1hDSjFhVzF2WkdWc1hDSXNYRzRnSUZKRlRrUkZVa1ZFWDBKWk9pQmNJbkpsYm1SbGNtVmtMV0o1WENJc1hHNGdJRVZNUlUxRlRsUTZJRndpZFdsbGJHVnRaVzUwWENJc1hHNGdJRkJTVDFBNklGd2lkV2x3Y205d1hDSXNYRzRnSUVOSVNVeEVPaUJjSW5WcFkyaHBiR1JjSWl4Y2JpQWdUa0ZOUlRvZ1hDSnVZVzFsWENJc1hHNGdJRTVCVFVWZlVGSkZSa2xZT2lCY0ltbHVjSFYwTFZ3aUxGeHVJQ0JXUVV4SlJFRlVTVTlPWDAxRlUxTkJSMFU2SUZ3aWRtRnNhV1JoZEdsdmJrMWxjM05oWjJWY0lpeGNibHh1SUNCVlNVeEpVMVJOVDBSRlREb2dYQ0oxYVd4cGMzUnRiMlJsYkZ3aUxGeHVJQ0JWU1V4SlUxUlFVazlRT2lCY0luVnBiR2x6ZEhCeWIzQmNJaXhjYmlBZ1ZVbE1RVmxQVlZRNklGd2lkV2xzWVhsdmRYUmNJaXhjYmlBZ1ZVbE1RVmxQVlZSUVVrOVFPaUJjSW5WcGJHRjViM1YwY0hKdmNGd2lMRnh1SUNCSVFVNUVURVZTVXpvZ1hDSm9ZVzVrYkdWeWMxd2lMRnh1WEc0Z0lGUlpVRVU2SUZ3aWRIbHdaVndpTEZ4dUlDQlRWVUpmVkZsUVJUb2dYQ0p6ZFdKVWVYQmxYQ0lzWEc1Y2JpQWdTRWxFUkVWT09pQmNJbWhwWkdSbGJsd2lMRnh1SUNCSVNVUkZYMFpQVWpvZ1hDSm9hV1JsTFdadmNsd2lMRnh1SUNCVFNFOVhYMFpQVWpvZ1hDSnphRzkzTFdadmNsd2lMRnh1SUNCU1JVNUVSVkpmU1VZNklGd2ljbVZ1WkdWeUxXbG1YQ0lzWEc0Z0lFWlBVazFCVkRvZ1hDSm1iM0p0WVhSY0lpeGNiaUFnVDFKRVJWSTZJRndpYjNKa1pYSmNJaXhjYmlBZ1VFRkhSVG9nWENKd1lXZGxYQ0lzWEc0Z0lFVldSVTVVVXpvZ1hDSmxkbVZ1ZEhOY0lpeGNibHh1SUNCR1NWSlRWRG9nWENKbWFYSnpkRndpTEZ4dUlDQk1RVk5VT2lCY0lteGhjM1JjSWl4Y2JseHVJQ0JTUlVGRVgwOU9URms2SUZ3aWNtVmhaRzl1YkhsY0lpeGNiaUFnVTBWUlZVVk9RMFU2SUZ3aWMyVnhkV1Z1WTJWY0lpeGNiaUFnVWtWUlZVbFNSVVE2SUZaaGJHbGtZWFJwYjI1TFpYbHpMbEpGVVZWSlVrVkVMRnh1SUNCTlNVNDZJRlpoYkdsa1lYUnBiMjVMWlhsekxrMUpUaXhjYmlBZ1RVbE9YMHhGVGtkVVNEb2dWbUZzYVdSaGRHbHZia3RsZVhNdVRVbE9YMHhGVGtkVVNDeGNiaUFnVFVGWU9pQldZV3hwWkdGMGFXOXVTMlY1Y3k1TlFWZ3NYRzRnSUUxQldGOU1SVTVIVkVnNklGWmhiR2xrWVhScGIyNUxaWGx6TGsxQldGOU1SVTVIVkVnc1hHNGdJRkJCVkZSRlVrNDZJRlpoYkdsa1lYUnBiMjVMWlhsekxsQkJWRlJGVWs0c1hHNGdJRlZTVERvZ1ZtRnNhV1JoZEdsdmJrdGxlWE11VlZKTUxGeHVJQ0JUVkVWUU9pQldZV3hwWkdGMGFXOXVTMlY1Y3k1VFZFVlFMRnh1SUNCRVFWUkZPaUJXWVd4cFpHRjBhVzl1UzJWNWN5NUVRVlJGTEZ4dUlDQkZUVUZKVERvZ1ZtRnNhV1JoZEdsdmJrdGxlWE11UlUxQlNVd3NYRzRnSUZCQlUxTlhUMUpFT2lCV1lXeHBaR0YwYVc5dVMyVjVjeTVRUVZOVFYwOVNSQ3hjYmlBZ1JWRlZRVXhUT2lCV1lXeHBaR0YwYVc5dVMyVjVjeTVGVVZWQlRGTXNYRzRnSUVSSlJrWTZJRlpoYkdsa1lYUnBiMjVMWlhsekxrUkpSa1lzWEc0Z0lFeEZVMU5mVkVoQlRqb2dWbUZzYVdSaGRHbHZia3RsZVhNdVRFVlRVMTlVU0VGT0xGeHVJQ0JNUlZOVFgxUklRVTVmVDFKZlJWRlZRVXc2SUZaaGJHbGtZWFJwYjI1TFpYbHpMa3hGVTFOZlZFaEJUbDlQVWw5RlVWVkJUQ3hjYmlBZ1IxSkZRVlJGVWw5VVNFRk9PaUJXWVd4cFpHRjBhVzl1UzJWNWN5NUhVa1ZCVkVWU1gxUklRVTRzWEc0Z0lFZFNSVUZVUlZKZlZFaEJUbDlQVWw5RlVWVkJURG9nVm1Gc2FXUmhkR2x2Ymt0bGVYTXVSMUpGUVZSRlVsOVVTRUZPWDA5U1gwVlJWVUZNTEZ4dWZUdGNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1RXRndjR2x1WnlCdlppQnBibkIxZENCMGVYQmxjeUIwYnlCMGFHVnBjaUJqYjNKeVpYTndiMjVrYVc1bklIWmhiR2xrWVhSdmNuTmNiaUFxSUVCemRXMXRZWEo1SUUxaGNITWdjM0JsWTJsaGJDQnBibkIxZENCMGVYQmxjeUIwYnlCMGFHVnBjaUIyWVd4cFpHRjBiM0lnWTJ4aGMzTmxjMXh1SUNvZ1ZHaHBjeUJqYjI1emRHRnVkQ0J0WVhCeklHbHVjSFYwSUhSNWNHVnpJR3hwYTJVZ1pXMWhhV3dzSUZWU1RDd2daR0YwWlN3Z1lXNWtJSEJoYzNOM2IzSmtJSFJ2SUhSb1pXbHlYRzRnS2lCamIzSnlaWE53YjI1a2FXNW5JSFpoYkdsa1lYUnZjaUJqYkdGemMyVnpJR1p5YjIwZ2RHaGxJR1JsWTI5eVlYUnZjaTEyWVd4cFpHRjBhVzl1SUd4cFluSmhjbmt1WEc0Z0tseHVJQ29nUUhSNWNHVmtaV1lnZTA5aWFtVmpkQzQ4YzNSeWFXNW5MQ0JEYjI1emRISjFZM1J2Y2p4V1lXeHBaR0YwYjNJK1BuMGdWbUZzYVdSaGRHRmliR1ZDZVZSNWNHVk5ZWEJjYmlBcUlFQndjbTl3WlhKMGVTQjdRMjl1YzNSeWRXTjBiM0k4UlcxaGFXeFdZV3hwWkdGMGIzSStmU0JsYldGcGJDQXRJRlpoYkdsa1lYUnZjaUJtYjNJZ1pXMWhhV3dnYVc1d2RYUnpYRzRnS2lCQWNISnZjR1Z5ZEhrZ2UwTnZibk4wY25WamRHOXlQRlZTVEZaaGJHbGtZWFJ2Y2o1OUlIVnliQ0F0SUZaaGJHbGtZWFJ2Y2lCbWIzSWdWVkpNSUdsdWNIVjBjMXh1SUNvZ1FIQnliM0JsY25SNUlIdERiMjV6ZEhKMVkzUnZjanhFWVhSbFZtRnNhV1JoZEc5eVBuMGdaR0YwWlNBdElGWmhiR2xrWVhSdmNpQm1iM0lnWkdGMFpTQnBibkIxZEhOY2JpQXFJRUJ3Y205d1pYSjBlU0I3UTI5dWMzUnlkV04wYjNJOFVHRnpjM2R2Y21SV1lXeHBaR0YwYjNJK2ZTQndZWE56ZDI5eVpDQXRJRlpoYkdsa1lYUnZjaUJtYjNJZ2NHRnpjM2R2Y21RZ2FXNXdkWFJ6WEc0Z0tseHVJQ29nUUdOdmJuTjBJRlpoYkdsa1lYUmhZbXhsUW5sVWVYQmxYRzRnS2lCQWRIbHdaU0I3Vm1Gc2FXUmhkR0ZpYkdWQ2VWUjVjR1ZOWVhCOVhHNGdLaUJBY21WaFpHOXViSGxjYmlBcUlFQnRaVzFpWlhKUFppQnRiMlIxYkdVNmRXa3RaR1ZqYjNKaGRHOXljMXh1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnVm1Gc2FXUmhkR0ZpYkdWQ2VWUjVjR1U2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJRU52Ym5OMGNuVmpkRzl5UEZaaGJHbGtZWFJ2Y2o0K0lEMGdlMXh1SUNCYlZVbExaWGx6TGtWTlFVbE1YVG9nUlcxaGFXeFdZV3hwWkdGMGIzSXNYRzRnSUZ0VlNVdGxlWE11VlZKTVhUb2dWVkpNVm1Gc2FXUmhkRzl5TEZ4dUlDQmJWVWxMWlhsekxrUkJWRVZkT2lCRVlYUmxWbUZzYVdSaGRHOXlMRnh1SUNCYlZVbExaWGx6TGxCQlUxTlhUMUpFWFRvZ1VHRnpjM2R2Y21SV1lXeHBaR0YwYjNJc1hHNTlPMXh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQk5ZWEJ3YVc1bklHOW1JSFpoYkdsa1lYUnBiMjRnWVhSMGNtbGlkWFJsY3lCMGJ5QjBhR1ZwY2lCamIzSnlaWE53YjI1a2FXNW5JSFpoYkdsa1lYUnZjbk5jYmlBcUlFQnpkVzF0WVhKNUlFMWhjSE1nU0ZSTlRDQjJZV3hwWkdGMGFXOXVJR0YwZEhKcFluVjBaWE1nZEc4Z2RHaGxhWElnZG1Gc2FXUmhkRzl5SUdOc1lYTnpaWE5jYmlBcUlGUm9hWE1nWTI5dWMzUmhiblFnYldGd2N5QklWRTFNSUhaaGJHbGtZWFJwYjI0Z1lYUjBjbWxpZFhSbGN5QnNhV3RsSUhKbGNYVnBjbVZrTENCdGFXNHNJRzFoZUN3Z2NHRjBkR1Z5Yml3Z1pYUmpMbHh1SUNvZ2RHOGdkR2hsYVhJZ1kyOXljbVZ6Y0c5dVpHbHVaeUIyWVd4cFpHRjBiM0lnWTJ4aGMzTmxjeUJtY205dElIUm9aU0JrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2YmlCc2FXSnlZWEo1TGx4dUlDcGNiaUFxSUVCMGVYQmxaR1ZtSUh0UFltcGxZM1F1UEhOMGNtbHVaeXdnUTI5dWMzUnlkV04wYjNJOFZtRnNhV1JoZEc5eVBqNTlJRlpoYkdsa1lYUmhZbXhsUW5sQmRIUnlhV0oxZEdWTllYQmNiaUFxSUVCd2NtOXdaWEowZVNCN1EyOXVjM1J5ZFdOMGIzSThVbVZ4ZFdseVpXUldZV3hwWkdGMGIzSStmU0J5WlhGMWFYSmxaQ0F0SUZaaGJHbGtZWFJ2Y2lCbWIzSWdjbVZ4ZFdseVpXUWdabWxsYkdSelhHNGdLaUJBY0hKdmNHVnlkSGtnZTBOdmJuTjBjblZqZEc5eVBFMXBibFpoYkdsa1lYUnZjajU5SUcxcGJpQXRJRlpoYkdsa1lYUnZjaUJtYjNJZ2JXbHVhVzExYlNCMllXeDFaVnh1SUNvZ1FIQnliM0JsY25SNUlIdERiMjV6ZEhKMVkzUnZjanhOWVhoV1lXeHBaR0YwYjNJK2ZTQnRZWGdnTFNCV1lXeHBaR0YwYjNJZ1ptOXlJRzFoZUdsdGRXMGdkbUZzZFdWY2JpQXFJRUJ3Y205d1pYSjBlU0I3UTI5dWMzUnlkV04wYjNJOFUzUmxjRlpoYkdsa1lYUnZjajU5SUhOMFpYQWdMU0JXWVd4cFpHRjBiM0lnWm05eUlITjBaWEFnZG1Gc2RXVmNiaUFxSUVCd2NtOXdaWEowZVNCN1EyOXVjM1J5ZFdOMGIzSThUV2x1VEdWdVozUm9WbUZzYVdSaGRHOXlQbjBnYldsdWJHVnVaM1JvSUMwZ1ZtRnNhV1JoZEc5eUlHWnZjaUJ0YVc1cGJYVnRJR3hsYm1kMGFGeHVJQ29nUUhCeWIzQmxjblI1SUh0RGIyNXpkSEoxWTNSdmNqeE5ZWGhNWlc1bmRHaFdZV3hwWkdGMGIzSStmU0J0WVhoc1pXNW5kR2dnTFNCV1lXeHBaR0YwYjNJZ1ptOXlJRzFoZUdsdGRXMGdiR1Z1WjNSb1hHNGdLaUJBY0hKdmNHVnlkSGtnZTBOdmJuTjBjblZqZEc5eVBGQmhkSFJsY201V1lXeHBaR0YwYjNJK2ZTQndZWFIwWlhKdUlDMGdWbUZzYVdSaGRHOXlJR1p2Y2lCeVpXZGxlQ0J3WVhSMFpYSnVYRzRnS2lCQWNISnZjR1Z5ZEhrZ2UwTnZibk4wY25WamRHOXlQRVZ4ZFdGc2MxWmhiR2xrWVhSdmNqNTlJR1Z4ZFdGc2N5QXRJRlpoYkdsa1lYUnZjaUJtYjNJZ1pYRjFZV3hwZEhsY2JpQXFJRUJ3Y205d1pYSjBlU0I3UTI5dWMzUnlkV04wYjNJOFJHbG1abFpoYkdsa1lYUnZjajU5SUdScFptWWdMU0JXWVd4cFpHRjBiM0lnWm05eUlHUnBabVpsY21WdVkyVmNiaUFxSUVCd2NtOXdaWEowZVNCN1EyOXVjM1J5ZFdOMGIzSThUR1Z6YzFSb1lXNVdZV3hwWkdGMGIzSStmU0JzWlhOemRHaGhiaUF0SUZaaGJHbGtZWFJ2Y2lCbWIzSWdiR1Z6Y3lCMGFHRnVJR052YlhCaGNtbHpiMjVjYmlBcUlFQndjbTl3WlhKMGVTQjdRMjl1YzNSeWRXTjBiM0k4VEdWemMxUm9ZVzVQY2tWeGRXRnNWbUZzYVdSaGRHOXlQbjBnYkdWemMzUm9ZVzV2Y21WeGRXRnNJQzBnVm1Gc2FXUmhkRzl5SUdadmNpQnNaWE56SUhSb1lXNGdiM0lnWlhGMVlXd2dZMjl0Y0dGeWFYTnZibHh1SUNvZ1FIQnliM0JsY25SNUlIdERiMjV6ZEhKMVkzUnZjanhIY21WaGRHVnlWR2hoYmxaaGJHbGtZWFJ2Y2o1OUlHZHlaV0YwWlhKMGFHRnVJQzBnVm1Gc2FXUmhkRzl5SUdadmNpQm5jbVZoZEdWeUlIUm9ZVzRnWTI5dGNHRnlhWE52Ymx4dUlDb2dRSEJ5YjNCbGNuUjVJSHREYjI1emRISjFZM1J2Y2p4SGNtVmhkR1Z5VkdoaGJrOXlSWEYxWVd4V1lXeHBaR0YwYjNJK2ZTQm5jbVZoZEdWeWRHaGhibTl5WlhGMVlXd2dMU0JXWVd4cFpHRjBiM0lnWm05eUlHZHlaV0YwWlhJZ2RHaGhiaUJ2Y2lCbGNYVmhiQ0JqYjIxd1lYSnBjMjl1WEc0Z0tseHVJQ29nUUdOdmJuTjBJRlpoYkdsa1lYUmhZbXhsUW5sQmRIUnlhV0oxZEdWY2JpQXFJRUIwZVhCbElIdFdZV3hwWkdGMFlXSnNaVUo1UVhSMGNtbGlkWFJsVFdGd2ZWeHVJQ29nUUhKbFlXUnZibXg1WEc0Z0tpQkFiV1Z0WW1WeVQyWWdiVzlrZFd4bE9uVnBMV1JsWTI5eVlYUnZjbk5jYmlBcUwxeHVaWGh3YjNKMElHTnZibk4wSUZaaGJHbGtZWFJoWW14bFFubEJkSFJ5YVdKMWRHVTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lFTnZibk4wY25WamRHOXlQRlpoYkdsa1lYUnZjajQrSUQwZ2UxeHVJQ0JiVlVsTFpYbHpMbEpGVVZWSlVrVkVYVG9nVW1WeGRXbHlaV1JXWVd4cFpHRjBiM0lzWEc0Z0lGdFZTVXRsZVhNdVRVbE9YVG9nVFdsdVZtRnNhV1JoZEc5eUxGeHVJQ0JiVlVsTFpYbHpMazFCV0YwNklFMWhlRlpoYkdsa1lYUnZjaXhjYmlBZ1cxVkpTMlY1Y3k1VFZFVlFYVG9nVTNSbGNGWmhiR2xrWVhSdmNpeGNiaUFnVzFWSlMyVjVjeTVOU1U1ZlRFVk9SMVJJWFRvZ1RXbHVUR1Z1WjNSb1ZtRnNhV1JoZEc5eUxGeHVJQ0JiVlVsTFpYbHpMazFCV0Y5TVJVNUhWRWhkT2lCTllYaE1aVzVuZEdoV1lXeHBaR0YwYjNJc1hHNGdJRnRWU1V0bGVYTXVVRUZVVkVWU1RsMDZJRkJoZEhSbGNtNVdZV3hwWkdGMGIzSXNYRzRnSUZ0VlNVdGxlWE11UlZGVlFVeFRYVG9nUlhGMVlXeHpWbUZzYVdSaGRHOXlMRnh1SUNCYlZVbExaWGx6TGtSSlJrWmRPaUJFYVdabVZtRnNhV1JoZEc5eUxGeHVJQ0JiVlVsTFpYbHpMa3hGVTFOZlZFaEJUbDA2SUV4bGMzTlVhR0Z1Vm1Gc2FXUmhkRzl5TEZ4dUlDQmJWVWxMWlhsekxreEZVMU5mVkVoQlRsOVBVbDlGVVZWQlRGMDZJRXhsYzNOVWFHRnVUM0pGY1hWaGJGWmhiR2xrWVhSdmNpeGNiaUFnVzFWSlMyVjVjeTVIVWtWQlZFVlNYMVJJUVU1ZE9pQkhjbVZoZEdWeVZHaGhibFpoYkdsa1lYUnZjaXhjYmlBZ1cxVkpTMlY1Y3k1SFVrVkJWRVZTWDFSSVFVNWZUMUpmUlZGVlFVeGRPaUJIY21WaGRHVnlWR2hoYms5eVJYRjFZV3hXWVd4cFpHRjBiM0lzWEc1OU8xeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCVGRHRnVaR0Z5WkNCa1lYUmxJR1p2Y20xaGRDQnpkSEpwYm1jZ1ptOXlJRWhVVFV3MUlHUmhkR1VnYVc1d2RYUnpYRzRnS2lCQWMzVnRiV0Z5ZVNCR2IzSnRZWFFnYzNSeWFXNW5JR1p2Y2lCSVZFMU1OU0JrWVhSbElHbHVjSFYwY3lBb2VYbDVlUzFOVFMxa1pDbGNiaUFxSUZSb2FYTWdZMjl1YzNSaGJuUWdaR1ZtYVc1bGN5QjBhR1VnYzNSaGJtUmhjbVFnWkdGMFpTQm1iM0p0WVhRZ2MzUnlhVzVuSUhWelpXUWdabTl5SUVoVVRVdzFJR1JoZEdVZ2FXNXdkWFJ6TGx4dUlDcGNiaUFxSUVCamIyNXpkQ0JJVkUxTU5VUmhkR1ZHYjNKdFlYUmNiaUFxSUVCMGVYQmxJSHR6ZEhKcGJtZDlYRzRnS2lCQWNtVmhaRzl1YkhsY2JpQXFJRUJ0WlcxaVpYSlBaaUJ0YjJSMWJHVTZkV2t0WkdWamIzSmhkRzl5YzF4dUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1NGUk5URFZFWVhSbFJtOXliV0YwSUQwZ1hDSjVlWGw1TFUxTkxXUmtYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRU52Ykd4bFkzUnBiMjRnYjJZZ1NGUk5URFVnYVc1d2RYUWdkSGx3WlNCMllXeDFaWE5jYmlBcUlFQnpkVzF0WVhKNUlFMWhjSE1nYVc1d2RYUWdkSGx3WlNCamIyNXpkR0Z1ZEhNZ2RHOGdkR2hsYVhJZ1NGUk5UQ0JoZEhSeWFXSjFkR1VnZG1Gc2RXVnpYRzRnS2lCVWFHbHpJR052Ym5OMFlXNTBJSEJ5YjNacFpHVnpJR0VnYldGd2NHbHVaeUJ2WmlCcGJuQjFkQ0IwZVhCbElHTnZibk4wWVc1MGN5QjBieUIwYUdWcGNpQmpiM0p5WlhOd2IyNWthVzVuWEc0Z0tpQklWRTFNSUdGMGRISnBZblYwWlNCMllXeDFaWE1nWm05eUlIVnpaU0JwYmlCbWIzSnRJR1ZzWlcxbGJuUnpMbHh1SUNwY2JpQXFJRUIwZVhCbFpHVm1JSHRQWW1wbFkzUjlJRWhVVFV3MVNXNXdkWFJVZVhCbGMwMWhjRnh1SUNvZ1FIQnliM0JsY25SNUlIdHpkSEpwYm1kOUlFSlZWRlJQVGlBdElFSjFkSFJ2YmlCcGJuQjFkQ0IwZVhCbFhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnUTBoRlEwdENUMWdnTFNCRGFHVmphMkp2ZUNCcGJuQjFkQ0IwZVhCbFhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnUTA5TVQxSWdMU0JEYjJ4dmNpQndhV05yWlhJZ2FXNXdkWFFnZEhsd1pWeHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUVSQlZFVWdMU0JFWVhSbElIQnBZMnRsY2lCcGJuQjFkQ0IwZVhCbFhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnUkVGVVJWUkpUVVZmVEU5RFFVd2dMU0JNYjJOaGJDQmtZWFJsZEdsdFpTQndhV05yWlhJZ2FXNXdkWFFnZEhsd1pWeHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUVWTlFVbE1JQzBnUlcxaGFXd2dhVzV3ZFhRZ2RIbHdaU0IzYVhSb0lIWmhiR2xrWVhScGIyNWNiaUFxSUVCd2NtOXdaWEowZVNCN2MzUnlhVzVuZlNCR1NVeEZJQzBnUm1sc1pTQjFjR3h2WVdRZ2FXNXdkWFFnZEhsd1pWeHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUVoSlJFUkZUaUF0SUVocFpHUmxiaUJwYm5CMWRDQjBlWEJsWEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdTVTFCUjBVZ0xTQkpiV0ZuWlNCcGJuQjFkQ0IwZVhCbFhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnVFU5T1ZFZ2dMU0JOYjI1MGFDQndhV05yWlhJZ2FXNXdkWFFnZEhsd1pWeHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUU1VlRVSkZVaUF0SUU1MWJXVnlhV01nYVc1d2RYUWdkSGx3WlZ4dUlDb2dRSEJ5YjNCbGNuUjVJSHR6ZEhKcGJtZDlJRkJCVTFOWFQxSkVJQzBnVUdGemMzZHZjbVFnYVc1d2RYUWdkSGx3WlNCM2FYUm9JRzFoYzJ0bFpDQjBaWGgwWEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdVa0ZFU1U4Z0xTQlNZV1JwYnlCaWRYUjBiMjRnYVc1d2RYUWdkSGx3WlZ4dUlDb2dRSEJ5YjNCbGNuUjVJSHR6ZEhKcGJtZDlJRkpCVGtkRklDMGdVbUZ1WjJVZ2MyeHBaR1Z5SUdsdWNIVjBJSFI1Y0dWY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JTUlZORlZDQXRJRVp2Y20wZ2NtVnpaWFFnWW5WMGRHOXVJR2x1Y0hWMElIUjVjR1ZjYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQlRSVUZTUTBnZ0xTQlRaV0Z5WTJnZ2FXNXdkWFFnZEhsd1pWeHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUZOVlFrMUpWQ0F0SUVadmNtMGdjM1ZpYldsMElHSjFkSFJ2YmlCcGJuQjFkQ0IwZVhCbFhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnVkVWTUlDMGdWR1ZzWlhCb2IyNWxJRzUxYldKbGNpQnBibkIxZENCMGVYQmxYRzRnS2lCQWNISnZjR1Z5ZEhrZ2UzTjBjbWx1WjMwZ1ZFVllWQ0F0SUVKaGMybGpJSFJsZUhRZ2FXNXdkWFFnZEhsd1pWeHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUZSSlRVVWdMU0JVYVcxbElIQnBZMnRsY2lCcGJuQjFkQ0IwZVhCbFhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnVlZKTUlDMGdWVkpNSUdsdWNIVjBJSFI1Y0dVZ2QybDBhQ0IyWVd4cFpHRjBhVzl1WEc0Z0tpQkFjSEp2Y0dWeWRIa2dlM04wY21sdVozMGdWMFZGU3lBdElGZGxaV3NnY0dsamEyVnlJR2x1Y0hWMElIUjVjR1ZjYmlBcVhHNGdLaUJBWTI5dWMzUWdTRlJOVERWSmJuQjFkRlI1Y0dWelhHNGdLaUJBZEhsd1pTQjdTRlJOVERWSmJuQjFkRlI1Y0dWelRXRndmVnh1SUNvZ1FISmxZV1J2Ym14NVhHNGdLaUJBYldWdFltVnlUMllnYlc5a2RXeGxPblZwTFdSbFkyOXlZWFJ2Y25OY2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElFaFVUVXcxU1c1d2RYUlVlWEJsY3lBOUlIdGNiaUFnUWxWVVZFOU9PaUJjSW1KMWRIUnZibHdpTEZ4dUlDQkRTRVZEUzBKUFdEb2dYQ0pqYUdWamEySnZlRndpTEZ4dUlDQkRUMHhQVWpvZ1hDSmpiMnh2Y2x3aUxGeHVJQ0JFUVZSRk9pQlZTVXRsZVhNdVJFRlVSU3hjYmlBZ1JFRlVSVlJKVFVWZlRFOURRVXc2SUZ3aVpHRjBaWFJwYldVdGJHOWpZV3hjSWl4Y2JpQWdSVTFCU1V3NklGVkpTMlY1Y3k1RlRVRkpUQ3hjYmlBZ1JrbE1SVG9nWENKbWFXeGxYQ0lzWEc0Z0lFaEpSRVJGVGpvZ1hDSm9hV1JrWlc1Y0lpeGNiaUFnU1UxQlIwVTZJRndpYVcxaFoyVmNJaXhjYmlBZ1RVOU9WRWc2SUZ3aWJXOXVkR2hjSWl4Y2JpQWdUbFZOUWtWU09pQmNJbTUxYldKbGNsd2lMRnh1SUNCUVFWTlRWMDlTUkRvZ1ZVbExaWGx6TGxCQlUxTlhUMUpFTEZ4dUlDQlNRVVJKVHpvZ1hDSnlZV1JwYjF3aUxGeHVJQ0JTUVU1SFJUb2dYQ0p5WVc1blpWd2lMRnh1SUNCU1JWTkZWRG9nWENKeVpYTmxkRndpTEZ4dUlDQlRSVUZTUTBnNklGd2ljMlZoY21Ob1hDSXNYRzRnSUZOVlFrMUpWRG9nWENKemRXSnRhWFJjSWl4Y2JpQWdWRVZNT2lCY0luUmxiRndpTEZ4dUlDQlVSVmhVT2lCY0luUmxlSFJjSWl4Y2JpQWdWRVZZVkVGU1JVRTZJRndpZEdWNGRHRnlaV0ZjSWl4Y2JpQWdVMFZNUlVOVU9pQmNJbk5sYkdWamRGd2lMRnh1SUNCVVNVMUZPaUJjSW5ScGJXVmNJaXhjYmlBZ1ZWSk1PaUJWU1V0bGVYTXVWVkpNTEZ4dUlDQlhSVVZMT2lCY0luZGxaV3RjSWl4Y2JuMDdYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFRnljbUY1SUc5bUlFaFVUVXcxSUdsdWNIVjBJSFI1Y0dWeklIUm9ZWFFnZFhObElHTm9aV05yWW05NFpYTmNiaUFxSUVCemRXMXRZWEo1SUV4cGMzUWdiMllnYVc1d2RYUWdkSGx3WlhNZ2RHaGhkQ0J5WlhCeVpYTmxiblFnWTJobFkydGhZbXhsSUdOdmJuUnliMnh6WEc0Z0tpQlVhR2x6SUdOdmJuTjBZVzUwSUdSbFptbHVaWE1nWVc0Z1lYSnlZWGtnYjJZZ1NGUk5URFVnYVc1d2RYUWdkSGx3WlhNZ2RHaGhkQ0J5WlhCeVpYTmxiblJjYmlBcUlHTm9aV05yWVdKc1pTQmpiMjUwY205c2N5QW9ZMmhsWTJ0aWIzZ2dZVzVrSUhKaFpHbHZLUzVjYmlBcVhHNGdLaUJBWTI5dWMzUWdTRlJOVERWRGFHVmphMVI1Y0dWelhHNGdLaUJBZEhsd1pTQjdjM1J5YVc1blcxMTlYRzRnS2lCQWNtVmhaRzl1YkhsY2JpQXFJRUJ0WlcxaVpYSlBaaUJ0YjJSMWJHVTZkV2t0WkdWamIzSmhkRzl5YzF4dUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1NGUk5URFZEYUdWamExUjVjR1Z6T2lCemRISnBibWRiWFNBOUlGdGNiaUFnU0ZSTlREVkpibkIxZEZSNWNHVnpMa05JUlVOTFFrOVlMRnh1SUNCSVZFMU1OVWx1Y0hWMFZIbHdaWE11VWtGRVNVOHNYRzVkTzF4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJGZG1WdWRDQnVZVzFsSUdOdmJuTjBZVzUwY3k1Y2JpQXFJRUJ6ZFcxdFlYSjVJRU52Ym5SaGFXNXpJR052Ym5OMFlXNTBjeUJtYjNJZ2MzUmhibVJoY21ScGVtVmtJR1YyWlc1MElHNWhiV1Z6SUhWelpXUWdkR2h5YjNWbmFHOTFkQ0IwYUdVZ1lYQndiR2xqWVhScGIyNHVYRzRnS2lCVWFHVnpaU0JqYjI1emRHRnVkSE1nWlc1emRYSmxJR052Ym5OcGMzUmxiblFnWlhabGJuUWdibUZ0YVc1bklHRmpjbTl6Y3lCamIyMXdiMjVsYm5SeklHRnVaQ0J0WVd0bElHbDBJR1ZoYzJsbGNpQjBiMXh1SUNvZ2RISmhZMnNnWVc1a0lHaGhibVJzWlNCbGRtVnVkSE11SUVWaFkyZ2dZMjl1YzNSaGJuUWdjbVZ3Y21WelpXNTBjeUJoSUhOd1pXTnBabWxqSUdGd2NHeHBZMkYwYVc5dUlHVjJaVzUwSUhSNWNHVXVYRzRnS2lCQWRIbHdaV1JsWmlCN1QySnFaV04wZlNCRGIyMXdiMjVsYm5SRmRtVnVkRTVoYldWelhHNGdLaUJBY0hKdmNHVnlkSGtnZTNOMGNtbHVaMzBnUW1GamEwSjFkSFJ2YmtOc2FXTnJSWFpsYm5RZ0xTQkZkbVZ1ZENCbWFYSmxaQ0IzYUdWdUlHSmhZMnNnWW5WMGRHOXVJRzVoZG1sbllYUnBiMjRnWlc1a2MxeHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUZKbGJtUmxjaUF0SUVWMlpXNTBJR0ZtZEdWeUlHTnZiWEJ2Ym1WdWRDQnBibWwwYVdGc2FYcGxJR0ZqZEdsdmJpQnZZMk4xY25OY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JTWldaeVpYTm9JQzBnUlhabGJuUWdabWx5WldRZ2QyaGxiaUJoSUhKbFpuSmxjMmdnWVdOMGFXOXVJRzlqWTNWeWMxeHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUVOc2FXTnJJQzBnUlhabGJuUWdabWx5WldRZ2QyaGxiaUJoSUdOc2FXTnJJR0ZqZEdsdmJpQnZZMk4xY25OY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JEYUdGdVoyVWdMU0JGZG1WdWRDQm1hWEpsWkNCM2FHVnVJR0VnWTJoaGJtZGxJR0ZqZEdsdmJpQnZZMk4xY25OY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JUZFdKdGFYUWdMU0JGZG1WdWRDQm1hWEpsWkNCM2FHVnVJR0VnWm05eWJTQnpkV0p0YVhOemFXOXVJRzlqWTNWeWMxeHVJQ29nUUhCeWIzQmxjblI1SUh0emRISnBibWQ5SUZaaGJHbGtZWFJwYjI1RmNuSnZjaUF0SUVWMlpXNTBJR1pwY21Wa0lIZG9aVzRnWVNCMllXeHBaR0YwYVc5dUlHVnljbTl5SUc5alkzVnljMXh1SUNvZ1FIQnliM0JsY25SNUlIdHpkSEpwYm1kOUlGUm9aVzFsUTJoaGJtZGxJQzBnUlhabGJuUWdabWx5WldRZ2QyaGxiaUJoSUhSb1pXMWxJR05vWVc1blpTQnZZMk4xY25OY2JpQXFJRUJ3Y205d1pYSjBlU0I3YzNSeWFXNW5mU0JHYjNKdFIzSnZkWEJNYjJGa1pXUWdMU0JGZG1WdWRDQm1hWEpsWkNCM2FHVnVJR0VnY21WaFkzUjJaU0JtYjNKdElHZHliM1Z3SUdseklHeHZZV1JsWkZ4dUlDb2dRR052Ym5OMElFTnZiWEJ2Ym1WdWRFVjJaVzUwVG1GdFpYTmNiaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJRU52YlhCdmJtVnVkRVYyWlc1MFRtRnRaWE1nUFNCN1hHNGdJRkpsYm1SbGNqb2dYQ0p5Wlc1a1pYSmNJaXhjYmlBZ1FtRmphMEoxZEhSdmJrTnNhV05yUlhabGJuUTZJRndpWW1GamEwSjFkSFJ2Yms1aGRtbG5ZWFJwYjI1RmJtUkZkbVZ1ZEZ3aUxGeHVJQ0JTWldaeVpYTm9PaUJjSWxKbFpuSmxjMmhGZG1WdWRGd2lMRnh1SUNCRGJHbGphem9nWENKRGJHbGphMFYyWlc1MFhDSXNYRzRnSUVOb1lXNW5aVG9nWENKRGFHRnVaMlZGZG1WdWRGd2lMRnh1SUNCVGRXSnRhWFE2SUZ3aVUzVmliV2wwUlhabGJuUmNJaXhjYmlBZ1ZtRnNhV1JoZEdsdmJrVnljbTl5T2lCY0luWmhiR2xrWVhScGIyNUZjbkp2Y2tWMlpXNTBYQ0lzWEc0Z0lGUm9aVzFsUTJoaGJtZGxPaUJjSW5Sb1pXMWxRMmhoYm1kbFJYWmxiblJjSWl4Y2JpQWdSbTl5YlVkeWIzVndURzloWkdWa09pQmNJbVp2Y20xSGNtOTFjRXh2WVdSbFpFVjJaVzUwWENJc1hHNTlJR0Z6SUdOdmJuTjBPMXh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQk1hV1psWTNsamJHVWdhRzl2YXlCc1lXSmxiSE1nWm05eUlISmxjRzl6YVhSdmNua2dkSEpoYm5OaFkzUnBiMjV6TGx4dUlDb2dRSE4xYlcxaGNua2dVSEp2ZG1sa1pYTWdZMkZ1YjI1cFkyRnNJRzVoYldWeklHWnZjaUJEVWxWRUlHeHBabVZqZVdOc1pTQmpZV3hzWW1GamEzTWdjMjhnWkdWamIzSmhkRzl5Y3lCaGJtUmNiaUFxSUdOdmJYQnZibVZ1ZEhNZ1kyRnVJSEpsWjJsemRHVnlJSGR2Y21zZ1ltVm1iM0psSUc5eUlHRm1kR1Z5SUhKbGNHOXphWFJ2Y25rZ2IzQmxjbUYwYVc5dWN5QnBiaUJoSUdOdmJuTnBjM1JsYm5RZ2QyRjVMbHh1SUNvZ1JXRmphQ0JyWlhrZ2JXRndjeUIwYnlCMGFHVWdjM1J5YVc1bklIVnpaV1FnZDJobGJpQjNhWEpwYm1jZ2RISmhibk5oWTNScGIyNGdiV2xrWkd4bGQyRnlaUzVjYmlBcUlFQmpiMjV6ZENCVWNtRnVjMkZqZEdsdmJraHZiMnR6WEc0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCVWNtRnVjMkZqZEdsdmJraHZiMnR6SUQwZ2UxeHVJQ0JDWldadmNtVlNaV0ZrT2lCY0ltSmxabTl5WlZKbFlXUmNJaXhjYmlBZ1FXWjBaWEpTWldGa09pQmNJbUZtZEdWeVVtVmhaRndpTEZ4dUlDQkNaV1p2Y21WRGNtVmhkR1U2SUZ3aVltVm1iM0psUTNKbFlYUmxYQ0lzWEc0Z0lFRm1kR1Z5UTNKbFlYUmxPaUJjSW1GbWRHVnlRM0psWVhSbFhDSXNYRzRnSUVKbFptOXlaVlZ3WkdGMFpUb2dYQ0ppWldadmNtVlZjR1JoZEdWY0lpeGNiaUFnUVdaMFpYSlZjR1JoZEdVNklGd2lZV1owWlhKVmNHUmhkR1ZjSWl4Y2JpQWdRbVZtYjNKbFJHVnNaWFJsT2lCY0ltSmxabTl5WlVSbGJHVjBaVndpTEZ4dUlDQkJablJsY2tSbGJHVjBaVG9nWENKaFpuUmxja1JsYkdWMFpWd2lMRnh1ZlNCaGN5QmpiMjV6ZER0Y2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnVTNSaGJtUmhjbVJwZW1Wa0lITnBlbVVnZEc5clpXNXpJR1p2Y2lCVlNTQmxiR1Z0Wlc1MGN5NWNiaUFxSUVCemRXMXRZWEo1SUVSbFptbHVaWE1nZEdobElITmxiV0Z1ZEdsaklITnBlbVVnYTJWNWQyOXlaSE1nYzNWd2NHOXlkR1ZrSUdKNUlHeGhlVzkxZENCaGJtUWdabTl5YlNCa1pXTnZjbUYwYjNKekxseHVJQ29nVkdobGMyVWdkbUZzZFdWeklHWmxaV1FnY21WdVpHVnlhVzVuSUdWdVoybHVaWE1nYzI4Z1kyOXRjRzl1Wlc1MGN5QmpZVzRnWlhod2NtVnpjeUJ6YVhwcGJtY2dhVzRnWVNCMWJtbG1iM0p0SUhadlkyRmlkV3hoY25rdVhHNGdLaUJBWTI5dWMzUWdSV3hsYldWdWRGTnBlbVZ6WEc0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCRmJHVnRaVzUwVTJsNlpYTWdQU0I3WEc0Z0lIaHpiV0ZzYkRvZ1hDSjRjMjFoYkd4Y0lpeGNiaUFnYzIxaGJHdzZJRndpYzIxaGJHeGNJaXhjYmlBZ2JXVmthWFZ0T2lCY0ltMWxaR2wxYlZ3aUxGeHVJQ0JrWldaaGRXeDBPaUJjSW1SbFptRjFiSFJjSWl4Y2JpQWdiR0Z5WjJVNklGd2liR0Z5WjJWY0lpeGNiaUFnZUV4aGNtZGxPaUJjSW5oc1lYSm5aVndpTEZ4dUlDQmNJako0VEdGeVoyVmNJam9nWENJeWVHeGhjbWRsWENJc1hHNGdJR0YxZEc4NklGd2lZWFYwYjF3aUxGeHVJQ0JsZUhCaGJtUTZJRndpWlhod1lXNWtYQ0lzWEc0Z0lHSnNiMk5yT2lCY0ltSnNiMk5yWENJc1hHNGdJR2hoYkdZNklGd2lhR0ZzWmx3aUxGeHVJQ0JtZFd4c09pQmNJbVoxYkd4Y0lpeGNibjBnWVhNZ1kyOXVjM1E3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRUZzYVdkdWJXVnVkQ0JyWlhsM2IzSmtjeUJtYjNJZ1pXeGxiV1Z1ZENCd2IzTnBkR2x2Ym1sdVp5NWNiaUFxSUVCemRXMXRZWEo1SUZOMWNIQnNhV1Z6SUdOaGJtOXVhV05oYkNCd2IzTnBkR2x2YmlCMllXeDFaWE1nS0dodmNtbDZiMjUwWVd3Z1lXNWtJSFpsY25ScFkyRnNLU0IwYUdGMElHUmxZMjl5WVhSdmNuTWdZMkZ1WEc0Z0tpQjFjMlVnZDJobGJpQmhiR2xuYm1sdVp5QnNZV0psYkhNc0lHTnZiblJ5YjJ4ekxDQnZjaUJvWld4d1pYSWdkR1Y0ZENCaFkzSnZjM01nWTI5dGNHOXVaVzUwY3k1Y2JpQXFJRUJqYjI1emRDQkZiR1Z0Wlc1MFVHOXphWFJwYjI1elhHNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQkZiR1Z0Wlc1MFVHOXphWFJwYjI1eklEMGdlMXh1SUNCc1pXWjBPaUJjSW14bFpuUmNJaXhjYmlBZ1kyVnVkR1Z5T2lCY0ltTmxiblJsY2x3aUxGeHVJQ0J5YVdkb2REb2dYQ0p5YVdkb2RGd2lMRnh1SUNCMGIzQTZJRndpZEc5d1hDSXNYRzRnSUdKdmRIUnZiVG9nWENKaWIzUjBiMjFjSWl4Y2JuMGdZWE1nWTI5dWMzUTdYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFZHlhV1FnYzNCaFkybHVaeUJ3Y21WelpYUnpJR1p2Y2lCc1lYbHZkWFFnWkdWamIzSmhkRzl5Y3k1Y2JpQXFJRUJ6ZFcxdFlYSjVJRTFoY0hNZ2FIVnRZVzR0Y21WaFpHRmliR1VnWjJGd0lITnBlbVZ6SUhSdklIUm9aU0IwYjJ0bGJuTWdhVzUwWlhKd2NtVjBaV1FnWW5rZ2RHaGxJSEpsYm1SbGNtbHVaeUJsYm1kcGJtVmNiaUFxSUhkb1pXNGdZblZwYkdScGJtY2dRMU5USUdkeWFXUWdiR0Y1YjNWMGN5d2daVzVoWW14cGJtY2djSEpsWkdsamRHRmliR1VnYzNCaFkybHVaeUJoWTNKdmMzTWdZMjl0Y0c5dVpXNTBjeTVjYmlBcUlFQmpiMjV6ZENCTVlYbHZkWFJIY21sa1IyRndjMXh1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnVEdGNWIzVjBSM0pwWkVkaGNITWdQU0I3WEc0Z0lITnRZV3hzT2lCY0luTnRZV3hzWENJc1hHNGdJRzFsWkdsMWJUb2dYQ0p0WldScGRXMWNJaXhjYmlBZ2JHRnlaMlU2SUZ3aWJHRnlaMlZjSWl4Y2JpQWdZMjlzYkdGd2MyVTZJRndpWTI5c2JHRndjMlZjSWl4Y2JpQWdibTl1WlRvZ1hDSmNJaXhjYm4wZ1lYTWdZMjl1YzNRN1hHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVOaGJtOXVhV05oYkNCaFkzUnBiMjRnY205c1pTQnBaR1Z1ZEdsbWFXVnljeUJtYjNJZ1ZVa2dZMjl1ZEhKdmJITXVYRzRnS2lCQWMzVnRiV0Z5ZVNCRmJuVnRaWEpoZEdWeklIUm9aU0J6WlcxaGJuUnBZeUJ5YjJ4bGN5QmhJR0oxZEhSdmJpQnZjaUJoWTNScGIyNGdiV0Y1SUhKbGNISmxjMlZ1ZENCemJ5QmtaV052Y21GMGIzSnpJR0Z1WkZ4dUlDb2djbVZ1WkdWeVpYSnpJR05oYmlCaGRIUmhZMmdnWTI5dWMybHpkR1Z1ZENCaVpXaGhkbWx2Y25NZ1lXNWtJSE4wZVd4cGJtY2dLR2x1WTJ4MVpHbHVaeUJEVWxWRUlIWmxjbUp6SUhScFpXUWdkRzljYmlBcUlHQlBjR1Z5WVhScGIyNUxaWGx6WUNrdVhHNGdLaUJBWTI5dWMzUWdRV04wYVc5dVVtOXNaWE5jYmlBcUwxeHVaWGh3YjNKMElHTnZibk4wSUVGamRHbHZibEp2YkdWeklEMGdlMXh1SUNCallXNWpaV3c2SUZ3aVkyRnVZMlZzWENJc1hHNGdJR052Ym1acGNtMDZJRndpWTI5dVptbHliVndpTEZ4dUlDQnpkV0p0YVhRNklGd2ljM1ZpYldsMFhDSXNYRzRnSUdOc1pXRnlPaUJjSW1Oc1pXRnlYQ0lzWEc0Z0lHSmhZMnM2SUZ3aVltRmphMXdpTEZ4dUlDQmJUM0JsY21GMGFXOXVTMlY1Y3k1RFVrVkJWRVZkT2lCUGNHVnlZWFJwYjI1TFpYbHpMa05TUlVGVVJTeGNiaUFnVzA5d1pYSmhkR2x2Ymt0bGVYTXVVa1ZCUkYwNklFOXdaWEpoZEdsdmJrdGxlWE11VWtWQlJDeGNiaUFnVzA5d1pYSmhkR2x2Ymt0bGVYTXVWVkJFUVZSRlhUb2dUM0JsY21GMGFXOXVTMlY1Y3k1VlVFUkJWRVVzWEc0Z0lGdFBjR1Z5WVhScGIyNUxaWGx6TGtSRlRFVlVSVjA2SUU5d1pYSmhkR2x2Ymt0bGVYTXVSRVZNUlZSRkxGeHVmU0JoY3lCamIyNXpkRHRjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdRV3hzYjNkbFpDQmpiMnh2Y2lCelkyaGxiV1VnZEc5clpXNXpJR1p2Y2lCM2FXNWtiM2RsWkNCemRYSm1ZV05sY3k1Y2JpQXFJRUJ6ZFcxdFlYSjVJRkJ5YjNacFpHVnpJSFJvWlNCemRYQndiM0owWldRZ2RHaGxiV1VnYVdSbGJuUnBabWxsY25NZ1pYaHdiM05sWkNCMGJ5QmpiMjV6ZFcxcGJtY2dZWEJ3Y3lCemJ5QjBhR1Y1WEc0Z0tpQmpZVzRnZEdGeVoyVjBJR3hwWjJoMExDQmtZWEpyTENCdmNpQjFibk5sZENCM2FXNWtiM2NnWTI5c2IzSWdjMk5vWlcxbGN5QnBiaUJoSUhCeVpXUnBZM1JoWW14bElIZGhlUzVjYmlBcUlFQmpiMjV6ZENCWGFXNWtiM2REYjJ4dmNsTmphR1Z0WlhOY2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElGZHBibVJ2ZDBOdmJHOXlVMk5vWlcxbGN5QTlJSHRjYmlBZ2JHbG5hSFE2SUZ3aWJHbG5hSFJjSWl4Y2JpQWdaR0Z5YXpvZ1hDSmtZWEpyWENJc1hHNGdJSFZ1WkdWbWFXNWxaRG9nWENKMWJtUmxabWx1WldSY0lpeGNibjBnWVhNZ1kyOXVjM1E3WEc0aVhYMD0iXX0=
383
+ //# sourceMappingURL=constants.js.map
384
+ //# sourceMappingURL=constants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui/constants.cjs","sourceRoot":"","sources":["ui/constants.js"],"names":[],"mappings":"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"}
@@ -595,5 +595,5 @@ function uitablecol(sequence = constants_js_1.UIKeys.LAST, valueParserFn) {
595
595
  (0, decoration_1.propMetadata)((0, utils_js_1.getUIAttributeKey)(propertyKey, constants_js_1.UIKeys.UILISTPROP), metadata)(target, propertyKey);
596
596
  };
597
597
  }
598
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91aS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsdUJBQW9CO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVlwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFnQjtBQUU1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQUMsR0FBRyxVQUErQjtJQUN2RCxPQUFPLFNBQVMsTUFBTSxDQUFDLE1BQVcsRUFBRSxXQUFpQjtRQUNuRCxPQUFPLFlBQVksQ0FDakIsaUJBQWlCLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFDN0MsVUFBVSxDQUNYLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQUcsVUFBb0I7SUFDN0MsT0FBTyxTQUFTLE9BQU8sQ0FBQyxNQUFXLEVBQUUsV0FBaUI7UUFDcEQsT0FBTyxZQUFZLENBQ2pCLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQy9DLFVBQVUsQ0FDWCxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFHLFVBQW9CO0lBQzdDLE9BQU8sU0FBUyxPQUFPLENBQUMsTUFBVyxFQUFFLFdBQWlCO1FBQ3BELE9BQU8sWUFBWSxDQUNqQixpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFD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QzVCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQXVCO0lBQy9DLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxPQUF1QjtJQUNoRCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUN4QixXQUE4RCxNQUFNLENBQUMsSUFBSSxFQUN6RSxhQUE4QjtJQUU5QixPQUFPLENBQUMsTUFBVyxFQUFFLFdBQWlCLEVBQUUsRUFBRTtRQUN4QyxNQUFNLFFBQVEsR0FBZ0M7WUFDNUMsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFO2dCQUNMLFFBQVE7Z0JBQ1IsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUM7YUFDN0M7U0FDRixDQUFDO1FBQ0YsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQ3ZFLE1BQU0sRUFDTixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVSUtleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHByb3BNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHtcbiAgQ3J1ZE9wZXJhdGlvbktleXMsXG4gIFVJRWxlbWVudE1ldGFkYXRhLFxuICBVSUV2ZW50SGFuZGxlcixcbiAgVUlFdmVudE5hbWUsXG4gIFVJRnVuY3Rpb25MaWtlLFxuICBVSUxheW91dENvbCxcbiAgVUlMYXlvdXRQcm9wTWV0YWRhdGEsXG4gIFVJTGlzdFByb3BNZXRhZGF0YSxcbiAgVUlQcm9wTWV0YWRhdGEsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBnZXRVSUF0dHJpYnV0ZUtleSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IGhpZGVzIGEgcHJvcGVydHkgZHVyaW5nIHNwZWNpZmljIENSVUQgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgQ29udHJvbHMgcHJvcGVydHkgdmlzaWJpbGl0eSBiYXNlZCBvbiBvcGVyYXRpb24gdHlwZVxuICogVGhpcyBkZWNvcmF0b3IgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IHdoaWNoIENSVUQgb3BlcmF0aW9ucyBzaG91bGQgaGlkZSBhIHByb3BlcnR5XG4gKiBpbiB0aGUgVUkuIFRoZSBwcm9wZXJ0eSB3aWxsIG9ubHkgYmUgdmlzaWJsZSBkdXJpbmcgb3BlcmF0aW9ucyBub3Qgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBvcGVyYXRpb25zIC0gVGhlIENSVUQgb3BlcmF0aW9ucyBkdXJpbmcgd2hpY2ggdGhlIHByb3BlcnR5IHNob3VsZCBiZSBoaWRkZW5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiBoaWRlT25cbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhpZGUgdGhlIHBhc3N3b3JkIGZpZWxkIGR1cmluZyBSRUFEIG9wZXJhdGlvbnNcbiAqIGNsYXNzIFVzZXIge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgdXNlcm5hbWU6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAaGlkZU9uKE9wZXJhdGlvbktleXMuUkVBRClcbiAqICAgcGFzc3dvcmQ6IHN0cmluZztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IGhpZGVPblxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgVUlcbiAqICAgTW9kZWwtPj5oaWRlT246IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIGhpZGVPbi0+Pk1vZGVsOiBBZGQgaGlkZGVuIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBDaGVjayBpZiBwcm9wZXJ0eSBzaG91bGQgYmUgaGlkZGVuXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gaGlkZGVuIG9wZXJhdGlvbnNcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+VUk6IFJlbmRlciBvciBoaWRlIGJhc2VkIG9uIGN1cnJlbnQgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWRlT24oLi4ub3BlcmF0aW9uczogQ3J1ZE9wZXJhdGlvbktleXNbXSkge1xuICByZXR1cm4gZnVuY3Rpb24gaGlkZU9uKG9iamVjdDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgIHJldHVybiBwcm9wTWV0YWRhdGEoXG4gICAgICBnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLkhJRERFTiksXG4gICAgICBvcGVyYXRpb25zXG4gICAgKShvYmplY3QsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgaGlkZXMgYSBwcm9wZXJ0eSBmb3Igc3BlY2lmaWMgbmFtZXNwYWNlcy5cbiAqIEBzdW1tYXJ5IENvbnRyb2xzIHByb3BlcnR5IHZpc2liaWxpdHkgYmFzZWQgb24gbmFtZXNwYWNlIG1lbWJlcnNoaXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWRlRm9yKC4uLm5hbWVzcGFjZXM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBmdW5jdGlvbiBoaWRlRm9yKG9iamVjdDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgIHJldHVybiBwcm9wTWV0YWRhdGEoXG4gICAgICBnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLkhJREVfRk9SKSxcbiAgICAgIG5hbWVzcGFjZXNcbiAgICApKG9iamVjdCwgcHJvcGVydHlLZXkpO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBzaG93cyBhIHByb3BlcnR5IG9ubHkgZm9yIHNwZWNpZmljIG5hbWVzcGFjZXMuXG4gKiBAc3VtbWFyeSBOYW1lc3BhY2UtYXdhcmUgY291bnRlcnBhcnQgdG8gYGhpZGVGb3JgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvd0ZvciguLi5uYW1lc3BhY2VzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gZnVuY3Rpb24gc2hvd0ZvcihvYmplY3Q6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpIHtcbiAgICByZXR1cm4gcHJvcE1ldGFkYXRhKFxuICAgICAgZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcGVydHlLZXksIFVJS2V5cy5TSE9XX0ZPUiksXG4gICAgICBuYW1lc3BhY2VzXG4gICAgKShvYmplY3QsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgcmVuZGVycyBhIHByb3BlcnR5IG9ubHkgd2hlbiB0aGUgbmFtZXNwYWNlIG1hdGNoZXMuXG4gKiBAc3VtbWFyeSBDb252ZW5pZW5jZSBhbGlhcyBmb3IgbmFtZXNwYWNlLXNjb3BlZCB2aXNpYmlsaXR5IGNvbnRyb2wuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJJZiguLi5uYW1lc3BhY2VzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gc2hvd0ZvciguLi5uYW1lc3BhY2VzKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgc2V0cyB0aGUgb3JkZXIgb2YgYSBVSSBlbGVtZW50XG4gKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHJlbmRlcmluZyBvcmRlciBmb3IgVUkgY29tcG9uZW50c1xuICogVGhpcyBkZWNvcmF0b3IgYXBwbGllcyBtZXRhZGF0YSB0byB0aGUgcHJvcGVydHkgb3IgY2xhc3MsIGluZGljYXRpbmcgaXRzIG9yZGVyIGluIHRoZSBVSSByZW5kZXJpbmcgc2VxdWVuY2UuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IFtvcmRlcj0xXSBUaGUgb3JkZXIgdmFsdWUgZm9yIHRoZSBVSSBlbGVtZW50IChkZWZhdWx0IGlzIDEpXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBvciBjbGFzcyBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWlvcmRlclxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU2V0IG9yZGVyIGZvciBhIGZpZWxkXG4gKiBAdWlvcmRlcigyKVxuICogZmllbGROYW1lOiBzdHJpbmc7XG4gKlxuICogLy8gU2V0IG9yZGVyIGZvciBhIGNsYXNzXG4gKiBAdWlvcmRlcigxKVxuICogY2xhc3MgVXNlclByb2ZpbGUgeyAuLi4gfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgU3lzdGVtXG4gKiAgIHBhcnRpY2lwYW50IHVpb3JkZXJcbiAqICAgcGFydGljaXBhbnQgcHJvcGVydHlcbiAqICAgU3lzdGVtLT4+dWlvcmRlcjpkbyhwcm9wZXJ0eSlcbiAqICAgdWlvcmRlci0+PnByb3BlcnR5OiBzZXRzIG9yZGVyIG1ldGFkYXRhXG4gKiAgIHVpb3JkZXItPj5TeXN0ZW06IHJldHVybnMgZGVjb3JhdGVkIHByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aW9yZGVyKFxuICBvcmRlcjogbnVtYmVyIHwgdHlwZW9mIFVJS2V5cy5GSVJTVCB8IHR5cGVvZiBVSUtleXMuTEFTVCA9IFVJS2V5cy5GSVJTVFxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiB1aW9yZGVyKG9iamVjdDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgIHJldHVybiBwcm9wTWV0YWRhdGEoZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcGVydHlLZXksIFVJS2V5cy5PUkRFUiksIG9yZGVyKShcbiAgICAgIG9iamVjdCxcbiAgICAgIHByb3BlcnR5S2V5XG4gICAgKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgY29tcGxldGVseSBoaWRlcyBhIHByb3BlcnR5IGluIGFsbCBVSSBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBNYWtlcyBhIHByb3BlcnR5IGludmlzaWJsZSBpbiBhbGwgQ1JVRCBvcGVyYXRpb25zXG4gKiBUaGlzIGRlY29yYXRvciBpcyBhIGNvbnZlbmllbmNlIHdyYXBwZXIgYXJvdW5kIGhpZGVPbiB0aGF0IGhpZGVzIGEgcHJvcGVydHlcbiAqIGR1cmluZyBhbGwgQ1JVRCBvcGVyYXRpb25zIChDUkVBVEUsIFJFQUQsIFVQREFURSwgREVMRVRFKS5cbiAqXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gaGlkZGVuXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb21wbGV0ZWx5IGhpZGUgdGhlIGludGVybmFsSWQgZmllbGQgaW4gdGhlIFVJXG4gKiBjbGFzcyBQcm9kdWN0IHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIG5hbWU6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAaGlkZGVuKClcbiAqICAgaW50ZXJuYWxJZDogc3RyaW5nO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgaGlkZGVuXG4gKiAgIHBhcnRpY2lwYW50IGhpZGVPblxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgTW9kZWwtPj5oaWRkZW46IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIGhpZGRlbi0+PmhpZGVPbjogQ2FsbCB3aXRoIGFsbCBvcGVyYXRpb25zXG4gKiAgIGhpZGVPbi0+Pk1vZGVsOiBBZGQgaGlkZGVuIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBDaGVjayBpZiBwcm9wZXJ0eSBzaG91bGQgYmUgaGlkZGVuXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gYWxsIG9wZXJhdGlvbnNcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+VUk6IEFsd2F5cyBoaWRlIHByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWRkZW4oKSB7XG4gIHJldHVybiBoaWRlT24oXG4gICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgT3BlcmF0aW9uS2V5cy5SRUFELFxuICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgIE9wZXJhdGlvbktleXMuREVMRVRFXG4gICk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IHNwZWNpZmllcyBob3cgYSBwcm9wZXJ0eSBzaG91bGQgYmUgcmVuZGVyZWQgYXMgYSBVSSBlbGVtZW50XG4gKiBAc3VtbWFyeSBNYXBzIGEgbW9kZWwgcHJvcGVydHkgdG8gYSBzcGVjaWZpYyBVSSBlbGVtZW50IHdpdGggY3VzdG9tIHByb3BlcnRpZXNcbiAqIFRoaXMgZGVjb3JhdG9yIGFsbG93cyB5b3UgdG8gZGVmaW5lIHdoaWNoIEhUTUwgZWxlbWVudCBvciBjb21wb25lbnQgc2hvdWxkIGJlIHVzZWRcbiAqIHRvIHJlbmRlciBhIHNwZWNpZmljIHByb3BlcnR5LCBhbG9uZyB3aXRoIGFueSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGF0IGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgSFRNTCBlbGVtZW50IG9yIGNvbXBvbmVudCB0YWcgbmFtZSB0byB1c2UgZm9yIHJlbmRlcmluZ1xuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbcHJvcHNdIEFkZGl0aW9uYWwgcHJvcGVydGllcyB0byBwYXNzIHRvIHRoZSBlbGVtZW50XG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtzZXJpYWxpemU9ZmFsc2VdIFdoZXRoZXIgdGhlIHByb3BlcnR5IHNob3VsZCBiZSBzZXJpYWxpemVkXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWllbGVtZW50XG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBSZW5kZXIgYSBwcm9wZXJ0eSBhcyBhIHRleHQgaW5wdXRcbiAqIGNsYXNzIExvZ2luRm9ybSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWllbGVtZW50KCdpbnB1dCcsIHsgdHlwZTogJ3RleHQnLCBwbGFjZWhvbGRlcjogJ0VudGVyIHVzZXJuYW1lJyB9KVxuICogICB1c2VybmFtZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWVsZW1lbnQoJ2lucHV0JywgeyB0eXBlOiAncGFzc3dvcmQnLCBwbGFjZWhvbGRlcjogJ0VudGVyIHBhc3N3b3JkJyB9KVxuICogICBwYXNzd29yZDogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWVsZW1lbnQoJ2J1dHRvbicsIHsgY2xhc3M6ICdidG4tcHJpbWFyeScgfSlcbiAqICAgc3VibWl0OiBzdHJpbmcgPSAnTG9naW4nO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgdWllbGVtZW50XG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBwYXJ0aWNpcGFudCBVSVxuICogICBNb2RlbC0+PnVpZWxlbWVudDogQXBwbHkgdG8gcHJvcGVydHlcbiAqICAgdWllbGVtZW50LT4+TW9kZWw6IEFkZCBlbGVtZW50IG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBHZXQgZWxlbWVudCBtZXRhZGF0YVxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIHRhZyBhbmQgcHJvcHNcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+VUk6IFJlbmRlciB3aXRoIHNwZWNpZmllZCBlbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aWVsZW1lbnQoXG4gIHRhZzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgYW55PixcbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBzZXJpYWxpemU6IGJvb2xlYW4gPSBmYWxzZVxuKSB7XG4gIHJldHVybiAob3JpZ2luYWw6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpID0+IHtcbiAgICBpZiAodHlwZW9mIHRhZyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgcHJvcHMgPSB0YWc7XG4gICAgICB0YWcgPSBcIlwiO1xuICAgIH1cbiAgICBjb25zdCBtZXRhZGF0YTogVUlFbGVtZW50TWV0YWRhdGEgPSB7XG4gICAgICB0YWc6IHRhZyBhcyBzdHJpbmcsXG4gICAgICBzZXJpYWxpemU6IHNlcmlhbGl6ZSxcbiAgICAgIHByb3BzOiBPYmplY3QuYXNzaWduKHt9LCBwcm9wcyB8fCB7fSwge1xuICAgICAgICBuYW1lOiBwcm9wZXJ0eUtleSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICByZXR1cm4gcHJvcE1ldGFkYXRhKFxuICAgICAgZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcGVydHlLZXksIFVJS2V5cy5FTEVNRU5UKSxcbiAgICAgIG1ldGFkYXRhXG4gICAgKShvcmlnaW5hbCwgcHJvcGVydHlLZXkpO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBtYXBzIGEgbW9kZWwgcHJvcGVydHkgdG8gYSBVSSBjb21wb25lbnQgcHJvcGVydHlcbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyBob3cgYSBwcm9wZXJ0eSBzaG91bGQgYmUgcGFzc2VkIHRvIGEgVUkgY29tcG9uZW50XG4gKiBUaGlzIGRlY29yYXRvciBhbGxvd3MgeW91IHRvIGRlZmluZSBob3cgYSBtb2RlbCBwcm9wZXJ0eSBzaG91bGQgYmUgbWFwcGVkIHRvXG4gKiBhIHByb3BlcnR5IG9mIHRoZSBVSSBjb21wb25lbnQgd2hlbiByZW5kZXJpbmcuIEl0IHJlcXVpcmVzIHRoZSBjbGFzcyB0byBiZVxuICogZGVjb3JhdGVkIHdpdGggQHVpbW9kZWwuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFtwcm9wTmFtZV0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHBhc3MgdG8gdGhlIGNvbXBvbmVudCAoZGVmYXVsdHMgdG8gdGhlIHByb3BlcnR5IGtleSlcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3N0cmluZ2lmeT1mYWxzZV0gV2hldGhlciB0byBzdHJpbmdpZnkgdGhlIHByb3BlcnR5IHZhbHVlXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWlwcm9wXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNYXAgbW9kZWwgcHJvcGVydGllcyB0byBjb21wb25lbnQgcHJvcGVydGllc1xuICogQHVpbW9kZWwoJ3VzZXItcHJvZmlsZScpXG4gKiBjbGFzcyBVc2VyUHJvZmlsZSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwcm9wKCkgLy8gV2lsbCBiZSBwYXNzZWQgYXMgJ2Z1bGxOYW1lJyB0byB0aGUgY29tcG9uZW50XG4gKiAgIGZ1bGxOYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcHJvcCgndXNlckVtYWlsJykgLy8gV2lsbCBiZSBwYXNzZWQgYXMgJ3VzZXJFbWFpbCcgdG8gdGhlIGNvbXBvbmVudFxuICogICBlbWFpbDogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXByb3AoJ3VzZXJEYXRhJywgdHJ1ZSkgLy8gV2lsbCBiZSBwYXNzZWQgYXMgc3RyaW5naWZpZWQgSlNPTlxuICogICB1c2VyRGF0YTogUmVjb3JkPHN0cmluZywgYW55PjtcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpcHJvcFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgQ29tcG9uZW50XG4gKiAgIE1vZGVsLT4+dWlwcm9wOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aXByb3AtPj5Nb2RlbDogQWRkIHByb3AgbWV0YWRhdGFcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TW9kZWw6IEdldCBwcm9wIG1ldGFkYXRhXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gcHJvcCBuYW1lIGFuZCBzdHJpbmdpZnkgZmxhZ1xuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Db21wb25lbnQ6IFBhc3MgcHJvcGVydHkgd2l0aCBzcGVjaWZpZWQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdWlwcm9wKFxuICBwcm9wTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBzdHJpbmdpZnk6IGJvb2xlYW4gPSBmYWxzZVxuKSB7XG4gIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5PzogYW55KSA9PiB7XG4gICAgY29uc3QgbWV0YWRhdGE6IFVJUHJvcE1ldGFkYXRhID0ge1xuICAgICAgbmFtZTogcHJvcE5hbWUgfHwgcHJvcGVydHlLZXksXG4gICAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeSxcbiAgICB9O1xuICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLlBST1ApLCBtZXRhZGF0YSkoXG4gICAgICB0YXJnZXQsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IG1hcHMgYSBuZXN0ZWQgbW9kZWwgcHJvcGVydHkgdG8gYSBVSSBjb21wb25lbnQgcHJvcGVydHkuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGhvdyBhIHBhcmVudCBjb21wb25lbnQgc2hvdWxkIHJlbmRlciB0aGUgY2hpbGQgbW9kZWwgd2hlbiBuZXN0ZWQuXG4gKlxuICogVGhpcyBkZWNvcmF0b3IgaXMgdXNlZCB0byBkZWNvcmF0ZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5lc3RlZCBtb2RlbHMuXG4gKiBXaGVuIGFwcGxpZWQsIGl0IGFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHRhZyBvZiB0aGUgY2hpbGQgbW9kZWwgd2l0aCB0aGUgcHJvdmlkZWQgb25lLFxuICogZW5hYmxpbmcgZGlmZmVyZW50IHJlbmRlcmluZyBiZWhhdmlvciB3aGVuIHRoZSBtb2RlbCBhY3RzIGFzIGEgY2hpbGQgKG5lc3RlZClcbiAqIGNvbXBhcmVkIHRvIHdoZW4gaXQgaXMgcmVuZGVyZWQgYXMgdGhlIHBhcmVudCBtb2RlbC5cbiAqXG4gKiBJdCByZXF1aXJlcyB0aGUgY2xhc3MgdG8gYmUgZGVjb3JhdGVkIHdpdGggYEB1aW1vZGVsYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2xhenogVGhlIG1vZGVsIGNsYXNzIG5hbWUgdG8gcGFzcyB0byB0aGUgY29tcG9uZW50IChkZWZhdWx0cyB0byB0aGUgcHJvcGVydHkga2V5KS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIEhUTUwgZWxlbWVudCBvciBjb21wb25lbnQgdGFnIG5hbWUgdG8gb3ZlcnJpZGUgdGhlIFVJIHRhZyBvZiB0aGUgbmVzdGVkIG1vZGVsXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFtwcm9wc10gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NlcmlhbGl6ZT1mYWxzZV0gV2hldGhlciB0aGUgcHJvcGVydHkgc2hvdWxkIGJlIHNlcmlhbGl6ZWRcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvbi5cbiAqXG4gKiBAZnVuY3Rpb24gdWljaGlsZFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTWFwIGEgbmVzdGVkIG1vZGVsIHRvIGEgY29tcG9uZW50IHByb3BlcnR5IHdpdGggYSBkaWZmZXJlbnQgdGFnIHdoZW4gbmVzdGVkXG4gKiBAdWltb2RlbCgnYWRkcmVzcy1jb21wb25lbnQnKVxuICogY2xhc3MgQWRkcmVzcyB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBzdHJlZXQ6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBjaXR5OiBzdHJpbmc7XG4gKiB9XG4gKlxuICogQHVpbW9kZWwoJ3VzZXItcHJvZmlsZScpXG4gKiBjbGFzcyBVc2VyUHJvZmlsZSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWljaGlsZChBZGRyZXNzLm5hbWUsICdhZGRyZXNzLWNoaWxkLWNvbXBvbmVudCcpXG4gKiAgIGFkZHJlc3M6IEFkZHJlc3M7XG4gKiB9XG4gKlxuICogLy8gSW4gdGhpcyBleGFtcGxlLCB0aGUgQWRkcmVzcyBtb2RlbCBoYXMgdGhlIGRlZmF1bHQgdGFnICdhZGRyZXNzLWNvbXBvbmVudCcgd2hlbiByZW5kZXJlZCBhcyBhIHJvb3QgY29tcG9uZW50LFxuICogLy8gYnV0IHdoZW4gdXNlZCBpbnNpZGUgVXNlclByb2ZpbGUsIGl0IGlzIHJlbmRlcmVkIHdpdGggdGhlIG92ZXJyaWRkZW4gdGFnICdhZGRyZXNzLWNoaWxkLWNvbXBvbmVudCdcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpY2hpbGRcbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIHBhcnRpY2lwYW50IENvbXBvbmVudFxuICogICBNb2RlbC0+PnVpY2hpbGQ6IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIHVpY2hpbGQtPj5Nb2RlbDogQWRkIGNoaWxkIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBHZXQgY2hpbGQgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiBwcm9wIG5hbWUsIHN0cmluZ2lmeSBmbGFnLCBhbmQgY2hpbGQgdGFnIG92ZXJyaWRlXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PkNvbXBvbmVudDogUGFzcyBwcm9wZXJ0eSB3aXRoIHNwZWNpZmllZCBuYW1lIGFuZCByZW5kZXIgd2l0aCBvdmVycmlkZGVuIHRhZyBpZiBuZXN0ZWRcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gdWljaGlsZChcbiAgY2xheno6IHN0cmluZyxcbiAgdGFnOiBzdHJpbmcsXG4gIHByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4gIGlzQXJyYXk6IGJvb2xlYW4gPSBmYWxzZSxcbiAgc2VyaWFsaXplOiBib29sZWFuID0gZmFsc2Vcbikge1xuICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkgPT4ge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBVSUVsZW1lbnRNZXRhZGF0YSA9IHtcbiAgICAgIHRhZzogdGFnLFxuICAgICAgc2VyaWFsaXplOiBzZXJpYWxpemUsXG4gICAgICBwcm9wczogT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIHByb3BzIHx8IHt9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogY2xhenogfHwgcHJvcGVydHlLZXksXG4gICAgICAgIH0sXG4gICAgICAgIGlzQXJyYXlcbiAgICAgICAgICA/IHsgY3VzdG9tVHlwZXM6IFtBcnJheS5uYW1lXSwgbXVsdGlwbGU6IHRydWUgfVxuICAgICAgICAgIDogeyBtdWx0aXBsZTogcHJvcHM/Lm11bHRpcGxlIHx8IGZhbHNlIH1cbiAgICAgICksXG4gICAgfTtcblxuICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLkNISUxEKSwgbWV0YWRhdGEpKFxuICAgICAgdGFyZ2V0LFxuICAgICAgcHJvcGVydHlLZXlcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBtYXBzIGEgbW9kZWwgcHJvcGVydHkgdG8gYSBsaXN0IGl0ZW0gY29tcG9uZW50XG4gKiBAc3VtbWFyeSBTcGVjaWZpZXMgaG93IGEgcHJvcGVydHkgc2hvdWxkIGJlIHJlbmRlcmVkIGluIGEgbGlzdCBjb250ZXh0XG4gKiBUaGlzIGRlY29yYXRvciBhbGxvd3MgeW91IHRvIGRlZmluZSBob3cgYSBtb2RlbCBwcm9wZXJ0eSBjb250YWluaW5nIGEgbGlzdFxuICogc2hvdWxkIGJlIHJlbmRlcmVkLiBJdCByZXF1aXJlcyB0aGUgY2xhc3MgdG8gYmUgZGVjb3JhdGVkIHdpdGggQHVpbGlzdG1vZGVsLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcHJvcE5hbWVdIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBwYXNzIHRvIHRoZSBsaXN0IGNvbXBvbmVudCAoZGVmYXVsdHMgdG8gdGhlIHByb3BlcnR5IGtleSlcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3Byb3BzXSBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGUgbGlzdCBjb250YWluZXJcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiB1aWxpc3Rwcm9wXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBEZWZpbmUgYSBsaXN0IHByb3BlcnR5IHdpdGggY3VzdG9tIHJlbmRlcmluZ1xuICogQHVpbW9kZWwoJ3RvZG8tbGlzdCcpXG4gKiBjbGFzcyBUb2RvTGlzdCB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICB0aXRsZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWxpc3Rwcm9wKCdpdGVtcycsIHsgY2xhc3M6ICd0b2RvLWl0ZW1zLWNvbnRhaW5lcicgfSlcbiAqICAgaXRlbXM6IFRvZG9JdGVtW107XG4gKiB9XG4gKlxuICogQHVpbGlzdG1vZGVsKCdsaScsIHsgY2xhc3M6ICd0b2RvLWl0ZW0nIH0pXG4gKiBjbGFzcyBUb2RvSXRlbSBleHRlbmRzIE1vZGVsIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIHRleHQ6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBjb21wbGV0ZWQ6IGJvb2xlYW47XG4gKiB9XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBNb2RlbFxuICogICBwYXJ0aWNpcGFudCB1aWxpc3Rwcm9wXG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBwYXJ0aWNpcGFudCBMaXN0Q29udGFpbmVyXG4gKiAgIHBhcnRpY2lwYW50IExpc3RJdGVtc1xuICogICBNb2RlbC0+PnVpbGlzdHByb3A6IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIHVpbGlzdHByb3AtPj5Nb2RlbDogQWRkIGxpc3QgcHJvcCBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogR2V0IGxpc3QgcHJvcCBtZXRhZGF0YVxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIHByb3AgbmFtZSBhbmQgY29udGFpbmVyIHByb3BzXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pkxpc3RDb250YWluZXI6IENyZWF0ZSBjb250YWluZXIgd2l0aCBwcm9wc1xuICogICBSZW5kZXJpbmdFbmdpbmUtPj5MaXN0SXRlbXM6IFJlbmRlciBlYWNoIGl0ZW0gdXNpbmcgQHVpbGlzdG1vZGVsXG4gKiAgIExpc3RDb250YWluZXItPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiByZW5kZXJlZCBsaXN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aWxpc3Rwcm9wKFxuICBwcm9wTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT5cbikge1xuICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkgPT4ge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBQYXJ0aWFsPFVJTGlzdFByb3BNZXRhZGF0YT4gPSB7XG4gICAgICBuYW1lOiBwcm9wTmFtZSB8fCBwcm9wZXJ0eUtleSxcbiAgICAgIHByb3BzOiBwcm9wcyB8fCB7fSxcbiAgICB9O1xuICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLlVJTElTVFBST1ApLCBtZXRhZGF0YSkoXG4gICAgICB0YXJnZXQsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IHBvc2l0aW9ucyBhIHByb3BlcnR5IGluIGEgc3BlY2lmaWMgZ3JpZCBsYXlvdXQgcG9zaXRpb25cbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgY29sdW1uIGFuZCByb3cgcG9zaXRpb24gZm9yIGEgcHJvcGVydHkgaW4gYSBVSSBsYXlvdXQgZ3JpZFxuICogVGhpcyBkZWNvcmF0b3IgYWxsb3dzIHlvdSB0byBkZWZpbmUgdGhlIHNwZWNpZmljIHBvc2l0aW9uIG9mIGEgcHJvcGVydHkgd2l0aGluXG4gKiBhIGdyaWQtYmFzZWQgbGF5b3V0IHN5c3RlbS4gSXQgc3BlY2lmaWVzIHdoaWNoIGNvbHVtbiBhbmQgcm93IHRoZSBwcm9wZXJ0eVxuICogc2hvdWxkIG9jY3VweSB3aGVuIHJlbmRlcmVkIGluIHRoZSBVSS5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29sIFRoZSBjb2x1bW4gcG9zaXRpb24gaW4gdGhlIGdyaWQgbGF5b3V0XG4gKiBAcGFyYW0ge251bWJlcn0gW3Jvdz0xXSBUaGUgcm93IHBvc2l0aW9uIGluIHRoZSBncmlkIGxheW91dCAoZGVmYXVsdHMgdG8gMSlcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3Byb3BzPXt9XSBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGUgbGF5b3V0IGl0ZW1cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiB1aWxheW91dHByb3BcbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFBvc2l0aW9uIHByb3BlcnRpZXMgaW4gYSBncmlkIGxheW91dFxuICogQHVpbGF5b3V0KCd1c2VyLWZvcm0nLCAyLCAzKSAvLyAyIGNvbHVtbnMsIDMgcm93c1xuICogQG1vZGVsKClcbiAqIGNsYXNzIFVzZXJGb3JtIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWxheW91dHByb3AoMSwgMSkgLy8gT25lIGNvbHVtbiwgZmlyc3Qgcm93XG4gKiAgIGZpcnN0TmFtZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWxheW91dHByb3AoMiwgMSkgLy8gT25lIGNvbHVtbiwgZmlyc3Qgcm93XG4gKiAgIGxhc3ROYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGF5b3V0cHJvcCgxLCAyKSAvLyBPbmUgY29sdW1uLCBzZWNvbmQgcm93XG4gKiAgIGVtYWlsOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGF5b3V0cHJvcCgyLCAzKSAvLyBBbGwgY29sdW1ucywgdGhpcmQgcm93XG4gKiAgIGJpbzogc3RyaW5nO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgdWlsYXlvdXRwcm9wXG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBwYXJ0aWNpcGFudCBMYXlvdXRDb250YWluZXJcbiAqICAgTW9kZWwtPj51aWxheW91dHByb3A6IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIHVpbGF5b3V0cHJvcC0+Pk1vZGVsOiBBZGQgbGF5b3V0IGl0ZW0gbWV0YWRhdGFcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TW9kZWw6IEdldCBsYXlvdXQgaXRlbSBtZXRhZGF0YVxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIGNvbHVtbiwgcm93LCBhbmQgcHJvcHNcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TGF5b3V0Q29udGFpbmVyOiBQb3NpdGlvbiBlbGVtZW50IGF0IGdyaWQgY29vcmRpbmF0ZXNcbiAqICAgTGF5b3V0Q29udGFpbmVyLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gcG9zaXRpb25lZCBlbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aWxheW91dHByb3AoY29sOiBVSUxheW91dENvbCA9IDEsIHJvdzogbnVtYmVyID0gMSkge1xuICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkgPT4ge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBVSUxheW91dFByb3BNZXRhZGF0YSA9IHtcbiAgICAgIG5hbWU6IHByb3BlcnR5S2V5LFxuICAgICAgLy8gY29sLFxuICAgICAgLy8gcm93LFxuICAgICAgcHJvcHM6IE9iamVjdC5hc3NpZ24oe30sIHsgcm93LCBjb2wgfSksXG4gICAgfTtcbiAgICBwcm9wTWV0YWRhdGEoZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcGVydHlLZXksIFVJS2V5cy5VSUxBWU9VVFBST1ApLCBtZXRhZGF0YSkoXG4gICAgICB0YXJnZXQsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IGFzc2lnbnMgYSBwcm9wZXJ0eSB0byBhIHNwZWNpZmljIHBhZ2UgaW4gbXVsdGktcGFnZSBmb3Jtc1xuICogQHN1bW1hcnkgU3BlY2lmaWVzIHdoaWNoIHBhZ2UgYSBwcm9wZXJ0eSBzaG91bGQgYXBwZWFyIG9uIGluIHBhZ2luYXRlZCBVSSBsYXlvdXRzXG4gKiBUaGlzIGRlY29yYXRvciBhcHBsaWVzIG1ldGFkYXRhIHRvIHRoZSBwcm9wZXJ0eSwgaW5kaWNhdGluZyB3aGljaCBwYWdlIG51bWJlciBpdCBiZWxvbmdzIHRvXG4gKiBpbiBhIG11bHRpLXBhZ2UgZm9ybSBvciB3aXphcmQuIFByb3BlcnRpZXMgd2l0aCB0aGUgc2FtZSBwYWdlIG51bWJlciBhcmUgZ3JvdXBlZCB0b2dldGhlclxuICogYW5kIHJlbmRlcmVkIG9uIHRoZSBzYW1lIHBhZ2UuIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBAdWlzdGVwcGVkbW9kZWwgdG9cbiAqIG9yZ2FuaXplIGxhcmdlIGZvcm1zIGludG8gbWFuYWdlYWJsZSBzZWN0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gW3BhZ2U9MV0gVGhlIHBhZ2UgbnVtYmVyIHdoZXJlIHRoZSBwcm9wZXJ0eSBzaG91bGQgYXBwZWFyIChkZWZhdWx0IGlzIDEpXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWlwYWdlcHJvcFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3JlYXRlIGEgbXVsdGktc3RlcCByZWdpc3RyYXRpb24gZm9ybSB3aXRoIHBhZ2UtYmFzZWQgbGF5b3V0XG4gKiBAdWlzdGVwcGVkbW9kZWwoJ3JlZ2lzdHJhdGlvbi1mb3JtJywgMiwgdHJ1ZSlcbiAqIEBtb2RlbCgpXG4gKiBjbGFzcyBSZWdpc3RyYXRpb25Gb3JtIHtcbiAqICAgLy8gUGFnZSAxOiBQZXJzb25hbCBJbmZvcm1hdGlvblxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMSlcbiAqICAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMSlcbiAqICAgbGFzdE5hbWU6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwYWdlcHJvcCgxKVxuICogICBkYXRlT2ZCaXJ0aDogRGF0ZTtcbiAqXG4gKiAgIC8vIFBhZ2UgMjogQ29udGFjdCBJbmZvcm1hdGlvblxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMilcbiAqICAgZW1haWw6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwYWdlcHJvcCgyKVxuICogICBwaG9uZTogc3RyaW5nO1xuICpcbiAqICAgLy8gUGFnZSAzOiBDb25maXJtYXRpb25cbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXBhZ2Vwcm9wKDMpXG4gKiAgIGFjY2VwdFRlcm1zOiBib29sZWFuO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgdWlwYWdlcHJvcFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgUGFnaW5hdGlvbkNvbnRyb2xsZXJcbiAqICAgcGFydGljaXBhbnQgVUlcbiAqICAgTW9kZWwtPj51aXBhZ2Vwcm9wOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aXBhZ2Vwcm9wLT4+TW9kZWw6IEFkZCBwYWdlIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBHZXQgcGFnZSBtZXRhZGF0YVxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIHBhZ2UgbnVtYmVyXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PlBhZ2luYXRpb25Db250cm9sbGVyOiBHcm91cCBwcm9wZXJ0aWVzIGJ5IHBhZ2VcbiAqICAgUGFnaW5hdGlvbkNvbnRyb2xsZXItPj5VSTogUmVuZGVyIGN1cnJlbnQgcGFnZSBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aXBhZ2Vwcm9wKHBhZ2U6IG51bWJlciA9IDEpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVpcGFnZXByb3Aob3JpZ2luYWw6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpIHtcbiAgICByZXR1cm4gcHJvcE1ldGFkYXRhKGdldFVJQXR0cmlidXRlS2V5KHByb3BlcnR5S2V5LCBVSUtleXMuUEFHRSksIHBhZ2UpKFxuICAgICAgb3JpZ2luYWwsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQSBkZWNvcmF0b3IgZmFjdG9yeSB0aGF0IGJpbmRzIGEgVUkgZXZlbnQgdG8gYSBzcGVjaWZpZWQgaGFuZGxlciBmdW5jdGlvbi5cbiAqIFRoaXMgaXMgdXNlZCB0byBhdHRhY2ggZXZlbnQgaGFuZGxlcnMgdG8gc3BlY2lmaWMgbGlmZWN5Y2xlIGV2ZW50cyBvZiBhIGBEZWNhZkNvbXBvbmVudGAsXG4gKiBzdWNoIGFzIGByZW5kZXJgIHwgYGluaXRpYWxpemVgIHwgYGhhbmRsZUNsaWNrYCB8IGByZWZyZXNoYFxuICpcbiAqIEBwYXJhbSBldmVudCAtIFRoZSBuYW1lIG9mIHRoZSBsaWZlY3ljbGUgZXZlbnQgdG8gYmluZCB0aGUgaGFuZGxlciB0by5cbiAqICAgICAgICAgICAgICAgIE11c3QgYmUgb25lIG9mIHRoZSBrZXlzIGluIGBQaWNrPERlY2FmQ29tcG9uZW50LCAncmVuZGVyJyB8ICdpbml0aWFsaXplJz5gLlxuICogQHBhcmFtIGhhbmRsZXIgLSBUaGUgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgd2hlbiB0aGUgc3BlY2lmaWVkIGV2ZW50IG9jY3Vycy5cbiAqXG4gKiBAcmV0dXJucyBBIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGFwcGxpZXMgdGhlIGV2ZW50LWhhbmRsZXIgYmluZGluZyB0byB0aGUgdGFyZ2V0IG9iamVjdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY2xhc3MgTXlDb21wb25lbnQge1xuICogICBAdWlvbigncmVuZGVyJywgKCkgPT4gY29uc29sZS5sb2coJ1JlbmRlcmluZy4uLicpKVxuICogICBzb21lUHJvcGVydHk6IHN0cmluZztcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdWlvbihcbiAgZXZlbnQ6IFVJRXZlbnROYW1lLFxuICBoYW5kbGVyOiBVSUV2ZW50SGFuZGxlclxuKTogKG9yaWdpbmFsOiBvYmplY3QsIHByb3BlcnR5S2V5Pzogc3RyaW5nKSA9PiB2b2lkO1xuZXhwb3J0IGZ1bmN0aW9uIHVpb24oXG4gIGV2ZW50czogUmVjb3JkPHN0cmluZywgVUlFdmVudEhhbmRsZXI+XG4pOiAob3JpZ2luYWw6IG9iamVjdCwgcHJvcGVydHlLZXk/OiBzdHJpbmcpID0+IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gdWlvbihcbiAgZXZlbnQ6IFVJRXZlbnROYW1lIHwgUmVjb3JkPHN0cmluZywgVUlFdmVudEhhbmRsZXI+LFxuICBoYW5kbGVyPzogVUlFdmVudEhhbmRsZXJcbikge1xuICByZXR1cm4gZnVuY3Rpb24gdWlvbihvcmlnaW5hbDogb2JqZWN0LCBwcm9wZXJ0eUtleT86IHN0cmluZykge1xuICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSBhcyBzdHJpbmcsIFVJS2V5cy5FVkVOVFMpLCB7XG4gICAgICAuLi4odHlwZW9mIGV2ZW50ID09PSBcIm9iamVjdFwiID8gZXZlbnQgOiB7IFtldmVudF06IGhhbmRsZXIgfSksXG4gICAgfSkob3JpZ2luYWwsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBBIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGFzc29jaWF0ZXMgYSBVSSBjbGljayBoYW5kbGVyIHdpdGggdGhlICdoYW5kbGVDbGljaycgZXZlbnQuXG4gKlxuICogQHBhcmFtIGhhbmRsZXIgLSBBIGZ1bmN0aW9uIHRoYXQgY29uZm9ybXMgdG8gdGhlIGBVSUV2ZW50SGFuZGxlcmAgdHlwZSwgd2hpY2ggd2lsbCBiZSBleGVjdXRlZFxuICogICAgICAgICAgICAgICAgICB3aGVuIHRoZSAnaGFuZGxlQ2xpY2snIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAqIEByZXR1cm5zIEEgZGVjb3JhdGVkIGZ1bmN0aW9uIHRoYXQgYmluZHMgdGhlIGhhbmRsZXIgdG8gdGhlICdoYW5kbGVDbGljaycgZXZlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aW9uY2xpY2soaGFuZGxlcjogVUlFdmVudEhhbmRsZXIpIHtcbiAgcmV0dXJuIHVpb24oXCJoYW5kbGVDbGlja1wiLCBoYW5kbGVyKTtcbn1cblxuLyoqXG4gKiBBIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGFzc29jaWF0ZXMgYSBVSSByZW5kZXJpbmcgaGFuZGxlciB3aXRoIHRoZSAncmVuZGVyJyBldmVudC5cbiAqXG4gKiBAcGFyYW0gaGFuZGxlciAtIEEgZnVuY3Rpb24gdGhhdCBjb25mb3JtcyB0byB0aGUgYFVJRXZlbnRIYW5kbGVyIGAgdHlwZSwgd2hpY2ggd2lsbCBiZSBleGVjdXRlZFxuICogICAgICAgICAgICAgICAgICB3aGVuIHRoZSAncmVuZGVyJyBldmVudCBpcyB0cmlnZ2VyZWQuXG4gKiBAcmV0dXJucyBBIGRlY29yYXRlZCBmdW5jdGlvbiB0aGF0IGJpbmRzIHRoZSBoYW5kbGVyIHRvIHRoZSAncmVuZGVyJyBldmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpb25yZW5kZXIoaGFuZGxlcjogVUlFdmVudEhhbmRsZXIpIHtcbiAgcmV0dXJuIHVpb24oXCJyZW5kZXJcIiwgaGFuZGxlcik7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IG1hcmtzIGEgcHJvcGVydHkgYXMgYSBjb2x1bW4gaW4gYSBVSSB0YWJsZVxuICogQHN1bW1hcnkgQ29udHJvbHMgY29sdW1uIG9yZGVyaW5nIGFuZCBvcHRpb25hbCB2YWx1ZSBwYXJzaW5nIGZvciB0YWJsZSBwcm9wc1xuICogVXNlIHRoaXMgZGVjb3JhdG9yIHRvIHJlZ2lzdGVyIGxpc3QgcHJvcGVydGllcyBhcyB0YWJsZSBjb2x1bW5zLCBkZWZpbmUgdGhlXG4gKiBzZXF1ZW5jZSBpbiB3aGljaCB0aGV5IGFwcGVhciwgYW5kIG9wdGlvbmFsbHkgcHJvdmlkZSBhIHBhcnNlciB0aGF0IGZvcm1hdHNcbiAqIHRoZSB2YWx1ZSBiZWZvcmUgcmVuZGVyaW5nLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBzZXF1ZW5jZSBUaGUgZGlzcGxheSBvcmRlciBmb3IgdGhlIGNvbHVtbiAobG93ZXIgbWVhbnMgZmlyc3QpXG4gKiBAcGFyYW0ge1VJRnVuY3Rpb25MaWtlfSBbdmFsdWVQYXJzZXJGbl0gT3B0aW9uYWwgZm9ybWF0dGVyIGV4ZWN1dGVkIHBlciBjZWxsXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWl0YWJsZWNvbFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogY2xhc3MgT3JkZXIge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpdGFibGVjb2woMSlcbiAqICAgb3JkZXJOdW1iZXI6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWl0YWJsZWNvbCgyLCAodmFsdWUpID0+IGAkJHt2YWx1ZT8udG9GaXhlZCgyKX1gKVxuICogICB0b3RhbDogbnVtYmVyO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgdWl0YWJsZWNvbFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgVGFibGVcbiAqICAgTW9kZWwtPj51aXRhYmxlY29sOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aXRhYmxlY29sLT4+TW9kZWw6IFN0b3JlIGNvbHVtbiBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogUmV0cmlldmUgY29sdW1uIHByb3BzXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gb3JkZXIgYW5kIHBhcnNlclxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5UYWJsZTogUmVuZGVyIGNvbHVtbiBpbiBzZXF1ZW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdWl0YWJsZWNvbChcbiAgc2VxdWVuY2U6IG51bWJlciB8IHR5cGVvZiBVSUtleXMuRklSU1QgfCB0eXBlb2YgVUlLZXlzLkxBU1QgPSBVSUtleXMuTEFTVCxcbiAgdmFsdWVQYXJzZXJGbj86IFVJRnVuY3Rpb25MaWtlXG4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpID0+IHtcbiAgICBjb25zdCBtZXRhZGF0YTogUGFydGlhbDxVSUxpc3RQcm9wTWV0YWRhdGE+ID0ge1xuICAgICAgbmFtZTogcHJvcGVydHlLZXksXG4gICAgICBwcm9wczoge1xuICAgICAgICBzZXF1ZW5jZSxcbiAgICAgICAgLi4uKCF2YWx1ZVBhcnNlckZuID8ge30gOiB7IHZhbHVlUGFyc2VyRm4gfSksXG4gICAgICB9LFxuICAgIH07XG4gICAgcHJvcE1ldGFkYXRhKGdldFVJQXR0cmlidXRlS2V5KHByb3BlcnR5S2V5LCBVSUtleXMuVUlMSVNUUFJPUCksIG1ldGFkYXRhKShcbiAgICAgIHRhcmdldCxcbiAgICAgIHByb3BlcnR5S2V5XG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
599
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1Q0Esd0JBSUM7QUFLRCwwQkFJQztBQUtELDBCQUlDO0FBS0QsNEJBRUM7QUE4QkQsMEJBSUM7QUFvQ0Qsd0JBRUM7QUEyQ0QsOEJBZUM7QUE0Q0Qsd0JBUUM7QUFzREQsMEJBYUM7QUFrREQsZ0NBUUM7QUFtREQsb0NBVUM7QUE4REQsZ0NBSUM7QUFDRCxvQkFNQztBQVFELDhCQUVDO0FBUUQsZ0NBRUM7QUFzQ0QsZ0NBV0M7QUFsa0JELGlEQUF3QztBQUN4QyxxREFBb0Q7QUFDcEQsMkRBQXdEO0FBQ3hELHlDQUErQztBQUMvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxHQUFHLFVBQVU7SUFDaEMsT0FBTyxTQUFTLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVztRQUN0QyxPQUFPLElBQUEseUJBQVksRUFBQyxJQUFBLDRCQUFpQixFQUFDLFdBQVcsRUFBRSxxQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4RyxDQUFDLENBQUM7QUFDTixDQUFDO0FBQ0Q7OztHQUdHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLEdBQUcsVUFBVTtJQUNqQyxPQUFPLFNBQVMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXO1FBQ3ZDLE9BQU8sSUFBQSx5QkFBWSxFQUFDLElBQUEsNEJBQWlCLEVBQUMsV0FBVyxFQUFFLHFCQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFHLENBQUMsQ0FBQztBQUNOLENBQUM7QUFDRDs7O0dBR0c7QUFDSCxTQUFnQixPQUFPLENBQUMsR0FBRyxVQUFVO0lBQ2pDLE9BQU8sU0FBUyxPQUFP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RyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDaEUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5QixDQUFDLENBQUM7QUFDTixDQUFDO0FBQ0Q7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE9BQU87SUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFDRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixVQUFVLENBQUMsT0FBTztJQUM5QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFDSCxTQUFnQixVQUFVLENBQUMsUUFBUSxHQUFHLHFCQUFNLENBQUMsSUFBSSxFQUFFLGFBQWE7SUFDNUQsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRTtRQUMzQixNQUFNLFFBQVEsR0FBRztZQUNiLElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRTtnQkFDSCxRQUFRO2dCQUNSLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO2FBQy9DO1NBQ0osQ0FBQztRQUNGLElBQUEseUJBQVksRUFBQyxJQUFBLDRCQUFpQixFQUFDLFdBQVcsRUFBRSxxQkFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNuRyxDQUFDLENBQUM7QUFDTixDQUFDO0FBQ0QsMGpwQ0FBMGpwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVJS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgcHJvcE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBnZXRVSUF0dHJpYnV0ZUtleSB9IGZyb20gXCIuL3V0aWxzLmpzXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBoaWRlcyBhIHByb3BlcnR5IGR1cmluZyBzcGVjaWZpYyBDUlVEIG9wZXJhdGlvbnNcbiAqIEBzdW1tYXJ5IENvbnRyb2xzIHByb3BlcnR5IHZpc2liaWxpdHkgYmFzZWQgb24gb3BlcmF0aW9uIHR5cGVcbiAqIFRoaXMgZGVjb3JhdG9yIGFsbG93cyB5b3UgdG8gc3BlY2lmeSB3aGljaCBDUlVEIG9wZXJhdGlvbnMgc2hvdWxkIGhpZGUgYSBwcm9wZXJ0eVxuICogaW4gdGhlIFVJLiBUaGUgcHJvcGVydHkgd2lsbCBvbmx5IGJlIHZpc2libGUgZHVyaW5nIG9wZXJhdGlvbnMgbm90IHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gb3BlcmF0aW9ucyAtIFRoZSBDUlVEIG9wZXJhdGlvbnMgZHVyaW5nIHdoaWNoIHRoZSBwcm9wZXJ0eSBzaG91bGQgYmUgaGlkZGVuXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gaGlkZU9uXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIaWRlIHRoZSBwYXNzd29yZCBmaWVsZCBkdXJpbmcgUkVBRCBvcGVyYXRpb25zXG4gKiBjbGFzcyBVc2VyIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQGhpZGVPbihPcGVyYXRpb25LZXlzLlJFQUQpXG4gKiAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gKiB9XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBNb2RlbFxuICogICBwYXJ0aWNpcGFudCBoaWRlT25cbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIHBhcnRpY2lwYW50IFVJXG4gKiAgIE1vZGVsLT4+aGlkZU9uOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICBoaWRlT24tPj5Nb2RlbDogQWRkIGhpZGRlbiBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogQ2hlY2sgaWYgcHJvcGVydHkgc2hvdWxkIGJlIGhpZGRlblxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIGhpZGRlbiBvcGVyYXRpb25zXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PlVJOiBSZW5kZXIgb3IgaGlkZSBiYXNlZCBvbiBjdXJyZW50IG9wZXJhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gaGlkZU9uKC4uLm9wZXJhdGlvbnMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gaGlkZU9uKG9iamVjdCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgcmV0dXJuIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLkhJRERFTiksIG9wZXJhdGlvbnMpKG9iamVjdCwgcHJvcGVydHlLZXkpO1xuICAgIH07XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBoaWRlcyBhIHByb3BlcnR5IGZvciBzcGVjaWZpYyBuYW1lc3BhY2VzLlxuICogQHN1bW1hcnkgQ29udHJvbHMgcHJvcGVydHkgdmlzaWJpbGl0eSBiYXNlZCBvbiBuYW1lc3BhY2UgbWVtYmVyc2hpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhpZGVGb3IoLi4ubmFtZXNwYWNlcykge1xuICAgIHJldHVybiBmdW5jdGlvbiBoaWRlRm9yKG9iamVjdCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgcmV0dXJuIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLkhJREVfRk9SKSwgbmFtZXNwYWNlcykob2JqZWN0LCBwcm9wZXJ0eUtleSk7XG4gICAgfTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IHNob3dzIGEgcHJvcGVydHkgb25seSBmb3Igc3BlY2lmaWMgbmFtZXNwYWNlcy5cbiAqIEBzdW1tYXJ5IE5hbWVzcGFjZS1hd2FyZSBjb3VudGVycGFydCB0byBgaGlkZUZvcmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaG93Rm9yKC4uLm5hbWVzcGFjZXMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gc2hvd0ZvcihvYmplY3QsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgIHJldHVybiBwcm9wTWV0YWRhdGEoZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcGVydHlLZXksIFVJS2V5cy5TSE9XX0ZPUiksIG5hbWVzcGFjZXMpKG9iamVjdCwgcHJvcGVydHlLZXkpO1xuICAgIH07XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCByZW5kZXJzIGEgcHJvcGVydHkgb25seSB3aGVuIHRoZSBuYW1lc3BhY2UgbWF0Y2hlcy5cbiAqIEBzdW1tYXJ5IENvbnZlbmllbmNlIGFsaWFzIGZvciBuYW1lc3BhY2Utc2NvcGVkIHZpc2liaWxpdHkgY29udHJvbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcklmKC4uLm5hbWVzcGFjZXMpIHtcbiAgICByZXR1cm4gc2hvd0ZvciguLi5uYW1lc3BhY2VzKTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IHNldHMgdGhlIG9yZGVyIG9mIGEgVUkgZWxlbWVudFxuICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSByZW5kZXJpbmcgb3JkZXIgZm9yIFVJIGNvbXBvbmVudHNcbiAqIFRoaXMgZGVjb3JhdG9yIGFwcGxpZXMgbWV0YWRhdGEgdG8gdGhlIHByb3BlcnR5IG9yIGNsYXNzLCBpbmRpY2F0aW5nIGl0cyBvcmRlciBpbiB0aGUgVUkgcmVuZGVyaW5nIHNlcXVlbmNlLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3JkZXI9MV0gVGhlIG9yZGVyIHZhbHVlIGZvciB0aGUgVUkgZWxlbWVudCAoZGVmYXVsdCBpcyAxKVxuICogQHJldHVybiB7RnVuY3Rpb259IEEgcHJvcGVydHkgb3IgY2xhc3MgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKlxuICogQGZ1bmN0aW9uIHVpb3JkZXJcbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNldCBvcmRlciBmb3IgYSBmaWVsZFxuICogQHVpb3JkZXIoMilcbiAqIGZpZWxkTmFtZTogc3RyaW5nO1xuICpcbiAqIC8vIFNldCBvcmRlciBmb3IgYSBjbGFzc1xuICogQHVpb3JkZXIoMSlcbiAqIGNsYXNzIFVzZXJQcm9maWxlIHsgLi4uIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFN5c3RlbVxuICogICBwYXJ0aWNpcGFudCB1aW9yZGVyXG4gKiAgIHBhcnRpY2lwYW50IHByb3BlcnR5XG4gKiAgIFN5c3RlbS0+PnVpb3JkZXI6ZG8ocHJvcGVydHkpXG4gKiAgIHVpb3JkZXItPj5wcm9wZXJ0eTogc2V0cyBvcmRlciBtZXRhZGF0YVxuICogICB1aW9yZGVyLT4+U3lzdGVtOiByZXR1cm5zIGRlY29yYXRlZCBwcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gdWlvcmRlcihvcmRlciA9IFVJS2V5cy5GSVJTVCkge1xuICAgIHJldHVybiBmdW5jdGlvbiB1aW9yZGVyKG9iamVjdCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgcmV0dXJuIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLk9SREVSKSwgb3JkZXIpKG9iamVjdCwgcHJvcGVydHlLZXkpO1xuICAgIH07XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBjb21wbGV0ZWx5IGhpZGVzIGEgcHJvcGVydHkgaW4gYWxsIFVJIG9wZXJhdGlvbnNcbiAqIEBzdW1tYXJ5IE1ha2VzIGEgcHJvcGVydHkgaW52aXNpYmxlIGluIGFsbCBDUlVEIG9wZXJhdGlvbnNcbiAqIFRoaXMgZGVjb3JhdG9yIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgaGlkZU9uIHRoYXQgaGlkZXMgYSBwcm9wZXJ0eVxuICogZHVyaW5nIGFsbCBDUlVEIG9wZXJhdGlvbnMgKENSRUFURSwgUkVBRCwgVVBEQVRFLCBERUxFVEUpLlxuICpcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiBoaWRkZW5cbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbXBsZXRlbHkgaGlkZSB0aGUgaW50ZXJuYWxJZCBmaWVsZCBpbiB0aGUgVUlcbiAqIGNsYXNzIFByb2R1Y3Qge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgbmFtZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEBoaWRkZW4oKVxuICogICBpbnRlcm5hbElkOiBzdHJpbmc7XG4gKiB9XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBNb2RlbFxuICogICBwYXJ0aWNpcGFudCBoaWRkZW5cbiAqICAgcGFydGljaXBhbnQgaGlkZU9uXG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBNb2RlbC0+PmhpZGRlbjogQXBwbHkgdG8gcHJvcGVydHlcbiAqICAgaGlkZGVuLT4+aGlkZU9uOiBDYWxsIHdpdGggYWxsIG9wZXJhdGlvbnNcbiAqICAgaGlkZU9uLT4+TW9kZWw6IEFkZCBoaWRkZW4gbWV0YWRhdGFcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TW9kZWw6IENoZWNrIGlmIHByb3BlcnR5IHNob3VsZCBiZSBoaWRkZW5cbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiBhbGwgb3BlcmF0aW9uc1xuICogICBSZW5kZXJpbmdFbmdpbmUtPj5VSTogQWx3YXlzIGhpZGUgcHJvcGVydHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhpZGRlbigpIHtcbiAgICByZXR1cm4gaGlkZU9uKE9wZXJhdGlvbktleXMuQ1JFQVRFLCBPcGVyYXRpb25LZXlzLlJFQUQsIE9wZXJhdGlvbktleXMuVVBEQVRFLCBPcGVyYXRpb25LZXlzLkRFTEVURSk7XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBzcGVjaWZpZXMgaG93IGEgcHJvcGVydHkgc2hvdWxkIGJlIHJlbmRlcmVkIGFzIGEgVUkgZWxlbWVudFxuICogQHN1bW1hcnkgTWFwcyBhIG1vZGVsIHByb3BlcnR5IHRvIGEgc3BlY2lmaWMgVUkgZWxlbWVudCB3aXRoIGN1c3RvbSBwcm9wZXJ0aWVzXG4gKiBUaGlzIGRlY29yYXRvciBhbGxvd3MgeW91IHRvIGRlZmluZSB3aGljaCBIVE1MIGVsZW1lbnQgb3IgY29tcG9uZW50IHNob3VsZCBiZSB1c2VkXG4gKiB0byByZW5kZXIgYSBzcGVjaWZpYyBwcm9wZXJ0eSwgYWxvbmcgd2l0aCBhbnkgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhhdCBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIEhUTUwgZWxlbWVudCBvciBjb21wb25lbnQgdGFnIG5hbWUgdG8gdXNlIGZvciByZW5kZXJpbmdcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3Byb3BzXSBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGUgZWxlbWVudFxuICogQHBhcmFtIHtib29sZWFufSBbc2VyaWFsaXplPWZhbHNlXSBXaGV0aGVyIHRoZSBwcm9wZXJ0eSBzaG91bGQgYmUgc2VyaWFsaXplZFxuICogQHJldHVybiB7RnVuY3Rpb259IEEgcHJvcGVydHkgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKlxuICogQGZ1bmN0aW9uIHVpZWxlbWVudFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVuZGVyIGEgcHJvcGVydHkgYXMgYSB0ZXh0IGlucHV0XG4gKiBjbGFzcyBMb2dpbkZvcm0ge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpZWxlbWVudCgnaW5wdXQnLCB7IHR5cGU6ICd0ZXh0JywgcGxhY2Vob2xkZXI6ICdFbnRlciB1c2VybmFtZScgfSlcbiAqICAgdXNlcm5hbWU6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWllbGVtZW50KCdpbnB1dCcsIHsgdHlwZTogJ3Bhc3N3b3JkJywgcGxhY2Vob2xkZXI6ICdFbnRlciBwYXNzd29yZCcgfSlcbiAqICAgcGFzc3dvcmQ6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWllbGVtZW50KCdidXR0b24nLCB7IGNsYXNzOiAnYnRuLXByaW1hcnknIH0pXG4gKiAgIHN1Ym1pdDogc3RyaW5nID0gJ0xvZ2luJztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpZWxlbWVudFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgVUlcbiAqICAgTW9kZWwtPj51aWVsZW1lbnQ6IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIHVpZWxlbWVudC0+Pk1vZGVsOiBBZGQgZWxlbWVudCBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogR2V0IGVsZW1lbnQgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiB0YWcgYW5kIHByb3BzXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PlVJOiBSZW5kZXIgd2l0aCBzcGVjaWZpZWQgZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gdWllbGVtZW50KHRhZywgcHJvcHMsIHNlcmlhbGl6ZSA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIChvcmlnaW5hbCwgcHJvcGVydHlLZXkpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0YWcgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHByb3BzID0gdGFnO1xuICAgICAgICAgICAgdGFnID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHRhZzogdGFnLFxuICAgICAgICAgICAgc2VyaWFsaXplOiBzZXJpYWxpemUsXG4gICAgICAgICAgICBwcm9wczogT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMgfHwge30sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBwcm9wZXJ0eUtleSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcHJvcE1ldGFkYXRhKGdldFVJQXR0cmlidXRlS2V5KHByb3BlcnR5S2V5LCBVSUtleXMuRUxFTUVOVCksIG1ldGFkYXRhKShvcmlnaW5hbCwgcHJvcGVydHlLZXkpO1xuICAgIH07XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBtYXBzIGEgbW9kZWwgcHJvcGVydHkgdG8gYSBVSSBjb21wb25lbnQgcHJvcGVydHlcbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyBob3cgYSBwcm9wZXJ0eSBzaG91bGQgYmUgcGFzc2VkIHRvIGEgVUkgY29tcG9uZW50XG4gKiBUaGlzIGRlY29yYXRvciBhbGxvd3MgeW91IHRvIGRlZmluZSBob3cgYSBtb2RlbCBwcm9wZXJ0eSBzaG91bGQgYmUgbWFwcGVkIHRvXG4gKiBhIHByb3BlcnR5IG9mIHRoZSBVSSBjb21wb25lbnQgd2hlbiByZW5kZXJpbmcuIEl0IHJlcXVpcmVzIHRoZSBjbGFzcyB0byBiZVxuICogZGVjb3JhdGVkIHdpdGggQHVpbW9kZWwuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFtwcm9wTmFtZV0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHBhc3MgdG8gdGhlIGNvbXBvbmVudCAoZGVmYXVsdHMgdG8gdGhlIHByb3BlcnR5IGtleSlcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3N0cmluZ2lmeT1mYWxzZV0gV2hldGhlciB0byBzdHJpbmdpZnkgdGhlIHByb3BlcnR5IHZhbHVlXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWlwcm9wXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNYXAgbW9kZWwgcHJvcGVydGllcyB0byBjb21wb25lbnQgcHJvcGVydGllc1xuICogQHVpbW9kZWwoJ3VzZXItcHJvZmlsZScpXG4gKiBjbGFzcyBVc2VyUHJvZmlsZSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwcm9wKCkgLy8gV2lsbCBiZSBwYXNzZWQgYXMgJ2Z1bGxOYW1lJyB0byB0aGUgY29tcG9uZW50XG4gKiAgIGZ1bGxOYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcHJvcCgndXNlckVtYWlsJykgLy8gV2lsbCBiZSBwYXNzZWQgYXMgJ3VzZXJFbWFpbCcgdG8gdGhlIGNvbXBvbmVudFxuICogICBlbWFpbDogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXByb3AoJ3VzZXJEYXRhJywgdHJ1ZSkgLy8gV2lsbCBiZSBwYXNzZWQgYXMgc3RyaW5naWZpZWQgSlNPTlxuICogICB1c2VyRGF0YTogUmVjb3JkPHN0cmluZywgYW55PjtcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpcHJvcFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgQ29tcG9uZW50XG4gKiAgIE1vZGVsLT4+dWlwcm9wOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aXByb3AtPj5Nb2RlbDogQWRkIHByb3AgbWV0YWRhdGFcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TW9kZWw6IEdldCBwcm9wIG1ldGFkYXRhXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gcHJvcCBuYW1lIGFuZCBzdHJpbmdpZnkgZmxhZ1xuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Db21wb25lbnQ6IFBhc3MgcHJvcGVydHkgd2l0aCBzcGVjaWZpZWQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdWlwcm9wKHByb3BOYW1lID0gdW5kZWZpbmVkLCBzdHJpbmdpZnkgPSBmYWxzZSkge1xuICAgIHJldHVybiAodGFyZ2V0LCBwcm9wZXJ0eUtleSkgPT4ge1xuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIG5hbWU6IHByb3BOYW1lIHx8IHByb3BlcnR5S2V5LFxuICAgICAgICAgICAgc3RyaW5naWZ5OiBzdHJpbmdpZnksXG4gICAgICAgIH07XG4gICAgICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLlBST1ApLCBtZXRhZGF0YSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgfTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IG1hcHMgYSBuZXN0ZWQgbW9kZWwgcHJvcGVydHkgdG8gYSBVSSBjb21wb25lbnQgcHJvcGVydHkuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGhvdyBhIHBhcmVudCBjb21wb25lbnQgc2hvdWxkIHJlbmRlciB0aGUgY2hpbGQgbW9kZWwgd2hlbiBuZXN0ZWQuXG4gKlxuICogVGhpcyBkZWNvcmF0b3IgaXMgdXNlZCB0byBkZWNvcmF0ZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5lc3RlZCBtb2RlbHMuXG4gKiBXaGVuIGFwcGxpZWQsIGl0IGFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHRhZyBvZiB0aGUgY2hpbGQgbW9kZWwgd2l0aCB0aGUgcHJvdmlkZWQgb25lLFxuICogZW5hYmxpbmcgZGlmZmVyZW50IHJlbmRlcmluZyBiZWhhdmlvciB3aGVuIHRoZSBtb2RlbCBhY3RzIGFzIGEgY2hpbGQgKG5lc3RlZClcbiAqIGNvbXBhcmVkIHRvIHdoZW4gaXQgaXMgcmVuZGVyZWQgYXMgdGhlIHBhcmVudCBtb2RlbC5cbiAqXG4gKiBJdCByZXF1aXJlcyB0aGUgY2xhc3MgdG8gYmUgZGVjb3JhdGVkIHdpdGggYEB1aW1vZGVsYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2xhenogVGhlIG1vZGVsIGNsYXNzIG5hbWUgdG8gcGFzcyB0byB0aGUgY29tcG9uZW50IChkZWZhdWx0cyB0byB0aGUgcHJvcGVydHkga2V5KS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIEhUTUwgZWxlbWVudCBvciBjb21wb25lbnQgdGFnIG5hbWUgdG8gb3ZlcnJpZGUgdGhlIFVJIHRhZyBvZiB0aGUgbmVzdGVkIG1vZGVsXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFtwcm9wc10gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NlcmlhbGl6ZT1mYWxzZV0gV2hldGhlciB0aGUgcHJvcGVydHkgc2hvdWxkIGJlIHNlcmlhbGl6ZWRcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvbi5cbiAqXG4gKiBAZnVuY3Rpb24gdWljaGlsZFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTWFwIGEgbmVzdGVkIG1vZGVsIHRvIGEgY29tcG9uZW50IHByb3BlcnR5IHdpdGggYSBkaWZmZXJlbnQgdGFnIHdoZW4gbmVzdGVkXG4gKiBAdWltb2RlbCgnYWRkcmVzcy1jb21wb25lbnQnKVxuICogY2xhc3MgQWRkcmVzcyB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBzdHJlZXQ6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBjaXR5OiBzdHJpbmc7XG4gKiB9XG4gKlxuICogQHVpbW9kZWwoJ3VzZXItcHJvZmlsZScpXG4gKiBjbGFzcyBVc2VyUHJvZmlsZSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWljaGlsZChBZGRyZXNzLm5hbWUsICdhZGRyZXNzLWNoaWxkLWNvbXBvbmVudCcpXG4gKiAgIGFkZHJlc3M6IEFkZHJlc3M7XG4gKiB9XG4gKlxuICogLy8gSW4gdGhpcyBleGFtcGxlLCB0aGUgQWRkcmVzcyBtb2RlbCBoYXMgdGhlIGRlZmF1bHQgdGFnICdhZGRyZXNzLWNvbXBvbmVudCcgd2hlbiByZW5kZXJlZCBhcyBhIHJvb3QgY29tcG9uZW50LFxuICogLy8gYnV0IHdoZW4gdXNlZCBpbnNpZGUgVXNlclByb2ZpbGUsIGl0IGlzIHJlbmRlcmVkIHdpdGggdGhlIG92ZXJyaWRkZW4gdGFnICdhZGRyZXNzLWNoaWxkLWNvbXBvbmVudCdcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpY2hpbGRcbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIHBhcnRpY2lwYW50IENvbXBvbmVudFxuICogICBNb2RlbC0+PnVpY2hpbGQ6IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIHVpY2hpbGQtPj5Nb2RlbDogQWRkIGNoaWxkIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBHZXQgY2hpbGQgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiBwcm9wIG5hbWUsIHN0cmluZ2lmeSBmbGFnLCBhbmQgY2hpbGQgdGFnIG92ZXJyaWRlXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PkNvbXBvbmVudDogUGFzcyBwcm9wZXJ0eSB3aXRoIHNwZWNpZmllZCBuYW1lIGFuZCByZW5kZXIgd2l0aCBvdmVycmlkZGVuIHRhZyBpZiBuZXN0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpY2hpbGQoY2xhenosIHRhZywgcHJvcHMgPSB7fSwgaXNBcnJheSA9IGZhbHNlLCBzZXJpYWxpemUgPSBmYWxzZSkge1xuICAgIHJldHVybiAodGFyZ2V0LCBwcm9wZXJ0eUtleSkgPT4ge1xuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHRhZzogdGFnLFxuICAgICAgICAgICAgc2VyaWFsaXplOiBzZXJpYWxpemUsXG4gICAgICAgICAgICBwcm9wczogT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMgfHwge30sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBjbGF6eiB8fCBwcm9wZXJ0eUtleSxcbiAgICAgICAgICAgIH0sIGlzQXJyYXlcbiAgICAgICAgICAgICAgICA/IHsgY3VzdG9tVHlwZXM6IFtBcnJheS5uYW1lXSwgbXVsdGlwbGU6IHRydWUgfVxuICAgICAgICAgICAgICAgIDogeyBtdWx0aXBsZTogcHJvcHM/Lm11bHRpcGxlIHx8IGZhbHNlIH0pLFxuICAgICAgICB9O1xuICAgICAgICBwcm9wTWV0YWRhdGEoZ2V0VUlBdHRyaWJ1dGVLZXkocHJvcGVydHlLZXksIFVJS2V5cy5DSElMRCksIG1ldGFkYXRhKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICB9O1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgbWFwcyBhIG1vZGVsIHByb3BlcnR5IHRvIGEgbGlzdCBpdGVtIGNvbXBvbmVudFxuICogQHN1bW1hcnkgU3BlY2lmaWVzIGhvdyBhIHByb3BlcnR5IHNob3VsZCBiZSByZW5kZXJlZCBpbiBhIGxpc3QgY29udGV4dFxuICogVGhpcyBkZWNvcmF0b3IgYWxsb3dzIHlvdSB0byBkZWZpbmUgaG93IGEgbW9kZWwgcHJvcGVydHkgY29udGFpbmluZyBhIGxpc3RcbiAqIHNob3VsZCBiZSByZW5kZXJlZC4gSXQgcmVxdWlyZXMgdGhlIGNsYXNzIHRvIGJlIGRlY29yYXRlZCB3aXRoIEB1aWxpc3Rtb2RlbC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW3Byb3BOYW1lXSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gcGFzcyB0byB0aGUgbGlzdCBjb21wb25lbnQgKGRlZmF1bHRzIHRvIHRoZSBwcm9wZXJ0eSBrZXkpXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFtwcm9wc10gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhlIGxpc3QgY29udGFpbmVyXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWlsaXN0cHJvcFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRGVmaW5lIGEgbGlzdCBwcm9wZXJ0eSB3aXRoIGN1c3RvbSByZW5kZXJpbmdcbiAqIEB1aW1vZGVsKCd0b2RvLWxpc3QnKVxuICogY2xhc3MgVG9kb0xpc3Qge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgdGl0bGU6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlsaXN0cHJvcCgnaXRlbXMnLCB7IGNsYXNzOiAndG9kby1pdGVtcy1jb250YWluZXInIH0pXG4gKiAgIGl0ZW1zOiBUb2RvSXRlbVtdO1xuICogfVxuICpcbiAqIEB1aWxpc3Rtb2RlbCgnbGknLCB7IGNsYXNzOiAndG9kby1pdGVtJyB9KVxuICogY2xhc3MgVG9kb0l0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICB0ZXh0OiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgY29tcGxldGVkOiBib29sZWFuO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgdWlsaXN0cHJvcFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgTGlzdENvbnRhaW5lclxuICogICBwYXJ0aWNpcGFudCBMaXN0SXRlbXNcbiAqICAgTW9kZWwtPj51aWxpc3Rwcm9wOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aWxpc3Rwcm9wLT4+TW9kZWw6IEFkZCBsaXN0IHByb3AgbWV0YWRhdGFcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TW9kZWw6IEdldCBsaXN0IHByb3AgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiBwcm9wIG5hbWUgYW5kIGNvbnRhaW5lciBwcm9wc1xuICogICBSZW5kZXJpbmdFbmdpbmUtPj5MaXN0Q29udGFpbmVyOiBDcmVhdGUgY29udGFpbmVyIHdpdGggcHJvcHNcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TGlzdEl0ZW1zOiBSZW5kZXIgZWFjaCBpdGVtIHVzaW5nIEB1aWxpc3Rtb2RlbFxuICogICBMaXN0Q29udGFpbmVyLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gcmVuZGVyZWQgbGlzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdWlsaXN0cHJvcChwcm9wTmFtZSA9IHVuZGVmaW5lZCwgcHJvcHMpIHtcbiAgICByZXR1cm4gKHRhcmdldCwgcHJvcGVydHlLZXkpID0+IHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBuYW1lOiBwcm9wTmFtZSB8fCBwcm9wZXJ0eUtleSxcbiAgICAgICAgICAgIHByb3BzOiBwcm9wcyB8fCB7fSxcbiAgICAgICAgfTtcbiAgICAgICAgcHJvcE1ldGFkYXRhKGdldFVJQXR0cmlidXRlS2V5KHByb3BlcnR5S2V5LCBVSUtleXMuVUlMSVNUUFJPUCksIG1ldGFkYXRhKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICB9O1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgcG9zaXRpb25zIGEgcHJvcGVydHkgaW4gYSBzcGVjaWZpYyBncmlkIGxheW91dCBwb3NpdGlvblxuICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBjb2x1bW4gYW5kIHJvdyBwb3NpdGlvbiBmb3IgYSBwcm9wZXJ0eSBpbiBhIFVJIGxheW91dCBncmlkXG4gKiBUaGlzIGRlY29yYXRvciBhbGxvd3MgeW91IHRvIGRlZmluZSB0aGUgc3BlY2lmaWMgcG9zaXRpb24gb2YgYSBwcm9wZXJ0eSB3aXRoaW5cbiAqIGEgZ3JpZC1iYXNlZCBsYXlvdXQgc3lzdGVtLiBJdCBzcGVjaWZpZXMgd2hpY2ggY29sdW1uIGFuZCByb3cgdGhlIHByb3BlcnR5XG4gKiBzaG91bGQgb2NjdXB5IHdoZW4gcmVuZGVyZWQgaW4gdGhlIFVJLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2wgVGhlIGNvbHVtbiBwb3NpdGlvbiBpbiB0aGUgZ3JpZCBsYXlvdXRcbiAqIEBwYXJhbSB7bnVtYmVyfSBbcm93PTFdIFRoZSByb3cgcG9zaXRpb24gaW4gdGhlIGdyaWQgbGF5b3V0IChkZWZhdWx0cyB0byAxKVxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbcHJvcHM9e31dIEFkZGl0aW9uYWwgcHJvcGVydGllcyB0byBwYXNzIHRvIHRoZSBsYXlvdXQgaXRlbVxuICogQHJldHVybiB7RnVuY3Rpb259IEEgcHJvcGVydHkgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKlxuICogQGZ1bmN0aW9uIHVpbGF5b3V0cHJvcFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUG9zaXRpb24gcHJvcGVydGllcyBpbiBhIGdyaWQgbGF5b3V0XG4gKiBAdWlsYXlvdXQoJ3VzZXItZm9ybScsIDIsIDMpIC8vIDIgY29sdW1ucywgMyByb3dzXG4gKiBAbW9kZWwoKVxuICogY2xhc3MgVXNlckZvcm0ge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGF5b3V0cHJvcCgxLCAxKSAvLyBPbmUgY29sdW1uLCBmaXJzdCByb3dcbiAqICAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGF5b3V0cHJvcCgyLCAxKSAvLyBPbmUgY29sdW1uLCBmaXJzdCByb3dcbiAqICAgbGFzdE5hbWU6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlsYXlvdXRwcm9wKDEsIDIpIC8vIE9uZSBjb2x1bW4sIHNlY29uZCByb3dcbiAqICAgZW1haWw6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlsYXlvdXRwcm9wKDIsIDMpIC8vIEFsbCBjb2x1bW5zLCB0aGlyZCByb3dcbiAqICAgYmlvOiBzdHJpbmc7XG4gKiB9XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBNb2RlbFxuICogICBwYXJ0aWNpcGFudCB1aWxheW91dHByb3BcbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIHBhcnRpY2lwYW50IExheW91dENvbnRhaW5lclxuICogICBNb2RlbC0+PnVpbGF5b3V0cHJvcDogQXBwbHkgdG8gcHJvcGVydHlcbiAqICAgdWlsYXlvdXRwcm9wLT4+TW9kZWw6IEFkZCBsYXlvdXQgaXRlbSBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogR2V0IGxheW91dCBpdGVtIG1ldGFkYXRhXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gY29sdW1uLCByb3csIGFuZCBwcm9wc1xuICogICBSZW5kZXJpbmdFbmdpbmUtPj5MYXlvdXRDb250YWluZXI6IFBvc2l0aW9uIGVsZW1lbnQgYXQgZ3JpZCBjb29yZGluYXRlc1xuICogICBMYXlvdXRDb250YWluZXItPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiBwb3NpdGlvbmVkIGVsZW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpbGF5b3V0cHJvcChjb2wgPSAxLCByb3cgPSAxKSB7XG4gICAgcmV0dXJuICh0YXJnZXQsIHByb3BlcnR5S2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgICAgICAgICAgbmFtZTogcHJvcGVydHlLZXksXG4gICAgICAgICAgICAvLyBjb2wsXG4gICAgICAgICAgICAvLyByb3csXG4gICAgICAgICAgICBwcm9wczogT2JqZWN0LmFzc2lnbih7fSwgeyByb3csIGNvbCB9KSxcbiAgICAgICAgfTtcbiAgICAgICAgcHJvcE1ldGFkYXRhKGdldFVJQXR0cmlidXRlS2V5KHByb3BlcnR5S2V5LCBVSUtleXMuVUlMQVlPVVRQUk9QKSwgbWV0YWRhdGEpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgIH07XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBhc3NpZ25zIGEgcHJvcGVydHkgdG8gYSBzcGVjaWZpYyBwYWdlIGluIG11bHRpLXBhZ2UgZm9ybXNcbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyB3aGljaCBwYWdlIGEgcHJvcGVydHkgc2hvdWxkIGFwcGVhciBvbiBpbiBwYWdpbmF0ZWQgVUkgbGF5b3V0c1xuICogVGhpcyBkZWNvcmF0b3IgYXBwbGllcyBtZXRhZGF0YSB0byB0aGUgcHJvcGVydHksIGluZGljYXRpbmcgd2hpY2ggcGFnZSBudW1iZXIgaXQgYmVsb25ncyB0b1xuICogaW4gYSBtdWx0aS1wYWdlIGZvcm0gb3Igd2l6YXJkLiBQcm9wZXJ0aWVzIHdpdGggdGhlIHNhbWUgcGFnZSBudW1iZXIgYXJlIGdyb3VwZWQgdG9nZXRoZXJcbiAqIGFuZCByZW5kZXJlZCBvbiB0aGUgc2FtZSBwYWdlLiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggQHVpc3RlcHBlZG1vZGVsIHRvXG4gKiBvcmdhbml6ZSBsYXJnZSBmb3JtcyBpbnRvIG1hbmFnZWFibGUgc2VjdGlvbnMuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IFtwYWdlPTFdIFRoZSBwYWdlIG51bWJlciB3aGVyZSB0aGUgcHJvcGVydHkgc2hvdWxkIGFwcGVhciAoZGVmYXVsdCBpcyAxKVxuICogQHJldHVybiB7RnVuY3Rpb259IEEgcHJvcGVydHkgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKlxuICogQGZ1bmN0aW9uIHVpcGFnZXByb3BcbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENyZWF0ZSBhIG11bHRpLXN0ZXAgcmVnaXN0cmF0aW9uIGZvcm0gd2l0aCBwYWdlLWJhc2VkIGxheW91dFxuICogQHVpc3RlcHBlZG1vZGVsKCdyZWdpc3RyYXRpb24tZm9ybScsIDIsIHRydWUpXG4gKiBAbW9kZWwoKVxuICogY2xhc3MgUmVnaXN0cmF0aW9uRm9ybSB7XG4gKiAgIC8vIFBhZ2UgMTogUGVyc29uYWwgSW5mb3JtYXRpb25cbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXBhZ2Vwcm9wKDEpXG4gKiAgIGZpcnN0TmFtZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXBhZ2Vwcm9wKDEpXG4gKiAgIGxhc3ROYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMSlcbiAqICAgZGF0ZU9mQmlydGg6IERhdGU7XG4gKlxuICogICAvLyBQYWdlIDI6IENvbnRhY3QgSW5mb3JtYXRpb25cbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXBhZ2Vwcm9wKDIpXG4gKiAgIGVtYWlsOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcGFnZXByb3AoMilcbiAqICAgcGhvbmU6IHN0cmluZztcbiAqXG4gKiAgIC8vIFBhZ2UgMzogQ29uZmlybWF0aW9uXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwYWdlcHJvcCgzKVxuICogICBhY2NlcHRUZXJtczogYm9vbGVhbjtcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpcGFnZXByb3BcbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIHBhcnRpY2lwYW50IFBhZ2luYXRpb25Db250cm9sbGVyXG4gKiAgIHBhcnRpY2lwYW50IFVJXG4gKiAgIE1vZGVsLT4+dWlwYWdlcHJvcDogQXBwbHkgdG8gcHJvcGVydHlcbiAqICAgdWlwYWdlcHJvcC0+Pk1vZGVsOiBBZGQgcGFnZSBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogR2V0IHBhZ2UgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiBwYWdlIG51bWJlclxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5QYWdpbmF0aW9uQ29udHJvbGxlcjogR3JvdXAgcHJvcGVydGllcyBieSBwYWdlXG4gKiAgIFBhZ2luYXRpb25Db250cm9sbGVyLT4+VUk6IFJlbmRlciBjdXJyZW50IHBhZ2UgcHJvcGVydGllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdWlwYWdlcHJvcChwYWdlID0gMSkge1xuICAgIHJldHVybiBmdW5jdGlvbiB1aXBhZ2Vwcm9wKG9yaWdpbmFsLCBwcm9wZXJ0eUtleSkge1xuICAgICAgICByZXR1cm4gcHJvcE1ldGFkYXRhKGdldFVJQXR0cmlidXRlS2V5KHByb3BlcnR5S2V5LCBVSUtleXMuUEFHRSksIHBhZ2UpKG9yaWdpbmFsLCBwcm9wZXJ0eUtleSk7XG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1aW9uKGV2ZW50LCBoYW5kbGVyKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVpb24ob3JpZ2luYWwsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLkVWRU5UUyksIHtcbiAgICAgICAgICAgIC4uLih0eXBlb2YgZXZlbnQgPT09IFwib2JqZWN0XCIgPyBldmVudCA6IHsgW2V2ZW50XTogaGFuZGxlciB9KSxcbiAgICAgICAgfSkob3JpZ2luYWwsIHByb3BlcnR5S2V5KTtcbiAgICB9O1xufVxuLyoqXG4gKiBBIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGFzc29jaWF0ZXMgYSBVSSBjbGljayBoYW5kbGVyIHdpdGggdGhlICdoYW5kbGVDbGljaycgZXZlbnQuXG4gKlxuICogQHBhcmFtIGhhbmRsZXIgLSBBIGZ1bmN0aW9uIHRoYXQgY29uZm9ybXMgdG8gdGhlIGBVSUV2ZW50SGFuZGxlcmAgdHlwZSwgd2hpY2ggd2lsbCBiZSBleGVjdXRlZFxuICogICAgICAgICAgICAgICAgICB3aGVuIHRoZSAnaGFuZGxlQ2xpY2snIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAqIEByZXR1cm5zIEEgZGVjb3JhdGVkIGZ1bmN0aW9uIHRoYXQgYmluZHMgdGhlIGhhbmRsZXIgdG8gdGhlICdoYW5kbGVDbGljaycgZXZlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aW9uY2xpY2soaGFuZGxlcikge1xuICAgIHJldHVybiB1aW9uKFwiaGFuZGxlQ2xpY2tcIiwgaGFuZGxlcik7XG59XG4vKipcbiAqIEEgZGVjb3JhdG9yIGZ1bmN0aW9uIHRoYXQgYXNzb2NpYXRlcyBhIFVJIHJlbmRlcmluZyBoYW5kbGVyIHdpdGggdGhlICdyZW5kZXInIGV2ZW50LlxuICpcbiAqIEBwYXJhbSBoYW5kbGVyIC0gQSBmdW5jdGlvbiB0aGF0IGNvbmZvcm1zIHRvIHRoZSBgVUlFdmVudEhhbmRsZXIgYCB0eXBlLCB3aGljaCB3aWxsIGJlIGV4ZWN1dGVkXG4gKiAgICAgICAgICAgICAgICAgIHdoZW4gdGhlICdyZW5kZXInIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAqIEByZXR1cm5zIEEgZGVjb3JhdGVkIGZ1bmN0aW9uIHRoYXQgYmluZHMgdGhlIGhhbmRsZXIgdG8gdGhlICdyZW5kZXInIGV2ZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdWlvbnJlbmRlcihoYW5kbGVyKSB7XG4gICAgcmV0dXJuIHVpb24oXCJyZW5kZXJcIiwgaGFuZGxlcik7XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBtYXJrcyBhIHByb3BlcnR5IGFzIGEgY29sdW1uIGluIGEgVUkgdGFibGVcbiAqIEBzdW1tYXJ5IENvbnRyb2xzIGNvbHVtbiBvcmRlcmluZyBhbmQgb3B0aW9uYWwgdmFsdWUgcGFyc2luZyBmb3IgdGFibGUgcHJvcHNcbiAqIFVzZSB0aGlzIGRlY29yYXRvciB0byByZWdpc3RlciBsaXN0IHByb3BlcnRpZXMgYXMgdGFibGUgY29sdW1ucywgZGVmaW5lIHRoZVxuICogc2VxdWVuY2UgaW4gd2hpY2ggdGhleSBhcHBlYXIsIGFuZCBvcHRpb25hbGx5IHByb3ZpZGUgYSBwYXJzZXIgdGhhdCBmb3JtYXRzXG4gKiB0aGUgdmFsdWUgYmVmb3JlIHJlbmRlcmluZy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gc2VxdWVuY2UgVGhlIGRpc3BsYXkgb3JkZXIgZm9yIHRoZSBjb2x1bW4gKGxvd2VyIG1lYW5zIGZpcnN0KVxuICogQHBhcmFtIHtVSUZ1bmN0aW9uTGlrZX0gW3ZhbHVlUGFyc2VyRm5dIE9wdGlvbmFsIGZvcm1hdHRlciBleGVjdXRlZCBwZXIgY2VsbFxuICogQHJldHVybiB7RnVuY3Rpb259IEEgcHJvcGVydHkgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKlxuICogQGZ1bmN0aW9uIHVpdGFibGVjb2xcbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIGNsYXNzIE9yZGVyIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXRhYmxlY29sKDEpXG4gKiAgIG9yZGVyTnVtYmVyOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpdGFibGVjb2woMiwgKHZhbHVlKSA9PiBgJCR7dmFsdWU/LnRvRml4ZWQoMil9YClcbiAqICAgdG90YWw6IG51bWJlcjtcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpdGFibGVjb2xcbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIHBhcnRpY2lwYW50IFRhYmxlXG4gKiAgIE1vZGVsLT4+dWl0YWJsZWNvbDogQXBwbHkgdG8gcHJvcGVydHlcbiAqICAgdWl0YWJsZWNvbC0+Pk1vZGVsOiBTdG9yZSBjb2x1bW4gbWV0YWRhdGFcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TW9kZWw6IFJldHJpZXZlIGNvbHVtbiBwcm9wc1xuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIG9yZGVyIGFuZCBwYXJzZXJcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+VGFibGU6IFJlbmRlciBjb2x1bW4gaW4gc2VxdWVuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpdGFibGVjb2woc2VxdWVuY2UgPSBVSUtleXMuTEFTVCwgdmFsdWVQYXJzZXJGbikge1xuICAgIHJldHVybiAodGFyZ2V0LCBwcm9wZXJ0eUtleSkgPT4ge1xuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIG5hbWU6IHByb3BlcnR5S2V5LFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZSxcbiAgICAgICAgICAgICAgICAuLi4oIXZhbHVlUGFyc2VyRm4gPyB7fSA6IHsgdmFsdWVQYXJzZXJGbiB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHByb3BNZXRhZGF0YShnZXRVSUF0dHJpYnV0ZUtleShwcm9wZXJ0eUtleSwgVUlLZXlzLlVJTElTVFBST1ApLCBtZXRhZGF0YSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHVmpiM0poZEc5eWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDNOeVl5OTFhUzlrWldOdmNtRjBiM0p6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzZFVKQlFXOUNPMEZCUTNKRExFOUJRVThzUlVGQlJTeFpRVUZaTEVWQlFVVXNUVUZCVFN4elFrRkJjMElzUTBGQlF6dEJRVmx3UkN4UFFVRlBMRVZCUVVVc1lVRkJZU3hGUVVGRkxFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkRlRVFzVDBGQlR5eEZRVUZGTEdsQ1FVRnBRaXhGUVVGRkxHMUNRVUZuUWp0QlFVVTFRenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEhRV3REUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eFZRVUVyUWp0SlFVTjJSQ3hQUVVGUExGTkJRVk1zVFVGQlRTeERRVUZETEUxQlFWY3NSVUZCUlN4WFFVRnBRanRSUVVOdVJDeFBRVUZQTEZsQlFWa3NRMEZEYWtJc2FVSkJRV2xDTEVOQlFVTXNWMEZCVnl4RlFVRkZMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGRE4wTXNWVUZCVlN4RFFVTllMRU5CUVVNc1RVRkJUU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzBsQlEzcENMRU5CUVVNc1EwRkJRenRCUVVOS0xFTkJRVU03UVVGRlJEczdPMGRCUjBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzVDBGQlR5eERRVUZETEVkQlFVY3NWVUZCYjBJN1NVRkROME1zVDBGQlR5eFRRVUZUTEU5QlFVOHNRMEZCUXl4TlFVRlhMRVZCUVVVc1YwRkJhVUk3VVVGRGNFUXNUMEZCVHl4WlFVRlpMRU5CUTJwQ0xHbENRVUZwUWl4RFFVRkRMRmRCUVZjc1JVRkJSU3hOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlF5OURMRlZCUVZVc1EwRkRXQ3hEUVVGRExFMUJRVTBzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0SlFVTjZRaXhEUVVGRExFTkJRVU03UVVGRFNpeERRVUZETzBGQlJVUTdPenRIUVVkSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEU5QlFVOHNRMEZCUXl4SFFVRkhMRlZCUVc5Q08wbEJRemRETEU5QlFVOHNVMEZCVXl4UFFVRlBMRU5CUVVNc1RVRkJWeXhGUVVGRkxGZEJRV2xDTzFGQlEzQkVMRTlCUVU4c1dVRkJXU3hEUVVOcVFpeHBRa0ZCYVVJc1EwRkJReXhYUVVGWExFVkJRVVVzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVTXZReXhWUVVGVkxFTkJRMWdzUTBGQlF5eE5RVUZOTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUVVNN1NVRkRla0lzUTBGQlF5eERRVUZETzBGQlEwb3NRMEZCUXp0QlFVVkVPenM3UjBGSFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4UlFVRlJMRU5CUVVNc1IwRkJSeXhWUVVGdlFqdEpRVU01UXl4UFFVRlBMRTlCUVU4c1EwRkJReXhIUVVGSExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlEyaERMRU5CUVVNN1FVRkZSRHM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRIUVRSQ1J6dEJRVU5JTEUxQlFVMHNWVUZCVlN4UFFVRlBMRU5CUTNKQ0xGRkJRVEpFTEUxQlFVMHNRMEZCUXl4TFFVRkxPMGxCUlhaRkxFOUJRVThzVTBGQlV5eFBRVUZQTEVOQlFVTXNUVUZCVnl4RlFVRkZMRmRCUVdsQ08xRkJRM0JFTEU5QlFVOHNXVUZCV1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZkQlFWY3NSVUZCUlN4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlEzUkZMRTFCUVUwc1JVRkRUaXhYUVVGWExFTkJRMW9zUTBGQlF6dEpRVU5LTEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNN1FVRkZSRHM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEhRV3REUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hOUVVGTk8wbEJRM0JDTEU5QlFVOHNUVUZCVFN4RFFVTllMR0ZCUVdFc1EwRkJReXhOUVVGTkxFVkJRM0JDTEdGQlFXRXNRMEZCUXl4SlFVRkpMRVZCUTJ4Q0xHRkJRV0VzUTBGQlF5eE5RVUZOTEVWQlEzQkNMR0ZCUVdFc1EwRkJReXhOUVVGTkxFTkJRM0pDTEVOQlFVTTdRVUZEU2l4RFFVRkRPMEZCUlVRN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCZVVOSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEZOQlFWTXNRMEZEZGtJc1IwRkJhVU1zUlVGRGFrTXNTMEZCTWtJc1JVRkRNMElzV1VGQmNVSXNTMEZCU3p0SlFVVXhRaXhQUVVGUExFTkJRVU1zVVVGQllTeEZRVUZGTEZkQlFXbENMRVZCUVVVc1JVRkJSVHRSUVVNeFF5eEpRVUZKTEU5QlFVOHNSMEZCUnl4TFFVRkxMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRelZDTEV0QlFVc3NSMEZCUnl4SFFVRkhMRU5CUVVNN1dVRkRXaXhIUVVGSExFZEJRVWNzUlVGQlJTeERRVUZETzFGQlExZ3NRMEZCUXp0UlFVTkVMRTFCUVUwc1VVRkJVU3hIUVVGelFqdFpRVU5zUXl4SFFVRkhMRVZCUVVVc1IwRkJZVHRaUVVOc1FpeFRRVUZUTEVWQlFVVXNVMEZCVXp0WlFVTndRaXhMUVVGTExFVkJRVVVzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1MwRkJTeXhKUVVGSkxFVkJRVVVzUlVGQlJUdG5Ra0ZEY0VNc1NVRkJTU3hGUVVGRkxGZEJRVmM3WVVGRGJFSXNRMEZCUXp0VFFVTklMRU5CUVVNN1VVRkZSaXhQUVVGUExGbEJRVmtzUTBGRGFrSXNhVUpCUVdsQ0xFTkJRVU1zVjBGQlZ5eEZRVUZGTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkRPVU1zVVVGQlVTeERRVU5VTEVOQlFVTXNVVUZCVVN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRE8wbEJRek5DTEVOQlFVTXNRMEZCUXp0QlFVTktMRU5CUVVNN1FVRkZSRHM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wZEJNRU5ITzBGQlEwZ3NUVUZCVFN4VlFVRlZMRTFCUVUwc1EwRkRjRUlzVjBGQkswSXNVMEZCVXl4RlFVTjRReXhaUVVGeFFpeExRVUZMTzBsQlJURkNMRTlCUVU4c1EwRkJReXhOUVVGWExFVkJRVVVzVjBGQmFVSXNSVUZCUlN4RlFVRkZPMUZCUTNoRExFMUJRVTBzVVVGQlVTeEhRVUZ0UWp0WlFVTXZRaXhKUVVGSkxFVkJRVVVzVVVGQlVTeEpRVUZKTEZkQlFWYzdXVUZETjBJc1UwRkJVeXhGUVVGRkxGTkJRVk03VTBGRGNrSXNRMEZCUXp0UlFVTkdMRmxCUVZrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4WFFVRlhMRVZCUVVVc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVTnFSU3hOUVVGTkxFVkJRMDRzVjBGQlZ5eERRVU5hTEVOQlFVTTdTVUZEU2l4RFFVRkRMRU5CUVVNN1FVRkRTaXhEUVVGRE8wRkJSVVE3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSMEZ2UkVjN1FVRkZTQ3hOUVVGTkxGVkJRVlVzVDBGQlR5eERRVU55UWl4TFFVRmhMRVZCUTJJc1IwRkJWeXhGUVVOWUxGRkJRVFpDTEVWQlFVVXNSVUZETDBJc1ZVRkJiVUlzUzBGQlN5eEZRVU40UWl4WlFVRnhRaXhMUVVGTE8wbEJSVEZDTEU5QlFVOHNRMEZCUXl4TlFVRlhMRVZCUVVVc1YwRkJhVUlzUlVGQlJTeEZRVUZGTzFGQlEzaERMRTFCUVUwc1VVRkJVU3hIUVVGelFqdFpRVU5zUXl4SFFVRkhMRVZCUVVVc1IwRkJSenRaUVVOU0xGTkJRVk1zUlVGQlJTeFRRVUZUTzFsQlEzQkNMRXRCUVVzc1JVRkJSU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVU5zUWl4RlFVRkZMRVZCUTBZc1MwRkJTeXhKUVVGSkxFVkJRVVVzUlVGRFdEdG5Ra0ZEUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhKUVVGSkxGZEJRVmM3WVVGRE0wSXNSVUZEUkN4UFFVRlBPMmRDUVVOTUxFTkJRVU1zUTBGQlF5eEZRVUZGTEZkQlFWY3NSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNTVUZCU1N4RlFVRkZPMmRDUVVNdlF5eERRVUZETEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1MwRkJTeXhGUVVGRkxGRkJRVkVzU1VGQlNTeExRVUZMTEVWQlFVVXNRMEZETTBNN1UwRkRSaXhEUVVGRE8xRkJSVVlzV1VGQldTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExGZEJRVmNzUlVGQlJTeE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRMnhGTEUxQlFVMHNSVUZEVGl4WFFVRlhMRU5CUTFvc1EwRkJRenRKUVVOS0xFTkJRVU1zUTBGQlF6dEJRVU5LTEVOQlFVTTdRVUZGUkRzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wZEJaMFJITzBGQlEwZ3NUVUZCVFN4VlFVRlZMRlZCUVZVc1EwRkRlRUlzVjBGQkswSXNVMEZCVXl4RlFVTjRReXhMUVVFeVFqdEpRVVV6UWl4UFFVRlBMRU5CUVVNc1RVRkJWeXhGUVVGRkxGZEJRV2xDTEVWQlFVVXNSVUZCUlR0UlFVTjRReXhOUVVGTkxGRkJRVkVzUjBGQlowTTdXVUZETlVNc1NVRkJTU3hGUVVGRkxGRkJRVkVzU1VGQlNTeFhRVUZYTzFsQlF6ZENMRXRCUVVzc1JVRkJSU3hMUVVGTExFbEJRVWtzUlVGQlJUdFRRVU51UWl4RFFVRkRPMUZCUTBZc1dVRkJXU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRmRCUVZjc1JVRkJSU3hOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUTNaRkxFMUJRVTBzUlVGRFRpeFhRVUZYTEVOQlExb3NRMEZCUXp0SlFVTktMRU5CUVVNc1EwRkJRenRCUVVOS0xFTkJRVU03UVVGRlJEczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRIUVdsRVJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4WlFVRlpMRU5CUVVNc1RVRkJiVUlzUTBGQlF5eEZRVUZGTEUxQlFXTXNRMEZCUXp0SlFVTm9SU3hQUVVGUExFTkJRVU1zVFVGQlZ5eEZRVUZGTEZkQlFXbENMRVZCUVVVc1JVRkJSVHRSUVVONFF5eE5RVUZOTEZGQlFWRXNSMEZCZVVJN1dVRkRja01zU1VGQlNTeEZRVUZGTEZkQlFWYzdXVUZEYWtJc1QwRkJUenRaUVVOUUxFOUJRVTg3V1VGRFVDeExRVUZMTEVWQlFVVXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNN1UwRkRka01zUTBGQlF6dFJRVU5HTEZsQlFWa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFhRVUZYTEVWQlFVVXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eERRVU42UlN4TlFVRk5MRVZCUTA0c1YwRkJWeXhEUVVOYUxFTkJRVU03U1VGRFNpeERRVUZETEVOQlFVTTdRVUZEU2l4RFFVRkRPMEZCUlVRN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRIUVRSRVJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VlFVRlZMRU5CUVVNc1QwRkJaU3hEUVVGRE8wbEJRM3BETEU5QlFVOHNVMEZCVXl4VlFVRlZMRU5CUVVNc1VVRkJZU3hGUVVGRkxGZEJRV2xDTzFGQlEzcEVMRTlCUVU4c1dVRkJXU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRmRCUVZjc1JVRkJSU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUTNCRkxGRkJRVkVzUlVGRFVpeFhRVUZYTEVOQlExb3NRMEZCUXp0SlFVTktMRU5CUVVNc1EwRkJRenRCUVVOS0xFTkJRVU03UVVFMFFrUXNUVUZCVFN4VlFVRlZMRWxCUVVrc1EwRkRiRUlzUzBGQmJVUXNSVUZEYmtRc1QwRkJkMEk3U1VGRmVFSXNUMEZCVHl4VFFVRlRMRWxCUVVrc1EwRkJReXhSUVVGblFpeEZRVUZGTEZkQlFXOUNPMUZCUTNwRUxGbEJRVmtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhYUVVGeFFpeEZRVUZGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSVHRaUVVOd1JTeEhRVUZITEVOQlFVTXNUMEZCVHl4TFFVRkxMRXRCUVVzc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeFBRVUZQTEVWQlFVVXNRMEZCUXp0VFFVTTVSQ3hEUVVGRExFTkJRVU1zVVVGQlVTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMGxCUXpWQ0xFTkJRVU1zUTBGQlF6dEJRVU5LTEVOQlFVTTdRVUZGUkRzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzVTBGQlV5eERRVUZETEU5QlFYVkNPMGxCUXk5RExFOUJRVThzU1VGQlNTeERRVUZETEdGQlFXRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVOMFF5eERRVUZETzBGQlJVUTdPenM3T3p0SFFVMUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxGVkJRVlVzUTBGQlF5eFBRVUYxUWp0SlFVTm9SQ3hQUVVGUExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkRha01zUTBGQlF6dEJRVVZFT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBGdlEwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1ZVRkJWU3hEUVVONFFpeFhRVUU0UkN4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVONlJTeGhRVUU0UWp0SlFVVTVRaXhQUVVGUExFTkJRVU1zVFVGQlZ5eEZRVUZGTEZkQlFXbENMRVZCUVVVc1JVRkJSVHRSUVVONFF5eE5RVUZOTEZGQlFWRXNSMEZCWjBNN1dVRkROVU1zU1VGQlNTeEZRVUZGTEZkQlFWYzdXVUZEYWtJc1MwRkJTeXhGUVVGRk8yZENRVU5NTEZGQlFWRTdaMEpCUTFJc1IwRkJSeXhEUVVGRExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzWVVGQllTeEZRVUZGTEVOQlFVTTdZVUZETjBNN1UwRkRSaXhEUVVGRE8xRkJRMFlzV1VGQldTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExGZEJRVmNzUlVGQlJTeE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRM1pGTEUxQlFVMHNSVUZEVGl4WFFVRlhMRU5CUTFvc1EwRkJRenRKUVVOS0xFTkJRVU1zUTBGQlF6dEJRVU5LTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJWU1V0bGVYTWdmU0JtY205dElGd2lMaTlqYjI1emRHRnVkSE5jSWp0Y2JtbHRjRzl5ZENCN0lIQnliM0JOWlhSaFpHRjBZU0I5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdWamIzSmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIdGNiaUFnUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE1zWEc0Z0lGVkpSV3hsYldWdWRFMWxkR0ZrWVhSaExGeHVJQ0JWU1VWMlpXNTBTR0Z1Wkd4bGNpeGNiaUFnVlVsRmRtVnVkRTVoYldVc1hHNGdJRlZKUm5WdVkzUnBiMjVNYVd0bExGeHVJQ0JWU1V4aGVXOTFkRU52YkN4Y2JpQWdWVWxNWVhsdmRYUlFjbTl3VFdWMFlXUmhkR0VzWEc0Z0lGVkpUR2x6ZEZCeWIzQk5aWFJoWkdGMFlTeGNiaUFnVlVsUWNtOXdUV1YwWVdSaGRHRXNYRzU5SUdaeWIyMGdYQ0l1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCUGNHVnlZWFJwYjI1TFpYbHpJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWWkxa1pXTnZjbUYwYjNKelhDSTdYRzVwYlhCdmNuUWdleUJuWlhSVlNVRjBkSEpwWW5WMFpVdGxlU0I5SUdaeWIyMGdYQ0l1TDNWMGFXeHpYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRVJsWTI5eVlYUnZjaUIwYUdGMElHaHBaR1Z6SUdFZ2NISnZjR1Z5ZEhrZ1pIVnlhVzVuSUhOd1pXTnBabWxqSUVOU1ZVUWdiM0JsY21GMGFXOXVjMXh1SUNvZ1FITjFiVzFoY25rZ1EyOXVkSEp2YkhNZ2NISnZjR1Z5ZEhrZ2RtbHphV0pwYkdsMGVTQmlZWE5sWkNCdmJpQnZjR1Z5WVhScGIyNGdkSGx3WlZ4dUlDb2dWR2hwY3lCa1pXTnZjbUYwYjNJZ1lXeHNiM2R6SUhsdmRTQjBieUJ6Y0dWamFXWjVJSGRvYVdOb0lFTlNWVVFnYjNCbGNtRjBhVzl1Y3lCemFHOTFiR1FnYUdsa1pTQmhJSEJ5YjNCbGNuUjVYRzRnS2lCcGJpQjBhR1VnVlVrdUlGUm9aU0J3Y205d1pYSjBlU0IzYVd4c0lHOXViSGtnWW1VZ2RtbHphV0pzWlNCa2RYSnBibWNnYjNCbGNtRjBhVzl1Y3lCdWIzUWdjM0JsWTJsbWFXVmtMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQnZjR1Z5WVhScGIyNXpJQzBnVkdobElFTlNWVVFnYjNCbGNtRjBhVzl1Y3lCa2RYSnBibWNnZDJocFkyZ2dkR2hsSUhCeWIzQmxjblI1SUhOb2IzVnNaQ0JpWlNCb2FXUmtaVzVjYmlBcUlFQnlaWFIxY200Z2UwWjFibU4wYVc5dWZTQkJJSEJ5YjNCbGNuUjVJR1JsWTI5eVlYUnZjaUJtZFc1amRHbHZibHh1SUNwY2JpQXFJRUJtZFc1amRHbHZiaUJvYVdSbFQyNWNiaUFxSUVCallYUmxaMjl5ZVNCUWNtOXdaWEowZVNCRVpXTnZjbUYwYjNKelhHNGdLbHh1SUNvZ1FHVjRZVzF3YkdWY2JpQXFJQzh2SUVocFpHVWdkR2hsSUhCaGMzTjNiM0prSUdacFpXeGtJR1IxY21sdVp5QlNSVUZFSUc5d1pYSmhkR2x2Ym5OY2JpQXFJR05zWVhOeklGVnpaWElnZTF4dUlDb2dJQ0JBWVhSMGNtbGlkWFJsS0NsY2JpQXFJQ0FnZFhObGNtNWhiV1U2SUhOMGNtbHVaenRjYmlBcVhHNGdLaUFnSUVCaGRIUnlhV0oxZEdVb0tWeHVJQ29nSUNCQWFHbGtaVTl1S0U5d1pYSmhkR2x2Ymt0bGVYTXVVa1ZCUkNsY2JpQXFJQ0FnY0dGemMzZHZjbVE2SUhOMGNtbHVaenRjYmlBcUlIMWNiaUFxWEc0Z0tpQkFiV1Z5YldGcFpGeHVJQ29nYzJWeGRXVnVZMlZFYVdGbmNtRnRYRzRnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRTF2WkdWc1hHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElHaHBaR1ZQYmx4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCU1pXNWtaWEpwYm1kRmJtZHBibVZjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVlVsY2JpQXFJQ0FnVFc5a1pXd3RQajVvYVdSbFQyNDZJRUZ3Y0d4NUlIUnZJSEJ5YjNCbGNuUjVYRzRnS2lBZ0lHaHBaR1ZQYmkwK1BrMXZaR1ZzT2lCQlpHUWdhR2xrWkdWdUlHMWxkR0ZrWVhSaFhHNGdLaUFnSUZKbGJtUmxjbWx1WjBWdVoybHVaUzArUGsxdlpHVnNPaUJEYUdWamF5QnBaaUJ3Y205d1pYSjBlU0J6YUc5MWJHUWdZbVVnYUdsa1pHVnVYRzRnS2lBZ0lFMXZaR1ZzTFQ0K1VtVnVaR1Z5YVc1blJXNW5hVzVsT2lCU1pYUjFjbTRnYUdsa1pHVnVJRzl3WlhKaGRHbHZibk5jYmlBcUlDQWdVbVZ1WkdWeWFXNW5SVzVuYVc1bExUNCtWVWs2SUZKbGJtUmxjaUJ2Y2lCb2FXUmxJR0poYzJWa0lHOXVJR04xY25KbGJuUWdiM0JsY21GMGFXOXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCb2FXUmxUMjRvTGk0dWIzQmxjbUYwYVc5dWN6b2dRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTmJYU2tnZTF4dUlDQnlaWFIxY200Z1puVnVZM1JwYjI0Z2FHbGtaVTl1S0c5aWFtVmpkRG9nWVc1NUxDQndjbTl3WlhKMGVVdGxlVDg2SUdGdWVTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCd2NtOXdUV1YwWVdSaGRHRW9YRzRnSUNBZ0lDQm5aWFJWU1VGMGRISnBZblYwWlV0bGVTaHdjbTl3WlhKMGVVdGxlU3dnVlVsTFpYbHpMa2hKUkVSRlRpa3NYRzRnSUNBZ0lDQnZjR1Z5WVhScGIyNXpYRzRnSUNBZ0tTaHZZbXBsWTNRc0lIQnliM0JsY25SNVMyVjVLVHRjYmlBZ2ZUdGNibjFjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdSR1ZqYjNKaGRHOXlJSFJvWVhRZ2FHbGtaWE1nWVNCd2NtOXdaWEowZVNCbWIzSWdjM0JsWTJsbWFXTWdibUZ0WlhOd1lXTmxjeTVjYmlBcUlFQnpkVzF0WVhKNUlFTnZiblJ5YjJ4eklIQnliM0JsY25SNUlIWnBjMmxpYVd4cGRIa2dZbUZ6WldRZ2IyNGdibUZ0WlhOd1lXTmxJRzFsYldKbGNuTm9hWEF1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm9hV1JsUm05eUtDNHVMbTVoYldWemNHRmpaWE02SUhOMGNtbHVaMXRkS1NCN1hHNGdJSEpsZEhWeWJpQm1kVzVqZEdsdmJpQm9hV1JsUm05eUtHOWlhbVZqZERvZ1lXNTVMQ0J3Y205d1pYSjBlVXRsZVQ4NklHRnVlU2tnZTF4dUlDQWdJSEpsZEhWeWJpQndjbTl3VFdWMFlXUmhkR0VvWEc0Z0lDQWdJQ0JuWlhSVlNVRjBkSEpwWW5WMFpVdGxlU2h3Y205d1pYSjBlVXRsZVN3Z1ZVbExaWGx6TGtoSlJFVmZSazlTS1N4Y2JpQWdJQ0FnSUc1aGJXVnpjR0ZqWlhOY2JpQWdJQ0FwS0c5aWFtVmpkQ3dnY0hKdmNHVnlkSGxMWlhrcE8xeHVJQ0I5TzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCRVpXTnZjbUYwYjNJZ2RHaGhkQ0J6YUc5M2N5QmhJSEJ5YjNCbGNuUjVJRzl1YkhrZ1ptOXlJSE53WldOcFptbGpJRzVoYldWemNHRmpaWE11WEc0Z0tpQkFjM1Z0YldGeWVTQk9ZVzFsYzNCaFkyVXRZWGRoY21VZ1kyOTFiblJsY25CaGNuUWdkRzhnWUdocFpHVkdiM0pnTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjMmh2ZDBadmNpZ3VMaTV1WVcxbGMzQmhZMlZ6T2lCemRISnBibWRiWFNrZ2UxeHVJQ0J5WlhSMWNtNGdablZ1WTNScGIyNGdjMmh2ZDBadmNpaHZZbXBsWTNRNklHRnVlU3dnY0hKdmNHVnlkSGxMWlhrL09pQmhibmtwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdjSEp2Y0UxbGRHRmtZWFJoS0Z4dUlDQWdJQ0FnWjJWMFZVbEJkSFJ5YVdKMWRHVkxaWGtvY0hKdmNHVnlkSGxMWlhrc0lGVkpTMlY1Y3k1VFNFOVhYMFpQVWlrc1hHNGdJQ0FnSUNCdVlXMWxjM0JoWTJWelhHNGdJQ0FnS1NodlltcGxZM1FzSUhCeWIzQmxjblI1UzJWNUtUdGNiaUFnZlR0Y2JuMWNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1JHVmpiM0poZEc5eUlIUm9ZWFFnY21WdVpHVnljeUJoSUhCeWIzQmxjblI1SUc5dWJIa2dkMmhsYmlCMGFHVWdibUZ0WlhOd1lXTmxJRzFoZEdOb1pYTXVYRzRnS2lCQWMzVnRiV0Z5ZVNCRGIyNTJaVzVwWlc1alpTQmhiR2xoY3lCbWIzSWdibUZ0WlhOd1lXTmxMWE5qYjNCbFpDQjJhWE5wWW1sc2FYUjVJR052Ym5SeWIyd3VYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeVpXNWtaWEpKWmlndUxpNXVZVzFsYzNCaFkyVnpPaUJ6ZEhKcGJtZGJYU2tnZTF4dUlDQnlaWFIxY200Z2MyaHZkMFp2Y2lndUxpNXVZVzFsYzNCaFkyVnpLVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnUkdWamIzSmhkRzl5SUhSb1lYUWdjMlYwY3lCMGFHVWdiM0prWlhJZ2IyWWdZU0JWU1NCbGJHVnRaVzUwWEc0Z0tpQkFjM1Z0YldGeWVTQlRjR1ZqYVdacFpYTWdkR2hsSUhKbGJtUmxjbWx1WnlCdmNtUmxjaUJtYjNJZ1ZVa2dZMjl0Y0c5dVpXNTBjMXh1SUNvZ1ZHaHBjeUJrWldOdmNtRjBiM0lnWVhCd2JHbGxjeUJ0WlhSaFpHRjBZU0IwYnlCMGFHVWdjSEp2Y0dWeWRIa2diM0lnWTJ4aGMzTXNJR2x1WkdsallYUnBibWNnYVhSeklHOXlaR1Z5SUdsdUlIUm9aU0JWU1NCeVpXNWtaWEpwYm1jZ2MyVnhkV1Z1WTJVdVhHNGdLbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0dmNtUmxjajB4WFNCVWFHVWdiM0prWlhJZ2RtRnNkV1VnWm05eUlIUm9aU0JWU1NCbGJHVnRaVzUwSUNoa1pXWmhkV3gwSUdseklERXBYRzRnS2lCQWNtVjBkWEp1SUh0R2RXNWpkR2x2Ym4wZ1FTQndjbTl3WlhKMGVTQnZjaUJqYkdGemN5QmtaV052Y21GMGIzSWdablZ1WTNScGIyNWNiaUFxWEc0Z0tpQkFablZ1WTNScGIyNGdkV2x2Y21SbGNseHVJQ29nUUdOaGRHVm5iM0o1SUZCeWIzQmxjblI1SUVSbFkyOXlZWFJ2Y25OY2JpQXFYRzRnS2lCQVpYaGhiWEJzWlZ4dUlDb2dMeThnVTJWMElHOXlaR1Z5SUdadmNpQmhJR1pwWld4a1hHNGdLaUJBZFdsdmNtUmxjaWd5S1Z4dUlDb2dabWxsYkdST1lXMWxPaUJ6ZEhKcGJtYzdYRzRnS2x4dUlDb2dMeThnVTJWMElHOXlaR1Z5SUdadmNpQmhJR05zWVhOelhHNGdLaUJBZFdsdmNtUmxjaWd4S1Z4dUlDb2dZMnhoYzNNZ1ZYTmxjbEJ5YjJacGJHVWdleUF1TGk0Z2ZWeHVJQ3BjYmlBcUlFQnRaWEp0WVdsa1hHNGdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdVM2x6ZEdWdFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElIVnBiM0prWlhKY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ2NISnZjR1Z5ZEhsY2JpQXFJQ0FnVTNsemRHVnRMVDQrZFdsdmNtUmxjanBrYnlod2NtOXdaWEowZVNsY2JpQXFJQ0FnZFdsdmNtUmxjaTArUG5CeWIzQmxjblI1T2lCelpYUnpJRzl5WkdWeUlHMWxkR0ZrWVhSaFhHNGdLaUFnSUhWcGIzSmtaWEl0UGo1VGVYTjBaVzA2SUhKbGRIVnlibk1nWkdWamIzSmhkR1ZrSUhCeWIzQmxjblI1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjFhVzl5WkdWeUtGeHVJQ0J2Y21SbGNqb2diblZ0WW1WeUlId2dkSGx3Wlc5bUlGVkpTMlY1Y3k1R1NWSlRWQ0I4SUhSNWNHVnZaaUJWU1V0bGVYTXVURUZUVkNBOUlGVkpTMlY1Y3k1R1NWSlRWRnh1S1NCN1hHNGdJSEpsZEhWeWJpQm1kVzVqZEdsdmJpQjFhVzl5WkdWeUtHOWlhbVZqZERvZ1lXNTVMQ0J3Y205d1pYSjBlVXRsZVQ4NklHRnVlU2tnZTF4dUlDQWdJSEpsZEhWeWJpQndjbTl3VFdWMFlXUmhkR0VvWjJWMFZVbEJkSFJ5YVdKMWRHVkxaWGtvY0hKdmNHVnlkSGxMWlhrc0lGVkpTMlY1Y3k1UFVrUkZVaWtzSUc5eVpHVnlLU2hjYmlBZ0lDQWdJRzlpYW1WamRDeGNiaUFnSUNBZ0lIQnliM0JsY25SNVMyVjVYRzRnSUNBZ0tUdGNiaUFnZlR0Y2JuMWNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1JHVmpiM0poZEc5eUlIUm9ZWFFnWTI5dGNHeGxkR1ZzZVNCb2FXUmxjeUJoSUhCeWIzQmxjblI1SUdsdUlHRnNiQ0JWU1NCdmNHVnlZWFJwYjI1elhHNGdLaUJBYzNWdGJXRnllU0JOWVd0bGN5QmhJSEJ5YjNCbGNuUjVJR2x1ZG1semFXSnNaU0JwYmlCaGJHd2dRMUpWUkNCdmNHVnlZWFJwYjI1elhHNGdLaUJVYUdseklHUmxZMjl5WVhSdmNpQnBjeUJoSUdOdmJuWmxibWxsYm1ObElIZHlZWEJ3WlhJZ1lYSnZkVzVrSUdocFpHVlBiaUIwYUdGMElHaHBaR1Z6SUdFZ2NISnZjR1Z5ZEhsY2JpQXFJR1IxY21sdVp5QmhiR3dnUTFKVlJDQnZjR1Z5WVhScGIyNXpJQ2hEVWtWQlZFVXNJRkpGUVVRc0lGVlFSRUZVUlN3Z1JFVk1SVlJGS1M1Y2JpQXFYRzRnS2lCQWNtVjBkWEp1SUh0R2RXNWpkR2x2Ym4wZ1FTQndjbTl3WlhKMGVTQmtaV052Y21GMGIzSWdablZ1WTNScGIyNWNiaUFxWEc0Z0tpQkFablZ1WTNScGIyNGdhR2xrWkdWdVhHNGdLaUJBWTJGMFpXZHZjbmtnVUhKdmNHVnlkSGtnUkdWamIzSmhkRzl5YzF4dUlDcGNiaUFxSUVCbGVHRnRjR3hsWEc0Z0tpQXZMeUJEYjIxd2JHVjBaV3g1SUdocFpHVWdkR2hsSUdsdWRHVnlibUZzU1dRZ1ptbGxiR1FnYVc0Z2RHaGxJRlZKWEc0Z0tpQmpiR0Z6Y3lCUWNtOWtkV04wSUh0Y2JpQXFJQ0FnUUdGMGRISnBZblYwWlNncFhHNGdLaUFnSUc1aGJXVTZJSE4wY21sdVp6dGNiaUFxWEc0Z0tpQWdJRUJoZEhSeWFXSjFkR1VvS1Z4dUlDb2dJQ0JBYUdsa1pHVnVLQ2xjYmlBcUlDQWdhVzUwWlhKdVlXeEpaRG9nYzNSeWFXNW5PMXh1SUNvZ2ZWeHVJQ3BjYmlBcUlFQnRaWEp0WVdsa1hHNGdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdUVzlrWld4Y2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ2FHbGtaR1Z1WEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUdocFpHVlBibHh1SUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JTWlc1a1pYSnBibWRGYm1kcGJtVmNiaUFxSUNBZ1RXOWtaV3d0UGo1b2FXUmtaVzQ2SUVGd2NHeDVJSFJ2SUhCeWIzQmxjblI1WEc0Z0tpQWdJR2hwWkdSbGJpMCtQbWhwWkdWUGJqb2dRMkZzYkNCM2FYUm9JR0ZzYkNCdmNHVnlZWFJwYjI1elhHNGdLaUFnSUdocFpHVlBiaTArUGsxdlpHVnNPaUJCWkdRZ2FHbGtaR1Z1SUcxbGRHRmtZWFJoWEc0Z0tpQWdJRkpsYm1SbGNtbHVaMFZ1WjJsdVpTMCtQazF2WkdWc09pQkRhR1ZqYXlCcFppQndjbTl3WlhKMGVTQnphRzkxYkdRZ1ltVWdhR2xrWkdWdVhHNGdLaUFnSUUxdlpHVnNMVDQrVW1WdVpHVnlhVzVuUlc1bmFXNWxPaUJTWlhSMWNtNGdZV3hzSUc5d1pYSmhkR2x2Ym5OY2JpQXFJQ0FnVW1WdVpHVnlhVzVuUlc1bmFXNWxMVDQrVlVrNklFRnNkMkY1Y3lCb2FXUmxJSEJ5YjNCbGNuUjVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCb2FXUmtaVzRvS1NCN1hHNGdJSEpsZEhWeWJpQm9hV1JsVDI0b1hHNGdJQ0FnVDNCbGNtRjBhVzl1UzJWNWN5NURVa1ZCVkVVc1hHNGdJQ0FnVDNCbGNtRjBhVzl1UzJWNWN5NVNSVUZFTEZ4dUlDQWdJRTl3WlhKaGRHbHZia3RsZVhNdVZWQkVRVlJGTEZ4dUlDQWdJRTl3WlhKaGRHbHZia3RsZVhNdVJFVk1SVlJGWEc0Z0lDazdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRVJsWTI5eVlYUnZjaUIwYUdGMElITndaV05wWm1sbGN5Qm9iM2NnWVNCd2NtOXdaWEowZVNCemFHOTFiR1FnWW1VZ2NtVnVaR1Z5WldRZ1lYTWdZU0JWU1NCbGJHVnRaVzUwWEc0Z0tpQkFjM1Z0YldGeWVTQk5ZWEJ6SUdFZ2JXOWtaV3dnY0hKdmNHVnlkSGtnZEc4Z1lTQnpjR1ZqYVdacFl5QlZTU0JsYkdWdFpXNTBJSGRwZEdnZ1kzVnpkRzl0SUhCeWIzQmxjblJwWlhOY2JpQXFJRlJvYVhNZ1pHVmpiM0poZEc5eUlHRnNiRzkzY3lCNWIzVWdkRzhnWkdWbWFXNWxJSGRvYVdOb0lFaFVUVXdnWld4bGJXVnVkQ0J2Y2lCamIyMXdiMjVsYm5RZ2MyaHZkV3hrSUdKbElIVnpaV1JjYmlBcUlIUnZJSEpsYm1SbGNpQmhJSE53WldOcFptbGpJSEJ5YjNCbGNuUjVMQ0JoYkc5dVp5QjNhWFJvSUdGdWVTQmhaR1JwZEdsdmJtRnNJSEJ5YjNCbGNuUnBaWE1nZEc4Z2NHRnpjeUIwYnlCMGFHRjBJR1ZzWlcxbGJuUXVYRzRnS2x4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIUmhaeUJVYUdVZ1NGUk5UQ0JsYkdWdFpXNTBJRzl5SUdOdmJYQnZibVZ1ZENCMFlXY2dibUZ0WlNCMGJ5QjFjMlVnWm05eUlISmxibVJsY21sdVoxeHVJQ29nUUhCaGNtRnRJSHRTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrZlNCYmNISnZjSE5kSUVGa1pHbDBhVzl1WVd3Z2NISnZjR1Z5ZEdsbGN5QjBieUJ3WVhOeklIUnZJSFJvWlNCbGJHVnRaVzUwWEc0Z0tpQkFjR0Z5WVcwZ2UySnZiMnhsWVc1OUlGdHpaWEpwWVd4cGVtVTlabUZzYzJWZElGZG9aWFJvWlhJZ2RHaGxJSEJ5YjNCbGNuUjVJSE5vYjNWc1pDQmlaU0J6WlhKcFlXeHBlbVZrWEc0Z0tpQkFjbVYwZFhKdUlIdEdkVzVqZEdsdmJuMGdRU0J3Y205d1pYSjBlU0JrWldOdmNtRjBiM0lnWm5WdVkzUnBiMjVjYmlBcVhHNGdLaUJBWm5WdVkzUnBiMjRnZFdsbGJHVnRaVzUwWEc0Z0tpQkFZMkYwWldkdmNua2dVSEp2Y0dWeWRIa2dSR1ZqYjNKaGRHOXljMXh1SUNwY2JpQXFJRUJsZUdGdGNHeGxYRzRnS2lBdkx5QlNaVzVrWlhJZ1lTQndjbTl3WlhKMGVTQmhjeUJoSUhSbGVIUWdhVzV3ZFhSY2JpQXFJR05zWVhOeklFeHZaMmx1Um05eWJTQjdYRzRnS2lBZ0lFQmhkSFJ5YVdKMWRHVW9LVnh1SUNvZ0lDQkFkV2xsYkdWdFpXNTBLQ2RwYm5CMWRDY3NJSHNnZEhsd1pUb2dKM1JsZUhRbkxDQndiR0ZqWldodmJHUmxjam9nSjBWdWRHVnlJSFZ6WlhKdVlXMWxKeUI5S1Z4dUlDb2dJQ0IxYzJWeWJtRnRaVG9nYzNSeWFXNW5PMXh1SUNwY2JpQXFJQ0FnUUdGMGRISnBZblYwWlNncFhHNGdLaUFnSUVCMWFXVnNaVzFsYm5Rb0oybHVjSFYwSnl3Z2V5QjBlWEJsT2lBbmNHRnpjM2R2Y21RbkxDQndiR0ZqWldodmJHUmxjam9nSjBWdWRHVnlJSEJoYzNOM2IzSmtKeUI5S1Z4dUlDb2dJQ0J3WVhOemQyOXlaRG9nYzNSeWFXNW5PMXh1SUNwY2JpQXFJQ0FnUUdGMGRISnBZblYwWlNncFhHNGdLaUFnSUVCMWFXVnNaVzFsYm5Rb0oySjFkSFJ2Ymljc0lIc2dZMnhoYzNNNklDZGlkRzR0Y0hKcGJXRnllU2NnZlNsY2JpQXFJQ0FnYzNWaWJXbDBPaUJ6ZEhKcGJtY2dQU0FuVEc5bmFXNG5PMXh1SUNvZ2ZWeHVJQ3BjYmlBcUlFQnRaWEp0WVdsa1hHNGdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdUVzlrWld4Y2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ2RXbGxiR1Z0Wlc1MFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElGSmxibVJsY21sdVowVnVaMmx1WlZ4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCVlNWeHVJQ29nSUNCTmIyUmxiQzArUG5WcFpXeGxiV1Z1ZERvZ1FYQndiSGtnZEc4Z2NISnZjR1Z5ZEhsY2JpQXFJQ0FnZFdsbGJHVnRaVzUwTFQ0K1RXOWtaV3c2SUVGa1pDQmxiR1Z0Wlc1MElHMWxkR0ZrWVhSaFhHNGdLaUFnSUZKbGJtUmxjbWx1WjBWdVoybHVaUzArUGsxdlpHVnNPaUJIWlhRZ1pXeGxiV1Z1ZENCdFpYUmhaR0YwWVZ4dUlDb2dJQ0JOYjJSbGJDMCtQbEpsYm1SbGNtbHVaMFZ1WjJsdVpUb2dVbVYwZFhKdUlIUmhaeUJoYm1RZ2NISnZjSE5jYmlBcUlDQWdVbVZ1WkdWeWFXNW5SVzVuYVc1bExUNCtWVWs2SUZKbGJtUmxjaUIzYVhSb0lITndaV05wWm1sbFpDQmxiR1Z0Wlc1MFhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIxYVdWc1pXMWxiblFvWEc0Z0lIUmhaem9nYzNSeWFXNW5JSHdnVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGl4Y2JpQWdjSEp2Y0hNL09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytMRnh1SUNCelpYSnBZV3hwZW1VNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlZ4dUtTQjdYRzRnSUhKbGRIVnliaUFvYjNKcFoybHVZV3c2SUdGdWVTd2djSEp2Y0dWeWRIbExaWGsvT2lCaGJua3BJRDArSUh0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUhSaFp5QTlQVDBnWENKdlltcGxZM1JjSWlrZ2UxeHVJQ0FnSUNBZ2NISnZjSE1nUFNCMFlXYzdYRzRnSUNBZ0lDQjBZV2NnUFNCY0lsd2lPMXh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0J0WlhSaFpHRjBZVG9nVlVsRmJHVnRaVzUwVFdWMFlXUmhkR0VnUFNCN1hHNGdJQ0FnSUNCMFlXYzZJSFJoWnlCaGN5QnpkSEpwYm1jc1hHNGdJQ0FnSUNCelpYSnBZV3hwZW1VNklITmxjbWxoYkdsNlpTeGNiaUFnSUNBZ0lIQnliM0J6T2lCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCd2NtOXdjeUI4ZkNCN2ZTd2dlMXh1SUNBZ0lDQWdJQ0J1WVcxbE9pQndjbTl3WlhKMGVVdGxlU3hjYmlBZ0lDQWdJSDBwTEZ4dUlDQWdJSDA3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdjSEp2Y0UxbGRHRmtZWFJoS0Z4dUlDQWdJQ0FnWjJWMFZVbEJkSFJ5YVdKMWRHVkxaWGtvY0hKdmNHVnlkSGxMWlhrc0lGVkpTMlY1Y3k1RlRFVk5SVTVVS1N4Y2JpQWdJQ0FnSUcxbGRHRmtZWFJoWEc0Z0lDQWdLU2h2Y21sbmFXNWhiQ3dnY0hKdmNHVnlkSGxMWlhrcE8xeHVJQ0I5TzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCRVpXTnZjbUYwYjNJZ2RHaGhkQ0J0WVhCeklHRWdiVzlrWld3Z2NISnZjR1Z5ZEhrZ2RHOGdZU0JWU1NCamIyMXdiMjVsYm5RZ2NISnZjR1Z5ZEhsY2JpQXFJRUJ6ZFcxdFlYSjVJRk53WldOcFptbGxjeUJvYjNjZ1lTQndjbTl3WlhKMGVTQnphRzkxYkdRZ1ltVWdjR0Z6YzJWa0lIUnZJR0VnVlVrZ1kyOXRjRzl1Wlc1MFhHNGdLaUJVYUdseklHUmxZMjl5WVhSdmNpQmhiR3h2ZDNNZ2VXOTFJSFJ2SUdSbFptbHVaU0JvYjNjZ1lTQnRiMlJsYkNCd2NtOXdaWEowZVNCemFHOTFiR1FnWW1VZ2JXRndjR1ZrSUhSdlhHNGdLaUJoSUhCeWIzQmxjblI1SUc5bUlIUm9aU0JWU1NCamIyMXdiMjVsYm5RZ2QyaGxiaUJ5Wlc1a1pYSnBibWN1SUVsMElISmxjWFZwY21WeklIUm9aU0JqYkdGemN5QjBieUJpWlZ4dUlDb2daR1ZqYjNKaGRHVmtJSGRwZEdnZ1FIVnBiVzlrWld3dVhHNGdLbHh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0d2NtOXdUbUZ0WlYwZ1ZHaGxJRzVoYldVZ2IyWWdkR2hsSUhCeWIzQmxjblI1SUhSdklIQmhjM01nZEc4Z2RHaGxJR052YlhCdmJtVnVkQ0FvWkdWbVlYVnNkSE1nZEc4Z2RHaGxJSEJ5YjNCbGNuUjVJR3RsZVNsY2JpQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXM04wY21sdVoybG1lVDFtWVd4elpWMGdWMmhsZEdobGNpQjBieUJ6ZEhKcGJtZHBabmtnZEdobElIQnliM0JsY25SNUlIWmhiSFZsWEc0Z0tpQkFjbVYwZFhKdUlIdEdkVzVqZEdsdmJuMGdRU0J3Y205d1pYSjBlU0JrWldOdmNtRjBiM0lnWm5WdVkzUnBiMjVjYmlBcVhHNGdLaUJBWm5WdVkzUnBiMjRnZFdsd2NtOXdYRzRnS2lCQVkyRjBaV2R2Y25rZ1VISnZjR1Z5ZEhrZ1JHVmpiM0poZEc5eWMxeHVJQ3BjYmlBcUlFQmxlR0Z0Y0d4bFhHNGdLaUF2THlCTllYQWdiVzlrWld3Z2NISnZjR1Z5ZEdsbGN5QjBieUJqYjIxd2IyNWxiblFnY0hKdmNHVnlkR2xsYzF4dUlDb2dRSFZwYlc5a1pXd29KM1Z6WlhJdGNISnZabWxzWlNjcFhHNGdLaUJqYkdGemN5QlZjMlZ5VUhKdlptbHNaU0I3WEc0Z0tpQWdJRUJoZEhSeWFXSjFkR1VvS1Z4dUlDb2dJQ0JBZFdsd2NtOXdLQ2tnTHk4Z1YybHNiQ0JpWlNCd1lYTnpaV1FnWVhNZ0oyWjFiR3hPWVcxbEp5QjBieUIwYUdVZ1kyOXRjRzl1Wlc1MFhHNGdLaUFnSUdaMWJHeE9ZVzFsT2lCemRISnBibWM3WEc0Z0tseHVJQ29nSUNCQVlYUjBjbWxpZFhSbEtDbGNiaUFxSUNBZ1FIVnBjSEp2Y0NnbmRYTmxja1Z0WVdsc0p5a2dMeThnVjJsc2JDQmlaU0J3WVhOelpXUWdZWE1nSjNWelpYSkZiV0ZwYkNjZ2RHOGdkR2hsSUdOdmJYQnZibVZ1ZEZ4dUlDb2dJQ0JsYldGcGJEb2djM1J5YVc1bk8xeHVJQ3BjYmlBcUlDQWdRR0YwZEhKcFluVjBaU2dwWEc0Z0tpQWdJRUIxYVhCeWIzQW9KM1Z6WlhKRVlYUmhKeXdnZEhKMVpTa2dMeThnVjJsc2JDQmlaU0J3WVhOelpXUWdZWE1nYzNSeWFXNW5hV1pwWldRZ1NsTlBUbHh1SUNvZ0lDQjFjMlZ5UkdGMFlUb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQanRjYmlBcUlIMWNiaUFxWEc0Z0tpQkFiV1Z5YldGcFpGeHVJQ29nYzJWeGRXVnVZMlZFYVdGbmNtRnRYRzRnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRTF2WkdWc1hHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElIVnBjSEp2Y0Z4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCU1pXNWtaWEpwYm1kRmJtZHBibVZjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnUTI5dGNHOXVaVzUwWEc0Z0tpQWdJRTF2WkdWc0xUNCtkV2x3Y205d09pQkJjSEJzZVNCMGJ5QndjbTl3WlhKMGVWeHVJQ29nSUNCMWFYQnliM0F0UGo1TmIyUmxiRG9nUVdSa0lIQnliM0FnYldWMFlXUmhkR0ZjYmlBcUlDQWdVbVZ1WkdWeWFXNW5SVzVuYVc1bExUNCtUVzlrWld3NklFZGxkQ0J3Y205d0lHMWxkR0ZrWVhSaFhHNGdLaUFnSUUxdlpHVnNMVDQrVW1WdVpHVnlhVzVuUlc1bmFXNWxPaUJTWlhSMWNtNGdjSEp2Y0NCdVlXMWxJR0Z1WkNCemRISnBibWRwWm5rZ1pteGhaMXh1SUNvZ0lDQlNaVzVrWlhKcGJtZEZibWRwYm1VdFBqNURiMjF3YjI1bGJuUTZJRkJoYzNNZ2NISnZjR1Z5ZEhrZ2QybDBhQ0J6Y0dWamFXWnBaV1FnYm1GdFpWeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZFdsd2NtOXdLRnh1SUNCd2NtOXdUbUZ0WlRvZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0lEMGdkVzVrWldacGJtVmtMRnh1SUNCemRISnBibWRwWm5rNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlZ4dUtTQjdYRzRnSUhKbGRIVnliaUFvZEdGeVoyVjBPaUJoYm5rc0lIQnliM0JsY25SNVMyVjVQem9nWVc1NUtTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2JXVjBZV1JoZEdFNklGVkpVSEp2Y0UxbGRHRmtZWFJoSUQwZ2UxeHVJQ0FnSUNBZ2JtRnRaVG9nY0hKdmNFNWhiV1VnZkh3Z2NISnZjR1Z5ZEhsTFpYa3NYRzRnSUNBZ0lDQnpkSEpwYm1kcFpuazZJSE4wY21sdVoybG1lU3hjYmlBZ0lDQjlPMXh1SUNBZ0lIQnliM0JOWlhSaFpHRjBZU2huWlhSVlNVRjBkSEpwWW5WMFpVdGxlU2h3Y205d1pYSjBlVXRsZVN3Z1ZVbExaWGx6TGxCU1QxQXBMQ0J0WlhSaFpHRjBZU2tvWEc0Z0lDQWdJQ0IwWVhKblpYUXNYRzRnSUNBZ0lDQndjbTl3WlhKMGVVdGxlVnh1SUNBZ0lDazdYRzRnSUgwN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFUmxZMjl5WVhSdmNpQjBhR0YwSUcxaGNITWdZU0J1WlhOMFpXUWdiVzlrWld3Z2NISnZjR1Z5ZEhrZ2RHOGdZU0JWU1NCamIyMXdiMjVsYm5RZ2NISnZjR1Z5ZEhrdVhHNGdLaUJBYzNWdGJXRnllU0JFWldacGJtVnpJR2h2ZHlCaElIQmhjbVZ1ZENCamIyMXdiMjVsYm5RZ2MyaHZkV3hrSUhKbGJtUmxjaUIwYUdVZ1kyaHBiR1FnYlc5a1pXd2dkMmhsYmlCdVpYTjBaV1F1WEc0Z0tseHVJQ29nVkdocGN5QmtaV052Y21GMGIzSWdhWE1nZFhObFpDQjBieUJrWldOdmNtRjBaU0J3Y205d1pYSjBhV1Z6SUhSb1lYUWdZWEpsSUc1bGMzUmxaQ0J0YjJSbGJITXVYRzRnS2lCWGFHVnVJR0Z3Y0d4cFpXUXNJR2wwSUdGc2JHOTNjeUJ2ZG1WeWNtbGthVzVuSUhSb1pTQmtaV1poZFd4MElIUmhaeUJ2WmlCMGFHVWdZMmhwYkdRZ2JXOWtaV3dnZDJsMGFDQjBhR1VnY0hKdmRtbGtaV1FnYjI1bExGeHVJQ29nWlc1aFlteHBibWNnWkdsbVptVnlaVzUwSUhKbGJtUmxjbWx1WnlCaVpXaGhkbWx2Y2lCM2FHVnVJSFJvWlNCdGIyUmxiQ0JoWTNSeklHRnpJR0VnWTJocGJHUWdLRzVsYzNSbFpDbGNiaUFxSUdOdmJYQmhjbVZrSUhSdklIZG9aVzRnYVhRZ2FYTWdjbVZ1WkdWeVpXUWdZWE1nZEdobElIQmhjbVZ1ZENCdGIyUmxiQzVjYmlBcVhHNGdLaUJKZENCeVpYRjFhWEpsY3lCMGFHVWdZMnhoYzNNZ2RHOGdZbVVnWkdWamIzSmhkR1ZrSUhkcGRHZ2dZRUIxYVcxdlpHVnNZQzVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdZMnhoZW5vZ1ZHaGxJRzF2WkdWc0lHTnNZWE56SUc1aGJXVWdkRzhnY0dGemN5QjBieUIwYUdVZ1kyOXRjRzl1Wlc1MElDaGtaV1poZFd4MGN5QjBieUIwYUdVZ2NISnZjR1Z5ZEhrZ2EyVjVLUzVjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFlXY2dWR2hsSUVoVVRVd2daV3hsYldWdWRDQnZjaUJqYjIxd2IyNWxiblFnZEdGbklHNWhiV1VnZEc4Z2IzWmxjbkpwWkdVZ2RHaGxJRlZKSUhSaFp5QnZaaUIwYUdVZ2JtVnpkR1ZrSUcxdlpHVnNYRzRnS2lCQWNHRnlZVzBnZTFKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ1OUlGdHdjbTl3YzEwZ1FXUmthWFJwYjI1aGJDQndjbTl3WlhKMGFXVnpJSFJ2SUhCaGMzTWdkRzhnZEdobElHVnNaVzFsYm5SY2JpQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXM05sY21saGJHbDZaVDFtWVd4elpWMGdWMmhsZEdobGNpQjBhR1VnY0hKdmNHVnlkSGtnYzJodmRXeGtJR0psSUhObGNtbGhiR2w2WldSY2JpQXFJRUJ5WlhSMWNtNGdlMFoxYm1OMGFXOXVmU0JCSUhCeWIzQmxjblI1SUdSbFkyOXlZWFJ2Y2lCbWRXNWpkR2x2Ymk1Y2JpQXFYRzRnS2lCQVpuVnVZM1JwYjI0Z2RXbGphR2xzWkZ4dUlDb2dRR05oZEdWbmIzSjVJRkJ5YjNCbGNuUjVJRVJsWTI5eVlYUnZjbk5jYmlBcVhHNGdLaUJBWlhoaGJYQnNaVnh1SUNvZ0x5OGdUV0Z3SUdFZ2JtVnpkR1ZrSUcxdlpHVnNJSFJ2SUdFZ1kyOXRjRzl1Wlc1MElIQnliM0JsY25SNUlIZHBkR2dnWVNCa2FXWm1aWEpsYm5RZ2RHRm5JSGRvWlc0Z2JtVnpkR1ZrWEc0Z0tpQkFkV2x0YjJSbGJDZ25ZV1JrY21WemN5MWpiMjF3YjI1bGJuUW5LVnh1SUNvZ1kyeGhjM01nUVdSa2NtVnpjeUI3WEc0Z0tpQWdJRUJoZEhSeWFXSjFkR1VvS1Z4dUlDb2dJQ0J6ZEhKbFpYUTZJSE4wY21sdVp6dGNiaUFxWEc0Z0tpQWdJRUJoZEhSeWFXSjFkR1VvS1Z4dUlDb2dJQ0JqYVhSNU9pQnpkSEpwYm1jN1hHNGdLaUI5WEc0Z0tseHVJQ29nUUhWcGJXOWtaV3dvSjNWelpYSXRjSEp2Wm1sc1pTY3BYRzRnS2lCamJHRnpjeUJWYzJWeVVISnZabWxzWlNCN1hHNGdLaUFnSUVCaGRIUnlhV0oxZEdVb0tWeHVJQ29nSUNCQWRXbGphR2xzWkNoQlpHUnlaWE56TG01aGJXVXNJQ2RoWkdSeVpYTnpMV05vYVd4a0xXTnZiWEJ2Ym1WdWRDY3BYRzRnS2lBZ0lHRmtaSEpsYzNNNklFRmtaSEpsYzNNN1hHNGdLaUI5WEc0Z0tseHVJQ29nTHk4Z1NXNGdkR2hwY3lCbGVHRnRjR3hsTENCMGFHVWdRV1JrY21WemN5QnRiMlJsYkNCb1lYTWdkR2hsSUdSbFptRjFiSFFnZEdGbklDZGhaR1J5WlhOekxXTnZiWEJ2Ym1WdWRDY2dkMmhsYmlCeVpXNWtaWEpsWkNCaGN5QmhJSEp2YjNRZ1kyOXRjRzl1Wlc1MExGeHVJQ29nTHk4Z1luVjBJSGRvWlc0Z2RYTmxaQ0JwYm5OcFpHVWdWWE5sY2xCeWIyWnBiR1VzSUdsMElHbHpJSEpsYm1SbGNtVmtJSGRwZEdnZ2RHaGxJRzkyWlhKeWFXUmtaVzRnZEdGbklDZGhaR1J5WlhOekxXTm9hV3hrTFdOdmJYQnZibVZ1ZENkY2JpQXFYRzRnS2lCQWJXVnliV0ZwWkZ4dUlDb2djMlZ4ZFdWdVkyVkVhV0ZuY21GdFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFMXZaR1ZzWEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUhWcFkyaHBiR1JjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVW1WdVpHVnlhVzVuUlc1bmFXNWxYRzRnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRU52YlhCdmJtVnVkRnh1SUNvZ0lDQk5iMlJsYkMwK1BuVnBZMmhwYkdRNklFRndjR3g1SUhSdklIQnliM0JsY25SNVhHNGdLaUFnSUhWcFkyaHBiR1F0UGo1TmIyUmxiRG9nUVdSa0lHTm9hV3hrSUcxbGRHRmtZWFJoWEc0Z0tpQWdJRkpsYm1SbGNtbHVaMFZ1WjJsdVpTMCtQazF2WkdWc09pQkhaWFFnWTJocGJHUWdiV1YwWVdSaGRHRmNiaUFxSUNBZ1RXOWtaV3d0UGo1U1pXNWtaWEpwYm1kRmJtZHBibVU2SUZKbGRIVnliaUJ3Y205d0lHNWhiV1VzSUhOMGNtbHVaMmxtZVNCbWJHRm5MQ0JoYm1RZ1kyaHBiR1FnZEdGbklHOTJaWEp5YVdSbFhHNGdLaUFnSUZKbGJtUmxjbWx1WjBWdVoybHVaUzArUGtOdmJYQnZibVZ1ZERvZ1VHRnpjeUJ3Y205d1pYSjBlU0IzYVhSb0lITndaV05wWm1sbFpDQnVZVzFsSUdGdVpDQnlaVzVrWlhJZ2QybDBhQ0J2ZG1WeWNtbGtaR1Z1SUhSaFp5QnBaaUJ1WlhOMFpXUmNiaUFxTDF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2RXbGphR2xzWkNoY2JpQWdZMnhoZW5vNklITjBjbWx1Wnl4Y2JpQWdkR0ZuT2lCemRISnBibWNzWEc0Z0lIQnliM0J6T2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0lEMGdlMzBzWEc0Z0lHbHpRWEp5WVhrNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlN4Y2JpQWdjMlZ5YVdGc2FYcGxPaUJpYjI5c1pXRnVJRDBnWm1Gc2MyVmNiaWtnZTF4dUlDQnlaWFIxY200Z0tIUmhjbWRsZERvZ1lXNTVMQ0J3Y205d1pYSjBlVXRsZVQ4NklHRnVlU2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJRzFsZEdGa1lYUmhPaUJWU1VWc1pXMWxiblJOWlhSaFpHRjBZU0E5SUh0Y2JpQWdJQ0FnSUhSaFp6b2dkR0ZuTEZ4dUlDQWdJQ0FnYzJWeWFXRnNhWHBsT2lCelpYSnBZV3hwZW1Vc1hHNGdJQ0FnSUNCd2NtOXdjem9nVDJKcVpXTjBMbUZ6YzJsbmJpaGNiaUFnSUNBZ0lDQWdlMzBzWEc0Z0lDQWdJQ0FnSUhCeWIzQnpJSHg4SUh0OUxGeHVJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnYm1GdFpUb2dZMnhoZW5vZ2ZId2djSEp2Y0dWeWRIbExaWGtzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lHbHpRWEp5WVhsY2JpQWdJQ0FnSUNBZ0lDQS9JSHNnWTNWemRHOXRWSGx3WlhNNklGdEJjbkpoZVM1dVlXMWxYU3dnYlhWc2RHbHdiR1U2SUhSeWRXVWdmVnh1SUNBZ0lDQWdJQ0FnSURvZ2V5QnRkV3gwYVhCc1pUb2djSEp2Y0hNL0xtMTFiSFJwY0d4bElIeDhJR1poYkhObElIMWNiaUFnSUNBZ0lDa3NYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lIQnliM0JOWlhSaFpHRjBZU2huWlhSVlNVRjBkSEpwWW5WMFpVdGxlU2h3Y205d1pYSjBlVXRsZVN3Z1ZVbExaWGx6TGtOSVNVeEVLU3dnYldWMFlXUmhkR0VwS0Z4dUlDQWdJQ0FnZEdGeVoyVjBMRnh1SUNBZ0lDQWdjSEp2Y0dWeWRIbExaWGxjYmlBZ0lDQXBPMXh1SUNCOU8xeHVmVnh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkVaV052Y21GMGIzSWdkR2hoZENCdFlYQnpJR0VnYlc5a1pXd2djSEp2Y0dWeWRIa2dkRzhnWVNCc2FYTjBJR2wwWlcwZ1kyOXRjRzl1Wlc1MFhHNGdLaUJBYzNWdGJXRnllU0JUY0dWamFXWnBaWE1nYUc5M0lHRWdjSEp2Y0dWeWRIa2djMmh2ZFd4a0lHSmxJSEpsYm1SbGNtVmtJR2x1SUdFZ2JHbHpkQ0JqYjI1MFpYaDBYRzRnS2lCVWFHbHpJR1JsWTI5eVlYUnZjaUJoYkd4dmQzTWdlVzkxSUhSdklHUmxabWx1WlNCb2IzY2dZU0J0YjJSbGJDQndjbTl3WlhKMGVTQmpiMjUwWVdsdWFXNW5JR0VnYkdsemRGeHVJQ29nYzJodmRXeGtJR0psSUhKbGJtUmxjbVZrTGlCSmRDQnlaWEYxYVhKbGN5QjBhR1VnWTJ4aGMzTWdkRzhnWW1VZ1pHVmpiM0poZEdWa0lIZHBkR2dnUUhWcGJHbHpkRzF2WkdWc0xseHVJQ3BjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmNISnZjRTVoYldWZElGUm9aU0J1WVcxbElHOW1JSFJvWlNCd2NtOXdaWEowZVNCMGJ5QndZWE56SUhSdklIUm9aU0JzYVhOMElHTnZiWEJ2Ym1WdWRDQW9aR1ZtWVhWc2RITWdkRzhnZEdobElIQnliM0JsY25SNUlHdGxlU2xjYmlBcUlFQndZWEpoYlNCN1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBuMGdXM0J5YjNCelhTQkJaR1JwZEdsdmJtRnNJSEJ5YjNCbGNuUnBaWE1nZEc4Z2NHRnpjeUIwYnlCMGFHVWdiR2x6ZENCamIyNTBZV2x1WlhKY2JpQXFJRUJ5WlhSMWNtNGdlMFoxYm1OMGFXOXVmU0JCSUhCeWIzQmxjblI1SUdSbFkyOXlZWFJ2Y2lCbWRXNWpkR2x2Ymx4dUlDcGNiaUFxSUVCbWRXNWpkR2x2YmlCMWFXeHBjM1J3Y205d1hHNGdLaUJBWTJGMFpXZHZjbmtnVUhKdmNHVnlkSGtnUkdWamIzSmhkRzl5YzF4dUlDcGNiaUFxSUVCbGVHRnRjR3hsWEc0Z0tpQXZMeUJFWldacGJtVWdZU0JzYVhOMElIQnliM0JsY25SNUlIZHBkR2dnWTNWemRHOXRJSEpsYm1SbGNtbHVaMXh1SUNvZ1FIVnBiVzlrWld3b0ozUnZaRzh0YkdsemRDY3BYRzRnS2lCamJHRnpjeUJVYjJSdlRHbHpkQ0I3WEc0Z0tpQWdJRUJoZEhSeWFXSjFkR1VvS1Z4dUlDb2dJQ0IwYVhSc1pUb2djM1J5YVc1bk8xeHVJQ3BjYmlBcUlDQWdRR0YwZEhKcFluVjBaU2dwWEc0Z0tpQWdJRUIxYVd4cGMzUndjbTl3S0NkcGRHVnRjeWNzSUhzZ1kyeGhjM002SUNkMGIyUnZMV2wwWlcxekxXTnZiblJoYVc1bGNpY2dmU2xjYmlBcUlDQWdhWFJsYlhNNklGUnZaRzlKZEdWdFcxMDdYRzRnS2lCOVhHNGdLbHh1SUNvZ1FIVnBiR2x6ZEcxdlpHVnNLQ2RzYVNjc0lIc2dZMnhoYzNNNklDZDBiMlJ2TFdsMFpXMG5JSDBwWEc0Z0tpQmpiR0Z6Y3lCVWIyUnZTWFJsYlNCbGVIUmxibVJ6SUUxdlpHVnNJSHRjYmlBcUlDQWdRR0YwZEhKcFluVjBaU2dwWEc0Z0tpQWdJSFJsZUhRNklITjBjbWx1Wnp0Y2JpQXFYRzRnS2lBZ0lFQmhkSFJ5YVdKMWRHVW9LVnh1SUNvZ0lDQmpiMjF3YkdWMFpXUTZJR0p2YjJ4bFlXNDdYRzRnS2lCOVhHNGdLbHh1SUNvZ1FHMWxjbTFoYVdSY2JpQXFJSE5sY1hWbGJtTmxSR2xoWjNKaGJWeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQk5iMlJsYkZ4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCMWFXeHBjM1J3Y205d1hHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElGSmxibVJsY21sdVowVnVaMmx1WlZ4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCTWFYTjBRMjl1ZEdGcGJtVnlYRzRnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRXhwYzNSSmRHVnRjMXh1SUNvZ0lDQk5iMlJsYkMwK1BuVnBiR2x6ZEhCeWIzQTZJRUZ3Y0d4NUlIUnZJSEJ5YjNCbGNuUjVYRzRnS2lBZ0lIVnBiR2x6ZEhCeWIzQXRQajVOYjJSbGJEb2dRV1JrSUd4cGMzUWdjSEp2Y0NCdFpYUmhaR0YwWVZ4dUlDb2dJQ0JTWlc1a1pYSnBibWRGYm1kcGJtVXRQajVOYjJSbGJEb2dSMlYwSUd4cGMzUWdjSEp2Y0NCdFpYUmhaR0YwWVZ4dUlDb2dJQ0JOYjJSbGJDMCtQbEpsYm1SbGNtbHVaMFZ1WjJsdVpUb2dVbVYwZFhKdUlIQnliM0FnYm1GdFpTQmhibVFnWTI5dWRHRnBibVZ5SUhCeWIzQnpYRzRnS2lBZ0lGSmxibVJsY21sdVowVnVaMmx1WlMwK1BreHBjM1JEYjI1MFlXbHVaWEk2SUVOeVpXRjBaU0JqYjI1MFlXbHVaWElnZDJsMGFDQndjbTl3YzF4dUlDb2dJQ0JTWlc1a1pYSnBibWRGYm1kcGJtVXRQajVNYVhOMFNYUmxiWE02SUZKbGJtUmxjaUJsWVdOb0lHbDBaVzBnZFhOcGJtY2dRSFZwYkdsemRHMXZaR1ZzWEc0Z0tpQWdJRXhwYzNSRGIyNTBZV2x1WlhJdFBqNVNaVzVrWlhKcGJtZEZibWRwYm1VNklGSmxkSFZ5YmlCeVpXNWtaWEpsWkNCc2FYTjBYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMWFXeHBjM1J3Y205d0tGeHVJQ0J3Y205d1RtRnRaVG9nYzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrSUQwZ2RXNWtaV1pwYm1Wa0xGeHVJQ0J3Y205d2N6ODZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDVjYmlrZ2UxeHVJQ0J5WlhSMWNtNGdLSFJoY21kbGREb2dZVzU1TENCd2NtOXdaWEowZVV0bGVUODZJR0Z1ZVNrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUcxbGRHRmtZWFJoT2lCUVlYSjBhV0ZzUEZWSlRHbHpkRkJ5YjNCTlpYUmhaR0YwWVQ0Z1BTQjdYRzRnSUNBZ0lDQnVZVzFsT2lCd2NtOXdUbUZ0WlNCOGZDQndjbTl3WlhKMGVVdGxlU3hjYmlBZ0lDQWdJSEJ5YjNCek9pQndjbTl3Y3lCOGZDQjdmU3hjYmlBZ0lDQjlPMXh1SUNBZ0lIQnliM0JOWlhSaFpHRjBZU2huWlhSVlNVRjBkSEpwWW5WMFpVdGxlU2h3Y205d1pYSjBlVXRsZVN3Z1ZVbExaWGx6TGxWSlRFbFRWRkJTVDFBcExDQnRaWFJoWkdGMFlTa29YRzRnSUNBZ0lDQjBZWEpuWlhRc1hHNGdJQ0FnSUNCd2NtOXdaWEowZVV0bGVWeHVJQ0FnSUNrN1hHNGdJSDA3WEc1OVhHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVSbFkyOXlZWFJ2Y2lCMGFHRjBJSEJ2YzJsMGFXOXVjeUJoSUhCeWIzQmxjblI1SUdsdUlHRWdjM0JsWTJsbWFXTWdaM0pwWkNCc1lYbHZkWFFnY0c5emFYUnBiMjVjYmlBcUlFQnpkVzF0WVhKNUlGTndaV05wWm1sbGN5QjBhR1VnWTI5c2RXMXVJR0Z1WkNCeWIzY2djRzl6YVhScGIyNGdabTl5SUdFZ2NISnZjR1Z5ZEhrZ2FXNGdZU0JWU1NCc1lYbHZkWFFnWjNKcFpGeHVJQ29nVkdocGN5QmtaV052Y21GMGIzSWdZV3hzYjNkeklIbHZkU0IwYnlCa1pXWnBibVVnZEdobElITndaV05wWm1saklIQnZjMmwwYVc5dUlHOW1JR0VnY0hKdmNHVnlkSGtnZDJsMGFHbHVYRzRnS2lCaElHZHlhV1F0WW1GelpXUWdiR0Y1YjNWMElITjVjM1JsYlM0Z1NYUWdjM0JsWTJsbWFXVnpJSGRvYVdOb0lHTnZiSFZ0YmlCaGJtUWdjbTkzSUhSb1pTQndjbTl3WlhKMGVWeHVJQ29nYzJodmRXeGtJRzlqWTNWd2VTQjNhR1Z1SUhKbGJtUmxjbVZrSUdsdUlIUm9aU0JWU1M1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWTI5c0lGUm9aU0JqYjJ4MWJXNGdjRzl6YVhScGIyNGdhVzRnZEdobElHZHlhV1FnYkdGNWIzVjBYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzNKdmR6MHhYU0JVYUdVZ2NtOTNJSEJ2YzJsMGFXOXVJR2x1SUhSb1pTQm5jbWxrSUd4aGVXOTFkQ0FvWkdWbVlYVnNkSE1nZEc4Z01TbGNiaUFxSUVCd1lYSmhiU0I3VW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UG4wZ1czQnliM0J6UFh0OVhTQkJaR1JwZEdsdmJtRnNJSEJ5YjNCbGNuUnBaWE1nZEc4Z2NHRnpjeUIwYnlCMGFHVWdiR0Y1YjNWMElHbDBaVzFjYmlBcUlFQnlaWFIxY200Z2UwWjFibU4wYVc5dWZTQkJJSEJ5YjNCbGNuUjVJR1JsWTI5eVlYUnZjaUJtZFc1amRHbHZibHh1SUNwY2JpQXFJRUJtZFc1amRHbHZiaUIxYVd4aGVXOTFkSEJ5YjNCY2JpQXFJRUJqWVhSbFoyOXllU0JRY205d1pYSjBlU0JFWldOdmNtRjBiM0p6WEc0Z0tseHVJQ29nUUdWNFlXMXdiR1ZjYmlBcUlDOHZJRkJ2YzJsMGFXOXVJSEJ5YjNCbGNuUnBaWE1nYVc0Z1lTQm5jbWxrSUd4aGVXOTFkRnh1SUNvZ1FIVnBiR0Y1YjNWMEtDZDFjMlZ5TFdadmNtMG5MQ0F5TENBektTQXZMeUF5SUdOdmJIVnRibk1zSURNZ2NtOTNjMXh1SUNvZ1FHMXZaR1ZzS0NsY2JpQXFJR05zWVhOeklGVnpaWEpHYjNKdElIdGNiaUFxSUNBZ1FHRjBkSEpwWW5WMFpTZ3BYRzRnS2lBZ0lFQjFhV3hoZVc5MWRIQnliM0FvTVN3Z01Ta2dMeThnVDI1bElHTnZiSFZ0Yml3Z1ptbHljM1FnY205M1hHNGdLaUFnSUdacGNuTjBUbUZ0WlRvZ2MzUnlhVzVuTzF4dUlDcGNiaUFxSUNBZ1FHRjBkSEpwWW5WMFpTZ3BYRzRnS2lBZ0lFQjFhV3hoZVc5MWRIQnliM0FvTWl3Z01Ta2dMeThnVDI1bElHTnZiSFZ0Yml3Z1ptbHljM1FnY205M1hHNGdLaUFnSUd4aGMzUk9ZVzFsT2lCemRISnBibWM3WEc0Z0tseHVJQ29nSUNCQVlYUjBjbWxpZFhSbEtDbGNiaUFxSUNBZ1FIVnBiR0Y1YjNWMGNISnZjQ2d4TENBeUtTQXZMeUJQYm1VZ1kyOXNkVzF1TENCelpXTnZibVFnY205M1hHNGdLaUFnSUdWdFlXbHNPaUJ6ZEhKcGJtYzdYRzRnS2x4dUlDb2dJQ0JBWVhSMGNtbGlkWFJsS0NsY2JpQXFJQ0FnUUhWcGJHRjViM1YwY0hKdmNDZ3lMQ0F6S1NBdkx5QkJiR3dnWTI5c2RXMXVjeXdnZEdocGNtUWdjbTkzWEc0Z0tpQWdJR0pwYnpvZ2MzUnlhVzVuTzF4dUlDb2dmVnh1SUNwY2JpQXFJRUJ0WlhKdFlXbGtYRzRnS2lCelpYRjFaVzVqWlVScFlXZHlZVzFjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVFc5a1pXeGNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdkV2xzWVhsdmRYUndjbTl3WEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUZKbGJtUmxjbWx1WjBWdVoybHVaVnh1SUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JNWVhsdmRYUkRiMjUwWVdsdVpYSmNiaUFxSUNBZ1RXOWtaV3d0UGo1MWFXeGhlVzkxZEhCeWIzQTZJRUZ3Y0d4NUlIUnZJSEJ5YjNCbGNuUjVYRzRnS2lBZ0lIVnBiR0Y1YjNWMGNISnZjQzArUGsxdlpHVnNPaUJCWkdRZ2JHRjViM1YwSUdsMFpXMGdiV1YwWVdSaGRHRmNiaUFxSUNBZ1VtVnVaR1Z5YVc1blJXNW5hVzVsTFQ0K1RXOWtaV3c2SUVkbGRDQnNZWGx2ZFhRZ2FYUmxiU0J0WlhSaFpHRjBZVnh1SUNvZ0lDQk5iMlJsYkMwK1BsSmxibVJsY21sdVowVnVaMmx1WlRvZ1VtVjBkWEp1SUdOdmJIVnRiaXdnY205M0xDQmhibVFnY0hKdmNITmNiaUFxSUNBZ1VtVnVaR1Z5YVc1blJXNW5hVzVsTFQ0K1RHRjViM1YwUTI5dWRHRnBibVZ5T2lCUWIzTnBkR2x2YmlCbGJHVnRaVzUwSUdGMElHZHlhV1FnWTI5dmNtUnBibUYwWlhOY2JpQXFJQ0FnVEdGNWIzVjBRMjl1ZEdGcGJtVnlMVDQrVW1WdVpHVnlhVzVuUlc1bmFXNWxPaUJTWlhSMWNtNGdjRzl6YVhScGIyNWxaQ0JsYkdWdFpXNTBYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMWFXeGhlVzkxZEhCeWIzQW9ZMjlzT2lCVlNVeGhlVzkxZEVOdmJDQTlJREVzSUhKdmR6b2diblZ0WW1WeUlEMGdNU2tnZTF4dUlDQnlaWFIxY200Z0tIUmhjbWRsZERvZ1lXNTVMQ0J3Y205d1pYSjBlVXRsZVQ4NklHRnVlU2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJRzFsZEdGa1lYUmhPaUJWU1V4aGVXOTFkRkJ5YjNCTlpYUmhaR0YwWVNBOUlIdGNiaUFnSUNBZ0lHNWhiV1U2SUhCeWIzQmxjblI1UzJWNUxGeHVJQ0FnSUNBZ0x5OGdZMjlzTEZ4dUlDQWdJQ0FnTHk4Z2NtOTNMRnh1SUNBZ0lDQWdjSEp2Y0hNNklFOWlhbVZqZEM1aGMzTnBaMjRvZTMwc0lIc2djbTkzTENCamIyd2dmU2tzWEc0Z0lDQWdmVHRjYmlBZ0lDQndjbTl3VFdWMFlXUmhkR0VvWjJWMFZVbEJkSFJ5YVdKMWRHVkxaWGtvY0hKdmNHVnlkSGxMWlhrc0lGVkpTMlY1Y3k1VlNVeEJXVTlWVkZCU1QxQXBMQ0J0WlhSaFpHRjBZU2tvWEc0Z0lDQWdJQ0IwWVhKblpYUXNYRzRnSUNBZ0lDQndjbTl3WlhKMGVVdGxlVnh1SUNBZ0lDazdYRzRnSUgwN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFUmxZMjl5WVhSdmNpQjBhR0YwSUdGemMybG5ibk1nWVNCd2NtOXdaWEowZVNCMGJ5QmhJSE53WldOcFptbGpJSEJoWjJVZ2FXNGdiWFZzZEdrdGNHRm5aU0JtYjNKdGMxeHVJQ29nUUhOMWJXMWhjbmtnVTNCbFkybG1hV1Z6SUhkb2FXTm9JSEJoWjJVZ1lTQndjbTl3WlhKMGVTQnphRzkxYkdRZ1lYQndaV0Z5SUc5dUlHbHVJSEJoWjJsdVlYUmxaQ0JWU1NCc1lYbHZkWFJ6WEc0Z0tpQlVhR2x6SUdSbFkyOXlZWFJ2Y2lCaGNIQnNhV1Z6SUcxbGRHRmtZWFJoSUhSdklIUm9aU0J3Y205d1pYSjBlU3dnYVc1a2FXTmhkR2x1WnlCM2FHbGphQ0J3WVdkbElHNTFiV0psY2lCcGRDQmlaV3h2Ym1keklIUnZYRzRnS2lCcGJpQmhJRzExYkhScExYQmhaMlVnWm05eWJTQnZjaUIzYVhwaGNtUXVJRkJ5YjNCbGNuUnBaWE1nZDJsMGFDQjBhR1VnYzJGdFpTQndZV2RsSUc1MWJXSmxjaUJoY21VZ1ozSnZkWEJsWkNCMGIyZGxkR2hsY2x4dUlDb2dZVzVrSUhKbGJtUmxjbVZrSUc5dUlIUm9aU0J6WVcxbElIQmhaMlV1SUZSb2FYTWdhWE1nZEhsd2FXTmhiR3g1SUhWelpXUWdhVzRnWTI5dWFuVnVZM1JwYjI0Z2QybDBhQ0JBZFdsemRHVndjR1ZrYlc5a1pXd2dkRzljYmlBcUlHOXlaMkZ1YVhwbElHeGhjbWRsSUdadmNtMXpJR2x1ZEc4Z2JXRnVZV2RsWVdKc1pTQnpaV04wYVc5dWN5NWNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1czQmhaMlU5TVYwZ1ZHaGxJSEJoWjJVZ2JuVnRZbVZ5SUhkb1pYSmxJSFJvWlNCd2NtOXdaWEowZVNCemFHOTFiR1FnWVhCd1pXRnlJQ2hrWldaaGRXeDBJR2x6SURFcFhHNGdLaUJBY21WMGRYSnVJSHRHZFc1amRHbHZibjBnUVNCd2NtOXdaWEowZVNCa1pXTnZjbUYwYjNJZ1puVnVZM1JwYjI1Y2JpQXFYRzRnS2lCQVpuVnVZM1JwYjI0Z2RXbHdZV2RsY0hKdmNGeHVJQ29nUUdOaGRHVm5iM0o1SUZCeWIzQmxjblI1SUVSbFkyOXlZWFJ2Y25OY2JpQXFYRzRnS2lCQVpYaGhiWEJzWlZ4dUlDb2dMeThnUTNKbFlYUmxJR0VnYlhWc2RHa3RjM1JsY0NCeVpXZHBjM1J5WVhScGIyNGdabTl5YlNCM2FYUm9JSEJoWjJVdFltRnpaV1FnYkdGNWIzVjBYRzRnS2lCQWRXbHpkR1Z3Y0dWa2JXOWtaV3dvSjNKbFoybHpkSEpoZEdsdmJpMW1iM0p0Snl3Z01pd2dkSEoxWlNsY2JpQXFJRUJ0YjJSbGJDZ3BYRzRnS2lCamJHRnpjeUJTWldkcGMzUnlZWFJwYjI1R2IzSnRJSHRjYmlBcUlDQWdMeThnVUdGblpTQXhPaUJRWlhKemIyNWhiQ0JKYm1admNtMWhkR2x2Ymx4dUlDb2dJQ0JBWVhSMGNtbGlkWFJsS0NsY2JpQXFJQ0FnUUhWcGNHRm5aWEJ5YjNBb01TbGNiaUFxSUNBZ1ptbHljM1JPWVcxbE9pQnpkSEpwYm1jN1hHNGdLbHh1SUNvZ0lDQkFZWFIwY21saWRYUmxLQ2xjYmlBcUlDQWdRSFZwY0dGblpYQnliM0FvTVNsY2JpQXFJQ0FnYkdGemRFNWhiV1U2SUhOMGNtbHVaenRjYmlBcVhHNGdLaUFnSUVCaGRIUnlhV0oxZEdVb0tWeHVJQ29nSUNCQWRXbHdZV2RsY0hKdmNDZ3hLVnh1SUNvZ0lDQmtZWFJsVDJaQ2FYSjBhRG9nUkdGMFpUdGNiaUFxWEc0Z0tpQWdJQzh2SUZCaFoyVWdNam9nUTI5dWRHRmpkQ0JKYm1admNtMWhkR2x2Ymx4dUlDb2dJQ0JBWVhSMGNtbGlkWFJsS0NsY2JpQXFJQ0FnUUhWcGNHRm5aWEJ5YjNBb01pbGNiaUFxSUNBZ1pXMWhhV3c2SUhOMGNtbHVaenRjYmlBcVhHNGdLaUFnSUVCaGRIUnlhV0oxZEdVb0tWeHVJQ29nSUNCQWRXbHdZV2RsY0hKdmNDZ3lLVnh1SUNvZ0lDQndhRzl1WlRvZ2MzUnlhVzVuTzF4dUlDcGNiaUFxSUNBZ0x5OGdVR0ZuWlNBek9pQkRiMjVtYVhKdFlYUnBiMjVjYmlBcUlDQWdRR0YwZEhKcFluVjBaU2dwWEc0Z0tpQWdJRUIxYVhCaFoyVndjbTl3S0RNcFhHNGdLaUFnSUdGalkyVndkRlJsY20xek9pQmliMjlzWldGdU8xeHVJQ29nZlZ4dUlDcGNiaUFxSUVCdFpYSnRZV2xrWEc0Z0tpQnpaWEYxWlc1alpVUnBZV2R5WVcxY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1RXOWtaV3hjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnZFdsd1lXZGxjSEp2Y0Z4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCU1pXNWtaWEpwYm1kRmJtZHBibVZjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVUdGbmFXNWhkR2x2YmtOdmJuUnliMnhzWlhKY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1ZVbGNiaUFxSUNBZ1RXOWtaV3d0UGo1MWFYQmhaMlZ3Y205d09pQkJjSEJzZVNCMGJ5QndjbTl3WlhKMGVWeHVJQ29nSUNCMWFYQmhaMlZ3Y205d0xUNCtUVzlrWld3NklFRmtaQ0J3WVdkbElHMWxkR0ZrWVhSaFhHNGdLaUFnSUZKbGJtUmxjbWx1WjBWdVoybHVaUzArUGsxdlpHVnNPaUJIWlhRZ2NHRm5aU0J0WlhSaFpHRjBZVnh1SUNvZ0lDQk5iMlJsYkMwK1BsSmxibVJsY21sdVowVnVaMmx1WlRvZ1VtVjBkWEp1SUhCaFoyVWdiblZ0WW1WeVhHNGdLaUFnSUZKbGJtUmxjbWx1WjBWdVoybHVaUzArUGxCaFoybHVZWFJwYjI1RGIyNTBjbTlzYkdWeU9pQkhjbTkxY0NCd2NtOXdaWEowYVdWeklHSjVJSEJoWjJWY2JpQXFJQ0FnVUdGbmFXNWhkR2x2YmtOdmJuUnliMnhzWlhJdFBqNVZTVG9nVW1WdVpHVnlJR04xY25KbGJuUWdjR0ZuWlNCd2NtOXdaWEowYVdWelhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIxYVhCaFoyVndjbTl3S0hCaFoyVTZJRzUxYldKbGNpQTlJREVwSUh0Y2JpQWdjbVYwZFhKdUlHWjFibU4wYVc5dUlIVnBjR0ZuWlhCeWIzQW9iM0pwWjJsdVlXdzZJR0Z1ZVN3Z2NISnZjR1Z5ZEhsTFpYay9PaUJoYm5rcElIdGNiaUFnSUNCeVpYUjFjbTRnY0hKdmNFMWxkR0ZrWVhSaEtHZGxkRlZKUVhSMGNtbGlkWFJsUzJWNUtIQnliM0JsY25SNVMyVjVMQ0JWU1V0bGVYTXVVRUZIUlNrc0lIQmhaMlVwS0Z4dUlDQWdJQ0FnYjNKcFoybHVZV3dzWEc0Z0lDQWdJQ0J3Y205d1pYSjBlVXRsZVZ4dUlDQWdJQ2s3WEc0Z0lIMDdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FTQmtaV052Y21GMGIzSWdabUZqZEc5eWVTQjBhR0YwSUdKcGJtUnpJR0VnVlVrZ1pYWmxiblFnZEc4Z1lTQnpjR1ZqYVdacFpXUWdhR0Z1Wkd4bGNpQm1kVzVqZEdsdmJpNWNiaUFxSUZSb2FYTWdhWE1nZFhObFpDQjBieUJoZEhSaFkyZ2daWFpsYm5RZ2FHRnVaR3hsY25NZ2RHOGdjM0JsWTJsbWFXTWdiR2xtWldONVkyeGxJR1YyWlc1MGN5QnZaaUJoSUdCRVpXTmhaa052YlhCdmJtVnVkR0FzWEc0Z0tpQnpkV05vSUdGeklHQnlaVzVrWlhKZ0lId2dZR2x1YVhScFlXeHBlbVZnSUh3Z1lHaGhibVJzWlVOc2FXTnJZQ0I4SUdCeVpXWnlaWE5vWUZ4dUlDcGNiaUFxSUVCd1lYSmhiU0JsZG1WdWRDQXRJRlJvWlNCdVlXMWxJRzltSUhSb1pTQnNhV1psWTNsamJHVWdaWFpsYm5RZ2RHOGdZbWx1WkNCMGFHVWdhR0Z1Wkd4bGNpQjBieTVjYmlBcUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUUxMWMzUWdZbVVnYjI1bElHOW1JSFJvWlNCclpYbHpJR2x1SUdCUWFXTnJQRVJsWTJGbVEyOXRjRzl1Wlc1MExDQW5jbVZ1WkdWeUp5QjhJQ2RwYm1sMGFXRnNhWHBsSno1Z0xseHVJQ29nUUhCaGNtRnRJR2hoYm1Sc1pYSWdMU0JVYUdVZ1puVnVZM1JwYjI0Z2RHOGdZbVVnWlhobFkzVjBaV1FnZDJobGJpQjBhR1VnYzNCbFkybG1hV1ZrSUdWMlpXNTBJRzlqWTNWeWN5NWNiaUFxWEc0Z0tpQkFjbVYwZFhKdWN5QkJJR1JsWTI5eVlYUnZjaUJtZFc1amRHbHZiaUIwYUdGMElHRndjR3hwWlhNZ2RHaGxJR1YyWlc1MExXaGhibVJzWlhJZ1ltbHVaR2x1WnlCMGJ5QjBhR1VnZEdGeVoyVjBJRzlpYW1WamRDNWNiaUFxWEc0Z0tpQkFaWGhoYlhCc1pWeHVJQ29nWUdCZ2RIbHdaWE5qY21sd2RGeHVJQ29nWTJ4aGMzTWdUWGxEYjIxd2IyNWxiblFnZTF4dUlDb2dJQ0JBZFdsdmJpZ25jbVZ1WkdWeUp5d2dLQ2tnUFQ0Z1kyOXVjMjlzWlM1c2IyY29KMUpsYm1SbGNtbHVaeTR1TGljcEtWeHVJQ29nSUNCemIyMWxVSEp2Y0dWeWRIazZJSE4wY21sdVp6dGNiaUFxSUgxY2JpQXFJR0JnWUZ4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkV2x2YmloY2JpQWdaWFpsYm5RNklGVkpSWFpsYm5ST1lXMWxMRnh1SUNCb1lXNWtiR1Z5T2lCVlNVVjJaVzUwU0dGdVpHeGxjbHh1S1RvZ0tHOXlhV2RwYm1Gc09pQnZZbXBsWTNRc0lIQnliM0JsY25SNVMyVjVQem9nYzNSeWFXNW5LU0E5UGlCMmIybGtPMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSFZwYjI0b1hHNGdJR1YyWlc1MGN6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1ZVbEZkbVZ1ZEVoaGJtUnNaWEkrWEc0cE9pQW9iM0pwWjJsdVlXdzZJRzlpYW1WamRDd2djSEp2Y0dWeWRIbExaWGsvT2lCemRISnBibWNwSUQwK0lIWnZhV1E3WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZFdsdmJpaGNiaUFnWlhabGJuUTZJRlZKUlhabGJuUk9ZVzFsSUh3Z1VtVmpiM0prUEhOMGNtbHVaeXdnVlVsRmRtVnVkRWhoYm1Sc1pYSStMRnh1SUNCb1lXNWtiR1Z5UHpvZ1ZVbEZkbVZ1ZEVoaGJtUnNaWEpjYmlrZ2UxeHVJQ0J5WlhSMWNtNGdablZ1WTNScGIyNGdkV2x2YmlodmNtbG5hVzVoYkRvZ2IySnFaV04wTENCd2NtOXdaWEowZVV0bGVUODZJSE4wY21sdVp5a2dlMXh1SUNBZ0lIQnliM0JOWlhSaFpHRjBZU2huWlhSVlNVRjBkSEpwWW5WMFpVdGxlU2h3Y205d1pYSjBlVXRsZVNCaGN5QnpkSEpwYm1jc0lGVkpTMlY1Y3k1RlZrVk9WRk1wTENCN1hHNGdJQ0FnSUNBdUxpNG9kSGx3Wlc5bUlHVjJaVzUwSUQwOVBTQmNJbTlpYW1WamRGd2lJRDhnWlhabGJuUWdPaUI3SUZ0bGRtVnVkRjA2SUdoaGJtUnNaWElnZlNrc1hHNGdJQ0FnZlNrb2IzSnBaMmx1WVd3c0lIQnliM0JsY25SNVMyVjVLVHRjYmlBZ2ZUdGNibjFjYmx4dUx5b3FYRzRnS2lCQklHUmxZMjl5WVhSdmNpQm1kVzVqZEdsdmJpQjBhR0YwSUdGemMyOWphV0YwWlhNZ1lTQlZTU0JqYkdsamF5Qm9ZVzVrYkdWeUlIZHBkR2dnZEdobElDZG9ZVzVrYkdWRGJHbGpheWNnWlhabGJuUXVYRzRnS2x4dUlDb2dRSEJoY21GdElHaGhibVJzWlhJZ0xTQkJJR1oxYm1OMGFXOXVJSFJvWVhRZ1kyOXVabTl5YlhNZ2RHOGdkR2hsSUdCVlNVVjJaVzUwU0dGdVpHeGxjbUFnZEhsd1pTd2dkMmhwWTJnZ2QybHNiQ0JpWlNCbGVHVmpkWFJsWkZ4dUlDb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjNhR1Z1SUhSb1pTQW5hR0Z1Wkd4bFEyeHBZMnNuSUdWMlpXNTBJR2x6SUhSeWFXZG5aWEpsWkM1Y2JpQXFJRUJ5WlhSMWNtNXpJRUVnWkdWamIzSmhkR1ZrSUdaMWJtTjBhVzl1SUhSb1lYUWdZbWx1WkhNZ2RHaGxJR2hoYm1Sc1pYSWdkRzhnZEdobElDZG9ZVzVrYkdWRGJHbGpheWNnWlhabGJuUXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMWFXOXVZMnhwWTJzb2FHRnVaR3hsY2pvZ1ZVbEZkbVZ1ZEVoaGJtUnNaWElwSUh0Y2JpQWdjbVYwZFhKdUlIVnBiMjRvWENKb1lXNWtiR1ZEYkdsamExd2lMQ0JvWVc1a2JHVnlLVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkJJR1JsWTI5eVlYUnZjaUJtZFc1amRHbHZiaUIwYUdGMElHRnpjMjlqYVdGMFpYTWdZU0JWU1NCeVpXNWtaWEpwYm1jZ2FHRnVaR3hsY2lCM2FYUm9JSFJvWlNBbmNtVnVaR1Z5SnlCbGRtVnVkQzVjYmlBcVhHNGdLaUJBY0dGeVlXMGdhR0Z1Wkd4bGNpQXRJRUVnWm5WdVkzUnBiMjRnZEdoaGRDQmpiMjVtYjNKdGN5QjBieUIwYUdVZ1lGVkpSWFpsYm5SSVlXNWtiR1Z5SUdBZ2RIbHdaU3dnZDJocFkyZ2dkMmxzYkNCaVpTQmxlR1ZqZFhSbFpGeHVJQ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IzYUdWdUlIUm9aU0FuY21WdVpHVnlKeUJsZG1WdWRDQnBjeUIwY21sbloyVnlaV1F1WEc0Z0tpQkFjbVYwZFhKdWN5QkJJR1JsWTI5eVlYUmxaQ0JtZFc1amRHbHZiaUIwYUdGMElHSnBibVJ6SUhSb1pTQm9ZVzVrYkdWeUlIUnZJSFJvWlNBbmNtVnVaR1Z5SnlCbGRtVnVkQzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlIVnBiMjV5Wlc1a1pYSW9hR0Z1Wkd4bGNqb2dWVWxGZG1WdWRFaGhibVJzWlhJcElIdGNiaUFnY21WMGRYSnVJSFZwYjI0b1hDSnlaVzVrWlhKY0lpd2dhR0Z1Wkd4bGNpazdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRVJsWTI5eVlYUnZjaUIwYUdGMElHMWhjbXR6SUdFZ2NISnZjR1Z5ZEhrZ1lYTWdZU0JqYjJ4MWJXNGdhVzRnWVNCVlNTQjBZV0pzWlZ4dUlDb2dRSE4xYlcxaGNua2dRMjl1ZEhKdmJITWdZMjlzZFcxdUlHOXlaR1Z5YVc1bklHRnVaQ0J2Y0hScGIyNWhiQ0IyWVd4MVpTQndZWEp6YVc1bklHWnZjaUIwWVdKc1pTQndjbTl3YzF4dUlDb2dWWE5sSUhSb2FYTWdaR1ZqYjNKaGRHOXlJSFJ2SUhKbFoybHpkR1Z5SUd4cGMzUWdjSEp2Y0dWeWRHbGxjeUJoY3lCMFlXSnNaU0JqYjJ4MWJXNXpMQ0JrWldacGJtVWdkR2hsWEc0Z0tpQnpaWEYxWlc1alpTQnBiaUIzYUdsamFDQjBhR1Y1SUdGd2NHVmhjaXdnWVc1a0lHOXdkR2x2Ym1Gc2JIa2djSEp2ZG1sa1pTQmhJSEJoY25ObGNpQjBhR0YwSUdadmNtMWhkSE5jYmlBcUlIUm9aU0IyWVd4MVpTQmlaV1p2Y21VZ2NtVnVaR1Z5YVc1bkxseHVJQ3BjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCelpYRjFaVzVqWlNCVWFHVWdaR2x6Y0d4aGVTQnZjbVJsY2lCbWIzSWdkR2hsSUdOdmJIVnRiaUFvYkc5M1pYSWdiV1ZoYm5NZ1ptbHljM1FwWEc0Z0tpQkFjR0Z5WVcwZ2UxVkpSblZ1WTNScGIyNU1hV3RsZlNCYmRtRnNkV1ZRWVhKelpYSkdibDBnVDNCMGFXOXVZV3dnWm05eWJXRjBkR1Z5SUdWNFpXTjFkR1ZrSUhCbGNpQmpaV3hzWEc0Z0tpQkFjbVYwZFhKdUlIdEdkVzVqZEdsdmJuMGdRU0J3Y205d1pYSjBlU0JrWldOdmNtRjBiM0lnWm5WdVkzUnBiMjVjYmlBcVhHNGdLaUJBWm5WdVkzUnBiMjRnZFdsMFlXSnNaV052YkZ4dUlDb2dRR05oZEdWbmIzSjVJRkJ5YjNCbGNuUjVJRVJsWTI5eVlYUnZjbk5jYmlBcVhHNGdLaUJBWlhoaGJYQnNaVnh1SUNvZ1kyeGhjM01nVDNKa1pYSWdlMXh1SUNvZ0lDQkFZWFIwY21saWRYUmxLQ2xjYmlBcUlDQWdRSFZwZEdGaWJHVmpiMndvTVNsY2JpQXFJQ0FnYjNKa1pYSk9kVzFpWlhJNklITjBjbWx1Wnp0Y2JpQXFYRzRnS2lBZ0lFQmhkSFJ5YVdKMWRHVW9LVnh1SUNvZ0lDQkFkV2wwWVdKc1pXTnZiQ2d5TENBb2RtRnNkV1VwSUQwK0lHQWtKSHQyWVd4MVpUOHVkRzlHYVhobFpDZ3lLWDFnS1Z4dUlDb2dJQ0IwYjNSaGJEb2diblZ0WW1WeU8xeHVJQ29nZlZ4dUlDcGNiaUFxSUVCdFpYSnRZV2xrWEc0Z0tpQnpaWEYxWlc1alpVUnBZV2R5WVcxY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1RXOWtaV3hjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnZFdsMFlXSnNaV052YkZ4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCU1pXNWtaWEpwYm1kRmJtZHBibVZjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVkdGaWJHVmNiaUFxSUNBZ1RXOWtaV3d0UGo1MWFYUmhZbXhsWTI5c09pQkJjSEJzZVNCMGJ5QndjbTl3WlhKMGVWeHVJQ29nSUNCMWFYUmhZbXhsWTI5c0xUNCtUVzlrWld3NklGTjBiM0psSUdOdmJIVnRiaUJ0WlhSaFpHRjBZVnh1SUNvZ0lDQlNaVzVrWlhKcGJtZEZibWRwYm1VdFBqNU5iMlJsYkRvZ1VtVjBjbWxsZG1VZ1kyOXNkVzF1SUhCeWIzQnpYRzRnS2lBZ0lFMXZaR1ZzTFQ0K1VtVnVaR1Z5YVc1blJXNW5hVzVsT2lCU1pYUjFjbTRnYjNKa1pYSWdZVzVrSUhCaGNuTmxjbHh1SUNvZ0lDQlNaVzVrWlhKcGJtZEZibWRwYm1VdFBqNVVZV0pzWlRvZ1VtVnVaR1Z5SUdOdmJIVnRiaUJwYmlCelpYRjFaVzVqWlZ4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkV2wwWVdKc1pXTnZiQ2hjYmlBZ2MyVnhkV1Z1WTJVNklHNTFiV0psY2lCOElIUjVjR1Z2WmlCVlNVdGxlWE11UmtsU1UxUWdmQ0IwZVhCbGIyWWdWVWxMWlhsekxreEJVMVFnUFNCVlNVdGxlWE11VEVGVFZDeGNiaUFnZG1Gc2RXVlFZWEp6WlhKR2JqODZJRlZKUm5WdVkzUnBiMjVNYVd0bFhHNHBJSHRjYmlBZ2NtVjBkWEp1SUNoMFlYSm5aWFE2SUdGdWVTd2djSEp2Y0dWeWRIbExaWGsvT2lCaGJua3BJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQnRaWFJoWkdGMFlUb2dVR0Z5ZEdsaGJEeFZTVXhwYzNSUWNtOXdUV1YwWVdSaGRHRStJRDBnZTF4dUlDQWdJQ0FnYm1GdFpUb2djSEp2Y0dWeWRIbExaWGtzWEc0Z0lDQWdJQ0J3Y205d2N6b2dlMXh1SUNBZ0lDQWdJQ0J6WlhGMVpXNWpaU3hjYmlBZ0lDQWdJQ0FnTGk0dUtDRjJZV3gxWlZCaGNuTmxja1p1SUQ4Z2UzMGdPaUI3SUhaaGJIVmxVR0Z5YzJWeVJtNGdmU2tzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJSDA3WEc0Z0lDQWdjSEp2Y0UxbGRHRmtZWFJoS0dkbGRGVkpRWFIwY21saWRYUmxTMlY1S0hCeWIzQmxjblI1UzJWNUxDQlZTVXRsZVhNdVZVbE1TVk5VVUZKUFVDa3NJRzFsZEdGa1lYUmhLU2hjYmlBZ0lDQWdJSFJoY21kbGRDeGNiaUFnSUNBZ0lIQnliM0JsY25SNVMyVjVYRzRnSUNBZ0tUdGNiaUFnZlR0Y2JuMWNiaUpkZlE9PSJdfQ==
598
+ //# sourceMappingURL=decorators.js.map
599
+ //# sourceMappingURL=decorators.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui/decorators.cjs","sourceRoot":"","sources":["ui/decorators.js"],"names":[],"mappings":"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"}
@@ -36,5 +36,5 @@ class RenderingError extends db_decorators_1.InternalError {
36
36
  }
37
37
  }
38
38
  exports.RenderingError = RenderingError;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7SUFDL0M7Ozs7T0FJRztJQUNILFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFcnJvciB0aHJvd24gd2hlbiBhIHJlbmRlcmluZyBvcGVyYXRpb24gZmFpbHNcbiAqIEBzdW1tYXJ5IFNwZWNpYWxpemVkIGVycm9yIGZvciByZW5kZXJpbmcgZmFpbHVyZXMgaW4gVUkgY29tcG9uZW50c1xuICogVGhpcyBlcnJvciBpcyB0aHJvd24gd2hlbiB0aGUgcmVuZGVyaW5nIGVuZ2luZSBlbmNvdW50ZXJzIGFuIGVycm9yIHdoaWxlXG4gKiBhdHRlbXB0aW5nIHRvIHJlbmRlciBhIFVJIGNvbXBvbmVudCBvciBtb2RlbC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xFcnJvcn0gbXNnIFRoZSBlcnJvciBtZXNzYWdlIG9yIG9yaWdpbmFsIGVycm9yXG4gKlxuICogQGNsYXNzIFJlbmRlcmluZ0Vycm9yXG4gKiBAZXh0ZW5kcyBCYXNlRXJyb3JcbiAqIEBjYXRlZ29yeSBFcnJvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhyb3dpbmcgYSByZW5kZXJpbmcgZXJyb3JcbiAqIHRyeSB7XG4gKiAgIC8vIFJlbmRlcmluZyBjb2RlIHRoYXQgbWlnaHQgZmFpbFxuICogICBpZiAoIWNvbXBvbmVudC5jYW5SZW5kZXIoKSkge1xuICogICAgIHRocm93IG5ldyBSZW5kZXJpbmdFcnJvcignQ29tcG9uZW50IGNhbm5vdCBiZSByZW5kZXJlZCcpO1xuICogICB9XG4gKiB9IGNhdGNoIChlcnJvcikge1xuICogICBjb25zb2xlLmVycm9yKCdSZW5kZXJpbmcgZmFpbGVkOicsIGVycm9yLm1lc3NhZ2UpO1xuICogfVxuICovXG5leHBvcnQgY2xhc3MgUmVuZGVyaW5nRXJyb3IgZXh0ZW5kcyBJbnRlcm5hbEVycm9yIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IFJlbmRlcmluZ0Vycm9yIGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIHRoZSBlcnJvciB3aXRoIGEgbWVzc2FnZSBvciBvcmlnaW5hbCBlcnJvclxuICAgKiBAcGFyYW0ge3N0cmluZ3xFcnJvcn0gbXNnIFRoZSBlcnJvciBtZXNzYWdlIG9yIG9yaWdpbmFsIGVycm9yXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBSZW5kZXJpbmdFcnJvci5uYW1lKTtcbiAgfVxufVxuIl19
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXJyb3JzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUF3RDtBQUN4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQWEsY0FBZSxTQUFRLDZCQUFhO0lBQzdDOzs7O09BSUc7SUFDSCxZQUFZLEdBQUc7UUFDWCxLQUFLLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0o7QUFURCx3Q0FTQztBQUNELHM4REFBczhEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXJyb3IgdGhyb3duIHdoZW4gYSByZW5kZXJpbmcgb3BlcmF0aW9uIGZhaWxzXG4gKiBAc3VtbWFyeSBTcGVjaWFsaXplZCBlcnJvciBmb3IgcmVuZGVyaW5nIGZhaWx1cmVzIGluIFVJIGNvbXBvbmVudHNcbiAqIFRoaXMgZXJyb3IgaXMgdGhyb3duIHdoZW4gdGhlIHJlbmRlcmluZyBlbmdpbmUgZW5jb3VudGVycyBhbiBlcnJvciB3aGlsZVxuICogYXR0ZW1wdGluZyB0byByZW5kZXIgYSBVSSBjb21wb25lbnQgb3IgbW9kZWwuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd8RXJyb3J9IG1zZyBUaGUgZXJyb3IgbWVzc2FnZSBvciBvcmlnaW5hbCBlcnJvclxuICpcbiAqIEBjbGFzcyBSZW5kZXJpbmdFcnJvclxuICogQGV4dGVuZHMgQmFzZUVycm9yXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRocm93aW5nIGEgcmVuZGVyaW5nIGVycm9yXG4gKiB0cnkge1xuICogICAvLyBSZW5kZXJpbmcgY29kZSB0aGF0IG1pZ2h0IGZhaWxcbiAqICAgaWYgKCFjb21wb25lbnQuY2FuUmVuZGVyKCkpIHtcbiAqICAgICB0aHJvdyBuZXcgUmVuZGVyaW5nRXJyb3IoJ0NvbXBvbmVudCBjYW5ub3QgYmUgcmVuZGVyZWQnKTtcbiAqICAgfVxuICogfSBjYXRjaCAoZXJyb3IpIHtcbiAqICAgY29uc29sZS5lcnJvcignUmVuZGVyaW5nIGZhaWxlZDonLCBlcnJvci5tZXNzYWdlKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbmRlcmluZ0Vycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgUmVuZGVyaW5nRXJyb3IgaW5zdGFuY2VcbiAgICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyB0aGUgZXJyb3Igd2l0aCBhIG1lc3NhZ2Ugb3Igb3JpZ2luYWwgZXJyb3JcbiAgICAgKiBAcGFyYW0ge3N0cmluZ3xFcnJvcn0gbXNnIFRoZSBlcnJvciBtZXNzYWdlIG9yIG9yaWdpbmFsIGVycm9yXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobXNnKSB7XG4gICAgICAgIHN1cGVyKG1zZywgUmVuZGVyaW5nRXJyb3IubmFtZSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWlhKeWIzSnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMM1ZwTDJWeWNtOXljeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGZUVRN096czdPenM3T3pzN096czdPenM3T3pzN096czdSMEZ6UWtjN1FVRkRTQ3hOUVVGTkxFOUJRVThzWTBGQlpTeFRRVUZSTEdGQlFXRTdTVUZETDBNN096czdUMEZKUnp0SlFVTklMRmxCUVZrc1IwRkJiVUk3VVVGRE4wSXNTMEZCU3l4RFFVRkRMRWRCUVVjc1JVRkJSU3hqUVVGakxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEYkVNc1EwRkJRenREUVVOR0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dTVzUwWlhKdVlXeEZjbkp2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHSXRaR1ZqYjNKaGRHOXljMXdpTzF4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJGY25KdmNpQjBhSEp2ZDI0Z2QyaGxiaUJoSUhKbGJtUmxjbWx1WnlCdmNHVnlZWFJwYjI0Z1ptRnBiSE5jYmlBcUlFQnpkVzF0WVhKNUlGTndaV05wWVd4cGVtVmtJR1Z5Y205eUlHWnZjaUJ5Wlc1a1pYSnBibWNnWm1GcGJIVnlaWE1nYVc0Z1ZVa2dZMjl0Y0c5dVpXNTBjMXh1SUNvZ1ZHaHBjeUJsY25KdmNpQnBjeUIwYUhKdmQyNGdkMmhsYmlCMGFHVWdjbVZ1WkdWeWFXNW5JR1Z1WjJsdVpTQmxibU52ZFc1MFpYSnpJR0Z1SUdWeWNtOXlJSGRvYVd4bFhHNGdLaUJoZEhSbGJYQjBhVzVuSUhSdklISmxibVJsY2lCaElGVkpJR052YlhCdmJtVnVkQ0J2Y2lCdGIyUmxiQzVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozeEZjbkp2Y24wZ2JYTm5JRlJvWlNCbGNuSnZjaUJ0WlhOellXZGxJRzl5SUc5eWFXZHBibUZzSUdWeWNtOXlYRzRnS2x4dUlDb2dRR05zWVhOeklGSmxibVJsY21sdVowVnljbTl5WEc0Z0tpQkFaWGgwWlc1a2N5QkNZWE5sUlhKeWIzSmNiaUFxSUVCallYUmxaMjl5ZVNCRmNuSnZjbk5jYmlBcVhHNGdLaUJBWlhoaGJYQnNaVnh1SUNvZ0x5OGdWR2h5YjNkcGJtY2dZU0J5Wlc1a1pYSnBibWNnWlhKeWIzSmNiaUFxSUhSeWVTQjdYRzRnS2lBZ0lDOHZJRkpsYm1SbGNtbHVaeUJqYjJSbElIUm9ZWFFnYldsbmFIUWdabUZwYkZ4dUlDb2dJQ0JwWmlBb0lXTnZiWEJ2Ym1WdWRDNWpZVzVTWlc1a1pYSW9LU2tnZTF4dUlDb2dJQ0FnSUhSb2NtOTNJRzVsZHlCU1pXNWtaWEpwYm1kRmNuSnZjaWduUTI5dGNHOXVaVzUwSUdOaGJtNXZkQ0JpWlNCeVpXNWtaWEpsWkNjcE8xeHVJQ29nSUNCOVhHNGdLaUI5SUdOaGRHTm9JQ2hsY25KdmNpa2dlMXh1SUNvZ0lDQmpiMjV6YjJ4bExtVnljbTl5S0NkU1pXNWtaWEpwYm1jZ1ptRnBiR1ZrT2ljc0lHVnljbTl5TG0xbGMzTmhaMlVwTzF4dUlDb2dmVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVW1WdVpHVnlhVzVuUlhKeWIzSWdaWGgwWlc1a2N5QkpiblJsY201aGJFVnljbTl5SUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRGNtVmhkR1Z6SUdFZ2JtVjNJRkpsYm1SbGNtbHVaMFZ5Y205eUlHbHVjM1JoYm1ObFhHNGdJQ0FxSUVCemRXMXRZWEo1SUVsdWFYUnBZV3hwZW1WeklIUm9aU0JsY25KdmNpQjNhWFJvSUdFZ2JXVnpjMkZuWlNCdmNpQnZjbWxuYVc1aGJDQmxjbkp2Y2x4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozeEZjbkp2Y24wZ2JYTm5JRlJvWlNCbGNuSnZjaUJ0WlhOellXZGxJRzl5SUc5eWFXZHBibUZzSUdWeWNtOXlYRzRnSUNBcUwxeHVJQ0JqYjI1emRISjFZM1J2Y2lodGMyYzZJSE4wY21sdVp5QjhJRVZ5Y205eUtTQjdYRzRnSUNBZ2MzVndaWElvYlhObkxDQlNaVzVrWlhKcGJtZEZjbkp2Y2k1dVlXMWxLVHRjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
39
+ //# sourceMappingURL=errors.js.map
40
+ //# sourceMappingURL=errors.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui/errors.cjs","sourceRoot":"","sources":["ui/errors.js"],"names":[],"mappings":";;;AAAA,2DAAwD;AACxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,cAAe,SAAQ,6BAAa;IAC7C;;;;OAIG;IACH,YAAY,GAAG;QACX,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACJ;AATD,wCASC;AACD,kCAAkC"}
@@ -27,5 +27,5 @@ __exportStar(require("./DecafComponent.cjs"), exports);
27
27
  __exportStar(require("./DecafEventHandler.cjs"), exports);
28
28
  __exportStar(require("./DecafTranslateService.cjs"), exports);
29
29
  __exportStar(require("./interfaces/index.cjs"), exports);
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdWkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0JBQXdCO0FBQ3hCLCtCQUErQjtBQUUvQiwrQkFBNEI7QUFDNUIsZ0NBQTZCO0FBQzdCLDRCQUF5QjtBQUN6QiwrQkFBNEI7QUFDNUIsMkJBQXdCO0FBQ3hCLDJCQUF3QjtBQUN4QixpQ0FBOEI7QUFDOUIsb0NBQWlDO0FBQ2pDLHVDQUFvQztBQUNwQywyQ0FBd0M7QUFDeEMsc0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IFwiLi92YWxpZGF0b3JcIjtcbi8vIGV4cG9ydCAqIGZyb20gXCIuL292ZXJyaWRlc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vUmVuZGVyaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1VJVmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9EZWNhZkNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vRGVjYWZFdmVudEhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0RlY2FmVHJhbnNsYXRlU2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuIl19
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQXdCO0FBQ3hCLCtCQUErQjtBQUMvQixpREFBK0I7QUFDL0Isa0RBQWdDO0FBQ2hDLDhDQUE0QjtBQUM1QixpREFBK0I7QUFDL0IsNkNBQTJCO0FBQzNCLDZDQUEyQjtBQUMzQixtREFBaUM7QUFDakMsc0RBQW9DO0FBQ3BDLHlEQUF1QztBQUN2Qyw2REFBMkM7QUFDM0Msd0RBQXNDO0FBQ3RDLHNnQ0FBc2dDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IFwiLi92YWxpZGF0b3JcIjtcbi8vIGV4cG9ydCAqIGZyb20gXCIuL292ZXJyaWRlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JlbmRlcmluZy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9VSVZhbGlkYXRvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vRGVjYWZDb21wb25lbnQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0RlY2FmRXZlbnRIYW5kbGVyLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9EZWNhZlRyYW5zbGF0ZVNlcnZpY2UuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXMvaW5kZXguanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12ZFdrdmFXNWtaWGd1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNkMEpCUVhkQ08wRkJRM2hDTEN0Q1FVRXJRanRCUVVVdlFpd3JRa0ZCTkVJN1FVRkROVUlzWjBOQlFUWkNPMEZCUXpkQ0xEUkNRVUY1UWp0QlFVTjZRaXdyUWtGQk5FSTdRVUZETlVJc01rSkJRWGRDTzBGQlEzaENMREpDUVVGM1FqdEJRVU40UWl4cFEwRkJPRUk3UVVGRE9VSXNiME5CUVdsRE8wRkJRMnBETEhWRFFVRnZRenRCUVVOd1F5d3lRMEZCZDBNN1FVRkRlRU1zYzBOQlFUWkNJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHk4Z2FXMXdiM0owSUZ3aUxpOTJZV3hwWkdGMGIzSmNJanRjYmk4dklHVjRjRzl5ZENBcUlHWnliMjBnWENJdUwyOTJaWEp5YVdSbGMxd2lPMXh1WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5amIyNXpkR0Z1ZEhOY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMlJsWTI5eVlYUnZjbk5jSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwyVnljbTl5YzF3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZVbVZ1WkdWeWFXNW5YQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5MGVYQmxjMXdpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dmRYUnBiSE5jSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwxVkpWbUZzYVdSaGRHOXlYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5RVpXTmhaa052YlhCdmJtVnVkRndpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlJHVmpZV1pGZG1WdWRFaGhibVJzWlhKY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMFJsWTJGbVZISmhibk5zWVhSbFUyVnlkbWxqWlZ3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZhVzUwWlhKbVlXTmxjMXdpTzF4dUlsMTkiXX0=
30
+ //# sourceMappingURL=index.js.map
31
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui/index.cjs","sourceRoot":"","sources":["ui/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wBAAwB;AACxB,+BAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,8CAA4B;AAC5B,iDAA+B;AAC/B,6CAA2B;AAC3B,6CAA2B;AAC3B,mDAAiC;AACjC,sDAAoC;AACpC,yDAAuC;AACvC,6DAA2C;AAC3C,wDAAsC;AACtC,iCAAiC"}