@envive-ai/react-hooks 0.1.4 → 0.1.6

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 (488) hide show
  1. package/dist/amplitudeContext-CHzas7Cf.d.cts +52 -0
  2. package/dist/amplitudeContext-D-7fmVh1.cjs +356 -0
  3. package/dist/amplitudeContext-hY3caPC6.js +322 -0
  4. package/dist/amplitudeContext-tJ4y-SzX.d.ts +52 -0
  5. package/dist/api-DjeZXxl_.js +207 -0
  6. package/dist/api-_JaUnIUj.cjs +292 -0
  7. package/dist/app-CjsQ2_n-.js +132 -0
  8. package/dist/app-CnKRZ9RW.cjs +178 -0
  9. package/dist/application/models/graphql/index.cjs +3 -12
  10. package/dist/application/models/graphql/index.d.cts +1 -1
  11. package/dist/application/models/graphql/index.d.ts +1 -1
  12. package/dist/application/models/graphql/index.js +1 -10
  13. package/dist/application/models/guards/api/index.cjs +1 -2
  14. package/dist/application/models/guards/api/index.d.cts +2 -2
  15. package/dist/application/models/guards/api/index.d.ts +2 -2
  16. package/dist/application/models/guards/api/index.js +1 -2
  17. package/dist/application/models/index.cjs +48 -54
  18. package/dist/application/models/index.d.cts +7 -9
  19. package/dist/application/models/index.d.ts +7 -9
  20. package/dist/application/models/index.js +7 -11
  21. package/dist/application/models/utilityTypes/index.cjs +1 -1
  22. package/dist/application/models/utilityTypes/index.d.cts +1 -1
  23. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  24. package/dist/application/models/utilityTypes/index.js +1 -1
  25. package/dist/application/models/variantInfo/index.cjs +1 -1
  26. package/dist/application/models/variantInfo/index.d.cts +1 -1
  27. package/dist/application/models/variantInfo/index.d.ts +1 -1
  28. package/dist/application/models/variantInfo/index.js +1 -1
  29. package/dist/application/utils/index.cjs +40 -37
  30. package/dist/application/utils/index.d.cts +18 -14
  31. package/dist/application/utils/index.d.ts +17 -13
  32. package/dist/application/utils/index.js +13 -10
  33. package/dist/{atomStore-JwGb7pcy.cjs → atomStore-B4jIaDPd.cjs} +1 -1
  34. package/dist/{atomStore-B1cgmbP0.js → atomStore-D8pjE1vL.js} +1 -1
  35. package/dist/atoms/app/index.cjs +14 -16
  36. package/dist/atoms/app/index.d.cts +20 -19
  37. package/dist/atoms/app/index.d.ts +20 -19
  38. package/dist/atoms/app/index.js +10 -11
  39. package/dist/atoms/atomStore/index.cjs +2 -1
  40. package/dist/atoms/atomStore/index.d.cts +1 -1
  41. package/dist/atoms/atomStore/index.js +2 -1
  42. package/dist/atoms/chat/index.cjs +44 -40
  43. package/dist/atoms/chat/index.d.cts +35 -36
  44. package/dist/atoms/chat/index.d.ts +35 -36
  45. package/dist/atoms/chat/index.js +14 -10
  46. package/dist/atoms/globalSearch/index.cjs +1 -1
  47. package/dist/atoms/globalSearch/index.d.cts +5 -5
  48. package/dist/atoms/globalSearch/index.d.ts +5 -5
  49. package/dist/atoms/globalSearch/index.js +1 -1
  50. package/dist/atoms/org/index.cjs +26 -37
  51. package/dist/atoms/org/index.d.cts +37 -47
  52. package/dist/atoms/org/index.d.ts +37 -47
  53. package/dist/atoms/org/index.js +11 -11
  54. package/dist/atoms/search/index.cjs +47 -41
  55. package/dist/atoms/search/index.d.cts +7 -9
  56. package/dist/atoms/search/index.d.ts +7 -9
  57. package/dist/atoms/search/index.js +16 -10
  58. package/dist/bandolier-DYEz4-8C.js +1229 -0
  59. package/dist/bandolier-o_-xrbOV.cjs +1229 -0
  60. package/dist/carpe-CsG5jCcl.cjs +607 -0
  61. package/dist/carpe-DONk00bZ.js +605 -0
  62. package/dist/cdnUtils-32v8bDX9.cjs +16 -0
  63. package/dist/cdnUtils-E4tLBt2g.js +11 -0
  64. package/dist/{chat-BgONoYU7.cjs → chat-BubCW1as.cjs} +1 -1
  65. package/dist/chat-CO7cRkaq.cjs +506 -0
  66. package/dist/{chat-CLJ4NWcN.js → chat-CV6MXeID.js} +1 -1
  67. package/dist/chat-hcRc4RRd.js +285 -0
  68. package/dist/{components-CV1fhAkj.js → components-B4T3Uzth.js} +1 -1
  69. package/dist/{components-BKZbet67.cjs → components-Cw9WjA6g.cjs} +1 -1
  70. package/dist/config/locators/components/chat/index.cjs +1 -1
  71. package/dist/config/locators/components/chat/index.d.cts +1 -1
  72. package/dist/config/locators/components/chat/index.d.ts +1 -1
  73. package/dist/config/locators/components/chat/index.js +1 -1
  74. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  75. package/dist/config/locators/components/index.cjs +1 -1
  76. package/dist/config/locators/components/index.d.cts +1 -1
  77. package/dist/config/locators/components/index.d.ts +1 -1
  78. package/dist/config/locators/components/index.js +1 -1
  79. package/dist/config/locators/index.cjs +4 -4
  80. package/dist/config/locators/index.d.cts +2 -2
  81. package/dist/config/locators/index.d.ts +3 -3
  82. package/dist/config/locators/index.js +4 -4
  83. package/dist/contexts/index.cjs +45 -14
  84. package/dist/contexts/index.d.cts +10 -78
  85. package/dist/contexts/index.d.ts +10 -78
  86. package/dist/contexts/index.js +22 -11
  87. package/dist/contexts-B4ihTBsV.cjs +2980 -0
  88. package/dist/contexts-DGlr7M1o.js +2596 -0
  89. package/dist/coterie-CKB93qfz.cjs +239 -0
  90. package/dist/{coterie-yQ-_JXSw.cjs → coterie-DHcj2fRE.js} +64 -65
  91. package/dist/{custservice-types-C83itZmy.cjs → custservice-types-Dy0kc9TW.cjs} +1 -1
  92. package/dist/{custservice-types-DPQ-4TI6.js → custservice-types-mnIunabv.js} +1 -1
  93. package/dist/default-BnB4p0Se.cjs +234 -0
  94. package/dist/default-D6f5Dyt7.js +199 -0
  95. package/dist/default-ZKkE5zT4.cjs +4 -0
  96. package/dist/default-legGZJwI.js +4 -0
  97. package/dist/{divIds-DEL_-qU0.cjs → divIds-2dJlU3z8.cjs} +1 -15
  98. package/dist/{divIds-CWkntTsx.js → divIds-BUrN2vY-.js} +2 -4
  99. package/dist/dreamlandBaby-BiRYYFav.js +346 -0
  100. package/dist/dreamlandBaby-zuvmfzfD.cjs +346 -0
  101. package/dist/{embedded-C5uJqmuD.js → embedded-BJLWIriJ.js} +1 -1
  102. package/dist/{embedded--2L0F4b5.cjs → embedded-Dl79TJLC.cjs} +1 -1
  103. package/dist/{entrypoints-CNUvSgnk.js → entrypoints-Bs3pn6EV.js} +1 -1
  104. package/dist/{entrypoints-DM9Sm18O.cjs → entrypoints-Dqi5pzWH.cjs} +1 -1
  105. package/dist/enviveConfig-BccuzS2a.cjs +240 -0
  106. package/dist/enviveConfig-CzhTz8Aa.js +152 -0
  107. package/dist/events/index.cjs +1 -1
  108. package/dist/events/index.d.cts +1 -1
  109. package/dist/events/index.js +1 -1
  110. package/dist/{events-ClCDFK7t.js → events-BrLpaNxh.js} +1 -1
  111. package/dist/{events-Da7gpmGv.cjs → events-DwT6cEwI.cjs} +1 -1
  112. package/dist/fiveCbd-DwTTwC2j.cjs +613 -0
  113. package/dist/fiveCbd-Dz2NouOF.js +613 -0
  114. package/dist/forLoveAndLemons-DqSdyD6S.js +665 -0
  115. package/dist/forLoveAndLemons-Ud6mPrV3.cjs +667 -0
  116. package/dist/{globalSearch-b0wC7ZEO.js → globalSearch-B6THR7Jx.js} +1 -1
  117. package/dist/{globalSearch-BTeZxvk1.cjs → globalSearch-BFvEg53C.cjs} +1 -1
  118. package/dist/graphql-BNW60InJ.cjs +128 -0
  119. package/dist/graphql-CjB8wHzm.js +74 -0
  120. package/dist/graphqlConfig-CYt6tWII.js +30 -0
  121. package/dist/graphqlConfig-DicykC-o.cjs +61 -0
  122. package/dist/greenpan-B_EbPkSP.js +397 -0
  123. package/dist/greenpan-kPE4fJgd.cjs +397 -0
  124. package/dist/grooveLife-Ckuir319.js +342 -0
  125. package/dist/grooveLife-DKSEQp1F.cjs +342 -0
  126. package/dist/homegrownCannabis-BVPa2pqe.js +410 -0
  127. package/dist/homegrownCannabis-BwIAkxuA.cjs +410 -0
  128. package/dist/hooks/index.cjs +40 -16
  129. package/dist/hooks/index.d.cts +122 -95
  130. package/dist/hooks/index.d.ts +122 -95
  131. package/dist/hooks/index.js +22 -11
  132. package/dist/{index-D46Rd0io.d.cts → index-B0NW9KTj.d.cts} +1 -1
  133. package/dist/{index-jBATkcc_.d.cts → index-BDPWBU3h.d.cts} +1 -1
  134. package/dist/index-BMPtlgac.d.ts +191 -0
  135. package/dist/{index-BTK5uzs6.d.cts → index-Bmub8e38.d.cts} +1 -1
  136. package/dist/{index-C62lPpy4.d.cts → index-Byb45OPg.d.cts} +1 -1
  137. package/dist/{index-DPx8s5YH.d.ts → index-C6KdON7d.d.ts} +1 -1
  138. package/dist/index-C7pGDl1A.d.ts +1609 -0
  139. package/dist/{index-CYtsPztZ.d.cts → index-C9lgsCWp.d.cts} +32 -32
  140. package/dist/{index-BzgkfbNO.d.cts → index-CESxqFso.d.cts} +1 -1
  141. package/dist/{index-C_C0tLeD.d.ts → index-Cc-wBCn6.d.ts} +32 -32
  142. package/dist/{index-Cx9e-fRi.d.ts → index-CcIG01PJ.d.ts} +2 -2
  143. package/dist/{index-ClJ0nMsR.d.cts → index-CiWEYzXl.d.cts} +2 -2
  144. package/dist/{index-CKKkTsms.d.ts → index-Cqg6ltII.d.ts} +1 -1
  145. package/dist/{index-CExtydIH.d.ts → index-DOii3C6b.d.ts} +1 -1
  146. package/dist/index-DTu2X-YS.d.cts +1609 -0
  147. package/dist/index-OEifcBsm.d.cts +191 -0
  148. package/dist/{index-Dxpscrvz.d.ts → index-PGF8BvxQ.d.ts} +1 -1
  149. package/dist/{index-D2VaMPA3.d.ts → index-ylUiJvnr.d.ts} +1 -1
  150. package/dist/interceptors/index.cjs +2 -12
  151. package/dist/interceptors/index.d.cts +8 -13
  152. package/dist/interceptors/index.d.ts +8 -13
  153. package/dist/interceptors/index.js +2 -11
  154. package/dist/jackArcher-B39OEIj6.cjs +727 -0
  155. package/dist/{jackArcher-CXf_IAmC.js → jackArcher-BwkWGybC.js} +24 -25
  156. package/dist/jordanCraig-CxRH_jLi.js +1786 -0
  157. package/dist/jordanCraig-RwmWw-jM.cjs +1786 -0
  158. package/dist/kindredBravely-D78VwL20.cjs +490 -0
  159. package/dist/kindredBravely-DQDpAzdl.js +490 -0
  160. package/dist/kutFromTheKloth-TcXQkIti.js +369 -0
  161. package/dist/kutFromTheKloth-dXRrNti0.cjs +369 -0
  162. package/dist/larryAndSerges-Bh5XEXsZ.js +262 -0
  163. package/dist/larryAndSerges-COdBzOzu.cjs +262 -0
  164. package/dist/leapsAndRebounds-BbXnqkl5.cjs +360 -0
  165. package/dist/leapsAndRebounds-mjCaH1k-.js +360 -0
  166. package/dist/longevityrx-DdV3v26F.cjs +320 -0
  167. package/dist/longevityrx-DfPDfvAt.js +320 -0
  168. package/dist/lookOptic-DgXFGBPP.cjs +282 -0
  169. package/dist/{lookOptic-BGhU4910.js → lookOptic-FgVW1afF.js} +19 -20
  170. package/dist/mantraBrand-C5gVm3rk.cjs +750 -0
  171. package/dist/{mantraBrand-DrqG9uqO.js → mantraBrand-uV8HCDR8.js} +22 -23
  172. package/dist/medterra-BtDpr1Hw.cjs +583 -0
  173. package/dist/medterra-DgzE7-mj.js +583 -0
  174. package/dist/modells-CJjsxOIR.js +484 -0
  175. package/dist/modells-Ck5KbRFj.cjs +484 -0
  176. package/dist/models-BkXg5eIP.cjs +1534 -0
  177. package/dist/models-UZ6HszfZ.js +1281 -0
  178. package/dist/{nodeSelector-BiCDowlK.d.ts → nodeSelector-BxrS2S_k.d.ts} +1 -1
  179. package/dist/{nodeSelector-B3bPtEjX.d.cts → nodeSelector-Dm4S-10n.d.cts} +1 -1
  180. package/dist/org-C2RrBVQR.cjs +81 -0
  181. package/dist/org-xMytX--e.js +38 -0
  182. package/dist/orgAnalyticsConfig-BJ2A1RZ-.cjs +39 -0
  183. package/dist/orgAnalyticsConfig-ClrFy2qH.js +14 -0
  184. package/dist/pressedFloral-Bteoboms.js +661 -0
  185. package/dist/pressedFloral-CexgV-xy.cjs +661 -0
  186. package/dist/search-BMOAmrmY.js +459 -0
  187. package/dist/search-Df0Ifneg.cjs +672 -0
  188. package/dist/{search-filter-types-BNTLVXqQ.d.cts → search-filter-types-DosbseF3.d.cts} +1 -1
  189. package/dist/{search-filter-types-DkmH1TxJ.d.ts → search-filter-types-fZf91Pdw.d.ts} +1 -1
  190. package/dist/skinPerfection-BGzq9lq-.cjs +334 -0
  191. package/dist/skinPerfection-BlvcEcUE.js +334 -0
  192. package/dist/snapSupplements-CbbGzAgO.cjs +285 -0
  193. package/dist/snapSupplements-kcsPAOm9.js +285 -0
  194. package/dist/{socialProofClasses-ky69yppk.cjs → socialProofClasses-Db8gzsfi.cjs} +1 -1
  195. package/dist/{socialProofClasses-DdzG1tZy.js → socialProofClasses-kwDvwLOZ.js} +1 -1
  196. package/dist/spanx-B4WFA_rI.js +661 -0
  197. package/dist/spanx-BWoE4F8b.cjs +663 -0
  198. package/dist/spanxStaging-BOrOjhXn.js +845 -0
  199. package/dist/spanxStaging-BfdfIug4.cjs +848 -0
  200. package/dist/{suggestionBarV2-types-CwOXzIKq.js → suggestionBarV2-types-IMMOmCir.js} +1 -1
  201. package/dist/{suggestionBarV2-types-Dc4-zJlV.cjs → suggestionBarV2-types-nnGNgFvR.cjs} +1 -1
  202. package/dist/supergoop-22dd5_BS.js +323 -0
  203. package/dist/supergoop-B-a4cku2.cjs +323 -0
  204. package/dist/{test-types-CXVJxTeu.d.ts → test-types-C9b_OdfO.d.ts} +1 -1
  205. package/dist/{test-types-CuOq25VT.d.cts → test-types-CgVJtwUr.d.cts} +1 -1
  206. package/dist/types/index.cjs +2 -2
  207. package/dist/types/index.d.cts +2 -2
  208. package/dist/types/index.d.ts +2 -2
  209. package/dist/types/index.js +2 -2
  210. package/dist/types--pr1GQQx.js +154 -0
  211. package/dist/types-BVSyY3Hk.cjs +196 -0
  212. package/dist/{uniqueVintage-Cui74mlJ.js → uniqueVintage-CJXiNNe7.js} +19 -20
  213. package/dist/uniqueVintage-D0jzJWlo.cjs +1213 -0
  214. package/dist/useMessageInterceptor-B87e3yu3.cjs +33 -0
  215. package/dist/useMessageInterceptor-Bb7YRaWk.js +25 -0
  216. package/dist/userIdentityContext-BPqvVIg0.d.cts +20 -0
  217. package/dist/userIdentityContext-wbCRmlzp.d.ts +20 -0
  218. package/dist/utils-C9ZSCx12.js +888 -0
  219. package/dist/utils-D5HO61hG.cjs +1016 -0
  220. package/dist/variantInfo-DbVxA1yE.js +1 -0
  221. package/dist/variantInfo-orXoPBCU.cjs +0 -0
  222. package/dist/venaCbd-Bhhu_qUf.cjs +365 -0
  223. package/dist/venaCbd-CanovPS_.js +365 -0
  224. package/dist/westonJonBoucher-BC0x1ktI.cjs +422 -0
  225. package/dist/{westonJonBoucher-C95EuCl-.js → westonJonBoucher-BUu1_wP1.js} +19 -20
  226. package/dist/wineEnthusiast-BlCryfil.cjs +940 -0
  227. package/dist/{wineEnthusiast-DeTFY8Gm.js → wineEnthusiast-Ck1x5iJq.js} +19 -20
  228. package/dist/wolfMattress-D9Mjq-HP.js +372 -0
  229. package/dist/wolfMattress-JssghhC-.cjs +372 -0
  230. package/dist/wolfTactical-C6exYhL7.cjs +349 -0
  231. package/dist/wolfTactical-CnV3KQdI.js +349 -0
  232. package/package.json +101 -19
  233. package/src/{adapters/spiffy/commerce/api.ts → application/commerce-api.ts} +31 -23
  234. package/src/application/models/colorsConfig.ts +18 -18
  235. package/src/application/models/frontendConfig.ts +3 -3
  236. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -1
  237. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -1
  238. package/src/application/models/index.ts +0 -2
  239. package/src/application/models/localStorageEventListener.ts +2 -2
  240. package/src/application/models/supportedOrgs.ts +1 -1
  241. package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
  242. package/src/application/models/validators/validateGraphQLColorsConfig.ts +0 -21
  243. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +2 -2
  244. package/src/application/utils/analyticsUtils.ts +53 -22
  245. package/src/application/utils/cdnUtils.ts +11 -0
  246. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +15 -0
  247. package/src/atoms/app/index.ts +7 -17
  248. package/src/atoms/app/variant.ts +13 -4
  249. package/src/atoms/chat/chatState.ts +28 -18
  250. package/src/atoms/chat/messageQueue.ts +36 -5
  251. package/src/atoms/chat/replies.ts +45 -37
  252. package/src/atoms/envive/enviveConfig.ts +10 -6
  253. package/src/atoms/org/graphqlConfig.ts +21 -4
  254. package/src/atoms/org/index.ts +7 -7
  255. package/src/atoms/org/newOrgConfigAtom.ts +8 -0
  256. package/src/atoms/org/orgPageConfig.ts +6 -5
  257. package/src/atoms/search/chatSearch.ts +11 -5
  258. package/src/atoms/search/searchAPI.ts +68 -48
  259. package/src/atoms/search/searchServiceAdapter.ts +25 -0
  260. package/src/contexts/amplitudeContext.tsx +466 -0
  261. package/src/contexts/cdnContext.tsx +48 -0
  262. package/src/contexts/chatContext.tsx +15 -12
  263. package/src/contexts/enviveConfigContext.tsx +22 -17
  264. package/src/contexts/enviveCssContext.tsx +34 -5
  265. package/src/contexts/featureFlagContext.tsx +193 -0
  266. package/src/contexts/featureFlagServiceContext.tsx +87 -0
  267. package/src/contexts/graphqlContext.tsx +165 -0
  268. package/src/contexts/index.ts +13 -3
  269. package/src/contexts/localStorageContext.tsx +159 -0
  270. package/src/contexts/newOrgConfigContext.tsx +104 -0
  271. package/src/contexts/orgConfigContext.tsx +92 -92
  272. package/src/contexts/searchContext.tsx +187 -0
  273. package/src/contexts/sessionStorageContext.tsx +80 -0
  274. package/src/contexts/shopifyUrlContext.tsx +97 -0
  275. package/src/contexts/types.ts +12 -8
  276. package/src/contexts/userIdentityContext.tsx +197 -0
  277. package/src/events/registerAnalyticsListeners.ts +32 -38
  278. package/src/hooks/index.ts +10 -6
  279. package/src/hooks/useAmplitudeOperations.ts +35 -0
  280. package/src/hooks/useAppDetails.ts +49 -0
  281. package/src/hooks/useCdnOperations.ts +16 -0
  282. package/src/hooks/useChatToggle.ts +5 -4
  283. package/src/hooks/useChatToggleAnalytics.ts +15 -0
  284. package/src/hooks/useGraphQLConfig.ts +63 -0
  285. package/src/hooks/useIdentifyUser.ts +33 -0
  286. package/src/hooks/useImageResolver.ts +18 -10
  287. package/src/hooks/useLocalStorageOperations.ts +92 -0
  288. package/src/hooks/useNewOrgConfig.ts +7 -0
  289. package/src/hooks/useSearch.tsx +21 -18
  290. package/src/hooks/useSearchOperations.ts +97 -0
  291. package/src/hooks/useSessionStorageOperations.ts +28 -0
  292. package/src/hooks/useShopifyUrlOperations.ts +45 -0
  293. package/src/hooks/useTrackComponentVisibleEvent.ts +12 -8
  294. package/src/hooks/useUpdateAnalyticsProps.ts +28 -17
  295. package/src/interceptors/index.ts +0 -1
  296. package/src/interceptors/useMessageInterceptor.ts +5 -8
  297. package/src/merchants/bandolier/bandolier.ts +10 -28
  298. package/src/merchants/carpe/carpe.ts +5 -8
  299. package/src/merchants/coterie/coterie.ts +3 -6
  300. package/src/merchants/default.ts +73 -70
  301. package/src/merchants/domInsertion.ts +30 -0
  302. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +12 -6
  303. package/src/merchants/fiveCbd/fiveCbd.ts +7 -13
  304. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +44 -14
  305. package/src/merchants/greenpan/greenpan.ts +6 -12
  306. package/src/merchants/gridInsertion.ts +19 -0
  307. package/src/merchants/grooveLife/grooveLife.ts +13 -7
  308. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +12 -6
  309. package/src/merchants/jackArcher/jackArcher.ts +26 -11
  310. package/src/merchants/jordanCraig/jordanCraig.ts +5 -5
  311. package/src/merchants/kindredBravely/kindredBravely.ts +16 -7
  312. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +9 -6
  313. package/src/merchants/larryAndSerges/larryAndSerges.ts +6 -2
  314. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +7 -7
  315. package/src/merchants/longevityrx/longevityrx.ts +14 -8
  316. package/src/merchants/lookOptic/lookOptic.ts +6 -6
  317. package/src/merchants/mantraBrand/mantraBrand.ts +14 -8
  318. package/src/merchants/medterra/medterra.ts +14 -11
  319. package/src/merchants/modells/modells.ts +6 -9
  320. package/src/merchants/pressedFloral/pressedFloral.ts +7 -13
  321. package/src/merchants/skinPerfection/skinPerfection.ts +13 -7
  322. package/src/merchants/snapSupplements/snapSupplements.ts +13 -10
  323. package/src/merchants/spanx/spanx.ts +6 -6
  324. package/src/merchants/spanx/spanxStaging.ts +6 -12
  325. package/src/merchants/supergoop/supergoop.ts +11 -12
  326. package/src/merchants/uniqueVintage/uniqueVintage.ts +6 -6
  327. package/src/merchants/venaCbd/venaCbd.ts +6 -9
  328. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +6 -6
  329. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +6 -6
  330. package/src/merchants/wolfMattress/wolfMattress.ts +3 -3
  331. package/src/merchants/wolfTactical/wolfTactical.ts +5 -11
  332. package/src/types/config-versions.ts +6 -0
  333. package/src/types.ts +0 -53
  334. package/dist/adapters/amplitude/index.cjs +0 -14
  335. package/dist/adapters/amplitude/index.d.cts +0 -6
  336. package/dist/adapters/amplitude/index.d.ts +0 -6
  337. package/dist/adapters/amplitude/index.js +0 -12
  338. package/dist/api-B2euFL-5.cjs +0 -269
  339. package/dist/api-XRr_lAG6.js +0 -190
  340. package/dist/application/config/index.cjs +0 -43
  341. package/dist/application/config/index.d.cts +0 -15
  342. package/dist/application/config/index.d.ts +0 -15
  343. package/dist/application/config/index.js +0 -41
  344. package/dist/application/service/customerService/index.cjs +0 -4
  345. package/dist/application/service/customerService/index.d.cts +0 -3
  346. package/dist/application/service/customerService/index.d.ts +0 -3
  347. package/dist/application/service/customerService/index.js +0 -4
  348. package/dist/application/service/index.cjs +0 -41
  349. package/dist/application/service/index.d.cts +0 -399
  350. package/dist/application/service/index.d.ts +0 -399
  351. package/dist/application/service/index.js +0 -12
  352. package/dist/bandolier-B76-OE75.cjs +0 -1230
  353. package/dist/bandolier-DRn_x1g1.js +0 -1230
  354. package/dist/carpe-kHi4RLB5.cjs +0 -608
  355. package/dist/carpe-qrSU99gq.js +0 -606
  356. package/dist/contexts-CQDwe3rK.cjs +0 -14333
  357. package/dist/contexts-e2sM-B9g.js +0 -12919
  358. package/dist/coterie-mMirPcHP.js +0 -240
  359. package/dist/customerService-BG1uNZZ1.cjs +0 -36
  360. package/dist/customerService-BHQRnLhC.js +0 -23
  361. package/dist/default-8Jfv8ehQ.cjs +0 -199
  362. package/dist/default-C8PQf-38.js +0 -176
  363. package/dist/default-LukSiCz1.js +0 -4
  364. package/dist/default-rJSJ887P.cjs +0 -4
  365. package/dist/dreamlandBaby-DHltv12Z.cjs +0 -347
  366. package/dist/dreamlandBaby-cG0HM9bt.js +0 -347
  367. package/dist/featureFlagService-5wdmW02z.d.ts +0 -18
  368. package/dist/featureFlagService-DaelrXEk.d.cts +0 -18
  369. package/dist/fiveCbd-Cvnwh03g.cjs +0 -614
  370. package/dist/fiveCbd-DhYMlsf9.js +0 -614
  371. package/dist/forLoveAndLemons-C8DuUexW.js +0 -666
  372. package/dist/forLoveAndLemons-DR6a1zjJ.cjs +0 -668
  373. package/dist/greenpan-B4Pu65kV.js +0 -398
  374. package/dist/greenpan-BL5p6j7f.cjs +0 -398
  375. package/dist/grooveLife-DjKWHoN3.cjs +0 -343
  376. package/dist/grooveLife-JK0TyaPz.js +0 -343
  377. package/dist/homegrownCannabis-DxqSDkmS.js +0 -411
  378. package/dist/homegrownCannabis-ZnfCqW-m.cjs +0 -411
  379. package/dist/index-BfuO9b0Q.d.ts +0 -749
  380. package/dist/index-CNsGWfS6.d.cts +0 -749
  381. package/dist/index-DFL1dIT_.d.ts +0 -7
  382. package/dist/index-MFbPQ8Ji.d.ts +0 -95
  383. package/dist/index-VSFakgAI.d.cts +0 -95
  384. package/dist/index-zZjcds15.d.cts +0 -7
  385. package/dist/jackArcher-mGkojXek.cjs +0 -728
  386. package/dist/jordanCraig-BvCvPRoR.js +0 -1787
  387. package/dist/jordanCraig-Dv8pVCiS.cjs +0 -1787
  388. package/dist/kindredBravely-UQP7wiNu.cjs +0 -491
  389. package/dist/kindredBravely-X8F_LNph.js +0 -491
  390. package/dist/kutFromTheKloth-BhYKk3CN.cjs +0 -370
  391. package/dist/kutFromTheKloth-D1xsTSJr.js +0 -370
  392. package/dist/larryAndSerges-1411NuZa.cjs +0 -262
  393. package/dist/larryAndSerges-DVIRLItu.js +0 -262
  394. package/dist/leapsAndRebounds-BJ8mwr33.js +0 -361
  395. package/dist/leapsAndRebounds-UcP9EJVO.cjs +0 -361
  396. package/dist/logger-Dln20ans.cjs +0 -26
  397. package/dist/logger-pdEEY8T2.js +0 -20
  398. package/dist/longevityrx-BFSv9GF5.cjs +0 -321
  399. package/dist/longevityrx-Cp6wleWr.js +0 -321
  400. package/dist/lookOptic-KieSqskd.cjs +0 -283
  401. package/dist/mantraBrand-CHQw-0nw.cjs +0 -751
  402. package/dist/medterra-CLG6Co1C.cjs +0 -584
  403. package/dist/medterra-D8ZX9NZC.js +0 -584
  404. package/dist/modells-BzyPwN2m.cjs +0 -485
  405. package/dist/modells-CAfqOCW4.js +0 -485
  406. package/dist/orgConfigResults--dAwtw3W.d.ts +0 -881
  407. package/dist/orgConfigResults-BL0XBA6x.d.cts +0 -881
  408. package/dist/pressedFloral-DULBuQwR.cjs +0 -662
  409. package/dist/pressedFloral-Dp-7Fk3S.js +0 -662
  410. package/dist/skinPerfection-BxuYCeJX.js +0 -335
  411. package/dist/skinPerfection-Cd3XZ6By.cjs +0 -335
  412. package/dist/snapSupplements-Bf6htPM0.js +0 -286
  413. package/dist/snapSupplements-ZFnXyMuZ.cjs +0 -286
  414. package/dist/spanx-CwDPQaGj.js +0 -662
  415. package/dist/spanx-Cyd4qDlK.cjs +0 -664
  416. package/dist/spanxStaging-D43nyAGy.js +0 -846
  417. package/dist/spanxStaging-ijbYnHzr.cjs +0 -849
  418. package/dist/supergoop-BnbFG7hm.cjs +0 -338
  419. package/dist/supergoop-CY043wIg.js +0 -336
  420. package/dist/types-BF_CJeck.js +0 -177
  421. package/dist/types-CD4LFta-.d.cts +0 -33
  422. package/dist/types-CNH4sfF-.cjs +0 -231
  423. package/dist/types-DBdI0j89.d.ts +0 -33
  424. package/dist/uniqueVintage-R2Jcu1y1.cjs +0 -1214
  425. package/dist/variant-CKVRF2-W.d.ts +0 -13
  426. package/dist/variant-raYuOP4L.d.cts +0 -13
  427. package/dist/venaCbd-o5_vOp4e.js +0 -366
  428. package/dist/venaCbd-r-IxEVc1.cjs +0 -366
  429. package/dist/westonJonBoucher-DjGEW3ZB.cjs +0 -423
  430. package/dist/wineEnthusiast-DvfcV5B3.cjs +0 -941
  431. package/dist/wolfMattress-6xPfOJt3.js +0 -373
  432. package/dist/wolfMattress-BjGnGKjP.cjs +0 -373
  433. package/dist/wolfTactical-Bi3WZu0m.cjs +0 -350
  434. package/dist/wolfTactical-C_F9-oPX.js +0 -350
  435. package/src/adapters/amplitude/amplitudeAdapter.ts +0 -477
  436. package/src/adapters/amplitude/index.ts +0 -2
  437. package/src/adapters/amplitude/stubAmplitudeAdapter.ts +0 -34
  438. package/src/adapters/spiffy/commerce/graphql.ts +0 -219
  439. package/src/application/config/generalStaticConfig.ts +0 -40
  440. package/src/application/config/index.ts +0 -1
  441. package/src/application/models/domMutationContinuation.ts +0 -7
  442. package/src/application/models/domObservationStrategy.ts +0 -9
  443. package/src/application/service/cachingService.ts +0 -84
  444. package/src/application/service/cdnService.ts +0 -20
  445. package/src/application/service/customerService/index.ts +0 -8
  446. package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +0 -15
  447. package/src/application/service/domMutationObserver.ts +0 -320
  448. package/src/application/service/domMutations/GridInsertionService.ts +0 -123
  449. package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +0 -99
  450. package/src/application/service/domMutations/domInsertionService.ts +0 -90
  451. package/src/application/service/domMutations/domMutationListener.ts +0 -15
  452. package/src/application/service/domMutations/domMutationListenerState.ts +0 -52
  453. package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +0 -41
  454. package/src/application/service/domMutations/gladly/gladlyListener.ts +0 -61
  455. package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +0 -41
  456. package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +0 -119
  457. package/src/application/service/featureFlagService.ts +0 -130
  458. package/src/application/service/index.ts +0 -31
  459. package/src/application/service/kustomerIntegrationService.ts +0 -111
  460. package/src/application/service/localStorageService.ts +0 -77
  461. package/src/application/service/pageVariantService.ts +0 -866
  462. package/src/application/service/searchService.ts +0 -147
  463. package/src/application/service/sessionStorageService.ts +0 -27
  464. package/src/application/service/shopifyUrlService.ts +0 -63
  465. package/src/application/service/userIdentityService.ts +0 -114
  466. package/src/application/service/windowChatToggleService.ts +0 -80
  467. package/src/application/service/windowDataLayerService.ts +0 -181
  468. package/src/application/service/windowFrontendConfigService.ts +0 -129
  469. package/src/atoms/org/merchantCss.ts +0 -158
  470. package/src/atoms/org/org.ts +0 -291
  471. package/src/atoms/org/orgUIConfig.ts +0 -142
  472. package/src/enabled-features.ts +0 -83
  473. package/src/hooks/useDynamicVariants.ts +0 -210
  474. package/src/hooks/useFileUpload.ts +0 -63
  475. package/src/hooks/useHideElements.ts +0 -82
  476. package/src/hooks/useHorizontalScrollAnimation.ts +0 -115
  477. package/src/hooks/useReducedMotionWithOverride.ts +0 -15
  478. package/src/hooks/useSnapControl.ts +0 -155
  479. package/src/interceptors/useFormEscalation.ts +0 -57
  480. /package/dist/{variantInfo-CzhR5W6h.js → atomStore-CZnUUsrr.js} +0 -0
  481. /package/dist/{variantInfo-CNRTY0gH.cjs → atomStore-KSoFS3Jj.cjs} +0 -0
  482. /package/dist/{utilityTypes-C4h2wgAK.cjs → locators-0YYZu9n4.cjs} +0 -0
  483. /package/dist/{utilityTypes-BVikejDo.js → locators-fBXS_pxP.js} +0 -0
  484. /package/dist/{locators-Dc5ZT0aF.js → utilityTypes-8sETsYPk.js} +0 -0
  485. /package/dist/{locators-lQMJj830.cjs → utilityTypes-COShxVir.cjs} +0 -0
  486. /package/src/{application/service/customerService/types.ts → types/customerService.ts} +0 -0
  487. /package/src/{adapters/spiffy/commerce → types}/exceptions/sessionExceptions.ts +0 -0
  488. /package/src/{adapters/spiffy/commerce → types}/exceptions/unsupportedProductExceptions.ts +0 -0
@@ -1,1787 +0,0 @@
1
- require('./logger-Dln20ans.cjs');
2
- require('./api-B2euFL-5.cjs');
3
- const require_contexts = require('./contexts-CQDwe3rK.cjs');
4
- const require_types = require('./types-CNH4sfF-.cjs');
5
- require('./atomStore-JwGb7pcy.cjs');
6
- require('./customerService-BG1uNZZ1.cjs');
7
- require('./globalSearch-BTeZxvk1.cjs');
8
- require('./utilityTypes-C4h2wgAK.cjs');
9
- require('./variantInfo-CNRTY0gH.cjs');
10
- require('./events-Da7gpmGv.cjs');
11
- const require_suggestionBarV2_types = require('./suggestionBarV2-types-Dc4-zJlV.cjs');
12
- const require_divIds = require('./divIds-DEL_-qU0.cjs');
13
- require('./chat-BgONoYU7.cjs');
14
- require('./components-BKZbet67.cjs');
15
- const require_embedded = require('./embedded--2L0F4b5.cjs');
16
- require('./locators-lQMJj830.cjs');
17
- const require_default = require('./default-8Jfv8ehQ.cjs');
18
-
19
- //#region src/merchants/jordanCraig/jordanCraig.ts
20
- const jordanCraigColors = {
21
- [require_types.ColorNames.TextPrimary]: "#1C1C1C",
22
- [require_types.ColorNames.TextSecondary]: "#767676",
23
- [require_types.ColorNames.TextAccent]: "#767676",
24
- [require_types.ColorNames.TextLink]: "#1C1C1C",
25
- [require_types.ColorNames.TextLight]: "#FFFFFF",
26
- [require_types.ColorNames.BackgroundPrimary]: "#1C1C1C",
27
- [require_types.ColorNames.BackgroundSecondary]: "#F6F6F6",
28
- [require_types.ColorNames.BackgroundSecondaryDark]: "#E0E0E0",
29
- [require_types.ColorNames.BackgroundTertiary]: "#DDDDDD",
30
- [require_types.ColorNames.BackgroundDark]: "#1C1C1C",
31
- [require_types.ColorNames.BackgroundLight]: "#FFFFFF",
32
- [require_types.ColorNames.BackgroundSaturated]: "#E0E0E0",
33
- [require_types.ColorNames.BorderLight]: "#DDDDDD",
34
- [require_types.ColorNames.BorderMedium]: "#949596",
35
- [require_types.ColorNames.BorderDark]: "#1C1C1C",
36
- [require_types.ColorNames.BorderOutline]: "#1C1C1C",
37
- [require_types.ColorNames.AccentPrimary]: "#AB1212",
38
- [require_types.ColorNames.AccentSecondary]: "#C69846"
39
- };
40
- const jordanCraigOrgUIConfig = () => {
41
- const defaultJordanCraigOrgConfig = require_default.defaultOrgUIConfig(require_types.OrgShortName.JordanCraig);
42
- return {
43
- ...defaultJordanCraigOrgConfig,
44
- merchantVariantSettings: { dynamicVariants: {
45
- enabled: false,
46
- refreshInterval: 400
47
- } },
48
- searchConfig: {
49
- enableGlobalSearch: true,
50
- redirectSearchResultsUrl: "https://jordancraig.com/collections/best-sellers-men",
51
- searchFilterConfig: [
52
- {
53
- filterId: "price",
54
- displayName: "Price",
55
- type: "price",
56
- bucketSize: 50
57
- },
58
- {
59
- filterId: "size",
60
- displayName: "Size",
61
- attribute: "size",
62
- type: "dynamic",
63
- sorting: { type: "productCount" }
64
- },
65
- {
66
- filterId: "color",
67
- displayName: "Color",
68
- attribute: "color",
69
- type: "dynamic",
70
- sorting: { type: "productCount" }
71
- },
72
- {
73
- filterId: "type",
74
- displayName: "Type",
75
- attribute: "type",
76
- type: "dynamic",
77
- sorting: { type: "productCount" }
78
- },
79
- {
80
- filterId: "dynamic",
81
- displayName: "",
82
- type: "dynamic",
83
- attribute: "dynamic",
84
- sorting: { type: "productCount" }
85
- }
86
- ]
87
- },
88
- chatMessageConfig: {
89
- ...defaultJordanCraigOrgConfig.chatMessageConfig,
90
- assistantChatTitle: "Jordan Craig AI",
91
- variant: "standard",
92
- productLink: {
93
- ...defaultJordanCraigOrgConfig.chatMessageConfig.productLink,
94
- iconVariant: "backgroundSaturated"
95
- }
96
- },
97
- chatHeader: {
98
- ...defaultJordanCraigOrgConfig.chatHeader,
99
- imageSrc: require_contexts.CdnService.getAssetURL("jordancraig-white.png", require_types.OrgShortName.JordanCraig)
100
- },
101
- chatPreviewConfig: {
102
- ...defaultJordanCraigOrgConfig.chatPreviewConfig,
103
- iconFillColor: require_types.colorVar(require_types.ColorNames.AccentPrimary),
104
- buttonBackgroundColor: require_types.colorVar(require_types.ColorNames.BackgroundDark),
105
- buttonTextHoverColor: require_types.colorVar(require_types.ColorNames.TextPrimary),
106
- buttonBackgroundHoverColor: require_types.colorVar(require_types.ColorNames.BackgroundSecondaryDark),
107
- topMargin: 10,
108
- copies: {
109
- plp: [
110
- "what's new in style?",
111
- "the right pair of jeans for every day?",
112
- "a jacket to elevate your look?",
113
- "a unique graphic print?"
114
- ],
115
- pdp: [
116
- "if this is hypoallergenic?",
117
- "if this is a meaningful gift?",
118
- "if it is the right size for you?",
119
- "if it's crafted with durable materials?"
120
- ]
121
- },
122
- staticSuggestionCopies: {
123
- plp: [
124
- "the care instructions?",
125
- "what it's made of?",
126
- "the standout features?",
127
- "the size guide?"
128
- ],
129
- pdp: [
130
- "Is this available in other colors or styles?",
131
- "Does this style match any other pieces?",
132
- "What is my right size?",
133
- "What is this made of?",
134
- "How do I care for this product?"
135
- ]
136
- },
137
- headerConfig: {
138
- ...defaultJordanCraigOrgConfig.chatPreviewConfig.headerConfig,
139
- imageHeight: 24,
140
- imageSrc: require_contexts.CdnService.getAssetURL("jordancraig-black.png", require_types.OrgShortName.JordanCraig)
141
- },
142
- footerConfig: {
143
- ...defaultJordanCraigOrgConfig.chatPreviewConfig.footerConfig,
144
- replyButtonIcon: "magnifyingGlass"
145
- }
146
- },
147
- floatingEntrypointConfig: {
148
- ...defaultJordanCraigOrgConfig.floatingEntrypointConfig,
149
- showOption: "always",
150
- expandedColor: require_types.colorVar(require_types.ColorNames.BorderOutline),
151
- expansionText: {
152
- pdp: "Is this your next essential?",
153
- plp: "Ready to find your perfect fit?"
154
- }
155
- },
156
- productCardConfig: { ...defaultJordanCraigOrgConfig.productCardConfig },
157
- productReviewConfig: {
158
- ...defaultJordanCraigOrgConfig.productReviewConfig,
159
- colorVariant: "brand",
160
- verifiedBuyerTitle: "",
161
- incentivizedReviewFlag: false
162
- },
163
- welcomeSectionConfig: {
164
- ...defaultJordanCraigOrgConfig.welcomeSectionConfig,
165
- title: "Welcome to Jordan Craig AI!",
166
- subtitle: "Hey! I'm here to make your shopping experience effortless. Ask me anything—from finding your perfect fit to details about our latest styles. Let's find your next essential."
167
- },
168
- merchantOverrideCss: `
169
- .spiffy-star-rating-star {
170
- fill: var(--spiffy-colors-text-primary) !important;
171
- }
172
- .spiffy-product-review-header-reviewer {
173
- color: var(--spiffy-colors-text-primary) !important;
174
- }
175
- .spiffy-mini-verified-buyer-text {
176
- color: var(--spiffy-colors-background-secondary) !important;
177
- }
178
- .spiffy-mini-verified-buyer-icon {
179
- fill: var(--spiffy-colors-background-secondary) !important;
180
- }
181
-
182
- #spiffy-ai-chat-preview.is-plp {
183
- max-width: calc(100vw - (2 * var(--container-gutter)));
184
- @media (max-width: 700px) {
185
- max-width:calc(100vw - 20px)
186
- }
187
- }
188
- .spiffy-product-card-title {
189
- font-family: var(--chakra-fonts-heading);
190
- color: var(--spiffy-colors-text-link);
191
- }
192
- .spiffy-product-card-text-color {
193
- color: var(--spiffy-colors-text-secondary);
194
- }
195
- .spiffy-product-card-rating-star-color {
196
- fill: var(--spiffy-colors-background-primary);
197
- }
198
-
199
- .search-results-entry-point + #main {
200
- display: none;
201
- }
202
- `
203
- };
204
- };
205
- const jordanCraigPageConfig = () => ({
206
- pageVariants: [
207
- {
208
- variantId: "search-results",
209
- variantType: "plp",
210
- variantTests: [
211
- { testType: require_types.PageVariantTestType.UrlResolver },
212
- {
213
- testType: require_types.PageVariantTestType.FeatureGate,
214
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
215
- },
216
- {
217
- testType: require_types.PageVariantTestType.QueryParam,
218
- queryParam: "esq"
219
- }
220
- ],
221
- plpIdExtractor: "url-resolver-plp-id",
222
- widgetMounting: [
223
- {
224
- mountingConfigId: "searchIconEntryPoint",
225
- widgetConfigId: "searchIconEntryPoint"
226
- },
227
- {
228
- mountingConfigId: "searchOverlayHost",
229
- widgetConfigId: "searchOverlayHost"
230
- },
231
- {
232
- mountingConfigId: "chatPreviewPLP",
233
- widgetConfigId: "chatPreviewPLP"
234
- },
235
- {
236
- mountingConfigId: "searchResultsEntryPointPLP",
237
- widgetConfigId: "searchResultsEntryPoint"
238
- }
239
- ]
240
- },
241
- {
242
- variantId: "plp-with-search",
243
- variantType: "plp",
244
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
245
- testType: require_types.PageVariantTestType.FeatureGate,
246
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
247
- }],
248
- plpIdExtractor: "url-resolver-plp-id",
249
- widgetMounting: [
250
- {
251
- mountingConfigId: "searchIconEntryPoint",
252
- widgetConfigId: "searchIconEntryPoint"
253
- },
254
- {
255
- mountingConfigId: "searchOverlayHost",
256
- widgetConfigId: "searchOverlayHost"
257
- },
258
- {
259
- mountingConfigId: "chatPreviewPLP",
260
- widgetConfigId: "chatPreviewPLP"
261
- }
262
- ]
263
- },
264
- {
265
- variantId: "pdp-with-search",
266
- variantType: "pdp",
267
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
268
- testType: require_types.PageVariantTestType.FeatureGate,
269
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
270
- }],
271
- productIdExtractor: "url-resolver-product-id",
272
- widgetMounting: [
273
- {
274
- mountingConfigId: "searchIconEntryPoint",
275
- widgetConfigId: "searchIconEntryPoint"
276
- },
277
- {
278
- mountingConfigId: "searchOverlayHost",
279
- widgetConfigId: "searchOverlayHost"
280
- },
281
- {
282
- mountingConfigId: "topSuggestionBarPDP",
283
- widgetConfigId: "topSuggestionsBar"
284
- },
285
- {
286
- mountingConfigId: "bottomSuggestionBarPDP",
287
- widgetConfigId: "bottomSuggestionsBar"
288
- },
289
- {
290
- mountingConfigId: "chatPreviewPDP",
291
- widgetConfigId: "chatPreviewPDP"
292
- }
293
- ]
294
- },
295
- {
296
- variantId: "home-with-search",
297
- variantType: "homepage",
298
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
299
- testType: require_types.PageVariantTestType.FeatureGate,
300
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
301
- }],
302
- widgetMounting: [{
303
- mountingConfigId: "searchIconEntryPoint",
304
- widgetConfigId: "searchIconEntryPoint"
305
- }, {
306
- mountingConfigId: "searchOverlayHost",
307
- widgetConfigId: "searchOverlayHost"
308
- }]
309
- },
310
- {
311
- variantId: "other-with-search",
312
- variantType: "other",
313
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
314
- testType: require_types.PageVariantTestType.FeatureGate,
315
- featureGate: require_contexts.FeatureGates.IsGlobalSearchEnabled
316
- }],
317
- widgetMounting: [{
318
- mountingConfigId: "searchIconEntryPoint",
319
- widgetConfigId: "searchIconEntryPoint"
320
- }, {
321
- mountingConfigId: "searchOverlayHost",
322
- widgetConfigId: "searchOverlayHost"
323
- }]
324
- },
325
- {
326
- variantId: "plp",
327
- variantType: "plp",
328
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }],
329
- plpIdExtractor: "url-resolver-plp-id",
330
- widgetMounting: [{
331
- mountingConfigId: "chatPreviewPLP",
332
- widgetConfigId: "chatPreviewPLP"
333
- }]
334
- },
335
- {
336
- variantId: "outerwearWithReviews",
337
- variantType: "pdp",
338
- variantTests: [
339
- {
340
- testType: require_types.PageVariantTestType.HasReviews,
341
- reviewMinimum: 4
342
- },
343
- { testType: require_types.PageVariantTestType.UrlResolver },
344
- {
345
- testType: require_types.PageVariantTestType.InCollection,
346
- collections: ["outerwear", "big-mens-outerwear"]
347
- }
348
- ],
349
- productIdExtractor: "url-resolver-product-id",
350
- widgetMounting: [
351
- {
352
- mountingConfigId: "topSuggestionBarPDP",
353
- widgetConfigId: "topSuggestionsBarOuterwear"
354
- },
355
- {
356
- mountingConfigId: "chatPreviewPDP",
357
- widgetConfigId: "chatPreviewPDP"
358
- },
359
- {
360
- mountingConfigId: "bottomSuggestionBarPDP",
361
- widgetConfigId: "bottomSuggestionsBarOuterwear"
362
- }
363
- ]
364
- },
365
- {
366
- variantId: "tshirtsWithReviews",
367
- variantType: "pdp",
368
- variantTests: [
369
- {
370
- testType: require_types.PageVariantTestType.HasReviews,
371
- reviewMinimum: 4
372
- },
373
- { testType: require_types.PageVariantTestType.UrlResolver },
374
- {
375
- testType: require_types.PageVariantTestType.InCollection,
376
- collections: ["tshirt", "big-mens-t-shirts"]
377
- }
378
- ],
379
- productIdExtractor: "url-resolver-product-id",
380
- widgetMounting: [
381
- {
382
- mountingConfigId: "topSuggestionBarPDP",
383
- widgetConfigId: "topSuggestionsBarTshirts"
384
- },
385
- {
386
- mountingConfigId: "chatPreviewPDP",
387
- widgetConfigId: "chatPreviewPDP"
388
- },
389
- {
390
- mountingConfigId: "bottomSuggestionBarPDP",
391
- widgetConfigId: "bottomSuggestionsBarTshirts"
392
- }
393
- ]
394
- },
395
- {
396
- variantId: "sweatshirtsWithReviews",
397
- variantType: "pdp",
398
- variantTests: [
399
- {
400
- testType: require_types.PageVariantTestType.HasReviews,
401
- reviewMinimum: 4
402
- },
403
- { testType: require_types.PageVariantTestType.UrlResolver },
404
- {
405
- testType: require_types.PageVariantTestType.InCollection,
406
- collections: ["sweatshirts", "big-mens-sweatshirts"]
407
- }
408
- ],
409
- productIdExtractor: "url-resolver-product-id",
410
- widgetMounting: [
411
- {
412
- mountingConfigId: "topSuggestionBarPDP",
413
- widgetConfigId: "topSuggestionsBarSweatshirts"
414
- },
415
- {
416
- mountingConfigId: "chatPreviewPDP",
417
- widgetConfigId: "chatPreviewPDP"
418
- },
419
- {
420
- mountingConfigId: "bottomSuggestionBarPDP",
421
- widgetConfigId: "bottomSuggestionsBarSweatshirts"
422
- }
423
- ]
424
- },
425
- {
426
- variantId: "sweatpantsWithReviews",
427
- variantType: "pdp",
428
- variantTests: [
429
- {
430
- testType: require_types.PageVariantTestType.HasReviews,
431
- reviewMinimum: 4
432
- },
433
- { testType: require_types.PageVariantTestType.UrlResolver },
434
- {
435
- testType: require_types.PageVariantTestType.InCollection,
436
- collections: ["big-mens-sweatpants", "mens-sweatpants"]
437
- }
438
- ],
439
- productIdExtractor: "url-resolver-product-id",
440
- widgetMounting: [
441
- {
442
- mountingConfigId: "topSuggestionBarPDP",
443
- widgetConfigId: "topSuggestionsBarSweatpants"
444
- },
445
- {
446
- mountingConfigId: "chatPreviewPDP",
447
- widgetConfigId: "chatPreviewPDP"
448
- },
449
- {
450
- mountingConfigId: "bottomSuggestionBarPDP",
451
- widgetConfigId: "bottomSuggestionsBarSweatpants"
452
- }
453
- ]
454
- },
455
- {
456
- variantId: "denimWithReviews",
457
- variantType: "pdp",
458
- variantTests: [
459
- {
460
- testType: require_types.PageVariantTestType.HasReviews,
461
- reviewMinimum: 4
462
- },
463
- { testType: require_types.PageVariantTestType.UrlResolver },
464
- {
465
- testType: require_types.PageVariantTestType.InCollection,
466
- collections: [
467
- "big-mens-denim",
468
- "denim",
469
- "kids-denim"
470
- ]
471
- }
472
- ],
473
- productIdExtractor: "url-resolver-product-id",
474
- widgetMounting: [
475
- {
476
- mountingConfigId: "topSuggestionBarPDP",
477
- widgetConfigId: "topSuggestionsBarDenim"
478
- },
479
- {
480
- mountingConfigId: "chatPreviewPDP",
481
- widgetConfigId: "chatPreviewPDP"
482
- },
483
- {
484
- mountingConfigId: "bottomSuggestionBarPDP",
485
- widgetConfigId: "bottomSuggestionsBarDenim"
486
- }
487
- ]
488
- },
489
- {
490
- variantId: "twillFleeceWithReviews",
491
- variantType: "pdp",
492
- variantTests: [
493
- {
494
- testType: require_types.PageVariantTestType.HasReviews,
495
- reviewMinimum: 4
496
- },
497
- { testType: require_types.PageVariantTestType.UrlResolver },
498
- {
499
- testType: require_types.PageVariantTestType.InCollection,
500
- collections: [
501
- "big-mens-sweatpants",
502
- "kids-fleece",
503
- "mens-sweatpants",
504
- "mens-twill-bottoms",
505
- "kids-twill-pants"
506
- ]
507
- }
508
- ],
509
- productIdExtractor: "url-resolver-product-id",
510
- widgetMounting: [
511
- {
512
- mountingConfigId: "topSuggestionBarPDP",
513
- widgetConfigId: "topSuggestionsBarTwillFleece"
514
- },
515
- {
516
- mountingConfigId: "chatPreviewPDP",
517
- widgetConfigId: "chatPreviewPDP"
518
- },
519
- {
520
- mountingConfigId: "bottomSuggestionBarPDP",
521
- widgetConfigId: "bottomSuggestionsBarTwillFleece"
522
- }
523
- ]
524
- },
525
- {
526
- variantId: "shortsWithReviews",
527
- variantType: "pdp",
528
- variantTests: [
529
- {
530
- testType: require_types.PageVariantTestType.HasReviews,
531
- reviewMinimum: 4
532
- },
533
- { testType: require_types.PageVariantTestType.UrlResolver },
534
- {
535
- testType: require_types.PageVariantTestType.InCollection,
536
- collections: [
537
- "kids-shorts",
538
- "big-mens-shorts",
539
- "shorts"
540
- ]
541
- }
542
- ],
543
- productIdExtractor: "url-resolver-product-id",
544
- widgetMounting: [
545
- {
546
- mountingConfigId: "topSuggestionBarPDP",
547
- widgetConfigId: "topSuggestionsBarShorts"
548
- },
549
- {
550
- mountingConfigId: "chatPreviewPDP",
551
- widgetConfigId: "chatPreviewPDP"
552
- },
553
- {
554
- mountingConfigId: "bottomSuggestionBarPDP",
555
- widgetConfigId: "bottomSuggestionsBarShorts"
556
- }
557
- ]
558
- },
559
- {
560
- variantId: "accessoriesWithReviews",
561
- variantType: "pdp",
562
- variantTests: [
563
- {
564
- testType: require_types.PageVariantTestType.HasReviews,
565
- reviewMinimum: 4
566
- },
567
- { testType: require_types.PageVariantTestType.UrlResolver },
568
- {
569
- testType: require_types.PageVariantTestType.InCollection,
570
- collections: ["bag-collection"]
571
- }
572
- ],
573
- productIdExtractor: "url-resolver-product-id",
574
- widgetMounting: [
575
- {
576
- mountingConfigId: "topSuggestionBarPDP",
577
- widgetConfigId: "topSuggestionsBarAccessories"
578
- },
579
- {
580
- mountingConfigId: "chatPreviewPDP",
581
- widgetConfigId: "chatPreviewPDP"
582
- },
583
- {
584
- mountingConfigId: "bottomSuggestionBarPDP",
585
- widgetConfigId: "bottomSuggestionsBarAccessories"
586
- }
587
- ]
588
- },
589
- {
590
- variantId: "footwearWithReviews",
591
- variantType: "pdp",
592
- variantTests: [
593
- {
594
- testType: require_types.PageVariantTestType.HasReviews,
595
- reviewMinimum: 4
596
- },
597
- { testType: require_types.PageVariantTestType.UrlResolver },
598
- {
599
- testType: require_types.PageVariantTestType.InCollection,
600
- collections: ["footwear-collection"]
601
- }
602
- ],
603
- productIdExtractor: "url-resolver-product-id",
604
- widgetMounting: [
605
- {
606
- mountingConfigId: "topSuggestionBarPDP",
607
- widgetConfigId: "topSuggestionsBarFootwear"
608
- },
609
- {
610
- mountingConfigId: "chatPreviewPDP",
611
- widgetConfigId: "chatPreviewPDP"
612
- },
613
- {
614
- mountingConfigId: "bottomSuggestionBarPDP",
615
- widgetConfigId: "bottomSuggestionsBarFootwear"
616
- }
617
- ]
618
- },
619
- {
620
- variantId: "outerwear",
621
- variantType: "pdp",
622
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
623
- testType: require_types.PageVariantTestType.InCollection,
624
- collections: ["outerwear", "big-mens-outerwear"]
625
- }],
626
- productIdExtractor: "url-resolver-product-id",
627
- widgetMounting: [
628
- {
629
- mountingConfigId: "topSuggestionBarPDP",
630
- widgetConfigId: "topSuggestionsBarOuterwear"
631
- },
632
- {
633
- mountingConfigId: "chatPreviewPDP",
634
- widgetConfigId: "chatPreviewPDP"
635
- },
636
- {
637
- mountingConfigId: "bottomSuggestionBarPDP",
638
- widgetConfigId: "bottomSuggestionsBarOuterwear"
639
- }
640
- ]
641
- },
642
- {
643
- variantId: "tshirts",
644
- variantType: "pdp",
645
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
646
- testType: require_types.PageVariantTestType.InCollection,
647
- collections: ["tshirt", "big-mens-t-shirts"]
648
- }],
649
- productIdExtractor: "url-resolver-product-id",
650
- widgetMounting: [
651
- {
652
- mountingConfigId: "topSuggestionBarPDP",
653
- widgetConfigId: "topSuggestionsBarTshirts"
654
- },
655
- {
656
- mountingConfigId: "chatPreviewPDP",
657
- widgetConfigId: "chatPreviewPDP"
658
- },
659
- {
660
- mountingConfigId: "bottomSuggestionBarPDP",
661
- widgetConfigId: "bottomSuggestionsBarTshirts"
662
- }
663
- ]
664
- },
665
- {
666
- variantId: "sweatshirts",
667
- variantType: "pdp",
668
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
669
- testType: require_types.PageVariantTestType.InCollection,
670
- collections: ["sweatshirts", "big-mens-sweatshirts"]
671
- }],
672
- productIdExtractor: "url-resolver-product-id",
673
- widgetMounting: [
674
- {
675
- mountingConfigId: "topSuggestionBarPDP",
676
- widgetConfigId: "topSuggestionsBarSweatshirts"
677
- },
678
- {
679
- mountingConfigId: "chatPreviewPDP",
680
- widgetConfigId: "chatPreviewPDP"
681
- },
682
- {
683
- mountingConfigId: "bottomSuggestionBarPDP",
684
- widgetConfigId: "bottomSuggestionsBarSweatshirts"
685
- }
686
- ]
687
- },
688
- {
689
- variantId: "sweatpants",
690
- variantType: "pdp",
691
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
692
- testType: require_types.PageVariantTestType.InCollection,
693
- collections: ["big-mens-sweatpants", "mens-sweatpants"]
694
- }],
695
- productIdExtractor: "url-resolver-product-id",
696
- widgetMounting: [
697
- {
698
- mountingConfigId: "topSuggestionBarPDP",
699
- widgetConfigId: "topSuggestionsBarSweatpants"
700
- },
701
- {
702
- mountingConfigId: "chatPreviewPDP",
703
- widgetConfigId: "chatPreviewPDP"
704
- },
705
- {
706
- mountingConfigId: "bottomSuggestionBarPDP",
707
- widgetConfigId: "bottomSuggestionsBarSweatpants"
708
- }
709
- ]
710
- },
711
- {
712
- variantId: "graphic",
713
- variantType: "pdp",
714
- variantTests: [
715
- { testType: require_types.PageVariantTestType.UrlResolver },
716
- {
717
- testType: require_types.PageVariantTestType.HasReviews,
718
- reviewMinimum: 4
719
- },
720
- {
721
- testType: require_types.PageVariantTestType.InCollection,
722
- collections: ["mens-graphic-prints-collection"]
723
- }
724
- ],
725
- productIdExtractor: "url-resolver-product-id",
726
- widgetMounting: [
727
- {
728
- mountingConfigId: "topSuggestionBarPDP",
729
- widgetConfigId: "topSuggestionsBarGraphic"
730
- },
731
- {
732
- mountingConfigId: "chatPreviewPDP",
733
- widgetConfigId: "chatPreviewPDP"
734
- },
735
- {
736
- mountingConfigId: "bottomSuggestionBarPDP",
737
- widgetConfigId: "bottomSuggestionsBarGraphic"
738
- }
739
- ]
740
- },
741
- {
742
- variantId: "denim",
743
- variantType: "pdp",
744
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
745
- testType: require_types.PageVariantTestType.InCollection,
746
- collections: [
747
- "big-mens-denim",
748
- "denim",
749
- "kids-denim"
750
- ]
751
- }],
752
- productIdExtractor: "url-resolver-product-id",
753
- widgetMounting: [
754
- {
755
- mountingConfigId: "topSuggestionBarPDP",
756
- widgetConfigId: "topSuggestionsBarDenim"
757
- },
758
- {
759
- mountingConfigId: "chatPreviewPDP",
760
- widgetConfigId: "chatPreviewPDP"
761
- },
762
- {
763
- mountingConfigId: "bottomSuggestionBarPDP",
764
- widgetConfigId: "bottomSuggestionsBarDenim"
765
- }
766
- ]
767
- },
768
- {
769
- variantId: "twill-fleece",
770
- variantType: "pdp",
771
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
772
- testType: require_types.PageVariantTestType.InCollection,
773
- collections: [
774
- "big-mens-sweatpants",
775
- "kids-fleece",
776
- "mens-sweatpants",
777
- "mens-twill-bottoms",
778
- "kids-twill-pants"
779
- ]
780
- }],
781
- productIdExtractor: "url-resolver-product-id",
782
- widgetMounting: [
783
- {
784
- mountingConfigId: "topSuggestionBarPDP",
785
- widgetConfigId: "topSuggestionsBarTwillFleece"
786
- },
787
- {
788
- mountingConfigId: "chatPreviewPDP",
789
- widgetConfigId: "chatPreviewPDP"
790
- },
791
- {
792
- mountingConfigId: "bottomSuggestionBarPDP",
793
- widgetConfigId: "bottomSuggestionsBarTwillFleece"
794
- }
795
- ]
796
- },
797
- {
798
- variantId: "shorts",
799
- variantType: "pdp",
800
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
801
- testType: require_types.PageVariantTestType.InCollection,
802
- collections: [
803
- "kids-shorts",
804
- "big-mens-shorts",
805
- "shorts"
806
- ]
807
- }],
808
- productIdExtractor: "url-resolver-product-id",
809
- widgetMounting: [
810
- {
811
- mountingConfigId: "topSuggestionBarPDP",
812
- widgetConfigId: "topSuggestionsBarShorts"
813
- },
814
- {
815
- mountingConfigId: "chatPreviewPDP",
816
- widgetConfigId: "chatPreviewPDP"
817
- },
818
- {
819
- mountingConfigId: "bottomSuggestionBarPDP",
820
- widgetConfigId: "bottomSuggestionsBarShorts"
821
- }
822
- ]
823
- },
824
- {
825
- variantId: "accessories",
826
- variantType: "pdp",
827
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
828
- testType: require_types.PageVariantTestType.InCollection,
829
- collections: ["bag-collection"]
830
- }],
831
- productIdExtractor: "url-resolver-product-id",
832
- widgetMounting: [
833
- {
834
- mountingConfigId: "topSuggestionBarPDP",
835
- widgetConfigId: "topSuggestionsBarAccessories"
836
- },
837
- {
838
- mountingConfigId: "chatPreviewPDP",
839
- widgetConfigId: "chatPreviewPDP"
840
- },
841
- {
842
- mountingConfigId: "bottomSuggestionBarPDP",
843
- widgetConfigId: "bottomSuggestionsBarAccessories"
844
- }
845
- ]
846
- },
847
- {
848
- variantId: "footwear",
849
- variantType: "pdp",
850
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }, {
851
- testType: require_types.PageVariantTestType.InCollection,
852
- collections: ["footwear-collection"]
853
- }],
854
- productIdExtractor: "url-resolver-product-id",
855
- widgetMounting: [
856
- {
857
- mountingConfigId: "topSuggestionBarPDP",
858
- widgetConfigId: "topSuggestionsBarFootwear"
859
- },
860
- {
861
- mountingConfigId: "chatPreviewPDP",
862
- widgetConfigId: "chatPreviewPDP"
863
- },
864
- {
865
- mountingConfigId: "bottomSuggestionBarPDP",
866
- widgetConfigId: "bottomSuggestionsBarFootwear"
867
- }
868
- ]
869
- },
870
- {
871
- variantId: "pdp",
872
- variantType: "pdp",
873
- variantTests: [{ testType: require_types.PageVariantTestType.UrlResolver }],
874
- productIdExtractor: "url-resolver-product-id",
875
- widgetMounting: [
876
- {
877
- mountingConfigId: "topSuggestionBarPDP",
878
- widgetConfigId: "topSuggestionsBar"
879
- },
880
- {
881
- mountingConfigId: "chatPreviewPDP",
882
- widgetConfigId: "chatPreviewPDP"
883
- },
884
- {
885
- mountingConfigId: "bottomSuggestionBarPDP",
886
- widgetConfigId: "bottomSuggestionsBar"
887
- }
888
- ]
889
- }
890
- ],
891
- widgetConfigs: {
892
- searchIconEntryPoint: {
893
- widgetConfigId: "searchIconEntryPoint",
894
- type: require_types.WidgetType.SearchZeroStateEntryPoint,
895
- searchZeroStateVariant: "backgroundTertiary",
896
- searchInputVariant: "standard",
897
- suggestionButtonConfig: {
898
- variant: "darkAccent",
899
- hoverVariant: "secondaryAccent",
900
- borderRadius: "md"
901
- },
902
- layout: "icon",
903
- searchIconVariant: "bold",
904
- searchIconSize: 26,
905
- searchBoxPlaceholder: "Try \"Jeans that work for all body types\"",
906
- initialSuggestions: [
907
- "Stone washed jeans",
908
- "White torn up jeans",
909
- "Black soft t-shirt",
910
- "Black moto-inspired jeans",
911
- "Graphic t-shirt"
912
- ],
913
- usingPortal: true
914
- },
915
- searchOverlayHost: {
916
- widgetConfigId: "searchOverlayHost",
917
- type: require_types.WidgetType.SearchOverlayHost
918
- },
919
- searchResultsEntryPoint: {
920
- widgetConfigId: "searchResultsEntryPoint",
921
- type: require_types.WidgetType.SearchResultsEntryPoint,
922
- searchBoxPlaceholder: "Try \"Modern skinny jeans\"",
923
- productGridVariant: "standard",
924
- searchFilterSidebarVariant: "darkButton",
925
- searchInputVariant: "standard"
926
- },
927
- chatPreviewPDP: {
928
- widgetConfigId: "chatPreviewPDP",
929
- type: require_types.WidgetType.ChatPreview,
930
- variant: "flat"
931
- },
932
- chatPreviewPLP: {
933
- widgetConfigId: "chatPreviewPLP",
934
- type: require_types.WidgetType.ChatPreview,
935
- variant: "flat",
936
- addSeparators: true,
937
- footerConfig: {
938
- replyButtonText: "What can I help you find?",
939
- replyButtonIcon: "magnifyingGlass"
940
- }
941
- },
942
- topSuggestionsBar: {
943
- widgetConfigId: "topSuggestionsBar",
944
- contentId: "spiffy-top-suggestion-bar-contents",
945
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
946
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
947
- type: require_types.WidgetType.SuggestionBarV2,
948
- variant: "secondary",
949
- hoverVariant: "secondaryDark",
950
- animationSpeed: "none",
951
- buttonBorderRadius: "md",
952
- boldFirstButton: true,
953
- buttonTexts: { default: [
954
- "How do they fit?",
955
- "What's unique about this?",
956
- "What's the current deals?"
957
- ] }
958
- },
959
- bottomSuggestionsBar: {
960
- widgetConfigId: "bottomSuggestionsBar",
961
- contentId: "spiffy-top-suggestion-bar-contents",
962
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
963
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
964
- type: require_types.WidgetType.SuggestionBarV2,
965
- variant: "darkPrimary",
966
- hoverVariant: "secondaryDark",
967
- animationSpeed: "none",
968
- buttonBorderRadius: "md",
969
- boldFirstButton: true,
970
- buttonTexts: { default: [
971
- "How do they fit?",
972
- "What's unique about this?",
973
- "What's the current deals?"
974
- ] }
975
- },
976
- topSuggestionsBarOuterwear: {
977
- widgetConfigId: "topSuggestionsBarOuterwear",
978
- contentId: "spiffy-top-suggestion-bar-contents",
979
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
980
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
981
- type: require_types.WidgetType.SuggestionBarV2,
982
- variant: "secondary",
983
- hoverVariant: "secondaryDark",
984
- animationSpeed: "none",
985
- buttonBorderRadius: "md",
986
- boldFirstButton: true,
987
- buttonTexts: { default: [
988
- "How insulated is this jacket?",
989
- "What material is it made of?",
990
- "Can I layer this over a hoodie?",
991
- "Does the material stretch?",
992
- "Does it run small?"
993
- ] }
994
- },
995
- bottomSuggestionsBarOuterwear: {
996
- widgetConfigId: "bottomSuggestionsBarOuterwear",
997
- contentId: "spiffy-top-suggestion-bar-contents",
998
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
999
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1000
- type: require_types.WidgetType.SuggestionBarV2,
1001
- variant: "darkPrimary",
1002
- hoverVariant: "secondaryDark",
1003
- animationSpeed: "none",
1004
- buttonBorderRadius: "md",
1005
- boldFirstButton: true,
1006
- buttonTexts: { default: [
1007
- "How insulated is this jacket?",
1008
- "What material is it made of?",
1009
- "Can I layer this over a hoodie?",
1010
- "Does the material stretch?",
1011
- "Does it run small?"
1012
- ] }
1013
- },
1014
- topSuggestionsBarTshirts: {
1015
- widgetConfigId: "topSuggestionsBarTshirts",
1016
- contentId: "spiffy-top-suggestion-bar-contents",
1017
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1018
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1019
- type: require_types.WidgetType.SuggestionBarV2,
1020
- variant: "secondary",
1021
- hoverVariant: "secondaryDark",
1022
- animationSpeed: "none",
1023
- buttonBorderRadius: "md",
1024
- boldFirstButton: true,
1025
- buttonTexts: { default: [
1026
- "How does it fit?",
1027
- "Will it shrink after washing?",
1028
- "How does it feel?",
1029
- "Which bottoms does it pair with?"
1030
- ] }
1031
- },
1032
- bottomSuggestionsBarTshirts: {
1033
- widgetConfigId: "bottomSuggestionsBarTshirts",
1034
- contentId: "spiffy-top-suggestion-bar-contents",
1035
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1036
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1037
- type: require_types.WidgetType.SuggestionBarV2,
1038
- variant: "darkPrimary",
1039
- hoverVariant: "secondaryDark",
1040
- animationSpeed: "none",
1041
- buttonBorderRadius: "md",
1042
- boldFirstButton: true,
1043
- buttonTexts: { default: [
1044
- "How does it fit?",
1045
- "Will it shrink after washing?",
1046
- "How does it feel?",
1047
- "Which bottoms does it pair with?"
1048
- ] }
1049
- },
1050
- topSuggestionsBarSweatshirts: {
1051
- widgetConfigId: "topSuggestionsBarSweatshirts",
1052
- contentId: "spiffy-top-suggestion-bar-contents",
1053
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1054
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1055
- type: require_types.WidgetType.SuggestionBarV2,
1056
- variant: "secondary",
1057
- hoverVariant: "secondaryDark",
1058
- animationSpeed: "none",
1059
- buttonBorderRadius: "md",
1060
- boldFirstButton: true,
1061
- buttonTexts: { default: [
1062
- "How does it fit?",
1063
- "How does it feel?",
1064
- "What's the style?",
1065
- "Does it pair with sweatpants?"
1066
- ] }
1067
- },
1068
- bottomSuggestionsBarSweatshirts: {
1069
- widgetConfigId: "bottomSuggestionsBarSweatshirts",
1070
- contentId: "spiffy-top-suggestion-bar-contents",
1071
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1072
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1073
- type: require_types.WidgetType.SuggestionBarV2,
1074
- variant: "darkPrimary",
1075
- hoverVariant: "secondaryDark",
1076
- animationSpeed: "none",
1077
- buttonBorderRadius: "md",
1078
- boldFirstButton: true,
1079
- buttonTexts: { default: [
1080
- "How does it fit?",
1081
- "How does it feel?",
1082
- "What's the style?",
1083
- "Does it pair with sweatshirts?"
1084
- ] }
1085
- },
1086
- topSuggestionsBarSweatpants: {
1087
- widgetConfigId: "topSuggestionsBarSweatpants",
1088
- contentId: "spiffy-top-suggestion-bar-contents",
1089
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1090
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1091
- type: require_types.WidgetType.SuggestionBarV2,
1092
- variant: "secondary",
1093
- hoverVariant: "secondaryDark",
1094
- animationSpeed: "none",
1095
- buttonBorderRadius: "md",
1096
- boldFirstButton: true,
1097
- buttonTexts: { default: [
1098
- "How does it fit?",
1099
- "How does it feel?",
1100
- "What's the style?",
1101
- "Does it pair with sweatshirts?"
1102
- ] }
1103
- },
1104
- bottomSuggestionsBarSweatpants: {
1105
- widgetConfigId: "bottomSuggestionsBarSweatpants",
1106
- contentId: "spiffy-top-suggestion-bar-contents",
1107
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1108
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1109
- type: require_types.WidgetType.SuggestionBarV2,
1110
- variant: "darkPrimary",
1111
- hoverVariant: "secondaryDark",
1112
- animationSpeed: "none",
1113
- buttonBorderRadius: "md",
1114
- boldFirstButton: true,
1115
- buttonTexts: { default: [
1116
- "How does it fit?",
1117
- "How does it feel?",
1118
- "What's the style?",
1119
- "Does it pair with sweatshirts?"
1120
- ] }
1121
- },
1122
- topSuggestionsBarGraphic: {
1123
- widgetConfigId: "topSuggestionsBarGraphic",
1124
- contentId: "spiffy-top-suggestion-bar-contents",
1125
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1126
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1127
- type: require_types.WidgetType.SuggestionBarV2,
1128
- variant: "secondary",
1129
- hoverVariant: "secondaryDark",
1130
- animationSpeed: "none",
1131
- buttonBorderRadius: "md",
1132
- boldFirstButton: true,
1133
- buttonTexts: { default: [
1134
- "What is the style? (Work/tech/street)",
1135
- "What is the sleeve length?",
1136
- "Does it pair with bottoms?"
1137
- ] }
1138
- },
1139
- bottomSuggestionsBarGraphic: {
1140
- widgetConfigId: "bottomSuggestionsBarGraphic",
1141
- contentId: "spiffy-top-suggestion-bar-contents",
1142
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1143
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1144
- type: require_types.WidgetType.SuggestionBarV2,
1145
- variant: "darkPrimary",
1146
- hoverVariant: "secondaryDark",
1147
- animationSpeed: "none",
1148
- buttonBorderRadius: "md",
1149
- boldFirstButton: true,
1150
- buttonTexts: { default: [
1151
- "What is the style? (Work/tech/street)",
1152
- "What is the sleeve length?",
1153
- "Does it pair with bottoms?"
1154
- ] }
1155
- },
1156
- topSuggestionsBarDenim: {
1157
- widgetConfigId: "topSuggestionsBarDenim",
1158
- contentId: "spiffy-top-suggestion-bar-contents",
1159
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1160
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1161
- type: require_types.WidgetType.SuggestionBarV2,
1162
- variant: "secondary",
1163
- hoverVariant: "secondaryDark",
1164
- animationSpeed: "none",
1165
- buttonBorderRadius: "md",
1166
- boldFirstButton: true,
1167
- buttonTexts: { default: [
1168
- "How do they fit?",
1169
- "What size should I get?",
1170
- "What's the rise?",
1171
- "What's the material?"
1172
- ] }
1173
- },
1174
- bottomSuggestionsBarDenim: {
1175
- widgetConfigId: "bottomSuggestionsBarDenim",
1176
- contentId: "spiffy-top-suggestion-bar-contents",
1177
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1178
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1179
- type: require_types.WidgetType.SuggestionBarV2,
1180
- variant: "darkPrimary",
1181
- hoverVariant: "secondaryDark",
1182
- animationSpeed: "none",
1183
- buttonBorderRadius: "md",
1184
- boldFirstButton: true,
1185
- buttonTexts: { default: [
1186
- "How do they fit?",
1187
- "What size should I get?",
1188
- "What's the rise?",
1189
- "What's the material?"
1190
- ] }
1191
- },
1192
- topSuggestionsBarTwillFleece: {
1193
- widgetConfigId: "topSuggestionsBarTwillFleece",
1194
- contentId: "spiffy-top-suggestion-bar-contents",
1195
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1196
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1197
- type: require_types.WidgetType.SuggestionBarV2,
1198
- variant: "secondary",
1199
- hoverVariant: "secondaryDark",
1200
- buttonBorderRadius: "md",
1201
- boldFirstButton: true,
1202
- buttonTexts: { default: [
1203
- "Are these true to size?",
1204
- "What size should I get?",
1205
- "How does it feel?",
1206
- "Do they stretch out over time?",
1207
- "What's the fit/style?"
1208
- ] }
1209
- },
1210
- bottomSuggestionsBarTwillFleece: {
1211
- widgetConfigId: "bottomSuggestionsBarTwillFleece",
1212
- contentId: "spiffy-top-suggestion-bar-contents",
1213
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1214
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1215
- type: require_types.WidgetType.SuggestionBarV2,
1216
- variant: "darkPrimary",
1217
- hoverVariant: "secondaryDark",
1218
- animationSpeed: "none",
1219
- buttonBorderRadius: "md",
1220
- boldFirstButton: true,
1221
- buttonTexts: { default: [
1222
- "Are these true to size?",
1223
- "What size should I get?",
1224
- "How does it feel?",
1225
- "Do they stretch out over time?",
1226
- "What's the fit/style?"
1227
- ] }
1228
- },
1229
- topSuggestionsBarShorts: {
1230
- widgetConfigId: "topSuggestionsBarShorts",
1231
- contentId: "spiffy-top-suggestion-bar-contents",
1232
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1233
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1234
- type: require_types.WidgetType.SuggestionBarV2,
1235
- variant: "secondary",
1236
- hoverVariant: "secondaryDark",
1237
- animationSpeed: "none",
1238
- buttonBorderRadius: "md",
1239
- boldFirstButton: true,
1240
- buttonTexts: { default: [
1241
- "How far down does it go?",
1242
- "Are these true to size?",
1243
- "What size should I get?",
1244
- "How does it feel?",
1245
- "Do they stretch out over time?",
1246
- "What's the fit/style?"
1247
- ] }
1248
- },
1249
- bottomSuggestionsBarShorts: {
1250
- widgetConfigId: "bottomSuggestionsBarShorts",
1251
- contentId: "spiffy-top-suggestion-bar-contents",
1252
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1253
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1254
- type: require_types.WidgetType.SuggestionBarV2,
1255
- variant: "darkPrimary",
1256
- hoverVariant: "secondaryDark",
1257
- animationSpeed: "none",
1258
- buttonBorderRadius: "md",
1259
- boldFirstButton: true,
1260
- buttonTexts: { default: [
1261
- "How far down does it go?",
1262
- "Are these true to size?",
1263
- "What size should I get?",
1264
- "How does it feel?",
1265
- "Do they stretch out over time?",
1266
- "What's the fit/style?"
1267
- ] }
1268
- },
1269
- topSuggestionsBarAccessories: {
1270
- widgetConfigId: "topSuggestionsBarAccessories",
1271
- contentId: "spiffy-top-suggestion-bar-contents",
1272
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1273
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1274
- type: require_types.WidgetType.SuggestionBarV2,
1275
- variant: "secondary",
1276
- hoverVariant: "secondaryDark",
1277
- animationSpeed: "none",
1278
- buttonBorderRadius: "md",
1279
- boldFirstButton: true,
1280
- buttonTexts: { default: [
1281
- "How does it enhance my outfit?",
1282
- "Is it good for everyday use?",
1283
- "Is it water resistant?",
1284
- "Is it carry-on size?"
1285
- ] }
1286
- },
1287
- bottomSuggestionsBarAccessories: {
1288
- widgetConfigId: "bottomSuggestionsBarAccessories",
1289
- contentId: "spiffy-top-suggestion-bar-contents",
1290
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1291
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1292
- type: require_types.WidgetType.SuggestionBarV2,
1293
- variant: "darkPrimary",
1294
- hoverVariant: "secondaryDark",
1295
- animationSpeed: "none",
1296
- buttonBorderRadius: "md",
1297
- boldFirstButton: true,
1298
- buttonTexts: { default: [
1299
- "How does it enhance my outfit?",
1300
- "Is it good for everyday use?",
1301
- "Is it water resistant?",
1302
- "Is it carry-on size?"
1303
- ] }
1304
- },
1305
- topSuggestionsBarFootwear: {
1306
- widgetConfigId: "topSuggestionsBar",
1307
- contentId: "spiffy-top-suggestion-bar-contents",
1308
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1309
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1310
- type: require_types.WidgetType.SuggestionBarV2,
1311
- variant: "secondary",
1312
- hoverVariant: "secondaryDark",
1313
- animationSpeed: "none",
1314
- buttonBorderRadius: "md",
1315
- boldFirstButton: true,
1316
- buttonTexts: { default: ["What size should I choose?", "Are they good for everyday wear?"] }
1317
- },
1318
- bottomSuggestionsBarFootwear: {
1319
- widgetConfigId: "bottomSuggestionsBarFootwear",
1320
- contentId: "spiffy-top-suggestion-bar-contents",
1321
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1322
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1323
- type: require_types.WidgetType.SuggestionBarV2,
1324
- variant: "darkPrimary",
1325
- hoverVariant: "secondaryDark",
1326
- animationSpeed: "none",
1327
- buttonBorderRadius: "md",
1328
- boldFirstButton: true,
1329
- buttonTexts: { default: [
1330
- "What size should I choose?",
1331
- "Are they good for everyday wear?",
1332
- "How do they fit?",
1333
- "What material are they made of?"
1334
- ] }
1335
- },
1336
- topSuggestionsBarOuterwearWithReviews: {
1337
- widgetConfigId: "topSuggestionsBarOuterwearWithReviews",
1338
- contentId: "spiffy-top-suggestion-bar-contents",
1339
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1340
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1341
- type: require_types.WidgetType.SuggestionBarV2,
1342
- variant: "secondary",
1343
- hoverVariant: "secondaryDark",
1344
- animationSpeed: "none",
1345
- buttonBorderRadius: "md",
1346
- boldFirstButton: true,
1347
- buttonTexts: { default: [
1348
- "Summarize the reviews.",
1349
- "How insulated is this jacket?",
1350
- "What material is it made of?",
1351
- "Can I layer this over a hoodie?",
1352
- "Does the material stretch?",
1353
- "Does it run small?"
1354
- ] }
1355
- },
1356
- bottomSuggestionsBarOuterwearWithReviews: {
1357
- widgetConfigId: "bottomSuggestionsBarOuterwearWithReviews",
1358
- contentId: "spiffy-bottom-suggestion-bar-contents",
1359
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1360
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1361
- type: require_types.WidgetType.SuggestionBarV2,
1362
- variant: "darkPrimary",
1363
- hoverVariant: "secondaryDark",
1364
- animationSpeed: "none",
1365
- buttonBorderRadius: "md",
1366
- boldFirstButton: true,
1367
- buttonTexts: { default: [
1368
- "Summarize the reviews.",
1369
- "How insulated is this jacket?",
1370
- "What material is it made of?",
1371
- "Can I layer this over a hoodie?",
1372
- "Does the material stretch?",
1373
- "Does it run small?"
1374
- ] }
1375
- },
1376
- topSuggestionsBarTshirtsWithReviews: {
1377
- widgetConfigId: "topSuggestionsBarTshirtsWithReviews",
1378
- contentId: "spiffy-top-suggestion-bar-contents",
1379
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1380
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1381
- type: require_types.WidgetType.SuggestionBarV2,
1382
- variant: "secondary",
1383
- hoverVariant: "secondaryDark",
1384
- animationSpeed: "none",
1385
- buttonBorderRadius: "md",
1386
- boldFirstButton: true,
1387
- buttonTexts: { default: [
1388
- "Summarize the reviews.",
1389
- "How does it fit?",
1390
- "What material is it made of?",
1391
- "Does it shrink in the wash?",
1392
- "Is it true to size?",
1393
- "What colors does it come in?"
1394
- ] }
1395
- },
1396
- bottomSuggestionsBarTshirtsWithReviews: {
1397
- widgetConfigId: "bottomSuggestionsBarTshirtsWithReviews",
1398
- contentId: "spiffy-bottom-suggestion-bar-contents",
1399
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1400
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1401
- type: require_types.WidgetType.SuggestionBarV2,
1402
- variant: "darkPrimary",
1403
- hoverVariant: "secondaryDark",
1404
- animationSpeed: "none",
1405
- buttonBorderRadius: "md",
1406
- boldFirstButton: true,
1407
- buttonTexts: { default: [
1408
- "Summarize the reviews.",
1409
- "How does it fit?",
1410
- "What material is it made of?",
1411
- "Does it shrink in the wash?",
1412
- "Is it true to size?",
1413
- "What colors does it come in?"
1414
- ] }
1415
- },
1416
- topSuggestionsBarSweatshirtsWithReviews: {
1417
- widgetConfigId: "topSuggestionsBarSweatshirtsWithReviews",
1418
- contentId: "spiffy-top-suggestion-bar-contents",
1419
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1420
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1421
- type: require_types.WidgetType.SuggestionBarV2,
1422
- variant: "secondary",
1423
- hoverVariant: "secondaryDark",
1424
- animationSpeed: "none",
1425
- buttonBorderRadius: "md",
1426
- boldFirstButton: true,
1427
- buttonTexts: { default: [
1428
- "Summarize the reviews.",
1429
- "How does it fit?",
1430
- "How does it feel?",
1431
- "What's the style?",
1432
- "Does it pair with sweatpants?",
1433
- "Is it warm enough for winter?"
1434
- ] }
1435
- },
1436
- bottomSuggestionsBarSweatshirtsWithReviews: {
1437
- widgetConfigId: "bottomSuggestionsBarSweatshirtsWithReviews",
1438
- contentId: "spiffy-bottom-suggestion-bar-contents",
1439
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1440
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1441
- type: require_types.WidgetType.SuggestionBarV2,
1442
- variant: "darkPrimary",
1443
- hoverVariant: "secondaryDark",
1444
- animationSpeed: "none",
1445
- buttonBorderRadius: "md",
1446
- boldFirstButton: true,
1447
- buttonTexts: { default: [
1448
- "Summarize the reviews.",
1449
- "How does it fit?",
1450
- "How does it feel?",
1451
- "What's the style?",
1452
- "Does it pair with sweatpants?",
1453
- "Is it warm enough for winter?"
1454
- ] }
1455
- },
1456
- topSuggestionsBarSweatpantsWithReviews: {
1457
- widgetConfigId: "topSuggestionsBarSweatpantsWithReviews",
1458
- contentId: "spiffy-top-suggestion-bar-contents",
1459
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1460
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1461
- type: require_types.WidgetType.SuggestionBarV2,
1462
- variant: "secondary",
1463
- hoverVariant: "secondaryDark",
1464
- animationSpeed: "none",
1465
- buttonBorderRadius: "md",
1466
- boldFirstButton: true,
1467
- buttonTexts: { default: [
1468
- "Summarize the reviews.",
1469
- "How does it fit?",
1470
- "How does it feel?",
1471
- "What's the style?",
1472
- "Does it pair with sweatshirts?",
1473
- "Are they true to size?"
1474
- ] }
1475
- },
1476
- bottomSuggestionsBarSweatpantsWithReviews: {
1477
- widgetConfigId: "bottomSuggestionsBarSweatpantsWithReviews",
1478
- contentId: "spiffy-bottom-suggestion-bar-contents",
1479
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1480
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1481
- type: require_types.WidgetType.SuggestionBarV2,
1482
- variant: "darkPrimary",
1483
- hoverVariant: "secondaryDark",
1484
- animationSpeed: "none",
1485
- buttonBorderRadius: "md",
1486
- boldFirstButton: true,
1487
- buttonTexts: { default: [
1488
- "Summarize the reviews.",
1489
- "How does it fit?",
1490
- "How does it feel?",
1491
- "What's the style?",
1492
- "Does it pair with sweatshirts?",
1493
- "Are they true to size?"
1494
- ] }
1495
- },
1496
- topSuggestionsBarDenimWithReviews: {
1497
- widgetConfigId: "topSuggestionsBarDenimWithReviews",
1498
- contentId: "spiffy-top-suggestion-bar-contents",
1499
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1500
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1501
- type: require_types.WidgetType.SuggestionBarV2,
1502
- variant: "secondary",
1503
- hoverVariant: "secondaryDark",
1504
- animationSpeed: "none",
1505
- buttonBorderRadius: "md",
1506
- boldFirstButton: true,
1507
- buttonTexts: { default: [
1508
- "Summarize the reviews.",
1509
- "How do they fit?",
1510
- "What size should I get?",
1511
- "What's the rise?",
1512
- "What's the material?",
1513
- "Do they stretch?"
1514
- ] }
1515
- },
1516
- bottomSuggestionsBarDenimWithReviews: {
1517
- widgetConfigId: "bottomSuggestionsBarDenimWithReviews",
1518
- contentId: "spiffy-bottom-suggestion-bar-contents",
1519
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1520
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1521
- type: require_types.WidgetType.SuggestionBarV2,
1522
- variant: "darkPrimary",
1523
- hoverVariant: "secondaryDark",
1524
- animationSpeed: "none",
1525
- buttonBorderRadius: "md",
1526
- boldFirstButton: true,
1527
- buttonTexts: { default: [
1528
- "Summarize the reviews.",
1529
- "How do they fit?",
1530
- "What size should I get?",
1531
- "What's the rise?",
1532
- "What's the material?",
1533
- "Do they stretch?"
1534
- ] }
1535
- },
1536
- topSuggestionsBarTwillFleeceWithReviews: {
1537
- widgetConfigId: "topSuggestionsBarTwillFleeceWithReviews",
1538
- contentId: "spiffy-top-suggestion-bar-contents",
1539
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1540
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1541
- type: require_types.WidgetType.SuggestionBarV2,
1542
- variant: "secondary",
1543
- hoverVariant: "secondaryDark",
1544
- animationSpeed: "none",
1545
- buttonBorderRadius: "md",
1546
- boldFirstButton: true,
1547
- buttonTexts: { default: [
1548
- "Summarize the reviews.",
1549
- "Are these true to size?",
1550
- "What size should I get?",
1551
- "How does it feel?",
1552
- "Do they stretch out over time?",
1553
- "What's the fit/style?"
1554
- ] }
1555
- },
1556
- bottomSuggestionsBarTwillFleeceWithReviews: {
1557
- widgetConfigId: "bottomSuggestionsBarTwillFleeceWithReviews",
1558
- contentId: "spiffy-bottom-suggestion-bar-contents",
1559
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1560
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1561
- type: require_types.WidgetType.SuggestionBarV2,
1562
- variant: "darkPrimary",
1563
- hoverVariant: "secondaryDark",
1564
- animationSpeed: "none",
1565
- buttonBorderRadius: "md",
1566
- boldFirstButton: true,
1567
- buttonTexts: { default: [
1568
- "Summarize the reviews.",
1569
- "Are these true to size?",
1570
- "What size should I get?",
1571
- "How does it feel?",
1572
- "Do they stretch out over time?",
1573
- "What's the fit/style?"
1574
- ] }
1575
- },
1576
- topSuggestionsBarShortsWithReviews: {
1577
- widgetConfigId: "topSuggestionsBarShortsWithReviews",
1578
- contentId: "spiffy-top-suggestion-bar-contents",
1579
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1580
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1581
- type: require_types.WidgetType.SuggestionBarV2,
1582
- variant: "secondary",
1583
- hoverVariant: "secondaryDark",
1584
- animationSpeed: "none",
1585
- buttonBorderRadius: "md",
1586
- boldFirstButton: true,
1587
- buttonTexts: { default: [
1588
- "Summarize the reviews.",
1589
- "How far down does it go?",
1590
- "Are these true to size?",
1591
- "What size should I get?",
1592
- "How does it feel?",
1593
- "Do they stretch out over time?",
1594
- "What's the fit/style?"
1595
- ] }
1596
- },
1597
- bottomSuggestionsBarShortsWithReviews: {
1598
- widgetConfigId: "bottomSuggestionsBarShortsWithReviews",
1599
- contentId: "spiffy-bottom-suggestion-bar-contents",
1600
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1601
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1602
- type: require_types.WidgetType.SuggestionBarV2,
1603
- variant: "darkPrimary",
1604
- hoverVariant: "secondaryDark",
1605
- animationSpeed: "none",
1606
- buttonBorderRadius: "md",
1607
- boldFirstButton: true,
1608
- buttonTexts: { default: [
1609
- "Summarize the reviews.",
1610
- "How far down does it go?",
1611
- "Are these true to size?",
1612
- "What size should I get?",
1613
- "How does it feel?",
1614
- "Do they stretch out over time?",
1615
- "What's the fit/style?"
1616
- ] }
1617
- },
1618
- topSuggestionsBarAccessoriesWithReviews: {
1619
- widgetConfigId: "topSuggestionsBarAccessoriesWithReviews",
1620
- contentId: "spiffy-top-suggestion-bar-contents",
1621
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1622
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1623
- type: require_types.WidgetType.SuggestionBarV2,
1624
- variant: "secondary",
1625
- hoverVariant: "secondaryDark",
1626
- animationSpeed: "none",
1627
- buttonBorderRadius: "md",
1628
- boldFirstButton: true,
1629
- buttonTexts: { default: [
1630
- "Summarize the reviews.",
1631
- "How does it enhance my outfit?",
1632
- "Is it good for everyday use?",
1633
- "Is it water resistant?",
1634
- "Is it carry-on size?"
1635
- ] }
1636
- },
1637
- bottomSuggestionsBarAccessoriesWithReviews: {
1638
- widgetConfigId: "bottomSuggestionsBarAccessoriesWithReviews",
1639
- contentId: "spiffy-bottom-suggestion-bar-contents",
1640
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1641
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1642
- type: require_types.WidgetType.SuggestionBarV2,
1643
- variant: "darkPrimary",
1644
- hoverVariant: "secondaryDark",
1645
- animationSpeed: "none",
1646
- buttonBorderRadius: "md",
1647
- boldFirstButton: true,
1648
- buttonTexts: { default: [
1649
- "Summarize the reviews.",
1650
- "How does it enhance my outfit?",
1651
- "Is it good for everyday use?",
1652
- "Is it water resistant?",
1653
- "Is it carry-on size?"
1654
- ] }
1655
- },
1656
- topSuggestionsBarFootwearWithReviews: {
1657
- widgetConfigId: "topSuggestionsBarFootwearWithReviews",
1658
- contentId: "spiffy-top-suggestion-bar-contents",
1659
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1660
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1661
- type: require_types.WidgetType.SuggestionBarV2,
1662
- variant: "secondary",
1663
- hoverVariant: "secondaryDark",
1664
- animationSpeed: "none",
1665
- buttonBorderRadius: "md",
1666
- boldFirstButton: true,
1667
- buttonTexts: { default: [
1668
- "Summarize the reviews.",
1669
- "What size should I choose?",
1670
- "Are they good for everyday wear?",
1671
- "How do they fit?",
1672
- "What material are they made of?"
1673
- ] }
1674
- },
1675
- bottomSuggestionsBarFootwearWithReviews: {
1676
- widgetConfigId: "bottomSuggestionsBarFootwearWithReviews",
1677
- contentId: "spiffy-bottom-suggestion-bar-contents",
1678
- metricDisplayLocation: require_contexts.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1679
- location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1680
- type: require_types.WidgetType.SuggestionBarV2,
1681
- variant: "darkPrimary",
1682
- hoverVariant: "secondaryDark",
1683
- animationSpeed: "none",
1684
- buttonBorderRadius: "md",
1685
- boldFirstButton: true,
1686
- buttonTexts: { default: [
1687
- "Summarize the reviews.",
1688
- "What size should I choose?",
1689
- "Are they good for everyday wear?",
1690
- "How do they fit?",
1691
- "What material are they made of?"
1692
- ] }
1693
- }
1694
- },
1695
- mountingConfigs: {
1696
- searchIconEntryPoint: {
1697
- mountingConfigId: "searchIconEntryPoint",
1698
- containerId: require_divIds.GLOBAL_SEARCH_ENTRYPOINT_ID,
1699
- testId: require_embedded.GLOBAL_SEARCH_ENTRYPOINT_TESTID,
1700
- insertionPoint: {
1701
- selector: ".header__secondary-nav a[href=\"/search\"]",
1702
- insertionType: require_contexts.DOMInsertionType.BEFORE
1703
- },
1704
- suppressionSelector: "a[href=\"/search\"]",
1705
- className: "global-entry-desktop"
1706
- },
1707
- searchOverlayHost: {
1708
- mountingConfigId: "searchOverlayHost",
1709
- containerId: require_divIds.SEARCH_OVERLAY_ENTRYPOINT_ID,
1710
- testId: require_embedded.SEARCH_OVERLAY_HOST_TESTID,
1711
- insertionPoint: {
1712
- selector: "body",
1713
- insertionType: require_contexts.DOMInsertionType.APPEND_CHILD
1714
- },
1715
- className: "spiffy-overlay-host"
1716
- },
1717
- searchResultsEntryPointPLP: {
1718
- mountingConfigId: "searchResultsEntryPointPLP",
1719
- containerId: require_divIds.SEARCH_RESULTS_ENTRYPOINT_ID,
1720
- testId: require_embedded.SEARCH_RESULTS_ENTRYPOINT_TESTID,
1721
- insertionPoint: {
1722
- selector: "#main",
1723
- insertionType: require_contexts.DOMInsertionType.BEFORE
1724
- },
1725
- className: "search-results-entry-point",
1726
- style: { marginBottom: "60px" }
1727
- },
1728
- chatPreviewPLP: {
1729
- mountingConfigId: "chatPreviewPLP",
1730
- containerId: require_divIds.CHAT_PREVIEW_CONTAINER_ID,
1731
- testId: require_embedded.CHAT_PREVIEW_TESTID,
1732
- insertionPoint: {
1733
- selector: ".product-list",
1734
- insertionType: require_contexts.DOMInsertionType.AFTER
1735
- },
1736
- gridInsertionType: require_contexts.GridInsertionType.FIXED_8,
1737
- className: "is-plp",
1738
- style: {
1739
- gridRow: "3 / 3",
1740
- gridColumn: "1 / -1"
1741
- }
1742
- },
1743
- chatPreviewPDP: {
1744
- mountingConfigId: "chatPreviewPDP",
1745
- containerId: require_divIds.CHAT_PREVIEW_CONTAINER_ID,
1746
- testId: require_embedded.CHAT_PREVIEW_TESTID,
1747
- insertionPoint: {
1748
- selector: "div[data-block-type=\"description\"].product-info__block-item",
1749
- insertionType: require_contexts.DOMInsertionType.BEFORE
1750
- }
1751
- },
1752
- topSuggestionBarPDP: {
1753
- mountingConfigId: "topSuggestionBarPDP",
1754
- containerId: require_divIds.TOP_SUGGESTION_BAR_PDP_ID,
1755
- testId: require_embedded.TOP_SUGGESTION_BAR_TESTID,
1756
- insertionPoint: {
1757
- selector: "div[data-block-type=\"price\"].product-info__block-item",
1758
- insertionType: require_contexts.DOMInsertionType.AFTER
1759
- },
1760
- style: { marginTop: "15px" }
1761
- },
1762
- bottomSuggestionBarPDP: {
1763
- mountingConfigId: "bottomSuggestionBarPDP",
1764
- containerId: require_divIds.BOTTOM_REVIEWS_BAR_ID,
1765
- testId: require_embedded.BOTTOM_SUGGESTION_BAR_TESTID,
1766
- insertionPoint: {
1767
- selector: ".oke-w-header",
1768
- insertionType: require_contexts.DOMInsertionType.AFTER
1769
- },
1770
- style: { marginBottom: "15px" }
1771
- }
1772
- }
1773
- });
1774
- const jordanCraigOrgInfo = {
1775
- shortName: require_types.OrgShortName.JordanCraig,
1776
- name: "Jordan Craig",
1777
- domain: "jordancraig.com",
1778
- defaultProductId: "scallop-t-shirt",
1779
- alwaysEnabledMerchants: false,
1780
- orgUIConfig: jordanCraigOrgUIConfig,
1781
- orgColors: () => jordanCraigColors,
1782
- orgPageConfig: jordanCraigPageConfig
1783
- };
1784
-
1785
- //#endregion
1786
- exports.jordanCraigOrgInfo = jordanCraigOrgInfo;
1787
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9yZGFuQ3JhaWctRHY4cFZDaVMuY2pzIiwibmFtZXMiOlsiam9yZGFuQ3JhaWdDb2xvcnM6IENvbG9yTWFwcGluZyIsIkNvbG9yTmFtZXMiLCJkZWZhdWx0T3JnVUlDb25maWciLCJPcmdTaG9ydE5hbWUiLCJDZG5TZXJ2aWNlIiwiY29sb3JWYXIiLCJQYWdlVmFyaWFudFRlc3RUeXBlIiwiRmVhdHVyZUdhdGVzIiwiV2lkZ2V0VHlwZSIsIkNoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uIiwiU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcyIsIkdMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9JRCIsIkdMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9URVNUSUQiLCJET01JbnNlcnRpb25UeXBlIiwiU0VBUkNIX09WRVJMQVlfRU5UUllQT0lOVF9JRCIsIlNFQVJDSF9PVkVSTEFZX0hPU1RfVEVTVElEIiwiU0VBUkNIX1JFU1VMVFNfRU5UUllQT0lOVF9JRCIsIlNFQVJDSF9SRVNVTFRTX0VOVFJZUE9JTlRfVEVTVElEIiwiQ0hBVF9QUkVWSUVXX0NPTlRBSU5FUl9JRCIsIkNIQVRfUFJFVklFV19URVNUSUQiLCJHcmlkSW5zZXJ0aW9uVHlwZSIsIlRPUF9TVUdHRVNUSU9OX0JBUl9QRFBfSUQiLCJUT1BfU1VHR0VTVElPTl9CQVJfVEVTVElEIiwiQk9UVE9NX1JFVklFV1NfQkFSX0lEIiwiQk9UVE9NX1NVR0dFU1RJT05fQkFSX1RFU1RJRCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJjaGFudHMvam9yZGFuQ3JhaWcvam9yZGFuQ3JhaWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ0hBVF9QUkVWSUVXX1RFU1RJRCxcbiAgVE9QX1NVR0dFU1RJT05fQkFSX1RFU1RJRCxcbiAgQk9UVE9NX1NVR0dFU1RJT05fQkFSX1RFU1RJRCxcbiAgR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX1RFU1RJRCxcbiAgU0VBUkNIX1JFU1VMVFNfRU5UUllQT0lOVF9URVNUSUQsXG4gIFNFQVJDSF9PVkVSTEFZX0hPU1RfVEVTVElELFxufSBmcm9tIFwic3JjL2NvbmZpZy9sb2NhdG9yc1wiO1xuaW1wb3J0IHtcbiAgT3JnU2hvcnROYW1lLFxuICBCYXNpY09yZ0luZm9UeXBlLFxuICBGZWF0dXJlR2F0ZXMsXG59IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzXCI7XG5pbXBvcnQgeyBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbiB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uXCI7XG5pbXBvcnQgeyBDZG5TZXJ2aWNlIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2NkblNlcnZpY2VcIjtcbmltcG9ydCB7IEdyaWRJbnNlcnRpb25UeXBlIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9zZXJ2aWNlL2RvbU11dGF0aW9ucy9HcmlkSW5zZXJ0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgRE9NSW5zZXJ0aW9uVHlwZSB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vc2VydmljZS9kb21NdXRhdGlvbnMvZG9tSW5zZXJ0aW9uU2VydmljZVwiO1xuaW1wb3J0IHtcbiAgQ0hBVF9QUkVWSUVXX0NPTlRBSU5FUl9JRCxcbiAgVE9QX1NVR0dFU1RJT05fQkFSX1BEUF9JRCxcbiAgQk9UVE9NX1JFVklFV1NfQkFSX0lELFxuICBHTE9CQUxfU0VBUkNIX0VOVFJZUE9JTlRfSUQsXG4gIFNFQVJDSF9SRVNVTFRTX0VOVFJZUE9JTlRfSUQsXG4gIFNFQVJDSF9PVkVSTEFZX0VOVFJZUE9JTlRfSUQsXG59IGZyb20gXCJzcmMvY29uZmlnL2Rpdklkc1wiO1xuaW1wb3J0IHsgU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcyB9IGZyb20gXCJzcmMvdHlwZXMvc3VnZ2VzdGlvbkJhclYyLXR5cGVzXCI7XG5pbXBvcnQgeyBkZWZhdWx0T3JnVUlDb25maWcgfSBmcm9tIFwic3JjL21lcmNoYW50cy9kZWZhdWx0XCI7XG5pbXBvcnQge1xuICBDaGF0UHJldmlld1dpZGdldENvbmZpZyxcbiAgQ29sb3JNYXBwaW5nLFxuICBDb2xvck5hbWVzLFxuICBjb2xvclZhcixcbiAgT3JnUGFnZUNvbmZpZyxcbiAgT3JnVUlDb25maWcsXG4gIFBhZ2VWYXJpYW50VGVzdFR5cGUsXG4gIFNlYXJjaEVudHJ5UG9pbnRXaWRnZXRDb25maWcsXG4gIFNlYXJjaE92ZXJsYXlIb3N0V2lkZ2V0Q29uZmlnLFxuICBTZWFyY2hSZXN1bHRzRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICBXaWRnZXRUeXBlLFxufSBmcm9tIFwic3JjL2NvbnRleHRzL3R5cGVzXCI7XG5cbmNvbnN0IGpvcmRhbkNyYWlnQ29sb3JzOiBDb2xvck1hcHBpbmcgPSB7XG4gIFtDb2xvck5hbWVzLlRleHRQcmltYXJ5XTogXCIjMUMxQzFDXCIsXG4gIFtDb2xvck5hbWVzLlRleHRTZWNvbmRhcnldOiBcIiM3Njc2NzZcIixcbiAgW0NvbG9yTmFtZXMuVGV4dEFjY2VudF06IFwiIzc2NzY3NlwiLFxuICBbQ29sb3JOYW1lcy5UZXh0TGlua106IFwiIzFDMUMxQ1wiLFxuICBbQ29sb3JOYW1lcy5UZXh0TGlnaHRdOiBcIiNGRkZGRkZcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZFByaW1hcnldOiBcIiMxQzFDMUNcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZFNlY29uZGFyeV06IFwiI0Y2RjZGNlwiLFxuICBbQ29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5RGFya106IFwiI0UwRTBFMFwiLFxuICBbQ29sb3JOYW1lcy5CYWNrZ3JvdW5kVGVydGlhcnldOiBcIiNERERERERcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZERhcmtdOiBcIiMxQzFDMUNcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZExpZ2h0XTogXCIjRkZGRkZGXCIsXG4gIFtDb2xvck5hbWVzLkJhY2tncm91bmRTYXR1cmF0ZWRdOiBcIiNFMEUwRTBcIixcbiAgW0NvbG9yTmFtZXMuQm9yZGVyTGlnaHRdOiBcIiNERERERERcIixcbiAgW0NvbG9yTmFtZXMuQm9yZGVyTWVkaXVtXTogXCIjOTQ5NTk2XCIsXG4gIFtDb2xvck5hbWVzLkJvcmRlckRhcmtdOiBcIiMxQzFDMUNcIixcbiAgW0NvbG9yTmFtZXMuQm9yZGVyT3V0bGluZV06IFwiIzFDMUMxQ1wiLFxuICBbQ29sb3JOYW1lcy5BY2NlbnRQcmltYXJ5XTogXCIjQUIxMjEyXCIsXG4gIFtDb2xvck5hbWVzLkFjY2VudFNlY29uZGFyeV06IFwiI0M2OTg0NlwiLFxufTtcblxuY29uc3Qgam9yZGFuQ3JhaWdPcmdVSUNvbmZpZyA9ICgpOiBPcmdVSUNvbmZpZyA9PiB7XG4gIGNvbnN0IGRlZmF1bHRKb3JkYW5DcmFpZ09yZ0NvbmZpZyA9IGRlZmF1bHRPcmdVSUNvbmZpZyhcbiAgICBPcmdTaG9ydE5hbWUuSm9yZGFuQ3JhaWdcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIC4uLmRlZmF1bHRKb3JkYW5DcmFpZ09yZ0NvbmZpZyxcbiAgICBtZXJjaGFudFZhcmlhbnRTZXR0aW5nczoge1xuICAgICAgZHluYW1pY1ZhcmlhbnRzOiB7XG4gICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICByZWZyZXNoSW50ZXJ2YWw6IDQwMCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzZWFyY2hDb25maWc6IHtcbiAgICAgIGVuYWJsZUdsb2JhbFNlYXJjaDogdHJ1ZSxcbiAgICAgIHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybDpcbiAgICAgICAgXCJodHRwczovL2pvcmRhbmNyYWlnLmNvbS9jb2xsZWN0aW9ucy9iZXN0LXNlbGxlcnMtbWVuXCIsXG4gICAgICBzZWFyY2hGaWx0ZXJDb25maWc6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcklkOiBcInByaWNlXCIsXG4gICAgICAgICAgZGlzcGxheU5hbWU6IFwiUHJpY2VcIixcbiAgICAgICAgICB0eXBlOiBcInByaWNlXCIsXG4gICAgICAgICAgYnVja2V0U2l6ZTogNTAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWx0ZXJJZDogXCJzaXplXCIsXG4gICAgICAgICAgZGlzcGxheU5hbWU6IFwiU2l6ZVwiLFxuICAgICAgICAgIGF0dHJpYnV0ZTogXCJzaXplXCIsXG4gICAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgICAgc29ydGluZzoge1xuICAgICAgICAgICAgdHlwZTogXCJwcm9kdWN0Q291bnRcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVySWQ6IFwiY29sb3JcIixcbiAgICAgICAgICBkaXNwbGF5TmFtZTogXCJDb2xvclwiLFxuICAgICAgICAgIGF0dHJpYnV0ZTogXCJjb2xvclwiLFxuICAgICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgICAgIHNvcnRpbmc6IHtcbiAgICAgICAgICAgIHR5cGU6IFwicHJvZHVjdENvdW50XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcklkOiBcInR5cGVcIixcbiAgICAgICAgICBkaXNwbGF5TmFtZTogXCJUeXBlXCIsXG4gICAgICAgICAgYXR0cmlidXRlOiBcInR5cGVcIixcbiAgICAgICAgICB0eXBlOiBcImR5bmFtaWNcIixcbiAgICAgICAgICBzb3J0aW5nOiB7XG4gICAgICAgICAgICB0eXBlOiBcInByb2R1Y3RDb3VudFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWx0ZXJJZDogXCJkeW5hbWljXCIsXG4gICAgICAgICAgZGlzcGxheU5hbWU6IFwiXCIsXG4gICAgICAgICAgdHlwZTogXCJkeW5hbWljXCIsXG4gICAgICAgICAgYXR0cmlidXRlOiBcImR5bmFtaWNcIixcbiAgICAgICAgICBzb3J0aW5nOiB7XG4gICAgICAgICAgICB0eXBlOiBcInByb2R1Y3RDb3VudFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgY2hhdE1lc3NhZ2VDb25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRKb3JkYW5DcmFpZ09yZ0NvbmZpZy5jaGF0TWVzc2FnZUNvbmZpZyxcbiAgICAgIGFzc2lzdGFudENoYXRUaXRsZTogXCJKb3JkYW4gQ3JhaWcgQUlcIixcbiAgICAgIHZhcmlhbnQ6IFwic3RhbmRhcmRcIixcbiAgICAgIHByb2R1Y3RMaW5rOiB7XG4gICAgICAgIC4uLmRlZmF1bHRKb3JkYW5DcmFpZ09yZ0NvbmZpZy5jaGF0TWVzc2FnZUNvbmZpZy5wcm9kdWN0TGluayxcbiAgICAgICAgaWNvblZhcmlhbnQ6IFwiYmFja2dyb3VuZFNhdHVyYXRlZFwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNoYXRIZWFkZXI6IHtcbiAgICAgIC4uLmRlZmF1bHRKb3JkYW5DcmFpZ09yZ0NvbmZpZy5jaGF0SGVhZGVyLFxuICAgICAgaW1hZ2VTcmM6IENkblNlcnZpY2UuZ2V0QXNzZXRVUkwoXG4gICAgICAgIFwiam9yZGFuY3JhaWctd2hpdGUucG5nXCIsXG4gICAgICAgIE9yZ1Nob3J0TmFtZS5Kb3JkYW5DcmFpZ1xuICAgICAgKSxcbiAgICB9LFxuICAgIGNoYXRQcmV2aWV3Q29uZmlnOiB7XG4gICAgICAuLi5kZWZhdWx0Sm9yZGFuQ3JhaWdPcmdDb25maWcuY2hhdFByZXZpZXdDb25maWchLFxuICAgICAgaWNvbkZpbGxDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5BY2NlbnRQcmltYXJ5KSxcbiAgICAgIGJ1dHRvbkJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kRGFyayksXG4gICAgICBidXR0b25UZXh0SG92ZXJDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5UZXh0UHJpbWFyeSksXG4gICAgICBidXR0b25CYWNrZ3JvdW5kSG92ZXJDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5RGFyayksXG4gICAgICB0b3BNYXJnaW46IDEwLFxuICAgICAgY29waWVzOiB7XG4gICAgICAgIHBscDogW1xuICAgICAgICAgIFwid2hhdCdzIG5ldyBpbiBzdHlsZT9cIixcbiAgICAgICAgICBcInRoZSByaWdodCBwYWlyIG9mIGplYW5zIGZvciBldmVyeSBkYXk/XCIsXG4gICAgICAgICAgXCJhIGphY2tldCB0byBlbGV2YXRlIHlvdXIgbG9vaz9cIixcbiAgICAgICAgICBcImEgdW5pcXVlIGdyYXBoaWMgcHJpbnQ/XCIsXG4gICAgICAgIF0sXG4gICAgICAgIHBkcDogW1xuICAgICAgICAgIFwiaWYgdGhpcyBpcyBoeXBvYWxsZXJnZW5pYz9cIixcbiAgICAgICAgICBcImlmIHRoaXMgaXMgYSBtZWFuaW5nZnVsIGdpZnQ/XCIsXG4gICAgICAgICAgXCJpZiBpdCBpcyB0aGUgcmlnaHQgc2l6ZSBmb3IgeW91P1wiLFxuICAgICAgICAgIFwiaWYgaXQncyBjcmFmdGVkIHdpdGggZHVyYWJsZSBtYXRlcmlhbHM/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgc3RhdGljU3VnZ2VzdGlvbkNvcGllczoge1xuICAgICAgICBwbHA6IFtcbiAgICAgICAgICBcInRoZSBjYXJlIGluc3RydWN0aW9ucz9cIixcbiAgICAgICAgICBcIndoYXQgaXQncyBtYWRlIG9mP1wiLFxuICAgICAgICAgIFwidGhlIHN0YW5kb3V0IGZlYXR1cmVzP1wiLFxuICAgICAgICAgIFwidGhlIHNpemUgZ3VpZGU/XCIsXG4gICAgICAgIF0sXG4gICAgICAgIHBkcDogW1xuICAgICAgICAgIFwiSXMgdGhpcyBhdmFpbGFibGUgaW4gb3RoZXIgY29sb3JzIG9yIHN0eWxlcz9cIixcbiAgICAgICAgICBcIkRvZXMgdGhpcyBzdHlsZSBtYXRjaCBhbnkgb3RoZXIgcGllY2VzP1wiLFxuICAgICAgICAgIFwiV2hhdCBpcyBteSByaWdodCBzaXplP1wiLFxuICAgICAgICAgIFwiV2hhdCBpcyB0aGlzIG1hZGUgb2Y/XCIsXG4gICAgICAgICAgXCJIb3cgZG8gSSBjYXJlIGZvciB0aGlzIHByb2R1Y3Q/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgaGVhZGVyQ29uZmlnOiB7XG4gICAgICAgIC4uLmRlZmF1bHRKb3JkYW5DcmFpZ09yZ0NvbmZpZy5jaGF0UHJldmlld0NvbmZpZyEuaGVhZGVyQ29uZmlnLFxuICAgICAgICBpbWFnZUhlaWdodDogMjQsXG4gICAgICAgIGltYWdlU3JjOiBDZG5TZXJ2aWNlLmdldEFzc2V0VVJMKFxuICAgICAgICAgIFwiam9yZGFuY3JhaWctYmxhY2sucG5nXCIsXG4gICAgICAgICAgT3JnU2hvcnROYW1lLkpvcmRhbkNyYWlnXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgZm9vdGVyQ29uZmlnOiB7XG4gICAgICAgIC4uLmRlZmF1bHRKb3JkYW5DcmFpZ09yZ0NvbmZpZy5jaGF0UHJldmlld0NvbmZpZyEuZm9vdGVyQ29uZmlnLFxuICAgICAgICByZXBseUJ1dHRvbkljb246IFwibWFnbmlmeWluZ0dsYXNzXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZmxvYXRpbmdFbnRyeXBvaW50Q29uZmlnOiB7XG4gICAgICAuLi5kZWZhdWx0Sm9yZGFuQ3JhaWdPcmdDb25maWcuZmxvYXRpbmdFbnRyeXBvaW50Q29uZmlnISxcbiAgICAgIHNob3dPcHRpb246IFwiYWx3YXlzXCIsXG4gICAgICBleHBhbmRlZENvbG9yOiBjb2xvclZhcihDb2xvck5hbWVzLkJvcmRlck91dGxpbmUpLFxuICAgICAgZXhwYW5zaW9uVGV4dDoge1xuICAgICAgICBwZHA6IFwiSXMgdGhpcyB5b3VyIG5leHQgZXNzZW50aWFsP1wiLFxuICAgICAgICBwbHA6IFwiUmVhZHkgdG8gZmluZCB5b3VyIHBlcmZlY3QgZml0P1wiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHByb2R1Y3RDYXJkQ29uZmlnOiB7XG4gICAgICAuLi5kZWZhdWx0Sm9yZGFuQ3JhaWdPcmdDb25maWcucHJvZHVjdENhcmRDb25maWchLFxuICAgIH0sXG4gICAgcHJvZHVjdFJldmlld0NvbmZpZzoge1xuICAgICAgLi4uZGVmYXVsdEpvcmRhbkNyYWlnT3JnQ29uZmlnLnByb2R1Y3RSZXZpZXdDb25maWchLFxuICAgICAgY29sb3JWYXJpYW50OiBcImJyYW5kXCIsXG4gICAgICB2ZXJpZmllZEJ1eWVyVGl0bGU6IFwiXCIsXG4gICAgICBpbmNlbnRpdml6ZWRSZXZpZXdGbGFnOiBmYWxzZSxcbiAgICB9LFxuICAgIHdlbGNvbWVTZWN0aW9uQ29uZmlnOiB7XG4gICAgICAuLi5kZWZhdWx0Sm9yZGFuQ3JhaWdPcmdDb25maWcud2VsY29tZVNlY3Rpb25Db25maWchLFxuICAgICAgdGl0bGU6IFwiV2VsY29tZSB0byBKb3JkYW4gQ3JhaWcgQUkhXCIsXG4gICAgICBzdWJ0aXRsZTpcbiAgICAgICAgXCJIZXkhIEknbSBoZXJlIHRvIG1ha2UgeW91ciBzaG9wcGluZyBleHBlcmllbmNlIGVmZm9ydGxlc3MuIEFzayBtZSBhbnl0aGluZ+KAlGZyb20gZmluZGluZyB5b3VyIHBlcmZlY3QgZml0IHRvIGRldGFpbHMgYWJvdXQgb3VyIGxhdGVzdCBzdHlsZXMuIExldCdzIGZpbmQgeW91ciBuZXh0IGVzc2VudGlhbC5cIixcbiAgICB9LFxuICAgIG1lcmNoYW50T3ZlcnJpZGVDc3M6IGBcbiAgICAgIC5zcGlmZnktc3Rhci1yYXRpbmctc3RhciB7XG4gICAgICAgIGZpbGw6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1wcm9kdWN0LXJldmlldy1oZWFkZXItcmV2aWV3ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LW1pbmktdmVyaWZpZWQtYnV5ZXItdGV4dCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLWJhY2tncm91bmQtc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1taW5pLXZlcmlmaWVkLWJ1eWVyLWljb24ge1xuICAgICAgICBmaWxsOiB2YXIoLS1zcGlmZnktY29sb3JzLWJhY2tncm91bmQtc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgXG4gICAgICAjc3BpZmZ5LWFpLWNoYXQtcHJldmlldy5pcy1wbHAge1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAoMiAqIHZhcigtLWNvbnRhaW5lci1ndXR0ZXIpKSk7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkge1xuICAgICAgICAgIG1heC13aWR0aDpjYWxjKDEwMHZ3IC0gMjBweClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnNwaWZmeS1wcm9kdWN0LWNhcmQtdGl0bGUgeyBcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWNoYWtyYS1mb250cy1oZWFkaW5nKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1saW5rKTtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktcHJvZHVjdC1jYXJkLXRleHQtY29sb3Ige1xuICAgICAgICBjb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LXNlY29uZGFyeSk7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LXByb2R1Y3QtY2FyZC1yYXRpbmctc3Rhci1jb2xvciB7XG4gICAgICAgIGZpbGw6IHZhcigtLXNwaWZmeS1jb2xvcnMtYmFja2dyb3VuZC1wcmltYXJ5KTtcbiAgICAgIH1cblxuICAgICAgLnNlYXJjaC1yZXN1bHRzLWVudHJ5LXBvaW50ICsgI21haW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIGAsXG4gIH07XG59O1xuXG5jb25zdCBqb3JkYW5DcmFpZ1BhZ2VDb25maWcgPSAoKTogT3JnUGFnZUNvbmZpZyA9PiAoe1xuICBwYWdlVmFyaWFudHM6IFtcbiAgICAvLyBTVEFSVDogR2xvYmFsIFNlYXJjaCBQYWdlIFZhcmlhbnRzIChNVVNUIEJFIEZJUlNUKVxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJzZWFyY2gtcmVzdWx0c1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGxwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc0dsb2JhbFNlYXJjaEVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5RdWVyeVBhcmFtLFxuICAgICAgICAgIHF1ZXJ5UGFyYW06IFwiZXNxXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcGxwSWRFeHRyYWN0b3I6IFwidXJsLXJlc29sdmVyLXBscC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoSWNvbkVudHJ5UG9pbnRcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hJY29uRW50cnlQb2ludFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInNlYXJjaE92ZXJsYXlIb3N0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQTFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoUmVzdWx0c0VudHJ5UG9pbnRQTFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hSZXN1bHRzRW50cnlQb2ludFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwbHAtd2l0aC1zZWFyY2hcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBscFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkZlYXR1cmVHYXRlLFxuICAgICAgICAgIGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMuSXNHbG9iYWxTZWFyY2hFbmFibGVkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBscElkRXh0cmFjdG9yOiBcInVybC1yZXNvbHZlci1wbHAtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInNlYXJjaEljb25FbnRyeVBvaW50XCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwic2VhcmNoSWNvbkVudHJ5UG9pbnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BMUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UExQXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBkcC13aXRoLXNlYXJjaFwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc0dsb2JhbFNlYXJjaEVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInVybC1yZXNvbHZlci1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJzZWFyY2hJY29uRW50cnlQb2ludFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInNlYXJjaEljb25FbnRyeVBvaW50XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInNlYXJjaE92ZXJsYXlIb3N0XCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwic2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcImhvbWUtd2l0aC1zZWFyY2hcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcImhvbWVwYWdlXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc0dsb2JhbFNlYXJjaEVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoSWNvbkVudHJ5UG9pbnRcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hJY29uRW50cnlQb2ludFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInNlYXJjaE92ZXJsYXlIb3N0XCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcIm90aGVyLXdpdGgtc2VhcmNoXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJvdGhlclwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlcixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkZlYXR1cmVHYXRlLFxuICAgICAgICAgIGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMuSXNHbG9iYWxTZWFyY2hFbmFibGVkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInNlYXJjaEljb25FbnRyeVBvaW50XCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwic2VhcmNoSWNvbkVudHJ5UG9pbnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIC8vIEVORDogR2xvYmFsIFNlYXJjaCBQYWdlIFZhcmlhbnRzXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBscFwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGxwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFt7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH1dLFxuICAgICAgcGxwSWRFeHRyYWN0b3I6IFwidXJsLXJlc29sdmVyLXBscC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQTFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BMUFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJvdXRlcndlYXJXaXRoUmV2aWV3c1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5IYXNSZXZpZXdzLCByZXZpZXdNaW5pbXVtOiA0IH0sXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1wib3V0ZXJ3ZWFyXCIsIFwiYmlnLW1lbnMtb3V0ZXJ3ZWFyXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJ1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyT3V0ZXJ3ZWFyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyT3V0ZXJ3ZWFyXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInRzaGlydHNXaXRoUmV2aWV3c1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5IYXNSZXZpZXdzLCByZXZpZXdNaW5pbXVtOiA0IH0sXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1widHNoaXJ0XCIsIFwiYmlnLW1lbnMtdC1zaGlydHNcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInVybC1yZXNvbHZlci1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJUc2hpcnRzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyVHNoaXJ0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJzd2VhdHNoaXJ0c1dpdGhSZXZpZXdzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3MsIHJldmlld01pbmltdW06IDQgfSxcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXCJzd2VhdHNoaXJ0c1wiLCBcImJpZy1tZW5zLXN3ZWF0c2hpcnRzXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJ1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyU3dlYXRzaGlydHNcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJTd2VhdHNoaXJ0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJzd2VhdHBhbnRzV2l0aFJldmlld3NcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBkcFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSGFzUmV2aWV3cywgcmV2aWV3TWluaW11bTogNCB9LFxuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcImJpZy1tZW5zLXN3ZWF0cGFudHNcIiwgXCJtZW5zLXN3ZWF0cGFudHNcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInVybC1yZXNvbHZlci1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJTd2VhdHBhbnRzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyU3dlYXRwYW50c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJkZW5pbVdpdGhSZXZpZXdzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3MsIHJldmlld01pbmltdW06IDQgfSxcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXCJiaWctbWVucy1kZW5pbVwiLCBcImRlbmltXCIsIFwia2lkcy1kZW5pbVwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwidXJsLXJlc29sdmVyLXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhckRlbmltXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyRGVuaW1cIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwidHdpbGxGbGVlY2VXaXRoUmV2aWV3c1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5IYXNSZXZpZXdzLCByZXZpZXdNaW5pbXVtOiA0IH0sXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1xuICAgICAgICAgICAgXCJiaWctbWVucy1zd2VhdHBhbnRzXCIsXG4gICAgICAgICAgICBcImtpZHMtZmxlZWNlXCIsXG4gICAgICAgICAgICBcIm1lbnMtc3dlYXRwYW50c1wiLFxuICAgICAgICAgICAgXCJtZW5zLXR3aWxsLWJvdHRvbXNcIixcbiAgICAgICAgICAgIFwia2lkcy10d2lsbC1wYW50c1wiLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInVybC1yZXNvbHZlci1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJUd2lsbEZsZWVjZVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclR3aWxsRmxlZWNlXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInNob3J0c1dpdGhSZXZpZXdzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3MsIHJldmlld01pbmltdW06IDQgfSxcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXCJraWRzLXNob3J0c1wiLCBcImJpZy1tZW5zLXNob3J0c1wiLCBcInNob3J0c1wiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwidXJsLXJlc29sdmVyLXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclNob3J0c1wiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclNob3J0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJhY2Nlc3Nvcmllc1dpdGhSZXZpZXdzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3MsIHJldmlld01pbmltdW06IDQgfSxcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXCJiYWctY29sbGVjdGlvblwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwidXJsLXJlc29sdmVyLXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhckFjY2Vzc29yaWVzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyQWNjZXNzb3JpZXNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwiZm9vdHdlYXJXaXRoUmV2aWV3c1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5IYXNSZXZpZXdzLCByZXZpZXdNaW5pbXVtOiA0IH0sXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1wiZm9vdHdlYXItY29sbGVjdGlvblwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwidXJsLXJlc29sdmVyLXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhckZvb3R3ZWFyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyRm9vdHdlYXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwib3V0ZXJ3ZWFyXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcIm91dGVyd2VhclwiLCBcImJpZy1tZW5zLW91dGVyd2VhclwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwidXJsLXJlc29sdmVyLXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0Jhck91dGVyd2VhclwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0Jhck91dGVyd2VhclwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJ0c2hpcnRzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcInRzaGlydFwiLCBcImJpZy1tZW5zLXQtc2hpcnRzXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJ1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyVHNoaXJ0c1wiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclRzaGlydHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwic3dlYXRzaGlydHNcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBkcFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1wic3dlYXRzaGlydHNcIiwgXCJiaWctbWVucy1zd2VhdHNoaXJ0c1wiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwidXJsLXJlc29sdmVyLXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclN3ZWF0c2hpcnRzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyU3dlYXRzaGlydHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwic3dlYXRwYW50c1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXCJiaWctbWVucy1zd2VhdHBhbnRzXCIsIFwibWVucy1zd2VhdHBhbnRzXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJ1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyU3dlYXRwYW50c1wiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclN3ZWF0cGFudHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwiZ3JhcGhpY1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3MsIHJldmlld01pbmltdW06IDQgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1wibWVucy1ncmFwaGljLXByaW50cy1jb2xsZWN0aW9uXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJ1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyR3JhcGhpY1wiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhckdyYXBoaWNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwiZGVuaW1cIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBkcFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuVXJsUmVzb2x2ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1wiYmlnLW1lbnMtZGVuaW1cIiwgXCJkZW5pbVwiLCBcImtpZHMtZGVuaW1cIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInVybC1yZXNvbHZlci1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJEZW5pbVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhckRlbmltXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInR3aWxsLWZsZWVjZVwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXG4gICAgICAgICAgICBcImJpZy1tZW5zLXN3ZWF0cGFudHNcIixcbiAgICAgICAgICAgIFwia2lkcy1mbGVlY2VcIixcbiAgICAgICAgICAgIFwibWVucy1zd2VhdHBhbnRzXCIsXG4gICAgICAgICAgICBcIm1lbnMtdHdpbGwtYm90dG9tc1wiLFxuICAgICAgICAgICAgXCJraWRzLXR3aWxsLXBhbnRzXCIsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwidXJsLXJlc29sdmVyLXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclR3aWxsRmxlZWNlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyVHdpbGxGbGVlY2VcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwic2hvcnRzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcImtpZHMtc2hvcnRzXCIsIFwiYmlnLW1lbnMtc2hvcnRzXCIsIFwic2hvcnRzXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJ1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyU2hvcnRzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyU2hvcnRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcImFjY2Vzc29yaWVzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlVybFJlc29sdmVyIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcImJhZy1jb2xsZWN0aW9uXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJ1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyQWNjZXNzb3JpZXNcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJBY2Nlc3Nvcmllc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJmb290d2VhclwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXCJmb290d2Vhci1jb2xsZWN0aW9uXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJ1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyRm9vdHdlYXJcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJGb290d2VhclwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBkcFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJ1cmwtcmVzb2x2ZXItcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG4gIHdpZGdldENvbmZpZ3M6IHtcbiAgICBzZWFyY2hJY29uRW50cnlQb2ludDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwic2VhcmNoSWNvbkVudHJ5UG9pbnRcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU2VhcmNoWmVyb1N0YXRlRW50cnlQb2ludCxcbiAgICAgIHNlYXJjaFplcm9TdGF0ZVZhcmlhbnQ6IFwiYmFja2dyb3VuZFRlcnRpYXJ5XCIsXG4gICAgICBzZWFyY2hJbnB1dFZhcmlhbnQ6IFwic3RhbmRhcmRcIixcbiAgICAgIHN1Z2dlc3Rpb25CdXR0b25Db25maWc6IHtcbiAgICAgICAgdmFyaWFudDogXCJkYXJrQWNjZW50XCIsXG4gICAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlBY2NlbnRcIixcbiAgICAgICAgYm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICB9LFxuICAgICAgbGF5b3V0OiBcImljb25cIixcbiAgICAgIHNlYXJjaEljb25WYXJpYW50OiBcImJvbGRcIixcbiAgICAgIHNlYXJjaEljb25TaXplOiAyNixcbiAgICAgIHNlYXJjaEJveFBsYWNlaG9sZGVyOiAnVHJ5IFwiSmVhbnMgdGhhdCB3b3JrIGZvciBhbGwgYm9keSB0eXBlc1wiJyxcbiAgICAgIGluaXRpYWxTdWdnZXN0aW9uczogW1xuICAgICAgICBcIlN0b25lIHdhc2hlZCBqZWFuc1wiLFxuICAgICAgICBcIldoaXRlIHRvcm4gdXAgamVhbnNcIixcbiAgICAgICAgXCJCbGFjayBzb2Z0IHQtc2hpcnRcIixcbiAgICAgICAgXCJCbGFjayBtb3RvLWluc3BpcmVkIGplYW5zXCIsXG4gICAgICAgIFwiR3JhcGhpYyB0LXNoaXJ0XCIsXG4gICAgICBdLFxuICAgICAgdXNpbmdQb3J0YWw6IHRydWUsXG4gICAgfSBzYXRpc2ZpZXMgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgICBzZWFyY2hPdmVybGF5SG9zdDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwic2VhcmNoT3ZlcmxheUhvc3RcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU2VhcmNoT3ZlcmxheUhvc3QsXG4gICAgfSBzYXRpc2ZpZXMgU2VhcmNoT3ZlcmxheUhvc3RXaWRnZXRDb25maWcsXG4gICAgc2VhcmNoUmVzdWx0c0VudHJ5UG9pbnQ6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcInNlYXJjaFJlc3VsdHNFbnRyeVBvaW50XCIsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlNlYXJjaFJlc3VsdHNFbnRyeVBvaW50LFxuICAgICAgc2VhcmNoQm94UGxhY2Vob2xkZXI6ICdUcnkgXCJNb2Rlcm4gc2tpbm55IGplYW5zXCInLFxuICAgICAgcHJvZHVjdEdyaWRWYXJpYW50OiBcInN0YW5kYXJkXCIsXG4gICAgICBzZWFyY2hGaWx0ZXJTaWRlYmFyVmFyaWFudDogXCJkYXJrQnV0dG9uXCIsXG4gICAgICBzZWFyY2hJbnB1dFZhcmlhbnQ6IFwic3RhbmRhcmRcIixcbiAgICB9IHNhdGlzZmllcyBTZWFyY2hSZXN1bHRzRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgICBjaGF0UHJldmlld1BEUDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuQ2hhdFByZXZpZXcsXG4gICAgICB2YXJpYW50OiBcImZsYXRcIixcbiAgICB9IHNhdGlzZmllcyBDaGF0UHJldmlld1dpZGdldENvbmZpZyxcbiAgICBjaGF0UHJldmlld1BMUDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQTFBcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuQ2hhdFByZXZpZXcsXG4gICAgICB2YXJpYW50OiBcImZsYXRcIixcbiAgICAgIGFkZFNlcGFyYXRvcnM6IHRydWUsXG4gICAgICBmb290ZXJDb25maWc6IHtcbiAgICAgICAgcmVwbHlCdXR0b25UZXh0OiBcIldoYXQgY2FuIEkgaGVscCB5b3UgZmluZD9cIixcbiAgICAgICAgcmVwbHlCdXR0b25JY29uOiBcIm1hZ25pZnlpbmdHbGFzc1wiLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBDaGF0UHJldmlld1dpZGdldENvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0Jhcjoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJIb3cgZG8gdGhleSBmaXQ/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdW5pcXVlIGFib3V0IHRoaXM/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIGN1cnJlbnQgZGVhbHM/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICBib3R0b21TdWdnZXN0aW9uc0Jhcjoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwiZGFya1ByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIkhvdyBkbyB0aGV5IGZpdD9cIixcbiAgICAgICAgICBcIldoYXQncyB1bmlxdWUgYWJvdXQgdGhpcz9cIixcbiAgICAgICAgICBcIldoYXQncyB0aGUgY3VycmVudCBkZWFscz9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIHRvcFN1Z2dlc3Rpb25zQmFyT3V0ZXJ3ZWFyOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0Jhck91dGVyd2VhclwiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uVE9QX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX1RPUCxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJzZWNvbmRhcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIkhvdyBpbnN1bGF0ZWQgaXMgdGhpcyBqYWNrZXQ/XCIsXG4gICAgICAgICAgXCJXaGF0IG1hdGVyaWFsIGlzIGl0IG1hZGUgb2Y/XCIsXG4gICAgICAgICAgXCJDYW4gSSBsYXllciB0aGlzIG92ZXIgYSBob29kaWU/XCIsXG4gICAgICAgICAgXCJEb2VzIHRoZSBtYXRlcmlhbCBzdHJldGNoP1wiLFxuICAgICAgICAgIFwiRG9lcyBpdCBydW4gc21hbGw/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICBib3R0b21TdWdnZXN0aW9uc0Jhck91dGVyd2Vhcjoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJPdXRlcndlYXJcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwiZGFya1ByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIkhvdyBpbnN1bGF0ZWQgaXMgdGhpcyBqYWNrZXQ/XCIsXG4gICAgICAgICAgXCJXaGF0IG1hdGVyaWFsIGlzIGl0IG1hZGUgb2Y/XCIsXG4gICAgICAgICAgXCJDYW4gSSBsYXllciB0aGlzIG92ZXIgYSBob29kaWU/XCIsXG4gICAgICAgICAgXCJEb2VzIHRoZSBtYXRlcmlhbCBzdHJldGNoP1wiLFxuICAgICAgICAgIFwiRG9lcyBpdCBydW4gc21hbGw/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhclRzaGlydHM6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyVHNoaXJ0c1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uVE9QX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX1RPUCxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJzZWNvbmRhcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIkhvdyBkb2VzIGl0IGZpdD9cIixcbiAgICAgICAgICBcIldpbGwgaXQgc2hyaW5rIGFmdGVyIHdhc2hpbmc/XCIsXG4gICAgICAgICAgXCJIb3cgZG9lcyBpdCBmZWVsP1wiLFxuICAgICAgICAgIFwiV2hpY2ggYm90dG9tcyBkb2VzIGl0IHBhaXIgd2l0aD9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIGJvdHRvbVN1Z2dlc3Rpb25zQmFyVHNoaXJ0czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJUc2hpcnRzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICB2YXJpYW50OiBcImRhcmtQcmltYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJIb3cgZG9lcyBpdCBmaXQ/XCIsXG4gICAgICAgICAgXCJXaWxsIGl0IHNocmluayBhZnRlciB3YXNoaW5nP1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZmVlbD9cIixcbiAgICAgICAgICBcIldoaWNoIGJvdHRvbXMgZG9lcyBpdCBwYWlyIHdpdGg/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhclN3ZWF0c2hpcnRzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclN3ZWF0c2hpcnRzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICB2YXJpYW50OiBcInNlY29uZGFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZml0P1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZmVlbD9cIixcbiAgICAgICAgICBcIldoYXQncyB0aGUgc3R5bGU/XCIsXG4gICAgICAgICAgXCJEb2VzIGl0IHBhaXIgd2l0aCBzd2VhdHBhbnRzP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgYm90dG9tU3VnZ2VzdGlvbnNCYXJTd2VhdHNoaXJ0czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJTd2VhdHNoaXJ0c1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uVE9QX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX1RPUCxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJkYXJrUHJpbWFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZml0P1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZmVlbD9cIixcbiAgICAgICAgICBcIldoYXQncyB0aGUgc3R5bGU/XCIsXG4gICAgICAgICAgXCJEb2VzIGl0IHBhaXIgd2l0aCBzd2VhdHNoaXJ0cz9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIHRvcFN1Z2dlc3Rpb25zQmFyU3dlYXRwYW50czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJTd2VhdHBhbnRzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICB2YXJpYW50OiBcInNlY29uZGFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZml0P1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZmVlbD9cIixcbiAgICAgICAgICBcIldoYXQncyB0aGUgc3R5bGU/XCIsXG4gICAgICAgICAgXCJEb2VzIGl0IHBhaXIgd2l0aCBzd2VhdHNoaXJ0cz9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIGJvdHRvbVN1Z2dlc3Rpb25zQmFyU3dlYXRwYW50czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJTd2VhdHBhbnRzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICB2YXJpYW50OiBcImRhcmtQcmltYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJIb3cgZG9lcyBpdCBmaXQ/XCIsXG4gICAgICAgICAgXCJIb3cgZG9lcyBpdCBmZWVsP1wiLFxuICAgICAgICAgIFwiV2hhdCdzIHRoZSBzdHlsZT9cIixcbiAgICAgICAgICBcIkRvZXMgaXQgcGFpciB3aXRoIHN3ZWF0c2hpcnRzP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgdG9wU3VnZ2VzdGlvbnNCYXJHcmFwaGljOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhckdyYXBoaWNcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJXaGF0IGlzIHRoZSBzdHlsZT8gKFdvcmsvdGVjaC9zdHJlZXQpXCIsXG4gICAgICAgICAgXCJXaGF0IGlzIHRoZSBzbGVldmUgbGVuZ3RoP1wiLFxuICAgICAgICAgIFwiRG9lcyBpdCBwYWlyIHdpdGggYm90dG9tcz9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIGJvdHRvbVN1Z2dlc3Rpb25zQmFyR3JhcGhpYzoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJHcmFwaGljXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICB2YXJpYW50OiBcImRhcmtQcmltYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJXaGF0IGlzIHRoZSBzdHlsZT8gKFdvcmsvdGVjaC9zdHJlZXQpXCIsXG4gICAgICAgICAgXCJXaGF0IGlzIHRoZSBzbGVldmUgbGVuZ3RoP1wiLFxuICAgICAgICAgIFwiRG9lcyBpdCBwYWlyIHdpdGggYm90dG9tcz9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIHRvcFN1Z2dlc3Rpb25zQmFyRGVuaW06IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyRGVuaW1cIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJIb3cgZG8gdGhleSBmaXQ/XCIsXG4gICAgICAgICAgXCJXaGF0IHNpemUgc2hvdWxkIEkgZ2V0P1wiLFxuICAgICAgICAgIFwiV2hhdCdzIHRoZSByaXNlP1wiLFxuICAgICAgICAgIFwiV2hhdCdzIHRoZSBtYXRlcmlhbD9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIGJvdHRvbVN1Z2dlc3Rpb25zQmFyRGVuaW06IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyRGVuaW1cIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwiZGFya1ByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIkhvdyBkbyB0aGV5IGZpdD9cIixcbiAgICAgICAgICBcIldoYXQgc2l6ZSBzaG91bGQgSSBnZXQ/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIHJpc2U/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIG1hdGVyaWFsP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgdG9wU3VnZ2VzdGlvbnNCYXJUd2lsbEZsZWVjZToge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJUd2lsbEZsZWVjZVwiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uVE9QX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX1RPUCxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJzZWNvbmRhcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG5cbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiQXJlIHRoZXNlIHRydWUgdG8gc2l6ZT9cIixcbiAgICAgICAgICBcIldoYXQgc2l6ZSBzaG91bGQgSSBnZXQ/XCIsXG4gICAgICAgICAgXCJIb3cgZG9lcyBpdCBmZWVsP1wiLFxuICAgICAgICAgIFwiRG8gdGhleSBzdHJldGNoIG91dCBvdmVyIHRpbWU/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIGZpdC9zdHlsZT9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIGJvdHRvbVN1Z2dlc3Rpb25zQmFyVHdpbGxGbGVlY2U6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyVHdpbGxGbGVlY2VcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwiZGFya1ByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIkFyZSB0aGVzZSB0cnVlIHRvIHNpemU/XCIsXG4gICAgICAgICAgXCJXaGF0IHNpemUgc2hvdWxkIEkgZ2V0P1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZmVlbD9cIixcbiAgICAgICAgICBcIkRvIHRoZXkgc3RyZXRjaCBvdXQgb3ZlciB0aW1lP1wiLFxuICAgICAgICAgIFwiV2hhdCdzIHRoZSBmaXQvc3R5bGU/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhclNob3J0czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJTaG9ydHNcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJIb3cgZmFyIGRvd24gZG9lcyBpdCBnbz9cIixcbiAgICAgICAgICBcIkFyZSB0aGVzZSB0cnVlIHRvIHNpemU/XCIsXG4gICAgICAgICAgXCJXaGF0IHNpemUgc2hvdWxkIEkgZ2V0P1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZmVlbD9cIixcbiAgICAgICAgICBcIkRvIHRoZXkgc3RyZXRjaCBvdXQgb3ZlciB0aW1lP1wiLFxuICAgICAgICAgIFwiV2hhdCdzIHRoZSBmaXQvc3R5bGU/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICBib3R0b21TdWdnZXN0aW9uc0JhclNob3J0czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJTaG9ydHNcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwiZGFya1ByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIkhvdyBmYXIgZG93biBkb2VzIGl0IGdvP1wiLFxuICAgICAgICAgIFwiQXJlIHRoZXNlIHRydWUgdG8gc2l6ZT9cIixcbiAgICAgICAgICBcIldoYXQgc2l6ZSBzaG91bGQgSSBnZXQ/XCIsXG4gICAgICAgICAgXCJIb3cgZG9lcyBpdCBmZWVsP1wiLFxuICAgICAgICAgIFwiRG8gdGhleSBzdHJldGNoIG91dCBvdmVyIHRpbWU/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIGZpdC9zdHlsZT9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIHRvcFN1Z2dlc3Rpb25zQmFyQWNjZXNzb3JpZXM6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyQWNjZXNzb3JpZXNcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJIb3cgZG9lcyBpdCBlbmhhbmNlIG15IG91dGZpdD9cIixcbiAgICAgICAgICBcIklzIGl0IGdvb2QgZm9yIGV2ZXJ5ZGF5IHVzZT9cIixcbiAgICAgICAgICBcIklzIGl0IHdhdGVyIHJlc2lzdGFudD9cIixcbiAgICAgICAgICBcIklzIGl0IGNhcnJ5LW9uIHNpemU/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICBib3R0b21TdWdnZXN0aW9uc0JhckFjY2Vzc29yaWVzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhckFjY2Vzc29yaWVzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICB2YXJpYW50OiBcImRhcmtQcmltYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJIb3cgZG9lcyBpdCBlbmhhbmNlIG15IG91dGZpdD9cIixcbiAgICAgICAgICBcIklzIGl0IGdvb2QgZm9yIGV2ZXJ5ZGF5IHVzZT9cIixcbiAgICAgICAgICBcIklzIGl0IHdhdGVyIHJlc2lzdGFudD9cIixcbiAgICAgICAgICBcIklzIGl0IGNhcnJ5LW9uIHNpemU/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhckZvb3R3ZWFyOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclwiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uVE9QX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX1RPUCxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJzZWNvbmRhcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIldoYXQgc2l6ZSBzaG91bGQgSSBjaG9vc2U/XCIsXG4gICAgICAgICAgXCJBcmUgdGhleSBnb29kIGZvciBldmVyeWRheSB3ZWFyP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgYm90dG9tU3VnZ2VzdGlvbnNCYXJGb290d2Vhcjoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJGb290d2VhclwiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uVE9QX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX1RPUCxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJkYXJrUHJpbWFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiV2hhdCBzaXplIHNob3VsZCBJIGNob29zZT9cIixcbiAgICAgICAgICBcIkFyZSB0aGV5IGdvb2QgZm9yIGV2ZXJ5ZGF5IHdlYXI/XCIsXG4gICAgICAgICAgXCJIb3cgZG8gdGhleSBmaXQ/XCIsXG4gICAgICAgICAgXCJXaGF0IG1hdGVyaWFsIGFyZSB0aGV5IG1hZGUgb2Y/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0Jhck91dGVyd2VhcldpdGhSZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0Jhck91dGVyd2VhcldpdGhSZXZpZXdzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICB2YXJpYW50OiBcInNlY29uZGFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiU3VtbWFyaXplIHRoZSByZXZpZXdzLlwiLFxuICAgICAgICAgIFwiSG93IGluc3VsYXRlZCBpcyB0aGlzIGphY2tldD9cIixcbiAgICAgICAgICBcIldoYXQgbWF0ZXJpYWwgaXMgaXQgbWFkZSBvZj9cIixcbiAgICAgICAgICBcIkNhbiBJIGxheWVyIHRoaXMgb3ZlciBhIGhvb2RpZT9cIixcbiAgICAgICAgICBcIkRvZXMgdGhlIG1hdGVyaWFsIHN0cmV0Y2g/XCIsXG4gICAgICAgICAgXCJEb2VzIGl0IHJ1biBzbWFsbD9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIGJvdHRvbVN1Z2dlc3Rpb25zQmFyT3V0ZXJ3ZWFyV2l0aFJldmlld3M6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyT3V0ZXJ3ZWFyV2l0aFJldmlld3NcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktYm90dG9tLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLkJPVFRPTV9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9CT1RUT00sXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwiZGFya1ByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3cy5cIixcbiAgICAgICAgICBcIkhvdyBpbnN1bGF0ZWQgaXMgdGhpcyBqYWNrZXQ/XCIsXG4gICAgICAgICAgXCJXaGF0IG1hdGVyaWFsIGlzIGl0IG1hZGUgb2Y/XCIsXG4gICAgICAgICAgXCJDYW4gSSBsYXllciB0aGlzIG92ZXIgYSBob29kaWU/XCIsXG4gICAgICAgICAgXCJEb2VzIHRoZSBtYXRlcmlhbCBzdHJldGNoP1wiLFxuICAgICAgICAgIFwiRG9lcyBpdCBydW4gc21hbGw/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhclRzaGlydHNXaXRoUmV2aWV3czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJUc2hpcnRzV2l0aFJldmlld3NcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3MuXCIsXG4gICAgICAgICAgXCJIb3cgZG9lcyBpdCBmaXQ/XCIsXG4gICAgICAgICAgXCJXaGF0IG1hdGVyaWFsIGlzIGl0IG1hZGUgb2Y/XCIsXG4gICAgICAgICAgXCJEb2VzIGl0IHNocmluayBpbiB0aGUgd2FzaD9cIixcbiAgICAgICAgICBcIklzIGl0IHRydWUgdG8gc2l6ZT9cIixcbiAgICAgICAgICBcIldoYXQgY29sb3JzIGRvZXMgaXQgY29tZSBpbj9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIGJvdHRvbVN1Z2dlc3Rpb25zQmFyVHNoaXJ0c1dpdGhSZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclRzaGlydHNXaXRoUmV2aWV3c1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS1ib3R0b20tc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uQk9UVE9NX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX0JPVFRPTSxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJkYXJrUHJpbWFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiU3VtbWFyaXplIHRoZSByZXZpZXdzLlwiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZml0P1wiLFxuICAgICAgICAgIFwiV2hhdCBtYXRlcmlhbCBpcyBpdCBtYWRlIG9mP1wiLFxuICAgICAgICAgIFwiRG9lcyBpdCBzaHJpbmsgaW4gdGhlIHdhc2g/XCIsXG4gICAgICAgICAgXCJJcyBpdCB0cnVlIHRvIHNpemU/XCIsXG4gICAgICAgICAgXCJXaGF0IGNvbG9ycyBkb2VzIGl0IGNvbWUgaW4/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhclN3ZWF0c2hpcnRzV2l0aFJldmlld3M6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyU3dlYXRzaGlydHNXaXRoUmV2aWV3c1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uVE9QX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX1RPUCxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJzZWNvbmRhcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3cy5cIixcbiAgICAgICAgICBcIkhvdyBkb2VzIGl0IGZpdD9cIixcbiAgICAgICAgICBcIkhvdyBkb2VzIGl0IGZlZWw/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIHN0eWxlP1wiLFxuICAgICAgICAgIFwiRG9lcyBpdCBwYWlyIHdpdGggc3dlYXRwYW50cz9cIixcbiAgICAgICAgICBcIklzIGl0IHdhcm0gZW5vdWdoIGZvciB3aW50ZXI/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICBib3R0b21TdWdnZXN0aW9uc0JhclN3ZWF0c2hpcnRzV2l0aFJldmlld3M6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyU3dlYXRzaGlydHNXaXRoUmV2aWV3c1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS1ib3R0b20tc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uQk9UVE9NX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX0JPVFRPTSxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJkYXJrUHJpbWFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiU3VtbWFyaXplIHRoZSByZXZpZXdzLlwiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZml0P1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZmVlbD9cIixcbiAgICAgICAgICBcIldoYXQncyB0aGUgc3R5bGU/XCIsXG4gICAgICAgICAgXCJEb2VzIGl0IHBhaXIgd2l0aCBzd2VhdHBhbnRzP1wiLFxuICAgICAgICAgIFwiSXMgaXQgd2FybSBlbm91Z2ggZm9yIHdpbnRlcj9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIHRvcFN1Z2dlc3Rpb25zQmFyU3dlYXRwYW50c1dpdGhSZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclN3ZWF0cGFudHNXaXRoUmV2aWV3c1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uVE9QX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX1RPUCxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJzZWNvbmRhcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3cy5cIixcbiAgICAgICAgICBcIkhvdyBkb2VzIGl0IGZpdD9cIixcbiAgICAgICAgICBcIkhvdyBkb2VzIGl0IGZlZWw/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIHN0eWxlP1wiLFxuICAgICAgICAgIFwiRG9lcyBpdCBwYWlyIHdpdGggc3dlYXRzaGlydHM/XCIsXG4gICAgICAgICAgXCJBcmUgdGhleSB0cnVlIHRvIHNpemU/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICBib3R0b21TdWdnZXN0aW9uc0JhclN3ZWF0cGFudHNXaXRoUmV2aWV3czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJTd2VhdHBhbnRzV2l0aFJldmlld3NcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktYm90dG9tLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLkJPVFRPTV9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9CT1RUT00sXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwiZGFya1ByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3cy5cIixcbiAgICAgICAgICBcIkhvdyBkb2VzIGl0IGZpdD9cIixcbiAgICAgICAgICBcIkhvdyBkb2VzIGl0IGZlZWw/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIHN0eWxlP1wiLFxuICAgICAgICAgIFwiRG9lcyBpdCBwYWlyIHdpdGggc3dlYXRzaGlydHM/XCIsXG4gICAgICAgICAgXCJBcmUgdGhleSB0cnVlIHRvIHNpemU/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhckRlbmltV2l0aFJldmlld3M6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyRGVuaW1XaXRoUmV2aWV3c1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uVE9QX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX1RPUCxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJzZWNvbmRhcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3cy5cIixcbiAgICAgICAgICBcIkhvdyBkbyB0aGV5IGZpdD9cIixcbiAgICAgICAgICBcIldoYXQgc2l6ZSBzaG91bGQgSSBnZXQ/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIHJpc2U/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIG1hdGVyaWFsP1wiLFxuICAgICAgICAgIFwiRG8gdGhleSBzdHJldGNoP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgYm90dG9tU3VnZ2VzdGlvbnNCYXJEZW5pbVdpdGhSZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhckRlbmltV2l0aFJldmlld3NcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktYm90dG9tLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLkJPVFRPTV9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9CT1RUT00sXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwiZGFya1ByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3cy5cIixcbiAgICAgICAgICBcIkhvdyBkbyB0aGV5IGZpdD9cIixcbiAgICAgICAgICBcIldoYXQgc2l6ZSBzaG91bGQgSSBnZXQ/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIHJpc2U/XCIsXG4gICAgICAgICAgXCJXaGF0J3MgdGhlIG1hdGVyaWFsP1wiLFxuICAgICAgICAgIFwiRG8gdGhleSBzdHJldGNoP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgdG9wU3VnZ2VzdGlvbnNCYXJUd2lsbEZsZWVjZVdpdGhSZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclR3aWxsRmxlZWNlV2l0aFJldmlld3NcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3MuXCIsXG4gICAgICAgICAgXCJBcmUgdGhlc2UgdHJ1ZSB0byBzaXplP1wiLFxuICAgICAgICAgIFwiV2hhdCBzaXplIHNob3VsZCBJIGdldD9cIixcbiAgICAgICAgICBcIkhvdyBkb2VzIGl0IGZlZWw/XCIsXG4gICAgICAgICAgXCJEbyB0aGV5IHN0cmV0Y2ggb3V0IG92ZXIgdGltZT9cIixcbiAgICAgICAgICBcIldoYXQncyB0aGUgZml0L3N0eWxlP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgYm90dG9tU3VnZ2VzdGlvbnNCYXJUd2lsbEZsZWVjZVdpdGhSZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclR3aWxsRmxlZWNlV2l0aFJldmlld3NcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktYm90dG9tLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLkJPVFRPTV9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9CT1RUT00sXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwiZGFya1ByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIGJ1dHRvblRleHRzOiB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICBcIlN1bW1hcml6ZSB0aGUgcmV2aWV3cy5cIixcbiAgICAgICAgICBcIkFyZSB0aGVzZSB0cnVlIHRvIHNpemU/XCIsXG4gICAgICAgICAgXCJXaGF0IHNpemUgc2hvdWxkIEkgZ2V0P1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZmVlbD9cIixcbiAgICAgICAgICBcIkRvIHRoZXkgc3RyZXRjaCBvdXQgb3ZlciB0aW1lP1wiLFxuICAgICAgICAgIFwiV2hhdCdzIHRoZSBmaXQvc3R5bGU/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhclNob3J0c1dpdGhSZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclNob3J0c1dpdGhSZXZpZXdzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICB2YXJpYW50OiBcInNlY29uZGFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiU3VtbWFyaXplIHRoZSByZXZpZXdzLlwiLFxuICAgICAgICAgIFwiSG93IGZhciBkb3duIGRvZXMgaXQgZ28/XCIsXG4gICAgICAgICAgXCJBcmUgdGhlc2UgdHJ1ZSB0byBzaXplP1wiLFxuICAgICAgICAgIFwiV2hhdCBzaXplIHNob3VsZCBJIGdldD9cIixcbiAgICAgICAgICBcIkhvdyBkb2VzIGl0IGZlZWw/XCIsXG4gICAgICAgICAgXCJEbyB0aGV5IHN0cmV0Y2ggb3V0IG92ZXIgdGltZT9cIixcbiAgICAgICAgICBcIldoYXQncyB0aGUgZml0L3N0eWxlP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgYm90dG9tU3VnZ2VzdGlvbnNCYXJTaG9ydHNXaXRoUmV2aWV3czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJTaG9ydHNXaXRoUmV2aWV3c1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS1ib3R0b20tc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uQk9UVE9NX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX0JPVFRPTSxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJkYXJrUHJpbWFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiU3VtbWFyaXplIHRoZSByZXZpZXdzLlwiLFxuICAgICAgICAgIFwiSG93IGZhciBkb3duIGRvZXMgaXQgZ28/XCIsXG4gICAgICAgICAgXCJBcmUgdGhlc2UgdHJ1ZSB0byBzaXplP1wiLFxuICAgICAgICAgIFwiV2hhdCBzaXplIHNob3VsZCBJIGdldD9cIixcbiAgICAgICAgICBcIkhvdyBkb2VzIGl0IGZlZWw/XCIsXG4gICAgICAgICAgXCJEbyB0aGV5IHN0cmV0Y2ggb3V0IG92ZXIgdGltZT9cIixcbiAgICAgICAgICBcIldoYXQncyB0aGUgZml0L3N0eWxlP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgdG9wU3VnZ2VzdGlvbnNCYXJBY2Nlc3Nvcmllc1dpdGhSZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhckFjY2Vzc29yaWVzV2l0aFJldmlld3NcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3MuXCIsXG4gICAgICAgICAgXCJIb3cgZG9lcyBpdCBlbmhhbmNlIG15IG91dGZpdD9cIixcbiAgICAgICAgICBcIklzIGl0IGdvb2QgZm9yIGV2ZXJ5ZGF5IHVzZT9cIixcbiAgICAgICAgICBcIklzIGl0IHdhdGVyIHJlc2lzdGFudD9cIixcbiAgICAgICAgICBcIklzIGl0IGNhcnJ5LW9uIHNpemU/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICBib3R0b21TdWdnZXN0aW9uc0JhckFjY2Vzc29yaWVzV2l0aFJldmlld3M6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyQWNjZXNzb3JpZXNXaXRoUmV2aWV3c1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS1ib3R0b20tc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIG1ldHJpY0Rpc3BsYXlMb2NhdGlvbjogQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24uQk9UVE9NX1JFVklFV1NfU05JUFBFVCxcbiAgICAgIGxvY2F0aW9uOiBTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzLlNVR0dFU1RJT05fQkFSX0JPVFRPTSxcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgdmFyaWFudDogXCJkYXJrUHJpbWFyeVwiLFxuICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeURhcmtcIixcbiAgICAgIGFuaW1hdGlvblNwZWVkOiBcIm5vbmVcIixcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiU3VtbWFyaXplIHRoZSByZXZpZXdzLlwiLFxuICAgICAgICAgIFwiSG93IGRvZXMgaXQgZW5oYW5jZSBteSBvdXRmaXQ/XCIsXG4gICAgICAgICAgXCJJcyBpdCBnb29kIGZvciBldmVyeWRheSB1c2U/XCIsXG4gICAgICAgICAgXCJJcyBpdCB3YXRlciByZXNpc3RhbnQ/XCIsXG4gICAgICAgICAgXCJJcyBpdCBjYXJyeS1vbiBzaXplP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgdG9wU3VnZ2VzdGlvbnNCYXJGb290d2VhcldpdGhSZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhckZvb3R3ZWFyV2l0aFJldmlld3NcIixcbiAgICAgIGNvbnRlbnRJZDogXCJzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzXCIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlN1Z2dlc3Rpb25CYXJWMixcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3MuXCIsXG4gICAgICAgICAgXCJXaGF0IHNpemUgc2hvdWxkIEkgY2hvb3NlP1wiLFxuICAgICAgICAgIFwiQXJlIHRoZXkgZ29vZCBmb3IgZXZlcnlkYXkgd2Vhcj9cIixcbiAgICAgICAgICBcIkhvdyBkbyB0aGV5IGZpdD9cIixcbiAgICAgICAgICBcIldoYXQgbWF0ZXJpYWwgYXJlIHRoZXkgbWFkZSBvZj9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIGJvdHRvbVN1Z2dlc3Rpb25zQmFyRm9vdHdlYXJXaXRoUmV2aWV3czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJGb290d2VhcldpdGhSZXZpZXdzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LWJvdHRvbS1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5CT1RUT01fUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfQk9UVE9NLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICB2YXJpYW50OiBcImRhcmtQcmltYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYW5pbWF0aW9uU3BlZWQ6IFwibm9uZVwiLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3MuXCIsXG4gICAgICAgICAgXCJXaGF0IHNpemUgc2hvdWxkIEkgY2hvb3NlP1wiLFxuICAgICAgICAgIFwiQXJlIHRoZXkgZ29vZCBmb3IgZXZlcnlkYXkgd2Vhcj9cIixcbiAgICAgICAgICBcIkhvdyBkbyB0aGV5IGZpdD9cIixcbiAgICAgICAgICBcIldoYXQgbWF0ZXJpYWwgYXJlIHRoZXkgbWFkZSBvZj9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICB9LFxuICBtb3VudGluZ0NvbmZpZ3M6IHtcbiAgICBzZWFyY2hJY29uRW50cnlQb2ludDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJzZWFyY2hJY29uRW50cnlQb2ludFwiLFxuICAgICAgY29udGFpbmVySWQ6IEdMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9JRCxcbiAgICAgIHRlc3RJZDogR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiAnLmhlYWRlcl9fc2Vjb25kYXJ5LW5hdiBhW2hyZWY9XCIvc2VhcmNoXCJdJyxcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5CRUZPUkUsXG4gICAgICB9LFxuICAgICAgc3VwcHJlc3Npb25TZWxlY3RvcjogJ2FbaHJlZj1cIi9zZWFyY2hcIl0nLFxuICAgICAgY2xhc3NOYW1lOiBcImdsb2JhbC1lbnRyeS1kZXNrdG9wXCIsXG4gICAgfSxcbiAgICBzZWFyY2hPdmVybGF5SG9zdDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJzZWFyY2hPdmVybGF5SG9zdFwiLFxuICAgICAgY29udGFpbmVySWQ6IFNFQVJDSF9PVkVSTEFZX0VOVFJZUE9JTlRfSUQsXG4gICAgICB0ZXN0SWQ6IFNFQVJDSF9PVkVSTEFZX0hPU1RfVEVTVElELFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IHtcbiAgICAgICAgc2VsZWN0b3I6IFwiYm9keVwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkFQUEVORF9DSElMRCxcbiAgICAgIH0sXG4gICAgICBjbGFzc05hbWU6IFwic3BpZmZ5LW92ZXJsYXktaG9zdFwiLFxuICAgIH0sXG4gICAgc2VhcmNoUmVzdWx0c0VudHJ5UG9pbnRQTFA6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwic2VhcmNoUmVzdWx0c0VudHJ5UG9pbnRQTFBcIixcbiAgICAgIGNvbnRhaW5lcklkOiBTRUFSQ0hfUkVTVUxUU19FTlRSWVBPSU5UX0lELFxuICAgICAgdGVzdElkOiBTRUFSQ0hfUkVTVUxUU19FTlRSWVBPSU5UX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiBcIiNtYWluXCIsXG4gICAgICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGUuQkVGT1JFLFxuICAgICAgfSxcbiAgICAgIGNsYXNzTmFtZTogXCJzZWFyY2gtcmVzdWx0cy1lbnRyeS1wb2ludFwiLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgbWFyZ2luQm90dG9tOiBcIjYwcHhcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjaGF0UHJldmlld1BMUDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BMUFwiLFxuICAgICAgY29udGFpbmVySWQ6IENIQVRfUFJFVklFV19DT05UQUlORVJfSUQsXG4gICAgICB0ZXN0SWQ6IENIQVRfUFJFVklFV19URVNUSUQsXG4gICAgICBpbnNlcnRpb25Qb2ludDoge1xuICAgICAgICBzZWxlY3RvcjogXCIucHJvZHVjdC1saXN0XCIsXG4gICAgICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGUuQUZURVIsXG4gICAgICB9LFxuICAgICAgZ3JpZEluc2VydGlvblR5cGU6IEdyaWRJbnNlcnRpb25UeXBlLkZJWEVEXzgsXG4gICAgICBjbGFzc05hbWU6IFwiaXMtcGxwXCIsXG4gICAgICBzdHlsZToge1xuICAgICAgICBncmlkUm93OiBcIjMgLyAzXCIsXG4gICAgICAgIGdyaWRDb2x1bW46IFwiMSAvIC0xXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2hhdFByZXZpZXdQRFA6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgIGNvbnRhaW5lcklkOiBDSEFUX1BSRVZJRVdfQ09OVEFJTkVSX0lELFxuICAgICAgdGVzdElkOiBDSEFUX1BSRVZJRVdfVEVTVElELFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IHtcbiAgICAgICAgc2VsZWN0b3I6ICdkaXZbZGF0YS1ibG9jay10eXBlPVwiZGVzY3JpcHRpb25cIl0ucHJvZHVjdC1pbmZvX19ibG9jay1pdGVtJyxcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5CRUZPUkUsXG4gICAgICB9LFxuICAgIH0sXG4gICAgdG9wU3VnZ2VzdGlvbkJhclBEUDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICBjb250YWluZXJJZDogVE9QX1NVR0dFU1RJT05fQkFSX1BEUF9JRCxcbiAgICAgIHRlc3RJZDogVE9QX1NVR0dFU1RJT05fQkFSX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiAnZGl2W2RhdGEtYmxvY2stdHlwZT1cInByaWNlXCJdLnByb2R1Y3QtaW5mb19fYmxvY2staXRlbScsXG4gICAgICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGUuQUZURVIsXG4gICAgICB9LFxuICAgICAgc3R5bGU6IHsgbWFyZ2luVG9wOiBcIjE1cHhcIiB9LFxuICAgIH0sXG4gICAgYm90dG9tU3VnZ2VzdGlvbkJhclBEUDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICBjb250YWluZXJJZDogQk9UVE9NX1JFVklFV1NfQkFSX0lELFxuICAgICAgdGVzdElkOiBCT1RUT01fU1VHR0VTVElPTl9CQVJfVEVTVElELFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IHtcbiAgICAgICAgc2VsZWN0b3I6IFwiLm9rZS13LWhlYWRlclwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkFGVEVSLFxuICAgICAgfSxcbiAgICAgIHN0eWxlOiB7IG1hcmdpbkJvdHRvbTogXCIxNXB4XCIgfSxcbiAgICB9LFxuICB9LFxufSk7XG5cbmNvbnN0IGpvcmRhbkNyYWlnT3JnSW5mbyA9IHtcbiAgc2hvcnROYW1lOiBPcmdTaG9ydE5hbWUuSm9yZGFuQ3JhaWcsXG4gIG5hbWU6IFwiSm9yZGFuIENyYWlnXCIsXG4gIGRvbWFpbjogXCJqb3JkYW5jcmFpZy5jb21cIixcbiAgZGVmYXVsdFByb2R1Y3RJZDogXCJzY2FsbG9wLXQtc2hpcnRcIixcbiAgYWx3YXlzRW5hYmxlZE1lcmNoYW50czogZmFsc2UsXG4gIG9yZ1VJQ29uZmlnOiBqb3JkYW5DcmFpZ09yZ1VJQ29uZmlnLFxuICBvcmdDb2xvcnM6ICgpID0+IGpvcmRhbkNyYWlnQ29sb3JzLFxuICBvcmdQYWdlQ29uZmlnOiBqb3JkYW5DcmFpZ1BhZ2VDb25maWcsXG59IHNhdGlzZmllcyBCYXNpY09yZ0luZm9UeXBlO1xuXG5leHBvcnQgeyBqb3JkYW5DcmFpZ09yZ0luZm8gfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBDQSxNQUFNQSxvQkFBa0M7RUFDckNDLHlCQUFXLGNBQWM7RUFDekJBLHlCQUFXLGdCQUFnQjtFQUMzQkEseUJBQVcsYUFBYTtFQUN4QkEseUJBQVcsV0FBVztFQUN0QkEseUJBQVcsWUFBWTtFQUN2QkEseUJBQVcsb0JBQW9CO0VBQy9CQSx5QkFBVyxzQkFBc0I7RUFDakNBLHlCQUFXLDBCQUEwQjtFQUNyQ0EseUJBQVcscUJBQXFCO0VBQ2hDQSx5QkFBVyxpQkFBaUI7RUFDNUJBLHlCQUFXLGtCQUFrQjtFQUM3QkEseUJBQVcsc0JBQXNCO0VBQ2pDQSx5QkFBVyxjQUFjO0VBQ3pCQSx5QkFBVyxlQUFlO0VBQzFCQSx5QkFBVyxhQUFhO0VBQ3hCQSx5QkFBVyxnQkFBZ0I7RUFDM0JBLHlCQUFXLGdCQUFnQjtFQUMzQkEseUJBQVcsa0JBQWtCO0NBQy9CO0FBRUQsTUFBTSwrQkFBNEM7Q0FDaEQsTUFBTSw4QkFBOEJDLG1DQUNsQ0MsMkJBQWEsWUFDZDtBQUVELFFBQU87RUFDTCxHQUFHO0VBQ0gseUJBQXlCLEVBQ3ZCLGlCQUFpQjtHQUNmLFNBQVM7R0FDVCxpQkFBaUI7R0FDbEIsRUFDRjtFQUNELGNBQWM7R0FDWixvQkFBb0I7R0FDcEIsMEJBQ0U7R0FDRixvQkFBb0I7SUFDbEI7S0FDRSxVQUFVO0tBQ1YsYUFBYTtLQUNiLE1BQU07S0FDTixZQUFZO0tBQ2I7SUFDRDtLQUNFLFVBQVU7S0FDVixhQUFhO0tBQ2IsV0FBVztLQUNYLE1BQU07S0FDTixTQUFTLEVBQ1AsTUFBTSxnQkFDUDtLQUNGO0lBQ0Q7S0FDRSxVQUFVO0tBQ1YsYUFBYTtLQUNiLFdBQVc7S0FDWCxNQUFNO0tBQ04sU0FBUyxFQUNQLE1BQU0sZ0JBQ1A7S0FDRjtJQUNEO0tBQ0UsVUFBVTtLQUNWLGFBQWE7S0FDYixXQUFXO0tBQ1gsTUFBTTtLQUNOLFNBQVMsRUFDUCxNQUFNLGdCQUNQO0tBQ0Y7SUFDRDtLQUNFLFVBQVU7S0FDVixhQUFhO0tBQ2IsTUFBTTtLQUNOLFdBQVc7S0FDWCxTQUFTLEVBQ1AsTUFBTSxnQkFDUDtLQUNGO0lBQ0Y7R0FDRjtFQUNELG1CQUFtQjtHQUNqQixHQUFHLDRCQUE0QjtHQUMvQixvQkFBb0I7R0FDcEIsU0FBUztHQUNULGFBQWE7SUFDWCxHQUFHLDRCQUE0QixrQkFBa0I7SUFDakQsYUFBYTtJQUNkO0dBQ0Y7RUFDRCxZQUFZO0dBQ1YsR0FBRyw0QkFBNEI7R0FDL0IsVUFBVUMsNEJBQVcsWUFDbkIseUJBQ0FELDJCQUFhLFlBQ2Q7R0FDRjtFQUNELG1CQUFtQjtHQUNqQixHQUFHLDRCQUE0QjtHQUMvQixlQUFlRSx1QkFBU0oseUJBQVcsY0FBYztHQUNqRCx1QkFBdUJJLHVCQUFTSix5QkFBVyxlQUFlO0dBQzFELHNCQUFzQkksdUJBQVNKLHlCQUFXLFlBQVk7R0FDdEQsNEJBQTRCSSx1QkFBU0oseUJBQVcsd0JBQXdCO0dBQ3hFLFdBQVc7R0FDWCxRQUFRO0lBQ04sS0FBSztLQUNIO0tBQ0E7S0FDQTtLQUNBO0tBQ0Q7SUFDRCxLQUFLO0tBQ0g7S0FDQTtLQUNBO0tBQ0E7S0FDRDtJQUNGO0dBQ0Qsd0JBQXdCO0lBQ3RCLEtBQUs7S0FDSDtLQUNBO0tBQ0E7S0FDQTtLQUNEO0lBQ0QsS0FBSztLQUNIO0tBQ0E7S0FDQTtLQUNBO0tBQ0E7S0FDRDtJQUNGO0dBQ0QsY0FBYztJQUNaLEdBQUcsNEJBQTRCLGtCQUFtQjtJQUNsRCxhQUFhO0lBQ2IsVUFBVUcsNEJBQVcsWUFDbkIseUJBQ0FELDJCQUFhLFlBQ2Q7SUFDRjtHQUNELGNBQWM7SUFDWixHQUFHLDRCQUE0QixrQkFBbUI7SUFDbEQsaUJBQWlCO0lBQ2xCO0dBQ0Y7RUFDRCwwQkFBMEI7R0FDeEIsR0FBRyw0QkFBNEI7R0FDL0IsWUFBWTtHQUNaLGVBQWVFLHVCQUFTSix5QkFBVyxjQUFjO0dBQ2pELGVBQWU7SUFDYixLQUFLO0lBQ0wsS0FBSztJQUNOO0dBQ0Y7RUFDRCxtQkFBbUIsRUFDakIsR0FBRyw0QkFBNEIsbUJBQ2hDO0VBQ0QscUJBQXFCO0dBQ25CLEdBQUcsNEJBQTRCO0dBQy9CLGNBQWM7R0FDZCxvQkFBb0I7R0FDcEIsd0JBQXdCO0dBQ3pCO0VBQ0Qsc0JBQXNCO0dBQ3BCLEdBQUcsNEJBQTRCO0dBQy9CLE9BQU87R0FDUCxVQUNFO0dBQ0g7RUFDRCxxQkFBcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUN0Qjs7QUFHSCxNQUFNLCtCQUE4QztDQUNsRCxjQUFjO0VBRVo7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWM7SUFDWixFQUFFLFVBQVVLLGtDQUFvQixhQUFhO0lBQzdDO0tBQ0UsVUFBVUEsa0NBQW9CO0tBQzlCLGFBQWFDLDhCQUFhO0tBQzNCO0lBQ0Q7S0FDRSxVQUFVRCxrQ0FBb0I7S0FDOUIsWUFBWTtLQUNiO0lBQ0Y7R0FDRCxnQkFBZ0I7R0FDaEIsZ0JBQWdCO0lBQ2Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Y7R0FDRjtFQUNEO0dBQ0UsV0FBVztHQUNYLGFBQWE7R0FDYixjQUFjLENBQ1osRUFBRSxVQUFVQSxrQ0FBb0IsYUFBYSxFQUM3QztJQUNFLFVBQVVBLGtDQUFvQjtJQUM5QixhQUFhQyw4QkFBYTtJQUMzQixDQUNGO0dBQ0QsZ0JBQWdCO0dBQ2hCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYyxDQUNaLEVBQUUsVUFBVUQsa0NBQW9CLGFBQWEsRUFDN0M7SUFDRSxVQUFVQSxrQ0FBb0I7SUFDOUIsYUFBYUMsOEJBQWE7SUFDM0IsQ0FDRjtHQUNELG9CQUFvQjtHQUNwQixnQkFBZ0I7SUFDZDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRjtHQUNGO0VBQ0Q7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWMsQ0FDWixFQUNFLFVBQVVELGtDQUFvQixhQUMvQixFQUNEO0lBQ0UsVUFBVUEsa0NBQW9CO0lBQzlCLGFBQWFDLDhCQUFhO0lBQzNCLENBQ0Y7R0FDRCxnQkFBZ0IsQ0FDZDtJQUNFLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDakIsRUFDRDtJQUNFLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDakIsQ0FDRjtHQUNGO0VBQ0Q7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWMsQ0FDWixFQUNFLFVBQVVELGtDQUFvQixhQUMvQixFQUNEO0lBQ0UsVUFBVUEsa0NBQW9CO0lBQzlCLGFBQWFDLDhCQUFhO0lBQzNCLENBQ0Y7R0FDRCxnQkFBZ0IsQ0FDZDtJQUNFLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDakIsRUFDRDtJQUNFLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDakIsQ0FDRjtHQUNGO0VBRUQ7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWMsQ0FBQyxFQUFFLFVBQVVELGtDQUFvQixhQUFhLENBQUM7R0FDN0QsZ0JBQWdCO0dBQ2hCLGdCQUFnQixDQUNkO0lBQ0Usa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNqQixDQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYztJQUNaO0tBQUUsVUFBVUEsa0NBQW9CO0tBQVksZUFBZTtLQUFHO0lBQzlELEVBQUUsVUFBVUEsa0NBQW9CLGFBQWE7SUFDN0M7S0FDRSxVQUFVQSxrQ0FBb0I7S0FDOUIsYUFBYSxDQUFDLGFBQWEscUJBQXFCO0tBQ2pEO0lBQ0Y7R0FDRCxvQkFBb0I7R0FDcEIsZ0JBQWdCO0lBQ2Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Y7R0FDRjtFQUNEO0dBQ0UsV0FBVztHQUNYLGFBQWE7R0FDYixjQUFjO0lBQ1o7S0FBRSxVQUFVQSxrQ0FBb0I7S0FBWSxlQUFlO0tBQUc7SUFDOUQsRUFBRSxVQUFVQSxrQ0FBb0IsYUFBYTtJQUM3QztLQUNFLFVBQVVBLGtDQUFvQjtLQUM5QixhQUFhLENBQUMsVUFBVSxvQkFBb0I7S0FDN0M7SUFDRjtHQUNELG9CQUFvQjtHQUNwQixnQkFBZ0I7SUFDZDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRjtHQUNGO0VBQ0Q7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWM7SUFDWjtLQUFFLFVBQVVBLGtDQUFvQjtLQUFZLGVBQWU7S0FBRztJQUM5RCxFQUFFLFVBQVVBLGtDQUFvQixhQUFhO0lBQzdDO0tBQ0UsVUFBVUEsa0NBQW9CO0tBQzlCLGFBQWEsQ0FBQyxlQUFlLHVCQUF1QjtLQUNyRDtJQUNGO0dBQ0Qsb0JBQW9CO0dBQ3BCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYztJQUNaO0tBQUUsVUFBVUEsa0NBQW9CO0tBQVksZUFBZTtLQUFHO0lBQzlELEVBQUUsVUFBVUEsa0NBQW9CLGFBQWE7SUFDN0M7S0FDRSxVQUFVQSxrQ0FBb0I7S0FDOUIsYUFBYSxDQUFDLHVCQUF1QixrQkFBa0I7S0FDeEQ7SUFDRjtHQUNELG9CQUFvQjtHQUNwQixnQkFBZ0I7SUFDZDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRjtHQUNGO0VBQ0Q7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWM7SUFDWjtLQUFFLFVBQVVBLGtDQUFvQjtLQUFZLGVBQWU7S0FBRztJQUM5RCxFQUFFLFVBQVVBLGtDQUFvQixhQUFhO0lBQzdDO0tBQ0UsVUFBVUEsa0NBQW9CO0tBQzlCLGFBQWE7TUFBQztNQUFrQjtNQUFTO01BQWE7S0FDdkQ7SUFDRjtHQUNELG9CQUFvQjtHQUNwQixnQkFBZ0I7SUFDZDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRjtHQUNGO0VBQ0Q7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWM7SUFDWjtLQUFFLFVBQVVBLGtDQUFvQjtLQUFZLGVBQWU7S0FBRztJQUM5RCxFQUFFLFVBQVVBLGtDQUFvQixhQUFhO0lBQzdDO0tBQ0UsVUFBVUEsa0NBQW9CO0tBQzlCLGFBQWE7TUFDWDtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0Q7S0FDRjtJQUNGO0dBQ0Qsb0JBQW9CO0dBQ3BCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYztJQUNaO0tBQUUsVUFBVUEsa0NBQW9CO0tBQVksZUFBZTtLQUFHO0lBQzlELEVBQUUsVUFBVUEsa0NBQW9CLGFBQWE7SUFDN0M7S0FDRSxVQUFVQSxrQ0FBb0I7S0FDOUIsYUFBYTtNQUFDO01BQWU7TUFBbUI7TUFBUztLQUMxRDtJQUNGO0dBQ0Qsb0JBQW9CO0dBQ3BCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYztJQUNaO0tBQUUsVUFBVUEsa0NBQW9CO0tBQVksZUFBZTtLQUFHO0lBQzlELEVBQUUsVUFBVUEsa0NBQW9CLGFBQWE7SUFDN0M7S0FDRSxVQUFVQSxrQ0FBb0I7S0FDOUIsYUFBYSxDQUFDLGlCQUFpQjtLQUNoQztJQUNGO0dBQ0Qsb0JBQW9CO0dBQ3BCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYztJQUNaO0tBQUUsVUFBVUEsa0NBQW9CO0tBQVksZUFBZTtLQUFHO0lBQzlELEVBQUUsVUFBVUEsa0NBQW9CLGFBQWE7SUFDN0M7S0FDRSxVQUFVQSxrQ0FBb0I7S0FDOUIsYUFBYSxDQUFDLHNCQUFzQjtLQUNyQztJQUNGO0dBQ0Qsb0JBQW9CO0dBQ3BCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYyxDQUNaLEVBQUUsVUFBVUEsa0NBQW9CLGFBQWEsRUFDN0M7SUFDRSxVQUFVQSxrQ0FBb0I7SUFDOUIsYUFBYSxDQUFDLGFBQWEscUJBQXFCO0lBQ2pELENBQ0Y7R0FDRCxvQkFBb0I7R0FDcEIsZ0JBQWdCO0lBQ2Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Y7R0FDRjtFQUNEO0dBQ0UsV0FBVztHQUNYLGFBQWE7R0FDYixjQUFjLENBQ1osRUFBRSxVQUFVQSxrQ0FBb0IsYUFBYSxFQUM3QztJQUNFLFVBQVVBLGtDQUFvQjtJQUM5QixhQUFhLENBQUMsVUFBVSxvQkFBb0I7SUFDN0MsQ0FDRjtHQUNELG9CQUFvQjtHQUNwQixnQkFBZ0I7SUFDZDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRjtHQUNGO0VBQ0Q7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWMsQ0FDWixFQUFFLFVBQVVBLGtDQUFvQixhQUFhLEVBQzdDO0lBQ0UsVUFBVUEsa0NBQW9CO0lBQzlCLGFBQWEsQ0FBQyxlQUFlLHVCQUF1QjtJQUNyRCxDQUNGO0dBQ0Qsb0JBQW9CO0dBQ3BCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYyxDQUNaLEVBQUUsVUFBVUEsa0NBQW9CLGFBQWEsRUFDN0M7SUFDRSxVQUFVQSxrQ0FBb0I7SUFDOUIsYUFBYSxDQUFDLHVCQUF1QixrQkFBa0I7SUFDeEQsQ0FDRjtHQUNELG9CQUFvQjtHQUNwQixnQkFBZ0I7SUFDZDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRjtHQUNGO0VBQ0Q7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWM7SUFDWixFQUFFLFVBQVVBLGtDQUFvQixhQUFhO0lBQzdDO0tBQUUsVUFBVUEsa0NBQW9CO0tBQVksZUFBZTtLQUFHO0lBQzlEO0tBQ0UsVUFBVUEsa0NBQW9CO0tBQzlCLGFBQWEsQ0FBQyxpQ0FBaUM7S0FDaEQ7SUFDRjtHQUNELG9CQUFvQjtHQUNwQixnQkFBZ0I7SUFDZDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRjtHQUNGO0VBQ0Q7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWMsQ0FDWixFQUFFLFVBQVVBLGtDQUFvQixhQUFhLEVBQzdDO0lBQ0UsVUFBVUEsa0NBQW9CO0lBQzlCLGFBQWE7S0FBQztLQUFrQjtLQUFTO0tBQWE7SUFDdkQsQ0FDRjtHQUNELG9CQUFvQjtHQUNwQixnQkFBZ0I7SUFDZDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRDtLQUNFLGtCQUFrQjtLQUNsQixnQkFBZ0I7S0FDakI7SUFDRjtHQUNGO0VBQ0Q7R0FDRSxXQUFXO0dBQ1gsYUFBYTtHQUNiLGNBQWMsQ0FDWixFQUFFLFVBQVVBLGtDQUFvQixhQUFhLEVBQzdDO0lBQ0UsVUFBVUEsa0NBQW9CO0lBQzlCLGFBQWE7S0FDWDtLQUNBO0tBQ0E7S0FDQTtLQUNBO0tBQ0Q7SUFDRixDQUNGO0dBQ0Qsb0JBQW9CO0dBQ3BCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYyxDQUNaLEVBQUUsVUFBVUEsa0NBQW9CLGFBQWEsRUFDN0M7SUFDRSxVQUFVQSxrQ0FBb0I7SUFDOUIsYUFBYTtLQUFDO0tBQWU7S0FBbUI7S0FBUztJQUMxRCxDQUNGO0dBQ0Qsb0JBQW9CO0dBQ3BCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYyxDQUNaLEVBQUUsVUFBVUEsa0NBQW9CLGFBQWEsRUFDN0M7SUFDRSxVQUFVQSxrQ0FBb0I7SUFDOUIsYUFBYSxDQUFDLGlCQUFpQjtJQUNoQyxDQUNGO0dBQ0Qsb0JBQW9CO0dBQ3BCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYyxDQUNaLEVBQUUsVUFBVUEsa0NBQW9CLGFBQWEsRUFDN0M7SUFDRSxVQUFVQSxrQ0FBb0I7SUFDOUIsYUFBYSxDQUFDLHNCQUFzQjtJQUNyQyxDQUNGO0dBQ0Qsb0JBQW9CO0dBQ3BCLGdCQUFnQjtJQUNkO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNEO0tBQ0Usa0JBQWtCO0tBQ2xCLGdCQUFnQjtLQUNqQjtJQUNGO0dBQ0Y7RUFDRDtHQUNFLFdBQVc7R0FDWCxhQUFhO0dBQ2IsY0FBYyxDQUFDLEVBQUUsVUFBVUEsa0NBQW9CLGFBQWEsQ0FBQztHQUM3RCxvQkFBb0I7R0FDcEIsZ0JBQWdCO0lBQ2Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Q7S0FDRSxrQkFBa0I7S0FDbEIsZ0JBQWdCO0tBQ2pCO0lBQ0Y7R0FDRjtFQUNGO0NBQ0QsZUFBZTtFQUNiLHNCQUFzQjtHQUNwQixnQkFBZ0I7R0FDaEIsTUFBTUUseUJBQVc7R0FDakIsd0JBQXdCO0dBQ3hCLG9CQUFvQjtHQUNwQix3QkFBd0I7SUFDdEIsU0FBUztJQUNULGNBQWM7SUFDZCxjQUFjO0lBQ2Y7R0FDRCxRQUFRO0dBQ1IsbUJBQW1CO0dBQ25CLGdCQUFnQjtHQUNoQixzQkFBc0I7R0FDdEIsb0JBQW9CO0lBQ2xCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRDtHQUNELGFBQWE7R0FDZDtFQUNELG1CQUFtQjtHQUNqQixnQkFBZ0I7R0FDaEIsTUFBTUEseUJBQVc7R0FDbEI7RUFDRCx5QkFBeUI7R0FDdkIsZ0JBQWdCO0dBQ2hCLE1BQU1BLHlCQUFXO0dBQ2pCLHNCQUFzQjtHQUN0QixvQkFBb0I7R0FDcEIsNEJBQTRCO0dBQzVCLG9CQUFvQjtHQUNyQjtFQUNELGdCQUFnQjtHQUNkLGdCQUFnQjtHQUNoQixNQUFNQSx5QkFBVztHQUNqQixTQUFTO0dBQ1Y7RUFDRCxnQkFBZ0I7R0FDZCxnQkFBZ0I7R0FDaEIsTUFBTUEseUJBQVc7R0FDakIsU0FBUztHQUNULGVBQWU7R0FDZixjQUFjO0lBQ1osaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNsQjtHQUNGO0VBQ0QsbUJBQW1CO0dBQ2pCLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCxzQkFBc0I7R0FDcEIsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELDRCQUE0QjtHQUMxQixnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELCtCQUErQjtHQUM3QixnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELDBCQUEwQjtHQUN4QixnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCw2QkFBNkI7R0FDM0IsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0QsOEJBQThCO0dBQzVCLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELGlDQUFpQztHQUMvQixnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCw2QkFBNkI7R0FDM0IsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0QsZ0NBQWdDO0dBQzlCLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELDBCQUEwQjtHQUN4QixnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0QsNkJBQTZCO0dBQzNCLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCx3QkFBd0I7R0FDdEIsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0QsMkJBQTJCO0dBQ3pCLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELDhCQUE4QjtHQUM1QixnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUVkLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0QsaUNBQWlDO0dBQy9CLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0QseUJBQXlCO0dBQ3ZCLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCw0QkFBNEI7R0FDMUIsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELDhCQUE4QjtHQUM1QixnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCxpQ0FBaUM7R0FDL0IsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0QsMkJBQTJCO0dBQ3pCLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVMsQ0FDUCw4QkFDQSxtQ0FDRCxFQUNGO0dBQ0Y7RUFDRCw4QkFBOEI7R0FDNUIsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0QsdUNBQXVDO0dBQ3JDLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCwwQ0FBMEM7R0FDeEMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELHFDQUFxQztHQUNuQyxnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0Qsd0NBQXdDO0dBQ3RDLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCx5Q0FBeUM7R0FDdkMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELDRDQUE0QztHQUMxQyxnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0Qsd0NBQXdDO0dBQ3RDLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCwyQ0FBMkM7R0FDekMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELG1DQUFtQztHQUNqQyxnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0Qsc0NBQXNDO0dBQ3BDLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCx5Q0FBeUM7R0FDdkMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELDRDQUE0QztHQUMxQyxnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0QsRUFDRjtHQUNGO0VBQ0Qsb0NBQW9DO0dBQ2xDLGdCQUFnQjtHQUNoQixXQUFXO0dBQ1gsdUJBQXVCQyw0Q0FBMkI7R0FDbEQsVUFBVUMsOERBQWdDO0dBQzFDLE1BQU1GLHlCQUFXO0dBQ2pCLFNBQVM7R0FDVCxjQUFjO0dBQ2QsZ0JBQWdCO0dBQ2hCLG9CQUFvQjtHQUNwQixpQkFBaUI7R0FDakIsYUFBYSxFQUNYLFNBQVM7SUFDUDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNELEVBQ0Y7R0FDRjtFQUNELHVDQUF1QztHQUNyQyxnQkFBZ0I7R0FDaEIsV0FBVztHQUNYLHVCQUF1QkMsNENBQTJCO0dBQ2xELFVBQVVDLDhEQUFnQztHQUMxQyxNQUFNRix5QkFBVztHQUNqQixTQUFTO0dBQ1QsY0FBYztHQUNkLGdCQUFnQjtHQUNoQixvQkFBb0I7R0FDcEIsaUJBQWlCO0dBQ2pCLGFBQWEsRUFDWCxTQUFTO0lBQ1A7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCx5Q0FBeUM7R0FDdkMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCw0Q0FBNEM7R0FDMUMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCxzQ0FBc0M7R0FDcEMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRCx5Q0FBeUM7R0FDdkMsZ0JBQWdCO0dBQ2hCLFdBQVc7R0FDWCx1QkFBdUJDLDRDQUEyQjtHQUNsRCxVQUFVQyw4REFBZ0M7R0FDMUMsTUFBTUYseUJBQVc7R0FDakIsU0FBUztHQUNULGNBQWM7R0FDZCxnQkFBZ0I7R0FDaEIsb0JBQW9CO0dBQ3BCLGlCQUFpQjtHQUNqQixhQUFhLEVBQ1gsU0FBUztJQUNQO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRCxFQUNGO0dBQ0Y7RUFDRjtDQUNELGlCQUFpQjtFQUNmLHNCQUFzQjtHQUNwQixrQkFBa0I7R0FDbEIsYUFBYUc7R0FDYixRQUFRQztHQUNSLGdCQUFnQjtJQUNkLFVBQVU7SUFDVixlQUFlQyxrQ0FBaUI7SUFDakM7R0FDRCxxQkFBcUI7R0FDckIsV0FBVztHQUNaO0VBQ0QsbUJBQW1CO0dBQ2pCLGtCQUFrQjtHQUNsQixhQUFhQztHQUNiLFFBQVFDO0dBQ1IsZ0JBQWdCO0lBQ2QsVUFBVTtJQUNWLGVBQWVGLGtDQUFpQjtJQUNqQztHQUNELFdBQVc7R0FDWjtFQUNELDRCQUE0QjtHQUMxQixrQkFBa0I7R0FDbEIsYUFBYUc7R0FDYixRQUFRQztHQUNSLGdCQUFnQjtJQUNkLFVBQVU7SUFDVixlQUFlSixrQ0FBaUI7SUFDakM7R0FDRCxXQUFXO0dBQ1gsT0FBTyxFQUNMLGNBQWMsUUFDZjtHQUNGO0VBQ0QsZ0JBQWdCO0dBQ2Qsa0JBQWtCO0dBQ2xCLGFBQWFLO0dBQ2IsUUFBUUM7R0FDUixnQkFBZ0I7SUFDZCxVQUFVO0lBQ1YsZUFBZU4sa0NBQWlCO0lBQ2pDO0dBQ0QsbUJBQW1CTyxtQ0FBa0I7R0FDckMsV0FBVztHQUNYLE9BQU87SUFDTCxTQUFTO0lBQ1QsWUFBWTtJQUNiO0dBQ0Y7RUFDRCxnQkFBZ0I7R0FDZCxrQkFBa0I7R0FDbEIsYUFBYUY7R0FDYixRQUFRQztHQUNSLGdCQUFnQjtJQUNkLFVBQVU7SUFDVixlQUFlTixrQ0FBaUI7SUFDakM7R0FDRjtFQUNELHFCQUFxQjtHQUNuQixrQkFBa0I7R0FDbEIsYUFBYVE7R0FDYixRQUFRQztHQUNSLGdCQUFnQjtJQUNkLFVBQVU7SUFDVixlQUFlVCxrQ0FBaUI7SUFDakM7R0FDRCxPQUFPLEVBQUUsV0FBVyxRQUFRO0dBQzdCO0VBQ0Qsd0JBQXdCO0dBQ3RCLGtCQUFrQjtHQUNsQixhQUFhVTtHQUNiLFFBQVFDO0dBQ1IsZ0JBQWdCO0lBQ2QsVUFBVTtJQUNWLGVBQWVYLGtDQUFpQjtJQUNqQztHQUNELE9BQU8sRUFBRSxjQUFjLFFBQVE7R0FDaEM7RUFDRjtDQUNGO0FBRUQsTUFBTSxxQkFBcUI7Q0FDekIsV0FBV1YsMkJBQWE7Q0FDeEIsTUFBTTtDQUNOLFFBQVE7Q0FDUixrQkFBa0I7Q0FDbEIsd0JBQXdCO0NBQ3hCLGFBQWE7Q0FDYixpQkFBaUI7Q0FDakIsZUFBZTtDQUNoQiJ9