@envive-ai/react-hooks 0.1.6 → 0.1.8

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