@envive-ai/react-hooks 0.3.2 → 0.3.4

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 (502) hide show
  1. package/dist/_virtual/rolldown_runtime.cjs +2 -0
  2. package/dist/_virtual/rolldown_runtime.js +29 -0
  3. package/dist/application/commerce-api.cjs +15 -5
  4. package/dist/application/commerce-api.js +14 -4
  5. package/dist/application/models/api/nextMessageRequest.d.cts +3 -1
  6. package/dist/application/models/api/nextMessageRequest.d.ts +3 -1
  7. package/dist/application/models/api/userEvent.d.cts +4 -2
  8. package/dist/application/models/api/userEvent.d.ts +4 -2
  9. package/dist/application/models/chatElementDisplayLocationV3.cjs +18 -0
  10. package/dist/application/models/chatElementDisplayLocationV3.d.cts +15 -0
  11. package/dist/application/models/chatElementDisplayLocationV3.d.ts +15 -0
  12. package/dist/application/models/chatElementDisplayLocationV3.js +17 -0
  13. package/dist/application/models/colorsConfigV3.cjs +26 -0
  14. package/dist/application/models/colorsConfigV3.d.cts +22 -0
  15. package/dist/application/models/colorsConfigV3.d.ts +22 -0
  16. package/dist/application/models/colorsConfigV3.js +24 -0
  17. package/dist/application/models/featureGates.cjs +2 -1
  18. package/dist/application/models/featureGates.d.cts +2 -1
  19. package/dist/application/models/featureGates.d.ts +2 -1
  20. package/dist/application/models/featureGates.js +2 -1
  21. package/dist/application/models/frontendConfig.d.cts +4 -2
  22. package/dist/application/models/frontendConfig.d.ts +4 -2
  23. package/dist/application/models/frontendConfigV3.d.cts +14 -0
  24. package/dist/application/models/frontendConfigV3.d.ts +14 -0
  25. package/dist/application/models/index.cjs +3 -0
  26. package/dist/application/models/index.d.cts +4 -3
  27. package/dist/application/models/index.d.ts +4 -3
  28. package/dist/application/models/index.js +3 -2
  29. package/dist/application/models/utils/snakeToCamelTransformer.cjs +2 -1
  30. package/dist/application/models/utils/snakeToCamelTransformer.d.cts +7 -2
  31. package/dist/application/models/utils/snakeToCamelTransformer.d.ts +7 -2
  32. package/dist/application/models/utils/snakeToCamelTransformer.js +2 -2
  33. package/dist/application/models/variantInfo/variantInfo.cjs +4 -1
  34. package/dist/application/models/variantInfo/variantInfo.d.cts +4 -1
  35. package/dist/application/models/variantInfo/variantInfo.d.ts +4 -1
  36. package/dist/application/models/variantInfo/variantInfo.js +4 -1
  37. package/dist/application/utils/analyticsUtils.cjs +5 -4
  38. package/dist/application/utils/analyticsUtils.d.cts +1 -1
  39. package/dist/application/utils/analyticsUtils.d.ts +1 -1
  40. package/dist/application/utils/analyticsUtils.js +3 -2
  41. package/dist/application/utils/elementObserver.cjs +1 -1
  42. package/dist/application/utils/elementObserver.d.cts +2 -2
  43. package/dist/application/utils/elementObserver.d.ts +2 -2
  44. package/dist/application/utils/elementObserver.js +1 -1
  45. package/dist/application/utils/index.d.cts +1 -1
  46. package/dist/application/utils/index.d.ts +1 -1
  47. package/dist/application/utils/widgetTextFromApiWidgetTextResponse.cjs +14 -0
  48. package/dist/application/utils/widgetTextFromApiWidgetTextResponse.js +13 -0
  49. package/dist/application/utils/widgetTextRequestToApiRequest.cjs +30 -0
  50. package/dist/application/utils/widgetTextRequestToApiRequest.js +29 -0
  51. package/dist/atoms/amplitude/amplitudeTrackEventAtom.cjs +1 -1
  52. package/dist/atoms/amplitude/amplitudeTrackEventAtom.js +1 -1
  53. package/dist/atoms/app/index.cjs +13 -1
  54. package/dist/atoms/app/index.d.cts +4 -3
  55. package/dist/atoms/app/index.d.ts +9 -8
  56. package/dist/atoms/app/index.js +13 -4
  57. package/dist/atoms/app/variant.cjs +6 -2
  58. package/dist/atoms/app/variant.d.cts +76 -5
  59. package/dist/atoms/app/variant.d.ts +76 -5
  60. package/dist/atoms/app/variant.js +4 -2
  61. package/dist/atoms/chat/chatState.cjs +9 -4
  62. package/dist/atoms/chat/chatState.d.cts +25 -18
  63. package/dist/atoms/chat/chatState.d.ts +25 -18
  64. package/dist/atoms/chat/chatState.js +6 -3
  65. package/dist/atoms/chat/form.cjs +4 -4
  66. package/dist/atoms/chat/form.d.cts +2 -2
  67. package/dist/atoms/chat/form.d.ts +2 -2
  68. package/dist/atoms/chat/index.cjs +32 -30
  69. package/dist/atoms/chat/index.d.cts +4 -4
  70. package/dist/atoms/chat/index.d.ts +3 -3
  71. package/dist/atoms/chat/index.js +2 -2
  72. package/dist/atoms/chat/lastMessage.cjs +4 -4
  73. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  74. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  75. package/dist/atoms/chat/messageQueue.cjs +1 -35
  76. package/dist/atoms/chat/messageQueue.js +2 -34
  77. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  78. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  79. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  80. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  81. package/dist/atoms/chat/replies.cjs +9 -8
  82. package/dist/atoms/chat/replies.d.cts +3 -3
  83. package/dist/atoms/chat/replies.d.ts +3 -3
  84. package/dist/atoms/chat/replies.js +3 -2
  85. package/dist/atoms/chat/suggestions.cjs +6 -6
  86. package/dist/atoms/chat/suggestions.d.cts +2 -2
  87. package/dist/atoms/chat/suggestions.d.ts +2 -2
  88. package/dist/atoms/envive/enviveConfig.cjs +5 -2
  89. package/dist/atoms/envive/enviveConfig.js +5 -2
  90. package/dist/atoms/globalSearch/globalSearch.cjs +1 -3
  91. package/dist/atoms/globalSearch/globalSearch.d.cts +7 -10
  92. package/dist/atoms/globalSearch/globalSearch.d.ts +7 -10
  93. package/dist/atoms/globalSearch/globalSearch.js +2 -3
  94. package/dist/atoms/globalSearch/index.cjs +0 -1
  95. package/dist/atoms/globalSearch/index.d.cts +2 -2
  96. package/dist/atoms/globalSearch/index.d.ts +2 -2
  97. package/dist/atoms/globalSearch/index.js +2 -2
  98. package/dist/atoms/org/customerService.d.cts +6 -6
  99. package/dist/atoms/org/customerService.d.ts +6 -6
  100. package/dist/atoms/org/graphqlConfig.cjs +1 -3
  101. package/dist/atoms/org/graphqlConfig.d.cts +6 -9
  102. package/dist/atoms/org/graphqlConfig.d.ts +6 -9
  103. package/dist/atoms/org/graphqlConfig.js +2 -3
  104. package/dist/atoms/org/index.cjs +2 -3
  105. package/dist/atoms/org/index.d.cts +2 -2
  106. package/dist/atoms/org/index.d.ts +2 -2
  107. package/dist/atoms/org/index.js +2 -2
  108. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  109. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  110. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  111. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  112. package/dist/atoms/search/chatSearch.cjs +7 -7
  113. package/dist/atoms/search/chatSearch.d.cts +20 -18
  114. package/dist/atoms/search/chatSearch.d.ts +20 -18
  115. package/dist/atoms/search/searchAPI.d.cts +15 -14
  116. package/dist/atoms/search/searchAPI.d.ts +15 -14
  117. package/dist/atoms/search/utils.d.cts +1 -1
  118. package/dist/atoms/widget/chatPreviewLoading.cjs +23 -0
  119. package/dist/atoms/widget/chatPreviewLoading.d.cts +26 -0
  120. package/dist/atoms/widget/chatPreviewLoading.d.ts +26 -0
  121. package/dist/atoms/widget/chatPreviewLoading.js +22 -0
  122. package/dist/atoms/widget/index.cjs +3 -0
  123. package/dist/atoms/widget/index.d.cts +2 -0
  124. package/dist/atoms/widget/index.d.ts +2 -0
  125. package/dist/atoms/widget/index.js +3 -0
  126. package/dist/contexts/amplitudeContext/amplitudeContext.cjs +41 -228
  127. package/dist/contexts/amplitudeContext/amplitudeContext.d.cts +4 -39
  128. package/dist/contexts/amplitudeContext/amplitudeContext.d.ts +4 -39
  129. package/dist/contexts/amplitudeContext/amplitudeContext.js +45 -231
  130. package/dist/contexts/amplitudeContext/index.cjs +2 -1
  131. package/dist/contexts/amplitudeContext/index.d.cts +2 -1
  132. package/dist/contexts/amplitudeContext/index.d.ts +2 -1
  133. package/dist/contexts/amplitudeContext/index.js +2 -1
  134. package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +3 -2
  135. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +2 -1
  136. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +2 -1
  137. package/dist/contexts/enviveConfigContext/enviveConfigContext.js +3 -2
  138. package/dist/contexts/enviveContext/enviveContext.cjs +73 -18
  139. package/dist/contexts/enviveContext/enviveContext.d.cts +9 -1
  140. package/dist/contexts/enviveContext/enviveContext.d.ts +9 -1
  141. package/dist/contexts/enviveContext/enviveContext.js +75 -20
  142. package/dist/contexts/enviveCssContext/enviveCssContext.cjs +96 -24
  143. package/dist/contexts/enviveCssContext/enviveCssContext.js +96 -24
  144. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +5 -7
  145. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.cts +2 -2
  146. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +2 -2
  147. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +5 -7
  148. package/dist/contexts/graphqlContext/graphqlContext.cjs +70 -8
  149. package/dist/contexts/graphqlContext/graphqlContext.d.cts +17 -5
  150. package/dist/contexts/graphqlContext/graphqlContext.d.ts +17 -5
  151. package/dist/contexts/graphqlContext/graphqlContext.js +70 -8
  152. package/dist/contexts/graphqlContext/index.d.cts +2 -2
  153. package/dist/contexts/graphqlContext/index.d.ts +2 -2
  154. package/dist/contexts/graphqlContext/mockV3Config.cjs +208 -0
  155. package/dist/contexts/graphqlContext/mockV3Config.js +207 -0
  156. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +169 -0
  157. package/dist/contexts/hardcopyContext/hardcopyContext.d.cts +24 -0
  158. package/dist/contexts/hardcopyContext/hardcopyContext.d.ts +24 -0
  159. package/dist/contexts/hardcopyContext/hardcopyContext.js +167 -0
  160. package/dist/contexts/hardcopyContext/index.cjs +4 -0
  161. package/dist/contexts/hardcopyContext/index.d.cts +2 -0
  162. package/dist/contexts/hardcopyContext/index.d.ts +2 -0
  163. package/dist/contexts/hardcopyContext/index.js +3 -0
  164. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +7 -8
  165. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +8 -9
  166. package/dist/contexts/pageContext/index.cjs +6 -0
  167. package/dist/contexts/pageContext/index.d.cts +3 -0
  168. package/dist/contexts/pageContext/index.d.ts +3 -0
  169. package/dist/contexts/pageContext/index.js +4 -0
  170. package/dist/contexts/pageContext/mapping.cjs +29 -0
  171. package/dist/contexts/pageContext/mapping.d.cts +8 -0
  172. package/dist/contexts/pageContext/mapping.d.ts +8 -0
  173. package/dist/contexts/pageContext/mapping.js +29 -0
  174. package/dist/contexts/pageContext/pageContext.cjs +86 -0
  175. package/dist/contexts/pageContext/pageContext.d.cts +14 -0
  176. package/dist/contexts/pageContext/pageContext.d.ts +14 -0
  177. package/dist/contexts/pageContext/pageContext.js +84 -0
  178. package/dist/contexts/pageContext/types.cjs +0 -0
  179. package/dist/contexts/pageContext/types.d.cts +31 -0
  180. package/dist/contexts/pageContext/types.d.ts +31 -0
  181. package/dist/contexts/pageContext/types.js +1 -0
  182. package/dist/contexts/salesAgentContext/chatAPI.cjs +48 -0
  183. package/dist/contexts/salesAgentContext/chatAPI.d.cts +35 -0
  184. package/dist/contexts/salesAgentContext/chatAPI.d.ts +35 -0
  185. package/dist/contexts/salesAgentContext/chatAPI.js +47 -0
  186. package/dist/contexts/salesAgentContext/index.cjs +20 -0
  187. package/dist/contexts/salesAgentContext/index.d.cts +4 -0
  188. package/dist/contexts/salesAgentContext/index.d.ts +4 -0
  189. package/dist/contexts/salesAgentContext/index.js +5 -0
  190. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +130 -0
  191. package/dist/contexts/salesAgentContext/salesAgentContext.d.cts +22 -0
  192. package/dist/contexts/salesAgentContext/salesAgentContext.d.ts +22 -0
  193. package/dist/contexts/salesAgentContext/salesAgentContext.js +128 -0
  194. package/dist/contexts/salesAgentContext/salesAgentService.cjs +135 -0
  195. package/dist/contexts/salesAgentContext/salesAgentService.js +134 -0
  196. package/dist/contexts/salesAgentContext/statusCodeError.cjs +14 -0
  197. package/dist/contexts/salesAgentContext/statusCodeError.js +13 -0
  198. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  199. package/dist/contexts/types.cjs +2 -3
  200. package/dist/contexts/types.d.cts +12 -8
  201. package/dist/contexts/types.d.ts +12 -8
  202. package/dist/contexts/types.js +2 -3
  203. package/dist/contexts/typesV3.cjs +125 -0
  204. package/dist/contexts/typesV3.d.cts +246 -0
  205. package/dist/contexts/typesV3.d.ts +246 -0
  206. package/dist/contexts/typesV3.js +113 -0
  207. package/dist/contexts/uiConfigContext/index.cjs +4 -0
  208. package/dist/contexts/uiConfigContext/index.d.cts +2 -0
  209. package/dist/contexts/uiConfigContext/index.d.ts +2 -0
  210. package/dist/contexts/uiConfigContext/index.js +3 -0
  211. package/dist/contexts/uiConfigContext/uiConfigContext.cjs +44 -0
  212. package/dist/contexts/uiConfigContext/uiConfigContext.d.cts +15 -0
  213. package/dist/contexts/uiConfigContext/uiConfigContext.d.ts +15 -0
  214. package/dist/contexts/uiConfigContext/uiConfigContext.js +42 -0
  215. package/dist/contexts/widgetConfigContext/index.cjs +4 -0
  216. package/dist/contexts/widgetConfigContext/index.d.cts +2 -0
  217. package/dist/contexts/widgetConfigContext/index.d.ts +2 -0
  218. package/dist/contexts/widgetConfigContext/index.js +3 -0
  219. package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +67 -0
  220. package/dist/contexts/widgetConfigContext/widgetConfigContext.d.cts +19 -0
  221. package/dist/contexts/widgetConfigContext/widgetConfigContext.d.ts +19 -0
  222. package/dist/contexts/widgetConfigContext/widgetConfigContext.js +65 -0
  223. package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.d.cts +1 -1
  224. package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.d.ts +1 -1
  225. package/dist/hooks/AppDetails/useAppDetails.cjs +2 -4
  226. package/dist/hooks/AppDetails/useAppDetails.js +3 -5
  227. package/dist/hooks/ChatToggle/useChatToggle.cjs +6 -5
  228. package/dist/hooks/ChatToggle/useChatToggle.js +3 -2
  229. package/dist/hooks/ChatToggleAnalytics/useChatToggleAnalytics.cjs +3 -3
  230. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +3 -3
  231. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  232. package/dist/hooks/GraphQLConfig/index.cjs +1 -1
  233. package/dist/hooks/GraphQLConfig/index.d.cts +2 -2
  234. package/dist/hooks/GraphQLConfig/index.d.ts +2 -2
  235. package/dist/hooks/GraphQLConfig/index.js +2 -2
  236. package/dist/hooks/GraphQLConfig/useGraphQLConfig.cjs +30 -21
  237. package/dist/hooks/GraphQLConfig/useGraphQLConfig.d.cts +5 -4
  238. package/dist/hooks/GraphQLConfig/useGraphQLConfig.d.ts +5 -4
  239. package/dist/hooks/GraphQLConfig/useGraphQLConfig.js +30 -21
  240. package/dist/hooks/ImageResolver/useImageResolver.cjs +1 -1
  241. package/dist/hooks/ImageResolver/useImageResolver.js +1 -1
  242. package/dist/hooks/Search/useSearch.cjs +10 -12
  243. package/dist/hooks/Search/useSearch.d.cts +1 -3
  244. package/dist/hooks/Search/useSearch.d.ts +1 -3
  245. package/dist/hooks/Search/useSearch.js +7 -9
  246. package/dist/hooks/Search/useSearchInput.cjs +4 -4
  247. package/dist/hooks/Search/useSearchInput.js +1 -1
  248. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +5 -4
  249. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.cts +1 -1
  250. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.ts +1 -1
  251. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +3 -2
  252. package/dist/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.cjs +3 -2
  253. package/dist/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.js +3 -2
  254. package/dist/hooks/utils.d.ts +1 -1
  255. package/dist/node_modules/classnames/index.cjs +52 -0
  256. package/dist/node_modules/classnames/index.js +49 -0
  257. package/dist/packages/components-v3/dist/Container/Container.cjs +11 -0
  258. package/dist/packages/components-v3/dist/Container/Container.js +12 -0
  259. package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.cjs +1 -0
  260. package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.js +3 -0
  261. package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.cjs +1 -0
  262. package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.js +3 -0
  263. package/dist/packages/components-v3/dist/Container/index.cjs +1 -0
  264. package/dist/packages/components-v3/dist/Container/index.js +3 -0
  265. package/dist/packages/components-v3/dist/Image/Image.cjs +16 -0
  266. package/dist/packages/components-v3/dist/Image/Image.js +17 -0
  267. package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.cjs +1 -0
  268. package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.js +3 -0
  269. package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.cjs +1 -0
  270. package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.js +3 -0
  271. package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.cjs +1 -0
  272. package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.js +3 -0
  273. package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.cjs +1 -0
  274. package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.js +3 -0
  275. package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.cjs +1 -0
  276. package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.js +3 -0
  277. package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.cjs +1 -0
  278. package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.js +3 -0
  279. package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.cjs +1 -0
  280. package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.js +3 -0
  281. package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.cjs +2 -0
  282. package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.js +4 -0
  283. package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.cjs +2 -0
  284. package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.js +4 -0
  285. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.cjs +15 -0
  286. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.js +16 -0
  287. package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.cjs +4 -0
  288. package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.js +4 -0
  289. package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.cjs +1 -0
  290. package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.js +3 -0
  291. package/dist/packages/components-v3/dist/ImageGallery/components/index.cjs +4 -0
  292. package/dist/packages/components-v3/dist/ImageGallery/components/index.js +6 -0
  293. package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.cjs +1 -0
  294. package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.js +3 -0
  295. package/dist/packages/components-v3/dist/ImageGallery/index.cjs +2 -0
  296. package/dist/packages/components-v3/dist/ImageGallery/index.js +4 -0
  297. package/dist/packages/components-v3/dist/ImageGallery/types/types.cjs +13 -0
  298. package/dist/packages/components-v3/dist/ImageGallery/types/types.js +12 -0
  299. package/dist/packages/components-v3/dist/PromptButton/PromptButton.cjs +12 -0
  300. package/dist/packages/components-v3/dist/PromptButton/PromptButton.js +13 -0
  301. package/dist/packages/components-v3/dist/PromptButton/components/Icon.cjs +1 -0
  302. package/dist/packages/components-v3/dist/PromptButton/components/Icon.js +3 -0
  303. package/dist/packages/components-v3/dist/PromptButton/components/Label.cjs +3 -0
  304. package/dist/packages/components-v3/dist/PromptButton/components/Label.js +5 -0
  305. package/dist/packages/components-v3/dist/PromptButton/components/Layout.cjs +12 -0
  306. package/dist/packages/components-v3/dist/PromptButton/components/Layout.js +13 -0
  307. package/dist/packages/components-v3/dist/PromptButton/components/Loading.cjs +9 -0
  308. package/dist/packages/components-v3/dist/PromptButton/components/Loading.js +10 -0
  309. package/dist/packages/components-v3/dist/PromptButton/components/index.cjs +4 -0
  310. package/dist/packages/components-v3/dist/PromptButton/components/index.js +6 -0
  311. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.cjs +1 -0
  312. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.js +3 -0
  313. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.cjs +8 -0
  314. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.js +9 -0
  315. package/dist/packages/components-v3/dist/PromptButton/index.cjs +2 -0
  316. package/dist/packages/components-v3/dist/PromptButton/index.js +4 -0
  317. package/dist/packages/components-v3/dist/PromptButton/types/index.cjs +13 -0
  318. package/dist/packages/components-v3/dist/PromptButton/types/index.js +12 -0
  319. package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.cjs +12 -0
  320. package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.js +14 -0
  321. package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.cjs +9 -0
  322. package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.js +10 -0
  323. package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.cjs +11 -0
  324. package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.js +12 -0
  325. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.cjs +4 -0
  326. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.js +6 -0
  327. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.cjs +4 -0
  328. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.js +6 -0
  329. package/dist/packages/components-v3/dist/PromptCarousel/components/index.cjs +3 -0
  330. package/dist/packages/components-v3/dist/PromptCarousel/components/index.js +5 -0
  331. package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.cjs +5 -0
  332. package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.js +7 -0
  333. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.cjs +1 -0
  334. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.js +3 -0
  335. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.cjs +3 -0
  336. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.js +5 -0
  337. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.cjs +1 -0
  338. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.js +3 -0
  339. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.cjs +1 -0
  340. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.js +3 -0
  341. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.cjs +1 -0
  342. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.js +3 -0
  343. package/dist/packages/components-v3/dist/PromptCarousel/index.cjs +2 -0
  344. package/dist/packages/components-v3/dist/PromptCarousel/index.js +4 -0
  345. package/dist/packages/components-v3/dist/PromptCarousel/types/types.cjs +19 -0
  346. package/dist/packages/components-v3/dist/PromptCarousel/types/types.js +17 -0
  347. package/dist/packages/components-v3/dist/Stack/Stack.cjs +36 -0
  348. package/dist/packages/components-v3/dist/Stack/Stack.js +36 -0
  349. package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.cjs +27 -0
  350. package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.js +26 -0
  351. package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.cjs +20 -0
  352. package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.js +19 -0
  353. package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.cjs +19 -0
  354. package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.js +18 -0
  355. package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.cjs +16 -0
  356. package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.js +15 -0
  357. package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.cjs +21 -0
  358. package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.js +20 -0
  359. package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.cjs +38 -0
  360. package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.js +38 -0
  361. package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.cjs +13 -0
  362. package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.js +12 -0
  363. package/dist/packages/components-v3/dist/Stack/index.cjs +1 -0
  364. package/dist/packages/components-v3/dist/Stack/index.js +3 -0
  365. package/dist/packages/components-v3/dist/Stack/utils/constants.cjs +42 -0
  366. package/dist/packages/components-v3/dist/Stack/utils/constants.js +41 -0
  367. package/dist/packages/components-v3/dist/Typography/Typography.cjs +15 -0
  368. package/dist/packages/components-v3/dist/Typography/Typography.js +16 -0
  369. package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.cjs +1 -0
  370. package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.js +3 -0
  371. package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.cjs +1 -0
  372. package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.js +3 -0
  373. package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.cjs +1 -0
  374. package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.js +3 -0
  375. package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.cjs +1 -0
  376. package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.js +3 -0
  377. package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.cjs +1 -0
  378. package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.js +3 -0
  379. package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.cjs +1 -0
  380. package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.js +3 -0
  381. package/dist/packages/components-v3/dist/Typography/index.cjs +1 -0
  382. package/dist/packages/components-v3/dist/Typography/index.js +3 -0
  383. package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.cjs +12 -0
  384. package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.js +13 -0
  385. package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.cjs +1 -0
  386. package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.js +3 -0
  387. package/dist/packages/components-v3/dist/WidgetWrapper/index.cjs +2 -0
  388. package/dist/packages/components-v3/dist/WidgetWrapper/index.js +4 -0
  389. package/dist/packages/components-v3/dist/WidgetWrapper/types/types.cjs +13 -0
  390. package/dist/packages/components-v3/dist/WidgetWrapper/types/types.js +12 -0
  391. package/dist/packages/components-v3/dist/packages/components-v3/tokens/breakpoints/breakpoints.cjs +25 -0
  392. package/dist/packages/components-v3/dist/packages/components-v3/tokens/breakpoints/breakpoints.js +23 -0
  393. package/dist/packages/components-v3/dist/utils/useCheckIsMobile.cjs +1 -0
  394. package/dist/packages/components-v3/dist/utils/useCheckIsMobile.js +3 -0
  395. package/dist/packages/components-v3/dist/utils/useResponsiveValue.cjs +57 -0
  396. package/dist/packages/components-v3/dist/utils/useResponsiveValue.js +56 -0
  397. package/dist/packages/icons/dist/FourPointStar.cjs +8 -0
  398. package/dist/packages/icons/dist/FourPointStar.js +9 -0
  399. package/dist/packages/icons/dist/_virtual/rolldown_runtime.cjs +28 -0
  400. package/dist/packages/icons/dist/_virtual/rolldown_runtime.js +26 -0
  401. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +697 -0
  402. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.js +697 -0
  403. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs +44 -0
  404. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +44 -0
  405. package/dist/packages/icons/dist/node_modules/react/cjs/react.development.cjs +1529 -0
  406. package/dist/packages/icons/dist/node_modules/react/cjs/react.development.js +1529 -0
  407. package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.cjs +330 -0
  408. package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.js +330 -0
  409. package/dist/packages/icons/dist/node_modules/react/index.cjs +14 -0
  410. package/dist/packages/icons/dist/node_modules/react/index.js +14 -0
  411. package/dist/packages/icons/dist/node_modules/react/jsx-runtime.cjs +14 -0
  412. package/dist/packages/icons/dist/node_modules/react/jsx-runtime.js +14 -0
  413. package/dist/services/amplitudeService/amplitudeService.cjs +204 -0
  414. package/dist/services/amplitudeService/amplitudeService.d.cts +75 -0
  415. package/dist/services/amplitudeService/amplitudeService.d.ts +75 -0
  416. package/dist/services/amplitudeService/amplitudeService.js +202 -0
  417. package/dist/services/amplitudeService/index.cjs +4 -0
  418. package/dist/services/amplitudeService/index.d.cts +2 -0
  419. package/dist/services/amplitudeService/index.d.ts +2 -0
  420. package/dist/services/amplitudeService/index.js +3 -0
  421. package/dist/services/enviveConfigService/enviveConfigService.cjs +36 -0
  422. package/dist/services/enviveConfigService/enviveConfigService.d.cts +43 -0
  423. package/dist/services/enviveConfigService/enviveConfigService.d.ts +43 -0
  424. package/dist/services/enviveConfigService/enviveConfigService.js +36 -0
  425. package/dist/services/enviveConfigService/index.cjs +3 -0
  426. package/dist/services/enviveConfigService/index.d.cts +2 -0
  427. package/dist/services/enviveConfigService/index.d.ts +2 -0
  428. package/dist/services/enviveConfigService/index.js +3 -0
  429. package/dist/types/enviveConfig.d.cts +29 -0
  430. package/dist/types/enviveConfig.d.ts +29 -0
  431. package/dist/types/index.d.cts +2 -1
  432. package/dist/types/index.d.ts +2 -1
  433. package/package.json +40 -4
  434. package/src/application/commerce-api.ts +14 -1
  435. package/src/application/models/api/userEvent.ts +3 -1
  436. package/src/application/models/api/widgetText.ts +9 -0
  437. package/src/application/models/api/widgetTextRequest.ts +10 -0
  438. package/src/application/models/chatElementDisplayLocationV3.ts +12 -0
  439. package/src/application/models/colorsConfigV3.ts +26 -0
  440. package/src/application/models/featureGates.ts +1 -0
  441. package/src/application/models/frontendConfig.ts +5 -0
  442. package/src/application/models/frontendConfigV3.ts +10 -0
  443. package/src/application/models/index.ts +1 -0
  444. package/src/application/models/utils/snakeToCamelTransformer.ts +1 -1
  445. package/src/application/utils/elementObserver.ts +2 -2
  446. package/src/application/utils/widgetTextFromApiWidgetTextResponse.ts +30 -0
  447. package/src/application/utils/widgetTextRequestToApiRequest.ts +45 -0
  448. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +1 -8
  449. package/src/atoms/app/index.ts +3 -3
  450. package/src/atoms/app/variant.ts +5 -0
  451. package/src/atoms/chat/chatState.ts +10 -2
  452. package/src/atoms/envive/enviveConfig.ts +5 -0
  453. package/src/atoms/org/graphqlConfig.ts +0 -1
  454. package/src/atoms/widget/chatPreviewLoading.ts +36 -0
  455. package/src/atoms/widget/index.ts +1 -0
  456. package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +197 -187
  457. package/src/contexts/amplitudeContext/amplitudeContext.tsx +56 -334
  458. package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +3 -0
  459. package/src/contexts/enviveContext/enviveContext.tsx +101 -27
  460. package/src/contexts/enviveCssContext/enviveCssContext.tsx +121 -22
  461. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +12 -11
  462. package/src/contexts/graphqlContext/graphqlContext.tsx +131 -13
  463. package/src/contexts/graphqlContext/mockV3Config.ts +209 -0
  464. package/src/contexts/hardcopyContext/hardcopyContext.tsx +136 -14
  465. package/src/contexts/newOrgConfigContext/__tests__/newOrgConfigContext.test.tsx +6 -6
  466. package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +5 -13
  467. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +24 -8
  468. package/src/contexts/pageContext/mapping.ts +4 -0
  469. package/src/contexts/pageContext/pageContext.tsx +41 -12
  470. package/src/contexts/pageContext/types.ts +4 -0
  471. package/src/contexts/salesAgentContext/chatAPI.ts +1 -0
  472. package/src/contexts/salesAgentContext/salesAgentContext.tsx +94 -42
  473. package/src/contexts/salesAgentContext/salesAgentService.ts +78 -3
  474. package/src/contexts/salesAgentContext/statusCodeError.ts +10 -0
  475. package/src/contexts/searchContext/__tests__/searchContext.test.tsx +8 -2
  476. package/src/contexts/types.ts +15 -19
  477. package/src/contexts/typesV3.ts +316 -0
  478. package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +321 -0
  479. package/src/contexts/uiConfigContext/index.ts +1 -0
  480. package/src/contexts/uiConfigContext/uiConfigContext.tsx +44 -0
  481. package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +512 -0
  482. package/src/contexts/widgetConfigContext/index.ts +1 -0
  483. package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +84 -0
  484. package/src/hooks/AppDetails/useAppDetails.ts +2 -2
  485. package/src/hooks/GraphQLConfig/useGraphQLConfig.ts +22 -21
  486. package/src/hooks/Search/__tests__/useSearch.test.tsx +15 -6
  487. package/src/hooks/Search/useSearch.tsx +6 -5
  488. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +558 -0
  489. package/src/services/amplitudeService/amplitudeService.ts +324 -0
  490. package/src/services/amplitudeService/index.ts +1 -0
  491. package/src/services/enviveConfigService/enviveConfigService.ts +72 -0
  492. package/src/services/enviveConfigService/index.ts +1 -0
  493. package/src/types/enviveConfig.ts +27 -0
  494. package/src/types/index.ts +1 -0
  495. package/dist/contexts/chatContext/chatContext.cjs +0 -306
  496. package/dist/contexts/chatContext/chatContext.d.cts +0 -15
  497. package/dist/contexts/chatContext/chatContext.d.ts +0 -15
  498. package/dist/contexts/chatContext/chatContext.js +0 -304
  499. package/dist/contexts/chatContext/index.cjs +0 -4
  500. package/dist/contexts/chatContext/index.d.cts +0 -2
  501. package/dist/contexts/chatContext/index.d.ts +0 -2
  502. package/dist/contexts/chatContext/index.js +0 -3
@@ -8,6 +8,7 @@ import { ChatState } from "../types/custservice-types.js";
8
8
  import { SuggestionBarLocationForMetrics } from "../types/suggestionBarV2-types.js";
9
9
  import { TestProps } from "../types/test-types.js";
10
10
  import { OrgConfigFeatureGate } from "../application/models/api/orgConfigResults.js";
11
+ import { WidgetConfigV3 } from "./typesV3.js";
11
12
  import { PageVisitCategory, SupportedEventProductCategory } from "@spiffy-ai/commerce-api-client";
12
13
 
13
14
  //#region src/contexts/types.d.ts
@@ -299,7 +300,9 @@ interface SearchConfig {
299
300
  recommendedProducts?: string[];
300
301
  recommendedProductsHeading?: string;
301
302
  }
303
+ type ConfigVersion = 'v3' | 'deprecated' | undefined;
302
304
  type OrgUIConfig = {
305
+ version?: ConfigVersion;
303
306
  shortName: string;
304
307
  id?: string;
305
308
  floatingEntrypointConfig?: FloatingEntryPointConfig;
@@ -347,8 +350,6 @@ type WrappingElement = {
347
350
  insertionType: DOMInsertionType;
348
351
  };
349
352
  declare enum PageVariantTestType {
350
- ShopifyPLP = "ShopifyPLP",
351
- ShopifyPDP = "ShopifyPDP",
352
353
  PageCategory = "PageCategory",
353
354
  CatalogCategory = "CatalogCategory",
354
355
  TopCatalogCategory = "TopCatalogCategory",
@@ -365,6 +366,7 @@ declare enum PageVariantTestType {
365
366
  isProductComparison = "isProductComparison",
366
367
  Fallback = "Fallback",
367
368
  UrlResolver = "UrlResolver",
369
+ isScreenWidthSmaller = "isScreenWidthSmaller",
368
370
  Null = "null",
369
371
  }
370
372
  interface BasePageVariantTest<T extends PageVariantTestType> {
@@ -385,8 +387,6 @@ interface InCollectionTest extends BasePageVariantTest<PageVariantTestType.InCol
385
387
  interface HasMerchantTagTest extends BasePageVariantTest<PageVariantTestType.HasMerchantTag> {
386
388
  merchantTags: string[];
387
389
  }
388
- interface ShopifyPLPURLTest extends BasePageVariantTest<PageVariantTestType.ShopifyPLP> {}
389
- interface ShopifyPDPURLTest extends BasePageVariantTest<PageVariantTestType.ShopifyPDP> {}
390
390
  interface PageCategoryTest extends BasePageVariantTest<PageVariantTestType.PageCategory> {
391
391
  extractor: CategoryExtractor;
392
392
  }
@@ -410,7 +410,10 @@ interface IsLoadingTest extends BasePageVariantTest<PageVariantTestType.isLoadin
410
410
  interface IsProductComparison extends BasePageVariantTest<PageVariantTestType.isProductComparison> {}
411
411
  interface PageFallbackTest extends BasePageVariantTest<PageVariantTestType.Fallback> {}
412
412
  interface UrlResolverTest extends BasePageVariantTest<PageVariantTestType.UrlResolver> {}
413
- type PageVariantTest = PageCategoryTest | ShopifyPLPURLTest | ShopifyPDPURLTest | CatalogCategoryTest | TopCatalogCategory | HasReviewsTest | InCollectionTest | HasMerchantTagTest | FeatureGateTest | ProductIdTest | PlpIdTest | QueryParamTest | UserHasInteractedTest | UserHasNotInteractedTest | IsLoadingTest | IsProductComparison | PageFallbackTest | UrlResolverTest;
413
+ interface IsScreenWidthSmallerTest extends BasePageVariantTest<PageVariantTestType.isScreenWidthSmaller> {
414
+ breakpoint: number;
415
+ }
416
+ type PageVariantTest = PageCategoryTest | CatalogCategoryTest | TopCatalogCategory | HasReviewsTest | InCollectionTest | HasMerchantTagTest | FeatureGateTest | ProductIdTest | PlpIdTest | QueryParamTest | UserHasInteractedTest | UserHasNotInteractedTest | IsLoadingTest | IsProductComparison | PageFallbackTest | UrlResolverTest | IsScreenWidthSmallerTest;
414
417
  /**
415
418
  * Configuration for the social proof embedded widget
416
419
  *
@@ -669,7 +672,7 @@ type SearchPageVariant = PageVariantBase & {
669
672
  type PageVariantConfig = PLPPageVariant | PDPPageVariant | VisitPageVariant | OtherPageVariant | HomePageVariant | SearchPageVariant;
670
673
  type OrgPageConfig = {
671
674
  pageVariants: PageVariantConfig[];
672
- widgetConfigs: Record<string, WidgetConfig>;
675
+ widgetConfigs: Record<string, WidgetConfigV3>;
673
676
  mountingConfigs: Record<string, WidgetMountingConfig>;
674
677
  };
675
678
  type OrgConfig = OrgUIConfig;
@@ -683,6 +686,7 @@ interface EnviveConfig {
683
686
  contextSource?: string;
684
687
  orgLevelApiKey?: string;
685
688
  orgShortName?: string;
689
+ orgId?: string;
686
690
  identifyingPrefix?: string;
687
691
  featureOverrides?: Record<string, boolean>;
688
692
  variantUrlOverride?: string;
@@ -692,5 +696,5 @@ interface EnviveConfig {
692
696
  featureGates?: OrgConfigFeatureGate[];
693
697
  }
694
698
  //#endregion
695
- export { type CategoryExtractor, CategoryExtractorType, type ChatMessageConfig, type ChatMessageVariant, type ChatPreviewConfig, type ChatPreviewFooterConfig, type ChatPreviewHeaderConfig, type ChatPreviewHeaderV2Config, type ChatPreviewIsLoadingWidgetConfig, type ChatPreviewPostInteractionWidgetConfig, type ChatPreviewProductComparisonWidgetConfig, type ChatPreviewSuggestionButtonConfig, type ChatPreviewV2WidgetConfig, type ChatPreviewVariant, type ChatPreviewWidgetConfig, type ColorMapping, ColorNames, type CustomerServiceIntegration, type DynamicWidgetMounting, EnviveConfig, FilterAttribute, type FloatingEntryPointConfig, type FullCustomerServiceIntegration, type HomePageVariant, type IdExtractor, type ImageBannerWidgetConfig, type ImagePromptWidgetConfig, type InsertionPoint, type MultiImageConfig, type NoOpWidgetConfig, type NumRows, OrgConfig, OrgPageConfig, type OrgUIConfig, type OtherPageVariant, type PDPPageVariant, type PLPPageVariant, type PageCardConfig, type PageCardHoverVariant, type PageCardIconVariant, type PageCardVariant, PageVariantConfig, PageVariantTest, PageVariantTestType, type ProductCardConfig, type ProductCardHoverVariant, type ProductCardLayoutVariant, type ProductCardVariant, ProductGridVariant, type ProductLinkHoverVariant, type ProductLinkIconVariant, type ProductLinkVariant, type ProductReviewColorVariant, type ProductReviewConfig, type ProductReviewStyleVariant, type SearchCardVariant, type SearchEntryPointWidgetConfig, SearchFilterSidebarVariant, SearchIconVariant, SearchInputVariant, type SearchOverlayHostWidgetConfig, type SearchPageVariant, type SearchPromptVariant, type SearchPromptWidgetConfig, type SearchResultsEntryPointWidgetConfig, SearchZeroStateLayout, SearchZeroStateVariant, type ShowFloatingButtonOptions, type SingleImagePromptWidgetConfig, type SocialProofConfig, type SocialProofV2WidgetConfig, type StaticWidgetMounting, type SuggestionBarWidgetV2Config, type SuggestionButtonConfig, type SuggestionButtonVariant, type URLTest, type UserQueryButtonConfig, type UserQueryButtonIcon, UserQueryOptions, type VisitPageVariant, type WelcomeSectionColorVariant, type WelcomeSectionConfig, type WelcomeSectionVariant, type WidgetConfig, type WidgetDisplayTests, WidgetHeaderProps, type WidgetMounting, WidgetMountingConfig, WidgetType, type WrappingElement, colorVar };
696
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dHMvdHlwZXMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbiB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24nO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nLCBDb2xvck5hbWVzLCBjb2xvclZhciB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY29sb3JzQ29uZmlnJztcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzJztcbmltcG9ydCB7IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZSwgQ3VzdG9tZXJTZXJ2aWNlVHlwZSB9IGZyb20gJ3NyYy90eXBlcy9jdXN0b21lclNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZEluc2VydGlvblR5cGUgfSBmcm9tICdzcmMvbWVyY2hhbnRzL2dyaWRJbnNlcnRpb24nO1xuaW1wb3J0IHsgRE9NSW5zZXJ0aW9uVHlwZSB9IGZyb20gJ3NyYy9tZXJjaGFudHMvZG9tSW5zZXJ0aW9uJztcbmltcG9ydCB0eXBlIHsgUGFnZVZpc2l0Q2F0ZWdvcnksIFN1cHBvcnRlZEV2ZW50UHJvZHVjdENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENoYXRTdGF0ZSB9IGZyb20gJ3NyYy90eXBlcy9jdXN0c2VydmljZS10eXBlcyc7XG5pbXBvcnQgeyBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzIH0gZnJvbSAnc3JjL3R5cGVzL3N1Z2dlc3Rpb25CYXJWMi10eXBlcyc7XG5pbXBvcnQgeyBUZXN0UHJvcHMgfSBmcm9tICdzcmMvdHlwZXMvdGVzdC10eXBlcyc7XG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xudHlwZSBTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zID0gJ2Fsd2F5cycgfCAnYWZ0ZXItaW50ZXJhY3Rpb24tb24tbW9iaWxlLWFsd2F5cy1kZXNrdG9wJyB8ICdhZnRlci1pbnRlcmFjdGlvbi1hbnl3aGVyZScgfCAnbmV2ZXInO1xudHlwZSBGbG9hdGluZ0VudHJ5UG9pbnRDb25maWcgPSB7XG4gICAgcG9zaXRpb246ICdib3R0b20tbGVmdCcgfCAnbWlkZGxlLWxlZnQnIHwgJ21pZGRsZS1yaWdodCcgfCAnYm90dG9tLXJpZ2h0JztcbiAgICBleHBhbnNpb25UZXh0Pzoge1xuICAgICAgICBwZHA6IHN0cmluZztcbiAgICAgICAgcGxwOiBzdHJpbmc7XG4gICAgfTtcbiAgICBtaW5pbWl6ZWRDb2xvcjogc3RyaW5nO1xuICAgIGV4cGFuZGVkQ29sb3I6IHN0cmluZztcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgc2hvd09wdGlvbjogU2hvd0Zsb2F0aW5nQnV0dG9uT3B0aW9ucztcbiAgICBpY29uU1ZHU3JjPzogc3RyaW5nO1xuICAgIGljb25TaXplPzogbnVtYmVyO1xuICAgIGljb25TdHJva2VDb2xvcj86IHN0cmluZztcbiAgICBpY29uRmlsbENvbG9yPzogc3RyaW5nO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBmb250U2l6ZT86IG51bWJlcjtcbn07XG50eXBlIFdlbGNvbWVTZWN0aW9uVmFyaWFudCA9ICdzdGFuZGFyZCcgfCAnb3V0bGluZWQnO1xudHlwZSBXZWxjb21lU2VjdGlvbkNvbG9yVmFyaWFudCA9ICdzdGFuZGFyZCcgfCAnYWNjZW50JyB8ICdicmFuZCcgfCAnbGlnaHQnO1xudHlwZSBXZWxjb21lU2VjdGlvbkNvbmZpZyA9IHtcbiAgICB2YXJpYW50OiBXZWxjb21lU2VjdGlvblZhcmlhbnQ7XG4gICAgY29sb3JWYXJpYW50PzogV2VsY29tZVNlY3Rpb25Db2xvclZhcmlhbnQ7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgc3VidGl0bGU/OiBzdHJpbmc7XG4gICAgaWNvbk5hbWU/OiBzdHJpbmc7XG4gICAgaW1hZ2VTcmM/OiBzdHJpbmc7XG59O1xudHlwZSBDaGF0UHJldmlld0NvbmZpZyA9IHtcbiAgICB2YXJpYW50OiAnZmxhdCcgfCAnZmlsbGVkJyB8ICdvdXRsaW5lZCc7XG4gICAgbGFyZ2VQcm9kdWN0Q29tcGFyaXNvbj86IGJvb2xlYW47XG4gICAgZmlsbGVkQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gICAgaWNvbkZpbGxDb2xvcjogc3RyaW5nO1xuICAgIGJ1dHRvblRleHRDb2xvcj86IHN0cmluZztcbiAgICBidXR0b25UZXh0U2Vjb25kYXJ5Q29sb3I/OiBzdHJpbmc7XG4gICAgYnV0dG9uVGV4dEhvdmVyQ29sb3I/OiBzdHJpbmc7XG4gICAgYnV0dG9uQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gICAgYnV0dG9uQmFja2dyb3VuZEhvdmVyQ29sb3I6IHN0cmluZztcbiAgICBidXR0b25Cb3JkZXJDb2xvcj86IHN0cmluZztcbiAgICBidXR0b25Cb3JkZXJIb3ZlckNvbG9yPzogc3RyaW5nO1xuICAgIGNvcGllczoge1xuICAgICAgICBwZHA6IHN0cmluZ1tdO1xuICAgICAgICBwbHA6IHN0cmluZ1tdO1xuICAgIH07XG4gICAgc3RhdGljU3VnZ2VzdGlvbkNvcGllcz86IHtcbiAgICAgICAgcGRwOiBzdHJpbmdbXTtcbiAgICAgICAgcGxwOiBzdHJpbmdbXTtcbiAgICB9O1xuICAgIHN0YXRpY1BMUEltYWdlcz86IHN0cmluZ1tdO1xuICAgIGZvb3RlckNvbmZpZz86IENoYXRQcmV2aWV3Rm9vdGVyQ29uZmlnO1xuICAgIGhlYWRlckNvbmZpZz86IENoYXRQcmV2aWV3SGVhZGVyQ29uZmlnO1xuICAgIHRvcE1hcmdpbj86IG51bWJlcjtcbn07XG50eXBlIENoYXRQcmV2aWV3SGVhZGVyQ29uZmlnID0ge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGltYWdlU3JjPzogc3RyaW5nO1xuICAgIGltYWdlSGVpZ2h0PzogbnVtYmVyO1xuICAgIHNwYXJrbGVzQ29sb3I/OiBzdHJpbmc7XG4gICAgZm9udFNpemU/OiBzdHJpbmc7XG4gICAgaWNvbldpZHRoPzogc3RyaW5nO1xuICAgIGljb25IZWlnaHQ/OiBzdHJpbmc7XG59O1xuaW50ZXJmYWNlIENoYXRQcmV2aWV3Rm9vdGVyQ29uZmlnIHtcbiAgICBoYXNGYWRlPzogYm9vbGVhbjtcbiAgICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudD86ICdkYXJrJyB8ICdsaWdodCcgfCAnb3V0bGluZWQnO1xuICAgIHN1Z2dlc3Rpb25zQmFja2dyb3VuZD86IHN0cmluZztcbiAgICByZXBseUJ1dHRvbkljb24/OiAnc2VuZCcgfCAnbWFnbmlmeWluZ0dsYXNzJyB8ICd0aGluTWFnbmlmeWluZ0dsYXNzJyB8ICdzZWFyY2hJY29uJztcbiAgICByZXBseUJ1dHRvblRleHQ/OiBzdHJpbmc7XG4gICAgcmVwbHlJbnB1dEhhc1NoYWRvdz86IGJvb2xlYW47XG4gICAgcmVwbHlJbnB1dEhhc0JvcmRlcj86IGJvb2xlYW47XG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xufVxudHlwZSBQcm9kdWN0UmV2aWV3U3R5bGVWYXJpYW50ID0gJ3N0YW5kYXJkJyB8ICdib3JkZXJlZCc7XG50eXBlIFByb2R1Y3RSZXZpZXdDb2xvclZhcmlhbnQgPSAnbmV1dHJhbCcgfCAnYnJhbmQnIHwgJ3ByZW1pdW0nO1xuaW50ZXJmYWNlIFByb2R1Y3RSZXZpZXdDb25maWcge1xuICAgIHN0eWxlVmFyaWFudDogUHJvZHVjdFJldmlld1N0eWxlVmFyaWFudDtcbiAgICBjb2xvclZhcmlhbnQ6IFByb2R1Y3RSZXZpZXdDb2xvclZhcmlhbnQ7XG4gICAgdmVyaWZpZWRCdXllclRpdGxlOiBzdHJpbmc7XG4gICAgaW5jZW50aXZpemVkUmV2aWV3RmxhZz86IGJvb2xlYW47XG59XG50eXBlIFBhZ2VDYXJkVmFyaWFudCA9ICdmaWxsZWQnIHwgJ291dGxpbmVkJyB8ICdtaW5pbWFsJztcbnR5cGUgUGFnZUNhcmRIb3ZlclZhcmlhbnQgPSAnbm9uZScgfCAnc2hhZG93JyB8ICdsaWZ0JztcbnR5cGUgUGFnZUNhcmRJY29uVmFyaWFudCA9ICdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ2JhY2tncm91bmQnIHwgJ25vbmUnO1xudHlwZSBQYWdlQ2FyZENvbmZpZyA9IHtcbiAgICB2YXJpYW50OiBQYWdlQ2FyZFZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50OiBQYWdlQ2FyZEhvdmVyVmFyaWFudDtcbiAgICBpY29uVmFyaWFudDogUGFnZUNhcmRJY29uVmFyaWFudDtcbn07XG50eXBlIFByb2R1Y3RDYXJkVmFyaWFudCA9ICdmaWxsZWQnIHwgJ2JvcmRlcmVkJyB8ICdtaW5pbWFsJyB8ICd0cmFuc3BhcmVudEJvcmRlcmVkJztcbnR5cGUgUHJvZHVjdENhcmRIb3ZlclZhcmlhbnQgPSAnYmFja2dyb3VuZERhcmsnIHwgJ25vbmUnO1xudHlwZSBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQgPSAnbm9ybWFsJyB8ICd0YWxsJyB8ICdzcXVhcmUnO1xuaW50ZXJmYWNlIFByb2R1Y3RDYXJkQ29uZmlnIHtcbiAgICB2YXJpYW50OiBQcm9kdWN0Q2FyZFZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50OiBQcm9kdWN0Q2FyZEhvdmVyVmFyaWFudDtcbiAgICBsYXlvdXRWYXJpYW50OiBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQ7XG4gICAgcHJpY2VQcmVmaXg/OiBzdHJpbmc7XG59XG50eXBlIENTU3dpdGNoQ29uZmlnID0ge1xuICAgIHZhcmlhbnQ6ICdhdHRhY2hlZCcgfCAnZGV0YWNoZWQnO1xuICAgIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICAgIGJvcmRlckNvbG9yOiBzdHJpbmc7XG4gICAgc2VsZWN0ZWRUZXh0Q29sb3I6IHN0cmluZztcbiAgICBzZWxlY3RlZEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICB1bnNlbGVjdGVkVGV4dENvbG9yOiBzdHJpbmc7XG4gICAgdW5zZWxlY3RlZEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICBzdXBwb3J0VGl0bGU/OiBzdHJpbmc7XG4gICAgc3BpZmZ5VGl0bGU/OiBzdHJpbmc7XG4gICAgc3BpZmZ5VGl0bGVIYXNMb2dvPzogYm9vbGVhbjtcbn07XG50eXBlIENoYXRIZWFkZXJDb25maWcgPSB7XG4gICAgY29sbGFwc2VkQ29sb3I6IHN0cmluZztcbiAgICBleHBhbmRlZENvbG9yOiBzdHJpbmc7XG4gICAgY2hldnJvbkNvbG9yOiBzdHJpbmc7XG4gICAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gICAgaWNvbj86IFJlYWN0LkZ1bmN0aW9uQ29tcG9uZW50PFJlYWN0LlNWR1Byb3BzPFNWR1NWR0VsZW1lbnQ+PjtcbiAgICBjbG9zZUljb24/OiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxSZWFjdC5TVkdQcm9wczxTVkdTVkdFbGVtZW50Pj47XG4gICAgYm9yZGVyQm90dG9tPzogc3RyaW5nO1xuICAgIGhlYWRlckJhckhlaWdodFBhcnRpYWxWaWV3OiBudW1iZXI7XG4gICAgaGVhZGVyQmFySGVpZ2h0RnVsbFZpZXc6IG51bWJlcjtcbiAgICBjdXN0b21lclN1cHBvcnRTd2l0Y2hDb25maWc/OiBDU1N3aXRjaENvbmZpZztcbn07XG50eXBlIFNpbXBsZUN1c3RvbWVyU2VydmljZUludGVncmF0aW9uID0ge1xuICAgIGludGVncmF0aW9uTW9kZTogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlO1xuICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlO1xuICAgIHVzZVVuaWZpZWRCdXR0b24/OiBib29sZWFuO1xuICAgIG1heGZpbGVVcGxvYWRTaXplPzogbnVtYmVyO1xufTtcbnR5cGUgRnVsbEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uID0ge1xuICAgIGludGVncmF0aW9uTW9kZTogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlO1xuICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlO1xuICAgIHVzZVVuaWZpZWRCdXR0b24/OiBib29sZWFuO1xuICAgIGNoYXRFbmFibGVkRHVyaW5nQnVzaW5lc3NIb3Vycz86IGJvb2xlYW47XG4gICAgc2hvd05hbWVJbnB1dD86IGJvb2xlYW47XG4gICAgZm9ybUFpTmFtZT86IHN0cmluZztcbiAgICB3ZWxjb21lVGl0bGU6IHN0cmluZztcbiAgICB3ZWxjb21lRGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzaG93V2VsY29tZU9uRm9ybT86IGJvb2xlYW47XG4gICAgY29udGFjdFN1YmplY3RPcHRpb25zPzogc3RyaW5nW107XG4gICAgZ2V0Q3VzdG9tV2FpdGluZ01lc3NhZ2U/OiAobmFtZT86IHN0cmluZykgPT4gc3RyaW5nO1xuICAgIHdpdGhpbkJ1c2luZXNzSG91cnNNZXNzYWdlPzogc3RyaW5nO1xuICAgIHdpdGhpbkJ1c2luZXNzSG91cnNXYWl0aW5nTWVzc2FnZT86IHN0cmluZztcbiAgICBvdXRzaWRlQnVzaW5lc3NIb3Vyc01lc3NhZ2U/OiBzdHJpbmc7XG4gICAgb3V0c2lkZUJ1c2luZXNzSG91cnNXYWl0aW5nTWVzc2FnZT86IHN0cmluZztcbiAgICB3aXRoaW5CdXNpbmVzc0hvdXJzRm9ybU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgb3V0c2lkZUJ1c2luZXNzSG91cnNGb3JtTWVzc2FnZT86IHN0cmluZztcbiAgICBzdWdnZXN0ZWRBSVF1ZXN0aW9ucz86IHN0cmluZ1tdO1xuICAgIGJ1c2luZXNzSG91cnNQb2xsaW5nPzogbnVtYmVyO1xuICAgIG1heGZpbGVVcGxvYWRTaXplPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgaGFuZGxlZCBieSB0aGUgQkUuXG4gICAgICovXG4gICAgYnVzaW5lc3NIb3Vyc1N0YXJ0VVRDPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgaGFuZGxlZCBieSB0aGUgQkUuXG4gICAgICovXG4gICAgYnVzaW5lc3NIb3Vyc0VuZFVUQz86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIEJFLlxuICAgICAqL1xuICAgIGJ1c2luZXNzSG91cnNUaW1lem9uZT86IHN0cmluZztcbiAgICBzaG93QUlTdWdnZXN0aW9uc1dpdGhpbkJ1c2luZXNzSG91cnM/OiBib29sZWFuO1xuICAgIHdhaXRpbmdNZXNzYWdlUG9zaXRpb24/OiAnQkVGT1JFX01FU1NBR0VTJyB8ICdBRlRFUl9NRVNTQUdFUyc7XG4gICAgbGVnYWxNZXNzYWdlPzogc3RyaW5nO1xuICAgIHdpdGhpbkJ1c2luZXNzSG91cnNJbml0aWFsU3RhdGU/OiBDaGF0U3RhdGU7XG4gICAgb3V0c2lkZUJ1c2luZXNzSG91cnNJbml0aWFsU3RhdGU/OiBDaGF0U3RhdGU7XG4gICAgd2l0aGluQnVzaW5lc3NIb3Vyc0J1dHRvbnRleHQ/OiBzdHJpbmc7XG4gICAgb3V0c2lkZUJ1c2luZXNzSG91cnNCdXR0b250ZXh0Pzogc3RyaW5nO1xuICAgIHJlb3BlbkNoYXRNZXNzYWdlOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9IFNpbXBsZUN1c3RvbWVyU2VydmljZUludGVncmF0aW9uIHwgRnVsbEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uO1xudHlwZSBDb252ZXJzYXRpb25hbFNlYWNoID0ge1xuICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgIHJlcGx5SW5wdXQ/OiBSZXBseUlucHV0Q29uZmlnO1xuICAgIHN1Z2dlc3Rpb25zPzogc3RyaW5nW107XG4gICAgZW50cnlwb2ludEJnQ29sb3I/OiBzdHJpbmc7XG4gICAgZW50cnlwb2ludFRleHRDb2xvcj86IHN0cmluZztcbiAgICBlbnRyeXBvaW50QnRuQ29sb3I/OiBzdHJpbmc7XG4gICAgZW50cnlwb2ludEJ0blRleHRDb2xvcj86IHN0cmluZztcbiAgICBlbnRyeXBvaW50QnRuQm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gICAgZW50cnlwb2ludENvbnRhaW5lcj86IHN0cmluZztcbiAgICBlbnRyeXBvaW50VHJpZ2dlcj86IHN0cmluZztcbiAgICBwcm9kdWN0R3JpZENvbnRhaW5lcj86IHN0cmluZztcbiAgICBnZW5lcmFsU2VhcmNoQnRuPzogc3RyaW5nO1xuICAgIHBhZ2VDb250ZW50Pzogc3RyaW5nO1xuICAgIHNlYXJjaENvbnRlbnQ/OiBzdHJpbmc7XG4gICAgc29ydGluZ1RpdGxlPzogc3RyaW5nO1xuICAgIHNlbGVjdGlvblRpdGxlPzogc3RyaW5nO1xuICAgIHNvcnRpbmdGb250Pzogc3RyaW5nO1xuICAgIG9wdGlvbnNGb250Pzogc3RyaW5nO1xuICAgIHNvcnRpbmdCdXR0b25UZXh0Pzogc3RyaW5nO1xufTtcbnR5cGUgQ2hhdE1lc3NhZ2VWYXJpYW50ID0gJ3N0YW5kYXJkJyB8ICdwcmVtaXVtJyB8ICdhY2NlbnQnO1xuaW50ZXJmYWNlIENoYXRNZXNzYWdlQ29uZmlnIHtcbiAgICBhc3Npc3RhbnRDaGF0VGl0bGU6IHN0cmluZztcbiAgICB2YXJpYW50OiBDaGF0TWVzc2FnZVZhcmlhbnQ7XG4gICAgcHJvZHVjdExpbms6IHtcbiAgICAgICAgdmFyaWFudDogUHJvZHVjdExpbmtWYXJpYW50O1xuICAgICAgICBob3ZlclZhcmlhbnQ6IFByb2R1Y3RMaW5rSG92ZXJWYXJpYW50O1xuICAgICAgICBpY29uVmFyaWFudDogUHJvZHVjdExpbmtJY29uVmFyaWFudDtcbiAgICB9O1xufVxuaW50ZXJmYWNlIFJlcGx5SW5wdXRDb25maWcge1xuICAgIHNpemU/OiAnbWQnIHwgJ2xnJztcbiAgICBzZW5kSWNvbjogJ2Fycm93VXAnIHwgJ3NlbmQnIHwgJ3NlYXJjaCc7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG59XG5pbnRlcmZhY2UgUGFydGlhbFZpZXdDb25maWcge1xuICAgIG1heEhlaWdodDogbnVtYmVyO1xuICAgIGJvcmRlclJhZGl1cz86IHN0cmluZztcbn1cbnR5cGUgUHJvZHVjdExpbmtJY29uVmFyaWFudCA9ICdhY2NlbnRQcmltYXJ5JyB8ICdiYWNrZ3JvdW5kUHJpbWFyeScgfCAnYmFja2dyb3VuZFByaW1hcnlEYXJrJyB8ICdib3JkZXJMaWdodCcgfCAnYmFja2dyb3VuZFNhdHVyYXRlZCc7XG50eXBlIFByb2R1Y3RMaW5rVmFyaWFudCA9ICd0ZXh0TGluayc7XG50eXBlIFByb2R1Y3RMaW5rSG92ZXJWYXJpYW50ID0gJ2JhY2tncm91bmREYXJrJztcbnR5cGUgU2VhcmNoQ2FyZFZhcmlhbnQgPSAnYmFja2dyb3VuZFByaW1hcnknIHwgJ2JhY2tncm91bmRTZWNvbmRhcnknIHwgJ2JhY2tncm91bmRTZWNvbmRhcnlEYXJrJyB8ICdiYWNrZ3JvdW5kTGlnaHQnIHwgJ2JhY2tncm91bmRTYXR1cmF0ZWQnO1xudHlwZSBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudCA9ICdvdXRsaW5lZCcgfCAnb3V0bGluZWRMaWdodCcgfCAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICd0ZXJ0aWFyeScgfCAnZGFyaycgfCAnZGFya0FjY2VudCcgfCAnZGFya1ByaW1hcnknIHwgJ3NlY29uZGFyeURhcmsnIHwgJ3NlY29uZGFyeUFjY2VudCcgfCAndHJhbnNwYXJlbnQnIHwgJ3RyYW5zcGFyZW50RGFyaycgfCAnbGlnaHREYXJrJztcbmludGVyZmFjZSBTdWdnZXN0aW9uQnV0dG9uQ29uZmlnIHtcbiAgICB2YXJpYW50PzogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50PzogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgYW5zd2VyVmFyaWFudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIGJvcmRlclJhZGl1cz86ICdzbScgfCAnbWQnIHwgJ2xnJztcbn1cbnR5cGUgTnVtUm93cyA9ICdkZWZhdWx0JyB8ICdhbHdheXNPbmVSb3cnIHwgJ2Fsd2F5c1R3b1Jvd3MnIHwgJ3R3b1Jvd3NPbk1vYmlsZSc7XG5pbnRlcmZhY2UgQWxwaGFiZXRpY0ZpbHRlclNvcnRpbmcge1xuICAgIHR5cGU6ICdhbHBoYWJldGljJztcbn1cbmludGVyZmFjZSBQcm9kdWN0Q291bnRGaWx0ZXJTb3J0aW5nIHtcbiAgICB0eXBlOiAncHJvZHVjdENvdW50Jztcbn1cbmludGVyZmFjZSBDdXN0b21GaWx0ZXJTb3J0aW5nIHtcbiAgICB0eXBlOiAnY3VzdG9tJztcbiAgICBtYXA6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG59XG50eXBlIEZpbHRlclNvcnRpbmcgPSBBbHBoYWJldGljRmlsdGVyU29ydGluZyB8IFByb2R1Y3RDb3VudEZpbHRlclNvcnRpbmcgfCBDdXN0b21GaWx0ZXJTb3J0aW5nO1xuaW50ZXJmYWNlIEJhc2VGaWx0ZXJDb25maWcge1xuICAgIGZpbHRlcklkOiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbn1cbmludGVyZmFjZSBEeW5hbWljRmlsdGVyQ29uZmlnIGV4dGVuZHMgQmFzZUZpbHRlckNvbmZpZyB7XG4gICAgdHlwZTogJ2R5bmFtaWMnO1xuICAgIGF0dHJpYnV0ZTogc3RyaW5nO1xuICAgIHNvcnRpbmc6IEZpbHRlclNvcnRpbmc7XG59XG5pbnRlcmZhY2UgUHJpY2VGaWx0ZXJDb25maWcgZXh0ZW5kcyBCYXNlRmlsdGVyQ29uZmlnIHtcbiAgICB0eXBlOiAncHJpY2UnO1xuICAgIGJ1Y2tldFNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCB0eXBlIEZpbHRlckF0dHJpYnV0ZSA9IER5bmFtaWNGaWx0ZXJDb25maWcgfCBQcmljZUZpbHRlckNvbmZpZztcbmV4cG9ydCB0eXBlIFNlYXJjaFplcm9TdGF0ZVZhcmlhbnQgPSAnYmFja2dyb3VuZFRlcnRpYXJ5JyB8ICdiYWNrZ3JvdW5kRGFyaycgfCAnYmFja2dyb3VuZFByaW1hcnknO1xuZXhwb3J0IHR5cGUgU2VhcmNoWmVyb1N0YXRlTGF5b3V0ID0gJ2lucHV0JyB8ICdpY29uJztcbmV4cG9ydCB0eXBlIFNlYXJjaElucHV0VmFyaWFudCA9ICdzdGFuZGFyZCc7XG5leHBvcnQgdHlwZSBTZWFyY2hJY29uVmFyaWFudCA9ICd0aGluJyB8ICdib2xkJztcbmV4cG9ydCB0eXBlIFNlYXJjaEZpbHRlclNpZGViYXJWYXJpYW50ID0gJ2RhcmtCdXR0b24nIHwgJ2xpZ2h0QnV0dG9uJztcbmV4cG9ydCB0eXBlIFByb2R1Y3RHcmlkVmFyaWFudCA9ICdzdGFuZGFyZCcgfCAnc3F1YXJlJztcbnR5cGUgVXNlclF1ZXJ5QnV0dG9uSWNvbiA9ICdtYWduaWZ5aW5nR2xhc3MnIHwgJ3NlbmQnIHwgJ21hZ25pZnlpbmdHbGFzc1RoaW4nIHwgJ3NlbmRBcnJvdycgfCAnc2VhcmNoSWNvbic7XG5pbnRlcmZhY2UgVXNlclF1ZXJ5QnV0dG9uQ29uZmlnIHtcbiAgICB2YXJpYW50PzogJ2JveCcgfCAndW5kZXJsaW5lTGlnaHQnIHwgJ3VuZGVybGluZURhcmsnO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IHN0cmluZztcbiAgICBpY29uOiBVc2VyUXVlcnlCdXR0b25JY29uO1xufVxuaW50ZXJmYWNlIFRlcm1zQW5kQ29uZGl0aW9uc0NvbmZpZyB7XG4gICAgY29weTogc3RyaW5nO1xuICAgIGxpbms6IHN0cmluZztcbiAgICBsaW5rVGV4dDogc3RyaW5nO1xufVxuaW50ZXJmYWNlIE1lcmNoYW50VmFyaWFudFNldHRpbmdzIHtcbiAgICBkeW5hbWljVmFyaWFudHM6IHtcbiAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgcmVmcmVzaEludGVydmFsPzogbnVtYmVyO1xuICAgIH07XG59XG5pbnRlcmZhY2UgRmxvYXRpbmdDaGF0Q29uZmlnIHtcbiAgICBlbmFibGVXYXRlcm1hcms6IGJvb2xlYW47XG4gICAgdXNlclF1ZXJ5SW5wdXRFbmFibGVkOiBib29sZWFuO1xuICAgIGlnbm9yZUZpcnN0TW9kZWxSZXNwb25zZT86IGJvb2xlYW47XG4gICAgbmV2ZXJTaG93U2luZ2xlUHJvZHVjdENhcmRzPzogYm9vbGVhbjtcbiAgICB0ZXJtc0FuZENvbmRpdGlvbnNDb25maWc/OiBUZXJtc0FuZENvbmRpdGlvbnNDb25maWc7XG4gICAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZz86IFN1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gICAgcmVwbHlJbnB1dENvbmZpZzogUmVwbHlJbnB1dENvbmZpZztcbn1cbmludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICAgIGVuYWJsZUdsb2JhbFNlYXJjaDogYm9vbGVhbjtcbiAgICBzZWFyY2hGaWx0ZXJDb25maWc6IEZpbHRlckF0dHJpYnV0ZVtdO1xuICAgIHNlYXJjaE92ZXJsYXlIZWFkaW5nPzogc3RyaW5nO1xuICAgIHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybD86IHN0cmluZztcbiAgICBhZGRpdGl2ZUR5bmFtaWNGaWx0ZXJzPzogYm9vbGVhbjtcbiAgICByZWNvbW1lbmRlZFByb2R1Y3RzPzogc3RyaW5nW107XG4gICAgcmVjb21tZW5kZWRQcm9kdWN0c0hlYWRpbmc/OiBzdHJpbmc7XG59XG50eXBlIE9yZ1VJQ29uZmlnID0ge1xuICAgIHNob3J0TmFtZTogc3RyaW5nO1xuICAgIGlkPzogc3RyaW5nO1xuICAgIGZsb2F0aW5nRW50cnlwb2ludENvbmZpZz86IEZsb2F0aW5nRW50cnlQb2ludENvbmZpZztcbiAgICBjaGF0UHJldmlld0NvbmZpZz86IENoYXRQcmV2aWV3Q29uZmlnO1xuICAgIGN1c3RvbWVyU2VydmljZUludGVncmF0aW9uOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjtcbiAgICBjb252ZXJzYXRpb25hbFNlYXJjaD86IENvbnZlcnNhdGlvbmFsU2VhY2g7XG4gICAgbWVyY2hhbnRPdmVycmlkZUNzcz86IHN0cmluZztcbiAgICBoaWRkZW5FbGVtZW50U2VsZWN0b3JzPzogc3RyaW5nW107XG4gICAgbWVyY2hhbnRWYXJpYW50U2V0dGluZ3M/OiBNZXJjaGFudFZhcmlhbnRTZXR0aW5ncztcbiAgICBmbG9hdGluZ0NoYXRDb25maWc6IEZsb2F0aW5nQ2hhdENvbmZpZztcbiAgICBzZWFyY2hDb25maWc6IFNlYXJjaENvbmZpZztcbiAgICBjaGF0SGVhZGVyOiBDaGF0SGVhZGVyQ29uZmlnO1xuICAgIHN0aWNreUFnZW50U3dpdGNoU3VnZ2VzdGlvbj86IGJvb2xlYW47XG4gICAgcGFydGlhbFZpZXdDb25maWc6IFBhcnRpYWxWaWV3Q29uZmlnO1xuICAgIHdlbGNvbWVTZWN0aW9uQ29uZmlnPzogV2VsY29tZVNlY3Rpb25Db25maWc7XG4gICAgcHJvZHVjdENhcmRDb25maWc/OiBQcm9kdWN0Q2FyZENvbmZpZztcbiAgICBwcm9kdWN0UmV2aWV3Q29uZmlnPzogUHJvZHVjdFJldmlld0NvbmZpZztcbiAgICBwYWdlQ2FyZENvbmZpZz86IFBhZ2VDYXJkQ29uZmlnO1xuICAgIGNoYXRNZXNzYWdlQ29uZmlnOiBDaGF0TWVzc2FnZUNvbmZpZztcbn07XG50eXBlIEluc2VydGlvblBvaW50ID0ge1xuICAgIHNlbGVjdG9yOiBzdHJpbmc7XG4gICAgc2VsZWN0aW9uSW5kZXg/OiBudW1iZXI7XG4gICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZTtcbn07XG50eXBlIFVSTFRlc3QgPSAnc2hvcGlmeScgfCAnbnVsbCc7XG50eXBlIElkRXh0cmFjdG9yID0gJ3Nob3BpZnktcHJvZHVjdC1pZCcgfCAnc2hvcGlmeS1jb2xsZWN0aW9uLWlkJyB8ICdzaG9waWZ5LXByb2R1Y3QtdmFyaWFudC1pZCcgfCAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnIHwgJ3VybC1yZXNvbHZlci1wbHAtaWQnIHwgJ251bGwnO1xuZGVjbGFyZSBlbnVtIENhdGVnb3J5RXh0cmFjdG9yVHlwZSB7XG4gICAgVmlzaXRDYXRlZ29yeU1hcCA9IFwiVmlzaXRDYXRlZ29yeU1hcFwiLFxuICAgIFZpc2l0Q2F0ZWdvcnlEZWZhdWx0ID0gXCJWaXNpdENhdGVnb3J5RGVmYXVsdFwiXG59XG5pbnRlcmZhY2UgQmFzZUNhdGVnb3J5RXh0cmFjdG9yPFQgZXh0ZW5kcyBDYXRlZ29yeUV4dHJhY3RvclR5cGU+IHtcbiAgICB0eXBlOiBUO1xufVxuaW50ZXJmYWNlIFZpc2l0Q2F0ZWdvcnlNYXAgZXh0ZW5kcyBCYXNlQ2F0ZWdvcnlFeHRyYWN0b3I8Q2F0ZWdvcnlFeHRyYWN0b3JUeXBlLlZpc2l0Q2F0ZWdvcnlNYXA+IHtcbiAgICBtYXA6IHtcbiAgICAgICAgW2tleSBpbiBQYWdlVmlzaXRDYXRlZ29yeV0/OiBzdHJpbmdbXTtcbiAgICB9O1xufVxuaW50ZXJmYWNlIFZpc2l0Q2F0ZWdvcnlEZWZhdWx0IGV4dGVuZHMgQmFzZUNhdGVnb3J5RXh0cmFjdG9yPENhdGVnb3J5RXh0cmFjdG9yVHlwZS5WaXNpdENhdGVnb3J5RGVmYXVsdD4ge1xuICAgIHZhbHVlOiBQYWdlVmlzaXRDYXRlZ29yeTtcbn1cbnR5cGUgQ2F0ZWdvcnlFeHRyYWN0b3IgPSBWaXNpdENhdGVnb3J5TWFwIHwgVmlzaXRDYXRlZ29yeURlZmF1bHQ7XG50eXBlIFdyYXBwaW5nRWxlbWVudCA9IHtcbiAgICBjbGFzc05hbWU6IHN0cmluZztcbiAgICBlbGVtZW50OiBzdHJpbmc7XG4gICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZTtcbn07XG5kZWNsYXJlIGVudW0gUGFnZVZhcmlhbnRUZXN0VHlwZSB7XG4gICAgU2hvcGlmeVBMUCA9IFwiU2hvcGlmeVBMUFwiLFxuICAgIFNob3BpZnlQRFAgPSBcIlNob3BpZnlQRFBcIixcbiAgICBQYWdlQ2F0ZWdvcnkgPSBcIlBhZ2VDYXRlZ29yeVwiLFxuICAgIENhdGFsb2dDYXRlZ29yeSA9IFwiQ2F0YWxvZ0NhdGVnb3J5XCIsXG4gICAgVG9wQ2F0YWxvZ0NhdGVnb3J5ID0gXCJUb3BDYXRhbG9nQ2F0ZWdvcnlcIixcbiAgICBIYXNSZXZpZXdzID0gXCJIYXNSZXZpZXdzXCIsXG4gICAgSW5Db2xsZWN0aW9uID0gXCJJbkNvbGxlY3Rpb25cIixcbiAgICBIYXNNZXJjaGFudFRhZyA9IFwiSGFzTWVyY2hhbnRUYWdcIixcbiAgICBGZWF0dXJlR2F0ZSA9IFwiRmVhdHVyZUdhdGVcIixcbiAgICBQbHBJZCA9IFwiUGxwSWRcIixcbiAgICBRdWVyeVBhcmFtID0gXCJRdWVyeVBhcmFtXCIsXG4gICAgUHJvZHVjdElkID0gXCJQcm9kdWN0SWRcIixcbiAgICBVc2VySGFzSW50ZXJhY3RlZCA9IFwiVXNlckhhc0ludGVyYWN0ZWRcIixcbiAgICBVc2VySGFzTm90SW50ZXJhY3RlZCA9IFwiVXNlckhhc05vdEludGVyYWN0ZWRcIixcbiAgICBpc0xvYWRpbmcgPSBcImlzTG9hZGluZ1wiLFxuICAgIGlzUHJvZHVjdENvbXBhcmlzb24gPSBcImlzUHJvZHVjdENvbXBhcmlzb25cIixcbiAgICBGYWxsYmFjayA9IFwiRmFsbGJhY2tcIixcbiAgICBVcmxSZXNvbHZlciA9IFwiVXJsUmVzb2x2ZXJcIixcbiAgICBOdWxsID0gXCJudWxsXCJcbn1cbmludGVyZmFjZSBCYXNlUGFnZVZhcmlhbnRUZXN0PFQgZXh0ZW5kcyBQYWdlVmFyaWFudFRlc3RUeXBlPiB7XG4gICAgdGVzdFR5cGU6IFQ7XG59XG5pbnRlcmZhY2UgVG9wQ2F0YWxvZ0NhdGVnb3J5IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlRvcENhdGFsb2dDYXRlZ29yeT4ge1xuICAgIHRvcENhdGVnb3J5OiBzdHJpbmdbXTtcbn1cbmludGVyZmFjZSBDYXRhbG9nQ2F0ZWdvcnlUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLkNhdGFsb2dDYXRlZ29yeT4ge1xuICAgIGNhdGVnb3J5OiBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeTtcbn1cbmludGVyZmFjZSBIYXNSZXZpZXdzVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5IYXNSZXZpZXdzPiB7XG4gICAgcmV2aWV3TWluaW11bT86IG51bWJlcjtcbn1cbmludGVyZmFjZSBJbkNvbGxlY3Rpb25UZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbj4ge1xuICAgIGNvbGxlY3Rpb25zOiBzdHJpbmdbXTtcbn1cbmludGVyZmFjZSBIYXNNZXJjaGFudFRhZ1Rlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuSGFzTWVyY2hhbnRUYWc+IHtcbiAgICBtZXJjaGFudFRhZ3M6IHN0cmluZ1tdO1xufVxuaW50ZXJmYWNlIFNob3BpZnlQTFBVUkxUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQTFA+IHtcbn1cbmludGVyZmFjZSBTaG9waWZ5UERQVVJMVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UERQPiB7XG59XG5pbnRlcmZhY2UgUGFnZUNhdGVnb3J5VGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5QYWdlQ2F0ZWdvcnk+IHtcbiAgICBleHRyYWN0b3I6IENhdGVnb3J5RXh0cmFjdG9yO1xufVxuaW50ZXJmYWNlIEZlYXR1cmVHYXRlVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZT4ge1xuICAgIGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXM7XG59XG5pbnRlcmZhY2UgUHJvZHVjdElkVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5Qcm9kdWN0SWQ+IHtcbiAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IElkRXh0cmFjdG9yO1xuICAgIHByb2R1Y3RJZHM6IHN0cmluZ1tdO1xufVxuaW50ZXJmYWNlIFBscElkVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5QbHBJZD4ge1xuICAgIHBscElkRXh0cmFjdG9yOiBJZEV4dHJhY3RvcjtcbiAgICBwbHBJZHM6IHN0cmluZ1tdO1xufVxuaW50ZXJmYWNlIFF1ZXJ5UGFyYW1UZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlF1ZXJ5UGFyYW0+IHtcbiAgICBxdWVyeVBhcmFtOiBzdHJpbmc7XG59XG5pbnRlcmZhY2UgVXNlckhhc0ludGVyYWN0ZWRUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlVzZXJIYXNJbnRlcmFjdGVkPiB7XG59XG5pbnRlcmZhY2UgVXNlckhhc05vdEludGVyYWN0ZWRUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlVzZXJIYXNOb3RJbnRlcmFjdGVkPiB7XG59XG5pbnRlcmZhY2UgSXNMb2FkaW5nVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5pc0xvYWRpbmc+IHtcbn1cbmludGVyZmFjZSBJc1Byb2R1Y3RDb21wYXJpc29uIGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLmlzUHJvZHVjdENvbXBhcmlzb24+IHtcbn1cbmludGVyZmFjZSBQYWdlRmFsbGJhY2tUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLkZhbGxiYWNrPiB7XG59XG5pbnRlcmZhY2UgVXJsUmVzb2x2ZXJUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyPiB7XG59XG5leHBvcnQgdHlwZSBQYWdlVmFyaWFudFRlc3QgPSBQYWdlQ2F0ZWdvcnlUZXN0IHwgU2hvcGlmeVBMUFVSTFRlc3QgfCBTaG9waWZ5UERQVVJMVGVzdCB8IENhdGFsb2dDYXRlZ29yeVRlc3QgfCBUb3BDYXRhbG9nQ2F0ZWdvcnkgfCBIYXNSZXZpZXdzVGVzdCB8IEluQ29sbGVjdGlvblRlc3QgfCBIYXNNZXJjaGFudFRhZ1Rlc3QgfCBGZWF0dXJlR2F0ZVRlc3QgfCBQcm9kdWN0SWRUZXN0IHwgUGxwSWRUZXN0IHwgUXVlcnlQYXJhbVRlc3QgfCBVc2VySGFzSW50ZXJhY3RlZFRlc3QgfCBVc2VySGFzTm90SW50ZXJhY3RlZFRlc3QgfCBJc0xvYWRpbmdUZXN0IHwgSXNQcm9kdWN0Q29tcGFyaXNvbiB8IFBhZ2VGYWxsYmFja1Rlc3QgfCBVcmxSZXNvbHZlclRlc3Q7XG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzb2NpYWwgcHJvb2YgZW1iZWRkZWQgd2lkZ2V0XG4gKlxuICogQHBhcmFtIGhlYWRlclRpdGxlIC0gVGhlIHRpdGxlIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgd2lkZ2V0IGhlYWRlclxuICogQHBhcmFtIHN0YXRpY1N1Z2dlc3Rpb25zIC0gQSBsaXN0IG9mIHN0cmluZ3MgdG8gZGlzcGxheSBhcyBzdWdnZXN0aW9ucyBpbiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0gc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0IC0gVGhlIHZhcmlhbnQgb2YgdGhlIHN1Z2dlc3Rpb24gYnV0dG9uIHRvIGRpc3BsYXkgaW4gdGhlIHdpZGdldCBmb290ZXJcbiAqIEBwYXJhbSBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudEFjY2VudCAtIFRoZSB2YXJpYW50IG9mIHRoZSBzdWdnZXN0aW9uIGJ1dHRvbiB0byBkaXNwbGF5IGluIHRoZSB3aWRnZXQgYm9keVxuICogQHBhcmFtIHN0YXRpY0ltYWdlSW5kZXggLSBJbmRleCBvZiB0aGUgaW1hZ2VVcmwgdG8gdXNlIGZyb20gdGhlIHByb2R1Y3QgcmVzcG9uc2VcbiAqL1xuaW50ZXJmYWNlIFNvY2lhbFByb29mQ29uZmlnIHtcbiAgICBjdXN0b21lclF1ZXJ5OiBzdHJpbmc7XG4gICAgaGVhZGVyVGl0bGU6IHN0cmluZztcbiAgICBzdGF0aWNQTFBJbWFnZXNMYXlvdXQ/OiAnZ3JpZCcgfCAnaG9yaXpvbnRhbCc7XG4gICAgaGVhZGVyRm9udEZhbWlseT86IHN0cmluZztcbiAgICBzdGF0aWNQTFBJbWFnZU5hbWVzPzogc3RyaW5nW107XG4gICAgc3RhdGljSW1hZ2VJbmRleD86IG51bWJlcjtcbiAgICBzdWdnZXN0aW9uQnV0dG9uU3RyaW5nczogc3RyaW5nW107XG4gICAgc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudEFjY2VudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIHN1Z2dlc3Rpb25CdXR0b25EYXRhQXR0cmlidXRlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnPzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICAgIGxvZ29OYW1lPzogc3RyaW5nO1xufVxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyB0aGUgbW91bnQgcG9pbnQgZm9yIGEgd2lkZ2V0XG4gKlxuICogQHBhcmFtIGNsYXNzTmFtZSAtIE9wdGlvbmFsIGNsYXNzIG5hbWUgdG8gYXBwbHkgdG8gdGhlIG1vdW50IHBvaW50LiBUYWlsd2luZCBjbGFzc2VzIGFyZSBzdXBwb3J0ZWRcbiAqIGFuZCBlbmNvdXJhZ2VkLiBVc2UgdGhpcyBwYXJhbWV0ZXIgdG8gc3R5bGUgdGhlIG1vdW50aW5nIGNvbnRhaW5lciBmb3IgdGhlIHdpZGdldC5cbiAqL1xuZXhwb3J0IHR5cGUgV2lkZ2V0TW91bnRpbmdDb25maWcgPSB7XG4gICAgbW91bnRpbmdDb25maWdJZDogc3RyaW5nO1xuICAgIGNvbnRhaW5lcklkOiBzdHJpbmc7XG4gICAgdGVzdElkOiBzdHJpbmc7XG4gICAgcGFyZW50SW5zZXJ0aW9uUG9pbnQ/OiBJbnNlcnRpb25Qb2ludDtcbiAgICBpbnNlcnRpb25Qb2ludDogSW5zZXJ0aW9uUG9pbnQ7XG4gICAgZ3JpZEluc2VydGlvblR5cGU/OiBHcmlkSW5zZXJ0aW9uVHlwZTtcbiAgICB3cmFwcGluZ0VsZW1lbnQ/OiBXcmFwcGluZ0VsZW1lbnQ7XG4gICAgZGl2Q2hlY2tTZWxlY3Rvcj86IHN0cmluZztcbiAgICBzdXBwcmVzc2lvblNlbGVjdG9yPzogc3RyaW5nO1xuICAgIHN0eWxlPzogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcbiAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgZGF0YUF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufTtcbnR5cGUgU3RhdGljV2lkZ2V0TW91bnRpbmcgPSB7XG4gICAgbW91bnRpbmdDb25maWdJZDogc3RyaW5nO1xuICAgIHdpZGdldENvbmZpZ0lkOiBzdHJpbmc7XG59O1xudHlwZSBEeW5hbWljV2lkZ2V0TW91bnRpbmcgPSB7XG4gICAgbW91bnRpbmdDb25maWdJZDogc3RyaW5nO1xuICAgIG1vdW50aW5nUG9pbnRXaWRnZXRzOiBXaWRnZXREaXNwbGF5VGVzdHNbXTtcbn07XG50eXBlIFdpZGdldERpc3BsYXlUZXN0cyA9IHtcbiAgICB0ZXN0czogUGFnZVZhcmlhbnRUZXN0W107XG4gICAgd2lkZ2V0Q29uZmlnSWQ6IHN0cmluZztcbn07XG50eXBlIFdpZGdldE1vdW50aW5nID0gU3RhdGljV2lkZ2V0TW91bnRpbmcgfCBEeW5hbWljV2lkZ2V0TW91bnRpbmc7XG5kZWNsYXJlIGVudW0gV2lkZ2V0VHlwZSB7XG4gICAgQ2hhdFByZXZpZXcgPSBcIkNoYXRQcmV2aWV3XCIsXG4gICAgU29jaWFsUHJvb2ZWMiA9IFwiU29jaWFsUHJvb2ZWMlwiLFxuICAgIENoYXRQcmV2aWV3VjIgPSBcIkNoYXRQcmV2aWV3VjJcIixcbiAgICBDaGF0UHJldmlld0lzTG9hZGluZyA9IFwiQ2hhdFByZXZpZXdJc0xvYWRpbmdcIixcbiAgICBDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbiA9IFwiQ2hhdFByZXZpZXdQb3N0SW50ZXJhY3Rpb25cIixcbiAgICBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uID0gXCJDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uXCIsXG4gICAgU3VnZ2VzdGlvbkJhciA9IFwiU3VnZ2VzdGlvbkJhclwiLFxuICAgIFN1Z2dlc3Rpb25CYXJWMiA9IFwiU3VnZ2VzdGlvbkJhclYyXCIsXG4gICAgSW1hZ2VQcm9tcHRDYXJkID0gXCJJbWFnZVByb21wdENhcmRcIixcbiAgICBJbWFnZUJhbm5lciA9IFwiSW1hZ2VCYW5uZXJcIixcbiAgICBTaW5nbGVJbWFnZVByb21wdCA9IFwiU2luZ2xlSW1hZ2VQcm9tcHRcIixcbiAgICBTZWFyY2hQcm9tcHQgPSBcIlNlYXJjaFByb21wdFwiLFxuICAgIFNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQgPSBcIlNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnRcIixcbiAgICBTZWFyY2hSZXN1bHRzRW50cnlQb2ludCA9IFwiU2VhcmNoUmVzdWx0c0VudHJ5UG9pbnRcIixcbiAgICBTZWFyY2hPdmVybGF5SG9zdCA9IFwiU2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICBOb09wID0gXCJOb09wXCJcbn1cbnR5cGUgV2lkZ2V0Q29uZmlnID0gQ2hhdFByZXZpZXdXaWRnZXRDb25maWcgfCBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnIHwgQ2hhdFByZXZpZXdWMldpZGdldENvbmZpZyB8IENoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uV2lkZ2V0Q29uZmlnIHwgQ2hhdFByZXZpZXdJc0xvYWRpbmdXaWRnZXRDb25maWcgfCBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uV2lkZ2V0Q29uZmlnIHwgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnIHwgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWcgfCBJbWFnZUJhbm5lcldpZGdldENvbmZpZyB8IFNpbmdsZUltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnIHwgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnIHwgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZyB8IFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50V2lkZ2V0Q29uZmlnIHwgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWcgfCBOb09wV2lkZ2V0Q29uZmlnO1xuaW50ZXJmYWNlIEJhc2VXaWRnZXRDb25maWc8VCBleHRlbmRzIFdpZGdldFR5cGU+IHtcbiAgICB3aWRnZXRDb25maWdJZDogc3RyaW5nO1xuICAgIHR5cGU6IFQ7XG4gICAgY29udGVudElkPzogc3RyaW5nO1xufVxuaW50ZXJmYWNlIEltYWdlQmFubmVyV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkltYWdlQmFubmVyPiB7XG4gICAgaW1hZ2VTcmM6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHN1YnRpdGxlOiBzdHJpbmc7XG4gICAgYXNzaXN0YW50TWVzc2FnZTogc3RyaW5nO1xufVxuaW50ZXJmYWNlIENoYXRQcmV2aWV3V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkNoYXRQcmV2aWV3PiB7XG4gICAgdmFyaWFudDogJ2ZpbGxlZCcgfCAnZmxhdCcgfCAnb3V0bGluZWQnO1xuICAgIGFkZFNlcGFyYXRvcnM/OiBib29sZWFuO1xuICAgIHNvY2lhbFByb29mQ29uZmlnPzogU29jaWFsUHJvb2ZDb25maWc7XG4gICAgZm9vdGVyQ29uZmlnPzogQ2hhdFByZXZpZXdGb290ZXJDb25maWc7XG59XG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdIZWFkZXJWMkNvbmZpZyB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gICAgaW1hZ2VIZWlnaHQ/OiBudW1iZXI7XG59XG50eXBlIFNpbmdsZUltYWdlQ29uZmlnID0ge1xuICAgIGxheW91dDogJ3NpbmdsZSc7XG4gICAgaW1hZ2VJbmRleDogbnVtYmVyO1xufTtcbnR5cGUgTXVsdGlJbWFnZUNvbmZpZyA9IHtcbiAgICBsYXlvdXQ6ICdncmlkJyB8ICdob3Jpem9udGFsJztcbiAgICBpbWFnZU5hbWVzOiBzdHJpbmdbXTtcbn07XG50eXBlIFNvY2lhbFByb29mSW1hZ2VDb25maWcgPSBTaW5nbGVJbWFnZUNvbmZpZyB8IE11bHRpSW1hZ2VDb25maWc7XG50eXBlIENoYXRQcmV2aWV3U3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZyA9IHtcbiAgICBidXR0b25TdHJpbmdzOiBzdHJpbmdbXTtcbiAgICBhY2NlbnRCdXR0b25WYXJpYW50cz86IHtcbiAgICAgICAgYnV0dG9uOiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICAgICAgaG92ZXI6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIH07XG4gICAgYnV0dG9uVmFyaWFudHM6IHtcbiAgICAgICAgYnV0dG9uOiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICAgICAgaG92ZXI6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIH07XG4gICAgbnVtUm93cz86IE51bVJvd3M7XG59O1xudHlwZSBDaGF0UHJldmlld0FuaW1hdGVkVGV4dENvbmZpZyA9IHtcbiAgICBsZWFkaW5nVGV4dDogc3RyaW5nO1xuICAgIGFuaW1hdGVkU3RyaW5nczogc3RyaW5nW107XG59O1xudHlwZSBDaGF0UHJldmlld1ZhcmlhbnQgPSB7XG4gICAgdmFyaWFudDogJ2ZsYXQnO1xufSB8IHtcbiAgICB2YXJpYW50OiAnZmlsbGVkJztcbiAgICBiYWNrZ3JvdW5kRmlsbENvbG9yOiBzdHJpbmc7XG59IHwge1xuICAgIHZhcmlhbnQ6ICdvdXRsaW5lZCc7XG59O1xuaW50ZXJmYWNlIEJhc2VDaGF0UHJldmlld0NvbmZpZyB7XG4gICAgaGVhZGVyQ29uZmlnOiBDaGF0UHJldmlld0hlYWRlclYyQ29uZmlnO1xuICAgIHN1Z2dlc3Rpb25CdXR0b25zQ29uZmlnOiBDaGF0UHJldmlld1N1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gICAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnOiBVc2VyUXVlcnlCdXR0b25Db25maWc7XG4gICAgY2hhdFByZXZpZXdWYXJpYW50OiBDaGF0UHJldmlld1ZhcmlhbnQ7XG4gICAgYWRkU2VwYXJhdG9ycz86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdQb3N0SW50ZXJhY3Rpb25XaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXdQb3N0SW50ZXJhY3Rpb24+LCBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICAgIGNoYXRQcmV2aWV3VmFyaWFudDogQ2hhdFByZXZpZXdWYXJpYW50O1xuICAgIGFkZFNlcGFyYXRvcnM/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIENoYXRQcmV2aWV3SXNMb2FkaW5nV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkNoYXRQcmV2aWV3SXNMb2FkaW5nPiwgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbn1cbmludGVyZmFjZSBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkNoYXRQcmV2aWV3UHJvZHVjdENvbXBhcmlzb24+LCBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICAgIHVzZUxhcmdlUHJvZHVjdENvbXBhcmlzb24/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIENoYXRQcmV2aWV3VjJXaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXdWMj4sIEJhc2VDaGF0UHJldmlld0NvbmZpZyB7XG4gICAgYW5pbWF0ZWRUZXh0Q29uZmlnOiBDaGF0UHJldmlld0FuaW1hdGVkVGV4dENvbmZpZztcbn1cbmludGVyZmFjZSBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNvY2lhbFByb29mVjI+LCBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICAgIGN1c3RvbWVyUXVlcnk/OiBzdHJpbmc7XG4gICAgaW1hZ2VDb25maWc6IFNvY2lhbFByb29mSW1hZ2VDb25maWc7XG59XG5pbnRlcmZhY2UgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMj4ge1xuICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb247XG4gICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3M7XG4gICAgdmFyaWFudDogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBzdHJpbmdbXTtcbiAgICAgICAgcHJvZHVjdFNwZWNpZmljPzoge1xuICAgICAgICAgICAgW3Byb2R1Y3RJZDogc3RyaW5nXTogc3RyaW5nW107XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBib2xkRmlyc3RCdXR0b24/OiBib29sZWFuO1xuICAgIHR3b1Jvd3NPbk1vYmlsZT86IGJvb2xlYW47XG4gICAgYW5pbWF0aW9uU3BlZWQ/OiAnc3RhbmRhcmQnIHwgJ3Nsb3cnIHwgJ25vbmUnO1xuICAgIGJ1dHRvbkJvcmRlclJhZGl1cz86ICdzbScgfCAnbWQnIHwgJ2xnJztcbn1cbmludGVyZmFjZSBJbWFnZVByb21wdFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5JbWFnZVByb21wdENhcmQ+IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBsaWdodFRleHQ/OiBib29sZWFuO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgc3VidGl0bGU6IHN0cmluZ1tdO1xuICAgIHN0YXRpY1N1Z2dlc3Rpb25Db3BpZXM6IHN0cmluZ1tdO1xuICAgIHVzZXJRdWVyeUJ1dHRvbkNvbmZpZzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICAgIGZhbGxiYWNrQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xufVxuaW50ZXJmYWNlIFNpbmdsZUltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNpbmdsZUltYWdlUHJvbXB0PiB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBzdGF0aWNTdWdnZXN0aW9uQ29waWVzOiBzdHJpbmdbXTtcbiAgICB1c2VyUXVlcnlCdXR0b25Db25maWc6IFVzZXJRdWVyeUJ1dHRvbkNvbmZpZztcbn1cbmludGVyZmFjZSBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQ+IHtcbiAgICBzZWFyY2haZXJvU3RhdGVWYXJpYW50OiBTZWFyY2haZXJvU3RhdGVWYXJpYW50O1xuICAgIHNlYXJjaElucHV0VmFyaWFudDogU2VhcmNoSW5wdXRWYXJpYW50O1xuICAgIHNlYXJjaEljb25WYXJpYW50PzogU2VhcmNoSWNvblZhcmlhbnQ7XG4gICAgc2VhcmNoSWNvblNpemU/OiBudW1iZXI7XG4gICAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZzogU3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZztcbiAgICBsYXlvdXQ6IFNlYXJjaFplcm9TdGF0ZUxheW91dDtcbiAgICBzZWFyY2hCb3hQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIGFuaW1hdGlvblNwZWVkPzogJ3N0YW5kYXJkJyB8ICdzbG93JyB8ICdub25lJztcbiAgICBjb21wYWN0TGFiZWw/OiBzdHJpbmc7XG4gICAgaW5pdGlhbFN1Z2dlc3Rpb25zPzogc3RyaW5nW107XG4gICAgdXNpbmdQb3J0YWw/OiBib29sZWFuO1xuICAgIGluY2x1ZGVTdWJ0aXRsZT86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgTm9PcFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5Ob09wPiB7XG59XG5pbnRlcmZhY2UgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU2VhcmNoT3ZlcmxheUhvc3Q+IHtcbn1cbmludGVyZmFjZSBTZWFyY2hSZXN1bHRzRW50cnlQb2ludFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TZWFyY2hSZXN1bHRzRW50cnlQb2ludD4ge1xuICAgIHNlYXJjaElucHV0VmFyaWFudDogU2VhcmNoSW5wdXRWYXJpYW50O1xuICAgIHNlYXJjaEZpbHRlclNpZGViYXJWYXJpYW50OiBTZWFyY2hGaWx0ZXJTaWRlYmFyVmFyaWFudDtcbiAgICBwcm9kdWN0R3JpZFZhcmlhbnQ6IFByb2R1Y3RHcmlkVmFyaWFudDtcbiAgICBzZWFyY2hCb3hQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIG5vUmVzdWx0c0ZvdW5kVGV4dD86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0SGVhZGVyUHJvcHMgZXh0ZW5kcyBUZXN0UHJvcHMge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGxvZ28/OiBzdHJpbmc7XG4gICAgbG9nb0hlaWdodD86IG51bWJlcjtcbiAgICBvcmdTaG9ydE5hbWU6IHN0cmluZztcbiAgICB2YXJpYW50PzogU2VhcmNoUHJvbXB0VmFyaWFudDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclF1ZXJ5T3B0aW9ucyB7XG4gICAgZm9vdGVyVmFyaWFudD86ICdzdGFuZGFyZCc7XG4gICAgcmVwbHlCdXR0b25UZXh0Pzogc3RyaW5nO1xuICAgIHJlcGx5QnV0dG9uSWNvbj86ICdtYWduaWZ5aW5nR2xhc3MnIHwgJ3NlbmQnIHwgJ3RoaW5NYWduaWZ5aW5nR2xhc3MnIHwgJ2FpLXNlYXJjaCc7XG59XG50eXBlIFNlYXJjaFByb21wdFZhcmlhbnQgPSAncHJpbWFyeSc7XG5pbnRlcmZhY2UgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNlYXJjaFByb21wdD4ge1xuICAgIHZhcmlhbnQ6IFNlYXJjaFByb21wdFZhcmlhbnQ7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBoZWFkZXJDb25maWc6IFdpZGdldEhlYWRlclByb3BzO1xuICAgIHN1Z2dlc3Rpb25CdXR0b25zOiB7XG4gICAgICAgIHZhcmlhbnQ6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgICAgICBob3ZlclZhcmlhbnQ6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgICAgICBidXR0b25UZXh0czogc3RyaW5nW107XG4gICAgfTtcbiAgICBmb290ZXJDb25maWc/OiBVc2VyUXVlcnlPcHRpb25zO1xufVxudHlwZSBQYWdlVmFyaWFudEJhc2UgPSB7XG4gICAgdmFyaWFudElkOiBzdHJpbmc7XG4gICAgd2lkZ2V0TW91bnRpbmc6IFdpZGdldE1vdW50aW5nW107XG4gICAgdmFyaWFudFRlc3RzOiBQYWdlVmFyaWFudFRlc3RbXTtcbn07XG50eXBlIFBMUFBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICAgIHZhcmlhbnRUeXBlOiAncGxwJztcbiAgICBwbHBJZEV4dHJhY3RvcjogSWRFeHRyYWN0b3I7XG59O1xudHlwZSBQRFBQYWdlVmFyaWFudCA9IFBhZ2VWYXJpYW50QmFzZSAmIHtcbiAgICB2YXJpYW50VHlwZTogJ3BkcCc7XG4gICAgcGFyZW50UHJvZHVjdElkRXh0cmFjdG9yPzogSWRFeHRyYWN0b3I7XG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiBJZEV4dHJhY3Rvcjtcbn07XG50eXBlIFZpc2l0UGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gICAgdmFyaWFudFR5cGU6ICdwYWdlX3Zpc2l0Jztcbn07XG50eXBlIE90aGVyUGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gICAgdmFyaWFudFR5cGU6ICdvdGhlcic7XG59O1xudHlwZSBIb21lUGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gICAgdmFyaWFudFR5cGU6ICdob21lcGFnZSc7XG59O1xudHlwZSBTZWFyY2hQYWdlVmFyaWFudCA9IFBhZ2VWYXJpYW50QmFzZSAmIHtcbiAgICB2YXJpYW50VHlwZTogJ3NlYXJjaCc7XG59O1xuZXhwb3J0IHR5cGUgUGFnZVZhcmlhbnRDb25maWcgPSBQTFBQYWdlVmFyaWFudCB8IFBEUFBhZ2VWYXJpYW50IHwgVmlzaXRQYWdlVmFyaWFudCB8IE90aGVyUGFnZVZhcmlhbnQgfCBIb21lUGFnZVZhcmlhbnQgfCBTZWFyY2hQYWdlVmFyaWFudDtcbmV4cG9ydCB0eXBlIE9yZ1BhZ2VDb25maWcgPSB7XG4gICAgcGFnZVZhcmlhbnRzOiBQYWdlVmFyaWFudENvbmZpZ1tdO1xuICAgIHdpZGdldENvbmZpZ3M6IFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZz47XG4gICAgbW91bnRpbmdDb25maWdzOiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz47XG59O1xuZXhwb3J0IHR5cGUgT3JnQ29uZmlnID0gT3JnVUlDb25maWc7XG5leHBvcnQgeyBDYXRlZ29yeUV4dHJhY3RvclR5cGUsIENvbG9yTmFtZXMsIGNvbG9yVmFyLCBQYWdlVmFyaWFudFRlc3RUeXBlLCBXaWRnZXRUeXBlIH07XG5leHBvcnQgaW50ZXJmYWNlIEVudml2ZUNvbmZpZyB7XG4gICAgYW1wbGl0dWRlQXBpS2V5Pzogc3RyaW5nO1xuICAgIGRhdGFSZXNpZGVuY3k/OiBzdHJpbmc7XG4gICAgZW52Pzogc3RyaW5nO1xuICAgIGJhc2VVcmw/OiBzdHJpbmc7XG4gICAgcmVhY3RBcHBOYW1lPzogc3RyaW5nO1xuICAgIGNkblVybD86IHN0cmluZztcbiAgICBjb250ZXh0U291cmNlPzogc3RyaW5nO1xuICAgIG9yZ0xldmVsQXBpS2V5Pzogc3RyaW5nO1xuICAgIG9yZ1Nob3J0TmFtZT86IHN0cmluZztcbiAgICBpZGVudGlmeWluZ1ByZWZpeD86IHN0cmluZztcbiAgICBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgdmFyaWFudFVybE92ZXJyaWRlPzogc3RyaW5nO1xuICAgIHZhcmlhbnRJbmZvT3ZlcnJpZGU/OiBhbnk7XG4gICAgc2hvdz86IGJvb2xlYW47XG4gICAgcHVibGljS2V5Pzogc3RyaW5nO1xuICAgIGZlYXR1cmVHYXRlcz86IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG59XG5leHBvcnQgdHlwZSB7IENhdGVnb3J5RXh0cmFjdG9yLCBDaGF0TWVzc2FnZVZhcmlhbnQsIENoYXRNZXNzYWdlQ29uZmlnLCBDaGF0UHJldmlld0NvbmZpZywgQ2hhdFByZXZpZXdJc0xvYWRpbmdXaWRnZXRDb25maWcsIENoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uV2lkZ2V0Q29uZmlnLCBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uV2lkZ2V0Q29uZmlnLCBDaGF0UHJldmlld1N1Z2dlc3Rpb25CdXR0b25Db25maWcsIFNvY2lhbFByb29mVjJXaWRnZXRDb25maWcsIENoYXRQcmV2aWV3SGVhZGVyVjJDb25maWcsIENoYXRQcmV2aWV3VjJXaWRnZXRDb25maWcsIENoYXRQcmV2aWV3Rm9vdGVyQ29uZmlnLCBDaGF0UHJldmlld0hlYWRlckNvbmZpZywgQ2hhdFByZXZpZXdXaWRnZXRDb25maWcsIENoYXRQcmV2aWV3VmFyaWFudCwgQ29sb3JNYXBwaW5nLCBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiwgRmxvYXRpbmdFbnRyeVBvaW50Q29uZmlnLCBGdWxsQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24sIElkRXh0cmFjdG9yLCBJbWFnZUJhbm5lcldpZGdldENvbmZpZywgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWcsIEluc2VydGlvblBvaW50LCBNdWx0aUltYWdlQ29uZmlnLCBPcmdVSUNvbmZpZywgUGFnZUNhcmRDb25maWcsIFBhZ2VDYXJkVmFyaWFudCwgUGFnZUNhcmRIb3ZlclZhcmlhbnQsIFBhZ2VDYXJkSWNvblZhcmlhbnQsIFByb2R1Y3RDYXJkQ29uZmlnLCBQcm9kdWN0Q2FyZFZhcmlhbnQsIFByb2R1Y3RDYXJkTGF5b3V0VmFyaWFudCwgUHJvZHVjdENhcmRIb3ZlclZhcmlhbnQsIFByb2R1Y3RMaW5rSG92ZXJWYXJpYW50LCBQcm9kdWN0TGlua0ljb25WYXJpYW50LCBQcm9kdWN0TGlua1ZhcmlhbnQsIFByb2R1Y3RSZXZpZXdDb25maWcsIFByb2R1Y3RSZXZpZXdTdHlsZVZhcmlhbnQsIFByb2R1Y3RSZXZpZXdDb2xvclZhcmlhbnQsIFNlYXJjaFByb21wdFZhcmlhbnQsIFNlYXJjaFByb21wdFdpZGdldENvbmZpZywgU2VhcmNoUmVzdWx0c0VudHJ5UG9pbnRXaWRnZXRDb25maWcsIFNob3dGbG9hdGluZ0J1dHRvbk9wdGlvbnMsIFNpbmdsZUltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnLCBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnLCBTZWFyY2hPdmVybGF5SG9zdFdpZGdldENvbmZpZywgU29jaWFsUHJvb2ZDb25maWcsIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZywgU3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZywgU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQsIFVSTFRlc3QsIFVzZXJRdWVyeUJ1dHRvbkNvbmZpZywgVXNlclF1ZXJ5QnV0dG9uSWNvbiwgV2VsY29tZVNlY3Rpb25Db25maWcsIFdlbGNvbWVTZWN0aW9uVmFyaWFudCwgV2VsY29tZVNlY3Rpb25Db2xvclZhcmlhbnQsIFdpZGdldENvbmZpZywgV3JhcHBpbmdFbGVtZW50LCBTZWFyY2hDYXJkVmFyaWFudCwgV2lkZ2V0RGlzcGxheVRlc3RzLCBOb09wV2lkZ2V0Q29uZmlnLCBXaWRnZXRNb3VudGluZywgU3RhdGljV2lkZ2V0TW91bnRpbmcsIER5bmFtaWNXaWRnZXRNb3VudGluZywgUERQUGFnZVZhcmlhbnQsIFBMUFBhZ2VWYXJpYW50LCBWaXNpdFBhZ2VWYXJpYW50LCBPdGhlclBhZ2VWYXJpYW50LCBIb21lUGFnZVZhcmlhbnQsIFNlYXJjaFBhZ2VWYXJpYW50LCBOdW1Sb3dzLCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBV0EsSUFBSSw0QkFBNEIsQ0FBQyxFQUFFO0FBQ25DLElBQUksMkJBQTJCLENBQUMsU0FBQSwwQkFBQTtBQUNoQyxJQUFJLHdCQUF3QixDQUFDLEVBQUU7QUFDL0IsSUFBSSw2QkFBZ0IsQ0FBQSxFQUFBO0FBQ3BCLElBQUksdUJBQWU7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNuQixJQUFJLG9CQUFlO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDbkIsSUFBSSwwQkFBQyxDQUFBLEVBQUE7QUFDTCxJQUFJLDBCQUFzQixDQUFBLEVBQUE7QUFDMUIsSUFBSSw0QkFBcUIsQ0FBQSxFQUFBO0FBQ3pCLElBQUksNEJBQWtCLENBQUEsRUFBQTtBQUN0QixJQUFJLHNCQUFzQjtDQUFDO09BQVU7T0FBSTtDQUFBO0FBQ3pDLElBQUksa0JBQWtCLENBQUMsR0FBQTtBQUN2QixJQUFJLHVCQUFpQixDQUFBLEdBQUE7QUFDckIsSUFBSSxzQkFBc0IsQ0FBQyxHQUFDO0FBQzVCLElBQUksaUJBQWlCO0NBQUM7T0FBSTtPQUFBO09BQUE7Q0FBQTtBQUMxQixJQUFJLHFCQUFlLENBQUEsR0FBQTtBQUNuQixJQUFJLDBCQUFpQixDQUFBLEdBQUE7QUFDckIsSUFBQywyQkFBQSxDQUFBLEdBQUE7QUFDRCxJQUFJLG9CQUFvQjtDQUFDO09BQVU7T0FBaUI7T0FBQTtDQUFBO0FBQ3BELElBQUksaUJBQWlCLENBQUMsR0FBRztBQUN6QixJQUFJLG1CQUFtQjtDQUFDO09BQUk7T0FBQSxNQUFBO09BQUEsTUFBQTtPQUFBO09BQUEsTUFBQTtPQUFBLE1BQUE7T0FBQTtDQUFBO0FBQzVCLElBQUksbUNBQThCO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDbEMsSUFBSSxpQ0FBaUM7Q0FBQztPQUFPO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDN0MsSUFBSSw2QkFBYztDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ2xCLElBQUksc0JBQWlCLENBQUEsVUFBQSxpQkFBQTtBQUNyQixJQUFJLHFCQUFpQixDQUFBLEdBQUE7QUFDckIsSUFBSSxvQkFBaUI7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDckIsSUFBQyxtQkFBQSxDQUFBLEdBQUE7QUFDRCxJQUFJLG9CQUFvQixDQUFDLEdBQUE7QUFDekIsSUFBSSx5QkFBeUIsQ0FBQyxHQUFHO0FBQ2pDLElBQUkscUJBQXFCLENBQUMsR0FBRztBQUM3QixJQUFJLDBCQUEwQixDQUFDLEdBQUU7QUFDakMsSUFBSSxvQkFBb0IsQ0FBQyxHQUFBO0FBQ3pCLElBQUksMEJBQXdCLENBQUEsR0FBQTtBQUM1QixJQUFJLHlCQUF5QjtDQUFDO09BQU87T0FBQTtPQUFBO0NBQUE7QUFDckMsSUFBSSxVQUFVLENBQUMsR0FBRztBQUNsQixJQUFJLDBCQUEwQixDQUFDLEdBQUU7QUFDakMsSUFBSSw0QkFBNEIsQ0FBQyxHQUFHO0FBQ3BDLElBQUksc0JBQXNCLENBQUMsVUFBRyxPQUFBO0FBQzlCLElBQUksZ0JBQWdCO0NBQUM7T0FBVTtPQUFJO09BQUE7Q0FBQTtBQUNuQyxJQUFJLG1CQUFRLENBQUEsR0FBQTtBQUNaLElBQUksc0JBQWlCO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDckIsSUFBSSxvQkFBaUIsQ0FBQSxVQUFBLGlCQUFBO0FBQ3JCLElBQUssa0JBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNMLElBQVcseUJBQWtCLENBQUEsR0FBQTtBQUM3QixJQUFXLHdCQUFVLENBQUEsR0FBQTtBQUNyQixJQUFXLHFCQUFVLENBQUEsR0FBQTtBQUNyQixJQUFLLG9CQUFBLENBQUEsR0FBQTtBQUNMLElBQVcsNkJBQW1CLENBQUEsR0FBQTtBQUM5QixJQUFXLHFCQUFxQixDQUFDLEdBQUc7QUFDcEMsSUFBSSxzQkFBc0IsQ0FBQyxHQUFHO0FBQzlCLElBQUksd0JBQWtCLENBQUEsVUFBQSxvQkFBQTtBQUN0QixJQUFDLDJCQUFBLENBQUEsR0FBQTtBQUNELElBQUksMEJBQTBCLENBQUMsR0FBQTtBQUMvQixJQUFJLHFCQUFjO0NBQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNsQixJQUFJLGVBQWUsQ0FBQyxVQUFDLGdCQUFBO0FBQ3JCLElBQUksY0FBYztDQUFDO09BQUs7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3hCLElBQUksaUJBQWlCLENBQUMsVUFBSSxpQkFBQTtBQUMxQixJQUFJLFVBQVUsQ0FBQyxHQUFHO0FBQ2xCLElBQUksY0FBYyxDQUFDLEdBQUc7QUFDdEIsSUFBSSx3QkFBbUIsQ0FBQSxHQUFBO0FBQ3ZCLElBQUMsd0JBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNELElBQUksbUJBQW1CO0NBQUM7T0FBVSxzQkFBQTtPQUFBO09BQUE7Q0FBQTtBQUNsQyxJQUFJLHVCQUFpQjtDQUFBO09BQUEsc0JBQUE7T0FBQTtPQUFBO0NBQUE7QUFDckIsSUFBSSxvQkFBb0I7Q0FBQztPQUFVO09BQXdCO0NBQUE7QUFDM0QsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLGlCQUFDO0FBQ2xDLElBQUksc0JBQXNCLENBQUMsR0FBRztBQUM5QixJQUFJLHNCQUFzQjtDQUFDO09BQUM7T0FBQTtDQUFBO0FBQzVCLElBQUkscUJBQXFCO0NBQUM7T0FBTyxvQkFBQTtPQUFBO0NBQUE7QUFDakMsSUFBSSxzQkFBc0I7Q0FBQztPQUFNLG9CQUFBO09BQUE7T0FBQTtDQUFBO0FBQ2pDLElBQUksaUJBQWlCO0NBQUM7T0FBTSxvQkFBQTtPQUFBO0NBQUE7QUFDNUIsSUFBQSxtQkFBQTtDQUFBO09BQUEsb0JBQUE7T0FBQTtDQUFBO0FBQ0EsSUFBSSxxQkFBcUI7Q0FBQztPQUFVLG9CQUFvQjtPQUFBO0NBQUE7QUFDeEQsSUFBSSxvQkFBb0I7Q0FBQztPQUFVLG9CQUFvQjtPQUFTO0NBQUE7QUFDaEUsSUFBSSxvQkFBb0I7Q0FBQztPQUFLLG9CQUFBO09BQUE7Q0FBQTtBQUM5QixJQUFJLG1CQUFtQjtDQUFDO09BQVUsb0JBQVM7T0FBQTtPQUFBO0NBQUE7QUFDM0MsSUFBSSxrQkFBa0I7Q0FBQztPQUFVLG9CQUFVO09BQUE7T0FBQTtDQUFBO0FBQzNDLElBQUksZ0JBQWdCO0NBQUM7T0FBUyxvQkFBQTtPQUFBO09BQUE7Q0FBQTtBQUM5QixJQUFJLFlBQVk7Q0FBQztPQUFVLG9CQUFTO09BQUE7T0FBQTtDQUFBO0FBQ3BDLElBQUEsaUJBQUE7Q0FBQTtPQUFBLG9CQUFBO09BQUE7Q0FBQTtBQUNBLElBQUksd0JBQXdCO0NBQUM7T0FBVSxvQkFBaUI7T0FBQTtDQUFBO0FBQ3hELElBQUksMkJBQTJCO0NBQUM7T0FBVSxvQkFBWTtPQUFBO0NBQUE7QUFDdEQsSUFBSSxnQkFBZ0I7Q0FBQztPQUFVLG9CQUFvQjtPQUFpQjtDQUFHO0FBQ3ZFLElBQUksc0JBQWtCO0NBQUE7T0FBQSxvQkFBQTtPQUFBO0NBQUE7QUFDdEIsSUFBSSxtQkFBbUI7Q0FBQztPQUFJLG9CQUFBO09BQUE7Q0FBQTtBQUM1QixJQUFJLGtCQUFrQjtDQUFDO09BQVUsb0JBQUs7T0FBQTtDQUFBO0FBQ3RDLElBQVcsa0JBQWtCO0NBQUM7T0FBTTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNwQyxJQUFDLG9CQUFBO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ0QsSUFBVyx1QkFBdUI7Q0FBQztPQUFVO09BQXNCO09BQWdCO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNuRixJQUFJLHVCQUF1QixDQUFDLEdBQUc7QUFDL0IsSUFBSSx3QkFBd0IsQ0FBQyxVQUFVLG1CQUFtQjtBQUMxRCxJQUFJLHFCQUFxQixDQUFDLFVBQUUsZ0JBQUE7QUFDNUIsSUFBSSxpQkFBaUI7Q0FBQztPQUFTO09BQUE7Q0FBQTtBQUMvQixJQUFJLGFBQWEsQ0FBQyxHQUFHO0FBQ3JCLElBQUksZUFBZTtDQUFDO09BQVU7T0FBYTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDM0MsSUFBSSxtQkFBbUI7Q0FBQztPQUFBO09BQUE7Q0FBQTtBQUN4QixJQUFBLDBCQUFBO0NBQUE7T0FBQSxXQUFBO09BQUE7Q0FBQTtBQUNBLElBQUksMEJBQWtCO0NBQUE7T0FBQSxXQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDdEIsSUFBSSw0QkFBNEIsQ0FBQyxHQUFHO0FBQ3BDLElBQUksb0JBQW9CLENBQUMsR0FBRTtBQUMzQixJQUFJLG1CQUFtQixDQUFBLElBQUE7QUFDdkIsSUFBSSx5QkFBeUI7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUM3QixJQUFJLG9DQUFnQztDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3BDLElBQUksZ0NBQTJCLENBQUEsSUFBQTtBQUMvQixJQUFJLHFCQUFxQixDQUFDLElBQUk7QUFDOUIsSUFBSSx3QkFBcUI7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDekIsSUFBSSx5Q0FBb0I7Q0FBQTtPQUFBLFdBQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN4QixJQUFJLG1DQUE0QjtDQUFBO09BQUEsV0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNoQyxJQUFDLDJDQUFBO0NBQUE7T0FBQSxXQUFBO09BQUE7T0FBQTtDQUFBO0FBQ0QsSUFBSSw0QkFBb0I7Q0FBQTtPQUFBLFdBQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN4QixJQUFJLDRCQUFzQjtDQUFBO09BQUEsV0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQzFCLElBQUksOEJBQXFCO0NBQUE7T0FBQSxXQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3pCLElBQUksMEJBQW9CO0NBQUE7T0FBQSxXQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3hCLElBQUksZ0NBQWlCO0NBQUE7T0FBQSxXQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3JCLElBQUksK0JBQStCO0NBQUM7T0FBVyxXQUFXO09BQU87T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDakUsSUFBSSxtQkFBbUI7Q0FBQztPQUFXLFdBQVc7T0FBWTtDQUFZO0FBQ3RFLElBQUksZ0NBQXFCO0NBQUE7T0FBQSxXQUFBO09BQUE7Q0FBQTtBQUN6QixJQUFJLHNDQUFrQztDQUFBO09BQUEsV0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDdEMsSUFBVyxvQkFBb0I7Q0FBQztPQUFHO09BQUE7Q0FBQTtBQUNuQyxJQUFXLG1CQUFtQixDQUFDLElBQUk7QUFDbkMsSUFBQyxzQkFBQSxDQUFBLElBQUE7QUFDRCxJQUFJLDJCQUEyQjtDQUFDO09BQVEsV0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3hDLElBQUksa0JBQWtCO0NBQUM7T0FBVztPQUFpQjtDQUFBO0FBQ25ELElBQUksaUJBQWlCO0NBQUM7T0FBVztPQUFBO0NBQUE7QUFDakMsSUFBSSxpQkFBaUI7Q0FBQztPQUFRO09BQUE7T0FBQTtDQUFBO0FBQzlCLElBQUksbUJBQW1CLENBQUMsV0FBTSxnQkFBQTtBQUM5QixJQUFDLG1CQUFBLENBQUEsV0FBQSxnQkFBQTtBQUNELElBQUksa0JBQWtCLENBQUMsV0FBVyxnQkFBSTtBQUN0QyxJQUFJLG9CQUFvQixDQUFDLFdBQVcsZ0JBQWU7QUFDbkQsSUFBVyxvQkFBb0I7Q0FBQztPQUFDO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ2pDLElBQVcsZ0JBQWdCO0NBQUM7T0FBRTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDOUIsSUFBVyxZQUFZLENBQUMsV0FBVyxZQUFTO0FBRTVDLElBQVcsZUFBWTtDQUFBO09BQUE7T0FBQTtDQUFBIn0=
699
+ export { type CategoryExtractor, CategoryExtractorType, type ChatMessageConfig, type ChatMessageVariant, type ChatPreviewConfig, type ChatPreviewFooterConfig, type ChatPreviewHeaderConfig, type ChatPreviewHeaderV2Config, type ChatPreviewIsLoadingWidgetConfig, type ChatPreviewPostInteractionWidgetConfig, type ChatPreviewProductComparisonWidgetConfig, type ChatPreviewSuggestionButtonConfig, type ChatPreviewV2WidgetConfig, type ChatPreviewVariant, type ChatPreviewWidgetConfig, type ColorMapping, ColorNames, type CustomerServiceIntegration, type DynamicWidgetMounting, EnviveConfig, FilterAttribute, type FloatingEntryPointConfig, type FullCustomerServiceIntegration, type HomePageVariant, type IdExtractor, type ImageBannerWidgetConfig, type ImagePromptWidgetConfig, type InsertionPoint, type MerchantVariantSettings, type MultiImageConfig, type NoOpWidgetConfig, type NumRows, OrgConfig, OrgPageConfig, type OrgUIConfig, type OtherPageVariant, type PDPPageVariant, type PLPPageVariant, type PageCardConfig, type PageCardHoverVariant, type PageCardIconVariant, type PageCardVariant, PageVariantConfig, PageVariantTest, PageVariantTestType, type ProductCardConfig, type ProductCardHoverVariant, type ProductCardLayoutVariant, type ProductCardVariant, ProductGridVariant, type ProductLinkHoverVariant, type ProductLinkIconVariant, type ProductLinkVariant, type ProductReviewColorVariant, type ProductReviewConfig, type ProductReviewStyleVariant, type SearchCardVariant, type SearchConfig, type SearchEntryPointWidgetConfig, SearchFilterSidebarVariant, SearchIconVariant, SearchInputVariant, type SearchOverlayHostWidgetConfig, type SearchPageVariant, type SearchPromptVariant, type SearchPromptWidgetConfig, type SearchResultsEntryPointWidgetConfig, SearchZeroStateLayout, SearchZeroStateVariant, type ShowFloatingButtonOptions, type SingleImagePromptWidgetConfig, type SocialProofConfig, type SocialProofV2WidgetConfig, type StaticWidgetMounting, type SuggestionBarWidgetV2Config, type SuggestionButtonConfig, type SuggestionButtonVariant, type URLTest, type UserQueryButtonConfig, type UserQueryButtonIcon, UserQueryOptions, type VisitPageVariant, type WelcomeSectionColorVariant, type WelcomeSectionConfig, type WelcomeSectionVariant, type WidgetConfig, type WidgetDisplayTests, WidgetHeaderProps, type WidgetMounting, WidgetMountingConfig, WidgetType, type WrappingElement, colorVar };
700
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dHMvdHlwZXMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbiB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24nO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nLCBDb2xvck5hbWVzLCBjb2xvclZhciB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY29sb3JzQ29uZmlnJztcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzJztcbmltcG9ydCB7IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZSwgQ3VzdG9tZXJTZXJ2aWNlVHlwZSB9IGZyb20gJ3NyYy90eXBlcy9jdXN0b21lclNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZEluc2VydGlvblR5cGUgfSBmcm9tICdzcmMvbWVyY2hhbnRzL2dyaWRJbnNlcnRpb24nO1xuaW1wb3J0IHsgRE9NSW5zZXJ0aW9uVHlwZSB9IGZyb20gJ3NyYy9tZXJjaGFudHMvZG9tSW5zZXJ0aW9uJztcbmltcG9ydCB0eXBlIHsgUGFnZVZpc2l0Q2F0ZWdvcnksIFN1cHBvcnRlZEV2ZW50UHJvZHVjdENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENoYXRTdGF0ZSB9IGZyb20gJ3NyYy90eXBlcy9jdXN0c2VydmljZS10eXBlcyc7XG5pbXBvcnQgeyBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzIH0gZnJvbSAnc3JjL3R5cGVzL3N1Z2dlc3Rpb25CYXJWMi10eXBlcyc7XG5pbXBvcnQgeyBUZXN0UHJvcHMgfSBmcm9tICdzcmMvdHlwZXMvdGVzdC10eXBlcyc7XG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnVjMgfSBmcm9tICcuL3R5cGVzVjMnO1xudHlwZSBTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zID0gJ2Fsd2F5cycgfCAnYWZ0ZXItaW50ZXJhY3Rpb24tb24tbW9iaWxlLWFsd2F5cy1kZXNrdG9wJyB8ICdhZnRlci1pbnRlcmFjdGlvbi1hbnl3aGVyZScgfCAnbmV2ZXInO1xudHlwZSBGbG9hdGluZ0VudHJ5UG9pbnRDb25maWcgPSB7XG4gICAgcG9zaXRpb246ICdib3R0b20tbGVmdCcgfCAnbWlkZGxlLWxlZnQnIHwgJ21pZGRsZS1yaWdodCcgfCAnYm90dG9tLXJpZ2h0JztcbiAgICBleHBhbnNpb25UZXh0Pzoge1xuICAgICAgICBwZHA6IHN0cmluZztcbiAgICAgICAgcGxwOiBzdHJpbmc7XG4gICAgfTtcbiAgICBtaW5pbWl6ZWRDb2xvcjogc3RyaW5nO1xuICAgIGV4cGFuZGVkQ29sb3I6IHN0cmluZztcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgc2hvd09wdGlvbjogU2hvd0Zsb2F0aW5nQnV0dG9uT3B0aW9ucztcbiAgICBpY29uU1ZHU3JjPzogc3RyaW5nO1xuICAgIGljb25TaXplPzogbnVtYmVyO1xuICAgIGljb25TdHJva2VDb2xvcj86IHN0cmluZztcbiAgICBpY29uRmlsbENvbG9yPzogc3RyaW5nO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBmb250U2l6ZT86IG51bWJlcjtcbn07XG50eXBlIFdlbGNvbWVTZWN0aW9uVmFyaWFudCA9ICdzdGFuZGFyZCcgfCAnb3V0bGluZWQnO1xudHlwZSBXZWxjb21lU2VjdGlvbkNvbG9yVmFyaWFudCA9ICdzdGFuZGFyZCcgfCAnYWNjZW50JyB8ICdicmFuZCcgfCAnbGlnaHQnO1xudHlwZSBXZWxjb21lU2VjdGlvbkNvbmZpZyA9IHtcbiAgICB2YXJpYW50OiBXZWxjb21lU2VjdGlvblZhcmlhbnQ7XG4gICAgY29sb3JWYXJpYW50PzogV2VsY29tZVNlY3Rpb25Db2xvclZhcmlhbnQ7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgc3VidGl0bGU/OiBzdHJpbmc7XG4gICAgaWNvbk5hbWU/OiBzdHJpbmc7XG4gICAgaW1hZ2VTcmM/OiBzdHJpbmc7XG59O1xudHlwZSBDaGF0UHJldmlld0NvbmZpZyA9IHtcbiAgICB2YXJpYW50OiAnZmxhdCcgfCAnZmlsbGVkJyB8ICdvdXRsaW5lZCc7XG4gICAgbGFyZ2VQcm9kdWN0Q29tcGFyaXNvbj86IGJvb2xlYW47XG4gICAgZmlsbGVkQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gICAgaWNvbkZpbGxDb2xvcjogc3RyaW5nO1xuICAgIGJ1dHRvblRleHRDb2xvcj86IHN0cmluZztcbiAgICBidXR0b25UZXh0U2Vjb25kYXJ5Q29sb3I/OiBzdHJpbmc7XG4gICAgYnV0dG9uVGV4dEhvdmVyQ29sb3I/OiBzdHJpbmc7XG4gICAgYnV0dG9uQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gICAgYnV0dG9uQmFja2dyb3VuZEhvdmVyQ29sb3I6IHN0cmluZztcbiAgICBidXR0b25Cb3JkZXJDb2xvcj86IHN0cmluZztcbiAgICBidXR0b25Cb3JkZXJIb3ZlckNvbG9yPzogc3RyaW5nO1xuICAgIGNvcGllczoge1xuICAgICAgICBwZHA6IHN0cmluZ1tdO1xuICAgICAgICBwbHA6IHN0cmluZ1tdO1xuICAgIH07XG4gICAgc3RhdGljU3VnZ2VzdGlvbkNvcGllcz86IHtcbiAgICAgICAgcGRwOiBzdHJpbmdbXTtcbiAgICAgICAgcGxwOiBzdHJpbmdbXTtcbiAgICB9O1xuICAgIHN0YXRpY1BMUEltYWdlcz86IHN0cmluZ1tdO1xuICAgIGZvb3RlckNvbmZpZz86IENoYXRQcmV2aWV3Rm9vdGVyQ29uZmlnO1xuICAgIGhlYWRlckNvbmZpZz86IENoYXRQcmV2aWV3SGVhZGVyQ29uZmlnO1xuICAgIHRvcE1hcmdpbj86IG51bWJlcjtcbn07XG50eXBlIENoYXRQcmV2aWV3SGVhZGVyQ29uZmlnID0ge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGltYWdlU3JjPzogc3RyaW5nO1xuICAgIGltYWdlSGVpZ2h0PzogbnVtYmVyO1xuICAgIHNwYXJrbGVzQ29sb3I/OiBzdHJpbmc7XG4gICAgZm9udFNpemU/OiBzdHJpbmc7XG4gICAgaWNvbldpZHRoPzogc3RyaW5nO1xuICAgIGljb25IZWlnaHQ/OiBzdHJpbmc7XG59O1xuaW50ZXJmYWNlIENoYXRQcmV2aWV3Rm9vdGVyQ29uZmlnIHtcbiAgICBoYXNGYWRlPzogYm9vbGVhbjtcbiAgICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudD86ICdkYXJrJyB8ICdsaWdodCcgfCAnb3V0bGluZWQnO1xuICAgIHN1Z2dlc3Rpb25zQmFja2dyb3VuZD86IHN0cmluZztcbiAgICByZXBseUJ1dHRvbkljb24/OiAnc2VuZCcgfCAnbWFnbmlmeWluZ0dsYXNzJyB8ICd0aGluTWFnbmlmeWluZ0dsYXNzJyB8ICdzZWFyY2hJY29uJztcbiAgICByZXBseUJ1dHRvblRleHQ/OiBzdHJpbmc7XG4gICAgcmVwbHlJbnB1dEhhc1NoYWRvdz86IGJvb2xlYW47XG4gICAgcmVwbHlJbnB1dEhhc0JvcmRlcj86IGJvb2xlYW47XG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xufVxudHlwZSBQcm9kdWN0UmV2aWV3U3R5bGVWYXJpYW50ID0gJ3N0YW5kYXJkJyB8ICdib3JkZXJlZCc7XG50eXBlIFByb2R1Y3RSZXZpZXdDb2xvclZhcmlhbnQgPSAnbmV1dHJhbCcgfCAnYnJhbmQnIHwgJ3ByZW1pdW0nO1xuaW50ZXJmYWNlIFByb2R1Y3RSZXZpZXdDb25maWcge1xuICAgIHN0eWxlVmFyaWFudDogUHJvZHVjdFJldmlld1N0eWxlVmFyaWFudDtcbiAgICBjb2xvclZhcmlhbnQ6IFByb2R1Y3RSZXZpZXdDb2xvclZhcmlhbnQ7XG4gICAgdmVyaWZpZWRCdXllclRpdGxlOiBzdHJpbmc7XG4gICAgaW5jZW50aXZpemVkUmV2aWV3RmxhZz86IGJvb2xlYW47XG59XG50eXBlIFBhZ2VDYXJkVmFyaWFudCA9ICdmaWxsZWQnIHwgJ291dGxpbmVkJyB8ICdtaW5pbWFsJztcbnR5cGUgUGFnZUNhcmRIb3ZlclZhcmlhbnQgPSAnbm9uZScgfCAnc2hhZG93JyB8ICdsaWZ0JztcbnR5cGUgUGFnZUNhcmRJY29uVmFyaWFudCA9ICdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ2JhY2tncm91bmQnIHwgJ25vbmUnO1xudHlwZSBQYWdlQ2FyZENvbmZpZyA9IHtcbiAgICB2YXJpYW50OiBQYWdlQ2FyZFZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50OiBQYWdlQ2FyZEhvdmVyVmFyaWFudDtcbiAgICBpY29uVmFyaWFudDogUGFnZUNhcmRJY29uVmFyaWFudDtcbn07XG50eXBlIFByb2R1Y3RDYXJkVmFyaWFudCA9ICdmaWxsZWQnIHwgJ2JvcmRlcmVkJyB8ICdtaW5pbWFsJyB8ICd0cmFuc3BhcmVudEJvcmRlcmVkJztcbnR5cGUgUHJvZHVjdENhcmRIb3ZlclZhcmlhbnQgPSAnYmFja2dyb3VuZERhcmsnIHwgJ25vbmUnO1xudHlwZSBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQgPSAnbm9ybWFsJyB8ICd0YWxsJyB8ICdzcXVhcmUnO1xuaW50ZXJmYWNlIFByb2R1Y3RDYXJkQ29uZmlnIHtcbiAgICB2YXJpYW50OiBQcm9kdWN0Q2FyZFZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50OiBQcm9kdWN0Q2FyZEhvdmVyVmFyaWFudDtcbiAgICBsYXlvdXRWYXJpYW50OiBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQ7XG4gICAgcHJpY2VQcmVmaXg/OiBzdHJpbmc7XG59XG50eXBlIENTU3dpdGNoQ29uZmlnID0ge1xuICAgIHZhcmlhbnQ6ICdhdHRhY2hlZCcgfCAnZGV0YWNoZWQnO1xuICAgIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICAgIGJvcmRlckNvbG9yOiBzdHJpbmc7XG4gICAgc2VsZWN0ZWRUZXh0Q29sb3I6IHN0cmluZztcbiAgICBzZWxlY3RlZEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICB1bnNlbGVjdGVkVGV4dENvbG9yOiBzdHJpbmc7XG4gICAgdW5zZWxlY3RlZEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICBzdXBwb3J0VGl0bGU/OiBzdHJpbmc7XG4gICAgc3BpZmZ5VGl0bGU/OiBzdHJpbmc7XG4gICAgc3BpZmZ5VGl0bGVIYXNMb2dvPzogYm9vbGVhbjtcbn07XG50eXBlIENoYXRIZWFkZXJDb25maWcgPSB7XG4gICAgY29sbGFwc2VkQ29sb3I6IHN0cmluZztcbiAgICBleHBhbmRlZENvbG9yOiBzdHJpbmc7XG4gICAgY2hldnJvbkNvbG9yOiBzdHJpbmc7XG4gICAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gICAgaWNvbj86IFJlYWN0LkZ1bmN0aW9uQ29tcG9uZW50PFJlYWN0LlNWR1Byb3BzPFNWR1NWR0VsZW1lbnQ+PjtcbiAgICBjbG9zZUljb24/OiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxSZWFjdC5TVkdQcm9wczxTVkdTVkdFbGVtZW50Pj47XG4gICAgYm9yZGVyQm90dG9tPzogc3RyaW5nO1xuICAgIGhlYWRlckJhckhlaWdodFBhcnRpYWxWaWV3OiBudW1iZXI7XG4gICAgaGVhZGVyQmFySGVpZ2h0RnVsbFZpZXc6IG51bWJlcjtcbiAgICBjdXN0b21lclN1cHBvcnRTd2l0Y2hDb25maWc/OiBDU1N3aXRjaENvbmZpZztcbn07XG50eXBlIFNpbXBsZUN1c3RvbWVyU2VydmljZUludGVncmF0aW9uID0ge1xuICAgIGludGVncmF0aW9uTW9kZTogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlO1xuICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlO1xuICAgIHVzZVVuaWZpZWRCdXR0b24/OiBib29sZWFuO1xuICAgIG1heGZpbGVVcGxvYWRTaXplPzogbnVtYmVyO1xufTtcbnR5cGUgRnVsbEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uID0ge1xuICAgIGludGVncmF0aW9uTW9kZTogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlO1xuICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VUeXBlO1xuICAgIHVzZVVuaWZpZWRCdXR0b24/OiBib29sZWFuO1xuICAgIGNoYXRFbmFibGVkRHVyaW5nQnVzaW5lc3NIb3Vycz86IGJvb2xlYW47XG4gICAgc2hvd05hbWVJbnB1dD86IGJvb2xlYW47XG4gICAgZm9ybUFpTmFtZT86IHN0cmluZztcbiAgICB3ZWxjb21lVGl0bGU6IHN0cmluZztcbiAgICB3ZWxjb21lRGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzaG93V2VsY29tZU9uRm9ybT86IGJvb2xlYW47XG4gICAgY29udGFjdFN1YmplY3RPcHRpb25zPzogc3RyaW5nW107XG4gICAgZ2V0Q3VzdG9tV2FpdGluZ01lc3NhZ2U/OiAobmFtZT86IHN0cmluZykgPT4gc3RyaW5nO1xuICAgIHdpdGhpbkJ1c2luZXNzSG91cnNNZXNzYWdlPzogc3RyaW5nO1xuICAgIHdpdGhpbkJ1c2luZXNzSG91cnNXYWl0aW5nTWVzc2FnZT86IHN0cmluZztcbiAgICBvdXRzaWRlQnVzaW5lc3NIb3Vyc01lc3NhZ2U/OiBzdHJpbmc7XG4gICAgb3V0c2lkZUJ1c2luZXNzSG91cnNXYWl0aW5nTWVzc2FnZT86IHN0cmluZztcbiAgICB3aXRoaW5CdXNpbmVzc0hvdXJzRm9ybU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgb3V0c2lkZUJ1c2luZXNzSG91cnNGb3JtTWVzc2FnZT86IHN0cmluZztcbiAgICBzdWdnZXN0ZWRBSVF1ZXN0aW9ucz86IHN0cmluZ1tdO1xuICAgIGJ1c2luZXNzSG91cnNQb2xsaW5nPzogbnVtYmVyO1xuICAgIG1heGZpbGVVcGxvYWRTaXplPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgaGFuZGxlZCBieSB0aGUgQkUuXG4gICAgICovXG4gICAgYnVzaW5lc3NIb3Vyc1N0YXJ0VVRDPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgaGFuZGxlZCBieSB0aGUgQkUuXG4gICAgICovXG4gICAgYnVzaW5lc3NIb3Vyc0VuZFVUQz86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIEJFLlxuICAgICAqL1xuICAgIGJ1c2luZXNzSG91cnNUaW1lem9uZT86IHN0cmluZztcbiAgICBzaG93QUlTdWdnZXN0aW9uc1dpdGhpbkJ1c2luZXNzSG91cnM/OiBib29sZWFuO1xuICAgIHdhaXRpbmdNZXNzYWdlUG9zaXRpb24/OiAnQkVGT1JFX01FU1NBR0VTJyB8ICdBRlRFUl9NRVNTQUdFUyc7XG4gICAgbGVnYWxNZXNzYWdlPzogc3RyaW5nO1xuICAgIHdpdGhpbkJ1c2luZXNzSG91cnNJbml0aWFsU3RhdGU/OiBDaGF0U3RhdGU7XG4gICAgb3V0c2lkZUJ1c2luZXNzSG91cnNJbml0aWFsU3RhdGU/OiBDaGF0U3RhdGU7XG4gICAgd2l0aGluQnVzaW5lc3NIb3Vyc0J1dHRvbnRleHQ/OiBzdHJpbmc7XG4gICAgb3V0c2lkZUJ1c2luZXNzSG91cnNCdXR0b250ZXh0Pzogc3RyaW5nO1xuICAgIHJlb3BlbkNoYXRNZXNzYWdlOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiA9IFNpbXBsZUN1c3RvbWVyU2VydmljZUludGVncmF0aW9uIHwgRnVsbEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uO1xudHlwZSBDb252ZXJzYXRpb25hbFNlYWNoID0ge1xuICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgIHJlcGx5SW5wdXQ/OiBSZXBseUlucHV0Q29uZmlnO1xuICAgIHN1Z2dlc3Rpb25zPzogc3RyaW5nW107XG4gICAgZW50cnlwb2ludEJnQ29sb3I/OiBzdHJpbmc7XG4gICAgZW50cnlwb2ludFRleHRDb2xvcj86IHN0cmluZztcbiAgICBlbnRyeXBvaW50QnRuQ29sb3I/OiBzdHJpbmc7XG4gICAgZW50cnlwb2ludEJ0blRleHRDb2xvcj86IHN0cmluZztcbiAgICBlbnRyeXBvaW50QnRuQm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gICAgZW50cnlwb2ludENvbnRhaW5lcj86IHN0cmluZztcbiAgICBlbnRyeXBvaW50VHJpZ2dlcj86IHN0cmluZztcbiAgICBwcm9kdWN0R3JpZENvbnRhaW5lcj86IHN0cmluZztcbiAgICBnZW5lcmFsU2VhcmNoQnRuPzogc3RyaW5nO1xuICAgIHBhZ2VDb250ZW50Pzogc3RyaW5nO1xuICAgIHNlYXJjaENvbnRlbnQ/OiBzdHJpbmc7XG4gICAgc29ydGluZ1RpdGxlPzogc3RyaW5nO1xuICAgIHNlbGVjdGlvblRpdGxlPzogc3RyaW5nO1xuICAgIHNvcnRpbmdGb250Pzogc3RyaW5nO1xuICAgIG9wdGlvbnNGb250Pzogc3RyaW5nO1xuICAgIHNvcnRpbmdCdXR0b25UZXh0Pzogc3RyaW5nO1xufTtcbnR5cGUgQ2hhdE1lc3NhZ2VWYXJpYW50ID0gJ3N0YW5kYXJkJyB8ICdwcmVtaXVtJyB8ICdhY2NlbnQnO1xuaW50ZXJmYWNlIENoYXRNZXNzYWdlQ29uZmlnIHtcbiAgICBhc3Npc3RhbnRDaGF0VGl0bGU6IHN0cmluZztcbiAgICB2YXJpYW50OiBDaGF0TWVzc2FnZVZhcmlhbnQ7XG4gICAgcHJvZHVjdExpbms6IHtcbiAgICAgICAgdmFyaWFudDogUHJvZHVjdExpbmtWYXJpYW50O1xuICAgICAgICBob3ZlclZhcmlhbnQ6IFByb2R1Y3RMaW5rSG92ZXJWYXJpYW50O1xuICAgICAgICBpY29uVmFyaWFudDogUHJvZHVjdExpbmtJY29uVmFyaWFudDtcbiAgICB9O1xufVxuaW50ZXJmYWNlIFJlcGx5SW5wdXRDb25maWcge1xuICAgIHNpemU/OiAnbWQnIHwgJ2xnJztcbiAgICBzZW5kSWNvbjogJ2Fycm93VXAnIHwgJ3NlbmQnIHwgJ3NlYXJjaCc7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG59XG5pbnRlcmZhY2UgUGFydGlhbFZpZXdDb25maWcge1xuICAgIG1heEhlaWdodDogbnVtYmVyO1xuICAgIGJvcmRlclJhZGl1cz86IHN0cmluZztcbn1cbnR5cGUgUHJvZHVjdExpbmtJY29uVmFyaWFudCA9ICdhY2NlbnRQcmltYXJ5JyB8ICdiYWNrZ3JvdW5kUHJpbWFyeScgfCAnYmFja2dyb3VuZFByaW1hcnlEYXJrJyB8ICdib3JkZXJMaWdodCcgfCAnYmFja2dyb3VuZFNhdHVyYXRlZCc7XG50eXBlIFByb2R1Y3RMaW5rVmFyaWFudCA9ICd0ZXh0TGluayc7XG50eXBlIFByb2R1Y3RMaW5rSG92ZXJWYXJpYW50ID0gJ2JhY2tncm91bmREYXJrJztcbnR5cGUgU2VhcmNoQ2FyZFZhcmlhbnQgPSAnYmFja2dyb3VuZFByaW1hcnknIHwgJ2JhY2tncm91bmRTZWNvbmRhcnknIHwgJ2JhY2tncm91bmRTZWNvbmRhcnlEYXJrJyB8ICdiYWNrZ3JvdW5kTGlnaHQnIHwgJ2JhY2tncm91bmRTYXR1cmF0ZWQnO1xudHlwZSBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudCA9ICdvdXRsaW5lZCcgfCAnb3V0bGluZWRMaWdodCcgfCAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICd0ZXJ0aWFyeScgfCAnZGFyaycgfCAnZGFya0FjY2VudCcgfCAnZGFya1ByaW1hcnknIHwgJ3NlY29uZGFyeURhcmsnIHwgJ3NlY29uZGFyeUFjY2VudCcgfCAndHJhbnNwYXJlbnQnIHwgJ3RyYW5zcGFyZW50RGFyaycgfCAnbGlnaHREYXJrJztcbmludGVyZmFjZSBTdWdnZXN0aW9uQnV0dG9uQ29uZmlnIHtcbiAgICB2YXJpYW50PzogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50PzogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgYW5zd2VyVmFyaWFudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIGJvcmRlclJhZGl1cz86ICdzbScgfCAnbWQnIHwgJ2xnJztcbn1cbnR5cGUgTnVtUm93cyA9ICdkZWZhdWx0JyB8ICdhbHdheXNPbmVSb3cnIHwgJ2Fsd2F5c1R3b1Jvd3MnIHwgJ3R3b1Jvd3NPbk1vYmlsZSc7XG5pbnRlcmZhY2UgQWxwaGFiZXRpY0ZpbHRlclNvcnRpbmcge1xuICAgIHR5cGU6ICdhbHBoYWJldGljJztcbn1cbmludGVyZmFjZSBQcm9kdWN0Q291bnRGaWx0ZXJTb3J0aW5nIHtcbiAgICB0eXBlOiAncHJvZHVjdENvdW50Jztcbn1cbmludGVyZmFjZSBDdXN0b21GaWx0ZXJTb3J0aW5nIHtcbiAgICB0eXBlOiAnY3VzdG9tJztcbiAgICBtYXA6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG59XG50eXBlIEZpbHRlclNvcnRpbmcgPSBBbHBoYWJldGljRmlsdGVyU29ydGluZyB8IFByb2R1Y3RDb3VudEZpbHRlclNvcnRpbmcgfCBDdXN0b21GaWx0ZXJTb3J0aW5nO1xuaW50ZXJmYWNlIEJhc2VGaWx0ZXJDb25maWcge1xuICAgIGZpbHRlcklkOiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbn1cbmludGVyZmFjZSBEeW5hbWljRmlsdGVyQ29uZmlnIGV4dGVuZHMgQmFzZUZpbHRlckNvbmZpZyB7XG4gICAgdHlwZTogJ2R5bmFtaWMnO1xuICAgIGF0dHJpYnV0ZTogc3RyaW5nO1xuICAgIHNvcnRpbmc6IEZpbHRlclNvcnRpbmc7XG59XG5pbnRlcmZhY2UgUHJpY2VGaWx0ZXJDb25maWcgZXh0ZW5kcyBCYXNlRmlsdGVyQ29uZmlnIHtcbiAgICB0eXBlOiAncHJpY2UnO1xuICAgIGJ1Y2tldFNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCB0eXBlIEZpbHRlckF0dHJpYnV0ZSA9IER5bmFtaWNGaWx0ZXJDb25maWcgfCBQcmljZUZpbHRlckNvbmZpZztcbmV4cG9ydCB0eXBlIFNlYXJjaFplcm9TdGF0ZVZhcmlhbnQgPSAnYmFja2dyb3VuZFRlcnRpYXJ5JyB8ICdiYWNrZ3JvdW5kRGFyaycgfCAnYmFja2dyb3VuZFByaW1hcnknO1xuZXhwb3J0IHR5cGUgU2VhcmNoWmVyb1N0YXRlTGF5b3V0ID0gJ2lucHV0JyB8ICdpY29uJztcbmV4cG9ydCB0eXBlIFNlYXJjaElucHV0VmFyaWFudCA9ICdzdGFuZGFyZCc7XG5leHBvcnQgdHlwZSBTZWFyY2hJY29uVmFyaWFudCA9ICd0aGluJyB8ICdib2xkJztcbmV4cG9ydCB0eXBlIFNlYXJjaEZpbHRlclNpZGViYXJWYXJpYW50ID0gJ2RhcmtCdXR0b24nIHwgJ2xpZ2h0QnV0dG9uJztcbmV4cG9ydCB0eXBlIFByb2R1Y3RHcmlkVmFyaWFudCA9ICdzdGFuZGFyZCcgfCAnc3F1YXJlJztcbnR5cGUgVXNlclF1ZXJ5QnV0dG9uSWNvbiA9ICdtYWduaWZ5aW5nR2xhc3MnIHwgJ3NlbmQnIHwgJ21hZ25pZnlpbmdHbGFzc1RoaW4nIHwgJ3NlbmRBcnJvdycgfCAnc2VhcmNoSWNvbic7XG5pbnRlcmZhY2UgVXNlclF1ZXJ5QnV0dG9uQ29uZmlnIHtcbiAgICB2YXJpYW50PzogJ2JveCcgfCAndW5kZXJsaW5lTGlnaHQnIHwgJ3VuZGVybGluZURhcmsnO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IHN0cmluZztcbiAgICBpY29uOiBVc2VyUXVlcnlCdXR0b25JY29uO1xufVxuaW50ZXJmYWNlIFRlcm1zQW5kQ29uZGl0aW9uc0NvbmZpZyB7XG4gICAgY29weTogc3RyaW5nO1xuICAgIGxpbms6IHN0cmluZztcbiAgICBsaW5rVGV4dDogc3RyaW5nO1xufVxuaW50ZXJmYWNlIE1lcmNoYW50VmFyaWFudFNldHRpbmdzIHtcbiAgICBkeW5hbWljVmFyaWFudHM6IHtcbiAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgcmVmcmVzaEludGVydmFsPzogbnVtYmVyO1xuICAgIH07XG59XG5pbnRlcmZhY2UgRmxvYXRpbmdDaGF0Q29uZmlnIHtcbiAgICBlbmFibGVXYXRlcm1hcms6IGJvb2xlYW47XG4gICAgdXNlclF1ZXJ5SW5wdXRFbmFibGVkOiBib29sZWFuO1xuICAgIGlnbm9yZUZpcnN0TW9kZWxSZXNwb25zZT86IGJvb2xlYW47XG4gICAgbmV2ZXJTaG93U2luZ2xlUHJvZHVjdENhcmRzPzogYm9vbGVhbjtcbiAgICB0ZXJtc0FuZENvbmRpdGlvbnNDb25maWc/OiBUZXJtc0FuZENvbmRpdGlvbnNDb25maWc7XG4gICAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZz86IFN1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gICAgcmVwbHlJbnB1dENvbmZpZzogUmVwbHlJbnB1dENvbmZpZztcbn1cbmludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICAgIGVuYWJsZUdsb2JhbFNlYXJjaDogYm9vbGVhbjtcbiAgICBzZWFyY2hGaWx0ZXJDb25maWc6IEZpbHRlckF0dHJpYnV0ZVtdO1xuICAgIHNlYXJjaE92ZXJsYXlIZWFkaW5nPzogc3RyaW5nO1xuICAgIHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybD86IHN0cmluZztcbiAgICBhZGRpdGl2ZUR5bmFtaWNGaWx0ZXJzPzogYm9vbGVhbjtcbiAgICByZWNvbW1lbmRlZFByb2R1Y3RzPzogc3RyaW5nW107XG4gICAgcmVjb21tZW5kZWRQcm9kdWN0c0hlYWRpbmc/OiBzdHJpbmc7XG59XG50eXBlIENvbmZpZ1ZlcnNpb24gPSAndjMnIHwgJ2RlcHJlY2F0ZWQnIHwgdW5kZWZpbmVkO1xudHlwZSBPcmdVSUNvbmZpZyA9IHtcbiAgICB2ZXJzaW9uPzogQ29uZmlnVmVyc2lvbjtcbiAgICBzaG9ydE5hbWU6IHN0cmluZztcbiAgICBpZD86IHN0cmluZztcbiAgICBmbG9hdGluZ0VudHJ5cG9pbnRDb25maWc/OiBGbG9hdGluZ0VudHJ5UG9pbnRDb25maWc7XG4gICAgY2hhdFByZXZpZXdDb25maWc/OiBDaGF0UHJldmlld0NvbmZpZztcbiAgICBjdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb247XG4gICAgY29udmVyc2F0aW9uYWxTZWFyY2g/OiBDb252ZXJzYXRpb25hbFNlYWNoO1xuICAgIG1lcmNoYW50T3ZlcnJpZGVDc3M/OiBzdHJpbmc7XG4gICAgaGlkZGVuRWxlbWVudFNlbGVjdG9ycz86IHN0cmluZ1tdO1xuICAgIG1lcmNoYW50VmFyaWFudFNldHRpbmdzPzogTWVyY2hhbnRWYXJpYW50U2V0dGluZ3M7XG4gICAgZmxvYXRpbmdDaGF0Q29uZmlnOiBGbG9hdGluZ0NoYXRDb25maWc7XG4gICAgc2VhcmNoQ29uZmlnOiBTZWFyY2hDb25maWc7XG4gICAgY2hhdEhlYWRlcjogQ2hhdEhlYWRlckNvbmZpZztcbiAgICBzdGlja3lBZ2VudFN3aXRjaFN1Z2dlc3Rpb24/OiBib29sZWFuO1xuICAgIHBhcnRpYWxWaWV3Q29uZmlnOiBQYXJ0aWFsVmlld0NvbmZpZztcbiAgICB3ZWxjb21lU2VjdGlvbkNvbmZpZz86IFdlbGNvbWVTZWN0aW9uQ29uZmlnO1xuICAgIHByb2R1Y3RDYXJkQ29uZmlnPzogUHJvZHVjdENhcmRDb25maWc7XG4gICAgcHJvZHVjdFJldmlld0NvbmZpZz86IFByb2R1Y3RSZXZpZXdDb25maWc7XG4gICAgcGFnZUNhcmRDb25maWc/OiBQYWdlQ2FyZENvbmZpZztcbiAgICBjaGF0TWVzc2FnZUNvbmZpZzogQ2hhdE1lc3NhZ2VDb25maWc7XG59O1xudHlwZSBJbnNlcnRpb25Qb2ludCA9IHtcbiAgICBzZWxlY3Rvcjogc3RyaW5nO1xuICAgIHNlbGVjdGlvbkluZGV4PzogbnVtYmVyO1xuICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGU7XG59O1xudHlwZSBVUkxUZXN0ID0gJ3Nob3BpZnknIHwgJ251bGwnO1xudHlwZSBJZEV4dHJhY3RvciA9ICdzaG9waWZ5LXByb2R1Y3QtaWQnIHwgJ3Nob3BpZnktY29sbGVjdGlvbi1pZCcgfCAnc2hvcGlmeS1wcm9kdWN0LXZhcmlhbnQtaWQnIHwgJ3VybC1yZXNvbHZlci1wcm9kdWN0LWlkJyB8ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyB8ICdudWxsJztcbmRlY2xhcmUgZW51bSBDYXRlZ29yeUV4dHJhY3RvclR5cGUge1xuICAgIFZpc2l0Q2F0ZWdvcnlNYXAgPSBcIlZpc2l0Q2F0ZWdvcnlNYXBcIixcbiAgICBWaXNpdENhdGVnb3J5RGVmYXVsdCA9IFwiVmlzaXRDYXRlZ29yeURlZmF1bHRcIlxufVxuaW50ZXJmYWNlIEJhc2VDYXRlZ29yeUV4dHJhY3RvcjxUIGV4dGVuZHMgQ2F0ZWdvcnlFeHRyYWN0b3JUeXBlPiB7XG4gICAgdHlwZTogVDtcbn1cbmludGVyZmFjZSBWaXNpdENhdGVnb3J5TWFwIGV4dGVuZHMgQmFzZUNhdGVnb3J5RXh0cmFjdG9yPENhdGVnb3J5RXh0cmFjdG9yVHlwZS5WaXNpdENhdGVnb3J5TWFwPiB7XG4gICAgbWFwOiB7XG4gICAgICAgIFtrZXkgaW4gUGFnZVZpc2l0Q2F0ZWdvcnldPzogc3RyaW5nW107XG4gICAgfTtcbn1cbmludGVyZmFjZSBWaXNpdENhdGVnb3J5RGVmYXVsdCBleHRlbmRzIEJhc2VDYXRlZ29yeUV4dHJhY3RvcjxDYXRlZ29yeUV4dHJhY3RvclR5cGUuVmlzaXRDYXRlZ29yeURlZmF1bHQ+IHtcbiAgICB2YWx1ZTogUGFnZVZpc2l0Q2F0ZWdvcnk7XG59XG50eXBlIENhdGVnb3J5RXh0cmFjdG9yID0gVmlzaXRDYXRlZ29yeU1hcCB8IFZpc2l0Q2F0ZWdvcnlEZWZhdWx0O1xudHlwZSBXcmFwcGluZ0VsZW1lbnQgPSB7XG4gICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgZWxlbWVudDogc3RyaW5nO1xuICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGU7XG59O1xuZGVjbGFyZSBlbnVtIFBhZ2VWYXJpYW50VGVzdFR5cGUge1xuICAgIFBhZ2VDYXRlZ29yeSA9IFwiUGFnZUNhdGVnb3J5XCIsXG4gICAgQ2F0YWxvZ0NhdGVnb3J5ID0gXCJDYXRhbG9nQ2F0ZWdvcnlcIixcbiAgICBUb3BDYXRhbG9nQ2F0ZWdvcnkgPSBcIlRvcENhdGFsb2dDYXRlZ29yeVwiLFxuICAgIEhhc1Jldmlld3MgPSBcIkhhc1Jldmlld3NcIixcbiAgICBJbkNvbGxlY3Rpb24gPSBcIkluQ29sbGVjdGlvblwiLFxuICAgIEhhc01lcmNoYW50VGFnID0gXCJIYXNNZXJjaGFudFRhZ1wiLFxuICAgIEZlYXR1cmVHYXRlID0gXCJGZWF0dXJlR2F0ZVwiLFxuICAgIFBscElkID0gXCJQbHBJZFwiLFxuICAgIFF1ZXJ5UGFyYW0gPSBcIlF1ZXJ5UGFyYW1cIixcbiAgICBQcm9kdWN0SWQgPSBcIlByb2R1Y3RJZFwiLFxuICAgIFVzZXJIYXNJbnRlcmFjdGVkID0gXCJVc2VySGFzSW50ZXJhY3RlZFwiLFxuICAgIFVzZXJIYXNOb3RJbnRlcmFjdGVkID0gXCJVc2VySGFzTm90SW50ZXJhY3RlZFwiLFxuICAgIGlzTG9hZGluZyA9IFwiaXNMb2FkaW5nXCIsXG4gICAgaXNQcm9kdWN0Q29tcGFyaXNvbiA9IFwiaXNQcm9kdWN0Q29tcGFyaXNvblwiLFxuICAgIEZhbGxiYWNrID0gXCJGYWxsYmFja1wiLFxuICAgIFVybFJlc29sdmVyID0gXCJVcmxSZXNvbHZlclwiLFxuICAgIGlzU2NyZWVuV2lkdGhTbWFsbGVyID0gXCJpc1NjcmVlbldpZHRoU21hbGxlclwiLFxuICAgIE51bGwgPSBcIm51bGxcIlxufVxuaW50ZXJmYWNlIEJhc2VQYWdlVmFyaWFudFRlc3Q8VCBleHRlbmRzIFBhZ2VWYXJpYW50VGVzdFR5cGU+IHtcbiAgICB0ZXN0VHlwZTogVDtcbn1cbmludGVyZmFjZSBUb3BDYXRhbG9nQ2F0ZWdvcnkgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVG9wQ2F0YWxvZ0NhdGVnb3J5PiB7XG4gICAgdG9wQ2F0ZWdvcnk6IHN0cmluZ1tdO1xufVxuaW50ZXJmYWNlIENhdGFsb2dDYXRlZ29yeVRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuQ2F0YWxvZ0NhdGVnb3J5PiB7XG4gICAgY2F0ZWdvcnk6IFN1cHBvcnRlZEV2ZW50UHJvZHVjdENhdGVnb3J5O1xufVxuaW50ZXJmYWNlIEhhc1Jldmlld3NUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3M+IHtcbiAgICByZXZpZXdNaW5pbXVtPzogbnVtYmVyO1xufVxuaW50ZXJmYWNlIEluQ29sbGVjdGlvblRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uPiB7XG4gICAgY29sbGVjdGlvbnM6IHN0cmluZ1tdO1xufVxuaW50ZXJmYWNlIEhhc01lcmNoYW50VGFnVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5IYXNNZXJjaGFudFRhZz4ge1xuICAgIG1lcmNoYW50VGFnczogc3RyaW5nW107XG59XG5pbnRlcmZhY2UgUGFnZUNhdGVnb3J5VGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5QYWdlQ2F0ZWdvcnk+IHtcbiAgICBleHRyYWN0b3I6IENhdGVnb3J5RXh0cmFjdG9yO1xufVxuaW50ZXJmYWNlIEZlYXR1cmVHYXRlVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZT4ge1xuICAgIGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXM7XG59XG5pbnRlcmZhY2UgUHJvZHVjdElkVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5Qcm9kdWN0SWQ+IHtcbiAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IElkRXh0cmFjdG9yO1xuICAgIHByb2R1Y3RJZHM6IHN0cmluZ1tdO1xufVxuaW50ZXJmYWNlIFBscElkVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5QbHBJZD4ge1xuICAgIHBscElkRXh0cmFjdG9yOiBJZEV4dHJhY3RvcjtcbiAgICBwbHBJZHM6IHN0cmluZ1tdO1xufVxuaW50ZXJmYWNlIFF1ZXJ5UGFyYW1UZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlF1ZXJ5UGFyYW0+IHtcbiAgICBxdWVyeVBhcmFtOiBzdHJpbmc7XG59XG5pbnRlcmZhY2UgVXNlckhhc0ludGVyYWN0ZWRUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlVzZXJIYXNJbnRlcmFjdGVkPiB7XG59XG5pbnRlcmZhY2UgVXNlckhhc05vdEludGVyYWN0ZWRUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlVzZXJIYXNOb3RJbnRlcmFjdGVkPiB7XG59XG5pbnRlcmZhY2UgSXNMb2FkaW5nVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5pc0xvYWRpbmc+IHtcbn1cbmludGVyZmFjZSBJc1Byb2R1Y3RDb21wYXJpc29uIGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLmlzUHJvZHVjdENvbXBhcmlzb24+IHtcbn1cbmludGVyZmFjZSBQYWdlRmFsbGJhY2tUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLkZhbGxiYWNrPiB7XG59XG5pbnRlcmZhY2UgVXJsUmVzb2x2ZXJUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyPiB7XG59XG5pbnRlcmZhY2UgSXNTY3JlZW5XaWR0aFNtYWxsZXJUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLmlzU2NyZWVuV2lkdGhTbWFsbGVyPiB7XG4gICAgYnJlYWtwb2ludDogbnVtYmVyO1xufVxuZXhwb3J0IHR5cGUgUGFnZVZhcmlhbnRUZXN0ID0gUGFnZUNhdGVnb3J5VGVzdCB8IENhdGFsb2dDYXRlZ29yeVRlc3QgfCBUb3BDYXRhbG9nQ2F0ZWdvcnkgfCBIYXNSZXZpZXdzVGVzdCB8IEluQ29sbGVjdGlvblRlc3QgfCBIYXNNZXJjaGFudFRhZ1Rlc3QgfCBGZWF0dXJlR2F0ZVRlc3QgfCBQcm9kdWN0SWRUZXN0IHwgUGxwSWRUZXN0IHwgUXVlcnlQYXJhbVRlc3QgfCBVc2VySGFzSW50ZXJhY3RlZFRlc3QgfCBVc2VySGFzTm90SW50ZXJhY3RlZFRlc3QgfCBJc0xvYWRpbmdUZXN0IHwgSXNQcm9kdWN0Q29tcGFyaXNvbiB8IFBhZ2VGYWxsYmFja1Rlc3QgfCBVcmxSZXNvbHZlclRlc3QgfCBJc1NjcmVlbldpZHRoU21hbGxlclRlc3Q7XG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzb2NpYWwgcHJvb2YgZW1iZWRkZWQgd2lkZ2V0XG4gKlxuICogQHBhcmFtIGhlYWRlclRpdGxlIC0gVGhlIHRpdGxlIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgd2lkZ2V0IGhlYWRlclxuICogQHBhcmFtIHN0YXRpY1N1Z2dlc3Rpb25zIC0gQSBsaXN0IG9mIHN0cmluZ3MgdG8gZGlzcGxheSBhcyBzdWdnZXN0aW9ucyBpbiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0gc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0IC0gVGhlIHZhcmlhbnQgb2YgdGhlIHN1Z2dlc3Rpb24gYnV0dG9uIHRvIGRpc3BsYXkgaW4gdGhlIHdpZGdldCBmb290ZXJcbiAqIEBwYXJhbSBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudEFjY2VudCAtIFRoZSB2YXJpYW50IG9mIHRoZSBzdWdnZXN0aW9uIGJ1dHRvbiB0byBkaXNwbGF5IGluIHRoZSB3aWRnZXQgYm9keVxuICogQHBhcmFtIHN0YXRpY0ltYWdlSW5kZXggLSBJbmRleCBvZiB0aGUgaW1hZ2VVcmwgdG8gdXNlIGZyb20gdGhlIHByb2R1Y3QgcmVzcG9uc2VcbiAqL1xuaW50ZXJmYWNlIFNvY2lhbFByb29mQ29uZmlnIHtcbiAgICBjdXN0b21lclF1ZXJ5OiBzdHJpbmc7XG4gICAgaGVhZGVyVGl0bGU6IHN0cmluZztcbiAgICBzdGF0aWNQTFBJbWFnZXNMYXlvdXQ/OiAnZ3JpZCcgfCAnaG9yaXpvbnRhbCc7XG4gICAgaGVhZGVyRm9udEZhbWlseT86IHN0cmluZztcbiAgICBzdGF0aWNQTFBJbWFnZU5hbWVzPzogc3RyaW5nW107XG4gICAgc3RhdGljSW1hZ2VJbmRleD86IG51bWJlcjtcbiAgICBzdWdnZXN0aW9uQnV0dG9uU3RyaW5nczogc3RyaW5nW107XG4gICAgc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudEFjY2VudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIHN1Z2dlc3Rpb25CdXR0b25EYXRhQXR0cmlidXRlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnPzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICAgIGxvZ29OYW1lPzogc3RyaW5nO1xufVxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyB0aGUgbW91bnQgcG9pbnQgZm9yIGEgd2lkZ2V0XG4gKlxuICogQHBhcmFtIGNsYXNzTmFtZSAtIE9wdGlvbmFsIGNsYXNzIG5hbWUgdG8gYXBwbHkgdG8gdGhlIG1vdW50IHBvaW50LiBUYWlsd2luZCBjbGFzc2VzIGFyZSBzdXBwb3J0ZWRcbiAqIGFuZCBlbmNvdXJhZ2VkLiBVc2UgdGhpcyBwYXJhbWV0ZXIgdG8gc3R5bGUgdGhlIG1vdW50aW5nIGNvbnRhaW5lciBmb3IgdGhlIHdpZGdldC5cbiAqL1xuZXhwb3J0IHR5cGUgV2lkZ2V0TW91bnRpbmdDb25maWcgPSB7XG4gICAgbW91bnRpbmdDb25maWdJZDogc3RyaW5nO1xuICAgIGNvbnRhaW5lcklkOiBzdHJpbmc7XG4gICAgdGVzdElkOiBzdHJpbmc7XG4gICAgcGFyZW50SW5zZXJ0aW9uUG9pbnQ/OiBJbnNlcnRpb25Qb2ludDtcbiAgICBpbnNlcnRpb25Qb2ludDogSW5zZXJ0aW9uUG9pbnQ7XG4gICAgZ3JpZEluc2VydGlvblR5cGU/OiBHcmlkSW5zZXJ0aW9uVHlwZTtcbiAgICB3cmFwcGluZ0VsZW1lbnQ/OiBXcmFwcGluZ0VsZW1lbnQ7XG4gICAgZGl2Q2hlY2tTZWxlY3Rvcj86IHN0cmluZztcbiAgICBzdXBwcmVzc2lvblNlbGVjdG9yPzogc3RyaW5nO1xuICAgIHN0eWxlPzogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcbiAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgZGF0YUF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufTtcbnR5cGUgU3RhdGljV2lkZ2V0TW91bnRpbmcgPSB7XG4gICAgbW91bnRpbmdDb25maWdJZDogc3RyaW5nO1xuICAgIHdpZGdldENvbmZpZ0lkOiBzdHJpbmc7XG59O1xudHlwZSBEeW5hbWljV2lkZ2V0TW91bnRpbmcgPSB7XG4gICAgbW91bnRpbmdDb25maWdJZDogc3RyaW5nO1xuICAgIG1vdW50aW5nUG9pbnRXaWRnZXRzOiBXaWRnZXREaXNwbGF5VGVzdHNbXTtcbn07XG50eXBlIFdpZGdldERpc3BsYXlUZXN0cyA9IHtcbiAgICB0ZXN0czogUGFnZVZhcmlhbnRUZXN0W107XG4gICAgd2lkZ2V0Q29uZmlnSWQ6IHN0cmluZztcbn07XG50eXBlIFdpZGdldE1vdW50aW5nID0gU3RhdGljV2lkZ2V0TW91bnRpbmcgfCBEeW5hbWljV2lkZ2V0TW91bnRpbmc7XG5kZWNsYXJlIGVudW0gV2lkZ2V0VHlwZSB7XG4gICAgQ2hhdFByZXZpZXcgPSBcIkNoYXRQcmV2aWV3XCIsXG4gICAgU29jaWFsUHJvb2ZWMiA9IFwiU29jaWFsUHJvb2ZWMlwiLFxuICAgIENoYXRQcmV2aWV3VjIgPSBcIkNoYXRQcmV2aWV3VjJcIixcbiAgICBDaGF0UHJldmlld0lzTG9hZGluZyA9IFwiQ2hhdFByZXZpZXdJc0xvYWRpbmdcIixcbiAgICBDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbiA9IFwiQ2hhdFByZXZpZXdQb3N0SW50ZXJhY3Rpb25cIixcbiAgICBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uID0gXCJDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uXCIsXG4gICAgU3VnZ2VzdGlvbkJhciA9IFwiU3VnZ2VzdGlvbkJhclwiLFxuICAgIFN1Z2dlc3Rpb25CYXJWMiA9IFwiU3VnZ2VzdGlvbkJhclYyXCIsXG4gICAgSW1hZ2VQcm9tcHRDYXJkID0gXCJJbWFnZVByb21wdENhcmRcIixcbiAgICBJbWFnZUJhbm5lciA9IFwiSW1hZ2VCYW5uZXJcIixcbiAgICBTaW5nbGVJbWFnZVByb21wdCA9IFwiU2luZ2xlSW1hZ2VQcm9tcHRcIixcbiAgICBTZWFyY2hQcm9tcHQgPSBcIlNlYXJjaFByb21wdFwiLFxuICAgIFNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQgPSBcIlNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnRcIixcbiAgICBTZWFyY2hSZXN1bHRzRW50cnlQb2ludCA9IFwiU2VhcmNoUmVzdWx0c0VudHJ5UG9pbnRcIixcbiAgICBTZWFyY2hPdmVybGF5SG9zdCA9IFwiU2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICBOb09wID0gXCJOb09wXCJcbn1cbnR5cGUgV2lkZ2V0Q29uZmlnID0gQ2hhdFByZXZpZXdXaWRnZXRDb25maWcgfCBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnIHwgQ2hhdFByZXZpZXdWMldpZGdldENvbmZpZyB8IENoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uV2lkZ2V0Q29uZmlnIHwgQ2hhdFByZXZpZXdJc0xvYWRpbmdXaWRnZXRDb25maWcgfCBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uV2lkZ2V0Q29uZmlnIHwgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnIHwgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWcgfCBJbWFnZUJhbm5lcldpZGdldENvbmZpZyB8IFNpbmdsZUltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnIHwgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnIHwgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZyB8IFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50V2lkZ2V0Q29uZmlnIHwgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWcgfCBOb09wV2lkZ2V0Q29uZmlnO1xuaW50ZXJmYWNlIEJhc2VXaWRnZXRDb25maWc8VCBleHRlbmRzIFdpZGdldFR5cGU+IHtcbiAgICB3aWRnZXRDb25maWdJZDogc3RyaW5nO1xuICAgIHR5cGU6IFQ7XG4gICAgY29udGVudElkPzogc3RyaW5nO1xufVxuaW50ZXJmYWNlIEltYWdlQmFubmVyV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkltYWdlQmFubmVyPiB7XG4gICAgaW1hZ2VTcmM6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHN1YnRpdGxlOiBzdHJpbmc7XG4gICAgYXNzaXN0YW50TWVzc2FnZTogc3RyaW5nO1xufVxuaW50ZXJmYWNlIENoYXRQcmV2aWV3V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkNoYXRQcmV2aWV3PiB7XG4gICAgdmFyaWFudDogJ2ZpbGxlZCcgfCAnZmxhdCcgfCAnb3V0bGluZWQnO1xuICAgIGFkZFNlcGFyYXRvcnM/OiBib29sZWFuO1xuICAgIHNvY2lhbFByb29mQ29uZmlnPzogU29jaWFsUHJvb2ZDb25maWc7XG4gICAgZm9vdGVyQ29uZmlnPzogQ2hhdFByZXZpZXdGb290ZXJDb25maWc7XG59XG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdIZWFkZXJWMkNvbmZpZyB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gICAgaW1hZ2VIZWlnaHQ/OiBudW1iZXI7XG59XG50eXBlIFNpbmdsZUltYWdlQ29uZmlnID0ge1xuICAgIGxheW91dDogJ3NpbmdsZSc7XG4gICAgaW1hZ2VJbmRleDogbnVtYmVyO1xufTtcbnR5cGUgTXVsdGlJbWFnZUNvbmZpZyA9IHtcbiAgICBsYXlvdXQ6ICdncmlkJyB8ICdob3Jpem9udGFsJztcbiAgICBpbWFnZU5hbWVzOiBzdHJpbmdbXTtcbn07XG50eXBlIFNvY2lhbFByb29mSW1hZ2VDb25maWcgPSBTaW5nbGVJbWFnZUNvbmZpZyB8IE11bHRpSW1hZ2VDb25maWc7XG50eXBlIENoYXRQcmV2aWV3U3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZyA9IHtcbiAgICBidXR0b25TdHJpbmdzOiBzdHJpbmdbXTtcbiAgICBhY2NlbnRCdXR0b25WYXJpYW50cz86IHtcbiAgICAgICAgYnV0dG9uOiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICAgICAgaG92ZXI6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIH07XG4gICAgYnV0dG9uVmFyaWFudHM6IHtcbiAgICAgICAgYnV0dG9uOiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICAgICAgaG92ZXI6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIH07XG4gICAgbnVtUm93cz86IE51bVJvd3M7XG59O1xudHlwZSBDaGF0UHJldmlld0FuaW1hdGVkVGV4dENvbmZpZyA9IHtcbiAgICBsZWFkaW5nVGV4dDogc3RyaW5nO1xuICAgIGFuaW1hdGVkU3RyaW5nczogc3RyaW5nW107XG59O1xudHlwZSBDaGF0UHJldmlld1ZhcmlhbnQgPSB7XG4gICAgdmFyaWFudDogJ2ZsYXQnO1xufSB8IHtcbiAgICB2YXJpYW50OiAnZmlsbGVkJztcbiAgICBiYWNrZ3JvdW5kRmlsbENvbG9yOiBzdHJpbmc7XG59IHwge1xuICAgIHZhcmlhbnQ6ICdvdXRsaW5lZCc7XG59O1xuaW50ZXJmYWNlIEJhc2VDaGF0UHJldmlld0NvbmZpZyB7XG4gICAgaGVhZGVyQ29uZmlnOiBDaGF0UHJldmlld0hlYWRlclYyQ29uZmlnO1xuICAgIHN1Z2dlc3Rpb25CdXR0b25zQ29uZmlnOiBDaGF0UHJldmlld1N1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gICAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnOiBVc2VyUXVlcnlCdXR0b25Db25maWc7XG4gICAgY2hhdFByZXZpZXdWYXJpYW50OiBDaGF0UHJldmlld1ZhcmlhbnQ7XG4gICAgYWRkU2VwYXJhdG9ycz86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdQb3N0SW50ZXJhY3Rpb25XaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXdQb3N0SW50ZXJhY3Rpb24+LCBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICAgIGNoYXRQcmV2aWV3VmFyaWFudDogQ2hhdFByZXZpZXdWYXJpYW50O1xuICAgIGFkZFNlcGFyYXRvcnM/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIENoYXRQcmV2aWV3SXNMb2FkaW5nV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkNoYXRQcmV2aWV3SXNMb2FkaW5nPiwgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbn1cbmludGVyZmFjZSBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkNoYXRQcmV2aWV3UHJvZHVjdENvbXBhcmlzb24+LCBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICAgIHVzZUxhcmdlUHJvZHVjdENvbXBhcmlzb24/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIENoYXRQcmV2aWV3VjJXaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXdWMj4sIEJhc2VDaGF0UHJldmlld0NvbmZpZyB7XG4gICAgYW5pbWF0ZWRUZXh0Q29uZmlnOiBDaGF0UHJldmlld0FuaW1hdGVkVGV4dENvbmZpZztcbn1cbmludGVyZmFjZSBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNvY2lhbFByb29mVjI+LCBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICAgIGN1c3RvbWVyUXVlcnk/OiBzdHJpbmc7XG4gICAgaW1hZ2VDb25maWc6IFNvY2lhbFByb29mSW1hZ2VDb25maWc7XG59XG5pbnRlcmZhY2UgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMj4ge1xuICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb247XG4gICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3M7XG4gICAgdmFyaWFudDogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXJWYXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBzdHJpbmdbXTtcbiAgICAgICAgcHJvZHVjdFNwZWNpZmljPzoge1xuICAgICAgICAgICAgW3Byb2R1Y3RJZDogc3RyaW5nXTogc3RyaW5nW107XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBib2xkRmlyc3RCdXR0b24/OiBib29sZWFuO1xuICAgIHR3b1Jvd3NPbk1vYmlsZT86IGJvb2xlYW47XG4gICAgYW5pbWF0aW9uU3BlZWQ/OiAnc3RhbmRhcmQnIHwgJ3Nsb3cnIHwgJ25vbmUnO1xuICAgIGJ1dHRvbkJvcmRlclJhZGl1cz86ICdzbScgfCAnbWQnIHwgJ2xnJztcbn1cbmludGVyZmFjZSBJbWFnZVByb21wdFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5JbWFnZVByb21wdENhcmQ+IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBsaWdodFRleHQ/OiBib29sZWFuO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgc3VidGl0bGU6IHN0cmluZ1tdO1xuICAgIHN0YXRpY1N1Z2dlc3Rpb25Db3BpZXM6IHN0cmluZ1tdO1xuICAgIHVzZXJRdWVyeUJ1dHRvbkNvbmZpZzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICAgIGZhbGxiYWNrQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xufVxuaW50ZXJmYWNlIFNpbmdsZUltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNpbmdsZUltYWdlUHJvbXB0PiB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBzdGF0aWNTdWdnZXN0aW9uQ29waWVzOiBzdHJpbmdbXTtcbiAgICB1c2VyUXVlcnlCdXR0b25Db25maWc6IFVzZXJRdWVyeUJ1dHRvbkNvbmZpZztcbn1cbmludGVyZmFjZSBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQ+IHtcbiAgICBzZWFyY2haZXJvU3RhdGVWYXJpYW50OiBTZWFyY2haZXJvU3RhdGVWYXJpYW50O1xuICAgIHNlYXJjaElucHV0VmFyaWFudDogU2VhcmNoSW5wdXRWYXJpYW50O1xuICAgIHNlYXJjaEljb25WYXJpYW50PzogU2VhcmNoSWNvblZhcmlhbnQ7XG4gICAgc2VhcmNoSWNvblNpemU/OiBudW1iZXI7XG4gICAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZzogU3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZztcbiAgICBsYXlvdXQ6IFNlYXJjaFplcm9TdGF0ZUxheW91dDtcbiAgICBzZWFyY2hCb3hQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIGFuaW1hdGlvblNwZWVkPzogJ3N0YW5kYXJkJyB8ICdzbG93JyB8ICdub25lJztcbiAgICBjb21wYWN0TGFiZWw/OiBzdHJpbmc7XG4gICAgaW5pdGlhbFN1Z2dlc3Rpb25zPzogc3RyaW5nW107XG4gICAgdXNpbmdQb3J0YWw/OiBib29sZWFuO1xuICAgIGluY2x1ZGVTdWJ0aXRsZT86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgTm9PcFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5Ob09wPiB7XG59XG5pbnRlcmZhY2UgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU2VhcmNoT3ZlcmxheUhvc3Q+IHtcbn1cbmludGVyZmFjZSBTZWFyY2hSZXN1bHRzRW50cnlQb2ludFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TZWFyY2hSZXN1bHRzRW50cnlQb2ludD4ge1xuICAgIHNlYXJjaElucHV0VmFyaWFudDogU2VhcmNoSW5wdXRWYXJpYW50O1xuICAgIHNlYXJjaEZpbHRlclNpZGViYXJWYXJpYW50OiBTZWFyY2hGaWx0ZXJTaWRlYmFyVmFyaWFudDtcbiAgICBwcm9kdWN0R3JpZFZhcmlhbnQ6IFByb2R1Y3RHcmlkVmFyaWFudDtcbiAgICBzZWFyY2hCb3hQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIG5vUmVzdWx0c0ZvdW5kVGV4dD86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0SGVhZGVyUHJvcHMgZXh0ZW5kcyBUZXN0UHJvcHMge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGxvZ28/OiBzdHJpbmc7XG4gICAgbG9nb0hlaWdodD86IG51bWJlcjtcbiAgICBvcmdTaG9ydE5hbWU6IHN0cmluZztcbiAgICB2YXJpYW50PzogU2VhcmNoUHJvbXB0VmFyaWFudDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclF1ZXJ5T3B0aW9ucyB7XG4gICAgZm9vdGVyVmFyaWFudD86ICdzdGFuZGFyZCc7XG4gICAgcmVwbHlCdXR0b25UZXh0Pzogc3RyaW5nO1xuICAgIHJlcGx5QnV0dG9uSWNvbj86ICdtYWduaWZ5aW5nR2xhc3MnIHwgJ3NlbmQnIHwgJ3RoaW5NYWduaWZ5aW5nR2xhc3MnIHwgJ2FpLXNlYXJjaCc7XG59XG50eXBlIFNlYXJjaFByb21wdFZhcmlhbnQgPSAncHJpbWFyeSc7XG5pbnRlcmZhY2UgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNlYXJjaFByb21wdD4ge1xuICAgIHZhcmlhbnQ6IFNlYXJjaFByb21wdFZhcmlhbnQ7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBoZWFkZXJDb25maWc6IFdpZGdldEhlYWRlclByb3BzO1xuICAgIHN1Z2dlc3Rpb25CdXR0b25zOiB7XG4gICAgICAgIHZhcmlhbnQ6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgICAgICBob3ZlclZhcmlhbnQ6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgICAgICBidXR0b25UZXh0czogc3RyaW5nW107XG4gICAgfTtcbiAgICBmb290ZXJDb25maWc/OiBVc2VyUXVlcnlPcHRpb25zO1xufVxudHlwZSBQYWdlVmFyaWFudEJhc2UgPSB7XG4gICAgdmFyaWFudElkOiBzdHJpbmc7XG4gICAgd2lkZ2V0TW91bnRpbmc6IFdpZGdldE1vdW50aW5nW107XG4gICAgdmFyaWFudFRlc3RzOiBQYWdlVmFyaWFudFRlc3RbXTtcbn07XG50eXBlIFBMUFBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICAgIHZhcmlhbnRUeXBlOiAncGxwJztcbiAgICBwbHBJZEV4dHJhY3RvcjogSWRFeHRyYWN0b3I7XG59O1xudHlwZSBQRFBQYWdlVmFyaWFudCA9IFBhZ2VWYXJpYW50QmFzZSAmIHtcbiAgICB2YXJpYW50VHlwZTogJ3BkcCc7XG4gICAgcGFyZW50UHJvZHVjdElkRXh0cmFjdG9yPzogSWRFeHRyYWN0b3I7XG4gICAgcHJvZHVjdElkRXh0cmFjdG9yOiBJZEV4dHJhY3Rvcjtcbn07XG50eXBlIFZpc2l0UGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gICAgdmFyaWFudFR5cGU6ICdwYWdlX3Zpc2l0Jztcbn07XG50eXBlIE90aGVyUGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gICAgdmFyaWFudFR5cGU6ICdvdGhlcic7XG59O1xudHlwZSBIb21lUGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gICAgdmFyaWFudFR5cGU6ICdob21lcGFnZSc7XG59O1xudHlwZSBTZWFyY2hQYWdlVmFyaWFudCA9IFBhZ2VWYXJpYW50QmFzZSAmIHtcbiAgICB2YXJpYW50VHlwZTogJ3NlYXJjaCc7XG59O1xuZXhwb3J0IHR5cGUgUGFnZVZhcmlhbnRDb25maWcgPSBQTFBQYWdlVmFyaWFudCB8IFBEUFBhZ2VWYXJpYW50IHwgVmlzaXRQYWdlVmFyaWFudCB8IE90aGVyUGFnZVZhcmlhbnQgfCBIb21lUGFnZVZhcmlhbnQgfCBTZWFyY2hQYWdlVmFyaWFudDtcbmV4cG9ydCB0eXBlIE9yZ1BhZ2VDb25maWcgPSB7XG4gICAgcGFnZVZhcmlhbnRzOiBQYWdlVmFyaWFudENvbmZpZ1tdO1xuICAgIHdpZGdldENvbmZpZ3M6IFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcbiAgICBtb3VudGluZ0NvbmZpZ3M6IFJlY29yZDxzdHJpbmcsIFdpZGdldE1vdW50aW5nQ29uZmlnPjtcbn07XG5leHBvcnQgdHlwZSBPcmdDb25maWcgPSBPcmdVSUNvbmZpZztcbmV4cG9ydCB7IENhdGVnb3J5RXh0cmFjdG9yVHlwZSwgQ29sb3JOYW1lcywgY29sb3JWYXIsIFBhZ2VWYXJpYW50VGVzdFR5cGUsIFdpZGdldFR5cGUgfTtcbmV4cG9ydCBpbnRlcmZhY2UgRW52aXZlQ29uZmlnIHtcbiAgICBhbXBsaXR1ZGVBcGlLZXk/OiBzdHJpbmc7XG4gICAgZGF0YVJlc2lkZW5jeT86IHN0cmluZztcbiAgICBlbnY/OiBzdHJpbmc7XG4gICAgYmFzZVVybD86IHN0cmluZztcbiAgICByZWFjdEFwcE5hbWU/OiBzdHJpbmc7XG4gICAgY2RuVXJsPzogc3RyaW5nO1xuICAgIGNvbnRleHRTb3VyY2U/OiBzdHJpbmc7XG4gICAgb3JnTGV2ZWxBcGlLZXk/OiBzdHJpbmc7XG4gICAgb3JnU2hvcnROYW1lPzogc3RyaW5nO1xuICAgIG9yZ0lkPzogc3RyaW5nO1xuICAgIGlkZW50aWZ5aW5nUHJlZml4Pzogc3RyaW5nO1xuICAgIGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgICB2YXJpYW50VXJsT3ZlcnJpZGU/OiBzdHJpbmc7XG4gICAgdmFyaWFudEluZm9PdmVycmlkZT86IGFueTtcbiAgICBzaG93PzogYm9vbGVhbjtcbiAgICBwdWJsaWNLZXk/OiBzdHJpbmc7XG4gICAgZmVhdHVyZUdhdGVzPzogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcbn1cbmV4cG9ydCB0eXBlIHsgQ2F0ZWdvcnlFeHRyYWN0b3IsIENoYXRNZXNzYWdlVmFyaWFudCwgQ2hhdE1lc3NhZ2VDb25maWcsIENoYXRQcmV2aWV3Q29uZmlnLCBDaGF0UHJldmlld0lzTG9hZGluZ1dpZGdldENvbmZpZywgQ2hhdFByZXZpZXdQb3N0SW50ZXJhY3Rpb25XaWRnZXRDb25maWcsIENoYXRQcmV2aWV3UHJvZHVjdENvbXBhcmlzb25XaWRnZXRDb25maWcsIENoYXRQcmV2aWV3U3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZywgU29jaWFsUHJvb2ZWMldpZGdldENvbmZpZywgQ2hhdFByZXZpZXdIZWFkZXJWMkNvbmZpZywgQ2hhdFByZXZpZXdWMldpZGdldENvbmZpZywgQ2hhdFByZXZpZXdGb290ZXJDb25maWcsIENoYXRQcmV2aWV3SGVhZGVyQ29uZmlnLCBDaGF0UHJldmlld1dpZGdldENvbmZpZywgQ2hhdFByZXZpZXdWYXJpYW50LCBDb2xvck1hcHBpbmcsIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uLCBGbG9hdGluZ0VudHJ5UG9pbnRDb25maWcsIEZ1bGxDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiwgSWRFeHRyYWN0b3IsIEltYWdlQmFubmVyV2lkZ2V0Q29uZmlnLCBJbWFnZVByb21wdFdpZGdldENvbmZpZywgSW5zZXJ0aW9uUG9pbnQsIE11bHRpSW1hZ2VDb25maWcsIE1lcmNoYW50VmFyaWFudFNldHRpbmdzLCBTZWFyY2hDb25maWcsIE9yZ1VJQ29uZmlnLCBQYWdlQ2FyZENvbmZpZywgUGFnZUNhcmRWYXJpYW50LCBQYWdlQ2FyZEhvdmVyVmFyaWFudCwgUGFnZUNhcmRJY29uVmFyaWFudCwgUHJvZHVjdENhcmRDb25maWcsIFByb2R1Y3RDYXJkVmFyaWFudCwgUHJvZHVjdENhcmRMYXlvdXRWYXJpYW50LCBQcm9kdWN0Q2FyZEhvdmVyVmFyaWFudCwgUHJvZHVjdExpbmtIb3ZlclZhcmlhbnQsIFByb2R1Y3RMaW5rSWNvblZhcmlhbnQsIFByb2R1Y3RMaW5rVmFyaWFudCwgUHJvZHVjdFJldmlld0NvbmZpZywgUHJvZHVjdFJldmlld1N0eWxlVmFyaWFudCwgUHJvZHVjdFJldmlld0NvbG9yVmFyaWFudCwgU2VhcmNoUHJvbXB0VmFyaWFudCwgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnLCBTZWFyY2hSZXN1bHRzRW50cnlQb2ludFdpZGdldENvbmZpZywgU2hvd0Zsb2F0aW5nQnV0dG9uT3B0aW9ucywgU2luZ2xlSW1hZ2VQcm9tcHRXaWRnZXRDb25maWcsIFNlYXJjaEVudHJ5UG9pbnRXaWRnZXRDb25maWcsIFNlYXJjaE92ZXJsYXlIb3N0V2lkZ2V0Q29uZmlnLCBTb2NpYWxQcm9vZkNvbmZpZywgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLCBTdWdnZXN0aW9uQnV0dG9uQ29uZmlnLCBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudCwgVVJMVGVzdCwgVXNlclF1ZXJ5QnV0dG9uQ29uZmlnLCBVc2VyUXVlcnlCdXR0b25JY29uLCBXZWxjb21lU2VjdGlvbkNvbmZpZywgV2VsY29tZVNlY3Rpb25WYXJpYW50LCBXZWxjb21lU2VjdGlvbkNvbG9yVmFyaWFudCwgV2lkZ2V0Q29uZmlnLCBXcmFwcGluZ0VsZW1lbnQsIFNlYXJjaENhcmRWYXJpYW50LCBXaWRnZXREaXNwbGF5VGVzdHMsIE5vT3BXaWRnZXRDb25maWcsIFdpZGdldE1vdW50aW5nLCBTdGF0aWNXaWRnZXRNb3VudGluZywgRHluYW1pY1dpZGdldE1vdW50aW5nLCBQRFBQYWdlVmFyaWFudCwgUExQUGFnZVZhcmlhbnQsIFZpc2l0UGFnZVZhcmlhbnQsIE90aGVyUGFnZVZhcmlhbnQsIEhvbWVQYWdlVmFyaWFudCwgU2VhcmNoUGFnZVZhcmlhbnQsIE51bVJvd3MsIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBWUEsSUFBSSw0QkFBNEIsQ0FBQyxHQUFHO0FBQ3BDLElBQUksMkJBQTJCLENBQUMsVUFBQSwwQkFBQTtBQUNoQyxJQUFJLHdCQUF3QixDQUFDLEdBQUc7QUFDaEMsSUFBSSw2QkFBZ0IsQ0FBQSxHQUFBO0FBQ3BCLElBQUksdUJBQWU7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNuQixJQUFJLG9CQUFlO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDbkIsSUFBSSwwQkFBQyxDQUFBLEdBQUE7QUFDTCxJQUFJLDBCQUFzQixDQUFBLEdBQUE7QUFDMUIsSUFBSSw0QkFBcUIsQ0FBQSxHQUFBO0FBQ3pCLElBQUksNEJBQWtCLENBQUEsR0FBQTtBQUN0QixJQUFJLHNCQUFzQjtDQUFDO09BQVU7T0FBSTtDQUFBO0FBQ3pDLElBQUksa0JBQWtCLENBQUMsR0FBQTtBQUN2QixJQUFJLHVCQUFpQixDQUFBLEdBQUE7QUFDckIsSUFBSSxzQkFBc0IsQ0FBQyxHQUFDO0FBQzVCLElBQUksaUJBQWlCO0NBQUM7T0FBSTtPQUFBO09BQUE7Q0FBQTtBQUMxQixJQUFJLHFCQUFlLENBQUEsR0FBQTtBQUNuQixJQUFJLDBCQUFpQixDQUFBLEdBQUE7QUFDckIsSUFBQywyQkFBQSxDQUFBLEdBQUE7QUFDRCxJQUFJLG9CQUFvQjtDQUFDO09BQVU7T0FBaUI7T0FBQTtDQUFBO0FBQ3BELElBQUksaUJBQWlCLENBQUMsR0FBRztBQUN6QixJQUFJLG1CQUFtQjtDQUFDO09BQUk7T0FBQSxNQUFBO09BQUEsTUFBQTtPQUFBO09BQUEsTUFBQTtPQUFBLE1BQUE7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
@@ -7,8 +7,6 @@ var CategoryExtractorType = /* @__PURE__ */ function(CategoryExtractorType$1) {
7
7
  return CategoryExtractorType$1;
8
8
  }(CategoryExtractorType || {});
9
9
  var PageVariantTestType = /* @__PURE__ */ function(PageVariantTestType$1) {
10
- PageVariantTestType$1["ShopifyPLP"] = "ShopifyPLP";
11
- PageVariantTestType$1["ShopifyPDP"] = "ShopifyPDP";
12
10
  PageVariantTestType$1["PageCategory"] = "PageCategory";
13
11
  PageVariantTestType$1["CatalogCategory"] = "CatalogCategory";
14
12
  PageVariantTestType$1["TopCatalogCategory"] = "TopCatalogCategory";
@@ -25,6 +23,7 @@ var PageVariantTestType = /* @__PURE__ */ function(PageVariantTestType$1) {
25
23
  PageVariantTestType$1["isProductComparison"] = "isProductComparison";
26
24
  PageVariantTestType$1["Fallback"] = "Fallback";
27
25
  PageVariantTestType$1["UrlResolver"] = "UrlResolver";
26
+ PageVariantTestType$1["isScreenWidthSmaller"] = "isScreenWidthSmaller";
28
27
  PageVariantTestType$1["Null"] = "null";
29
28
  return PageVariantTestType$1;
30
29
  }(PageVariantTestType || {});
@@ -50,4 +49,4 @@ var WidgetType = /* @__PURE__ */ function(WidgetType$1) {
50
49
 
51
50
  //#endregion
52
51
  export { CategoryExtractorType, ColorNames, PageVariantTestType, WidgetType, colorVar };
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRleHRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbic7XG5pbXBvcnQgeyBDb2xvck1hcHBpbmcsIENvbG9yTmFtZXMsIGNvbG9yVmFyIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IHsgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlLCBDdXN0b21lclNlcnZpY2VUeXBlIH0gZnJvbSAnc3JjL3R5cGVzL2N1c3RvbWVyU2VydmljZSc7XG5pbXBvcnQgeyBHcmlkSW5zZXJ0aW9uVHlwZSB9IGZyb20gJ3NyYy9tZXJjaGFudHMvZ3JpZEluc2VydGlvbic7XG5pbXBvcnQgeyBET01JbnNlcnRpb25UeXBlIH0gZnJvbSAnc3JjL21lcmNoYW50cy9kb21JbnNlcnRpb24nO1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBhZ2VWaXNpdENhdGVnb3J5LFxuICBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeSxcbn0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENoYXRTdGF0ZSB9IGZyb20gJ3NyYy90eXBlcy9jdXN0c2VydmljZS10eXBlcyc7XG5pbXBvcnQgeyBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzIH0gZnJvbSAnc3JjL3R5cGVzL3N1Z2dlc3Rpb25CYXJWMi10eXBlcyc7XG5pbXBvcnQgeyBUZXN0UHJvcHMgfSBmcm9tICdzcmMvdHlwZXMvdGVzdC10eXBlcyc7XG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuXG50eXBlIFNob3dGbG9hdGluZ0J1dHRvbk9wdGlvbnMgPVxuICB8ICdhbHdheXMnXG4gIHwgJ2FmdGVyLWludGVyYWN0aW9uLW9uLW1vYmlsZS1hbHdheXMtZGVza3RvcCdcbiAgfCAnYWZ0ZXItaW50ZXJhY3Rpb24tYW55d2hlcmUnXG4gIHwgJ25ldmVyJztcblxudHlwZSBGbG9hdGluZ0VudHJ5UG9pbnRDb25maWcgPSB7XG4gIHBvc2l0aW9uOiAnYm90dG9tLWxlZnQnIHwgJ21pZGRsZS1sZWZ0JyB8ICdtaWRkbGUtcmlnaHQnIHwgJ2JvdHRvbS1yaWdodCc7XG4gIGV4cGFuc2lvblRleHQ/OiB7XG4gICAgcGRwOiBzdHJpbmc7XG4gICAgcGxwOiBzdHJpbmc7XG4gIH07XG4gIG1pbmltaXplZENvbG9yOiBzdHJpbmc7XG4gIGV4cGFuZGVkQ29sb3I6IHN0cmluZztcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xuICBzaG93T3B0aW9uOiBTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zO1xuICBpY29uU1ZHU3JjPzogc3RyaW5nO1xuICBpY29uU2l6ZT86IG51bWJlcjtcbiAgaWNvblN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICBpY29uRmlsbENvbG9yPzogc3RyaW5nO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIGZvbnRTaXplPzogbnVtYmVyO1xufTtcblxudHlwZSBXZWxjb21lU2VjdGlvblZhcmlhbnQgPSAnc3RhbmRhcmQnIHwgJ291dGxpbmVkJztcblxudHlwZSBXZWxjb21lU2VjdGlvbkNvbG9yVmFyaWFudCA9ICdzdGFuZGFyZCcgfCAnYWNjZW50JyB8ICdicmFuZCcgfCAnbGlnaHQnO1xuXG50eXBlIFdlbGNvbWVTZWN0aW9uQ29uZmlnID0ge1xuICB2YXJpYW50OiBXZWxjb21lU2VjdGlvblZhcmlhbnQ7XG4gIGNvbG9yVmFyaWFudD86IFdlbGNvbWVTZWN0aW9uQ29sb3JWYXJpYW50O1xuICB0aXRsZT86IHN0cmluZztcbiAgc3VidGl0bGU/OiBzdHJpbmc7XG4gIC8vIGljb24/OiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxSZWFjdC5TVkdQcm9wczxTVkdTVkdFbGVtZW50Pj47XG4gIC8qIFNlcmlhbGl6YWJsZSBpY29uIG5hbWUgdGhhdCBtYXBzIHRvIGEgUmVhY3QgY29tcG9uZW50LiBQcmVmZXJyZWQgb3ZlciBpY29uIGZvciBkYXRhYmFzZSBzdG9yYWdlLiAqL1xuICBpY29uTmFtZT86IHN0cmluZztcbiAgaW1hZ2VTcmM/OiBzdHJpbmc7XG59O1xuXG50eXBlIENoYXRQcmV2aWV3Q29uZmlnID0ge1xuICB2YXJpYW50OiAnZmxhdCcgfCAnZmlsbGVkJyB8ICdvdXRsaW5lZCc7XG4gIGxhcmdlUHJvZHVjdENvbXBhcmlzb24/OiBib29sZWFuO1xuICBmaWxsZWRCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgaWNvbkZpbGxDb2xvcjogc3RyaW5nO1xuICBidXR0b25UZXh0Q29sb3I/OiBzdHJpbmc7XG4gIGJ1dHRvblRleHRTZWNvbmRhcnlDb2xvcj86IHN0cmluZztcbiAgYnV0dG9uVGV4dEhvdmVyQ29sb3I/OiBzdHJpbmc7XG4gIGJ1dHRvbkJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICBidXR0b25CYWNrZ3JvdW5kSG92ZXJDb2xvcjogc3RyaW5nO1xuICBidXR0b25Cb3JkZXJDb2xvcj86IHN0cmluZztcbiAgYnV0dG9uQm9yZGVySG92ZXJDb2xvcj86IHN0cmluZztcbiAgY29waWVzOiB7IHBkcDogc3RyaW5nW107IHBscDogc3RyaW5nW10gfTtcbiAgc3RhdGljU3VnZ2VzdGlvbkNvcGllcz86IHsgcGRwOiBzdHJpbmdbXTsgcGxwOiBzdHJpbmdbXSB9O1xuICBzdGF0aWNQTFBJbWFnZXM/OiBzdHJpbmdbXTtcbiAgZm9vdGVyQ29uZmlnPzogQ2hhdFByZXZpZXdGb290ZXJDb25maWc7XG4gIGhlYWRlckNvbmZpZz86IENoYXRQcmV2aWV3SGVhZGVyQ29uZmlnO1xuICB0b3BNYXJnaW4/OiBudW1iZXI7XG59O1xuXG50eXBlIENoYXRQcmV2aWV3SGVhZGVyQ29uZmlnID0ge1xuICB0aXRsZT86IHN0cmluZztcbiAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gIGltYWdlSGVpZ2h0PzogbnVtYmVyO1xuICBzcGFya2xlc0NvbG9yPzogc3RyaW5nOyAvLyB1c2VkIGJ5OiBzcGFueCwgdW5pcXVlVmludGFnZSwgZHJlYW1sYW5kQmFieVxuICBmb250U2l6ZT86IHN0cmluZztcbiAgaWNvbldpZHRoPzogc3RyaW5nO1xuICBpY29uSGVpZ2h0Pzogc3RyaW5nO1xufTtcblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3Rm9vdGVyQ29uZmlnIHtcbiAgaGFzRmFkZT86IGJvb2xlYW47IC8vIHVzZWQgYnk6IHNwYW54LCB1bmlxdWVWaW50YWdlXG4gIHN1Z2dlc3Rpb25CdXR0b25WYXJpYW50PzogJ2RhcmsnIHwgJ2xpZ2h0JyB8ICdvdXRsaW5lZCc7XG4gIHN1Z2dlc3Rpb25zQmFja2dyb3VuZD86IHN0cmluZzsgLy8gdXNlZCBieTogY2FyYmFoblxuICByZXBseUJ1dHRvbkljb24/OiAnc2VuZCcgfCAnbWFnbmlmeWluZ0dsYXNzJyB8ICd0aGluTWFnbmlmeWluZ0dsYXNzJyB8ICdzZWFyY2hJY29uJztcbiAgcmVwbHlCdXR0b25UZXh0Pzogc3RyaW5nO1xuICByZXBseUlucHV0SGFzU2hhZG93PzogYm9vbGVhbjsgLy8gdXNlZCBieTogc3BhbnhcbiAgcmVwbHlJbnB1dEhhc0JvcmRlcj86IGJvb2xlYW47IC8vIHVzZWQgYnk6IHNwYW54XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZzsgLy8gdXNlZCBieSBzcGFueCwgdHVzaGJhYnksIHdpbGwgbmVlZCBjdXN0b20gQ1NTIHdoZW4gc3dpdGNoaW5nIG92ZXJcbn1cblxudHlwZSBQcm9kdWN0UmV2aWV3U3R5bGVWYXJpYW50ID0gJ3N0YW5kYXJkJyB8ICdib3JkZXJlZCc7XG5cbnR5cGUgUHJvZHVjdFJldmlld0NvbG9yVmFyaWFudCA9ICduZXV0cmFsJyB8ICdicmFuZCcgfCAncHJlbWl1bSc7XG5cbmludGVyZmFjZSBQcm9kdWN0UmV2aWV3Q29uZmlnIHtcbiAgc3R5bGVWYXJpYW50OiBQcm9kdWN0UmV2aWV3U3R5bGVWYXJpYW50O1xuICBjb2xvclZhcmlhbnQ6IFByb2R1Y3RSZXZpZXdDb2xvclZhcmlhbnQ7XG4gIHZlcmlmaWVkQnV5ZXJUaXRsZTogc3RyaW5nO1xuICBpbmNlbnRpdml6ZWRSZXZpZXdGbGFnPzogYm9vbGVhbjtcbn1cblxudHlwZSBQYWdlQ2FyZFZhcmlhbnQgPSAnZmlsbGVkJyB8ICdvdXRsaW5lZCcgfCAnbWluaW1hbCc7XG5cbnR5cGUgUGFnZUNhcmRIb3ZlclZhcmlhbnQgPSAnbm9uZScgfCAnc2hhZG93JyB8ICdsaWZ0JztcblxudHlwZSBQYWdlQ2FyZEljb25WYXJpYW50ID0gJ3ByaW1hcnknIHwgJ2FjY2VudCcgfCAnYmFja2dyb3VuZCcgfCAnbm9uZSc7XG5cbnR5cGUgUGFnZUNhcmRDb25maWcgPSB7XG4gIHZhcmlhbnQ6IFBhZ2VDYXJkVmFyaWFudDtcbiAgaG92ZXJWYXJpYW50OiBQYWdlQ2FyZEhvdmVyVmFyaWFudDtcbiAgaWNvblZhcmlhbnQ6IFBhZ2VDYXJkSWNvblZhcmlhbnQ7XG59O1xuXG50eXBlIFByb2R1Y3RDYXJkVmFyaWFudCA9ICdmaWxsZWQnIHwgJ2JvcmRlcmVkJyB8ICdtaW5pbWFsJyB8ICd0cmFuc3BhcmVudEJvcmRlcmVkJztcblxudHlwZSBQcm9kdWN0Q2FyZEhvdmVyVmFyaWFudCA9ICdiYWNrZ3JvdW5kRGFyaycgfCAnbm9uZSc7XG5cbnR5cGUgUHJvZHVjdENhcmRMYXlvdXRWYXJpYW50ID0gJ25vcm1hbCcgfCAndGFsbCcgfCAnc3F1YXJlJztcblxuaW50ZXJmYWNlIFByb2R1Y3RDYXJkQ29uZmlnIHtcbiAgdmFyaWFudDogUHJvZHVjdENhcmRWYXJpYW50O1xuICBob3ZlclZhcmlhbnQ6IFByb2R1Y3RDYXJkSG92ZXJWYXJpYW50O1xuICBsYXlvdXRWYXJpYW50OiBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQ7XG4gIHByaWNlUHJlZml4Pzogc3RyaW5nO1xufVxuXG50eXBlIENTU3dpdGNoQ29uZmlnID0ge1xuICB2YXJpYW50OiAnYXR0YWNoZWQnIHwgJ2RldGFjaGVkJztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGJvcmRlckNvbG9yOiBzdHJpbmc7XG4gIHNlbGVjdGVkVGV4dENvbG9yOiBzdHJpbmc7XG4gIHNlbGVjdGVkQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICB1bnNlbGVjdGVkVGV4dENvbG9yOiBzdHJpbmc7XG4gIHVuc2VsZWN0ZWRCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIHN1cHBvcnRUaXRsZT86IHN0cmluZztcbiAgc3BpZmZ5VGl0bGU/OiBzdHJpbmc7XG4gIHNwaWZmeVRpdGxlSGFzTG9nbz86IGJvb2xlYW47XG59O1xuXG50eXBlIENoYXRIZWFkZXJDb25maWcgPSB7XG4gIGNvbGxhcHNlZENvbG9yOiBzdHJpbmc7XG4gIGV4cGFuZGVkQ29sb3I6IHN0cmluZztcbiAgY2hldnJvbkNvbG9yOiBzdHJpbmc7XG4gIGltYWdlU3JjPzogc3RyaW5nO1xuICBpY29uPzogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8UmVhY3QuU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4+O1xuICBjbG9zZUljb24/OiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxSZWFjdC5TVkdQcm9wczxTVkdTVkdFbGVtZW50Pj47XG4gIGJvcmRlckJvdHRvbT86IHN0cmluZztcbiAgaGVhZGVyQmFySGVpZ2h0UGFydGlhbFZpZXc6IG51bWJlcjtcbiAgaGVhZGVyQmFySGVpZ2h0RnVsbFZpZXc6IG51bWJlcjtcbiAgY3VzdG9tZXJTdXBwb3J0U3dpdGNoQ29uZmlnPzogQ1NTd2l0Y2hDb25maWc7XG59O1xuXG50eXBlIFNpbXBsZUN1c3RvbWVyU2VydmljZUludGVncmF0aW9uID0ge1xuICBpbnRlZ3JhdGlvbk1vZGU6IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZTtcbiAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVR5cGU7XG4gIHVzZVVuaWZpZWRCdXR0b24/OiBib29sZWFuO1xuICBtYXhmaWxlVXBsb2FkU2l6ZT86IG51bWJlcjtcbn07XG5cbnR5cGUgRnVsbEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uID0ge1xuICBpbnRlZ3JhdGlvbk1vZGU6IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZTtcbiAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVR5cGU7XG4gIHVzZVVuaWZpZWRCdXR0b24/OiBib29sZWFuO1xuICBjaGF0RW5hYmxlZER1cmluZ0J1c2luZXNzSG91cnM/OiBib29sZWFuO1xuICBzaG93TmFtZUlucHV0PzogYm9vbGVhbjtcbiAgZm9ybUFpTmFtZT86IHN0cmluZztcbiAgd2VsY29tZVRpdGxlOiBzdHJpbmc7XG4gIHdlbGNvbWVEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzaG93V2VsY29tZU9uRm9ybT86IGJvb2xlYW47XG4gIGNvbnRhY3RTdWJqZWN0T3B0aW9ucz86IHN0cmluZ1tdO1xuICBnZXRDdXN0b21XYWl0aW5nTWVzc2FnZT86IChuYW1lPzogc3RyaW5nKSA9PiBzdHJpbmc7XG4gIHdpdGhpbkJ1c2luZXNzSG91cnNNZXNzYWdlPzogc3RyaW5nO1xuICB3aXRoaW5CdXNpbmVzc0hvdXJzV2FpdGluZ01lc3NhZ2U/OiBzdHJpbmc7XG4gIG91dHNpZGVCdXNpbmVzc0hvdXJzTWVzc2FnZT86IHN0cmluZztcbiAgb3V0c2lkZUJ1c2luZXNzSG91cnNXYWl0aW5nTWVzc2FnZT86IHN0cmluZztcbiAgd2l0aGluQnVzaW5lc3NIb3Vyc0Zvcm1NZXNzYWdlPzogc3RyaW5nO1xuICBvdXRzaWRlQnVzaW5lc3NIb3Vyc0Zvcm1NZXNzYWdlPzogc3RyaW5nO1xuICBzdWdnZXN0ZWRBSVF1ZXN0aW9ucz86IHN0cmluZ1tdO1xuICBidXNpbmVzc0hvdXJzUG9sbGluZz86IG51bWJlcjtcbiAgbWF4ZmlsZVVwbG9hZFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgaGFuZGxlZCBieSB0aGUgQkUuXG4gICAqL1xuICBidXNpbmVzc0hvdXJzU3RhcnRVVEM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIEJFLlxuICAgKi9cbiAgYnVzaW5lc3NIb3Vyc0VuZFVUQz86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgaGFuZGxlZCBieSB0aGUgQkUuXG4gICAqL1xuICBidXNpbmVzc0hvdXJzVGltZXpvbmU/OiBzdHJpbmc7XG5cbiAgc2hvd0FJU3VnZ2VzdGlvbnNXaXRoaW5CdXNpbmVzc0hvdXJzPzogYm9vbGVhbjtcbiAgd2FpdGluZ01lc3NhZ2VQb3NpdGlvbj86ICdCRUZPUkVfTUVTU0FHRVMnIHwgJ0FGVEVSX01FU1NBR0VTJztcbiAgbGVnYWxNZXNzYWdlPzogc3RyaW5nO1xuICB3aXRoaW5CdXNpbmVzc0hvdXJzSW5pdGlhbFN0YXRlPzogQ2hhdFN0YXRlO1xuICBvdXRzaWRlQnVzaW5lc3NIb3Vyc0luaXRpYWxTdGF0ZT86IENoYXRTdGF0ZTtcbiAgd2l0aGluQnVzaW5lc3NIb3Vyc0J1dHRvbnRleHQ/OiBzdHJpbmc7XG4gIG91dHNpZGVCdXNpbmVzc0hvdXJzQnV0dG9udGV4dD86IHN0cmluZztcbiAgcmVvcGVuQ2hhdE1lc3NhZ2U6IHN0cmluZztcbn07XG5cbnR5cGUgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24gPSBTaW1wbGVDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiB8IEZ1bGxDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjtcblxudHlwZSBDb252ZXJzYXRpb25hbFNlYWNoID0ge1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgcmVwbHlJbnB1dD86IFJlcGx5SW5wdXRDb25maWc7XG4gIHN1Z2dlc3Rpb25zPzogc3RyaW5nW107XG4gIGVudHJ5cG9pbnRCZ0NvbG9yPzogc3RyaW5nO1xuICBlbnRyeXBvaW50VGV4dENvbG9yPzogc3RyaW5nO1xuICBlbnRyeXBvaW50QnRuQ29sb3I/OiBzdHJpbmc7XG4gIGVudHJ5cG9pbnRCdG5UZXh0Q29sb3I/OiBzdHJpbmc7XG4gIGVudHJ5cG9pbnRCdG5Cb3JkZXJDb2xvcj86IHN0cmluZztcbiAgZW50cnlwb2ludENvbnRhaW5lcj86IHN0cmluZztcbiAgZW50cnlwb2ludFRyaWdnZXI/OiBzdHJpbmc7XG4gIHByb2R1Y3RHcmlkQ29udGFpbmVyPzogc3RyaW5nO1xuICBnZW5lcmFsU2VhcmNoQnRuPzogc3RyaW5nO1xuICBwYWdlQ29udGVudD86IHN0cmluZztcbiAgc2VhcmNoQ29udGVudD86IHN0cmluZztcbiAgc29ydGluZ1RpdGxlPzogc3RyaW5nO1xuICBzZWxlY3Rpb25UaXRsZT86IHN0cmluZztcbiAgc29ydGluZ0ZvbnQ/OiBzdHJpbmc7XG4gIG9wdGlvbnNGb250Pzogc3RyaW5nO1xuICBzb3J0aW5nQnV0dG9uVGV4dD86IHN0cmluZztcbn07XG5cbnR5cGUgQ2hhdE1lc3NhZ2VWYXJpYW50ID0gJ3N0YW5kYXJkJyB8ICdwcmVtaXVtJyB8ICdhY2NlbnQnO1xuXG5pbnRlcmZhY2UgQ2hhdE1lc3NhZ2VDb25maWcge1xuICBhc3Npc3RhbnRDaGF0VGl0bGU6IHN0cmluZztcbiAgdmFyaWFudDogQ2hhdE1lc3NhZ2VWYXJpYW50O1xuICBwcm9kdWN0TGluazoge1xuICAgIHZhcmlhbnQ6IFByb2R1Y3RMaW5rVmFyaWFudDtcbiAgICBob3ZlclZhcmlhbnQ6IFByb2R1Y3RMaW5rSG92ZXJWYXJpYW50O1xuICAgIGljb25WYXJpYW50OiBQcm9kdWN0TGlua0ljb25WYXJpYW50O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUmVwbHlJbnB1dENvbmZpZyB7XG4gIC8vIFRPRE8gY29uc2lkZXIgbWFraW5nIHRoaXMgYSBudW1iZXJcbiAgc2l6ZT86ICdtZCcgfCAnbGcnO1xuICBzZW5kSWNvbjogJ2Fycm93VXAnIHwgJ3NlbmQnIHwgJ3NlYXJjaCc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGFydGlhbFZpZXdDb25maWcge1xuICAvLyBtYXhpbXVtIGhlaWdodCBvZiB0aGUgcGFydGlhbCB2aWV3IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgc2NyZWVuIGhlaWdodFxuICBtYXhIZWlnaHQ6IG51bWJlcjtcbiAgYm9yZGVyUmFkaXVzPzogc3RyaW5nO1xufVxuXG50eXBlIFByb2R1Y3RMaW5rSWNvblZhcmlhbnQgPVxuICB8ICdhY2NlbnRQcmltYXJ5J1xuICB8ICdiYWNrZ3JvdW5kUHJpbWFyeSdcbiAgfCAnYmFja2dyb3VuZFByaW1hcnlEYXJrJ1xuICB8ICdib3JkZXJMaWdodCdcbiAgfCAnYmFja2dyb3VuZFNhdHVyYXRlZCc7XG5cbnR5cGUgUHJvZHVjdExpbmtWYXJpYW50ID0gJ3RleHRMaW5rJztcblxudHlwZSBQcm9kdWN0TGlua0hvdmVyVmFyaWFudCA9ICdiYWNrZ3JvdW5kRGFyayc7XG5cbnR5cGUgU2VhcmNoQ2FyZFZhcmlhbnQgPVxuICB8ICdiYWNrZ3JvdW5kUHJpbWFyeSdcbiAgfCAnYmFja2dyb3VuZFNlY29uZGFyeSdcbiAgfCAnYmFja2dyb3VuZFNlY29uZGFyeURhcmsnXG4gIHwgJ2JhY2tncm91bmRMaWdodCdcbiAgfCAnYmFja2dyb3VuZFNhdHVyYXRlZCc7XG5cbnR5cGUgU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQgPVxuICB8ICdvdXRsaW5lZCdcbiAgfCAnb3V0bGluZWRMaWdodCdcbiAgfCAncHJpbWFyeSdcbiAgfCAnc2Vjb25kYXJ5J1xuICB8ICd0ZXJ0aWFyeSdcbiAgfCAnZGFyaydcbiAgfCAnZGFya0FjY2VudCdcbiAgfCAnZGFya1ByaW1hcnknXG4gIHwgJ3NlY29uZGFyeURhcmsnXG4gIHwgJ3NlY29uZGFyeUFjY2VudCdcbiAgfCAndHJhbnNwYXJlbnQnXG4gIHwgJ3RyYW5zcGFyZW50RGFyaydcbiAgfCAnbGlnaHREYXJrJztcblxuaW50ZXJmYWNlIFN1Z2dlc3Rpb25CdXR0b25Db25maWcge1xuICB2YXJpYW50PzogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gIGhvdmVyVmFyaWFudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICBhbnN3ZXJWYXJpYW50PzogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gIGJvcmRlclJhZGl1cz86ICdzbScgfCAnbWQnIHwgJ2xnJztcbn1cblxudHlwZSBOdW1Sb3dzID0gJ2RlZmF1bHQnIHwgJ2Fsd2F5c09uZVJvdycgfCAnYWx3YXlzVHdvUm93cycgfCAndHdvUm93c09uTW9iaWxlJztcblxuaW50ZXJmYWNlIEFscGhhYmV0aWNGaWx0ZXJTb3J0aW5nIHtcbiAgdHlwZTogJ2FscGhhYmV0aWMnO1xufVxuaW50ZXJmYWNlIFByb2R1Y3RDb3VudEZpbHRlclNvcnRpbmcge1xuICB0eXBlOiAncHJvZHVjdENvdW50Jztcbn1cbmludGVyZmFjZSBDdXN0b21GaWx0ZXJTb3J0aW5nIHtcbiAgdHlwZTogJ2N1c3RvbSc7XG4gIG1hcDogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbn1cblxudHlwZSBGaWx0ZXJTb3J0aW5nID0gQWxwaGFiZXRpY0ZpbHRlclNvcnRpbmcgfCBQcm9kdWN0Q291bnRGaWx0ZXJTb3J0aW5nIHwgQ3VzdG9tRmlsdGVyU29ydGluZztcblxuaW50ZXJmYWNlIEJhc2VGaWx0ZXJDb25maWcge1xuICBmaWx0ZXJJZDogc3RyaW5nO1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xufVxuaW50ZXJmYWNlIER5bmFtaWNGaWx0ZXJDb25maWcgZXh0ZW5kcyBCYXNlRmlsdGVyQ29uZmlnIHtcbiAgdHlwZTogJ2R5bmFtaWMnO1xuICBhdHRyaWJ1dGU6IHN0cmluZztcbiAgc29ydGluZzogRmlsdGVyU29ydGluZztcbn1cblxuaW50ZXJmYWNlIFByaWNlRmlsdGVyQ29uZmlnIGV4dGVuZHMgQmFzZUZpbHRlckNvbmZpZyB7XG4gIHR5cGU6ICdwcmljZSc7XG4gIGJ1Y2tldFNpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVyQXR0cmlidXRlID0gRHluYW1pY0ZpbHRlckNvbmZpZyB8IFByaWNlRmlsdGVyQ29uZmlnO1xuXG5leHBvcnQgdHlwZSBTZWFyY2haZXJvU3RhdGVWYXJpYW50ID0gJ2JhY2tncm91bmRUZXJ0aWFyeScgfCAnYmFja2dyb3VuZERhcmsnIHwgJ2JhY2tncm91bmRQcmltYXJ5JztcbmV4cG9ydCB0eXBlIFNlYXJjaFplcm9TdGF0ZUxheW91dCA9ICdpbnB1dCcgfCAnaWNvbic7XG5cbmV4cG9ydCB0eXBlIFNlYXJjaElucHV0VmFyaWFudCA9ICdzdGFuZGFyZCc7XG5cbmV4cG9ydCB0eXBlIFNlYXJjaEljb25WYXJpYW50ID0gJ3RoaW4nIHwgJ2JvbGQnO1xuXG5leHBvcnQgdHlwZSBTZWFyY2hGaWx0ZXJTaWRlYmFyVmFyaWFudCA9ICdkYXJrQnV0dG9uJyB8ICdsaWdodEJ1dHRvbic7XG5cbmV4cG9ydCB0eXBlIFByb2R1Y3RHcmlkVmFyaWFudCA9ICdzdGFuZGFyZCcgfCAnc3F1YXJlJztcblxudHlwZSBVc2VyUXVlcnlCdXR0b25JY29uID1cbiAgfCAnbWFnbmlmeWluZ0dsYXNzJ1xuICB8ICdzZW5kJ1xuICB8ICdtYWduaWZ5aW5nR2xhc3NUaGluJ1xuICB8ICdzZW5kQXJyb3cnXG4gIHwgJ3NlYXJjaEljb24nO1xuXG5pbnRlcmZhY2UgVXNlclF1ZXJ5QnV0dG9uQ29uZmlnIHtcbiAgdmFyaWFudD86ICdib3gnIHwgJ3VuZGVybGluZUxpZ2h0JyB8ICd1bmRlcmxpbmVEYXJrJztcbiAgcGxhY2Vob2xkZXJUZXh0Pzogc3RyaW5nO1xuICBpY29uOiBVc2VyUXVlcnlCdXR0b25JY29uO1xufVxuXG4vLyBUT0RPOiB0aGlzIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgdG9wLWxldmVsIHdpZGdldCBjb25maWdcbmludGVyZmFjZSBUZXJtc0FuZENvbmRpdGlvbnNDb25maWcge1xuICBjb3B5OiBzdHJpbmc7XG4gIGxpbms6IHN0cmluZztcbiAgbGlua1RleHQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE1lcmNoYW50VmFyaWFudFNldHRpbmdzIHtcbiAgZHluYW1pY1ZhcmlhbnRzOiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjsgLy8gVGhpcyBmZWF0dXJlIHdpbGwgZW5hYmxlIGR5bmFtaWMgdmFyaWFudHMgZm9yIHRoZSBtZXJjaGFudC4gVXNlZnVsIGZvciBTUEEnc1xuICAgIHJlZnJlc2hJbnRlcnZhbD86IG51bWJlcjsgLy8gVGhlIGludGVydmFsIGluIG1pbGxpc2Vjb25kcyB0byBjaGVjayBmb3IgY2hhbmdlcyBpbiB0aGUgVVJMXG4gIH07XG59XG5cbmludGVyZmFjZSBGbG9hdGluZ0NoYXRDb25maWcge1xuICBlbmFibGVXYXRlcm1hcms6IGJvb2xlYW47XG4gIHVzZXJRdWVyeUlucHV0RW5hYmxlZDogYm9vbGVhbjtcbiAgaWdub3JlRmlyc3RNb2RlbFJlc3BvbnNlPzogYm9vbGVhbjtcbiAgbmV2ZXJTaG93U2luZ2xlUHJvZHVjdENhcmRzPzogYm9vbGVhbjtcbiAgdGVybXNBbmRDb25kaXRpb25zQ29uZmlnPzogVGVybXNBbmRDb25kaXRpb25zQ29uZmlnO1xuXG4gIC8vIEZvb3RlciBjb25maWdcbiAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZz86IFN1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gIHJlcGx5SW5wdXRDb25maWc6IFJlcGx5SW5wdXRDb25maWc7XG59XG5cbmludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICBlbmFibGVHbG9iYWxTZWFyY2g6IGJvb2xlYW47XG4gIHNlYXJjaEZpbHRlckNvbmZpZzogRmlsdGVyQXR0cmlidXRlW107XG4gIHNlYXJjaE92ZXJsYXlIZWFkaW5nPzogc3RyaW5nO1xuICByZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmw/OiBzdHJpbmc7XG4gIGFkZGl0aXZlRHluYW1pY0ZpbHRlcnM/OiBib29sZWFuO1xuICByZWNvbW1lbmRlZFByb2R1Y3RzPzogc3RyaW5nW107XG4gIHJlY29tbWVuZGVkUHJvZHVjdHNIZWFkaW5nPzogc3RyaW5nO1xufVxuXG50eXBlIE9yZ1VJQ29uZmlnID0ge1xuICBzaG9ydE5hbWU6IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGZsb2F0aW5nRW50cnlwb2ludENvbmZpZz86IEZsb2F0aW5nRW50cnlQb2ludENvbmZpZztcbiAgLy8gRGVwcmVjYXRlZCAtIHJlbW92ZSB3aXRoIENoYXRQcmV2aWV3IHJld3JpdGVcbiAgY2hhdFByZXZpZXdDb25maWc/OiBDaGF0UHJldmlld0NvbmZpZztcblxuICBjdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb247XG4gIC8vIERlcHJlY2F0ZWQgLSByZW1vdmUgd2hlbiBHbG9iYWwgU2VhcmNoIGlzIGZ1bGx5IGxhdW5jaGVkXG4gIGNvbnZlcnNhdGlvbmFsU2VhcmNoPzogQ29udmVyc2F0aW9uYWxTZWFjaDtcblxuICBtZXJjaGFudE92ZXJyaWRlQ3NzPzogc3RyaW5nO1xuXG4gIC8vIERlcHJlY2F0ZWQgVE9ETzogUmVtb3ZlIHRoaXMgZGVwcmVjYXRlZCB2YWx1ZSB3aGVuIEdyb292ZSBDWCBoYXMgcHJvcGVyIHVuaWZpZWQgYnV0dG9uIHN1cHBvcnRcbiAgLy8gc2VsZWN0b3JzIGZvciBlbGVtZW50cyB0aGF0IHNob3VsZCBiZSBoaWRkZW4gd2hlbiB0aGUgY2hhdCBpcyBvcGVuXG4gIC8vIGUuZy4gQ1Mgd2lkZ2V0cyB3aXRoIG1heCB6LWluZGV4IChcImRpdltpZCo9J2NzLWNvbnRhaW5lciddXCIpXG4gIGhpZGRlbkVsZW1lbnRTZWxlY3RvcnM/OiBzdHJpbmdbXTtcblxuICBtZXJjaGFudFZhcmlhbnRTZXR0aW5ncz86IE1lcmNoYW50VmFyaWFudFNldHRpbmdzO1xuICAvLyBUT0RPOiBNaWdyYXRlIGFsbCBmbG9hdGluZyBjaGF0IGNvbmZpZyBpbnRvIHRoaXMgdG9wLWxldmVsIGtleVxuICAvL1xuICBmbG9hdGluZ0NoYXRDb25maWc6IEZsb2F0aW5nQ2hhdENvbmZpZztcblxuICAvLyBDb250YWluIGFsbCBzZWFyY2ggY29uZmlnIGhlcmVcbiAgc2VhcmNoQ29uZmlnOiBTZWFyY2hDb25maWc7XG4gIC8vIFRPRE86IE1vdmUgdGhlc2UgaW50byBGbG9hdGluZ0NoYXRDb25maWdcbiAgLy8gQ2hhdCBIZWFkZXIgcmVsYXRlZCB2YWx1ZXNcbiAgY2hhdEhlYWRlcjogQ2hhdEhlYWRlckNvbmZpZztcbiAgc3RpY2t5QWdlbnRTd2l0Y2hTdWdnZXN0aW9uPzogYm9vbGVhbjtcbiAgcGFydGlhbFZpZXdDb25maWc6IFBhcnRpYWxWaWV3Q29uZmlnO1xuICB3ZWxjb21lU2VjdGlvbkNvbmZpZz86IFdlbGNvbWVTZWN0aW9uQ29uZmlnO1xuICAvLyBEaWZmZXJlbnQgcmVzcG9uc2UgdmFsdWVzXG4gIHByb2R1Y3RDYXJkQ29uZmlnPzogUHJvZHVjdENhcmRDb25maWc7XG4gIHByb2R1Y3RSZXZpZXdDb25maWc/OiBQcm9kdWN0UmV2aWV3Q29uZmlnO1xuICBwYWdlQ2FyZENvbmZpZz86IFBhZ2VDYXJkQ29uZmlnO1xuICBjaGF0TWVzc2FnZUNvbmZpZzogQ2hhdE1lc3NhZ2VDb25maWc7XG59O1xuXG50eXBlIEluc2VydGlvblBvaW50ID0ge1xuICBzZWxlY3Rvcjogc3RyaW5nO1xuICAvLyB0aGlzIGlzIHRoZSBpbmRleCBvZiB0aGUgdGFyZ2V0IGVsZW1lbnQsIDAgaWYgbWlzc2luZ1xuICBzZWxlY3Rpb25JbmRleD86IG51bWJlcjtcbiAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZTtcbn07XG5cbnR5cGUgVVJMVGVzdCA9ICdzaG9waWZ5JyB8ICdudWxsJztcblxudHlwZSBJZEV4dHJhY3RvciA9XG4gIHwgJ3Nob3BpZnktcHJvZHVjdC1pZCdcbiAgfCAnc2hvcGlmeS1jb2xsZWN0aW9uLWlkJ1xuICB8ICdzaG9waWZ5LXByb2R1Y3QtdmFyaWFudC1pZCdcbiAgfCAndXJsLXJlc29sdmVyLXByb2R1Y3QtaWQnXG4gIHwgJ3VybC1yZXNvbHZlci1wbHAtaWQnXG4gIHwgJ251bGwnO1xuXG4vLyBUaGlzIGNvbnRhaW5zIGEgbWFwIGJldHdlZW4gUGFnZVZpc2l0Q2F0ZWdvcnkgYW5kIGEgbGlzdCBvZiBVUkwncyB0aGF0IGFyZSBjbGFzc2lmaWVkIGFzIHRoZSB2YWx1ZVxuZW51bSBDYXRlZ29yeUV4dHJhY3RvclR5cGUge1xuICBWaXNpdENhdGVnb3J5TWFwID0gJ1Zpc2l0Q2F0ZWdvcnlNYXAnLFxuICBWaXNpdENhdGVnb3J5RGVmYXVsdCA9ICdWaXNpdENhdGVnb3J5RGVmYXVsdCcsXG59XG5cbmludGVyZmFjZSBCYXNlQ2F0ZWdvcnlFeHRyYWN0b3I8VCBleHRlbmRzIENhdGVnb3J5RXh0cmFjdG9yVHlwZT4ge1xuICB0eXBlOiBUO1xufVxuXG4vLyBUaGlzIG1hcCBiZXR3ZWVucyBhIGNhdGVnb3J5IGFuZCBhIGxpc3Qgb2YgdXJsIHBhdHRlcm5zXG5pbnRlcmZhY2UgVmlzaXRDYXRlZ29yeU1hcCBleHRlbmRzIEJhc2VDYXRlZ29yeUV4dHJhY3RvcjxDYXRlZ29yeUV4dHJhY3RvclR5cGUuVmlzaXRDYXRlZ29yeU1hcD4ge1xuICBtYXA6IHtcbiAgICBba2V5IGluIFBhZ2VWaXNpdENhdGVnb3J5XT86IHN0cmluZ1tdO1xuICB9O1xufVxuXG4vLyBUaGlzIHdpbGwgcmV0dXJuIGEgaGFyZC1jb2RlZCBkZWZhdWx0IFBhZ2VWaXNpdENhdGVnb3J5LiBJdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IGZhbGxiYWNrIHBhZ2UgdHlwZXNcbmludGVyZmFjZSBWaXNpdENhdGVnb3J5RGVmYXVsdCBleHRlbmRzIEJhc2VDYXRlZ29yeUV4dHJhY3RvcjxDYXRlZ29yeUV4dHJhY3RvclR5cGUuVmlzaXRDYXRlZ29yeURlZmF1bHQ+IHtcbiAgdmFsdWU6IFBhZ2VWaXNpdENhdGVnb3J5O1xufVxuXG50eXBlIENhdGVnb3J5RXh0cmFjdG9yID0gVmlzaXRDYXRlZ29yeU1hcCB8IFZpc2l0Q2F0ZWdvcnlEZWZhdWx0O1xuXG50eXBlIFdyYXBwaW5nRWxlbWVudCA9IHtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIGVsZW1lbnQ6IHN0cmluZztcbiAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZTtcbn07XG5cbmVudW0gUGFnZVZhcmlhbnRUZXN0VHlwZSB7XG4gIFNob3BpZnlQTFAgPSAnU2hvcGlmeVBMUCcsXG4gIFNob3BpZnlQRFAgPSAnU2hvcGlmeVBEUCcsXG4gIFBhZ2VDYXRlZ29yeSA9ICdQYWdlQ2F0ZWdvcnknLFxuICBDYXRhbG9nQ2F0ZWdvcnkgPSAnQ2F0YWxvZ0NhdGVnb3J5JyxcbiAgVG9wQ2F0YWxvZ0NhdGVnb3J5ID0gJ1RvcENhdGFsb2dDYXRlZ29yeScsXG4gIEhhc1Jldmlld3MgPSAnSGFzUmV2aWV3cycsXG4gIEluQ29sbGVjdGlvbiA9ICdJbkNvbGxlY3Rpb24nLFxuICBIYXNNZXJjaGFudFRhZyA9ICdIYXNNZXJjaGFudFRhZycsXG4gIEZlYXR1cmVHYXRlID0gJ0ZlYXR1cmVHYXRlJyxcbiAgUGxwSWQgPSAnUGxwSWQnLFxuICBRdWVyeVBhcmFtID0gJ1F1ZXJ5UGFyYW0nLFxuICBQcm9kdWN0SWQgPSAnUHJvZHVjdElkJyxcbiAgVXNlckhhc0ludGVyYWN0ZWQgPSAnVXNlckhhc0ludGVyYWN0ZWQnLFxuICBVc2VySGFzTm90SW50ZXJhY3RlZCA9ICdVc2VySGFzTm90SW50ZXJhY3RlZCcsXG4gIGlzTG9hZGluZyA9ICdpc0xvYWRpbmcnLFxuICBpc1Byb2R1Y3RDb21wYXJpc29uID0gJ2lzUHJvZHVjdENvbXBhcmlzb24nLFxuICBGYWxsYmFjayA9ICdGYWxsYmFjaycsXG4gIFVybFJlc29sdmVyID0gJ1VybFJlc29sdmVyJyxcbiAgTnVsbCA9ICdudWxsJyxcbn1cblxuaW50ZXJmYWNlIEJhc2VQYWdlVmFyaWFudFRlc3Q8VCBleHRlbmRzIFBhZ2VWYXJpYW50VGVzdFR5cGU+IHtcbiAgdGVzdFR5cGU6IFQ7XG59XG5cbmludGVyZmFjZSBUb3BDYXRhbG9nQ2F0ZWdvcnkgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVG9wQ2F0YWxvZ0NhdGVnb3J5PiB7XG4gIHRvcENhdGVnb3J5OiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIENhdGFsb2dDYXRlZ29yeVRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuQ2F0YWxvZ0NhdGVnb3J5PiB7XG4gIGNhdGVnb3J5OiBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeTtcbn1cblxuaW50ZXJmYWNlIEhhc1Jldmlld3NUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3M+IHtcbiAgcmV2aWV3TWluaW11bT86IG51bWJlcjtcbn1cblxuLy8gVGhpcyB3aWxsIHJldHVybiB0cnVlIGlmIHRoZSBwcm9kdWN0IGlzIGluIGFueSBvZiB0aGUgbGlzdGVkIGNvbGxlY3Rpb25zXG5pbnRlcmZhY2UgSW5Db2xsZWN0aW9uVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24+IHtcbiAgY29sbGVjdGlvbnM6IHN0cmluZ1tdO1xufVxuXG4vLyBUaGlzIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlIHByb2R1Y3QgaGFzIGFueSBvZiB0aGUgbGlzdGVkIG1lcmNoYW50IHRhZ3NcbmludGVyZmFjZSBIYXNNZXJjaGFudFRhZ1Rlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuSGFzTWVyY2hhbnRUYWc+IHtcbiAgbWVyY2hhbnRUYWdzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIFNob3BpZnlQTFBVUkxUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQTFA+IHt9XG5cbmludGVyZmFjZSBTaG9waWZ5UERQVVJMVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UERQPiB7fVxuXG5pbnRlcmZhY2UgUGFnZUNhdGVnb3J5VGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5QYWdlQ2F0ZWdvcnk+IHtcbiAgZXh0cmFjdG9yOiBDYXRlZ29yeUV4dHJhY3Rvcjtcbn1cblxuaW50ZXJmYWNlIEZlYXR1cmVHYXRlVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZT4ge1xuICBmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzO1xufVxuXG5pbnRlcmZhY2UgUHJvZHVjdElkVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5Qcm9kdWN0SWQ+IHtcbiAgcHJvZHVjdElkRXh0cmFjdG9yOiBJZEV4dHJhY3RvcjtcbiAgcHJvZHVjdElkczogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBQbHBJZFRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuUGxwSWQ+IHtcbiAgcGxwSWRFeHRyYWN0b3I6IElkRXh0cmFjdG9yO1xuICBwbHBJZHM6IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUXVlcnlQYXJhbVRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuUXVlcnlQYXJhbT4ge1xuICBxdWVyeVBhcmFtOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBVc2VySGFzSW50ZXJhY3RlZFRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVXNlckhhc0ludGVyYWN0ZWQ+IHt9XG5cbmludGVyZmFjZSBVc2VySGFzTm90SW50ZXJhY3RlZFRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVXNlckhhc05vdEludGVyYWN0ZWQ+IHt9XG5cbmludGVyZmFjZSBJc0xvYWRpbmdUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLmlzTG9hZGluZz4ge31cblxuaW50ZXJmYWNlIElzUHJvZHVjdENvbXBhcmlzb24gZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuaXNQcm9kdWN0Q29tcGFyaXNvbj4ge31cblxuaW50ZXJmYWNlIFBhZ2VGYWxsYmFja1Rlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuRmFsbGJhY2s+IHt9XG5cbmludGVyZmFjZSBVcmxSZXNvbHZlclRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXI+IHt9XG5cbmV4cG9ydCB0eXBlIFBhZ2VWYXJpYW50VGVzdCA9XG4gIHwgUGFnZUNhdGVnb3J5VGVzdFxuICB8IFNob3BpZnlQTFBVUkxUZXN0XG4gIHwgU2hvcGlmeVBEUFVSTFRlc3RcbiAgfCBDYXRhbG9nQ2F0ZWdvcnlUZXN0XG4gIHwgVG9wQ2F0YWxvZ0NhdGVnb3J5XG4gIHwgSGFzUmV2aWV3c1Rlc3RcbiAgfCBJbkNvbGxlY3Rpb25UZXN0XG4gIHwgSGFzTWVyY2hhbnRUYWdUZXN0XG4gIHwgRmVhdHVyZUdhdGVUZXN0XG4gIHwgUHJvZHVjdElkVGVzdFxuICB8IFBscElkVGVzdFxuICB8IFF1ZXJ5UGFyYW1UZXN0XG4gIHwgVXNlckhhc0ludGVyYWN0ZWRUZXN0XG4gIHwgVXNlckhhc05vdEludGVyYWN0ZWRUZXN0XG4gIHwgSXNMb2FkaW5nVGVzdFxuICB8IElzUHJvZHVjdENvbXBhcmlzb25cbiAgfCBQYWdlRmFsbGJhY2tUZXN0XG4gIHwgVXJsUmVzb2x2ZXJUZXN0O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzb2NpYWwgcHJvb2YgZW1iZWRkZWQgd2lkZ2V0XG4gKlxuICogQHBhcmFtIGhlYWRlclRpdGxlIC0gVGhlIHRpdGxlIHRleHQgdG8gZGlzcGxheSBpbiB0aGUgd2lkZ2V0IGhlYWRlclxuICogQHBhcmFtIHN0YXRpY1N1Z2dlc3Rpb25zIC0gQSBsaXN0IG9mIHN0cmluZ3MgdG8gZGlzcGxheSBhcyBzdWdnZXN0aW9ucyBpbiB0aGUgd2lkZ2V0XG4gKiBAcGFyYW0gc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0IC0gVGhlIHZhcmlhbnQgb2YgdGhlIHN1Z2dlc3Rpb24gYnV0dG9uIHRvIGRpc3BsYXkgaW4gdGhlIHdpZGdldCBmb290ZXJcbiAqIEBwYXJhbSBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudEFjY2VudCAtIFRoZSB2YXJpYW50IG9mIHRoZSBzdWdnZXN0aW9uIGJ1dHRvbiB0byBkaXNwbGF5IGluIHRoZSB3aWRnZXQgYm9keVxuICogQHBhcmFtIHN0YXRpY0ltYWdlSW5kZXggLSBJbmRleCBvZiB0aGUgaW1hZ2VVcmwgdG8gdXNlIGZyb20gdGhlIHByb2R1Y3QgcmVzcG9uc2VcbiAqL1xuaW50ZXJmYWNlIFNvY2lhbFByb29mQ29uZmlnIHtcbiAgY3VzdG9tZXJRdWVyeTogc3RyaW5nO1xuICBoZWFkZXJUaXRsZTogc3RyaW5nO1xuICBzdGF0aWNQTFBJbWFnZXNMYXlvdXQ/OiAnZ3JpZCcgfCAnaG9yaXpvbnRhbCc7XG4gIGhlYWRlckZvbnRGYW1pbHk/OiBzdHJpbmc7XG4gIHN0YXRpY1BMUEltYWdlTmFtZXM/OiBzdHJpbmdbXTtcbiAgc3RhdGljSW1hZ2VJbmRleD86IG51bWJlcjtcbiAgc3VnZ2VzdGlvbkJ1dHRvblN0cmluZ3M6IHN0cmluZ1tdO1xuICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudERlZmF1bHQ6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICBzdWdnZXN0aW9uQnV0dG9uVmFyaWFudEFjY2VudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICBzdWdnZXN0aW9uQnV0dG9uRGF0YUF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICB1c2VyUXVlcnlCdXR0b25Db25maWc/OiBVc2VyUXVlcnlCdXR0b25Db25maWc7XG4gIGxvZ29OYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGNyZWF0aW5nIHRoZSBtb3VudCBwb2ludCBmb3IgYSB3aWRnZXRcbiAqXG4gKiBAcGFyYW0gY2xhc3NOYW1lIC0gT3B0aW9uYWwgY2xhc3MgbmFtZSB0byBhcHBseSB0byB0aGUgbW91bnQgcG9pbnQuIFRhaWx3aW5kIGNsYXNzZXMgYXJlIHN1cHBvcnRlZFxuICogYW5kIGVuY291cmFnZWQuIFVzZSB0aGlzIHBhcmFtZXRlciB0byBzdHlsZSB0aGUgbW91bnRpbmcgY29udGFpbmVyIGZvciB0aGUgd2lkZ2V0LlxuICovXG5leHBvcnQgdHlwZSBXaWRnZXRNb3VudGluZ0NvbmZpZyA9IHtcbiAgbW91bnRpbmdDb25maWdJZDogc3RyaW5nO1xuICBjb250YWluZXJJZDogc3RyaW5nO1xuICB0ZXN0SWQ6IHN0cmluZztcbiAgcGFyZW50SW5zZXJ0aW9uUG9pbnQ/OiBJbnNlcnRpb25Qb2ludDtcbiAgaW5zZXJ0aW9uUG9pbnQ6IEluc2VydGlvblBvaW50O1xuICBncmlkSW5zZXJ0aW9uVHlwZT86IEdyaWRJbnNlcnRpb25UeXBlO1xuICB3cmFwcGluZ0VsZW1lbnQ/OiBXcmFwcGluZ0VsZW1lbnQ7XG4gIGRpdkNoZWNrU2VsZWN0b3I/OiBzdHJpbmc7XG4gIHN1cHByZXNzaW9uU2VsZWN0b3I/OiBzdHJpbmc7XG4gIHN0eWxlPzogUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBkYXRhQXR0cmlidXRlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59O1xuXG50eXBlIFN0YXRpY1dpZGdldE1vdW50aW5nID0ge1xuICBtb3VudGluZ0NvbmZpZ0lkOiBzdHJpbmc7XG4gIHdpZGdldENvbmZpZ0lkOiBzdHJpbmc7XG59O1xudHlwZSBEeW5hbWljV2lkZ2V0TW91bnRpbmcgPSB7XG4gIG1vdW50aW5nQ29uZmlnSWQ6IHN0cmluZztcbiAgbW91bnRpbmdQb2ludFdpZGdldHM6IFdpZGdldERpc3BsYXlUZXN0c1tdO1xufTtcblxudHlwZSBXaWRnZXREaXNwbGF5VGVzdHMgPSB7XG4gIHRlc3RzOiBQYWdlVmFyaWFudFRlc3RbXTtcbiAgd2lkZ2V0Q29uZmlnSWQ6IHN0cmluZztcbn07XG5cbnR5cGUgV2lkZ2V0TW91bnRpbmcgPSBTdGF0aWNXaWRnZXRNb3VudGluZyB8IER5bmFtaWNXaWRnZXRNb3VudGluZztcblxuZW51bSBXaWRnZXRUeXBlIHtcbiAgQ2hhdFByZXZpZXcgPSAnQ2hhdFByZXZpZXcnLFxuICBTb2NpYWxQcm9vZlYyID0gJ1NvY2lhbFByb29mVjInLFxuICBDaGF0UHJldmlld1YyID0gJ0NoYXRQcmV2aWV3VjInLFxuICBDaGF0UHJldmlld0lzTG9hZGluZyA9ICdDaGF0UHJldmlld0lzTG9hZGluZycsXG4gIENoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uID0gJ0NoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uJyxcbiAgQ2hhdFByZXZpZXdQcm9kdWN0Q29tcGFyaXNvbiA9ICdDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uJyxcbiAgU3VnZ2VzdGlvbkJhciA9ICdTdWdnZXN0aW9uQmFyJyxcbiAgU3VnZ2VzdGlvbkJhclYyID0gJ1N1Z2dlc3Rpb25CYXJWMicsXG4gIEltYWdlUHJvbXB0Q2FyZCA9ICdJbWFnZVByb21wdENhcmQnLFxuICBJbWFnZUJhbm5lciA9ICdJbWFnZUJhbm5lcicsXG4gIFNpbmdsZUltYWdlUHJvbXB0ID0gJ1NpbmdsZUltYWdlUHJvbXB0JyxcbiAgU2VhcmNoUHJvbXB0ID0gJ1NlYXJjaFByb21wdCcsXG4gIFNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQgPSAnU2VhcmNoWmVyb1N0YXRlRW50cnlQb2ludCcsXG4gIFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50ID0gJ1NlYXJjaFJlc3VsdHNFbnRyeVBvaW50JyxcbiAgU2VhcmNoT3ZlcmxheUhvc3QgPSAnU2VhcmNoT3ZlcmxheUhvc3QnLFxuICBOb09wID0gJ05vT3AnLFxufVxuXG50eXBlIFdpZGdldENvbmZpZyA9XG4gIHwgQ2hhdFByZXZpZXdXaWRnZXRDb25maWdcbiAgfCBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnXG4gIHwgQ2hhdFByZXZpZXdWMldpZGdldENvbmZpZ1xuICB8IENoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uV2lkZ2V0Q29uZmlnXG4gIHwgQ2hhdFByZXZpZXdJc0xvYWRpbmdXaWRnZXRDb25maWdcbiAgfCBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uV2lkZ2V0Q29uZmlnXG4gIHwgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnXG4gIHwgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWdcbiAgfCBJbWFnZUJhbm5lcldpZGdldENvbmZpZ1xuICB8IFNpbmdsZUltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnXG4gIHwgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnXG4gIHwgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZ1xuICB8IFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50V2lkZ2V0Q29uZmlnXG4gIHwgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWdcbiAgfCBOb09wV2lkZ2V0Q29uZmlnO1xuXG5pbnRlcmZhY2UgQmFzZVdpZGdldENvbmZpZzxUIGV4dGVuZHMgV2lkZ2V0VHlwZT4ge1xuICB3aWRnZXRDb25maWdJZDogc3RyaW5nO1xuICB0eXBlOiBUO1xuICBjb250ZW50SWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJbWFnZUJhbm5lcldpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5JbWFnZUJhbm5lcj4ge1xuICBpbWFnZVNyYzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBzdWJ0aXRsZTogc3RyaW5nO1xuICBhc3Npc3RhbnRNZXNzYWdlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDaGF0UHJldmlld1dpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5DaGF0UHJldmlldz4ge1xuICB2YXJpYW50OiAnZmlsbGVkJyB8ICdmbGF0JyB8ICdvdXRsaW5lZCc7XG4gIGFkZFNlcGFyYXRvcnM/OiBib29sZWFuO1xuICBzb2NpYWxQcm9vZkNvbmZpZz86IFNvY2lhbFByb29mQ29uZmlnO1xuICBmb290ZXJDb25maWc/OiBDaGF0UHJldmlld0Zvb3RlckNvbmZpZztcbn1cblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3SGVhZGVyVjJDb25maWcge1xuICB0aXRsZT86IHN0cmluZzsgLy8gRGVmYXVsdDogJ1Nob3BwaW5nIEFzc2lzdGFudCdcbiAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gIGltYWdlSGVpZ2h0PzogbnVtYmVyO1xufVxuXG50eXBlIFNpbmdsZUltYWdlQ29uZmlnID0ge1xuICBsYXlvdXQ6ICdzaW5nbGUnO1xuICBpbWFnZUluZGV4OiBudW1iZXI7XG59O1xudHlwZSBNdWx0aUltYWdlQ29uZmlnID0ge1xuICBsYXlvdXQ6ICdncmlkJyB8ICdob3Jpem9udGFsJztcbiAgaW1hZ2VOYW1lczogc3RyaW5nW107XG59O1xudHlwZSBTb2NpYWxQcm9vZkltYWdlQ29uZmlnID0gU2luZ2xlSW1hZ2VDb25maWcgfCBNdWx0aUltYWdlQ29uZmlnO1xuXG50eXBlIENoYXRQcmV2aWV3U3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZyA9IHtcbiAgYnV0dG9uU3RyaW5nczogc3RyaW5nW107XG4gIGFjY2VudEJ1dHRvblZhcmlhbnRzPzoge1xuICAgIGJ1dHRvbjogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXI6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICB9O1xuICBidXR0b25WYXJpYW50czoge1xuICAgIGJ1dHRvbjogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgaG92ZXI6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICB9O1xuICBudW1Sb3dzPzogTnVtUm93cztcbn07XG5cbnR5cGUgQ2hhdFByZXZpZXdBbmltYXRlZFRleHRDb25maWcgPSB7XG4gIGxlYWRpbmdUZXh0OiBzdHJpbmc7XG4gIGFuaW1hdGVkU3RyaW5nczogc3RyaW5nW107XG59O1xuXG50eXBlIENoYXRQcmV2aWV3VmFyaWFudCA9XG4gIHwgeyB2YXJpYW50OiAnZmxhdCcgfVxuICB8IHsgdmFyaWFudDogJ2ZpbGxlZCc7IGJhY2tncm91bmRGaWxsQ29sb3I6IHN0cmluZyB9XG4gIHwgeyB2YXJpYW50OiAnb3V0bGluZWQnIH07XG5cbi8vIEJhc2UgaW50ZXJmYWNlIGZvciBjb21tb24gY2hhdCBwcmV2aWV3IHByb3BlcnRpZXNcbmludGVyZmFjZSBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICBoZWFkZXJDb25maWc6IENoYXRQcmV2aWV3SGVhZGVyVjJDb25maWc7XG4gIHN1Z2dlc3Rpb25CdXR0b25zQ29uZmlnOiBDaGF0UHJldmlld1N1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gIHVzZXJRdWVyeUJ1dHRvbkNvbmZpZzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICBjaGF0UHJldmlld1ZhcmlhbnQ6IENoYXRQcmV2aWV3VmFyaWFudDtcbiAgYWRkU2VwYXJhdG9ycz86IGJvb2xlYW47XG59XG5cbi8vIFNwZWNpZmljIGNoYXQgcHJldmlldyB3aWRnZXQgY29uZmlndXJhdGlvbnNcbmludGVyZmFjZSBDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbldpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5DaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbj4sIEJhc2VDaGF0UHJldmlld0NvbmZpZyB7XG4gIGNoYXRQcmV2aWV3VmFyaWFudDogQ2hhdFByZXZpZXdWYXJpYW50O1xuICBhZGRTZXBhcmF0b3JzPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3SXNMb2FkaW5nV2lkZ2V0Q29uZmlnXG4gIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkNoYXRQcmV2aWV3SXNMb2FkaW5nPiwgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHt9XG5cbmludGVyZmFjZSBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uV2lkZ2V0Q29uZmlnXG4gIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkNoYXRQcmV2aWV3UHJvZHVjdENvbXBhcmlzb24+LCBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICB1c2VMYXJnZVByb2R1Y3RDb21wYXJpc29uPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3VjJXaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXdWMj4sIEJhc2VDaGF0UHJldmlld0NvbmZpZyB7XG4gIGFuaW1hdGVkVGV4dENvbmZpZzogQ2hhdFByZXZpZXdBbmltYXRlZFRleHRDb25maWc7XG59XG5cbmludGVyZmFjZSBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnXG4gIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNvY2lhbFByb29mVjI+LCBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICBjdXN0b21lclF1ZXJ5Pzogc3RyaW5nOyAvLyBEZWZhdWx0OiAnYXNrZWQgd2hpY2ggcHJvZHVjdHMgYXJlIHRoZSBiZXN0J1xuICBpbWFnZUNvbmZpZzogU29jaWFsUHJvb2ZJbWFnZUNvbmZpZztcbn1cblxuaW50ZXJmYWNlIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjI+IHtcbiAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbjtcbiAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3M7XG4gIHZhcmlhbnQ6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICBob3ZlclZhcmlhbnQ6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICBidXR0b25UZXh0czoge1xuICAgIGRlZmF1bHQ6IHN0cmluZ1tdO1xuICAgIHByb2R1Y3RTcGVjaWZpYz86IHsgW3Byb2R1Y3RJZDogc3RyaW5nXTogc3RyaW5nW10gfTtcbiAgfTtcbiAgYm9sZEZpcnN0QnV0dG9uPzogYm9vbGVhbjtcbiAgdHdvUm93c09uTW9iaWxlPzogYm9vbGVhbjtcbiAgYW5pbWF0aW9uU3BlZWQ/OiAnc3RhbmRhcmQnIHwgJ3Nsb3cnIHwgJ25vbmUnO1xuICBidXR0b25Cb3JkZXJSYWRpdXM/OiAnc20nIHwgJ21kJyB8ICdsZyc7XG59XG5cbmludGVyZmFjZSBJbWFnZVByb21wdFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5JbWFnZVByb21wdENhcmQ+IHtcbiAgdXJsOiBzdHJpbmc7XG4gIGxpZ2h0VGV4dD86IGJvb2xlYW47XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN1YnRpdGxlOiBzdHJpbmdbXTtcbiAgc3RhdGljU3VnZ2VzdGlvbkNvcGllczogc3RyaW5nW107XG4gIHVzZXJRdWVyeUJ1dHRvbkNvbmZpZzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICBmYWxsYmFja0JhY2tncm91bmRDb2xvcj86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNpbmdsZUltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNpbmdsZUltYWdlUHJvbXB0PiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN0YXRpY1N1Z2dlc3Rpb25Db3BpZXM6IHN0cmluZ1tdO1xuICB1c2VyUXVlcnlCdXR0b25Db25maWc6IFVzZXJRdWVyeUJ1dHRvbkNvbmZpZztcbn1cblxuaW50ZXJmYWNlIFNlYXJjaEVudHJ5UG9pbnRXaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU2VhcmNoWmVyb1N0YXRlRW50cnlQb2ludD4ge1xuICBzZWFyY2haZXJvU3RhdGVWYXJpYW50OiBTZWFyY2haZXJvU3RhdGVWYXJpYW50O1xuICBzZWFyY2hJbnB1dFZhcmlhbnQ6IFNlYXJjaElucHV0VmFyaWFudDtcbiAgc2VhcmNoSWNvblZhcmlhbnQ/OiBTZWFyY2hJY29uVmFyaWFudDtcbiAgc2VhcmNoSWNvblNpemU/OiBudW1iZXI7XG4gIHN1Z2dlc3Rpb25CdXR0b25Db25maWc6IFN1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gIGxheW91dDogU2VhcmNoWmVyb1N0YXRlTGF5b3V0O1xuICBzZWFyY2hCb3hQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBhbmltYXRpb25TcGVlZD86ICdzdGFuZGFyZCcgfCAnc2xvdycgfCAnbm9uZSc7XG4gIGNvbXBhY3RMYWJlbD86IHN0cmluZztcbiAgaW5pdGlhbFN1Z2dlc3Rpb25zPzogc3RyaW5nW107XG4gIHVzaW5nUG9ydGFsPzogYm9vbGVhbjtcbiAgaW5jbHVkZVN1YnRpdGxlPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIE5vT3BXaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuTm9PcD4ge31cbmludGVyZmFjZSBTZWFyY2hPdmVybGF5SG9zdFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TZWFyY2hPdmVybGF5SG9zdD4ge31cblxuaW50ZXJmYWNlIFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNlYXJjaFJlc3VsdHNFbnRyeVBvaW50PiB7XG4gIHNlYXJjaElucHV0VmFyaWFudDogU2VhcmNoSW5wdXRWYXJpYW50O1xuICBzZWFyY2hGaWx0ZXJTaWRlYmFyVmFyaWFudDogU2VhcmNoRmlsdGVyU2lkZWJhclZhcmlhbnQ7XG4gIHByb2R1Y3RHcmlkVmFyaWFudDogUHJvZHVjdEdyaWRWYXJpYW50O1xuICBzZWFyY2hCb3hQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBub1Jlc3VsdHNGb3VuZFRleHQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0SGVhZGVyUHJvcHMgZXh0ZW5kcyBUZXN0UHJvcHMge1xuICB0aXRsZT86IHN0cmluZztcbiAgbG9nbz86IHN0cmluZztcbiAgbG9nb0hlaWdodD86IG51bWJlcjtcbiAgb3JnU2hvcnROYW1lOiBzdHJpbmc7XG4gIHZhcmlhbnQ/OiBTZWFyY2hQcm9tcHRWYXJpYW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJRdWVyeU9wdGlvbnMge1xuICBmb290ZXJWYXJpYW50PzogJ3N0YW5kYXJkJztcbiAgcmVwbHlCdXR0b25UZXh0Pzogc3RyaW5nO1xuICByZXBseUJ1dHRvbkljb24/OiAnbWFnbmlmeWluZ0dsYXNzJyB8ICdzZW5kJyB8ICd0aGluTWFnbmlmeWluZ0dsYXNzJyB8ICdhaS1zZWFyY2gnO1xufVxuXG50eXBlIFNlYXJjaFByb21wdFZhcmlhbnQgPSAncHJpbWFyeSc7XG5pbnRlcmZhY2UgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNlYXJjaFByb21wdD4ge1xuICB2YXJpYW50OiBTZWFyY2hQcm9tcHRWYXJpYW50O1xuICB0aXRsZTogc3RyaW5nO1xuICBoZWFkZXJDb25maWc6IFdpZGdldEhlYWRlclByb3BzO1xuICBzdWdnZXN0aW9uQnV0dG9uczoge1xuICAgIHZhcmlhbnQ6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIGhvdmVyVmFyaWFudDogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gICAgYnV0dG9uVGV4dHM6IHN0cmluZ1tdO1xuICB9O1xuICBmb290ZXJDb25maWc/OiBVc2VyUXVlcnlPcHRpb25zO1xufVxuXG50eXBlIFBhZ2VWYXJpYW50QmFzZSA9IHtcbiAgLy8gVW5pcXVlIGlkZW50aWZpZXIgZm9yIGVhY2ggZW50cnkgd2l0aGluIHRoZSBwYWdlVmFyaWFudHMuXG4gIC8vIFVzZWZ1bCB0byBkaWZmZXJlbnRpYXRlIHdoaWNoIHZhcmlhbnQgaXMgbG9hZGVkIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlcyBvZiBhIHNpbmdsZSB0eXBlLlxuICB2YXJpYW50SWQ6IHN0cmluZztcbiAgd2lkZ2V0TW91bnRpbmc6IFdpZGdldE1vdW50aW5nW107XG4gIHZhcmlhbnRUZXN0czogUGFnZVZhcmlhbnRUZXN0W107XG59O1xuXG50eXBlIFBMUFBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICB2YXJpYW50VHlwZTogJ3BscCc7XG4gIHBscElkRXh0cmFjdG9yOiBJZEV4dHJhY3Rvcjtcbn07XG5cbnR5cGUgUERQUGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gIHZhcmlhbnRUeXBlOiAncGRwJztcbiAgcGFyZW50UHJvZHVjdElkRXh0cmFjdG9yPzogSWRFeHRyYWN0b3I7XG4gIHByb2R1Y3RJZEV4dHJhY3RvcjogSWRFeHRyYWN0b3I7XG59O1xuXG50eXBlIFZpc2l0UGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gIHZhcmlhbnRUeXBlOiAncGFnZV92aXNpdCc7XG59O1xuXG50eXBlIE90aGVyUGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gIHZhcmlhbnRUeXBlOiAnb3RoZXInO1xufTtcblxudHlwZSBIb21lUGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gIHZhcmlhbnRUeXBlOiAnaG9tZXBhZ2UnO1xufTtcblxudHlwZSBTZWFyY2hQYWdlVmFyaWFudCA9IFBhZ2VWYXJpYW50QmFzZSAmIHtcbiAgdmFyaWFudFR5cGU6ICdzZWFyY2gnO1xufTtcblxuZXhwb3J0IHR5cGUgUGFnZVZhcmlhbnRDb25maWcgPVxuICB8IFBMUFBhZ2VWYXJpYW50XG4gIHwgUERQUGFnZVZhcmlhbnRcbiAgfCBWaXNpdFBhZ2VWYXJpYW50XG4gIHwgT3RoZXJQYWdlVmFyaWFudFxuICB8IEhvbWVQYWdlVmFyaWFudFxuICB8IFNlYXJjaFBhZ2VWYXJpYW50O1xuXG5leHBvcnQgdHlwZSBPcmdQYWdlQ29uZmlnID0ge1xuICAvLyBwYWdlVmFyaWFudHMgaXMgYSBsaXN0IG9mIHBhZ2UgdmFyaWFudHMgdGhhdCB3ZSBzdXBwb3J0LlxuICBwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW107XG4gIC8vIHdpZGdldENvbmZpZ3MgaXMgYSBuYW1lZCBzZXQgb2Ygd2lkZ2V0IGNvbmZpZ3NcbiAgd2lkZ2V0Q29uZmlnczogUmVjb3JkPHN0cmluZywgV2lkZ2V0Q29uZmlnPjtcbiAgbW91bnRpbmdDb25maWdzOiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz47XG59O1xuXG5leHBvcnQgdHlwZSBPcmdDb25maWcgPSBPcmdVSUNvbmZpZztcblxuZXhwb3J0IHsgQ2F0ZWdvcnlFeHRyYWN0b3JUeXBlLCBDb2xvck5hbWVzLCBjb2xvclZhciwgUGFnZVZhcmlhbnRUZXN0VHlwZSwgV2lkZ2V0VHlwZSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudml2ZUNvbmZpZyB7XG4gIGFtcGxpdHVkZUFwaUtleT86IHN0cmluZztcbiAgZGF0YVJlc2lkZW5jeT86IHN0cmluZztcbiAgZW52Pzogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICByZWFjdEFwcE5hbWU/OiBzdHJpbmc7XG4gIGNkblVybD86IHN0cmluZztcbiAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbiAgb3JnTGV2ZWxBcGlLZXk/OiBzdHJpbmc7XG4gIG9yZ1Nob3J0TmFtZT86IHN0cmluZztcbiAgaWRlbnRpZnlpbmdQcmVmaXg/OiBzdHJpbmc7XG4gIGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgdmFyaWFudFVybE92ZXJyaWRlPzogc3RyaW5nO1xuICB2YXJpYW50SW5mb092ZXJyaWRlPzogYW55O1xuICBzaG93PzogYm9vbGVhbjtcbiAgcHVibGljS2V5Pzogc3RyaW5nO1xuICBmZWF0dXJlR2F0ZXM/OiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xufVxuXG5leHBvcnQgdHlwZSB7XG4gIENhdGVnb3J5RXh0cmFjdG9yLFxuICBDaGF0TWVzc2FnZVZhcmlhbnQsXG4gIENoYXRNZXNzYWdlQ29uZmlnLFxuICBDaGF0UHJldmlld0NvbmZpZyxcbiAgQ2hhdFByZXZpZXdJc0xvYWRpbmdXaWRnZXRDb25maWcsXG4gIENoYXRQcmV2aWV3UG9zdEludGVyYWN0aW9uV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld1N1Z2dlc3Rpb25CdXR0b25Db25maWcsXG4gIFNvY2lhbFByb29mVjJXaWRnZXRDb25maWcsXG4gIENoYXRQcmV2aWV3SGVhZGVyVjJDb25maWcsXG4gIENoYXRQcmV2aWV3VjJXaWRnZXRDb25maWcsXG4gIENoYXRQcmV2aWV3Rm9vdGVyQ29uZmlnLFxuICBDaGF0UHJldmlld0hlYWRlckNvbmZpZyxcbiAgQ2hhdFByZXZpZXdXaWRnZXRDb25maWcsXG4gIENoYXRQcmV2aWV3VmFyaWFudCxcbiAgQ29sb3JNYXBwaW5nLFxuICBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbixcbiAgRmxvYXRpbmdFbnRyeVBvaW50Q29uZmlnLFxuICBGdWxsQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24sXG4gIElkRXh0cmFjdG9yLFxuICBJbWFnZUJhbm5lcldpZGdldENvbmZpZyxcbiAgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWcsXG4gIEluc2VydGlvblBvaW50LFxuICBNdWx0aUltYWdlQ29uZmlnLFxuICBPcmdVSUNvbmZpZyxcbiAgUGFnZUNhcmRDb25maWcsXG4gIFBhZ2VDYXJkVmFyaWFudCxcbiAgUGFnZUNhcmRIb3ZlclZhcmlhbnQsXG4gIFBhZ2VDYXJkSWNvblZhcmlhbnQsXG4gIFByb2R1Y3RDYXJkQ29uZmlnLFxuICBQcm9kdWN0Q2FyZFZhcmlhbnQsXG4gIFByb2R1Y3RDYXJkTGF5b3V0VmFyaWFudCxcbiAgUHJvZHVjdENhcmRIb3ZlclZhcmlhbnQsXG4gIFByb2R1Y3RMaW5rSG92ZXJWYXJpYW50LFxuICBQcm9kdWN0TGlua0ljb25WYXJpYW50LFxuICBQcm9kdWN0TGlua1ZhcmlhbnQsXG4gIFByb2R1Y3RSZXZpZXdDb25maWcsXG4gIFByb2R1Y3RSZXZpZXdTdHlsZVZhcmlhbnQsXG4gIFByb2R1Y3RSZXZpZXdDb2xvclZhcmlhbnQsXG4gIFNlYXJjaFByb21wdFZhcmlhbnQsXG4gIFNlYXJjaFByb21wdFdpZGdldENvbmZpZyxcbiAgU2VhcmNoUmVzdWx0c0VudHJ5UG9pbnRXaWRnZXRDb25maWcsXG4gIFNob3dGbG9hdGluZ0J1dHRvbk9wdGlvbnMsXG4gIFNpbmdsZUltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnLFxuICBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnLFxuICBTZWFyY2hPdmVybGF5SG9zdFdpZGdldENvbmZpZyxcbiAgU29jaWFsUHJvb2ZDb25maWcsXG4gIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgU3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZyxcbiAgU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQsXG4gIFVSTFRlc3QsXG4gIFVzZXJRdWVyeUJ1dHRvbkNvbmZpZyxcbiAgVXNlclF1ZXJ5QnV0dG9uSWNvbixcbiAgV2VsY29tZVNlY3Rpb25Db25maWcsXG4gIFdlbGNvbWVTZWN0aW9uVmFyaWFudCxcbiAgV2VsY29tZVNlY3Rpb25Db2xvclZhcmlhbnQsXG4gIFdpZGdldENvbmZpZyxcbiAgV3JhcHBpbmdFbGVtZW50LFxuICBTZWFyY2hDYXJkVmFyaWFudCxcbiAgV2lkZ2V0RGlzcGxheVRlc3RzLFxuICBOb09wV2lkZ2V0Q29uZmlnLFxuICBXaWRnZXRNb3VudGluZyxcbiAgU3RhdGljV2lkZ2V0TW91bnRpbmcsXG4gIER5bmFtaWNXaWRnZXRNb3VudGluZyxcbiAgUERQUGFnZVZhcmlhbnQsXG4gIFBMUFBhZ2VWYXJpYW50LFxuICBWaXNpdFBhZ2VWYXJpYW50LFxuICBPdGhlclBhZ2VWYXJpYW50LFxuICBIb21lUGFnZVZhcmlhbnQsXG4gIFNlYXJjaFBhZ2VWYXJpYW50LFxuICBOdW1Sb3dzLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBK2JBLElBQUssMEVBQUw7QUFDRTtBQUNBOztFQUZHO0FBNkJMLElBQUssc0VBQUw7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7RUFuQkc7QUF1S0wsSUFBSyxvREFBTDtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQWhCRyJ9
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRleHRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbic7XG5pbXBvcnQgeyBDb2xvck1hcHBpbmcsIENvbG9yTmFtZXMsIGNvbG9yVmFyIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9jb2xvcnNDb25maWcnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IHsgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlLCBDdXN0b21lclNlcnZpY2VUeXBlIH0gZnJvbSAnc3JjL3R5cGVzL2N1c3RvbWVyU2VydmljZSc7XG5pbXBvcnQgeyBHcmlkSW5zZXJ0aW9uVHlwZSB9IGZyb20gJ3NyYy9tZXJjaGFudHMvZ3JpZEluc2VydGlvbic7XG5pbXBvcnQgeyBET01JbnNlcnRpb25UeXBlIH0gZnJvbSAnc3JjL21lcmNoYW50cy9kb21JbnNlcnRpb24nO1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBhZ2VWaXNpdENhdGVnb3J5LFxuICBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeSxcbn0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENoYXRTdGF0ZSB9IGZyb20gJ3NyYy90eXBlcy9jdXN0c2VydmljZS10eXBlcyc7XG5pbXBvcnQgeyBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzIH0gZnJvbSAnc3JjL3R5cGVzL3N1Z2dlc3Rpb25CYXJWMi10eXBlcyc7XG5pbXBvcnQgeyBUZXN0UHJvcHMgfSBmcm9tICdzcmMvdHlwZXMvdGVzdC10eXBlcyc7XG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnVjMgfSBmcm9tICcuL3R5cGVzVjMnO1xuXG50eXBlIFNob3dGbG9hdGluZ0J1dHRvbk9wdGlvbnMgPVxuICB8ICdhbHdheXMnXG4gIHwgJ2FmdGVyLWludGVyYWN0aW9uLW9uLW1vYmlsZS1hbHdheXMtZGVza3RvcCdcbiAgfCAnYWZ0ZXItaW50ZXJhY3Rpb24tYW55d2hlcmUnXG4gIHwgJ25ldmVyJztcblxudHlwZSBGbG9hdGluZ0VudHJ5UG9pbnRDb25maWcgPSB7XG4gIHBvc2l0aW9uOiAnYm90dG9tLWxlZnQnIHwgJ21pZGRsZS1sZWZ0JyB8ICdtaWRkbGUtcmlnaHQnIHwgJ2JvdHRvbS1yaWdodCc7XG4gIGV4cGFuc2lvblRleHQ/OiB7XG4gICAgcGRwOiBzdHJpbmc7XG4gICAgcGxwOiBzdHJpbmc7XG4gIH07XG4gIG1pbmltaXplZENvbG9yOiBzdHJpbmc7XG4gIGV4cGFuZGVkQ29sb3I6IHN0cmluZztcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xuICBzaG93T3B0aW9uOiBTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zO1xuICBpY29uU1ZHU3JjPzogc3RyaW5nO1xuICBpY29uU2l6ZT86IG51bWJlcjtcbiAgaWNvblN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICBpY29uRmlsbENvbG9yPzogc3RyaW5nO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIGZvbnRTaXplPzogbnVtYmVyO1xufTtcblxudHlwZSBXZWxjb21lU2VjdGlvblZhcmlhbnQgPSAnc3RhbmRhcmQnIHwgJ291dGxpbmVkJztcblxudHlwZSBXZWxjb21lU2VjdGlvbkNvbG9yVmFyaWFudCA9ICdzdGFuZGFyZCcgfCAnYWNjZW50JyB8ICdicmFuZCcgfCAnbGlnaHQnO1xuXG50eXBlIFdlbGNvbWVTZWN0aW9uQ29uZmlnID0ge1xuICB2YXJpYW50OiBXZWxjb21lU2VjdGlvblZhcmlhbnQ7XG4gIGNvbG9yVmFyaWFudD86IFdlbGNvbWVTZWN0aW9uQ29sb3JWYXJpYW50O1xuICB0aXRsZT86IHN0cmluZztcbiAgc3VidGl0bGU/OiBzdHJpbmc7XG4gIC8vIGljb24/OiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxSZWFjdC5TVkdQcm9wczxTVkdTVkdFbGVtZW50Pj47XG4gIC8qIFNlcmlhbGl6YWJsZSBpY29uIG5hbWUgdGhhdCBtYXBzIHRvIGEgUmVhY3QgY29tcG9uZW50LiBQcmVmZXJyZWQgb3ZlciBpY29uIGZvciBkYXRhYmFzZSBzdG9yYWdlLiAqL1xuICBpY29uTmFtZT86IHN0cmluZztcbiAgaW1hZ2VTcmM/OiBzdHJpbmc7XG59O1xuXG50eXBlIENoYXRQcmV2aWV3Q29uZmlnID0ge1xuICB2YXJpYW50OiAnZmxhdCcgfCAnZmlsbGVkJyB8ICdvdXRsaW5lZCc7XG4gIGxhcmdlUHJvZHVjdENvbXBhcmlzb24/OiBib29sZWFuO1xuICBmaWxsZWRCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgaWNvbkZpbGxDb2xvcjogc3RyaW5nO1xuICBidXR0b25UZXh0Q29sb3I/OiBzdHJpbmc7XG4gIGJ1dHRvblRleHRTZWNvbmRhcnlDb2xvcj86IHN0cmluZztcbiAgYnV0dG9uVGV4dEhvdmVyQ29sb3I/OiBzdHJpbmc7XG4gIGJ1dHRvbkJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICBidXR0b25CYWNrZ3JvdW5kSG92ZXJDb2xvcjogc3RyaW5nO1xuICBidXR0b25Cb3JkZXJDb2xvcj86IHN0cmluZztcbiAgYnV0dG9uQm9yZGVySG92ZXJDb2xvcj86IHN0cmluZztcbiAgY29waWVzOiB7IHBkcDogc3RyaW5nW107IHBscDogc3RyaW5nW10gfTtcbiAgc3RhdGljU3VnZ2VzdGlvbkNvcGllcz86IHsgcGRwOiBzdHJpbmdbXTsgcGxwOiBzdHJpbmdbXSB9O1xuICBzdGF0aWNQTFBJbWFnZXM/OiBzdHJpbmdbXTtcbiAgZm9vdGVyQ29uZmlnPzogQ2hhdFByZXZpZXdGb290ZXJDb25maWc7XG4gIGhlYWRlckNvbmZpZz86IENoYXRQcmV2aWV3SGVhZGVyQ29uZmlnO1xuICB0b3BNYXJnaW4/OiBudW1iZXI7XG59O1xuXG50eXBlIENoYXRQcmV2aWV3SGVhZGVyQ29uZmlnID0ge1xuICB0aXRsZT86IHN0cmluZztcbiAgaW1hZ2VTcmM/OiBzdHJpbmc7XG4gIGltYWdlSGVpZ2h0PzogbnVtYmVyO1xuICBzcGFya2xlc0NvbG9yPzogc3RyaW5nOyAvLyB1c2VkIGJ5OiBzcGFueCwgdW5pcXVlVmludGFnZSwgZHJlYW1sYW5kQmFieVxuICBmb250U2l6ZT86IHN0cmluZztcbiAgaWNvbldpZHRoPzogc3RyaW5nO1xuICBpY29uSGVpZ2h0Pzogc3RyaW5nO1xufTtcblxuaW50ZXJmYWNlIENoYXRQcmV2aWV3Rm9vdGVyQ29uZmlnIHtcbiAgaGFzRmFkZT86IGJvb2xlYW47IC8vIHVzZWQgYnk6IHNwYW54LCB1bmlxdWVWaW50YWdlXG4gIHN1Z2dlc3Rpb25CdXR0b25WYXJpYW50PzogJ2RhcmsnIHwgJ2xpZ2h0JyB8ICdvdXRsaW5lZCc7XG4gIHN1Z2dlc3Rpb25zQmFja2dyb3VuZD86IHN0cmluZzsgLy8gdXNlZCBieTogY2FyYmFoblxuICByZXBseUJ1dHRvbkljb24/OiAnc2VuZCcgfCAnbWFnbmlmeWluZ0dsYXNzJyB8ICd0aGluTWFnbmlmeWluZ0dsYXNzJyB8ICdzZWFyY2hJY29uJztcbiAgcmVwbHlCdXR0b25UZXh0Pzogc3RyaW5nO1xuICByZXBseUlucHV0SGFzU2hhZG93PzogYm9vbGVhbjsgLy8gdXNlZCBieTogc3BhbnhcbiAgcmVwbHlJbnB1dEhhc0JvcmRlcj86IGJvb2xlYW47IC8vIHVzZWQgYnk6IHNwYW54XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZzsgLy8gdXNlZCBieSBzcGFueCwgdHVzaGJhYnksIHdpbGwgbmVlZCBjdXN0b20gQ1NTIHdoZW4gc3dpdGNoaW5nIG92ZXJcbn1cblxudHlwZSBQcm9kdWN0UmV2aWV3U3R5bGVWYXJpYW50ID0gJ3N0YW5kYXJkJyB8ICdib3JkZXJlZCc7XG5cbnR5cGUgUHJvZHVjdFJldmlld0NvbG9yVmFyaWFudCA9ICduZXV0cmFsJyB8ICdicmFuZCcgfCAncHJlbWl1bSc7XG5cbmludGVyZmFjZSBQcm9kdWN0UmV2aWV3Q29uZmlnIHtcbiAgc3R5bGVWYXJpYW50OiBQcm9kdWN0UmV2aWV3U3R5bGVWYXJpYW50O1xuICBjb2xvclZhcmlhbnQ6IFByb2R1Y3RSZXZpZXdDb2xvclZhcmlhbnQ7XG4gIHZlcmlmaWVkQnV5ZXJUaXRsZTogc3RyaW5nO1xuICBpbmNlbnRpdml6ZWRSZXZpZXdGbGFnPzogYm9vbGVhbjtcbn1cblxudHlwZSBQYWdlQ2FyZFZhcmlhbnQgPSAnZmlsbGVkJyB8ICdvdXRsaW5lZCcgfCAnbWluaW1hbCc7XG5cbnR5cGUgUGFnZUNhcmRIb3ZlclZhcmlhbnQgPSAnbm9uZScgfCAnc2hhZG93JyB8ICdsaWZ0JztcblxudHlwZSBQYWdlQ2FyZEljb25WYXJpYW50ID0gJ3ByaW1hcnknIHwgJ2FjY2VudCcgfCAnYmFja2dyb3VuZCcgfCAnbm9uZSc7XG5cbnR5cGUgUGFnZUNhcmRDb25maWcgPSB7XG4gIHZhcmlhbnQ6IFBhZ2VDYXJkVmFyaWFudDtcbiAgaG92ZXJWYXJpYW50OiBQYWdlQ2FyZEhvdmVyVmFyaWFudDtcbiAgaWNvblZhcmlhbnQ6IFBhZ2VDYXJkSWNvblZhcmlhbnQ7XG59O1xuXG50eXBlIFByb2R1Y3RDYXJkVmFyaWFudCA9ICdmaWxsZWQnIHwgJ2JvcmRlcmVkJyB8ICdtaW5pbWFsJyB8ICd0cmFuc3BhcmVudEJvcmRlcmVkJztcblxudHlwZSBQcm9kdWN0Q2FyZEhvdmVyVmFyaWFudCA9ICdiYWNrZ3JvdW5kRGFyaycgfCAnbm9uZSc7XG5cbnR5cGUgUHJvZHVjdENhcmRMYXlvdXRWYXJpYW50ID0gJ25vcm1hbCcgfCAndGFsbCcgfCAnc3F1YXJlJztcblxuaW50ZXJmYWNlIFByb2R1Y3RDYXJkQ29uZmlnIHtcbiAgdmFyaWFudDogUHJvZHVjdENhcmRWYXJpYW50O1xuICBob3ZlclZhcmlhbnQ6IFByb2R1Y3RDYXJkSG92ZXJWYXJpYW50O1xuICBsYXlvdXRWYXJpYW50OiBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQ7XG4gIHByaWNlUHJlZml4Pzogc3RyaW5nO1xufVxuXG50eXBlIENTU3dpdGNoQ29uZmlnID0ge1xuICB2YXJpYW50OiAnYXR0YWNoZWQnIHwgJ2RldGFjaGVkJztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIGJvcmRlckNvbG9yOiBzdHJpbmc7XG4gIHNlbGVjdGVkVGV4dENvbG9yOiBzdHJpbmc7XG4gIHNlbGVjdGVkQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICB1bnNlbGVjdGVkVGV4dENvbG9yOiBzdHJpbmc7XG4gIHVuc2VsZWN0ZWRCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIHN1cHBvcnRUaXRsZT86IHN0cmluZztcbiAgc3BpZmZ5VGl0bGU/OiBzdHJpbmc7XG4gIHNwaWZmeVRpdGxlSGFzTG9nbz86IGJvb2xlYW47XG59O1xuXG50eXBlIENoYXRIZWFkZXJDb25maWcgPSB7XG4gIGNvbGxhcHNlZENvbG9yOiBzdHJpbmc7XG4gIGV4cGFuZGVkQ29sb3I6IHN0cmluZztcbiAgY2hldnJvbkNvbG9yOiBzdHJpbmc7XG4gIGltYWdlU3JjPzogc3RyaW5nO1xuICBpY29uPzogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8UmVhY3QuU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4+O1xuICBjbG9zZUljb24/OiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxSZWFjdC5TVkdQcm9wczxTVkdTVkdFbGVtZW50Pj47XG4gIGJvcmRlckJvdHRvbT86IHN0cmluZztcbiAgaGVhZGVyQmFySGVpZ2h0UGFydGlhbFZpZXc6IG51bWJlcjtcbiAgaGVhZGVyQmFySGVpZ2h0RnVsbFZpZXc6IG51bWJlcjtcbiAgY3VzdG9tZXJTdXBwb3J0U3dpdGNoQ29uZmlnPzogQ1NTd2l0Y2hDb25maWc7XG59O1xuXG50eXBlIFNpbXBsZUN1c3RvbWVyU2VydmljZUludGVncmF0aW9uID0ge1xuICBpbnRlZ3JhdGlvbk1vZGU6IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZTtcbiAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVR5cGU7XG4gIHVzZVVuaWZpZWRCdXR0b24/OiBib29sZWFuO1xuICBtYXhmaWxlVXBsb2FkU2l6ZT86IG51bWJlcjtcbn07XG5cbnR5cGUgRnVsbEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uID0ge1xuICBpbnRlZ3JhdGlvbk1vZGU6IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZTtcbiAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVR5cGU7XG4gIHVzZVVuaWZpZWRCdXR0b24/OiBib29sZWFuO1xuICBjaGF0RW5hYmxlZER1cmluZ0J1c2luZXNzSG91cnM/OiBib29sZWFuO1xuICBzaG93TmFtZUlucHV0PzogYm9vbGVhbjtcbiAgZm9ybUFpTmFtZT86IHN0cmluZztcbiAgd2VsY29tZVRpdGxlOiBzdHJpbmc7XG4gIHdlbGNvbWVEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzaG93V2VsY29tZU9uRm9ybT86IGJvb2xlYW47XG4gIGNvbnRhY3RTdWJqZWN0T3B0aW9ucz86IHN0cmluZ1tdO1xuICBnZXRDdXN0b21XYWl0aW5nTWVzc2FnZT86IChuYW1lPzogc3RyaW5nKSA9PiBzdHJpbmc7XG4gIHdpdGhpbkJ1c2luZXNzSG91cnNNZXNzYWdlPzogc3RyaW5nO1xuICB3aXRoaW5CdXNpbmVzc0hvdXJzV2FpdGluZ01lc3NhZ2U/OiBzdHJpbmc7XG4gIG91dHNpZGVCdXNpbmVzc0hvdXJzTWVzc2FnZT86IHN0cmluZztcbiAgb3V0c2lkZUJ1c2luZXNzSG91cnNXYWl0aW5nTWVzc2FnZT86IHN0cmluZztcbiAgd2l0aGluQnVzaW5lc3NIb3Vyc0Zvcm1NZXNzYWdlPzogc3RyaW5nO1xuICBvdXRzaWRlQnVzaW5lc3NIb3Vyc0Zvcm1NZXNzYWdlPzogc3RyaW5nO1xuICBzdWdnZXN0ZWRBSVF1ZXN0aW9ucz86IHN0cmluZ1tdO1xuICBidXNpbmVzc0hvdXJzUG9sbGluZz86IG51bWJlcjtcbiAgbWF4ZmlsZVVwbG9hZFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgaGFuZGxlZCBieSB0aGUgQkUuXG4gICAqL1xuICBidXNpbmVzc0hvdXJzU3RhcnRVVEM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIEJFLlxuICAgKi9cbiAgYnVzaW5lc3NIb3Vyc0VuZFVUQz86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgaGFuZGxlZCBieSB0aGUgQkUuXG4gICAqL1xuICBidXNpbmVzc0hvdXJzVGltZXpvbmU/OiBzdHJpbmc7XG5cbiAgc2hvd0FJU3VnZ2VzdGlvbnNXaXRoaW5CdXNpbmVzc0hvdXJzPzogYm9vbGVhbjtcbiAgd2FpdGluZ01lc3NhZ2VQb3NpdGlvbj86ICdCRUZPUkVfTUVTU0FHRVMnIHwgJ0FGVEVSX01FU1NBR0VTJztcbiAgbGVnYWxNZXNzYWdlPzogc3RyaW5nO1xuICB3aXRoaW5CdXNpbmVzc0hvdXJzSW5pdGlhbFN0YXRlPzogQ2hhdFN0YXRlO1xuICBvdXRzaWRlQnVzaW5lc3NIb3Vyc0luaXRpYWxTdGF0ZT86IENoYXRTdGF0ZTtcbiAgd2l0aGluQnVzaW5lc3NIb3Vyc0J1dHRvbnRleHQ/OiBzdHJpbmc7XG4gIG91dHNpZGVCdXNpbmVzc0hvdXJzQnV0dG9udGV4dD86IHN0cmluZztcbiAgcmVvcGVuQ2hhdE1lc3NhZ2U6IHN0cmluZztcbn07XG5cbnR5cGUgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24gPSBTaW1wbGVDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiB8IEZ1bGxDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjtcblxudHlwZSBDb252ZXJzYXRpb25hbFNlYWNoID0ge1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgcmVwbHlJbnB1dD86IFJlcGx5SW5wdXRDb25maWc7XG4gIHN1Z2dlc3Rpb25zPzogc3RyaW5nW107XG4gIGVudHJ5cG9pbnRCZ0NvbG9yPzogc3RyaW5nO1xuICBlbnRyeXBvaW50VGV4dENvbG9yPzogc3RyaW5nO1xuICBlbnRyeXBvaW50QnRuQ29sb3I/OiBzdHJpbmc7XG4gIGVudHJ5cG9pbnRCdG5UZXh0Q29sb3I/OiBzdHJpbmc7XG4gIGVudHJ5cG9pbnRCdG5Cb3JkZXJDb2xvcj86IHN0cmluZztcbiAgZW50cnlwb2ludENvbnRhaW5lcj86IHN0cmluZztcbiAgZW50cnlwb2ludFRyaWdnZXI/OiBzdHJpbmc7XG4gIHByb2R1Y3RHcmlkQ29udGFpbmVyPzogc3RyaW5nO1xuICBnZW5lcmFsU2VhcmNoQnRuPzogc3RyaW5nO1xuICBwYWdlQ29udGVudD86IHN0cmluZztcbiAgc2VhcmNoQ29udGVudD86IHN0cmluZztcbiAgc29ydGluZ1RpdGxlPzogc3RyaW5nO1xuICBzZWxlY3Rpb25UaXRsZT86IHN0cmluZztcbiAgc29ydGluZ0ZvbnQ/OiBzdHJpbmc7XG4gIG9wdGlvbnNGb250Pzogc3RyaW5nO1xuICBzb3J0aW5nQnV0dG9uVGV4dD86IHN0cmluZztcbn07XG5cbnR5cGUgQ2hhdE1lc3NhZ2VWYXJpYW50ID0gJ3N0YW5kYXJkJyB8ICdwcmVtaXVtJyB8ICdhY2NlbnQnO1xuXG5pbnRlcmZhY2UgQ2hhdE1lc3NhZ2VDb25maWcge1xuICBhc3Npc3RhbnRDaGF0VGl0bGU6IHN0cmluZztcbiAgdmFyaWFudDogQ2hhdE1lc3NhZ2VWYXJpYW50O1xuICBwcm9kdWN0TGluazoge1xuICAgIHZhcmlhbnQ6IFByb2R1Y3RMaW5rVmFyaWFudDtcbiAgICBob3ZlclZhcmlhbnQ6IFByb2R1Y3RMaW5rSG92ZXJWYXJpYW50O1xuICAgIGljb25WYXJpYW50OiBQcm9kdWN0TGlua0ljb25WYXJpYW50O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUmVwbHlJbnB1dENvbmZpZyB7XG4gIC8vIFRPRE8gY29uc2lkZXIgbWFraW5nIHRoaXMgYSBudW1iZXJcbiAgc2l6ZT86ICdtZCcgfCAnbGcnO1xuICBzZW5kSWNvbjogJ2Fycm93VXAnIHwgJ3NlbmQnIHwgJ3NlYXJjaCc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGFydGlhbFZpZXdDb25maWcge1xuICAvLyBtYXhpbXVtIGhlaWdodCBvZiB0aGUgcGFydGlhbCB2aWV3IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgc2NyZWVuIGhlaWdodFxuICBtYXhIZWlnaHQ6IG51bWJlcjtcbiAgYm9yZGVyUmFkaXVzPzogc3RyaW5nO1xufVxuXG50eXBlIFByb2R1Y3RMaW5rSWNvblZhcmlhbnQgPVxuICB8ICdhY2NlbnRQcmltYXJ5J1xuICB8ICdiYWNrZ3JvdW5kUHJpbWFyeSdcbiAgfCAnYmFja2dyb3VuZFByaW1hcnlEYXJrJ1xuICB8ICdib3JkZXJMaWdodCdcbiAgfCAnYmFja2dyb3VuZFNhdHVyYXRlZCc7XG5cbnR5cGUgUHJvZHVjdExpbmtWYXJpYW50ID0gJ3RleHRMaW5rJztcblxudHlwZSBQcm9kdWN0TGlua0hvdmVyVmFyaWFudCA9ICdiYWNrZ3JvdW5kRGFyayc7XG5cbnR5cGUgU2VhcmNoQ2FyZFZhcmlhbnQgPVxuICB8ICdiYWNrZ3JvdW5kUHJpbWFyeSdcbiAgfCAnYmFja2dyb3VuZFNlY29uZGFyeSdcbiAgfCAnYmFja2dyb3VuZFNlY29uZGFyeURhcmsnXG4gIHwgJ2JhY2tncm91bmRMaWdodCdcbiAgfCAnYmFja2dyb3VuZFNhdHVyYXRlZCc7XG5cbnR5cGUgU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQgPVxuICB8ICdvdXRsaW5lZCdcbiAgfCAnb3V0bGluZWRMaWdodCdcbiAgfCAncHJpbWFyeSdcbiAgfCAnc2Vjb25kYXJ5J1xuICB8ICd0ZXJ0aWFyeSdcbiAgfCAnZGFyaydcbiAgfCAnZGFya0FjY2VudCdcbiAgfCAnZGFya1ByaW1hcnknXG4gIHwgJ3NlY29uZGFyeURhcmsnXG4gIHwgJ3NlY29uZGFyeUFjY2VudCdcbiAgfCAndHJhbnNwYXJlbnQnXG4gIHwgJ3RyYW5zcGFyZW50RGFyaydcbiAgfCAnbGlnaHREYXJrJztcblxuaW50ZXJmYWNlIFN1Z2dlc3Rpb25CdXR0b25Db25maWcge1xuICB2YXJpYW50PzogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gIGhvdmVyVmFyaWFudD86IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICBhbnN3ZXJWYXJpYW50PzogU3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnQ7XG4gIGJvcmRlclJhZGl1cz86ICdzbScgfCAnbWQnIHwgJ2xnJztcbn1cblxudHlwZSBOdW1Sb3dzID0gJ2RlZmF1bHQnIHwgJ2Fsd2F5c09uZVJvdycgfCAnYWx3YXlzVHdvUm93cycgfCAndHdvUm93c09uTW9iaWxlJztcblxuaW50ZXJmYWNlIEFscGhhYmV0aWNGaWx0ZXJTb3J0aW5nIHtcbiAgdHlwZTogJ2FscGhhYmV0aWMnO1xufVxuaW50ZXJmYWNlIFByb2R1Y3RDb3VudEZpbHRlclNvcnRpbmcge1xuICB0eXBlOiAncHJvZHVjdENvdW50Jztcbn1cbmludGVyZmFjZSBDdXN0b21GaWx0ZXJTb3J0aW5nIHtcbiAgdHlwZTogJ2N1c3RvbSc7XG4gIG1hcDogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbn1cblxudHlwZSBGaWx0ZXJTb3J0aW5nID0gQWxwaGFiZXRpY0ZpbHRlclNvcnRpbmcgfCBQcm9kdWN0Q291bnRGaWx0ZXJTb3J0aW5nIHwgQ3VzdG9tRmlsdGVyU29ydGluZztcblxuaW50ZXJmYWNlIEJhc2VGaWx0ZXJDb25maWcge1xuICBmaWx0ZXJJZDogc3RyaW5nO1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xufVxuaW50ZXJmYWNlIER5bmFtaWNGaWx0ZXJDb25maWcgZXh0ZW5kcyBCYXNlRmlsdGVyQ29uZmlnIHtcbiAgdHlwZTogJ2R5bmFtaWMnO1xuICBhdHRyaWJ1dGU6IHN0cmluZztcbiAgc29ydGluZzogRmlsdGVyU29ydGluZztcbn1cblxuaW50ZXJmYWNlIFByaWNlRmlsdGVyQ29uZmlnIGV4dGVuZHMgQmFzZUZpbHRlckNvbmZpZyB7XG4gIHR5cGU6ICdwcmljZSc7XG4gIGJ1Y2tldFNpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVyQXR0cmlidXRlID0gRHluYW1pY0ZpbHRlckNvbmZpZyB8IFByaWNlRmlsdGVyQ29uZmlnO1xuXG5leHBvcnQgdHlwZSBTZWFyY2haZXJvU3RhdGVWYXJpYW50ID0gJ2JhY2tncm91bmRUZXJ0aWFyeScgfCAnYmFja2dyb3VuZERhcmsnIHwgJ2JhY2tncm91bmRQcmltYXJ5JztcbmV4cG9ydCB0eXBlIFNlYXJjaFplcm9TdGF0ZUxheW91dCA9ICdpbnB1dCcgfCAnaWNvbic7XG5cbmV4cG9ydCB0eXBlIFNlYXJjaElucHV0VmFyaWFudCA9ICdzdGFuZGFyZCc7XG5cbmV4cG9ydCB0eXBlIFNlYXJjaEljb25WYXJpYW50ID0gJ3RoaW4nIHwgJ2JvbGQnO1xuXG5leHBvcnQgdHlwZSBTZWFyY2hGaWx0ZXJTaWRlYmFyVmFyaWFudCA9ICdkYXJrQnV0dG9uJyB8ICdsaWdodEJ1dHRvbic7XG5cbmV4cG9ydCB0eXBlIFByb2R1Y3RHcmlkVmFyaWFudCA9ICdzdGFuZGFyZCcgfCAnc3F1YXJlJztcblxudHlwZSBVc2VyUXVlcnlCdXR0b25JY29uID1cbiAgfCAnbWFnbmlmeWluZ0dsYXNzJ1xuICB8ICdzZW5kJ1xuICB8ICdtYWduaWZ5aW5nR2xhc3NUaGluJ1xuICB8ICdzZW5kQXJyb3cnXG4gIHwgJ3NlYXJjaEljb24nO1xuXG5pbnRlcmZhY2UgVXNlclF1ZXJ5QnV0dG9uQ29uZmlnIHtcbiAgdmFyaWFudD86ICdib3gnIHwgJ3VuZGVybGluZUxpZ2h0JyB8ICd1bmRlcmxpbmVEYXJrJztcbiAgcGxhY2Vob2xkZXJUZXh0Pzogc3RyaW5nO1xuICBpY29uOiBVc2VyUXVlcnlCdXR0b25JY29uO1xufVxuXG4vLyBUT0RPOiB0aGlzIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgdG9wLWxldmVsIHdpZGdldCBjb25maWdcbmludGVyZmFjZSBUZXJtc0FuZENvbmRpdGlvbnNDb25maWcge1xuICBjb3B5OiBzdHJpbmc7XG4gIGxpbms6IHN0cmluZztcbiAgbGlua1RleHQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE1lcmNoYW50VmFyaWFudFNldHRpbmdzIHtcbiAgZHluYW1pY1ZhcmlhbnRzOiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjsgLy8gVGhpcyBmZWF0dXJlIHdpbGwgZW5hYmxlIGR5bmFtaWMgdmFyaWFudHMgZm9yIHRoZSBtZXJjaGFudC4gVXNlZnVsIGZvciBTUEEnc1xuICAgIHJlZnJlc2hJbnRlcnZhbD86IG51bWJlcjsgLy8gVGhlIGludGVydmFsIGluIG1pbGxpc2Vjb25kcyB0byBjaGVjayBmb3IgY2hhbmdlcyBpbiB0aGUgVVJMXG4gIH07XG59XG5cbmludGVyZmFjZSBGbG9hdGluZ0NoYXRDb25maWcge1xuICBlbmFibGVXYXRlcm1hcms6IGJvb2xlYW47XG4gIHVzZXJRdWVyeUlucHV0RW5hYmxlZDogYm9vbGVhbjtcbiAgaWdub3JlRmlyc3RNb2RlbFJlc3BvbnNlPzogYm9vbGVhbjtcbiAgbmV2ZXJTaG93U2luZ2xlUHJvZHVjdENhcmRzPzogYm9vbGVhbjtcbiAgdGVybXNBbmRDb25kaXRpb25zQ29uZmlnPzogVGVybXNBbmRDb25kaXRpb25zQ29uZmlnO1xuXG4gIC8vIEZvb3RlciBjb25maWdcbiAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZz86IFN1Z2dlc3Rpb25CdXR0b25Db25maWc7XG4gIHJlcGx5SW5wdXRDb25maWc6IFJlcGx5SW5wdXRDb25maWc7XG59XG5cbmludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICBlbmFibGVHbG9iYWxTZWFyY2g6IGJvb2xlYW47XG4gIHNlYXJjaEZpbHRlckNvbmZpZzogRmlsdGVyQXR0cmlidXRlW107XG4gIHNlYXJjaE92ZXJsYXlIZWFkaW5nPzogc3RyaW5nO1xuICByZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmw/OiBzdHJpbmc7XG4gIGFkZGl0aXZlRHluYW1pY0ZpbHRlcnM/OiBib29sZWFuO1xuICByZWNvbW1lbmRlZFByb2R1Y3RzPzogc3RyaW5nW107XG4gIHJlY29tbWVuZGVkUHJvZHVjdHNIZWFkaW5nPzogc3RyaW5nO1xufVxuXG50eXBlIENvbmZpZ1ZlcnNpb24gPSAndjMnIHwgJ2RlcHJlY2F0ZWQnIHwgdW5kZWZpbmVkO1xuXG50eXBlIE9yZ1VJQ29uZmlnID0ge1xuICB2ZXJzaW9uPzogQ29uZmlnVmVyc2lvbjtcbiAgc2hvcnROYW1lOiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBmbG9hdGluZ0VudHJ5cG9pbnRDb25maWc/OiBGbG9hdGluZ0VudHJ5UG9pbnRDb25maWc7XG4gIC8vIERlcHJlY2F0ZWQgLSByZW1vdmUgd2l0aCBDaGF0UHJldmlldyByZXdyaXRlXG4gIGNoYXRQcmV2aWV3Q29uZmlnPzogQ2hhdFByZXZpZXdDb25maWc7XG5cbiAgY3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb246IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uO1xuICAvLyBEZXByZWNhdGVkIC0gcmVtb3ZlIHdoZW4gR2xvYmFsIFNlYXJjaCBpcyBmdWxseSBsYXVuY2hlZFxuICBjb252ZXJzYXRpb25hbFNlYXJjaD86IENvbnZlcnNhdGlvbmFsU2VhY2g7XG5cbiAgbWVyY2hhbnRPdmVycmlkZUNzcz86IHN0cmluZztcblxuICAvLyBEZXByZWNhdGVkIFRPRE86IFJlbW92ZSB0aGlzIGRlcHJlY2F0ZWQgdmFsdWUgd2hlbiBHcm9vdmUgQ1ggaGFzIHByb3BlciB1bmlmaWVkIGJ1dHRvbiBzdXBwb3J0XG4gIC8vIHNlbGVjdG9ycyBmb3IgZWxlbWVudHMgdGhhdCBzaG91bGQgYmUgaGlkZGVuIHdoZW4gdGhlIGNoYXQgaXMgb3BlblxuICAvLyBlLmcuIENTIHdpZGdldHMgd2l0aCBtYXggei1pbmRleCAoXCJkaXZbaWQqPSdjcy1jb250YWluZXInXVwiKVxuICBoaWRkZW5FbGVtZW50U2VsZWN0b3JzPzogc3RyaW5nW107XG5cbiAgbWVyY2hhbnRWYXJpYW50U2V0dGluZ3M/OiBNZXJjaGFudFZhcmlhbnRTZXR0aW5ncztcbiAgLy8gVE9ETzogTWlncmF0ZSBhbGwgZmxvYXRpbmcgY2hhdCBjb25maWcgaW50byB0aGlzIHRvcC1sZXZlbCBrZXlcbiAgLy9cbiAgZmxvYXRpbmdDaGF0Q29uZmlnOiBGbG9hdGluZ0NoYXRDb25maWc7XG5cbiAgLy8gQ29udGFpbiBhbGwgc2VhcmNoIGNvbmZpZyBoZXJlXG4gIHNlYXJjaENvbmZpZzogU2VhcmNoQ29uZmlnO1xuICAvLyBUT0RPOiBNb3ZlIHRoZXNlIGludG8gRmxvYXRpbmdDaGF0Q29uZmlnXG4gIC8vIENoYXQgSGVhZGVyIHJlbGF0ZWQgdmFsdWVzXG4gIGNoYXRIZWFkZXI6IENoYXRIZWFkZXJDb25maWc7XG4gIHN0aWNreUFnZW50U3dpdGNoU3VnZ2VzdGlvbj86IGJvb2xlYW47XG4gIHBhcnRpYWxWaWV3Q29uZmlnOiBQYXJ0aWFsVmlld0NvbmZpZztcbiAgd2VsY29tZVNlY3Rpb25Db25maWc/OiBXZWxjb21lU2VjdGlvbkNvbmZpZztcbiAgLy8gRGlmZmVyZW50IHJlc3BvbnNlIHZhbHVlc1xuICBwcm9kdWN0Q2FyZENvbmZpZz86IFByb2R1Y3RDYXJkQ29uZmlnO1xuICBwcm9kdWN0UmV2aWV3Q29uZmlnPzogUHJvZHVjdFJldmlld0NvbmZpZztcbiAgcGFnZUNhcmRDb25maWc/OiBQYWdlQ2FyZENvbmZpZztcbiAgY2hhdE1lc3NhZ2VDb25maWc6IENoYXRNZXNzYWdlQ29uZmlnO1xufTtcblxudHlwZSBJbnNlcnRpb25Qb2ludCA9IHtcbiAgc2VsZWN0b3I6IHN0cmluZztcbiAgLy8gdGhpcyBpcyB0aGUgaW5kZXggb2YgdGhlIHRhcmdldCBlbGVtZW50LCAwIGlmIG1pc3NpbmdcbiAgc2VsZWN0aW9uSW5kZXg/OiBudW1iZXI7XG4gIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGU7XG59O1xuXG50eXBlIFVSTFRlc3QgPSAnc2hvcGlmeScgfCAnbnVsbCc7XG5cbnR5cGUgSWRFeHRyYWN0b3IgPVxuICB8ICdzaG9waWZ5LXByb2R1Y3QtaWQnXG4gIHwgJ3Nob3BpZnktY29sbGVjdGlvbi1pZCdcbiAgfCAnc2hvcGlmeS1wcm9kdWN0LXZhcmlhbnQtaWQnXG4gIHwgJ3VybC1yZXNvbHZlci1wcm9kdWN0LWlkJ1xuICB8ICd1cmwtcmVzb2x2ZXItcGxwLWlkJ1xuICB8ICdudWxsJztcblxuLy8gVGhpcyBjb250YWlucyBhIG1hcCBiZXR3ZWVuIFBhZ2VWaXNpdENhdGVnb3J5IGFuZCBhIGxpc3Qgb2YgVVJMJ3MgdGhhdCBhcmUgY2xhc3NpZmllZCBhcyB0aGUgdmFsdWVcbmVudW0gQ2F0ZWdvcnlFeHRyYWN0b3JUeXBlIHtcbiAgVmlzaXRDYXRlZ29yeU1hcCA9ICdWaXNpdENhdGVnb3J5TWFwJyxcbiAgVmlzaXRDYXRlZ29yeURlZmF1bHQgPSAnVmlzaXRDYXRlZ29yeURlZmF1bHQnLFxufVxuXG5pbnRlcmZhY2UgQmFzZUNhdGVnb3J5RXh0cmFjdG9yPFQgZXh0ZW5kcyBDYXRlZ29yeUV4dHJhY3RvclR5cGU+IHtcbiAgdHlwZTogVDtcbn1cblxuLy8gVGhpcyBtYXAgYmV0d2VlbnMgYSBjYXRlZ29yeSBhbmQgYSBsaXN0IG9mIHVybCBwYXR0ZXJuc1xuaW50ZXJmYWNlIFZpc2l0Q2F0ZWdvcnlNYXAgZXh0ZW5kcyBCYXNlQ2F0ZWdvcnlFeHRyYWN0b3I8Q2F0ZWdvcnlFeHRyYWN0b3JUeXBlLlZpc2l0Q2F0ZWdvcnlNYXA+IHtcbiAgbWFwOiB7XG4gICAgW2tleSBpbiBQYWdlVmlzaXRDYXRlZ29yeV0/OiBzdHJpbmdbXTtcbiAgfTtcbn1cblxuLy8gVGhpcyB3aWxsIHJldHVybiBhIGhhcmQtY29kZWQgZGVmYXVsdCBQYWdlVmlzaXRDYXRlZ29yeS4gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSBmYWxsYmFjayBwYWdlIHR5cGVzXG5pbnRlcmZhY2UgVmlzaXRDYXRlZ29yeURlZmF1bHQgZXh0ZW5kcyBCYXNlQ2F0ZWdvcnlFeHRyYWN0b3I8Q2F0ZWdvcnlFeHRyYWN0b3JUeXBlLlZpc2l0Q2F0ZWdvcnlEZWZhdWx0PiB7XG4gIHZhbHVlOiBQYWdlVmlzaXRDYXRlZ29yeTtcbn1cblxudHlwZSBDYXRlZ29yeUV4dHJhY3RvciA9IFZpc2l0Q2F0ZWdvcnlNYXAgfCBWaXNpdENhdGVnb3J5RGVmYXVsdDtcblxudHlwZSBXcmFwcGluZ0VsZW1lbnQgPSB7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICBlbGVtZW50OiBzdHJpbmc7XG4gIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGU7XG59O1xuXG5lbnVtIFBhZ2VWYXJpYW50VGVzdFR5cGUge1xuICBQYWdlQ2F0ZWdvcnkgPSAnUGFnZUNhdGVnb3J5JyxcbiAgQ2F0YWxvZ0NhdGVnb3J5ID0gJ0NhdGFsb2dDYXRlZ29yeScsXG4gIFRvcENhdGFsb2dDYXRlZ29yeSA9ICdUb3BDYXRhbG9nQ2F0ZWdvcnknLFxuICBIYXNSZXZpZXdzID0gJ0hhc1Jldmlld3MnLFxuICBJbkNvbGxlY3Rpb24gPSAnSW5Db2xsZWN0aW9uJyxcbiAgSGFzTWVyY2hhbnRUYWcgPSAnSGFzTWVyY2hhbnRUYWcnLFxuICBGZWF0dXJlR2F0ZSA9ICdGZWF0dXJlR2F0ZScsXG4gIFBscElkID0gJ1BscElkJyxcbiAgUXVlcnlQYXJhbSA9ICdRdWVyeVBhcmFtJyxcbiAgUHJvZHVjdElkID0gJ1Byb2R1Y3RJZCcsXG4gIFVzZXJIYXNJbnRlcmFjdGVkID0gJ1VzZXJIYXNJbnRlcmFjdGVkJyxcbiAgVXNlckhhc05vdEludGVyYWN0ZWQgPSAnVXNlckhhc05vdEludGVyYWN0ZWQnLFxuICBpc0xvYWRpbmcgPSAnaXNMb2FkaW5nJyxcbiAgaXNQcm9kdWN0Q29tcGFyaXNvbiA9ICdpc1Byb2R1Y3RDb21wYXJpc29uJyxcbiAgRmFsbGJhY2sgPSAnRmFsbGJhY2snLFxuICBVcmxSZXNvbHZlciA9ICdVcmxSZXNvbHZlcicsXG4gIGlzU2NyZWVuV2lkdGhTbWFsbGVyID0gJ2lzU2NyZWVuV2lkdGhTbWFsbGVyJyxcbiAgTnVsbCA9ICdudWxsJyxcbn1cblxuaW50ZXJmYWNlIEJhc2VQYWdlVmFyaWFudFRlc3Q8VCBleHRlbmRzIFBhZ2VWYXJpYW50VGVzdFR5cGU+IHtcbiAgdGVzdFR5cGU6IFQ7XG59XG5cbmludGVyZmFjZSBUb3BDYXRhbG9nQ2F0ZWdvcnkgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuVG9wQ2F0YWxvZ0NhdGVnb3J5PiB7XG4gIHRvcENhdGVnb3J5OiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIENhdGFsb2dDYXRlZ29yeVRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuQ2F0YWxvZ0NhdGVnb3J5PiB7XG4gIGNhdGVnb3J5OiBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeTtcbn1cblxuaW50ZXJmYWNlIEhhc1Jldmlld3NUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3M+IHtcbiAgcmV2aWV3TWluaW11bT86IG51bWJlcjtcbn1cblxuLy8gVGhpcyB3aWxsIHJldHVybiB0cnVlIGlmIHRoZSBwcm9kdWN0IGlzIGluIGFueSBvZiB0aGUgbGlzdGVkIGNvbGxlY3Rpb25zXG5pbnRlcmZhY2UgSW5Db2xsZWN0aW9uVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24+IHtcbiAgY29sbGVjdGlvbnM6IHN0cmluZ1tdO1xufVxuXG4vLyBUaGlzIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlIHByb2R1Y3QgaGFzIGFueSBvZiB0aGUgbGlzdGVkIG1lcmNoYW50IHRhZ3NcbmludGVyZmFjZSBIYXNNZXJjaGFudFRhZ1Rlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuSGFzTWVyY2hhbnRUYWc+IHtcbiAgbWVyY2hhbnRUYWdzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIFBhZ2VDYXRlZ29yeVRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuUGFnZUNhdGVnb3J5PiB7XG4gIGV4dHJhY3RvcjogQ2F0ZWdvcnlFeHRyYWN0b3I7XG59XG5cbmludGVyZmFjZSBGZWF0dXJlR2F0ZVRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGU+IHtcbiAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcztcbn1cblxuaW50ZXJmYWNlIFByb2R1Y3RJZFRlc3QgZXh0ZW5kcyBCYXNlUGFnZVZhcmlhbnRUZXN0PFBhZ2VWYXJpYW50VGVzdFR5cGUuUHJvZHVjdElkPiB7XG4gIHByb2R1Y3RJZEV4dHJhY3RvcjogSWRFeHRyYWN0b3I7XG4gIHByb2R1Y3RJZHM6IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUGxwSWRUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlBscElkPiB7XG4gIHBscElkRXh0cmFjdG9yOiBJZEV4dHJhY3RvcjtcbiAgcGxwSWRzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIFF1ZXJ5UGFyYW1UZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlF1ZXJ5UGFyYW0+IHtcbiAgcXVlcnlQYXJhbTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVXNlckhhc0ludGVyYWN0ZWRUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlVzZXJIYXNJbnRlcmFjdGVkPiB7fVxuXG5pbnRlcmZhY2UgVXNlckhhc05vdEludGVyYWN0ZWRUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlVzZXJIYXNOb3RJbnRlcmFjdGVkPiB7fVxuXG5pbnRlcmZhY2UgSXNMb2FkaW5nVGVzdCBleHRlbmRzIEJhc2VQYWdlVmFyaWFudFRlc3Q8UGFnZVZhcmlhbnRUZXN0VHlwZS5pc0xvYWRpbmc+IHt9XG5cbmludGVyZmFjZSBJc1Byb2R1Y3RDb21wYXJpc29uIGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLmlzUHJvZHVjdENvbXBhcmlzb24+IHt9XG5cbmludGVyZmFjZSBQYWdlRmFsbGJhY2tUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLkZhbGxiYWNrPiB7fVxuXG5pbnRlcmZhY2UgVXJsUmVzb2x2ZXJUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyPiB7fVxuXG5pbnRlcmZhY2UgSXNTY3JlZW5XaWR0aFNtYWxsZXJUZXN0IGV4dGVuZHMgQmFzZVBhZ2VWYXJpYW50VGVzdDxQYWdlVmFyaWFudFRlc3RUeXBlLmlzU2NyZWVuV2lkdGhTbWFsbGVyPiB7XG4gIGJyZWFrcG9pbnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgUGFnZVZhcmlhbnRUZXN0ID1cbiAgfCBQYWdlQ2F0ZWdvcnlUZXN0XG4gIHwgQ2F0YWxvZ0NhdGVnb3J5VGVzdFxuICB8IFRvcENhdGFsb2dDYXRlZ29yeVxuICB8IEhhc1Jldmlld3NUZXN0XG4gIHwgSW5Db2xsZWN0aW9uVGVzdFxuICB8IEhhc01lcmNoYW50VGFnVGVzdFxuICB8IEZlYXR1cmVHYXRlVGVzdFxuICB8IFByb2R1Y3RJZFRlc3RcbiAgfCBQbHBJZFRlc3RcbiAgfCBRdWVyeVBhcmFtVGVzdFxuICB8IFVzZXJIYXNJbnRlcmFjdGVkVGVzdFxuICB8IFVzZXJIYXNOb3RJbnRlcmFjdGVkVGVzdFxuICB8IElzTG9hZGluZ1Rlc3RcbiAgfCBJc1Byb2R1Y3RDb21wYXJpc29uXG4gIHwgUGFnZUZhbGxiYWNrVGVzdFxuICB8IFVybFJlc29sdmVyVGVzdFxuICB8IElzU2NyZWVuV2lkdGhTbWFsbGVyVGVzdDtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgc29jaWFsIHByb29mIGVtYmVkZGVkIHdpZGdldFxuICpcbiAqIEBwYXJhbSBoZWFkZXJUaXRsZSAtIFRoZSB0aXRsZSB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIHdpZGdldCBoZWFkZXJcbiAqIEBwYXJhbSBzdGF0aWNTdWdnZXN0aW9ucyAtIEEgbGlzdCBvZiBzdHJpbmdzIHRvIGRpc3BsYXkgYXMgc3VnZ2VzdGlvbnMgaW4gdGhlIHdpZGdldFxuICogQHBhcmFtIHN1Z2dlc3Rpb25CdXR0b25WYXJpYW50RGVmYXVsdCAtIFRoZSB2YXJpYW50IG9mIHRoZSBzdWdnZXN0aW9uIGJ1dHRvbiB0byBkaXNwbGF5IGluIHRoZSB3aWRnZXQgZm9vdGVyXG4gKiBAcGFyYW0gc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnRBY2NlbnQgLSBUaGUgdmFyaWFudCBvZiB0aGUgc3VnZ2VzdGlvbiBidXR0b24gdG8gZGlzcGxheSBpbiB0aGUgd2lkZ2V0IGJvZHlcbiAqIEBwYXJhbSBzdGF0aWNJbWFnZUluZGV4IC0gSW5kZXggb2YgdGhlIGltYWdlVXJsIHRvIHVzZSBmcm9tIHRoZSBwcm9kdWN0IHJlc3BvbnNlXG4gKi9cbmludGVyZmFjZSBTb2NpYWxQcm9vZkNvbmZpZyB7XG4gIGN1c3RvbWVyUXVlcnk6IHN0cmluZztcbiAgaGVhZGVyVGl0bGU6IHN0cmluZztcbiAgc3RhdGljUExQSW1hZ2VzTGF5b3V0PzogJ2dyaWQnIHwgJ2hvcml6b250YWwnO1xuICBoZWFkZXJGb250RmFtaWx5Pzogc3RyaW5nO1xuICBzdGF0aWNQTFBJbWFnZU5hbWVzPzogc3RyaW5nW107XG4gIHN0YXRpY0ltYWdlSW5kZXg/OiBudW1iZXI7XG4gIHN1Z2dlc3Rpb25CdXR0b25TdHJpbmdzOiBzdHJpbmdbXTtcbiAgc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnREZWZhdWx0OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgc3VnZ2VzdGlvbkJ1dHRvblZhcmlhbnRBY2NlbnQ/OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgc3VnZ2VzdGlvbkJ1dHRvbkRhdGFBdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnPzogVXNlclF1ZXJ5QnV0dG9uQ29uZmlnO1xuICBsb2dvTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyB0aGUgbW91bnQgcG9pbnQgZm9yIGEgd2lkZ2V0XG4gKlxuICogQHBhcmFtIGNsYXNzTmFtZSAtIE9wdGlvbmFsIGNsYXNzIG5hbWUgdG8gYXBwbHkgdG8gdGhlIG1vdW50IHBvaW50LiBUYWlsd2luZCBjbGFzc2VzIGFyZSBzdXBwb3J0ZWRcbiAqIGFuZCBlbmNvdXJhZ2VkLiBVc2UgdGhpcyBwYXJhbWV0ZXIgdG8gc3R5bGUgdGhlIG1vdW50aW5nIGNvbnRhaW5lciBmb3IgdGhlIHdpZGdldC5cbiAqL1xuZXhwb3J0IHR5cGUgV2lkZ2V0TW91bnRpbmdDb25maWcgPSB7XG4gIG1vdW50aW5nQ29uZmlnSWQ6IHN0cmluZztcbiAgY29udGFpbmVySWQ6IHN0cmluZztcbiAgdGVzdElkOiBzdHJpbmc7XG4gIHBhcmVudEluc2VydGlvblBvaW50PzogSW5zZXJ0aW9uUG9pbnQ7XG4gIGluc2VydGlvblBvaW50OiBJbnNlcnRpb25Qb2ludDtcbiAgZ3JpZEluc2VydGlvblR5cGU/OiBHcmlkSW5zZXJ0aW9uVHlwZTtcbiAgd3JhcHBpbmdFbGVtZW50PzogV3JhcHBpbmdFbGVtZW50O1xuICBkaXZDaGVja1NlbGVjdG9yPzogc3RyaW5nO1xuICBzdXBwcmVzc2lvblNlbGVjdG9yPzogc3RyaW5nO1xuICBzdHlsZT86IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgZGF0YUF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufTtcblxudHlwZSBTdGF0aWNXaWRnZXRNb3VudGluZyA9IHtcbiAgbW91bnRpbmdDb25maWdJZDogc3RyaW5nO1xuICB3aWRnZXRDb25maWdJZDogc3RyaW5nO1xufTtcbnR5cGUgRHluYW1pY1dpZGdldE1vdW50aW5nID0ge1xuICBtb3VudGluZ0NvbmZpZ0lkOiBzdHJpbmc7XG4gIG1vdW50aW5nUG9pbnRXaWRnZXRzOiBXaWRnZXREaXNwbGF5VGVzdHNbXTtcbn07XG5cbnR5cGUgV2lkZ2V0RGlzcGxheVRlc3RzID0ge1xuICB0ZXN0czogUGFnZVZhcmlhbnRUZXN0W107XG4gIHdpZGdldENvbmZpZ0lkOiBzdHJpbmc7XG59O1xuXG50eXBlIFdpZGdldE1vdW50aW5nID0gU3RhdGljV2lkZ2V0TW91bnRpbmcgfCBEeW5hbWljV2lkZ2V0TW91bnRpbmc7XG5cbmVudW0gV2lkZ2V0VHlwZSB7XG4gIENoYXRQcmV2aWV3ID0gJ0NoYXRQcmV2aWV3JyxcbiAgU29jaWFsUHJvb2ZWMiA9ICdTb2NpYWxQcm9vZlYyJyxcbiAgQ2hhdFByZXZpZXdWMiA9ICdDaGF0UHJldmlld1YyJyxcbiAgQ2hhdFByZXZpZXdJc0xvYWRpbmcgPSAnQ2hhdFByZXZpZXdJc0xvYWRpbmcnLFxuICBDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbiA9ICdDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbicsXG4gIENoYXRQcmV2aWV3UHJvZHVjdENvbXBhcmlzb24gPSAnQ2hhdFByZXZpZXdQcm9kdWN0Q29tcGFyaXNvbicsXG4gIFN1Z2dlc3Rpb25CYXIgPSAnU3VnZ2VzdGlvbkJhcicsXG4gIFN1Z2dlc3Rpb25CYXJWMiA9ICdTdWdnZXN0aW9uQmFyVjInLFxuICBJbWFnZVByb21wdENhcmQgPSAnSW1hZ2VQcm9tcHRDYXJkJyxcbiAgSW1hZ2VCYW5uZXIgPSAnSW1hZ2VCYW5uZXInLFxuICBTaW5nbGVJbWFnZVByb21wdCA9ICdTaW5nbGVJbWFnZVByb21wdCcsXG4gIFNlYXJjaFByb21wdCA9ICdTZWFyY2hQcm9tcHQnLFxuICBTZWFyY2haZXJvU3RhdGVFbnRyeVBvaW50ID0gJ1NlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQnLFxuICBTZWFyY2hSZXN1bHRzRW50cnlQb2ludCA9ICdTZWFyY2hSZXN1bHRzRW50cnlQb2ludCcsXG4gIFNlYXJjaE92ZXJsYXlIb3N0ID0gJ1NlYXJjaE92ZXJsYXlIb3N0JyxcbiAgTm9PcCA9ICdOb09wJyxcbn1cblxudHlwZSBXaWRnZXRDb25maWcgPVxuICB8IENoYXRQcmV2aWV3V2lkZ2V0Q29uZmlnXG4gIHwgU29jaWFsUHJvb2ZWMldpZGdldENvbmZpZ1xuICB8IENoYXRQcmV2aWV3VjJXaWRnZXRDb25maWdcbiAgfCBDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbldpZGdldENvbmZpZ1xuICB8IENoYXRQcmV2aWV3SXNMb2FkaW5nV2lkZ2V0Q29uZmlnXG4gIHwgQ2hhdFByZXZpZXdQcm9kdWN0Q29tcGFyaXNvbldpZGdldENvbmZpZ1xuICB8IFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZ1xuICB8IEltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnXG4gIHwgSW1hZ2VCYW5uZXJXaWRnZXRDb25maWdcbiAgfCBTaW5nbGVJbWFnZVByb21wdFdpZGdldENvbmZpZ1xuICB8IFNlYXJjaFByb21wdFdpZGdldENvbmZpZ1xuICB8IFNlYXJjaEVudHJ5UG9pbnRXaWRnZXRDb25maWdcbiAgfCBTZWFyY2hSZXN1bHRzRW50cnlQb2ludFdpZGdldENvbmZpZ1xuICB8IFNlYXJjaE92ZXJsYXlIb3N0V2lkZ2V0Q29uZmlnXG4gIHwgTm9PcFdpZGdldENvbmZpZztcblxuaW50ZXJmYWNlIEJhc2VXaWRnZXRDb25maWc8VCBleHRlbmRzIFdpZGdldFR5cGU+IHtcbiAgd2lkZ2V0Q29uZmlnSWQ6IHN0cmluZztcbiAgdHlwZTogVDtcbiAgY29udGVudElkPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgSW1hZ2VCYW5uZXJXaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuSW1hZ2VCYW5uZXI+IHtcbiAgaW1hZ2VTcmM6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgc3VidGl0bGU6IHN0cmluZztcbiAgYXNzaXN0YW50TWVzc2FnZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdXaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXc+IHtcbiAgdmFyaWFudDogJ2ZpbGxlZCcgfCAnZmxhdCcgfCAnb3V0bGluZWQnO1xuICBhZGRTZXBhcmF0b3JzPzogYm9vbGVhbjtcbiAgc29jaWFsUHJvb2ZDb25maWc/OiBTb2NpYWxQcm9vZkNvbmZpZztcbiAgZm9vdGVyQ29uZmlnPzogQ2hhdFByZXZpZXdGb290ZXJDb25maWc7XG59XG5cbmludGVyZmFjZSBDaGF0UHJldmlld0hlYWRlclYyQ29uZmlnIHtcbiAgdGl0bGU/OiBzdHJpbmc7IC8vIERlZmF1bHQ6ICdTaG9wcGluZyBBc3Npc3RhbnQnXG4gIGltYWdlU3JjPzogc3RyaW5nO1xuICBpbWFnZUhlaWdodD86IG51bWJlcjtcbn1cblxudHlwZSBTaW5nbGVJbWFnZUNvbmZpZyA9IHtcbiAgbGF5b3V0OiAnc2luZ2xlJztcbiAgaW1hZ2VJbmRleDogbnVtYmVyO1xufTtcbnR5cGUgTXVsdGlJbWFnZUNvbmZpZyA9IHtcbiAgbGF5b3V0OiAnZ3JpZCcgfCAnaG9yaXpvbnRhbCc7XG4gIGltYWdlTmFtZXM6IHN0cmluZ1tdO1xufTtcbnR5cGUgU29jaWFsUHJvb2ZJbWFnZUNvbmZpZyA9IFNpbmdsZUltYWdlQ29uZmlnIHwgTXVsdGlJbWFnZUNvbmZpZztcblxudHlwZSBDaGF0UHJldmlld1N1Z2dlc3Rpb25CdXR0b25Db25maWcgPSB7XG4gIGJ1dHRvblN0cmluZ3M6IHN0cmluZ1tdO1xuICBhY2NlbnRCdXR0b25WYXJpYW50cz86IHtcbiAgICBidXR0b246IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIGhvdmVyOiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgfTtcbiAgYnV0dG9uVmFyaWFudHM6IHtcbiAgICBidXR0b246IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIGhvdmVyOiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgfTtcbiAgbnVtUm93cz86IE51bVJvd3M7XG59O1xuXG50eXBlIENoYXRQcmV2aWV3QW5pbWF0ZWRUZXh0Q29uZmlnID0ge1xuICBsZWFkaW5nVGV4dDogc3RyaW5nO1xuICBhbmltYXRlZFN0cmluZ3M6IHN0cmluZ1tdO1xufTtcblxudHlwZSBDaGF0UHJldmlld1ZhcmlhbnQgPVxuICB8IHsgdmFyaWFudDogJ2ZsYXQnIH1cbiAgfCB7IHZhcmlhbnQ6ICdmaWxsZWQnOyBiYWNrZ3JvdW5kRmlsbENvbG9yOiBzdHJpbmcgfVxuICB8IHsgdmFyaWFudDogJ291dGxpbmVkJyB9O1xuXG4vLyBCYXNlIGludGVyZmFjZSBmb3IgY29tbW9uIGNoYXQgcHJldmlldyBwcm9wZXJ0aWVzXG5pbnRlcmZhY2UgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbiAgaGVhZGVyQ29uZmlnOiBDaGF0UHJldmlld0hlYWRlclYyQ29uZmlnO1xuICBzdWdnZXN0aW9uQnV0dG9uc0NvbmZpZzogQ2hhdFByZXZpZXdTdWdnZXN0aW9uQnV0dG9uQ29uZmlnO1xuICB1c2VyUXVlcnlCdXR0b25Db25maWc6IFVzZXJRdWVyeUJ1dHRvbkNvbmZpZztcbiAgY2hhdFByZXZpZXdWYXJpYW50OiBDaGF0UHJldmlld1ZhcmlhbnQ7XG4gIGFkZFNlcGFyYXRvcnM/OiBib29sZWFuO1xufVxuXG4vLyBTcGVjaWZpYyBjaGF0IHByZXZpZXcgd2lkZ2V0IGNvbmZpZ3VyYXRpb25zXG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdQb3N0SW50ZXJhY3Rpb25XaWRnZXRDb25maWdcbiAgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuQ2hhdFByZXZpZXdQb3N0SW50ZXJhY3Rpb24+LCBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICBjaGF0UHJldmlld1ZhcmlhbnQ6IENoYXRQcmV2aWV3VmFyaWFudDtcbiAgYWRkU2VwYXJhdG9ycz86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDaGF0UHJldmlld0lzTG9hZGluZ1dpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5DaGF0UHJldmlld0lzTG9hZGluZz4sIEJhc2VDaGF0UHJldmlld0NvbmZpZyB7fVxuXG5pbnRlcmZhY2UgQ2hhdFByZXZpZXdQcm9kdWN0Q29tcGFyaXNvbldpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5DaGF0UHJldmlld1Byb2R1Y3RDb21wYXJpc29uPiwgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbiAgdXNlTGFyZ2VQcm9kdWN0Q29tcGFyaXNvbj86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDaGF0UHJldmlld1YyV2lkZ2V0Q29uZmlnXG4gIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLkNoYXRQcmV2aWV3VjI+LCBCYXNlQ2hhdFByZXZpZXdDb25maWcge1xuICBhbmltYXRlZFRleHRDb25maWc6IENoYXRQcmV2aWV3QW5pbWF0ZWRUZXh0Q29uZmlnO1xufVxuXG5pbnRlcmZhY2UgU29jaWFsUHJvb2ZWMldpZGdldENvbmZpZ1xuICBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5Tb2NpYWxQcm9vZlYyPiwgQmFzZUNoYXRQcmV2aWV3Q29uZmlnIHtcbiAgY3VzdG9tZXJRdWVyeT86IHN0cmluZzsgLy8gRGVmYXVsdDogJ2Fza2VkIHdoaWNoIHByb2R1Y3RzIGFyZSB0aGUgYmVzdCdcbiAgaW1hZ2VDb25maWc6IFNvY2lhbFByb29mSW1hZ2VDb25maWc7XG59XG5cbmludGVyZmFjZSBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyPiB7XG4gIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb247XG4gIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzO1xuICB2YXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgaG92ZXJWYXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgYnV0dG9uVGV4dHM6IHtcbiAgICBkZWZhdWx0OiBzdHJpbmdbXTtcbiAgICBwcm9kdWN0U3BlY2lmaWM/OiB7IFtwcm9kdWN0SWQ6IHN0cmluZ106IHN0cmluZ1tdIH07XG4gIH07XG4gIGJvbGRGaXJzdEJ1dHRvbj86IGJvb2xlYW47XG4gIHR3b1Jvd3NPbk1vYmlsZT86IGJvb2xlYW47XG4gIGFuaW1hdGlvblNwZWVkPzogJ3N0YW5kYXJkJyB8ICdzbG93JyB8ICdub25lJztcbiAgYnV0dG9uQm9yZGVyUmFkaXVzPzogJ3NtJyB8ICdtZCcgfCAnbGcnO1xufVxuXG5pbnRlcmZhY2UgSW1hZ2VQcm9tcHRXaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuSW1hZ2VQcm9tcHRDYXJkPiB7XG4gIHVybDogc3RyaW5nO1xuICBsaWdodFRleHQ/OiBib29sZWFuO1xuICB0aXRsZTogc3RyaW5nO1xuICBzdWJ0aXRsZTogc3RyaW5nW107XG4gIHN0YXRpY1N1Z2dlc3Rpb25Db3BpZXM6IHN0cmluZ1tdO1xuICB1c2VyUXVlcnlCdXR0b25Db25maWc6IFVzZXJRdWVyeUJ1dHRvbkNvbmZpZztcbiAgZmFsbGJhY2tCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTaW5nbGVJbWFnZVByb21wdFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TaW5nbGVJbWFnZVByb21wdD4ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzdGF0aWNTdWdnZXN0aW9uQ29waWVzOiBzdHJpbmdbXTtcbiAgdXNlclF1ZXJ5QnV0dG9uQ29uZmlnOiBVc2VyUXVlcnlCdXR0b25Db25maWc7XG59XG5cbmludGVyZmFjZSBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLlNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQ+IHtcbiAgc2VhcmNoWmVyb1N0YXRlVmFyaWFudDogU2VhcmNoWmVyb1N0YXRlVmFyaWFudDtcbiAgc2VhcmNoSW5wdXRWYXJpYW50OiBTZWFyY2hJbnB1dFZhcmlhbnQ7XG4gIHNlYXJjaEljb25WYXJpYW50PzogU2VhcmNoSWNvblZhcmlhbnQ7XG4gIHNlYXJjaEljb25TaXplPzogbnVtYmVyO1xuICBzdWdnZXN0aW9uQnV0dG9uQ29uZmlnOiBTdWdnZXN0aW9uQnV0dG9uQ29uZmlnO1xuICBsYXlvdXQ6IFNlYXJjaFplcm9TdGF0ZUxheW91dDtcbiAgc2VhcmNoQm94UGxhY2Vob2xkZXI6IHN0cmluZztcbiAgYW5pbWF0aW9uU3BlZWQ/OiAnc3RhbmRhcmQnIHwgJ3Nsb3cnIHwgJ25vbmUnO1xuICBjb21wYWN0TGFiZWw/OiBzdHJpbmc7XG4gIGluaXRpYWxTdWdnZXN0aW9ucz86IHN0cmluZ1tdO1xuICB1c2luZ1BvcnRhbD86IGJvb2xlYW47XG4gIGluY2x1ZGVTdWJ0aXRsZT86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBOb09wV2lkZ2V0Q29uZmlnIGV4dGVuZHMgQmFzZVdpZGdldENvbmZpZzxXaWRnZXRUeXBlLk5vT3A+IHt9XG5pbnRlcmZhY2UgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWcgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29uZmlnPFdpZGdldFR5cGUuU2VhcmNoT3ZlcmxheUhvc3Q+IHt9XG5cbmludGVyZmFjZSBTZWFyY2hSZXN1bHRzRW50cnlQb2ludFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TZWFyY2hSZXN1bHRzRW50cnlQb2ludD4ge1xuICBzZWFyY2hJbnB1dFZhcmlhbnQ6IFNlYXJjaElucHV0VmFyaWFudDtcbiAgc2VhcmNoRmlsdGVyU2lkZWJhclZhcmlhbnQ6IFNlYXJjaEZpbHRlclNpZGViYXJWYXJpYW50O1xuICBwcm9kdWN0R3JpZFZhcmlhbnQ6IFByb2R1Y3RHcmlkVmFyaWFudDtcbiAgc2VhcmNoQm94UGxhY2Vob2xkZXI6IHN0cmluZztcbiAgbm9SZXN1bHRzRm91bmRUZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldEhlYWRlclByb3BzIGV4dGVuZHMgVGVzdFByb3BzIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGxvZ28/OiBzdHJpbmc7XG4gIGxvZ29IZWlnaHQ/OiBudW1iZXI7XG4gIG9yZ1Nob3J0TmFtZTogc3RyaW5nO1xuICB2YXJpYW50PzogU2VhcmNoUHJvbXB0VmFyaWFudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUXVlcnlPcHRpb25zIHtcbiAgZm9vdGVyVmFyaWFudD86ICdzdGFuZGFyZCc7XG4gIHJlcGx5QnV0dG9uVGV4dD86IHN0cmluZztcbiAgcmVwbHlCdXR0b25JY29uPzogJ21hZ25pZnlpbmdHbGFzcycgfCAnc2VuZCcgfCAndGhpbk1hZ25pZnlpbmdHbGFzcycgfCAnYWktc2VhcmNoJztcbn1cblxudHlwZSBTZWFyY2hQcm9tcHRWYXJpYW50ID0gJ3ByaW1hcnknO1xuaW50ZXJmYWNlIFNlYXJjaFByb21wdFdpZGdldENvbmZpZyBleHRlbmRzIEJhc2VXaWRnZXRDb25maWc8V2lkZ2V0VHlwZS5TZWFyY2hQcm9tcHQ+IHtcbiAgdmFyaWFudDogU2VhcmNoUHJvbXB0VmFyaWFudDtcbiAgdGl0bGU6IHN0cmluZztcbiAgaGVhZGVyQ29uZmlnOiBXaWRnZXRIZWFkZXJQcm9wcztcbiAgc3VnZ2VzdGlvbkJ1dHRvbnM6IHtcbiAgICB2YXJpYW50OiBTdWdnZXN0aW9uQnV0dG9uVmFyaWFudDtcbiAgICBob3ZlclZhcmlhbnQ6IFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50O1xuICAgIGJ1dHRvblRleHRzOiBzdHJpbmdbXTtcbiAgfTtcbiAgZm9vdGVyQ29uZmlnPzogVXNlclF1ZXJ5T3B0aW9ucztcbn1cblxudHlwZSBQYWdlVmFyaWFudEJhc2UgPSB7XG4gIC8vIFVuaXF1ZSBpZGVudGlmaWVyIGZvciBlYWNoIGVudHJ5IHdpdGhpbiB0aGUgcGFnZVZhcmlhbnRzLlxuICAvLyBVc2VmdWwgdG8gZGlmZmVyZW50aWF0ZSB3aGljaCB2YXJpYW50IGlzIGxvYWRlZCB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZXMgb2YgYSBzaW5nbGUgdHlwZS5cbiAgdmFyaWFudElkOiBzdHJpbmc7XG4gIHdpZGdldE1vdW50aW5nOiBXaWRnZXRNb3VudGluZ1tdO1xuICB2YXJpYW50VGVzdHM6IFBhZ2VWYXJpYW50VGVzdFtdO1xufTtcblxudHlwZSBQTFBQYWdlVmFyaWFudCA9IFBhZ2VWYXJpYW50QmFzZSAmIHtcbiAgdmFyaWFudFR5cGU6ICdwbHAnO1xuICBwbHBJZEV4dHJhY3RvcjogSWRFeHRyYWN0b3I7XG59O1xuXG50eXBlIFBEUFBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICB2YXJpYW50VHlwZTogJ3BkcCc7XG4gIHBhcmVudFByb2R1Y3RJZEV4dHJhY3Rvcj86IElkRXh0cmFjdG9yO1xuICBwcm9kdWN0SWRFeHRyYWN0b3I6IElkRXh0cmFjdG9yO1xufTtcblxudHlwZSBWaXNpdFBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICB2YXJpYW50VHlwZTogJ3BhZ2VfdmlzaXQnO1xufTtcblxudHlwZSBPdGhlclBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICB2YXJpYW50VHlwZTogJ290aGVyJztcbn07XG5cbnR5cGUgSG9tZVBhZ2VWYXJpYW50ID0gUGFnZVZhcmlhbnRCYXNlICYge1xuICB2YXJpYW50VHlwZTogJ2hvbWVwYWdlJztcbn07XG5cbnR5cGUgU2VhcmNoUGFnZVZhcmlhbnQgPSBQYWdlVmFyaWFudEJhc2UgJiB7XG4gIHZhcmlhbnRUeXBlOiAnc2VhcmNoJztcbn07XG5cbmV4cG9ydCB0eXBlIFBhZ2VWYXJpYW50Q29uZmlnID1cbiAgfCBQTFBQYWdlVmFyaWFudFxuICB8IFBEUFBhZ2VWYXJpYW50XG4gIHwgVmlzaXRQYWdlVmFyaWFudFxuICB8IE90aGVyUGFnZVZhcmlhbnRcbiAgfCBIb21lUGFnZVZhcmlhbnRcbiAgfCBTZWFyY2hQYWdlVmFyaWFudDtcblxuZXhwb3J0IHR5cGUgT3JnUGFnZUNvbmZpZyA9IHtcbiAgLy8gcGFnZVZhcmlhbnRzIGlzIGEgbGlzdCBvZiBwYWdlIHZhcmlhbnRzIHRoYXQgd2Ugc3VwcG9ydC5cbiAgcGFnZVZhcmlhbnRzOiBQYWdlVmFyaWFudENvbmZpZ1tdO1xuICAvLyB3aWRnZXRDb25maWdzIGlzIGEgbmFtZWQgc2V0IG9mIHdpZGdldCBjb25maWdzXG4gIHdpZGdldENvbmZpZ3M6IFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcbiAgbW91bnRpbmdDb25maWdzOiBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz47XG59O1xuXG5leHBvcnQgdHlwZSBPcmdDb25maWcgPSBPcmdVSUNvbmZpZztcblxuZXhwb3J0IHsgQ2F0ZWdvcnlFeHRyYWN0b3JUeXBlLCBDb2xvck5hbWVzLCBjb2xvclZhciwgUGFnZVZhcmlhbnRUZXN0VHlwZSwgV2lkZ2V0VHlwZSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudml2ZUNvbmZpZyB7XG4gIGFtcGxpdHVkZUFwaUtleT86IHN0cmluZztcbiAgZGF0YVJlc2lkZW5jeT86IHN0cmluZztcbiAgZW52Pzogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICByZWFjdEFwcE5hbWU/OiBzdHJpbmc7XG4gIGNkblVybD86IHN0cmluZztcbiAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbiAgb3JnTGV2ZWxBcGlLZXk/OiBzdHJpbmc7XG4gIG9yZ1Nob3J0TmFtZT86IHN0cmluZztcbiAgb3JnSWQ/OiBzdHJpbmc7XG4gIGlkZW50aWZ5aW5nUHJlZml4Pzogc3RyaW5nO1xuICBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gIHZhcmlhbnRVcmxPdmVycmlkZT86IHN0cmluZztcbiAgdmFyaWFudEluZm9PdmVycmlkZT86IGFueTtcbiAgc2hvdz86IGJvb2xlYW47XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgZmVhdHVyZUdhdGVzPzogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICBDYXRlZ29yeUV4dHJhY3RvcixcbiAgQ2hhdE1lc3NhZ2VWYXJpYW50LFxuICBDaGF0TWVzc2FnZUNvbmZpZyxcbiAgQ2hhdFByZXZpZXdDb25maWcsXG4gIENoYXRQcmV2aWV3SXNMb2FkaW5nV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld1Bvc3RJbnRlcmFjdGlvbldpZGdldENvbmZpZyxcbiAgQ2hhdFByZXZpZXdQcm9kdWN0Q29tcGFyaXNvbldpZGdldENvbmZpZyxcbiAgQ2hhdFByZXZpZXdTdWdnZXN0aW9uQnV0dG9uQ29uZmlnLFxuICBTb2NpYWxQcm9vZlYyV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld0hlYWRlclYyQ29uZmlnLFxuICBDaGF0UHJldmlld1YyV2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld0Zvb3RlckNvbmZpZyxcbiAgQ2hhdFByZXZpZXdIZWFkZXJDb25maWcsXG4gIENoYXRQcmV2aWV3V2lkZ2V0Q29uZmlnLFxuICBDaGF0UHJldmlld1ZhcmlhbnQsXG4gIENvbG9yTWFwcGluZyxcbiAgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24sXG4gIEZsb2F0aW5nRW50cnlQb2ludENvbmZpZyxcbiAgRnVsbEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uLFxuICBJZEV4dHJhY3RvcixcbiAgSW1hZ2VCYW5uZXJXaWRnZXRDb25maWcsXG4gIEltYWdlUHJvbXB0V2lkZ2V0Q29uZmlnLFxuICBJbnNlcnRpb25Qb2ludCxcbiAgTXVsdGlJbWFnZUNvbmZpZyxcbiAgTWVyY2hhbnRWYXJpYW50U2V0dGluZ3MsXG4gIFNlYXJjaENvbmZpZyxcbiAgT3JnVUlDb25maWcsXG4gIFBhZ2VDYXJkQ29uZmlnLFxuICBQYWdlQ2FyZFZhcmlhbnQsXG4gIFBhZ2VDYXJkSG92ZXJWYXJpYW50LFxuICBQYWdlQ2FyZEljb25WYXJpYW50LFxuICBQcm9kdWN0Q2FyZENvbmZpZyxcbiAgUHJvZHVjdENhcmRWYXJpYW50LFxuICBQcm9kdWN0Q2FyZExheW91dFZhcmlhbnQsXG4gIFByb2R1Y3RDYXJkSG92ZXJWYXJpYW50LFxuICBQcm9kdWN0TGlua0hvdmVyVmFyaWFudCxcbiAgUHJvZHVjdExpbmtJY29uVmFyaWFudCxcbiAgUHJvZHVjdExpbmtWYXJpYW50LFxuICBQcm9kdWN0UmV2aWV3Q29uZmlnLFxuICBQcm9kdWN0UmV2aWV3U3R5bGVWYXJpYW50LFxuICBQcm9kdWN0UmV2aWV3Q29sb3JWYXJpYW50LFxuICBTZWFyY2hQcm9tcHRWYXJpYW50LFxuICBTZWFyY2hQcm9tcHRXaWRnZXRDb25maWcsXG4gIFNlYXJjaFJlc3VsdHNFbnRyeVBvaW50V2lkZ2V0Q29uZmlnLFxuICBTaG93RmxvYXRpbmdCdXR0b25PcHRpb25zLFxuICBTaW5nbGVJbWFnZVByb21wdFdpZGdldENvbmZpZyxcbiAgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWcsXG4gIFNvY2lhbFByb29mQ29uZmlnLFxuICBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gIFN1Z2dlc3Rpb25CdXR0b25Db25maWcsXG4gIFN1Z2dlc3Rpb25CdXR0b25WYXJpYW50LFxuICBVUkxUZXN0LFxuICBVc2VyUXVlcnlCdXR0b25Db25maWcsXG4gIFVzZXJRdWVyeUJ1dHRvbkljb24sXG4gIFdlbGNvbWVTZWN0aW9uQ29uZmlnLFxuICBXZWxjb21lU2VjdGlvblZhcmlhbnQsXG4gIFdlbGNvbWVTZWN0aW9uQ29sb3JWYXJpYW50LFxuICBXaWRnZXRDb25maWcsXG4gIFdyYXBwaW5nRWxlbWVudCxcbiAgU2VhcmNoQ2FyZFZhcmlhbnQsXG4gIFdpZGdldERpc3BsYXlUZXN0cyxcbiAgTm9PcFdpZGdldENvbmZpZyxcbiAgV2lkZ2V0TW91bnRpbmcsXG4gIFN0YXRpY1dpZGdldE1vdW50aW5nLFxuICBEeW5hbWljV2lkZ2V0TW91bnRpbmcsXG4gIFBEUFBhZ2VWYXJpYW50LFxuICBQTFBQYWdlVmFyaWFudCxcbiAgVmlzaXRQYWdlVmFyaWFudCxcbiAgT3RoZXJQYWdlVmFyaWFudCxcbiAgSG9tZVBhZ2VWYXJpYW50LFxuICBTZWFyY2hQYWdlVmFyaWFudCxcbiAgTnVtUm93cyxcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQW1jQSxJQUFLLDBFQUFMO0FBQ0U7QUFDQTs7RUFGRztBQTZCTCxJQUFLLHNFQUFMO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztFQWxCRztBQXFLTCxJQUFLLG9EQUFMO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0VBaEJHIn0=