@envive-ai/react-hooks 0.2.6-alpha-7 → 0.2.6-alpha-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 (425) hide show
  1. package/dist/{AmplitudeOperations-DbUiR0N_.cjs → AmplitudeOperations-DgBejCXT.cjs} +2 -2
  2. package/dist/{AmplitudeOperations-DjqOM3uE.js → AmplitudeOperations-jbYI0Gt9.js} +2 -2
  3. package/dist/{NewOrgConfig-C_1T1iOt.js → NewOrgConfig-CUQGpmw9.js} +2 -2
  4. package/dist/{NewOrgConfig-D2Kvqa1z.cjs → NewOrgConfig-DD0oloeK.cjs} +2 -2
  5. package/dist/{TrackComponentVisibleEvent-BxOhr9Da.js → TrackComponentVisibleEvent-BTDRmqYu.js} +2 -2
  6. package/dist/{TrackComponentVisibleEvent-CDbecFPM.cjs → TrackComponentVisibleEvent-BmM2CED5.cjs} +2 -2
  7. package/dist/{amplitudeContext-BWmXliMI.cjs → amplitudeContext-BeKYPEAO.cjs} +9 -8
  8. package/dist/{amplitudeContext-BjMlg5RV.js → amplitudeContext-CfMnZGa7.js} +9 -8
  9. package/dist/{amplitudeTrackEventAtom-D66l5oFp.js → amplitudeTrackEventAtom-DXnFiWnV.js} +1 -1
  10. package/dist/{amplitudeTrackEventAtom-f22P2U0u.cjs → amplitudeTrackEventAtom-UVBKhOuI.cjs} +1 -1
  11. package/dist/{app-Bs2KxG_8.js → app-BT3g-mDp.js} +5 -5
  12. package/dist/{app-DSnDDqcW.cjs → app-DxwdFQlv.cjs} +5 -5
  13. package/dist/application/utils/index.cjs +4 -4
  14. package/dist/application/utils/index.d.cts +2 -2
  15. package/dist/application/utils/index.d.ts +2 -2
  16. package/dist/application/utils/index.js +4 -4
  17. package/dist/{atomStore-CfzCqWB9.js → atomStore-BuopbV9k.js} +1 -1
  18. package/dist/{atomStore-BQVO5haU.cjs → atomStore-CZKe3itM.cjs} +1 -1
  19. package/dist/atoms/app/index.cjs +9 -9
  20. package/dist/atoms/app/index.d.cts +6 -6
  21. package/dist/atoms/app/index.d.ts +7 -7
  22. package/dist/atoms/app/index.js +9 -9
  23. package/dist/atoms/atomStore/index.cjs +1 -1
  24. package/dist/atoms/atomStore/index.d.ts +1 -1
  25. package/dist/atoms/atomStore/index.js +1 -1
  26. package/dist/atoms/chat/index.cjs +12 -12
  27. package/dist/atoms/chat/index.d.cts +32 -32
  28. package/dist/atoms/chat/index.d.ts +27 -27
  29. package/dist/atoms/chat/index.js +12 -12
  30. package/dist/atoms/globalSearch/index.cjs +1 -1
  31. package/dist/atoms/globalSearch/index.d.cts +6 -6
  32. package/dist/atoms/globalSearch/index.d.ts +6 -6
  33. package/dist/atoms/globalSearch/index.js +1 -1
  34. package/dist/atoms/org/index.cjs +2 -2
  35. package/dist/atoms/org/index.d.cts +15 -15
  36. package/dist/atoms/org/index.d.ts +16 -16
  37. package/dist/atoms/org/index.js +2 -2
  38. package/dist/atoms/search/index.cjs +5 -5
  39. package/dist/atoms/search/index.d.cts +15 -15
  40. package/dist/atoms/search/index.d.ts +13 -13
  41. package/dist/atoms/search/index.js +5 -5
  42. package/dist/atoms/search/utils.cjs +1 -1
  43. package/dist/atoms/search/utils.d.ts +1 -1
  44. package/dist/atoms/search/utils.js +1 -1
  45. package/dist/{cdnContext-CJ2BNLAD.js → cdnContext-D-qi0lub.js} +2 -2
  46. package/dist/{cdnContext-lkC-AE6A.cjs → cdnContext-DIVgBnsl.cjs} +2 -2
  47. package/dist/{chat-CCjM6fS_.cjs → chat-CgF81Y5r.cjs} +5 -5
  48. package/dist/{chat-EJbfGWRr.js → chat-ClvJ9xEj.js} +1 -1
  49. package/dist/{chat-CJ9D8n7g.cjs → chat-DCGriB7h.cjs} +1 -1
  50. package/dist/{chat-C5afTKUY.js → chat-WdMVMjQh.js} +5 -5
  51. package/dist/{chatState-DlJpHAsW.cjs → chatState-B57-id1_.cjs} +1 -1
  52. package/dist/{chatState-BbI93m6r.js → chatState-DAP9YIWn.js} +1 -1
  53. package/dist/{common-CuwWqIJ1.cjs → common-DQPvV_S_.cjs} +1 -1
  54. package/dist/{common-Df2bwzd2.js → common-c_4eX0qn.js} +1 -1
  55. package/dist/{components-QGCWJ26c.js → components-CDpaMUjK.js} +1 -1
  56. package/dist/{components-BCfFLf9X.cjs → components-DKwVHIjq.cjs} +1 -1
  57. package/dist/config/index.cjs +4 -4
  58. package/dist/config/index.js +4 -4
  59. package/dist/config/locators/components/chat/index.cjs +1 -1
  60. package/dist/config/locators/components/chat/index.js +1 -1
  61. package/dist/config/locators/components/common/index.cjs +1 -1
  62. package/dist/config/locators/components/common/index.js +1 -1
  63. package/dist/config/locators/components/index.cjs +1 -1
  64. package/dist/config/locators/components/index.js +1 -1
  65. package/dist/config/locators/index.cjs +4 -4
  66. package/dist/config/locators/index.js +4 -4
  67. package/dist/contexts/amplitudeContext/index.cjs +13 -13
  68. package/dist/contexts/amplitudeContext/index.d.cts +1 -1
  69. package/dist/contexts/amplitudeContext/index.js +13 -13
  70. package/dist/contexts/cdnContext/index.cjs +2 -2
  71. package/dist/contexts/cdnContext/index.d.cts +1 -1
  72. package/dist/contexts/cdnContext/index.js +2 -2
  73. package/dist/contexts/enviveConfigContext/index.cjs +2 -2
  74. package/dist/contexts/enviveConfigContext/index.d.cts +1 -1
  75. package/dist/contexts/enviveConfigContext/index.js +2 -2
  76. package/dist/contexts/enviveCssContext/index.cjs +7 -7
  77. package/dist/contexts/enviveCssContext/index.d.cts +1 -1
  78. package/dist/contexts/enviveCssContext/index.js +7 -7
  79. package/dist/contexts/featureFlagContext/index.cjs +2 -2
  80. package/dist/contexts/featureFlagContext/index.js +2 -2
  81. package/dist/contexts/featureFlagServiceContext/index.cjs +1 -1
  82. package/dist/contexts/featureFlagServiceContext/index.js +1 -1
  83. package/dist/contexts/graphqlContext/index.cjs +2 -2
  84. package/dist/contexts/graphqlContext/index.js +2 -2
  85. package/dist/contexts/newOrgConfigContext/index.cjs +6 -6
  86. package/dist/contexts/newOrgConfigContext/index.d.cts +1 -1
  87. package/dist/contexts/newOrgConfigContext/index.js +6 -6
  88. package/dist/contexts/searchContext/index.cjs +15 -15
  89. package/dist/contexts/searchContext/index.js +15 -15
  90. package/dist/contexts/shopifyUrlContext/index.cjs +2 -2
  91. package/dist/contexts/shopifyUrlContext/index.d.cts +1 -1
  92. package/dist/contexts/shopifyUrlContext/index.js +2 -2
  93. package/dist/contexts/systemSettingsContext/index.cjs +2 -2
  94. package/dist/contexts/systemSettingsContext/index.d.ts +2 -2
  95. package/dist/contexts/systemSettingsContext/index.js +2 -2
  96. package/dist/contexts/userIdentityContext/index.cjs +9 -9
  97. package/dist/contexts/userIdentityContext/index.js +9 -9
  98. package/dist/{domObserver-DNeeSh1F.js → domObserver-CVhsCSkS.js} +1 -1
  99. package/dist/{domObserver-C2oQO8vi.cjs → domObserver-LCBj1xw4.cjs} +1 -1
  100. package/dist/{enviveConfig-Dp80h9yu.cjs → enviveConfig-CQ_8mT-g.cjs} +1 -1
  101. package/dist/{enviveConfig-Ciq4ASoV.js → enviveConfig-Cwlp7-Qz.js} +1 -1
  102. package/dist/{enviveConfigContext-CCjJUmwp.js → enviveConfigContext-BG1ihSHO.js} +2 -2
  103. package/dist/{enviveConfigContext-DoYP8KSw.cjs → enviveConfigContext-Cn83IoUd.cjs} +2 -2
  104. package/dist/events/index.cjs +1 -1
  105. package/dist/events/index.js +1 -1
  106. package/dist/{events-DBin1Z7o.cjs → events-CgFGtanE.cjs} +1 -1
  107. package/dist/{events-CXiS1aTc.js → events-WOOrnUAx.js} +1 -1
  108. package/dist/exceptions/index.d.cts +1 -1
  109. package/dist/{featureFlagServiceContext-Cvp7NlpC.js → featureFlagServiceContext-Dr8Cw23n.js} +1 -1
  110. package/dist/{featureFlagServiceContext-DHtkQAtq.cjs → featureFlagServiceContext-rxZhpdEj.cjs} +1 -1
  111. package/dist/{globalSearch-Cpc8egsM.cjs → globalSearch-DEKvpWV-.cjs} +1 -1
  112. package/dist/{globalSearch-nmrfGLOn.js → globalSearch-D_nMjrlf.js} +1 -1
  113. package/dist/{graphqlContext-ChXlE8Ul.cjs → graphqlContext-B8wuRZcp.cjs} +2 -2
  114. package/dist/{graphqlContext-0cg9fEUw.js → graphqlContext-CpHMbKoX.js} +2 -2
  115. package/dist/hooks/AmplitudeOperations/index.cjs +14 -14
  116. package/dist/hooks/AmplitudeOperations/index.d.cts +1 -1
  117. package/dist/hooks/AmplitudeOperations/index.js +14 -14
  118. package/dist/hooks/AppDetails/index.cjs +12 -12
  119. package/dist/hooks/AppDetails/index.js +12 -12
  120. package/dist/hooks/BlockBackButton/index.d.cts +1 -1
  121. package/dist/hooks/CdnOperations/index.cjs +2 -2
  122. package/dist/hooks/CdnOperations/index.d.cts +1 -1
  123. package/dist/hooks/CdnOperations/index.d.ts +1 -1
  124. package/dist/hooks/CdnOperations/index.js +2 -2
  125. package/dist/hooks/ChatToggle/index.cjs +16 -16
  126. package/dist/hooks/ChatToggle/index.d.cts +1 -1
  127. package/dist/hooks/ChatToggle/index.js +16 -16
  128. package/dist/hooks/ChatToggleAnalytics/index.cjs +15 -15
  129. package/dist/hooks/ChatToggleAnalytics/index.d.cts +1 -1
  130. package/dist/hooks/ChatToggleAnalytics/index.js +15 -15
  131. package/dist/hooks/Debounce/index.d.cts +1 -1
  132. package/dist/hooks/ElementObserver/index.cjs +1 -1
  133. package/dist/hooks/ElementObserver/index.js +1 -1
  134. package/dist/hooks/GrabAndScroll/index.d.cts +2 -2
  135. package/dist/hooks/GraphQLConfig/index.cjs +3 -3
  136. package/dist/hooks/GraphQLConfig/index.d.cts +1 -1
  137. package/dist/hooks/GraphQLConfig/index.js +3 -3
  138. package/dist/hooks/IdentifyUser/index.cjs +9 -9
  139. package/dist/hooks/IdentifyUser/index.d.cts +1 -1
  140. package/dist/hooks/IdentifyUser/index.js +9 -9
  141. package/dist/hooks/ImageResolver/index.cjs +1 -1
  142. package/dist/hooks/ImageResolver/index.d.cts +1 -1
  143. package/dist/hooks/ImageResolver/index.js +1 -1
  144. package/dist/hooks/IsSmallScreen/index.d.cts +1 -1
  145. package/dist/hooks/LocalStorageOperations/index.d.cts +1 -1
  146. package/dist/hooks/MessageFilter/index.d.cts +1 -1
  147. package/dist/hooks/MessageScrollObserver/index.d.cts +1 -1
  148. package/dist/hooks/NewOrgConfig/index.cjs +7 -7
  149. package/dist/hooks/NewOrgConfig/index.d.cts +2 -2
  150. package/dist/hooks/NewOrgConfig/index.js +7 -7
  151. package/dist/hooks/Search/index.cjs +20 -20
  152. package/dist/hooks/Search/index.js +20 -20
  153. package/dist/hooks/SearchOperations/index.cjs +15 -15
  154. package/dist/hooks/SearchOperations/index.js +15 -15
  155. package/dist/hooks/ShopifyUrlOperations/index.cjs +2 -2
  156. package/dist/hooks/ShopifyUrlOperations/index.js +2 -2
  157. package/dist/hooks/SystemSettingsContext/index.cjs +2 -2
  158. package/dist/hooks/SystemSettingsContext/index.d.cts +4 -4
  159. package/dist/hooks/SystemSettingsContext/index.d.ts +2 -2
  160. package/dist/hooks/SystemSettingsContext/index.js +2 -2
  161. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +14 -14
  162. package/dist/hooks/TrackComponentVisibleEvent/index.js +14 -14
  163. package/dist/hooks/UpdateAnalyticsProps/index.cjs +13 -13
  164. package/dist/hooks/UpdateAnalyticsProps/index.js +13 -13
  165. package/dist/hooks/utils.cjs +1 -1
  166. package/dist/hooks/utils.d.cts +1 -1
  167. package/dist/hooks/utils.js +1 -1
  168. package/dist/index-BVZbvpx_.d.cts +1 -1
  169. package/dist/index-CMZcE7pk.d.cts +1 -1
  170. package/dist/index-ChiZg0yw.d.cts +1 -1
  171. package/dist/index-DtzPIcQp.d.ts +1 -1
  172. package/dist/index-bEjLKG_Q.d.ts +1 -1
  173. package/dist/{locators-C2fWd-74.js → locators-BMQGmGLq.js} +1 -1
  174. package/dist/{locators-Cx3q6Z_h.cjs → locators-DxYdak1F.cjs} +1 -1
  175. package/dist/{newOrgConfigAtom-BuQE_zPK.js → newOrgConfigAtom-C8h3w_Ji.js} +1 -1
  176. package/dist/{newOrgConfigAtom-rrYHmp1b.cjs → newOrgConfigAtom-CDttTiuu.cjs} +1 -1
  177. package/dist/{newOrgConfigContext-D-gU5ppl.js → newOrgConfigContext-BdzDnzUM.js} +5 -5
  178. package/dist/{newOrgConfigContext-d3RHl430.cjs → newOrgConfigContext-cWeJAT6E.cjs} +5 -5
  179. package/dist/{org-CIFgIcO4.cjs → org-BNs_maoW.cjs} +1 -1
  180. package/dist/{org-15F128Ah.js → org-CScQqL4k.js} +1 -1
  181. package/dist/{search-Ch6LKNh4.cjs → search-B8HIKjWF.cjs} +4 -4
  182. package/dist/{search--80x6CfL.js → search-BFXfnniE.js} +4 -4
  183. package/dist/{searchContext-BkPoTq1o.js → searchContext-C3qxKrms.js} +5 -5
  184. package/dist/{searchContext-B0qEUoKb.cjs → searchContext-sVRHEtSD.cjs} +5 -5
  185. package/dist/{searchServiceAdapter-BclWy4fE.cjs → searchServiceAdapter-6Mjz87ZL.cjs} +1 -1
  186. package/dist/{searchServiceAdapter-B0h7psvh.js → searchServiceAdapter-BpmMMb01.js} +1 -1
  187. package/dist/{shopifyUrlContext-Bw1kAZ2P.cjs → shopifyUrlContext-COc1eDR_.cjs} +2 -2
  188. package/dist/{shopifyUrlContext-DnJiUmMA.js → shopifyUrlContext-CToAt_98.js} +2 -2
  189. package/dist/{systemSettingsContext-DPdDfVhj.js → systemSettingsContext-D9iNGz5v.js} +2 -2
  190. package/dist/{systemSettingsContext-068vQuP2.cjs → systemSettingsContext-DdV7Yte8.cjs} +2 -2
  191. package/dist/types/index.cjs +1 -1
  192. package/dist/types/index.js +1 -1
  193. package/dist/{types-B8HZYWV3.cjs → types-1iJ_FnQQ.cjs} +1 -1
  194. package/dist/{types-y3mhxOUA.js → types-D5du68Vp.js} +1 -1
  195. package/dist/{urlsParser-bb8ciRFg.cjs → urlsParser-Dax4iVNC.cjs} +1 -1
  196. package/dist/{urlsParser-v_1DKvyf.js → urlsParser-NAp2LwWP.js} +1 -1
  197. package/dist/{useAppDetails-eP2hBuid.cjs → useAppDetails-D3T6kJY_.cjs} +4 -4
  198. package/dist/{useAppDetails-BPXln8UE.js → useAppDetails-xPVs6fW7.js} +4 -4
  199. package/dist/{useGraphQLConfig-v9veUbvJ.cjs → useGraphQLConfig-B1DaVvFx.cjs} +2 -2
  200. package/dist/{useGraphQLConfig-Btszi6cG.js → useGraphQLConfig-BtPxjtxw.js} +2 -2
  201. package/dist/{utils-D_nGHczN.js → utils-BZT_oZ3n.js} +1 -1
  202. package/dist/{utils-CqVRbvfN.cjs → utils-C8_J5a8M.cjs} +1 -1
  203. package/dist/{utils-DQhbbAnt.js → utils-CkYtC91V.js} +1 -1
  204. package/dist/{utils-SjlIHajO.cjs → utils-D3MjNkd3.cjs} +2 -2
  205. package/dist/{utils-CWzuvlOR.js → utils-DMwh3QbT.js} +2 -2
  206. package/dist/{utils-CJk5iwQI.cjs → utils-qtHPLFby.cjs} +1 -1
  207. package/package.json +1 -1
  208. package/src/contexts/amplitudeContext/amplitudeContext.tsx +11 -3
  209. package/src/contexts/cdnContext/cdnContext.tsx +11 -9
  210. package/dist/src/application/commerce-api.js +0 -408
  211. package/dist/src/application/logging/logger.js +0 -16
  212. package/dist/src/application/models/graphql/index.js +0 -3
  213. package/dist/src/application/models/graphql/queries/getMerchantColorsQuery.js +0 -13
  214. package/dist/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.js +0 -13
  215. package/dist/src/application/models/graphql/queries/getMerchantOrgIdQuery.js +0 -10
  216. package/dist/src/application/models/guards/api/index.js +0 -12
  217. package/dist/src/application/models/guards/api/isApiFormResponse.js +0 -59
  218. package/dist/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +0 -22
  219. package/dist/src/application/models/guards/api/isApiOrderResponseAttributes.js +0 -91
  220. package/dist/src/application/models/guards/api/isApiOrgConfigResults.js +0 -188
  221. package/dist/src/application/models/guards/api/isApiOrganizationConfig.js +0 -115
  222. package/dist/src/application/models/guards/api/isApiPDPEventAttributes.js +0 -16
  223. package/dist/src/application/models/guards/api/isApiPLPEventAttributes.js +0 -26
  224. package/dist/src/application/models/guards/api/isApiPageResponseAttributes.js +0 -15
  225. package/dist/src/application/models/guards/api/isApiProductResponseAttributes.js +0 -65
  226. package/dist/src/application/models/guards/api/isApiProductSearchAttributes.js +0 -15
  227. package/dist/src/application/models/guards/api/isApiProductSearchFilterAttributes.js +0 -10
  228. package/dist/src/application/models/guards/api/isApiQueryTypedEventAttributes.js +0 -4
  229. package/dist/src/application/models/guards/api/isApiResponse.js +0 -33
  230. package/dist/src/application/models/guards/api/isApiReviewResponseAttributes.js +0 -22
  231. package/dist/src/application/models/guards/api/isApiReviewRichInformation.js +0 -23
  232. package/dist/src/application/models/guards/api/isApiSearchEventAttributes.js +0 -20
  233. package/dist/src/application/models/guards/api/isApiSuggestion.js +0 -24
  234. package/dist/src/application/models/guards/api/isApiSuggestionClickedEventAttributes.js +0 -4
  235. package/dist/src/application/models/guards/api/isApiTextResponseAttributes.js +0 -4
  236. package/dist/src/application/models/guards/api/isApiUserEvent.js +0 -18
  237. package/dist/src/application/models/guards/graphQL/isGraphQLColorsConfig.js +0 -41
  238. package/dist/src/application/models/guards/isBaseEcommerceEvent.js +0 -14
  239. package/dist/src/application/models/guards/isGA4EcommerceEvent.js +0 -14
  240. package/dist/src/application/models/guards/isLegacyUAEcommerceEvent.js +0 -14
  241. package/dist/src/application/models/guards/isMobilePLPChatPlacementParameter.js +0 -4
  242. package/dist/src/application/models/guards/isSpanxTakeAQuizCtaParameter.js +0 -1
  243. package/dist/src/application/models/guards/isVariantInfo.js +0 -28
  244. package/dist/src/application/models/guards/utils.js +0 -34
  245. package/dist/src/application/models/index.js +0 -34
  246. package/dist/src/application/models/utils/snakeToCamelTransformer.js +0 -71
  247. package/dist/src/application/models/utils/stringToFulfillmentDisplayStatusEnumValue.js +0 -65
  248. package/dist/src/application/models/validators/validateGraphQLColorsConfig.js +0 -9
  249. package/dist/src/application/models/validators/validateGraphQLFrontendConfig.js +0 -420
  250. package/dist/src/application/models/validators/validateGraphQLOrgId.js +0 -6
  251. package/dist/src/application/models/validators/validateMobilePLPChatPlacementParameter.js +0 -9
  252. package/dist/src/application/models/validators/validateOrgConfigResults.js +0 -44
  253. package/dist/src/application/models/validators/validateOrganizationConfig.js +0 -34
  254. package/dist/src/application/models/validators/validateResponse.js +0 -173
  255. package/dist/src/application/models/validators/validateSuggestion.js +0 -13
  256. package/dist/src/application/models/validators/validateUserEvent.js +0 -91
  257. package/dist/src/application/utils/analyticsUtils.js +0 -95
  258. package/dist/src/application/utils/coreContextToApiContext.js +0 -8
  259. package/dist/src/application/utils/coreUserEventToApiUserEvent.js +0 -90
  260. package/dist/src/application/utils/divideArray.js +0 -7
  261. package/dist/src/application/utils/domObserver.js +0 -85
  262. package/dist/src/application/utils/elementObserver.js +0 -186
  263. package/dist/src/application/utils/imageFilter.js +0 -11
  264. package/dist/src/application/utils/index.js +0 -21
  265. package/dist/src/application/utils/merchantUtils.js +0 -15
  266. package/dist/src/application/utils/messageFromFormSubmittedEvent.js +0 -19
  267. package/dist/src/application/utils/messageFromQueryEvent.js +0 -35
  268. package/dist/src/application/utils/messageFromResponse.js +0 -123
  269. package/dist/src/application/utils/messageFromSuggestionEvent.js +0 -27
  270. package/dist/src/application/utils/mouseEventTypes.js +0 -1
  271. package/dist/src/application/utils/mutationHelper.js +0 -33
  272. package/dist/src/application/utils/nextMessageRequestToApiRequest.js +0 -29
  273. package/dist/src/application/utils/nodeSelector.js +0 -101
  274. package/dist/src/application/utils/overrides.js +0 -144
  275. package/dist/src/application/utils/stringUtils.js +0 -47
  276. package/dist/src/application/utils/supportedEventRequestToApiRequest.js +0 -7
  277. package/dist/src/application/utils/urlsParser.js +0 -33
  278. package/dist/src/application/utils/validation.js +0 -5
  279. package/dist/src/atoms/amplitude/amplitudeTrackEventAtom.js +0 -4
  280. package/dist/src/atoms/app/index.js +0 -23
  281. package/dist/src/atoms/app/variant.js +0 -102
  282. package/dist/src/atoms/atomStore/atomStore.js +0 -28
  283. package/dist/src/atoms/atomStore/index.js +0 -1
  284. package/dist/src/atoms/chat/chatState.js +0 -32
  285. package/dist/src/atoms/chat/form.js +0 -16
  286. package/dist/src/atoms/chat/index.js +0 -23
  287. package/dist/src/atoms/chat/lastMessage.js +0 -10
  288. package/dist/src/atoms/chat/messageQueue.js +0 -68
  289. package/dist/src/atoms/chat/performanceMetrics.js +0 -70
  290. package/dist/src/atoms/chat/renderedWidgetRefs.js +0 -24
  291. package/dist/src/atoms/chat/replies.js +0 -42
  292. package/dist/src/atoms/chat/suggestions.js +0 -29
  293. package/dist/src/atoms/envive/enviveConfig.js +0 -67
  294. package/dist/src/atoms/globalSearch/globalSearch.js +0 -8
  295. package/dist/src/atoms/globalSearch/index.js +0 -1
  296. package/dist/src/atoms/org/customerService.js +0 -6
  297. package/dist/src/atoms/org/graphqlConfig.js +0 -8
  298. package/dist/src/atoms/org/index.js +0 -4
  299. package/dist/src/atoms/org/newOrgConfigAtom.js +0 -2
  300. package/dist/src/atoms/org/orgAnalyticsConfig.js +0 -8
  301. package/dist/src/atoms/search/index.js +0 -1
  302. package/dist/src/atoms/search/productFilters.js +0 -163
  303. package/dist/src/atoms/search/productRetrievalAPI.js +0 -50
  304. package/dist/src/atoms/search/productRetrievalAdapter.js +0 -14
  305. package/dist/src/atoms/search/productSorter.js +0 -13
  306. package/dist/src/atoms/search/searchAPI.js +0 -140
  307. package/dist/src/atoms/search/searchServiceAdapter.js +0 -14
  308. package/dist/src/atoms/search/utils.js +0 -15
  309. package/dist/src/config/index.js +0 -1
  310. package/dist/src/config/locators/components/chat/entrypoints.js +0 -10
  311. package/dist/src/config/locators/components/chat/index.js +0 -21
  312. package/dist/src/config/locators/components/chat/preview.js +0 -11
  313. package/dist/src/config/locators/components/chat/variants/index.js +0 -12
  314. package/dist/src/config/locators/components/common/buttons.js +0 -6
  315. package/dist/src/config/locators/components/common/cards.js +0 -17
  316. package/dist/src/config/locators/components/common/index.js +0 -4
  317. package/dist/src/config/locators/components/common/links.js +0 -1
  318. package/dist/src/config/locators/components/common/tables.js +0 -1
  319. package/dist/src/config/locators/components/floating-button.js +0 -2
  320. package/dist/src/config/locators/components/index.js +0 -3
  321. package/dist/src/config/locators/components/report-issue.js +0 -13
  322. package/dist/src/config/locators/components/search/index.js +0 -5
  323. package/dist/src/config/locators/components/shadow-dom.js +0 -1
  324. package/dist/src/config/locators/embedded.js +0 -20
  325. package/dist/src/config/locators/index.js +0 -4
  326. package/dist/src/contexts/amplitudeContext/amplitudeContext.js +0 -271
  327. package/dist/src/contexts/amplitudeContext/index.js +0 -1
  328. package/dist/src/contexts/cdnContext/cdnContext.js +0 -28
  329. package/dist/src/contexts/cdnContext/index.js +0 -1
  330. package/dist/src/contexts/enviveConfigContext/enviveConfigContext.js +0 -37
  331. package/dist/src/contexts/enviveConfigContext/index.js +0 -1
  332. package/dist/src/contexts/enviveCssContext/enviveCssContext.js +0 -31
  333. package/dist/src/contexts/enviveCssContext/index.js +0 -1
  334. package/dist/src/contexts/featureFlagContext/featureFlagContext.js +0 -109
  335. package/dist/src/contexts/featureFlagContext/index.js +0 -1
  336. package/dist/src/contexts/featureFlagServiceContext/featureFlagServiceContext.js +0 -47
  337. package/dist/src/contexts/featureFlagServiceContext/index.js +0 -1
  338. package/dist/src/contexts/graphqlContext/graphqlContext.js +0 -87
  339. package/dist/src/contexts/graphqlContext/index.js +0 -1
  340. package/dist/src/contexts/localStorageContext/index.js +0 -1
  341. package/dist/src/contexts/localStorageContext/localStorageContext.js +0 -95
  342. package/dist/src/contexts/newOrgConfigContext/index.js +0 -1
  343. package/dist/src/contexts/newOrgConfigContext/newOrgConfigContext.js +0 -33
  344. package/dist/src/contexts/searchContext/index.js +0 -1
  345. package/dist/src/contexts/searchContext/searchContext.js +0 -131
  346. package/dist/src/contexts/sessionStorageContext/index.js +0 -1
  347. package/dist/src/contexts/sessionStorageContext/sessionStorageContext.js +0 -43
  348. package/dist/src/contexts/shopifyUrlContext/index.js +0 -1
  349. package/dist/src/contexts/shopifyUrlContext/shopifyUrlContext.js +0 -62
  350. package/dist/src/contexts/systemSettingsContext/index.js +0 -1
  351. package/dist/src/contexts/systemSettingsContext/systemSettingsContext.js +0 -29
  352. package/dist/src/contexts/userIdentityContext/index.js +0 -1
  353. package/dist/src/contexts/userIdentityContext/userIdentityContext.js +0 -118
  354. package/dist/src/events/index.js +0 -51
  355. package/dist/src/events/registerAnalyticsListeners.js +0 -32
  356. package/dist/src/exceptions/index.js +0 -2
  357. package/dist/src/exceptions/sessionExceptions.js +0 -6
  358. package/dist/src/exceptions/unsupportedProductExceptions.js +0 -6
  359. package/dist/src/hooks/AmplitudeOperations/index.js +0 -1
  360. package/dist/src/hooks/AmplitudeOperations/useAmplitudeOperations.js +0 -24
  361. package/dist/src/hooks/AppDetails/index.js +0 -1
  362. package/dist/src/hooks/AppDetails/useAppDetails.js +0 -26
  363. package/dist/src/hooks/BlockBackButton/index.js +0 -1
  364. package/dist/src/hooks/BlockBackButton/useBlockBackButton.js +0 -23
  365. package/dist/src/hooks/CdnOperations/index.js +0 -1
  366. package/dist/src/hooks/CdnOperations/useCdnOperations.js +0 -13
  367. package/dist/src/hooks/ChatToggle/index.js +0 -1
  368. package/dist/src/hooks/ChatToggle/useChatToggle.js +0 -50
  369. package/dist/src/hooks/ChatToggleAnalytics/index.js +0 -1
  370. package/dist/src/hooks/ChatToggleAnalytics/useChatToggleAnalytics.js +0 -11
  371. package/dist/src/hooks/CustomerSupportHandoff/index.js +0 -1
  372. package/dist/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.js +0 -32
  373. package/dist/src/hooks/Debounce/index.js +0 -1
  374. package/dist/src/hooks/Debounce/useDebounce.js +0 -13
  375. package/dist/src/hooks/ElementObserver/index.js +0 -1
  376. package/dist/src/hooks/ElementObserver/useElementObserver.js +0 -208
  377. package/dist/src/hooks/GrabAndScroll/index.js +0 -1
  378. package/dist/src/hooks/GrabAndScroll/useGrabAndScroll.js +0 -105
  379. package/dist/src/hooks/GraphQLConfig/index.js +0 -1
  380. package/dist/src/hooks/GraphQLConfig/useGraphQLConfig.js +0 -54
  381. package/dist/src/hooks/IdentifyUser/index.js +0 -1
  382. package/dist/src/hooks/IdentifyUser/useIdentifyUser.js +0 -28
  383. package/dist/src/hooks/ImageResolver/index.js +0 -1
  384. package/dist/src/hooks/ImageResolver/useImageResolver.js +0 -45
  385. package/dist/src/hooks/Intersection/index.js +0 -1
  386. package/dist/src/hooks/Intersection/useIntersection.js +0 -20
  387. package/dist/src/hooks/IsSmallScreen/index.js +0 -1
  388. package/dist/src/hooks/IsSmallScreen/useIsSmallScreen.js +0 -16
  389. package/dist/src/hooks/LocalStorageOperations/index.js +0 -1
  390. package/dist/src/hooks/LocalStorageOperations/useLocalStorageOperations.js +0 -64
  391. package/dist/src/hooks/MessageFilter/index.js +0 -1
  392. package/dist/src/hooks/MessageFilter/useMessageFilter.js +0 -37
  393. package/dist/src/hooks/MessageScrollObserver/index.js +0 -1
  394. package/dist/src/hooks/MessageScrollObserver/useMessageScrollObserver.js +0 -35
  395. package/dist/src/hooks/NewOrgConfig/index.js +0 -1
  396. package/dist/src/hooks/NewOrgConfig/useNewOrgConfig.js +0 -5
  397. package/dist/src/hooks/Search/index.js +0 -1
  398. package/dist/src/hooks/Search/useRecommendedProducts.js +0 -35
  399. package/dist/src/hooks/Search/useSearch.js +0 -224
  400. package/dist/src/hooks/Search/useSearchInput.js +0 -192
  401. package/dist/src/hooks/SearchOperations/index.js +0 -1
  402. package/dist/src/hooks/SearchOperations/useSearchOperations.js +0 -78
  403. package/dist/src/hooks/SessionStorageOperations/index.js +0 -1
  404. package/dist/src/hooks/SessionStorageOperations/useSessionStorageOperations.js +0 -20
  405. package/dist/src/hooks/ShopifyUrlOperations/index.js +0 -1
  406. package/dist/src/hooks/ShopifyUrlOperations/useShopifyUrlOperations.js +0 -34
  407. package/dist/src/hooks/SnapCalculator/index.js +0 -1
  408. package/dist/src/hooks/SnapCalculator/useSnapCalculator.js +0 -22
  409. package/dist/src/hooks/SystemSettingsContext/index.js +0 -1
  410. package/dist/src/hooks/SystemSettingsContext/useSystemSettingsContext.js +0 -9
  411. package/dist/src/hooks/TrackComponentVisibleEvent/index.js +0 -1
  412. package/dist/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +0 -45
  413. package/dist/src/hooks/UpdateAnalyticsProps/index.js +0 -1
  414. package/dist/src/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.js +0 -43
  415. package/dist/src/hooks/utils.js +0 -116
  416. package/dist/src/interceptors/index.js +0 -1
  417. package/dist/src/interceptors/useMessageInterceptor.js +0 -24
  418. package/dist/src/types/ApiResponse.js +0 -1
  419. package/dist/src/types/FilterAttribute.js +0 -3
  420. package/dist/src/types/Message.js +0 -24
  421. package/dist/src/types/Suggestion.js +0 -3
  422. package/dist/src/types/index.js +0 -4
  423. package/dist/src/util/colorVar.js +0 -3
  424. package/dist/src/util/configVersion.js +0 -4
  425. package/dist/src/util/domInsertion.js +0 -16
@@ -1,6 +1,6 @@
1
1
  require('../../dist-VxRI6eQv.cjs');
2
2
  require('../../logger-BqHq67zN.cjs');
3
- const require_featureFlagServiceContext = require('../../featureFlagServiceContext-DHtkQAtq.cjs');
3
+ const require_featureFlagServiceContext = require('../../featureFlagServiceContext-rxZhpdEj.cjs');
4
4
  require('../../featureFlagServiceContext-Csgo-MUv.cjs');
5
5
 
6
6
  exports.FeatureFlagService = require_featureFlagServiceContext.FeatureFlagService;
@@ -1,6 +1,6 @@
1
1
  import "../../dist-C38adNK1.js";
2
2
  import "../../logger-BMVdhQOV.js";
3
- import { FeatureFlagService, FeatureFlagServiceProvider, useFeatureFlagService } from "../../featureFlagServiceContext-Cvp7NlpC.js";
3
+ import { FeatureFlagService, FeatureFlagServiceProvider, useFeatureFlagService } from "../../featureFlagServiceContext-Dr8Cw23n.js";
4
4
  import "../../featureFlagServiceContext-CISyb90N.js";
5
5
 
6
6
  export { FeatureFlagService, FeatureFlagServiceProvider, useFeatureFlagService };
@@ -4,8 +4,8 @@ require('../../models-Dl0_Ujgj.cjs');
4
4
  require('../../utils-CiJLDPjY.cjs');
5
5
  require('../../api-D4Xoibs9.cjs');
6
6
  require('../../logger-BqHq67zN.cjs');
7
- require('../../enviveConfig-Dp80h9yu.cjs');
8
- const require_graphqlContext = require('../../graphqlContext-ChXlE8Ul.cjs');
7
+ require('../../enviveConfig-CQ_8mT-g.cjs');
8
+ const require_graphqlContext = require('../../graphqlContext-B8wuRZcp.cjs');
9
9
 
10
10
  exports.GraphQLProvider = require_graphqlContext.GraphQLProvider;
11
11
  exports.useGraphQLClient = require_graphqlContext.useGraphQLClient;
@@ -4,7 +4,7 @@ import "../../models-Cw0QcbQv.js";
4
4
  import "../../utils-B1LVzQYK.js";
5
5
  import "../../api-D4HaU2Gf.js";
6
6
  import "../../logger-BMVdhQOV.js";
7
- import "../../enviveConfig-Ciq4ASoV.js";
8
- import { GraphQLProvider, useGraphQLClient } from "../../graphqlContext-0cg9fEUw.js";
7
+ import "../../enviveConfig-Cwlp7-Qz.js";
8
+ import { GraphQLProvider, useGraphQLClient } from "../../graphqlContext-CpHMbKoX.js";
9
9
 
10
10
  export { GraphQLProvider, useGraphQLClient };
@@ -4,13 +4,13 @@ require('../../models-Dl0_Ujgj.cjs');
4
4
  require('../../utils-CiJLDPjY.cjs');
5
5
  require('../../api-D4Xoibs9.cjs');
6
6
  require('../../logger-BqHq67zN.cjs');
7
- require('../../enviveConfig-Dp80h9yu.cjs');
8
- require('../../newOrgConfigAtom-rrYHmp1b.cjs');
9
- require('../../featureFlagServiceContext-DHtkQAtq.cjs');
10
- require('../../graphqlContext-ChXlE8Ul.cjs');
11
- require('../../useGraphQLConfig-v9veUbvJ.cjs');
7
+ require('../../enviveConfig-CQ_8mT-g.cjs');
8
+ require('../../newOrgConfigAtom-CDttTiuu.cjs');
9
+ require('../../featureFlagServiceContext-rxZhpdEj.cjs');
10
+ require('../../graphqlContext-B8wuRZcp.cjs');
11
+ require('../../useGraphQLConfig-B1DaVvFx.cjs');
12
12
  require('../../featureFlagServiceContext-Csgo-MUv.cjs');
13
- const require_newOrgConfigContext = require('../../newOrgConfigContext-d3RHl430.cjs');
13
+ const require_newOrgConfigContext = require('../../newOrgConfigContext-cWeJAT6E.cjs');
14
14
 
15
15
  exports.NewOrgConfigProvider = require_newOrgConfigContext.NewOrgConfigProvider;
16
16
  exports.useNewOrgConfigContext = require_newOrgConfigContext.useNewOrgConfigContext;
@@ -9,4 +9,4 @@ declare const NewOrgConfigProvider: React.FC<NewOrgConfigProviderProps>;
9
9
  declare const useNewOrgConfigContext: () => NewOrgConfigContextType;
10
10
  //#endregion
11
11
  export { NewOrgConfigProvider, useNewOrgConfigContext };
12
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL25ld09yZ0NvbmZpZ0NvbnRleHQvbmV3T3JnQ29uZmlnQ29udGV4dC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBOZXdPcmdDb25maWdDb250ZXh0VHlwZSB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW50ZXJmYWNlIE5ld09yZ0NvbmZpZ1Byb3ZpZGVyUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBOZXdPcmdDb25maWdQcm92aWRlcjogUmVhY3QuRkM8TmV3T3JnQ29uZmlnUHJvdmlkZXJQcm9wcz47XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VOZXdPcmdDb25maWdDb250ZXh0OiAoKSA9PiBOZXdPcmdDb25maWdDb250ZXh0VHlwZTtcbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQUksNEJBQTRCLENBQUMsV0FBRyxVQUFBO0FBQ3BDLElBQVcsdUJBQVk7Q0FBQTtPQUFBO09BQUEsTUFBQTtDQUFBO0FBQ3ZCLElBQUEseUJBQUEsQ0FBQSxXQUFBLHdCQUFBIn0=
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL25ld09yZ0NvbmZpZ0NvbnRleHQvbmV3T3JnQ29uZmlnQ29udGV4dC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBOZXdPcmdDb25maWdDb250ZXh0VHlwZSB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW50ZXJmYWNlIE5ld09yZ0NvbmZpZ1Byb3ZpZGVyUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBOZXdPcmdDb25maWdQcm92aWRlcjogUmVhY3QuRkM8TmV3T3JnQ29uZmlnUHJvdmlkZXJQcm9wcz47XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VOZXdPcmdDb25maWdDb250ZXh0OiAoKSA9PiBOZXdPcmdDb25maWdDb250ZXh0VHlwZTtcbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQUksNEJBQTRCLENBQUMsVUFBRyxVQUFBO0FBQ3BDLElBQVcsdUJBQVk7Q0FBQTtPQUFBO09BQUEsTUFBQTtDQUFBO0FBQ3ZCLElBQUEseUJBQUEsQ0FBQSxVQUFBLHdCQUFBIn0=
@@ -4,12 +4,12 @@ import "../../models-Cw0QcbQv.js";
4
4
  import "../../utils-B1LVzQYK.js";
5
5
  import "../../api-D4HaU2Gf.js";
6
6
  import "../../logger-BMVdhQOV.js";
7
- import "../../enviveConfig-Ciq4ASoV.js";
8
- import "../../newOrgConfigAtom-BuQE_zPK.js";
9
- import "../../featureFlagServiceContext-Cvp7NlpC.js";
10
- import "../../graphqlContext-0cg9fEUw.js";
11
- import "../../useGraphQLConfig-Btszi6cG.js";
7
+ import "../../enviveConfig-Cwlp7-Qz.js";
8
+ import "../../newOrgConfigAtom-C8h3w_Ji.js";
9
+ import "../../featureFlagServiceContext-Dr8Cw23n.js";
10
+ import "../../graphqlContext-CpHMbKoX.js";
11
+ import "../../useGraphQLConfig-BtPxjtxw.js";
12
12
  import "../../featureFlagServiceContext-CISyb90N.js";
13
- import { NewOrgConfigProvider, useNewOrgConfigContext } from "../../newOrgConfigContext-D-gU5ppl.js";
13
+ import { NewOrgConfigProvider, useNewOrgConfigContext } from "../../newOrgConfigContext-BdzDnzUM.js";
14
14
 
15
15
  export { NewOrgConfigProvider, useNewOrgConfigContext };
@@ -1,26 +1,26 @@
1
1
  require('../../exceptions-BjDgLzGi.cjs');
2
2
  require('../../dist-VxRI6eQv.cjs');
3
- require('../../types-B8HZYWV3.cjs');
3
+ require('../../types-1iJ_FnQQ.cjs');
4
4
  require('../../graphql-JaGqsToc.cjs');
5
5
  require('../../models-Dl0_Ujgj.cjs');
6
6
  require('../../utils-CiJLDPjY.cjs');
7
7
  require('../../api-D4Xoibs9.cjs');
8
8
  require('../../logger-BqHq67zN.cjs');
9
- require('../../atomStore-BQVO5haU.cjs');
10
- require('../../enviveConfig-Dp80h9yu.cjs');
11
- require('../../org-CIFgIcO4.cjs');
12
- require('../../newOrgConfigAtom-rrYHmp1b.cjs');
13
- require('../../utils-SjlIHajO.cjs');
14
- require('../../domObserver-C2oQO8vi.cjs');
15
- require('../../urlsParser-bb8ciRFg.cjs');
16
- require('../../app-DSnDDqcW.cjs');
9
+ require('../../utils-D3MjNkd3.cjs');
10
+ require('../../domObserver-LCBj1xw4.cjs');
11
+ require('../../urlsParser-Dax4iVNC.cjs');
12
+ require('../../atomStore-CZKe3itM.cjs');
13
+ require('../../enviveConfig-CQ_8mT-g.cjs');
14
+ require('../../org-BNs_maoW.cjs');
15
+ require('../../newOrgConfigAtom-CDttTiuu.cjs');
16
+ require('../../app-DxwdFQlv.cjs');
17
17
  require('../../localStorageContext-CWc5xJ6U.cjs');
18
- require('../../searchServiceAdapter-BclWy4fE.cjs');
19
- require('../../enviveConfigContext-DoYP8KSw.cjs');
20
- require('../../graphqlContext-ChXlE8Ul.cjs');
21
- require('../../useGraphQLConfig-v9veUbvJ.cjs');
22
- require('../../useAppDetails-eP2hBuid.cjs');
23
- const require_searchContext = require('../../searchContext-B0qEUoKb.cjs');
18
+ require('../../searchServiceAdapter-6Mjz87ZL.cjs');
19
+ require('../../enviveConfigContext-Cn83IoUd.cjs');
20
+ require('../../graphqlContext-B8wuRZcp.cjs');
21
+ require('../../useGraphQLConfig-B1DaVvFx.cjs');
22
+ require('../../useAppDetails-D3T6kJY_.cjs');
23
+ const require_searchContext = require('../../searchContext-sVRHEtSD.cjs');
24
24
 
25
25
  exports.SearchProvider = require_searchContext.SearchProvider;
26
26
  exports.useSearchService = require_searchContext.useSearchService;
@@ -1,25 +1,25 @@
1
1
  import "../../exceptions-CUGY31Ua.js";
2
2
  import "../../dist-C38adNK1.js";
3
- import "../../types-y3mhxOUA.js";
3
+ import "../../types-D5du68Vp.js";
4
4
  import "../../graphql-CvAHWmel.js";
5
5
  import "../../models-Cw0QcbQv.js";
6
6
  import "../../utils-B1LVzQYK.js";
7
7
  import "../../api-D4HaU2Gf.js";
8
8
  import "../../logger-BMVdhQOV.js";
9
- import "../../atomStore-CfzCqWB9.js";
10
- import "../../enviveConfig-Ciq4ASoV.js";
11
- import "../../org-15F128Ah.js";
12
- import "../../newOrgConfigAtom-BuQE_zPK.js";
13
- import "../../utils-CWzuvlOR.js";
14
- import "../../domObserver-DNeeSh1F.js";
15
- import "../../urlsParser-v_1DKvyf.js";
16
- import "../../app-Bs2KxG_8.js";
9
+ import "../../utils-DMwh3QbT.js";
10
+ import "../../domObserver-CVhsCSkS.js";
11
+ import "../../urlsParser-NAp2LwWP.js";
12
+ import "../../atomStore-BuopbV9k.js";
13
+ import "../../enviveConfig-Cwlp7-Qz.js";
14
+ import "../../org-CScQqL4k.js";
15
+ import "../../newOrgConfigAtom-C8h3w_Ji.js";
16
+ import "../../app-BT3g-mDp.js";
17
17
  import "../../localStorageContext-BFwvuEcf.js";
18
- import "../../searchServiceAdapter-B0h7psvh.js";
19
- import "../../enviveConfigContext-CCjJUmwp.js";
20
- import "../../graphqlContext-0cg9fEUw.js";
21
- import "../../useGraphQLConfig-Btszi6cG.js";
22
- import "../../useAppDetails-BPXln8UE.js";
23
- import { SearchProvider, useSearchService } from "../../searchContext-BkPoTq1o.js";
18
+ import "../../searchServiceAdapter-BpmMMb01.js";
19
+ import "../../enviveConfigContext-BG1ihSHO.js";
20
+ import "../../graphqlContext-CpHMbKoX.js";
21
+ import "../../useGraphQLConfig-BtPxjtxw.js";
22
+ import "../../useAppDetails-xPVs6fW7.js";
23
+ import { SearchProvider, useSearchService } from "../../searchContext-C3qxKrms.js";
24
24
 
25
25
  export { SearchProvider, useSearchService };
@@ -1,5 +1,5 @@
1
- require('../../urlsParser-bb8ciRFg.cjs');
2
- const require_shopifyUrlContext = require('../../shopifyUrlContext-Bw1kAZ2P.cjs');
1
+ require('../../urlsParser-Dax4iVNC.cjs');
2
+ const require_shopifyUrlContext = require('../../shopifyUrlContext-COc1eDR_.cjs');
3
3
 
4
4
  exports.ShopifyUrlProvider = require_shopifyUrlContext.ShopifyUrlProvider;
5
5
  exports.useShopifyUrl = require_shopifyUrlContext.useShopifyUrl;
@@ -8,4 +8,4 @@ declare const ShopifyUrlProvider: React.FC<{
8
8
  declare const useShopifyUrl: () => ShopifyUrlContextType;
9
9
  //#endregion
10
10
  export { ShopifyUrlProvider, useShopifyUrl };
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3Nob3BpZnlVcmxDb250ZXh0L3Nob3BpZnlVcmxDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNob3BpZnlVcmxDb250ZXh0VHlwZSB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgU2hvcGlmeVVybFByb3ZpZGVyOiBSZWFjdC5GQzx7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn0+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlU2hvcGlmeVVybDogKCkgPT4gU2hvcGlmeVVybENvbnRleHRUeXBlO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsSUFBVyxxQkFBcUI7Q0FBQztPQUFVLE1BQU07T0FBQyxNQUFBO0NBQUE7QUFDbEQsSUFBVyxnQkFBZ0IsQ0FBQyxVQUFDLHNCQUFBIn0=
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3Nob3BpZnlVcmxDb250ZXh0L3Nob3BpZnlVcmxDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNob3BpZnlVcmxDb250ZXh0VHlwZSB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgU2hvcGlmeVVybFByb3ZpZGVyOiBSZWFjdC5GQzx7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn0+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlU2hvcGlmeVVybDogKCkgPT4gU2hvcGlmeVVybENvbnRleHRUeXBlO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsSUFBVyxxQkFBcUI7Q0FBQztPQUFXLE1BQU07T0FBQSxNQUFBO0NBQUE7QUFDbEQsSUFBVyxnQkFBZ0IsQ0FBQyxXQUFDLHNCQUFBIn0=
@@ -1,4 +1,4 @@
1
- import "../../urlsParser-v_1DKvyf.js";
2
- import { ShopifyUrlProvider, useShopifyUrl } from "../../shopifyUrlContext-DnJiUmMA.js";
1
+ import "../../urlsParser-NAp2LwWP.js";
2
+ import { ShopifyUrlProvider, useShopifyUrl } from "../../shopifyUrlContext-CToAt_98.js";
3
3
 
4
4
  export { ShopifyUrlProvider, useShopifyUrl };
@@ -1,7 +1,7 @@
1
1
  require('../../dist-VxRI6eQv.cjs');
2
2
  require('../../logger-BqHq67zN.cjs');
3
- require('../../enviveConfig-Dp80h9yu.cjs');
4
- const require_systemSettingsContext = require('../../systemSettingsContext-068vQuP2.cjs');
3
+ require('../../enviveConfig-CQ_8mT-g.cjs');
4
+ const require_systemSettingsContext = require('../../systemSettingsContext-DdV7Yte8.cjs');
5
5
 
6
6
  exports.SystemSettingsContext = require_systemSettingsContext.SystemSettingsContext;
7
7
  exports.SystemSettingsContextProvider = require_systemSettingsContext.SystemSettingsContextProvider;
@@ -1,4 +1,4 @@
1
- import * as react0 from "react";
1
+ import * as react1 from "react";
2
2
  import { Dispatch, ReactNode, SetStateAction } from "react";
3
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import { GenerationParams } from "@envive-ai/types";
@@ -16,7 +16,7 @@ interface SystemSettingsContextProviderProps {
16
16
  generationParams?: GenerationParams;
17
17
  showDebugBar?: boolean;
18
18
  }
19
- declare const SystemSettingsContext: react0.Context<SystemSettingsContextParams | undefined>;
19
+ declare const SystemSettingsContext: react1.Context<SystemSettingsContextParams | undefined>;
20
20
  declare const SystemSettingsContextProvider: ({
21
21
  children,
22
22
  generationParams,
@@ -1,6 +1,6 @@
1
1
  import "../../dist-C38adNK1.js";
2
2
  import "../../logger-BMVdhQOV.js";
3
- import "../../enviveConfig-Ciq4ASoV.js";
4
- import { SystemSettingsContext, SystemSettingsContextProvider, defaultGenerationParams } from "../../systemSettingsContext-DPdDfVhj.js";
3
+ import "../../enviveConfig-Cwlp7-Qz.js";
4
+ import { SystemSettingsContext, SystemSettingsContextProvider, defaultGenerationParams } from "../../systemSettingsContext-D9iNGz5v.js";
5
5
 
6
6
  export { SystemSettingsContext, SystemSettingsContextProvider, defaultGenerationParams };
@@ -1,19 +1,19 @@
1
1
  require('../../exceptions-BjDgLzGi.cjs');
2
2
  require('../../dist-VxRI6eQv.cjs');
3
- require('../../types-B8HZYWV3.cjs');
3
+ require('../../types-1iJ_FnQQ.cjs');
4
4
  require('../../graphql-JaGqsToc.cjs');
5
5
  require('../../models-Dl0_Ujgj.cjs');
6
6
  require('../../utils-CiJLDPjY.cjs');
7
7
  require('../../api-D4Xoibs9.cjs');
8
8
  require('../../logger-BqHq67zN.cjs');
9
- require('../../atomStore-BQVO5haU.cjs');
10
- require('../../enviveConfig-Dp80h9yu.cjs');
11
- require('../../org-CIFgIcO4.cjs');
12
- require('../../newOrgConfigAtom-rrYHmp1b.cjs');
13
- require('../../utils-SjlIHajO.cjs');
14
- require('../../domObserver-C2oQO8vi.cjs');
15
- require('../../urlsParser-bb8ciRFg.cjs');
16
- const require_app = require('../../app-DSnDDqcW.cjs');
9
+ require('../../utils-D3MjNkd3.cjs');
10
+ require('../../domObserver-LCBj1xw4.cjs');
11
+ require('../../urlsParser-Dax4iVNC.cjs');
12
+ require('../../atomStore-CZKe3itM.cjs');
13
+ require('../../enviveConfig-CQ_8mT-g.cjs');
14
+ require('../../org-BNs_maoW.cjs');
15
+ require('../../newOrgConfigAtom-CDttTiuu.cjs');
16
+ const require_app = require('../../app-DxwdFQlv.cjs');
17
17
  require('../../localStorageContext-CWc5xJ6U.cjs');
18
18
 
19
19
  exports.UserIdentityProvider = require_app.UserIdentityProvider;
@@ -1,19 +1,19 @@
1
1
  import "../../exceptions-CUGY31Ua.js";
2
2
  import "../../dist-C38adNK1.js";
3
- import "../../types-y3mhxOUA.js";
3
+ import "../../types-D5du68Vp.js";
4
4
  import "../../graphql-CvAHWmel.js";
5
5
  import "../../models-Cw0QcbQv.js";
6
6
  import "../../utils-B1LVzQYK.js";
7
7
  import "../../api-D4HaU2Gf.js";
8
8
  import "../../logger-BMVdhQOV.js";
9
- import "../../atomStore-CfzCqWB9.js";
10
- import "../../enviveConfig-Ciq4ASoV.js";
11
- import "../../org-15F128Ah.js";
12
- import "../../newOrgConfigAtom-BuQE_zPK.js";
13
- import "../../utils-CWzuvlOR.js";
14
- import "../../domObserver-DNeeSh1F.js";
15
- import "../../urlsParser-v_1DKvyf.js";
16
- import { UserIdentityProvider, useUserIdentity } from "../../app-Bs2KxG_8.js";
9
+ import "../../utils-DMwh3QbT.js";
10
+ import "../../domObserver-CVhsCSkS.js";
11
+ import "../../urlsParser-NAp2LwWP.js";
12
+ import "../../atomStore-BuopbV9k.js";
13
+ import "../../enviveConfig-Cwlp7-Qz.js";
14
+ import "../../org-CScQqL4k.js";
15
+ import "../../newOrgConfigAtom-C8h3w_Ji.js";
16
+ import { UserIdentityProvider, useUserIdentity } from "../../app-BT3g-mDp.js";
17
17
  import "../../localStorageContext-BFwvuEcf.js";
18
18
 
19
19
  export { UserIdentityProvider, useUserIdentity };
@@ -282,4 +282,4 @@ var DOMObserver = class {
282
282
 
283
283
  //#endregion
284
284
  export { DOMObserver, ElementObserver, MutationHelper };
285
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tT2JzZXJ2ZXItRE5lZVNoMUYuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL211dGF0aW9uSGVscGVyLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2VsZW1lbnRPYnNlcnZlci50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9kb21PYnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb21wYXJlVG9rZW5zID0gKG9yaWdpbmFsOiBzdHJpbmcsIGNvbXBhcmlzb246IHN0cmluZykgPT4ge1xuICBjb25zdCBvcmlnaW5hbFRva2VucyA9IG5ldyBTZXQob3JpZ2luYWwuc3BsaXQoJyAnKSk7XG4gIGNvbnN0IGNvbXBhcmlzb25Ub2tlbnMgPSBuZXcgU2V0KGNvbXBhcmlzb24uc3BsaXQoJyAnKSk7XG4gIHJldHVybiBbLi4ub3JpZ2luYWxUb2tlbnNdLmZpbHRlcigodG9rZW4pID0+ICFjb21wYXJpc29uVG9rZW5zLmhhcyh0b2tlbikpO1xufTtcblxuZXhwb3J0IGNsYXNzIE11dGF0aW9uSGVscGVyIHtcbiAgc3RhdGljIGZpcmVDbGFzc0NoYW5nZShcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBmbjogKGNsYXNzZXM6IERPTVRva2VuTGlzdCkgPT4gdm9pZCxcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlICE9PSBub2RlPy5jbGFzc0xpc3QudmFsdWUpIHtcbiAgICAgIGZuKG5vZGU/LmNsYXNzTGlzdCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVDbGFzc0FkZGVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKG5vZGU/LmNsYXNzTGlzdC52YWx1ZSwgcmVjb3JkLm9sZFZhbHVlKTtcbiAgICAgIHRva2Vucy5mb3JFYWNoKChjbGFzc05hbWUpID0+IGNsYXNzTWFwLmdldChjbGFzc05hbWUpPy4oKSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVDbGFzc1JlbW92ZWQoXG4gICAgcmVjb3JkOiBNdXRhdGlvblJlY29yZCxcbiAgICBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgY2xhc3NNYXA6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+LFxuICApIHtcbiAgICBpZiAobm9kZSAmJiByZWNvcmQub2xkVmFsdWUpIHtcbiAgICAgIGNvbnN0IHRva2VucyA9IGNvbXBhcmVUb2tlbnMocmVjb3JkLm9sZFZhbHVlLCBub2RlPy5jbGFzc0xpc3QudmFsdWUpO1xuICAgICAgdG9rZW5zLmZvckVhY2goKGNsYXNzTmFtZSkgPT4gY2xhc3NNYXAuZ2V0KGNsYXNzTmFtZSk/LigpKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZmlyZVN1YnRyZWVDaGFuZ2Uobm9kZXM6IE5vZGVMaXN0LCBmbj86IChub2RlczogTm9kZUxpc3QpID0+IHZvaWQpIHtcbiAgICBub2Rlcy5sZW5ndGggJiYgZm4/Lihub2Rlcyk7XG4gIH1cblxuICBzdGF0aWMgaXNDbGFzcyhtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQpIHtcbiAgICByZXR1cm4gbXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdjbGFzcyc7XG4gIH1cblxuICBzdGF0aWMgaXNDaGlsZExpc3QobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSB7XG4gICAgcmV0dXJuIG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnO1xuICB9XG59XG4iLCJpbXBvcnQgeyBSZWFjdEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgTW91c2VFdmVudFR5cGVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5pbXBvcnQgeyBNdXRhdGlvbkhlbHBlciB9IGZyb20gJy4vbXV0YXRpb25IZWxwZXInO1xuaW1wb3J0IHsgTm9kZVNlbGVjdG9yIH0gZnJvbSAnLi9ub2RlU2VsZWN0b3InO1xuXG4vKipcbiAqIFRoZSBgRWxlbWVudE9ic2VydmVyYCBjbGFzcyBtb25pdG9ycyBhbGwgY2hhbmdlcyByZWxhdGVkIHRvIHRoZSBzcGVjaWZpYyBlbGVtZW50IGl0IGlzIHJlc3BvbnNpYmxlIGZvci5cbiAqIEl0IGlzIGF1dG9tYXRpY2FsbHkgaW5zdGFudGlhdGVkIGJ5IHRoZSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rLCB3aGljaCBtYW5hZ2VzIGFsbCBpbnN0YW5jZXMgb2YgdGhpcyBjbGFzcy5cbiAqXG4gKiBIb3cgaXQgd29ya3M6XG4gKlxuICogRWFjaCBpbnN0YW5jZSBvZiBgRWxlbWVudE9ic2VydmVyYCBob2xkcyBzZXZlcmFsIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSBub2RlIGl0IGlzIG1vbml0b3JpbmcsXG4gKiBzdWNoIGFzIHRoZSBub2RlJ3Mgc2VsZWN0b3IgYW5kIGl0cyBgTXV0YXRpb25PYnNlcnZlcmAuIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRyYW5zbGF0aW5nIHJhdyBub2RlXG4gKiBjaGFuZ2VzIGludG8gYSBtb3JlIHVzZXItZnJpZW5kbHkgZm9ybWF0LiBGb3IgZXhhbXBsZSwgd2hlbiB0aGUgbm9kZSBpcyBhZGRlZCB0byB0aGUgRE9NLCB0aGUgYEVsZW1lbnRPYnNlcnZlcmBcbiAqIGlzIG5vdGlmaWVkIGJ5IHRoZSBgRE9NT2JzZXJ2ZXJgLCB3aGljaCB0cmlnZ2VycyB0aGUgYG9uQWRkYCBjYWxsYmFjayBmdW5jdGlvbiBvbiB0aGUgcmVzcGVjdGl2ZSBgdXNlRWxlbWVudE9ic2VydmVyYFxuICogaW5zdGFuY2UuXG4gKlxuICogSW5zdGFuY2VzIG9mIGBFbGVtZW50T2JzZXJ2ZXJgIGFyZSBmdWxseSBtYW5hZ2VkIGJ5IHRoZSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rLCByZXF1aXJpbmcgbm8gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLlxuICogV2hlbiB0aGUgaG9vayBpcyBkZXN0cm95ZWQsIGl0cyBjb3JyZXNwb25kaW5nIGBFbGVtZW50T2JzZXJ2ZXJgIGluc3RhbmNlIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZC5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBFbGVtZW50T2JzZXJ2ZXIge1xuICBwcml2YXRlIG11dGF0aW9uOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbDtcblxuICBwcml2YXRlIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICBwcml2YXRlIHNlbGVjdG9yOiBOb2RlU2VsZWN0b3I7XG5cbiAgcHJpdmF0ZSBldmVudExpc3RlbmVyczogTWFwPGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXAsIEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3Q+O1xuXG4gIHByaXZhdGUgY2xhc3NBZGRlZDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD47XG5cbiAgcHJpdmF0ZSBjbGFzc1JlbW92ZWQ6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+O1xuXG4gIHByaXZhdGUgbm9kZURpc3BsYXk6IHN0cmluZztcblxuICBwcml2YXRlIGFkZEZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlbW92ZUZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGNoYW5nZUZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGNsYXNzQ2hhbmdlRm46IChjbGFzc2VzPzogRE9NVG9rZW5MaXN0KSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgYWRkQ2hpbGRGbj86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZW1vdmVDaGlsZEZuPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlc2V0Rm46ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3Ioc2VsZWN0b3I6IE5vZGVTZWxlY3Rvcikge1xuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICB0aGlzLm11dGF0aW9uID0gbnVsbDtcbiAgICB0aGlzLm5vZGUgPSBudWxsO1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5jbGFzc0FkZGVkID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkID0gbmV3IE1hcCgpO1xuICAgIHRoaXMubm9kZURpc3BsYXkgPSAnYmxvY2snO1xuICAgIHRoaXMuYWRkRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLnJlbW92ZUZuID0gKCkgPT4ge307XG4gICAgdGhpcy5jaGFuZ2VGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuY2xhc3NDaGFuZ2VGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuYWRkQ2hpbGRGbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlbW92ZUNoaWxkRm4gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZXNldEZuID0gKCkgPT4ge307XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF0dHJpYnV0ZXMobXV0YXRpb25SZWNvcmQ6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICBtdXRhdGlvblJlY29yZC5maWx0ZXIoTXV0YXRpb25IZWxwZXIuaXNDbGFzcykuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc0NoYW5nZShtdXRhdGlvbiwgdGhpcy5ub2RlLCB0aGlzLmNsYXNzQ2hhbmdlRm4pO1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZUNsYXNzQWRkZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc0FkZGVkKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc1JlbW92ZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc1JlbW92ZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDaGlsZExpc3QobXV0YXRpb25SZWNvcmQ6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICBpZiAoIXRoaXMuYWRkQ2hpbGRGbiAmJiAhdGhpcy5yZW1vdmVDaGlsZEZuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2hpbGRMaXN0KS5mb3JFYWNoKChtdXRhdGlvbikgPT4ge1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZVN1YnRyZWVDaGFuZ2UobXV0YXRpb24uYWRkZWROb2RlcywgdGhpcy5hZGRDaGlsZEZuKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLnJlbW92ZWROb2RlcywgdGhpcy5yZW1vdmVDaGlsZEZuKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5pdGlhbExpc3RlbmVycygpIHtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmZvckVhY2goKHYsIGspID0+IHRoaXMubm9kZT8uYWRkRXZlbnRMaXN0ZW5lcihrLCB2KSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoaywgdikpO1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZXcobmV3Tm9kZTogTm9kZSB8IG51bGwpIHtcbiAgICBpZiAobmV3Tm9kZSkge1xuICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB0aGlzLndhdGNoKG5ld05vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdG9yO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgc3luY2hyb25pemUoKSB7XG4gICAgY29uc3QgcGFyc2VkTm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICE9PSBwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLnJlbmV3KHBhcnNlZE5vZGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5nZXROb2RlKCkgJiYgcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy53YXRjaChwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXROb2RlKCkgJiYgIXBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXQoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICB0aGlzLndhdGNoKG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHdhdGNoKG5vZGU6IE5vZGUpIHtcbiAgICBpZiAoIXRoaXMubXV0YXRpb24pIHtcbiAgICAgIHRoaXMubXV0YXRpb24gPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25SZWNvcmQpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVBdHRyaWJ1dGVzKG11dGF0aW9uUmVjb3JkKTtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGlsZExpc3QobXV0YXRpb25SZWNvcmQpO1xuICAgICAgICB0aGlzLmNoYW5nZUZuKHRoaXMubm9kZSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubXV0YXRpb24ub2JzZXJ2ZShub2RlLCB7XG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubm9kZSA9IG5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICB0aGlzLmFkZEZuKHRoaXMubm9kZSk7XG4gICAgICB0aGlzLmFkZEluaXRpYWxMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMucmVzZXRGbigpO1xuICAgIHRoaXMucmVtb3ZlRm4odGhpcy5ub2RlKTtcbiAgICB0aGlzLm11dGF0aW9uPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5jbGVhckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5jbGFzc0FkZGVkLmNsZWFyKCk7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQuY2xlYXIoKTtcbiAgICB0aGlzLm11dGF0aW9uID0gbnVsbDtcbiAgICB0aGlzLm5vZGUgPSBudWxsO1xuICB9XG5cbiAgcmVuZGVyKGZuOiAoKSA9PiBSZWFjdEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICByZXR1cm4gY3JlYXRlUG9ydGFsKGZuKCksIHRoaXMubm9kZSk7XG4gICAgfVxuICB9XG5cbiAgZmlyZShldmVudDogTW91c2VFdmVudFR5cGVzKSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBNb3VzZUV2ZW50KGV2ZW50LCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICAgIHZpZXc6IHdpbmRvdyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNob3coKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkgPSB0aGlzLm5vZGVEaXNwbGF5IHx8ICdibG9jayc7XG4gICAgfVxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICBjb25zdCBkaXNwbGF5ID0gdGhpcy5ub2RlPy5zdHlsZS5kaXNwbGF5O1xuICAgIGlmICh0aGlzLm5vZGUgJiYgZGlzcGxheSAhPT0gJ25vbmUnKSB7XG4gICAgICB0aGlzLm5vZGVEaXNwbGF5ID0gZGlzcGxheSB8fCAnYmxvY2snO1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJFdmVudChldmVudDoga2V5b2YgSFRNTEVsZW1lbnRFdmVudE1hcCwgZm46IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QpIHtcbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICBjb25zdCBwcmV2aW91c0ZuID0gdGhpcy5ldmVudExpc3RlbmVycy5nZXQoZXZlbnQpO1xuICAgICAgaWYgKHByZXZpb3VzRm4pIHtcbiAgICAgICAgdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIHByZXZpb3VzRm4pO1xuICAgICAgfVxuICAgICAgdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGZuKTtcbiAgICB9XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5zZXQoZXZlbnQsIGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZXNldChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVzZXRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNoYW5nZUZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uQWRkKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYWRkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmUoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZW1vdmVGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbmNsYXNzQ2hhbmdlKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZENoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYWRkQ2hpbGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblJlbW92ZUNoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlQ2hpbGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNsYXNzQWRkZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc0FkZGVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc1JlbW92ZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQuc2V0KGNsYXNzTmFtZSwgZm4pO1xuICB9XG59XG4iLCJpbXBvcnQgeyBFbGVtZW50T2JzZXJ2ZXIgfSBmcm9tICcuL2VsZW1lbnRPYnNlcnZlcic7XG5pbXBvcnQgeyBOb2RlU2VsZWN0b3IgfSBmcm9tICcuL25vZGVTZWxlY3Rvcic7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBtYW5hZ2VzIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIGZvciB0aGUgYGRvY3VtZW50LmJvZHlgLiBJdCBtb25pdG9ycyBub2RlcyB0aGF0IGFyZVxuICogYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBET00gYW5kIG5vdGlmaWVzIHRoZSBvYnNlcnZlcnMgZm9yIGVhY2ggb2JzZXJ2YWJsZSBlbGVtZW50XG4gKiB3aGVuIHRoZXkgYXJlIHJlYWR5IHRvIGJlIHdhdGNoZWQuXG4gKlxuICogSG93IHRoYXQgd29ya3M6XG4gKlxuICogV2hlbiB0aGUgYG9ic2VydmVgIGZ1bmN0aW9uIGlzIGNhbGxlZCwgaXQgYXR0YWNoZXMgYSBgTXV0YXRpb25PYnNlcnZlcmAgdG8gdGhlIGBkb2N1bWVudC5ib2R5YCBlbGVtZW50LlxuICogQWxsIGNoYW5nZXMgdG8gYGRvY3VtZW50LmJvZHlgIGFyZSB0cmFja2VkIGJ5IHRoaXMgb2JzZXJ2ZXIuIFdoZW4gY2hhbmdlcyBhcmUgZGV0ZWN0ZWQsIHRoZSBgTXV0YXRpb25PYnNlcnZlcmBcbiAqIGl0ZXJhdGVzIHRocm91Z2ggYWxsIGFkZGVkIGFuZCByZW1vdmVkIG5vZGVzIGFuZCBjaGVja3MgaWYgZWFjaCBub2RlIGV4aXN0cyBpbiB0aGUgbWFpbiBtYXAgb2Ygb2JzZXJ2YWJsZSBlbGVtZW50cy5cbiAqXG4gKiBJZiBhIG1hdGNoIGlzIGZvdW5kLCBpdCBub3RpZmllcyB0aGUgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSB0byBzdGFydCBtb25pdG9yaW5nIGNoYW5nZXMgZm9yIHRoYXQgZWxlbWVudC5cbiAqXG4gKiBUaGUgcHJpbWFyeSBgTXV0YXRpb25PYnNlcnZlcmAgcmVtYWlucyBhY3RpdmUgdW50aWwgdGhlIGBkZXN0cm95YCBmdW5jdGlvbiBpcyBjYWxsZWQuIENhbGxpbmcgYGRlc3Ryb3lgIHdpbGwgZGlzY29ubmVjdCBhbGxcbiAqIGluZGl2aWR1YWwgZWxlbWVudCBvYnNlcnZlcnMgYW5kIHJlbGVhc2UgYW55IGFzc29jaWF0ZWQgcmVzb3VyY2VzLlxuICpcbiAqIFRoZXJlIGlzIG5vIG5lZWQgdG8gZXhwbGljaXRseSBjYWxsIHRoZSBgb2JzZXJ2ZWAgZnVuY3Rpb24uIEl0IGlzIGF1dG9tYXRpY2FsbHkgaW52b2tlZCB3aGVuIGEgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vayBpcyBpbnN0YW50aWF0ZWQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRE9NT2JzZXJ2ZXIge1xuICBwcml2YXRlIHN0YXRpYyBkb2N1bWVudE9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbDtcbiAgcHJpdmF0ZSBzdGF0aWMgbGlzdGVuZXJzOiBNYXA8c3RyaW5nLCBFbGVtZW50T2JzZXJ2ZXI+ID0gbmV3IE1hcCgpO1xuXG4gIHByaXZhdGUgc3RhdGljIG5vdGlmeUFkaXRpb24ocmVjb3JkczogTXV0YXRpb25SZWNvcmRbXSwgbm9kZU1hcHBpbmc6IE1hcDxOb2RlLCBFbGVtZW50T2JzZXJ2ZXI+KSB7XG4gICAgcmVjb3Jkcy5mb3JFYWNoKChyZWNvcmQpID0+XG4gICAgICByZWNvcmQuYWRkZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIG5vZGVNYXBwaW5nLmdldChub2RlKT8ud2F0Y2gobm9kZSk7XG4gICAgICAgIG5vZGVNYXBwaW5nLmRlbGV0ZShub2RlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlSZW1vdmFsKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkKSA9PlxuICAgICAgcmVjb3JkLnJlbW92ZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIG5vZGVNYXBwaW5nLmdldChub2RlKT8uZGVzdHJveSgpO1xuICAgICAgICBub2RlTWFwcGluZy5kZWxldGUobm9kZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm90aWZ5Q2hpbGRyZW5DaGFuZ2VzKG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIEFycmF5LmZyb20obm9kZU1hcHBpbmcudmFsdWVzKCkpLmZvckVhY2goKG9ic2VydmVyKSA9PiBvYnNlcnZlci5zeW5jaHJvbml6ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG1hcE5vZGVJbnN0YW5jZXNUb0xpc3RlbmVycygpOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPiB7XG4gICAgY29uc3Qgbm9kZU1hcHBpbmcgPSBuZXcgTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKChvYnNlcnZlcikgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IG9ic2VydmVyLmdldE5vZGUoKSB8fCBvYnNlcnZlci5nZXRTZWxlY3RvcigpPy5wYXJzZSgpO1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbm9kZU1hcHBpbmcuc2V0KG5vZGUsIG9ic2VydmVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZU1hcHBpbmc7XG4gIH1cblxuICBzdGF0aWMgYWRkKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpOiBFbGVtZW50T2JzZXJ2ZXIge1xuICAgIGNvbnN0IG5vZGUgPSBzZWxlY3Rvci5nZXRQYXR0ZXJuKCk7XG4gICAgbGV0IGVsZW1lbnRPYnNlcnZlciA9IHRoaXMubGlzdGVuZXJzLmdldChub2RlKTtcbiAgICBpZiAoZWxlbWVudE9ic2VydmVyKSB7XG4gICAgICByZXR1cm4gZWxlbWVudE9ic2VydmVyO1xuICAgIH1cblxuICAgIGVsZW1lbnRPYnNlcnZlciA9IG5ldyBFbGVtZW50T2JzZXJ2ZXIoc2VsZWN0b3IpO1xuICAgIHRoaXMubGlzdGVuZXJzLnNldChub2RlLCBlbGVtZW50T2JzZXJ2ZXIpO1xuICAgIHJldHVybiBlbGVtZW50T2JzZXJ2ZXI7XG4gIH1cblxuICBzdGF0aWMgcmVtb3ZlKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpIHtcbiAgICBjb25zdCBub2RlID0gc2VsZWN0b3IuZ2V0UGF0dGVybigpO1xuICAgIHRoaXMubGlzdGVuZXJzLmdldChub2RlKT8uZGVzdHJveSgpO1xuICAgIHRoaXMubGlzdGVuZXJzLmRlbGV0ZShub2RlKTtcbiAgfVxuXG4gIHN0YXRpYyBvYnNlcnZlKCkge1xuICAgIGlmICghdGhpcy5kb2N1bWVudE9ic2VydmVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGVNYXBwaW5nID0gdGhpcy5tYXBOb2RlSW5zdGFuY2VzVG9MaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5ub3RpZnlBZGl0aW9uKG11dGF0aW9ucywgbm9kZU1hcHBpbmcpO1xuICAgICAgICB0aGlzLm5vdGlmeVJlbW92YWwobXV0YXRpb25zLCBub2RlTWFwcGluZyk7XG4gICAgICAgIHRoaXMubm90aWZ5Q2hpbGRyZW5DaGFuZ2VzKG5vZGVNYXBwaW5nKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kb2N1bWVudE9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5kb2N1bWVudE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IGxpc3RlbmVyLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5saXN0ZW5lcnMuY2xlYXIoKTtcbiAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIgPSBudWxsO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQU0saUJBQWlCLFVBQWtCLGVBQXVCO0NBQzlELE1BQU0saUJBQWlCLElBQUksSUFBSSxTQUFTLE1BQU0sSUFBSSxDQUFDO0NBQ25ELE1BQU0sbUJBQW1CLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDO0FBQ3ZELFFBQU8sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUM7O0FBRzVFLElBQWEsaUJB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
285
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tT2JzZXJ2ZXItQ1Zoc0NTa1MuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL211dGF0aW9uSGVscGVyLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2VsZW1lbnRPYnNlcnZlci50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9kb21PYnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb21wYXJlVG9rZW5zID0gKG9yaWdpbmFsOiBzdHJpbmcsIGNvbXBhcmlzb246IHN0cmluZykgPT4ge1xuICBjb25zdCBvcmlnaW5hbFRva2VucyA9IG5ldyBTZXQob3JpZ2luYWwuc3BsaXQoJyAnKSk7XG4gIGNvbnN0IGNvbXBhcmlzb25Ub2tlbnMgPSBuZXcgU2V0KGNvbXBhcmlzb24uc3BsaXQoJyAnKSk7XG4gIHJldHVybiBbLi4ub3JpZ2luYWxUb2tlbnNdLmZpbHRlcigodG9rZW4pID0+ICFjb21wYXJpc29uVG9rZW5zLmhhcyh0b2tlbikpO1xufTtcblxuZXhwb3J0IGNsYXNzIE11dGF0aW9uSGVscGVyIHtcbiAgc3RhdGljIGZpcmVDbGFzc0NoYW5nZShcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBmbjogKGNsYXNzZXM6IERPTVRva2VuTGlzdCkgPT4gdm9pZCxcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlICE9PSBub2RlPy5jbGFzc0xpc3QudmFsdWUpIHtcbiAgICAgIGZuKG5vZGU/LmNsYXNzTGlzdCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVDbGFzc0FkZGVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKG5vZGU/LmNsYXNzTGlzdC52YWx1ZSwgcmVjb3JkLm9sZFZhbHVlKTtcbiAgICAgIHRva2Vucy5mb3JFYWNoKChjbGFzc05hbWUpID0+IGNsYXNzTWFwLmdldChjbGFzc05hbWUpPy4oKSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVDbGFzc1JlbW92ZWQoXG4gICAgcmVjb3JkOiBNdXRhdGlvblJlY29yZCxcbiAgICBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgY2xhc3NNYXA6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+LFxuICApIHtcbiAgICBpZiAobm9kZSAmJiByZWNvcmQub2xkVmFsdWUpIHtcbiAgICAgIGNvbnN0IHRva2VucyA9IGNvbXBhcmVUb2tlbnMocmVjb3JkLm9sZFZhbHVlLCBub2RlPy5jbGFzc0xpc3QudmFsdWUpO1xuICAgICAgdG9rZW5zLmZvckVhY2goKGNsYXNzTmFtZSkgPT4gY2xhc3NNYXAuZ2V0KGNsYXNzTmFtZSk/LigpKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZmlyZVN1YnRyZWVDaGFuZ2Uobm9kZXM6IE5vZGVMaXN0LCBmbj86IChub2RlczogTm9kZUxpc3QpID0+IHZvaWQpIHtcbiAgICBub2Rlcy5sZW5ndGggJiYgZm4/Lihub2Rlcyk7XG4gIH1cblxuICBzdGF0aWMgaXNDbGFzcyhtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQpIHtcbiAgICByZXR1cm4gbXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdjbGFzcyc7XG4gIH1cblxuICBzdGF0aWMgaXNDaGlsZExpc3QobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSB7XG4gICAgcmV0dXJuIG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnO1xuICB9XG59XG4iLCJpbXBvcnQgeyBSZWFjdEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgTW91c2VFdmVudFR5cGVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5pbXBvcnQgeyBNdXRhdGlvbkhlbHBlciB9IGZyb20gJy4vbXV0YXRpb25IZWxwZXInO1xuaW1wb3J0IHsgTm9kZVNlbGVjdG9yIH0gZnJvbSAnLi9ub2RlU2VsZWN0b3InO1xuXG4vKipcbiAqIFRoZSBgRWxlbWVudE9ic2VydmVyYCBjbGFzcyBtb25pdG9ycyBhbGwgY2hhbmdlcyByZWxhdGVkIHRvIHRoZSBzcGVjaWZpYyBlbGVtZW50IGl0IGlzIHJlc3BvbnNpYmxlIGZvci5cbiAqIEl0IGlzIGF1dG9tYXRpY2FsbHkgaW5zdGFudGlhdGVkIGJ5IHRoZSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rLCB3aGljaCBtYW5hZ2VzIGFsbCBpbnN0YW5jZXMgb2YgdGhpcyBjbGFzcy5cbiAqXG4gKiBIb3cgaXQgd29ya3M6XG4gKlxuICogRWFjaCBpbnN0YW5jZSBvZiBgRWxlbWVudE9ic2VydmVyYCBob2xkcyBzZXZlcmFsIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSBub2RlIGl0IGlzIG1vbml0b3JpbmcsXG4gKiBzdWNoIGFzIHRoZSBub2RlJ3Mgc2VsZWN0b3IgYW5kIGl0cyBgTXV0YXRpb25PYnNlcnZlcmAuIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRyYW5zbGF0aW5nIHJhdyBub2RlXG4gKiBjaGFuZ2VzIGludG8gYSBtb3JlIHVzZXItZnJpZW5kbHkgZm9ybWF0LiBGb3IgZXhhbXBsZSwgd2hlbiB0aGUgbm9kZSBpcyBhZGRlZCB0byB0aGUgRE9NLCB0aGUgYEVsZW1lbnRPYnNlcnZlcmBcbiAqIGlzIG5vdGlmaWVkIGJ5IHRoZSBgRE9NT2JzZXJ2ZXJgLCB3aGljaCB0cmlnZ2VycyB0aGUgYG9uQWRkYCBjYWxsYmFjayBmdW5jdGlvbiBvbiB0aGUgcmVzcGVjdGl2ZSBgdXNlRWxlbWVudE9ic2VydmVyYFxuICogaW5zdGFuY2UuXG4gKlxuICogSW5zdGFuY2VzIG9mIGBFbGVtZW50T2JzZXJ2ZXJgIGFyZSBmdWxseSBtYW5hZ2VkIGJ5IHRoZSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rLCByZXF1aXJpbmcgbm8gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLlxuICogV2hlbiB0aGUgaG9vayBpcyBkZXN0cm95ZWQsIGl0cyBjb3JyZXNwb25kaW5nIGBFbGVtZW50T2JzZXJ2ZXJgIGluc3RhbmNlIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZC5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBFbGVtZW50T2JzZXJ2ZXIge1xuICBwcml2YXRlIG11dGF0aW9uOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbDtcblxuICBwcml2YXRlIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICBwcml2YXRlIHNlbGVjdG9yOiBOb2RlU2VsZWN0b3I7XG5cbiAgcHJpdmF0ZSBldmVudExpc3RlbmVyczogTWFwPGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXAsIEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3Q+O1xuXG4gIHByaXZhdGUgY2xhc3NBZGRlZDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD47XG5cbiAgcHJpdmF0ZSBjbGFzc1JlbW92ZWQ6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+O1xuXG4gIHByaXZhdGUgbm9kZURpc3BsYXk6IHN0cmluZztcblxuICBwcml2YXRlIGFkZEZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlbW92ZUZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGNoYW5nZUZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGNsYXNzQ2hhbmdlRm46IChjbGFzc2VzPzogRE9NVG9rZW5MaXN0KSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgYWRkQ2hpbGRGbj86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZW1vdmVDaGlsZEZuPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlc2V0Rm46ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3Ioc2VsZWN0b3I6IE5vZGVTZWxlY3Rvcikge1xuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICB0aGlzLm11dGF0aW9uID0gbnVsbDtcbiAgICB0aGlzLm5vZGUgPSBudWxsO1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMgPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5jbGFzc0FkZGVkID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkID0gbmV3IE1hcCgpO1xuICAgIHRoaXMubm9kZURpc3BsYXkgPSAnYmxvY2snO1xuICAgIHRoaXMuYWRkRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLnJlbW92ZUZuID0gKCkgPT4ge307XG4gICAgdGhpcy5jaGFuZ2VGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuY2xhc3NDaGFuZ2VGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuYWRkQ2hpbGRGbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlbW92ZUNoaWxkRm4gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZXNldEZuID0gKCkgPT4ge307XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF0dHJpYnV0ZXMobXV0YXRpb25SZWNvcmQ6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICBtdXRhdGlvblJlY29yZC5maWx0ZXIoTXV0YXRpb25IZWxwZXIuaXNDbGFzcykuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc0NoYW5nZShtdXRhdGlvbiwgdGhpcy5ub2RlLCB0aGlzLmNsYXNzQ2hhbmdlRm4pO1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZUNsYXNzQWRkZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc0FkZGVkKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc1JlbW92ZWQobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc1JlbW92ZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDaGlsZExpc3QobXV0YXRpb25SZWNvcmQ6IE11dGF0aW9uUmVjb3JkW10pIHtcbiAgICBpZiAoIXRoaXMuYWRkQ2hpbGRGbiAmJiAhdGhpcy5yZW1vdmVDaGlsZEZuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2hpbGRMaXN0KS5mb3JFYWNoKChtdXRhdGlvbikgPT4ge1xuICAgICAgTXV0YXRpb25IZWxwZXIuZmlyZVN1YnRyZWVDaGFuZ2UobXV0YXRpb24uYWRkZWROb2RlcywgdGhpcy5hZGRDaGlsZEZuKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLnJlbW92ZWROb2RlcywgdGhpcy5yZW1vdmVDaGlsZEZuKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5pdGlhbExpc3RlbmVycygpIHtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmZvckVhY2goKHYsIGspID0+IHRoaXMubm9kZT8uYWRkRXZlbnRMaXN0ZW5lcihrLCB2KSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoaywgdikpO1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZXcobmV3Tm9kZTogTm9kZSB8IG51bGwpIHtcbiAgICBpZiAobmV3Tm9kZSkge1xuICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB0aGlzLndhdGNoKG5ld05vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdG9yO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgc3luY2hyb25pemUoKSB7XG4gICAgY29uc3QgcGFyc2VkTm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICE9PSBwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLnJlbmV3KHBhcnNlZE5vZGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5nZXROb2RlKCkgJiYgcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy53YXRjaChwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXROb2RlKCkgJiYgIXBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXQoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0U2VsZWN0b3IoKS5wYXJzZSgpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICB0aGlzLndhdGNoKG5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHdhdGNoKG5vZGU6IE5vZGUpIHtcbiAgICBpZiAoIXRoaXMubXV0YXRpb24pIHtcbiAgICAgIHRoaXMubXV0YXRpb24gPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25SZWNvcmQpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVBdHRyaWJ1dGVzKG11dGF0aW9uUmVjb3JkKTtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGlsZExpc3QobXV0YXRpb25SZWNvcmQpO1xuICAgICAgICB0aGlzLmNoYW5nZUZuKHRoaXMubm9kZSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubXV0YXRpb24ub2JzZXJ2ZShub2RlLCB7XG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubm9kZSA9IG5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICB0aGlzLmFkZEZuKHRoaXMubm9kZSk7XG4gICAgICB0aGlzLmFkZEluaXRpYWxMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMucmVzZXRGbigpO1xuICAgIHRoaXMucmVtb3ZlRm4odGhpcy5ub2RlKTtcbiAgICB0aGlzLm11dGF0aW9uPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5jbGVhckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5jbGFzc0FkZGVkLmNsZWFyKCk7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQuY2xlYXIoKTtcbiAgICB0aGlzLm11dGF0aW9uID0gbnVsbDtcbiAgICB0aGlzLm5vZGUgPSBudWxsO1xuICB9XG5cbiAgcmVuZGVyKGZuOiAoKSA9PiBSZWFjdEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICByZXR1cm4gY3JlYXRlUG9ydGFsKGZuKCksIHRoaXMubm9kZSk7XG4gICAgfVxuICB9XG5cbiAgZmlyZShldmVudDogTW91c2VFdmVudFR5cGVzKSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBNb3VzZUV2ZW50KGV2ZW50LCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICAgIHZpZXc6IHdpbmRvdyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNob3coKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkgPSB0aGlzLm5vZGVEaXNwbGF5IHx8ICdibG9jayc7XG4gICAgfVxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICBjb25zdCBkaXNwbGF5ID0gdGhpcy5ub2RlPy5zdHlsZS5kaXNwbGF5O1xuICAgIGlmICh0aGlzLm5vZGUgJiYgZGlzcGxheSAhPT0gJ25vbmUnKSB7XG4gICAgICB0aGlzLm5vZGVEaXNwbGF5ID0gZGlzcGxheSB8fCAnYmxvY2snO1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJFdmVudChldmVudDoga2V5b2YgSFRNTEVsZW1lbnRFdmVudE1hcCwgZm46IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QpIHtcbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICBjb25zdCBwcmV2aW91c0ZuID0gdGhpcy5ldmVudExpc3RlbmVycy5nZXQoZXZlbnQpO1xuICAgICAgaWYgKHByZXZpb3VzRm4pIHtcbiAgICAgICAgdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIHByZXZpb3VzRm4pO1xuICAgICAgfVxuICAgICAgdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGZuKTtcbiAgICB9XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5zZXQoZXZlbnQsIGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZXNldChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVzZXRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNoYW5nZUZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uQWRkKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYWRkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmUoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZW1vdmVGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbmNsYXNzQ2hhbmdlKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZENoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYWRkQ2hpbGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblJlbW92ZUNoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlQ2hpbGRGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNsYXNzQWRkZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc0FkZGVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc1JlbW92ZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jbGFzc1JlbW92ZWQuc2V0KGNsYXNzTmFtZSwgZm4pO1xuICB9XG59XG4iLCJpbXBvcnQgeyBFbGVtZW50T2JzZXJ2ZXIgfSBmcm9tICcuL2VsZW1lbnRPYnNlcnZlcic7XG5pbXBvcnQgeyBOb2RlU2VsZWN0b3IgfSBmcm9tICcuL25vZGVTZWxlY3Rvcic7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBtYW5hZ2VzIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIGZvciB0aGUgYGRvY3VtZW50LmJvZHlgLiBJdCBtb25pdG9ycyBub2RlcyB0aGF0IGFyZVxuICogYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBET00gYW5kIG5vdGlmaWVzIHRoZSBvYnNlcnZlcnMgZm9yIGVhY2ggb2JzZXJ2YWJsZSBlbGVtZW50XG4gKiB3aGVuIHRoZXkgYXJlIHJlYWR5IHRvIGJlIHdhdGNoZWQuXG4gKlxuICogSG93IHRoYXQgd29ya3M6XG4gKlxuICogV2hlbiB0aGUgYG9ic2VydmVgIGZ1bmN0aW9uIGlzIGNhbGxlZCwgaXQgYXR0YWNoZXMgYSBgTXV0YXRpb25PYnNlcnZlcmAgdG8gdGhlIGBkb2N1bWVudC5ib2R5YCBlbGVtZW50LlxuICogQWxsIGNoYW5nZXMgdG8gYGRvY3VtZW50LmJvZHlgIGFyZSB0cmFja2VkIGJ5IHRoaXMgb2JzZXJ2ZXIuIFdoZW4gY2hhbmdlcyBhcmUgZGV0ZWN0ZWQsIHRoZSBgTXV0YXRpb25PYnNlcnZlcmBcbiAqIGl0ZXJhdGVzIHRocm91Z2ggYWxsIGFkZGVkIGFuZCByZW1vdmVkIG5vZGVzIGFuZCBjaGVja3MgaWYgZWFjaCBub2RlIGV4aXN0cyBpbiB0aGUgbWFpbiBtYXAgb2Ygb2JzZXJ2YWJsZSBlbGVtZW50cy5cbiAqXG4gKiBJZiBhIG1hdGNoIGlzIGZvdW5kLCBpdCBub3RpZmllcyB0aGUgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSB0byBzdGFydCBtb25pdG9yaW5nIGNoYW5nZXMgZm9yIHRoYXQgZWxlbWVudC5cbiAqXG4gKiBUaGUgcHJpbWFyeSBgTXV0YXRpb25PYnNlcnZlcmAgcmVtYWlucyBhY3RpdmUgdW50aWwgdGhlIGBkZXN0cm95YCBmdW5jdGlvbiBpcyBjYWxsZWQuIENhbGxpbmcgYGRlc3Ryb3lgIHdpbGwgZGlzY29ubmVjdCBhbGxcbiAqIGluZGl2aWR1YWwgZWxlbWVudCBvYnNlcnZlcnMgYW5kIHJlbGVhc2UgYW55IGFzc29jaWF0ZWQgcmVzb3VyY2VzLlxuICpcbiAqIFRoZXJlIGlzIG5vIG5lZWQgdG8gZXhwbGljaXRseSBjYWxsIHRoZSBgb2JzZXJ2ZWAgZnVuY3Rpb24uIEl0IGlzIGF1dG9tYXRpY2FsbHkgaW52b2tlZCB3aGVuIGEgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vayBpcyBpbnN0YW50aWF0ZWQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRE9NT2JzZXJ2ZXIge1xuICBwcml2YXRlIHN0YXRpYyBkb2N1bWVudE9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbDtcbiAgcHJpdmF0ZSBzdGF0aWMgbGlzdGVuZXJzOiBNYXA8c3RyaW5nLCBFbGVtZW50T2JzZXJ2ZXI+ID0gbmV3IE1hcCgpO1xuXG4gIHByaXZhdGUgc3RhdGljIG5vdGlmeUFkaXRpb24ocmVjb3JkczogTXV0YXRpb25SZWNvcmRbXSwgbm9kZU1hcHBpbmc6IE1hcDxOb2RlLCBFbGVtZW50T2JzZXJ2ZXI+KSB7XG4gICAgcmVjb3Jkcy5mb3JFYWNoKChyZWNvcmQpID0+XG4gICAgICByZWNvcmQuYWRkZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIG5vZGVNYXBwaW5nLmdldChub2RlKT8ud2F0Y2gobm9kZSk7XG4gICAgICAgIG5vZGVNYXBwaW5nLmRlbGV0ZShub2RlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlSZW1vdmFsKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkKSA9PlxuICAgICAgcmVjb3JkLnJlbW92ZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIG5vZGVNYXBwaW5nLmdldChub2RlKT8uZGVzdHJveSgpO1xuICAgICAgICBub2RlTWFwcGluZy5kZWxldGUobm9kZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm90aWZ5Q2hpbGRyZW5DaGFuZ2VzKG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIEFycmF5LmZyb20obm9kZU1hcHBpbmcudmFsdWVzKCkpLmZvckVhY2goKG9ic2VydmVyKSA9PiBvYnNlcnZlci5zeW5jaHJvbml6ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG1hcE5vZGVJbnN0YW5jZXNUb0xpc3RlbmVycygpOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPiB7XG4gICAgY29uc3Qgbm9kZU1hcHBpbmcgPSBuZXcgTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKChvYnNlcnZlcikgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IG9ic2VydmVyLmdldE5vZGUoKSB8fCBvYnNlcnZlci5nZXRTZWxlY3RvcigpPy5wYXJzZSgpO1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbm9kZU1hcHBpbmcuc2V0KG5vZGUsIG9ic2VydmVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZU1hcHBpbmc7XG4gIH1cblxuICBzdGF0aWMgYWRkKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpOiBFbGVtZW50T2JzZXJ2ZXIge1xuICAgIGNvbnN0IG5vZGUgPSBzZWxlY3Rvci5nZXRQYXR0ZXJuKCk7XG4gICAgbGV0IGVsZW1lbnRPYnNlcnZlciA9IHRoaXMubGlzdGVuZXJzLmdldChub2RlKTtcbiAgICBpZiAoZWxlbWVudE9ic2VydmVyKSB7XG4gICAgICByZXR1cm4gZWxlbWVudE9ic2VydmVyO1xuICAgIH1cblxuICAgIGVsZW1lbnRPYnNlcnZlciA9IG5ldyBFbGVtZW50T2JzZXJ2ZXIoc2VsZWN0b3IpO1xuICAgIHRoaXMubGlzdGVuZXJzLnNldChub2RlLCBlbGVtZW50T2JzZXJ2ZXIpO1xuICAgIHJldHVybiBlbGVtZW50T2JzZXJ2ZXI7XG4gIH1cblxuICBzdGF0aWMgcmVtb3ZlKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpIHtcbiAgICBjb25zdCBub2RlID0gc2VsZWN0b3IuZ2V0UGF0dGVybigpO1xuICAgIHRoaXMubGlzdGVuZXJzLmdldChub2RlKT8uZGVzdHJveSgpO1xuICAgIHRoaXMubGlzdGVuZXJzLmRlbGV0ZShub2RlKTtcbiAgfVxuXG4gIHN0YXRpYyBvYnNlcnZlKCkge1xuICAgIGlmICghdGhpcy5kb2N1bWVudE9ic2VydmVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGVNYXBwaW5nID0gdGhpcy5tYXBOb2RlSW5zdGFuY2VzVG9MaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5ub3RpZnlBZGl0aW9uKG11dGF0aW9ucywgbm9kZU1hcHBpbmcpO1xuICAgICAgICB0aGlzLm5vdGlmeVJlbW92YWwobXV0YXRpb25zLCBub2RlTWFwcGluZyk7XG4gICAgICAgIHRoaXMubm90aWZ5Q2hpbGRyZW5DaGFuZ2VzKG5vZGVNYXBwaW5nKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kb2N1bWVudE9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5kb2N1bWVudE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IGxpc3RlbmVyLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5saXN0ZW5lcnMuY2xlYXIoKTtcbiAgICB0aGlzLmRvY3VtZW50T2JzZXJ2ZXIgPSBudWxsO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQU0saUJBQWlCLFVBQWtCLGVBQXVCO0NBQzlELE1BQU0saUJBQWlCLElBQUksSUFBSSxTQUFTLE1BQU0sSUFBSSxDQUFDO0NBQ25ELE1BQU0sbUJBQW1CLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDO0FBQ3ZELFFBQU8sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUM7O0FBRzVFLElBQWEsaUJBQWIsTUFBNEI7Q0FDMUIsT0FBTyxnQkFDTCxRQUNBLE1BQ0EsSUFDQTtBQUNBLE1BQUksUUFBUSxPQUFPLGFBQWEsTUFBTSxVQUFVLE1BQzlDLElBQUcsTUFBTSxVQUFVOztDQUl2QixPQUFPLGVBQ0wsUUFDQSxNQUNBLFVBQ0E7QUFDQSxNQUFJLFFBQVEsT0FBTyxTQUVqQixDQURlLGNBQWMsTUFBTSxVQUFVLE9BQU8sT0FBTyxTQUFTLENBQzdELFNBQVMsY0FBYyxTQUFTLElBQUksVUFBVSxJQUFJLENBQUM7O0NBSTlELE9BQU8saUJBQ0wsUUFDQSxNQUNBLFVBQ0E7QUFDQSxNQUFJLFFBQVEsT0FBTyxTQUVqQixDQURlLGNBQWMsT0FBTyxVQUFVLE1BQU0sVUFBVSxNQUFNLENBQzdELFNBQVMsY0FBYyxTQUFTLElBQUksVUFBVSxJQUFJLENBQUM7O0NBSTlELE9BQU8sa0JBQWtCLE9BQWlCLElBQWdDO0FBQ3hFLFFBQU0sVUFBVSxLQUFLLE1BQU07O0NBRzdCLE9BQU8sUUFBUSxVQUEwQjtBQUN2QyxTQUFPLFNBQVMsU0FBUyxnQkFBZ0IsU0FBUyxrQkFBa0I7O0NBR3RFLE9BQU8sWUFBWSxVQUEwQjtBQUMzQyxTQUFPLFNBQVMsU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzFCN0IsSUFBYSxrQkFBYixNQUE2QjtDQTZCM0IsWUFBWSxVQUF3QjtBQUNsQyxPQUFLLFdBQVc7QUFDaEIsT0FBSyxXQUFXO0FBQ2hCLE9BQUssT0FBTztBQUNaLE9BQUssaUNBQWlCLElBQUksS0FBSztBQUMvQixPQUFLLDZCQUFhLElBQUksS0FBSztBQUMzQixPQUFLLCtCQUFlLElBQUksS0FBSztBQUM3QixPQUFLLGNBQWM7QUFDbkIsT0FBSyxjQUFjO0FBQ25CLE9BQUssaUJBQWlCO0FBQ3RCLE9BQUssaUJBQWlCO0FBQ3RCLE9BQUssc0JBQXNCO0FBQzNCLE9BQUssYUFBYTtBQUNsQixPQUFLLGdCQUFnQjtBQUNyQixPQUFLLGdCQUFnQjs7Q0FHdkIsQUFBUSxpQkFBaUIsZ0JBQWtDO0FBQ3pELGlCQUFlLE9BQU8sZUFBZSxRQUFRLENBQUMsU0FBUyxhQUFhO0FBQ2xFLGtCQUFlLGdCQUFnQixVQUFVLEtBQUssTUFBTSxLQUFLLGNBQWM7QUFDdkUsa0JBQWUsZUFBZSxVQUFVLEtBQUssTUFBTSxLQUFLLFdBQVc7QUFDbkUsa0JBQWUsaUJBQWlCLFVBQVUsS0FBSyxNQUFNLEtBQUssYUFBYTtJQUN2RTs7Q0FHSixBQUFRLGdCQUFnQixnQkFBa0M7QUFDeEQsTUFBSSxDQUFDLEtBQUssY0FBYyxDQUFDLEtBQUssY0FDNUI7QUFHRixpQkFBZSxPQUFPLGVBQWUsWUFBWSxDQUFDLFNBQVMsYUFBYTtBQUN0RSxrQkFBZSxrQkFBa0IsU0FBUyxZQUFZLEtBQUssV0FBVztBQUN0RSxrQkFBZSxrQkFBa0IsU0FBUyxjQUFjLEtBQUssY0FBYztJQUMzRTs7Q0FHSixBQUFRLHNCQUFzQjtBQUM1QixPQUFLLGVBQWUsU0FBUyxHQUFHLE1BQU0sS0FBSyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQzs7Q0FHMUUsQUFBUSxzQkFBc0I7QUFDNUIsT0FBSyxlQUFlLFNBQVMsR0FBRyxNQUFNLEtBQUssTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDM0UsT0FBSyxlQUFlLE9BQU87O0NBRzdCLEFBQVEsTUFBTSxTQUFzQjtBQUNsQyxNQUFJLFNBQVM7QUFDWCxRQUFLLFNBQVM7QUFDZCxRQUFLLE1BQU0sUUFBUTs7O0NBSXZCLGNBQWM7QUFDWixTQUFPLEtBQUs7O0NBR2QsVUFBVTtBQUNSLFNBQU8sS0FBSzs7Q0FHZCxjQUFjO0VBQ1osTUFBTSxhQUFhLEtBQUssYUFBYSxDQUFDLE9BQU87QUFFN0MsTUFBSSxLQUFLLFNBQVMsS0FBSyxZQUFZO0FBQ2pDLFFBQUssTUFBTSxXQUFXO0FBQ3RCOztBQUdGLE1BQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxZQUFZO0FBQ2pDLFFBQUssTUFBTSxXQUFXO0FBQ3RCOztBQUdGLE1BQUksS0FBSyxTQUFTLElBQUksQ0FBQyxXQUNyQixNQUFLLFNBQVM7O0NBSWxCLE9BQU87RUFDTCxNQUFNLE9BQU8sS0FBSyxhQUFhLENBQUMsT0FBTztBQUN2QyxNQUFJLEtBQ0YsTUFBSyxNQUFNLEtBQUs7O0NBSXBCLE1BQU0sTUFBWTtBQUNoQixNQUFJLENBQUMsS0FBSyxVQUFVO0FBQ2xCLFFBQUssV0FBVyxJQUFJLGtCQUFrQixtQkFBbUI7QUFDdkQsU0FBSyxpQkFBaUIsZUFBZTtBQUNyQyxTQUFLLGdCQUFnQixlQUFlO0FBQ3BDLFNBQUssU0FBUyxLQUFLLEtBQUs7S0FDeEI7QUFDRixRQUFLLFNBQVMsUUFBUSxNQUFNO0lBQzFCLFdBQVc7SUFDWCxTQUFTO0lBQ1QsWUFBWTtJQUNaLG1CQUFtQjtJQUNwQixDQUFDO0FBQ0YsUUFBSyxPQUFPO0FBQ1osUUFBSyxNQUFNLEtBQUssS0FBSztBQUNyQixRQUFLLHFCQUFxQjs7O0NBSTlCLFVBQVU7QUFDUixPQUFLLFNBQVM7QUFDZCxPQUFLLFNBQVMsS0FBSyxLQUFLO0FBQ3hCLE9BQUssVUFBVSxZQUFZO0FBQzNCLE9BQUsscUJBQXFCO0FBQzFCLE9BQUssV0FBVyxPQUFPO0FBQ3ZCLE9BQUssYUFBYSxPQUFPO0FBQ3pCLE9BQUssV0FBVztBQUNoQixPQUFLLE9BQU87O0NBR2QsT0FBTyxJQUF3QjtBQUM3QixNQUFJLEtBQUssS0FDUCxRQUFPLGFBQWEsSUFBSSxFQUFFLEtBQUssS0FBSzs7Q0FJeEMsS0FBSyxPQUF3QjtBQUMzQixNQUFJLEtBQUssS0FDUCxNQUFLLEtBQUssY0FDUixJQUFJLFdBQVcsT0FBTztHQUNwQixTQUFTO0dBQ1QsWUFBWTtHQUNaLE1BQU07R0FDUCxDQUFDLENBQ0g7O0NBSUwsT0FBTztFQUNMLE1BQU0sVUFBVSxLQUFLLE1BQU0sTUFBTTtBQUNqQyxNQUFJLEtBQUssUUFBUSxZQUFZLE9BQzNCLE1BQUssS0FBSyxNQUFNLFVBQVUsS0FBSyxlQUFlOztDQUlsRCxPQUFPO0VBQ0wsTUFBTSxVQUFVLEtBQUssTUFBTSxNQUFNO0FBQ2pDLE1BQUksS0FBSyxRQUFRLFlBQVksUUFBUTtBQUNuQyxRQUFLLGNBQWMsV0FBVztBQUM5QixRQUFLLEtBQUssTUFBTSxVQUFVOzs7Q0FJOUIsY0FBYyxPQUFrQyxJQUF3QztBQUN0RixNQUFJLEtBQUssTUFBTTtHQUNiLE1BQU0sYUFBYSxLQUFLLGVBQWUsSUFBSSxNQUFNO0FBQ2pELE9BQUksV0FDRixNQUFLLEtBQUssb0JBQW9CLE9BQU8sV0FBVztBQUVsRCxRQUFLLEtBQUssaUJBQWlCLE9BQU8sR0FBRzs7QUFFdkMsT0FBSyxlQUFlLElBQUksT0FBTyxHQUFHOztDQUdwQyxnQkFBZ0IsSUFBZ0I7QUFDOUIsT0FBSyxVQUFVOztDQUdqQixpQkFBaUIsSUFBc0M7QUFDckQsT0FBSyxXQUFXOztDQUdsQixjQUFjLElBQXNDO0FBQ2xELE9BQUssUUFBUTs7Q0FHZixpQkFBaUIsSUFBc0M7QUFDckQsT0FBSyxXQUFXOztDQUdsQixzQkFBc0IsSUFBc0M7QUFDMUQsT0FBSyxnQkFBZ0I7O0NBR3ZCLG1CQUFtQixJQUFzQztBQUN2RCxPQUFLLGFBQWE7O0NBR3BCLHNCQUFzQixJQUFzQztBQUMxRCxPQUFLLGdCQUFnQjs7Q0FHdkIscUJBQXFCLFdBQW1CLElBQWdCO0FBQ3RELE9BQUssV0FBVyxJQUFJLFdBQVcsR0FBRzs7Q0FHcEMsdUJBQXVCLFdBQW1CLElBQWdCO0FBQ3hELE9BQUssYUFBYSxJQUFJLFdBQVcsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzdOeEMsSUFBYSxjQUFiLE1BQXlCOzttQ0FFa0MsSUFBSSxLQUFLOztDQUVsRSxPQUFlLGNBQWMsU0FBMkIsYUFBeUM7QUFDL0YsVUFBUSxTQUFTLFdBQ2YsT0FBTyxXQUFXLFNBQVMsU0FBUztBQUNsQyxlQUFZLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSztBQUNsQyxlQUFZLE9BQU8sS0FBSztJQUN4QixDQUNIOztDQUdILE9BQWUsY0FBYyxTQUEyQixhQUF5QztBQUMvRixVQUFRLFNBQVMsV0FDZixPQUFPLGFBQWEsU0FBUyxTQUFTO0FBQ3BDLGVBQVksSUFBSSxLQUFLLEVBQUUsU0FBUztBQUNoQyxlQUFZLE9BQU8sS0FBSztJQUN4QixDQUNIOztDQUdILE9BQWUsc0JBQXNCLGFBQXlDO0FBQzVFLFFBQU0sS0FBSyxZQUFZLFFBQVEsQ0FBQyxDQUFDLFNBQVMsYUFBYSxTQUFTLGFBQWEsQ0FBQzs7Q0FHaEYsT0FBZSw4QkFBMEQ7RUFDdkUsTUFBTSw4QkFBYyxJQUFJLEtBQTRCO0FBQ3BELE9BQUssVUFBVSxTQUFTLGFBQWE7R0FDbkMsTUFBTSxPQUFPLFNBQVMsU0FBUyxJQUFJLFNBQVMsYUFBYSxFQUFFLE9BQU87QUFDbEUsT0FBSSxLQUNGLGFBQVksSUFBSSxNQUFNLFNBQVM7SUFFakM7QUFDRixTQUFPOztDQUdULE9BQU8sSUFBSSxVQUF5QztFQUNsRCxNQUFNLE9BQU8sU0FBUyxZQUFZO0VBQ2xDLElBQUksa0JBQWtCLEtBQUssVUFBVSxJQUFJLEtBQUs7QUFDOUMsTUFBSSxnQkFDRixRQUFPO0FBR1Qsb0JBQWtCLElBQUksZ0JBQWdCLFNBQVM7QUFDL0MsT0FBSyxVQUFVLElBQUksTUFBTSxnQkFBZ0I7QUFDekMsU0FBTzs7Q0FHVCxPQUFPLE9BQU8sVUFBd0I7RUFDcEMsTUFBTSxPQUFPLFNBQVMsWUFBWTtBQUNsQyxPQUFLLFVBQVUsSUFBSSxLQUFLLEVBQUUsU0FBUztBQUNuQyxPQUFLLFVBQVUsT0FBTyxLQUFLOztDQUc3QixPQUFPLFVBQVU7QUFDZixNQUFJLENBQUMsS0FBSyxrQkFBa0I7QUFDMUIsUUFBSyxtQkFBbUIsSUFBSSxrQkFBa0IsY0FBYztJQUMxRCxNQUFNLGNBQWMsS0FBSyw2QkFBNkI7QUFDdEQsU0FBSyxjQUFjLFdBQVcsWUFBWTtBQUMxQyxTQUFLLGNBQWMsV0FBVyxZQUFZO0FBQzFDLFNBQUssc0JBQXNCLFlBQVk7S0FDdkM7QUFDRixRQUFLLGlCQUFpQixRQUFRLFNBQVMsTUFBTTtJQUFFLFdBQVc7SUFBTSxTQUFTO0lBQU0sQ0FBQzs7O0NBSXBGLE9BQU8sVUFBVTtBQUNmLE9BQUssa0JBQWtCLFlBQVk7QUFDbkMsT0FBSyxVQUFVLFNBQVMsYUFBYSxTQUFTLFNBQVMsQ0FBQztBQUN4RCxPQUFLLFVBQVUsT0FBTztBQUN0QixPQUFLLG1CQUFtQiJ9
@@ -301,4 +301,4 @@ Object.defineProperty(exports, 'MutationHelper', {
301
301
  return MutationHelper;
302
302
  }
303
303
  });
304
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tT2JzZXJ2ZXItQzJvUU84dmkuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tdXRhdGlvbkhlbHBlci50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9lbGVtZW50T2JzZXJ2ZXIudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvZG9tT2JzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tcGFyZVRva2VucyA9IChvcmlnaW5hbDogc3RyaW5nLCBjb21wYXJpc29uOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgb3JpZ2luYWxUb2tlbnMgPSBuZXcgU2V0KG9yaWdpbmFsLnNwbGl0KCcgJykpO1xuICBjb25zdCBjb21wYXJpc29uVG9rZW5zID0gbmV3IFNldChjb21wYXJpc29uLnNwbGl0KCcgJykpO1xuICByZXR1cm4gWy4uLm9yaWdpbmFsVG9rZW5zXS5maWx0ZXIoKHRva2VuKSA9PiAhY29tcGFyaXNvblRva2Vucy5oYXModG9rZW4pKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBNdXRhdGlvbkhlbHBlciB7XG4gIHN0YXRpYyBmaXJlQ2xhc3NDaGFuZ2UoXG4gICAgcmVjb3JkOiBNdXRhdGlvblJlY29yZCxcbiAgICBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgZm46IChjbGFzc2VzOiBET01Ub2tlbkxpc3QpID0+IHZvaWQsXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSAhPT0gbm9kZT8uY2xhc3NMaXN0LnZhbHVlKSB7XG4gICAgICBmbihub2RlPy5jbGFzc0xpc3QpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NBZGRlZChcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBjbGFzc01hcDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4sXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSkge1xuICAgICAgY29uc3QgdG9rZW5zID0gY29tcGFyZVRva2Vucyhub2RlPy5jbGFzc0xpc3QudmFsdWUsIHJlY29yZC5vbGRWYWx1ZSk7XG4gICAgICB0b2tlbnMuZm9yRWFjaCgoY2xhc3NOYW1lKSA9PiBjbGFzc01hcC5nZXQoY2xhc3NOYW1lKT8uKCkpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NSZW1vdmVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKHJlY29yZC5vbGRWYWx1ZSwgbm9kZT8uY2xhc3NMaXN0LnZhbHVlKTtcbiAgICAgIHRva2Vucy5mb3JFYWNoKChjbGFzc05hbWUpID0+IGNsYXNzTWFwLmdldChjbGFzc05hbWUpPy4oKSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVTdWJ0cmVlQ2hhbmdlKG5vZGVzOiBOb2RlTGlzdCwgZm4/OiAobm9kZXM6IE5vZGVMaXN0KSA9PiB2b2lkKSB7XG4gICAgbm9kZXMubGVuZ3RoICYmIGZuPy4obm9kZXMpO1xuICB9XG5cbiAgc3RhdGljIGlzQ2xhc3MobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSB7XG4gICAgcmV0dXJuIG11dGF0aW9uLnR5cGUgPT09ICdhdHRyaWJ1dGVzJyAmJiBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnY2xhc3MnO1xuICB9XG5cbiAgc3RhdGljIGlzQ2hpbGRMaXN0KG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCkge1xuICAgIHJldHVybiBtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0JztcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVhY3RFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IE1vdXNlRXZlbnRUeXBlcyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgTXV0YXRpb25IZWxwZXIgfSBmcm9tICcuL211dGF0aW9uSGVscGVyJztcbmltcG9ydCB7IE5vZGVTZWxlY3RvciB9IGZyb20gJy4vbm9kZVNlbGVjdG9yJztcblxuLyoqXG4gKiBUaGUgYEVsZW1lbnRPYnNlcnZlcmAgY2xhc3MgbW9uaXRvcnMgYWxsIGNoYW5nZXMgcmVsYXRlZCB0byB0aGUgc3BlY2lmaWMgZWxlbWVudCBpdCBpcyByZXNwb25zaWJsZSBmb3IuXG4gKiBJdCBpcyBhdXRvbWF0aWNhbGx5IGluc3RhbnRpYXRlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgd2hpY2ggbWFuYWdlcyBhbGwgaW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MuXG4gKlxuICogSG93IGl0IHdvcmtzOlxuICpcbiAqIEVhY2ggaW5zdGFuY2Ugb2YgYEVsZW1lbnRPYnNlcnZlcmAgaG9sZHMgc2V2ZXJhbCBwaWVjZXMgb2YgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgbm9kZSBpdCBpcyBtb25pdG9yaW5nLFxuICogc3VjaCBhcyB0aGUgbm9kZSdzIHNlbGVjdG9yIGFuZCBpdHMgYE11dGF0aW9uT2JzZXJ2ZXJgLiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0cmFuc2xhdGluZyByYXcgbm9kZVxuICogY2hhbmdlcyBpbnRvIGEgbW9yZSB1c2VyLWZyaWVuZGx5IGZvcm1hdC4gRm9yIGV4YW1wbGUsIHdoZW4gdGhlIG5vZGUgaXMgYWRkZWQgdG8gdGhlIERPTSwgdGhlIGBFbGVtZW50T2JzZXJ2ZXJgXG4gKiBpcyBub3RpZmllZCBieSB0aGUgYERPTU9ic2VydmVyYCwgd2hpY2ggdHJpZ2dlcnMgdGhlIGBvbkFkZGAgY2FsbGJhY2sgZnVuY3Rpb24gb24gdGhlIHJlc3BlY3RpdmUgYHVzZUVsZW1lbnRPYnNlcnZlcmBcbiAqIGluc3RhbmNlLlxuICpcbiAqIEluc3RhbmNlcyBvZiBgRWxlbWVudE9ic2VydmVyYCBhcmUgZnVsbHkgbWFuYWdlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgcmVxdWlyaW5nIG5vIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbi5cbiAqIFdoZW4gdGhlIGhvb2sgaXMgZGVzdHJveWVkLCBpdHMgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRWxlbWVudE9ic2VydmVyIHtcbiAgcHJpdmF0ZSBtdXRhdGlvbjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG5cbiAgcHJpdmF0ZSBub2RlOiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgcHJpdmF0ZSBzZWxlY3RvcjogTm9kZVNlbGVjdG9yO1xuXG4gIHByaXZhdGUgZXZlbnRMaXN0ZW5lcnM6IE1hcDxrZXlvZiBIVE1MRWxlbWVudEV2ZW50TWFwLCBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0PjtcblxuICBwcml2YXRlIGNsYXNzQWRkZWQ6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+O1xuXG4gIHByaXZhdGUgY2xhc3NSZW1vdmVkOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPjtcblxuICBwcml2YXRlIG5vZGVEaXNwbGF5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBhZGRGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZW1vdmVGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjaGFuZ2VGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjbGFzc0NoYW5nZUZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGFkZENoaWxkRm4/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVtb3ZlQ2hpbGRGbj86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZXNldEZuOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpIHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuY2xhc3NBZGRlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLmNsYXNzUmVtb3ZlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLm5vZGVEaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLmFkZEZuID0gKCkgPT4ge307XG4gICAgdGhpcy5yZW1vdmVGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuY2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZW1vdmVDaGlsZEZuID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVzZXRGbiA9ICgpID0+IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBdHRyaWJ1dGVzKG11dGF0aW9uUmVjb3JkOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2xhc3MpLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlQ2xhc3NDaGFuZ2UobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc0NoYW5nZUZuKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc0FkZGVkKG11dGF0aW9uLCB0aGlzLm5vZGUsIHRoaXMuY2xhc3NBZGRlZCk7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlQ2xhc3NSZW1vdmVkKG11dGF0aW9uLCB0aGlzLm5vZGUsIHRoaXMuY2xhc3NSZW1vdmVkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2hpbGRMaXN0KG11dGF0aW9uUmVjb3JkOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgaWYgKCF0aGlzLmFkZENoaWxkRm4gJiYgIXRoaXMucmVtb3ZlQ2hpbGRGbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG11dGF0aW9uUmVjb3JkLmZpbHRlcihNdXRhdGlvbkhlbHBlci5pc0NoaWxkTGlzdCkuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLmFkZGVkTm9kZXMsIHRoaXMuYWRkQ2hpbGRGbik7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlU3VidHJlZUNoYW5nZShtdXRhdGlvbi5yZW1vdmVkTm9kZXMsIHRoaXMucmVtb3ZlQ2hpbGRGbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEluaXRpYWxMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LmFkZEV2ZW50TGlzdGVuZXIoaywgdikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgodiwgaykgPT4gdGhpcy5ub2RlPy5yZW1vdmVFdmVudExpc3RlbmVyKGssIHYpKTtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmV3KG5ld05vZGU6IE5vZGUgfCBudWxsKSB7XG4gICAgaWYgKG5ld05vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgdGhpcy53YXRjaChuZXdOb2RlKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcjtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIHN5bmNocm9uaXplKCkge1xuICAgIGNvbnN0IHBhcnNlZE5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcblxuICAgIGlmICh0aGlzLmdldE5vZGUoKSAhPT0gcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy5yZW5ldyhwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZ2V0Tm9kZSgpICYmIHBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMud2F0Y2gocGFyc2VkTm9kZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICYmICFwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBpbml0KCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcbiAgICBpZiAobm9kZSkge1xuICAgICAgdGhpcy53YXRjaChub2RlKTtcbiAgICB9XG4gIH1cblxuICB3YXRjaChub2RlOiBOb2RlKSB7XG4gICAgaWYgKCF0aGlzLm11dGF0aW9uKSB7XG4gICAgICB0aGlzLm11dGF0aW9uID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uUmVjb3JkKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQXR0cmlidXRlcyhtdXRhdGlvblJlY29yZCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hpbGRMaXN0KG11dGF0aW9uUmVjb3JkKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VGbih0aGlzLm5vZGUpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm11dGF0aW9uLm9ic2VydmUobm9kZSwge1xuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm5vZGUgPSBub2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgdGhpcy5hZGRGbih0aGlzLm5vZGUpO1xuICAgICAgdGhpcy5hZGRJbml0aWFsTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2V0Rm4oKTtcbiAgICB0aGlzLnJlbW92ZUZuKHRoaXMubm9kZSk7XG4gICAgdGhpcy5tdXRhdGlvbj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY2xlYXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuY2xhc3NBZGRlZC5jbGVhcigpO1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLmNsZWFyKCk7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgfVxuXG4gIHJlbmRlcihmbjogKCkgPT4gUmVhY3RFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVBvcnRhbChmbigpLCB0aGlzLm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGZpcmUoZXZlbnQ6IE1vdXNlRXZlbnRUeXBlcykge1xuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHRoaXMubm9kZS5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgTW91c2VFdmVudChldmVudCwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgICB2aWV3OiB3aW5kb3csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIGNvbnN0IGRpc3BsYXkgPSB0aGlzLm5vZGU/LnN0eWxlLmRpc3BsYXk7XG4gICAgaWYgKHRoaXMubm9kZSAmJiBkaXNwbGF5ID09PSAnbm9uZScpIHtcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5ub2RlRGlzcGxheSB8fCAnYmxvY2snO1xuICAgIH1cbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgIT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlRGlzcGxheSA9IGRpc3BsYXkgfHwgJ2Jsb2NrJztcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyRXZlbnQoZXZlbnQ6IGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXAsIGZuOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgY29uc3QgcHJldmlvdXNGbiA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMuZ2V0KGV2ZW50KTtcbiAgICAgIGlmIChwcmV2aW91c0ZuKSB7XG4gICAgICAgIHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBwcmV2aW91c0ZuKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmbik7XG4gICAgfVxuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuc2V0KGV2ZW50LCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uUmVzZXQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlc2V0Rm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZChmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZEZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uUmVtb3ZlKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25jbGFzc0NoYW5nZShmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25BZGRDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmVDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlbW92ZUNoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc0FkZGVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NBZGRlZC5zZXQoY2xhc3NOYW1lLCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uQ2xhc3NSZW1vdmVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgRWxlbWVudE9ic2VydmVyIH0gZnJvbSAnLi9lbGVtZW50T2JzZXJ2ZXInO1xuaW1wb3J0IHsgTm9kZVNlbGVjdG9yIH0gZnJvbSAnLi9ub2RlU2VsZWN0b3InO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgbWFuYWdlcyBhIGBNdXRhdGlvbk9ic2VydmVyYCBmb3IgdGhlIGBkb2N1bWVudC5ib2R5YC4gSXQgbW9uaXRvcnMgbm9kZXMgdGhhdCBhcmVcbiAqIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgRE9NIGFuZCBub3RpZmllcyB0aGUgb2JzZXJ2ZXJzIGZvciBlYWNoIG9ic2VydmFibGUgZWxlbWVudFxuICogd2hlbiB0aGV5IGFyZSByZWFkeSB0byBiZSB3YXRjaGVkLlxuICpcbiAqIEhvdyB0aGF0IHdvcmtzOlxuICpcbiAqIFdoZW4gdGhlIGBvYnNlcnZlYCBmdW5jdGlvbiBpcyBjYWxsZWQsIGl0IGF0dGFjaGVzIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIHRvIHRoZSBgZG9jdW1lbnQuYm9keWAgZWxlbWVudC5cbiAqIEFsbCBjaGFuZ2VzIHRvIGBkb2N1bWVudC5ib2R5YCBhcmUgdHJhY2tlZCBieSB0aGlzIG9ic2VydmVyLiBXaGVuIGNoYW5nZXMgYXJlIGRldGVjdGVkLCB0aGUgYE11dGF0aW9uT2JzZXJ2ZXJgXG4gKiBpdGVyYXRlcyB0aHJvdWdoIGFsbCBhZGRlZCBhbmQgcmVtb3ZlZCBub2RlcyBhbmQgY2hlY2tzIGlmIGVhY2ggbm9kZSBleGlzdHMgaW4gdGhlIG1haW4gbWFwIG9mIG9ic2VydmFibGUgZWxlbWVudHMuXG4gKlxuICogSWYgYSBtYXRjaCBpcyBmb3VuZCwgaXQgbm90aWZpZXMgdGhlIGNvcnJlc3BvbmRpbmcgYEVsZW1lbnRPYnNlcnZlcmAgaW5zdGFuY2UgdG8gc3RhcnQgbW9uaXRvcmluZyBjaGFuZ2VzIGZvciB0aGF0IGVsZW1lbnQuXG4gKlxuICogVGhlIHByaW1hcnkgYE11dGF0aW9uT2JzZXJ2ZXJgIHJlbWFpbnMgYWN0aXZlIHVudGlsIHRoZSBgZGVzdHJveWAgZnVuY3Rpb24gaXMgY2FsbGVkLiBDYWxsaW5nIGBkZXN0cm95YCB3aWxsIGRpc2Nvbm5lY3QgYWxsXG4gKiBpbmRpdmlkdWFsIGVsZW1lbnQgb2JzZXJ2ZXJzIGFuZCByZWxlYXNlIGFueSBhc3NvY2lhdGVkIHJlc291cmNlcy5cbiAqXG4gKiBUaGVyZSBpcyBubyBuZWVkIHRvIGV4cGxpY2l0bHkgY2FsbCB0aGUgYG9ic2VydmVgIGZ1bmN0aW9uLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGludm9rZWQgd2hlbiBhIGB1c2VFbGVtZW50T2JzZXJ2ZXJgIGhvb2sgaXMgaW5zdGFudGlhdGVkLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIERPTU9ic2VydmVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgZG9jdW1lbnRPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIGxpc3RlbmVyczogTWFwPHN0cmluZywgRWxlbWVudE9ic2VydmVyPiA9IG5ldyBNYXAoKTtcblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlBZGl0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkKSA9PlxuICAgICAgcmVjb3JkLmFkZGVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICBub2RlTWFwcGluZy5nZXQobm9kZSk/LndhdGNoKG5vZGUpO1xuICAgICAgICBub2RlTWFwcGluZy5kZWxldGUobm9kZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm90aWZ5UmVtb3ZhbChyZWNvcmRzOiBNdXRhdGlvblJlY29yZFtdLCBub2RlTWFwcGluZzogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4pIHtcbiAgICByZWNvcmRzLmZvckVhY2goKHJlY29yZCkgPT5cbiAgICAgIHJlY29yZC5yZW1vdmVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICBub2RlTWFwcGluZy5nZXQobm9kZSk/LmRlc3Ryb3koKTtcbiAgICAgICAgbm9kZU1hcHBpbmcuZGVsZXRlKG5vZGUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG5vdGlmeUNoaWxkcmVuQ2hhbmdlcyhub2RlTWFwcGluZzogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4pIHtcbiAgICBBcnJheS5mcm9tKG5vZGVNYXBwaW5nLnZhbHVlcygpKS5mb3JFYWNoKChvYnNlcnZlcikgPT4gb2JzZXJ2ZXIuc3luY2hyb25pemUoKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBtYXBOb2RlSW5zdGFuY2VzVG9MaXN0ZW5lcnMoKTogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4ge1xuICAgIGNvbnN0IG5vZGVNYXBwaW5nID0gbmV3IE1hcDxOb2RlLCBFbGVtZW50T2JzZXJ2ZXI+KCk7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBvYnNlcnZlci5nZXROb2RlKCkgfHwgb2JzZXJ2ZXIuZ2V0U2VsZWN0b3IoKT8ucGFyc2UoKTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIG5vZGVNYXBwaW5nLnNldChub2RlLCBvYnNlcnZlcik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGVNYXBwaW5nO1xuICB9XG5cbiAgc3RhdGljIGFkZChzZWxlY3RvcjogTm9kZVNlbGVjdG9yKTogRWxlbWVudE9ic2VydmVyIHtcbiAgICBjb25zdCBub2RlID0gc2VsZWN0b3IuZ2V0UGF0dGVybigpO1xuICAgIGxldCBlbGVtZW50T2JzZXJ2ZXIgPSB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk7XG4gICAgaWYgKGVsZW1lbnRPYnNlcnZlcikge1xuICAgICAgcmV0dXJuIGVsZW1lbnRPYnNlcnZlcjtcbiAgICB9XG5cbiAgICBlbGVtZW50T2JzZXJ2ZXIgPSBuZXcgRWxlbWVudE9ic2VydmVyKHNlbGVjdG9yKTtcbiAgICB0aGlzLmxpc3RlbmVycy5zZXQobm9kZSwgZWxlbWVudE9ic2VydmVyKTtcbiAgICByZXR1cm4gZWxlbWVudE9ic2VydmVyO1xuICB9XG5cbiAgc3RhdGljIHJlbW92ZShzZWxlY3RvcjogTm9kZVNlbGVjdG9yKSB7XG4gICAgY29uc3Qgbm9kZSA9IHNlbGVjdG9yLmdldFBhdHRlcm4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmxpc3RlbmVycy5kZWxldGUobm9kZSk7XG4gIH1cblxuICBzdGF0aWMgb2JzZXJ2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnRPYnNlcnZlcikge1xuICAgICAgdGhpcy5kb2N1bWVudE9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgICBjb25zdCBub2RlTWFwcGluZyA9IHRoaXMubWFwTm9kZUluc3RhbmNlc1RvTGlzdGVuZXJzKCk7XG4gICAgICAgIHRoaXMubm90aWZ5QWRpdGlvbihtdXRhdGlvbnMsIG5vZGVNYXBwaW5nKTtcbiAgICAgICAgdGhpcy5ub3RpZnlSZW1vdmFsKG11dGF0aW9ucywgbm9kZU1hcHBpbmcpO1xuICAgICAgICB0aGlzLm5vdGlmeUNoaWxkcmVuQ2hhbmdlcyhub2RlTWFwcGluZyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZG9jdW1lbnRPYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuZG9jdW1lbnRPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci5kZXN0cm95KCkpO1xuICAgIHRoaXMubGlzdGVuZXJzLmNsZWFyKCk7XG4gICAgdGhpcy5kb2N1bWVudE9ic2VydmVyID0gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE1BQU0saUJBQWlCLFVBQWtCLGVBQXVCO0NBQzlELE1BQU0saUJBQWlCLElBQUksSUFBSSxTQUFTLE1BQU0sSUFBSSxDQUFDO0NBQ25ELE1BQU0sbUJBQW1CLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDO0FBQ3ZELFFBQU8sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUM7O0FBRzVFLElBQWEs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
304
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tT2JzZXJ2ZXItTENCajF4dzQuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tdXRhdGlvbkhlbHBlci50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9lbGVtZW50T2JzZXJ2ZXIudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvZG9tT2JzZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tcGFyZVRva2VucyA9IChvcmlnaW5hbDogc3RyaW5nLCBjb21wYXJpc29uOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgb3JpZ2luYWxUb2tlbnMgPSBuZXcgU2V0KG9yaWdpbmFsLnNwbGl0KCcgJykpO1xuICBjb25zdCBjb21wYXJpc29uVG9rZW5zID0gbmV3IFNldChjb21wYXJpc29uLnNwbGl0KCcgJykpO1xuICByZXR1cm4gWy4uLm9yaWdpbmFsVG9rZW5zXS5maWx0ZXIoKHRva2VuKSA9PiAhY29tcGFyaXNvblRva2Vucy5oYXModG9rZW4pKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBNdXRhdGlvbkhlbHBlciB7XG4gIHN0YXRpYyBmaXJlQ2xhc3NDaGFuZ2UoXG4gICAgcmVjb3JkOiBNdXRhdGlvblJlY29yZCxcbiAgICBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgZm46IChjbGFzc2VzOiBET01Ub2tlbkxpc3QpID0+IHZvaWQsXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSAhPT0gbm9kZT8uY2xhc3NMaXN0LnZhbHVlKSB7XG4gICAgICBmbihub2RlPy5jbGFzc0xpc3QpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NBZGRlZChcbiAgICByZWNvcmQ6IE11dGF0aW9uUmVjb3JkLFxuICAgIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBjbGFzc01hcDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4sXG4gICkge1xuICAgIGlmIChub2RlICYmIHJlY29yZC5vbGRWYWx1ZSkge1xuICAgICAgY29uc3QgdG9rZW5zID0gY29tcGFyZVRva2Vucyhub2RlPy5jbGFzc0xpc3QudmFsdWUsIHJlY29yZC5vbGRWYWx1ZSk7XG4gICAgICB0b2tlbnMuZm9yRWFjaCgoY2xhc3NOYW1lKSA9PiBjbGFzc01hcC5nZXQoY2xhc3NOYW1lKT8uKCkpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaXJlQ2xhc3NSZW1vdmVkKFxuICAgIHJlY29yZDogTXV0YXRpb25SZWNvcmQsXG4gICAgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPixcbiAgKSB7XG4gICAgaWYgKG5vZGUgJiYgcmVjb3JkLm9sZFZhbHVlKSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb21wYXJlVG9rZW5zKHJlY29yZC5vbGRWYWx1ZSwgbm9kZT8uY2xhc3NMaXN0LnZhbHVlKTtcbiAgICAgIHRva2Vucy5mb3JFYWNoKChjbGFzc05hbWUpID0+IGNsYXNzTWFwLmdldChjbGFzc05hbWUpPy4oKSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpcmVTdWJ0cmVlQ2hhbmdlKG5vZGVzOiBOb2RlTGlzdCwgZm4/OiAobm9kZXM6IE5vZGVMaXN0KSA9PiB2b2lkKSB7XG4gICAgbm9kZXMubGVuZ3RoICYmIGZuPy4obm9kZXMpO1xuICB9XG5cbiAgc3RhdGljIGlzQ2xhc3MobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSB7XG4gICAgcmV0dXJuIG11dGF0aW9uLnR5cGUgPT09ICdhdHRyaWJ1dGVzJyAmJiBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnY2xhc3MnO1xuICB9XG5cbiAgc3RhdGljIGlzQ2hpbGRMaXN0KG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCkge1xuICAgIHJldHVybiBtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0JztcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVhY3RFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IE1vdXNlRXZlbnRUeXBlcyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgTXV0YXRpb25IZWxwZXIgfSBmcm9tICcuL211dGF0aW9uSGVscGVyJztcbmltcG9ydCB7IE5vZGVTZWxlY3RvciB9IGZyb20gJy4vbm9kZVNlbGVjdG9yJztcblxuLyoqXG4gKiBUaGUgYEVsZW1lbnRPYnNlcnZlcmAgY2xhc3MgbW9uaXRvcnMgYWxsIGNoYW5nZXMgcmVsYXRlZCB0byB0aGUgc3BlY2lmaWMgZWxlbWVudCBpdCBpcyByZXNwb25zaWJsZSBmb3IuXG4gKiBJdCBpcyBhdXRvbWF0aWNhbGx5IGluc3RhbnRpYXRlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgd2hpY2ggbWFuYWdlcyBhbGwgaW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MuXG4gKlxuICogSG93IGl0IHdvcmtzOlxuICpcbiAqIEVhY2ggaW5zdGFuY2Ugb2YgYEVsZW1lbnRPYnNlcnZlcmAgaG9sZHMgc2V2ZXJhbCBwaWVjZXMgb2YgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgbm9kZSBpdCBpcyBtb25pdG9yaW5nLFxuICogc3VjaCBhcyB0aGUgbm9kZSdzIHNlbGVjdG9yIGFuZCBpdHMgYE11dGF0aW9uT2JzZXJ2ZXJgLiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0cmFuc2xhdGluZyByYXcgbm9kZVxuICogY2hhbmdlcyBpbnRvIGEgbW9yZSB1c2VyLWZyaWVuZGx5IGZvcm1hdC4gRm9yIGV4YW1wbGUsIHdoZW4gdGhlIG5vZGUgaXMgYWRkZWQgdG8gdGhlIERPTSwgdGhlIGBFbGVtZW50T2JzZXJ2ZXJgXG4gKiBpcyBub3RpZmllZCBieSB0aGUgYERPTU9ic2VydmVyYCwgd2hpY2ggdHJpZ2dlcnMgdGhlIGBvbkFkZGAgY2FsbGJhY2sgZnVuY3Rpb24gb24gdGhlIHJlc3BlY3RpdmUgYHVzZUVsZW1lbnRPYnNlcnZlcmBcbiAqIGluc3RhbmNlLlxuICpcbiAqIEluc3RhbmNlcyBvZiBgRWxlbWVudE9ic2VydmVyYCBhcmUgZnVsbHkgbWFuYWdlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgcmVxdWlyaW5nIG5vIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbi5cbiAqIFdoZW4gdGhlIGhvb2sgaXMgZGVzdHJveWVkLCBpdHMgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRWxlbWVudE9ic2VydmVyIHtcbiAgcHJpdmF0ZSBtdXRhdGlvbjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG5cbiAgcHJpdmF0ZSBub2RlOiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgcHJpdmF0ZSBzZWxlY3RvcjogTm9kZVNlbGVjdG9yO1xuXG4gIHByaXZhdGUgZXZlbnRMaXN0ZW5lcnM6IE1hcDxrZXlvZiBIVE1MRWxlbWVudEV2ZW50TWFwLCBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0PjtcblxuICBwcml2YXRlIGNsYXNzQWRkZWQ6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+O1xuXG4gIHByaXZhdGUgY2xhc3NSZW1vdmVkOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPjtcblxuICBwcml2YXRlIG5vZGVEaXNwbGF5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBhZGRGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZW1vdmVGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjaGFuZ2VGbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBjbGFzc0NoYW5nZUZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGFkZENoaWxkRm4/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVtb3ZlQ2hpbGRGbj86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSByZXNldEZuOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpIHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuY2xhc3NBZGRlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLmNsYXNzUmVtb3ZlZCA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLm5vZGVEaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLmFkZEZuID0gKCkgPT4ge307XG4gICAgdGhpcy5yZW1vdmVGbiA9ICgpID0+IHt9O1xuICAgIHRoaXMuY2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSAoKSA9PiB7fTtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZW1vdmVDaGlsZEZuID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVzZXRGbiA9ICgpID0+IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBdHRyaWJ1dGVzKG11dGF0aW9uUmVjb3JkOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgbXV0YXRpb25SZWNvcmQuZmlsdGVyKE11dGF0aW9uSGVscGVyLmlzQ2xhc3MpLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlQ2xhc3NDaGFuZ2UobXV0YXRpb24sIHRoaXMubm9kZSwgdGhpcy5jbGFzc0NoYW5nZUZuKTtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVDbGFzc0FkZGVkKG11dGF0aW9uLCB0aGlzLm5vZGUsIHRoaXMuY2xhc3NBZGRlZCk7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlQ2xhc3NSZW1vdmVkKG11dGF0aW9uLCB0aGlzLm5vZGUsIHRoaXMuY2xhc3NSZW1vdmVkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2hpbGRMaXN0KG11dGF0aW9uUmVjb3JkOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgaWYgKCF0aGlzLmFkZENoaWxkRm4gJiYgIXRoaXMucmVtb3ZlQ2hpbGRGbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG11dGF0aW9uUmVjb3JkLmZpbHRlcihNdXRhdGlvbkhlbHBlci5pc0NoaWxkTGlzdCkuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcbiAgICAgIE11dGF0aW9uSGVscGVyLmZpcmVTdWJ0cmVlQ2hhbmdlKG11dGF0aW9uLmFkZGVkTm9kZXMsIHRoaXMuYWRkQ2hpbGRGbik7XG4gICAgICBNdXRhdGlvbkhlbHBlci5maXJlU3VidHJlZUNoYW5nZShtdXRhdGlvbi5yZW1vdmVkTm9kZXMsIHRoaXMucmVtb3ZlQ2hpbGRGbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEluaXRpYWxMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh2LCBrKSA9PiB0aGlzLm5vZGU/LmFkZEV2ZW50TGlzdGVuZXIoaywgdikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgodiwgaykgPT4gdGhpcy5ub2RlPy5yZW1vdmVFdmVudExpc3RlbmVyKGssIHYpKTtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmV3KG5ld05vZGU6IE5vZGUgfCBudWxsKSB7XG4gICAgaWYgKG5ld05vZGUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgdGhpcy53YXRjaChuZXdOb2RlKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcjtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIHN5bmNocm9uaXplKCkge1xuICAgIGNvbnN0IHBhcnNlZE5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcblxuICAgIGlmICh0aGlzLmdldE5vZGUoKSAhPT0gcGFyc2VkTm9kZSkge1xuICAgICAgdGhpcy5yZW5ldyhwYXJzZWROb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZ2V0Tm9kZSgpICYmIHBhcnNlZE5vZGUpIHtcbiAgICAgIHRoaXMud2F0Y2gocGFyc2VkTm9kZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0Tm9kZSgpICYmICFwYXJzZWROb2RlKSB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBpbml0KCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldFNlbGVjdG9yKCkucGFyc2UoKTtcbiAgICBpZiAobm9kZSkge1xuICAgICAgdGhpcy53YXRjaChub2RlKTtcbiAgICB9XG4gIH1cblxuICB3YXRjaChub2RlOiBOb2RlKSB7XG4gICAgaWYgKCF0aGlzLm11dGF0aW9uKSB7XG4gICAgICB0aGlzLm11dGF0aW9uID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uUmVjb3JkKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQXR0cmlidXRlcyhtdXRhdGlvblJlY29yZCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hpbGRMaXN0KG11dGF0aW9uUmVjb3JkKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VGbih0aGlzLm5vZGUpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm11dGF0aW9uLm9ic2VydmUobm9kZSwge1xuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm5vZGUgPSBub2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgdGhpcy5hZGRGbih0aGlzLm5vZGUpO1xuICAgICAgdGhpcy5hZGRJbml0aWFsTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnJlc2V0Rm4oKTtcbiAgICB0aGlzLnJlbW92ZUZuKHRoaXMubm9kZSk7XG4gICAgdGhpcy5tdXRhdGlvbj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY2xlYXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuY2xhc3NBZGRlZC5jbGVhcigpO1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLmNsZWFyKCk7XG4gICAgdGhpcy5tdXRhdGlvbiA9IG51bGw7XG4gICAgdGhpcy5ub2RlID0gbnVsbDtcbiAgfVxuXG4gIHJlbmRlcihmbjogKCkgPT4gUmVhY3RFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVBvcnRhbChmbigpLCB0aGlzLm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGZpcmUoZXZlbnQ6IE1vdXNlRXZlbnRUeXBlcykge1xuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHRoaXMubm9kZS5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgTW91c2VFdmVudChldmVudCwge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgICB2aWV3OiB3aW5kb3csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIGNvbnN0IGRpc3BsYXkgPSB0aGlzLm5vZGU/LnN0eWxlLmRpc3BsYXk7XG4gICAgaWYgKHRoaXMubm9kZSAmJiBkaXNwbGF5ID09PSAnbm9uZScpIHtcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5ub2RlRGlzcGxheSB8fCAnYmxvY2snO1xuICAgIH1cbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMubm9kZT8uc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodGhpcy5ub2RlICYmIGRpc3BsYXkgIT09ICdub25lJykge1xuICAgICAgdGhpcy5ub2RlRGlzcGxheSA9IGRpc3BsYXkgfHwgJ2Jsb2NrJztcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyRXZlbnQoZXZlbnQ6IGtleW9mIEhUTUxFbGVtZW50RXZlbnRNYXAsIGZuOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0KSB7XG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgY29uc3QgcHJldmlvdXNGbiA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMuZ2V0KGV2ZW50KTtcbiAgICAgIGlmIChwcmV2aW91c0ZuKSB7XG4gICAgICAgIHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBwcmV2aW91c0ZuKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmbik7XG4gICAgfVxuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuc2V0KGV2ZW50LCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uUmVzZXQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlc2V0Rm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkFkZChmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZEZuID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uUmVtb3ZlKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCkge1xuICAgIHRoaXMucmVtb3ZlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25jbGFzc0NoYW5nZShmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNsYXNzQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25BZGRDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLmFkZENoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25SZW1vdmVDaGlsZChmbjogKGNsYXNzZXM/OiBET01Ub2tlbkxpc3QpID0+IHZvaWQpIHtcbiAgICB0aGlzLnJlbW92ZUNoaWxkRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DbGFzc0FkZGVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NBZGRlZC5zZXQoY2xhc3NOYW1lLCBmbik7XG4gIH1cblxuICByZWdpc3Rlck9uQ2xhc3NSZW1vdmVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuY2xhc3NSZW1vdmVkLnNldChjbGFzc05hbWUsIGZuKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgRWxlbWVudE9ic2VydmVyIH0gZnJvbSAnLi9lbGVtZW50T2JzZXJ2ZXInO1xuaW1wb3J0IHsgTm9kZVNlbGVjdG9yIH0gZnJvbSAnLi9ub2RlU2VsZWN0b3InO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgbWFuYWdlcyBhIGBNdXRhdGlvbk9ic2VydmVyYCBmb3IgdGhlIGBkb2N1bWVudC5ib2R5YC4gSXQgbW9uaXRvcnMgbm9kZXMgdGhhdCBhcmVcbiAqIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgRE9NIGFuZCBub3RpZmllcyB0aGUgb2JzZXJ2ZXJzIGZvciBlYWNoIG9ic2VydmFibGUgZWxlbWVudFxuICogd2hlbiB0aGV5IGFyZSByZWFkeSB0byBiZSB3YXRjaGVkLlxuICpcbiAqIEhvdyB0aGF0IHdvcmtzOlxuICpcbiAqIFdoZW4gdGhlIGBvYnNlcnZlYCBmdW5jdGlvbiBpcyBjYWxsZWQsIGl0IGF0dGFjaGVzIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIHRvIHRoZSBgZG9jdW1lbnQuYm9keWAgZWxlbWVudC5cbiAqIEFsbCBjaGFuZ2VzIHRvIGBkb2N1bWVudC5ib2R5YCBhcmUgdHJhY2tlZCBieSB0aGlzIG9ic2VydmVyLiBXaGVuIGNoYW5nZXMgYXJlIGRldGVjdGVkLCB0aGUgYE11dGF0aW9uT2JzZXJ2ZXJgXG4gKiBpdGVyYXRlcyB0aHJvdWdoIGFsbCBhZGRlZCBhbmQgcmVtb3ZlZCBub2RlcyBhbmQgY2hlY2tzIGlmIGVhY2ggbm9kZSBleGlzdHMgaW4gdGhlIG1haW4gbWFwIG9mIG9ic2VydmFibGUgZWxlbWVudHMuXG4gKlxuICogSWYgYSBtYXRjaCBpcyBmb3VuZCwgaXQgbm90aWZpZXMgdGhlIGNvcnJlc3BvbmRpbmcgYEVsZW1lbnRPYnNlcnZlcmAgaW5zdGFuY2UgdG8gc3RhcnQgbW9uaXRvcmluZyBjaGFuZ2VzIGZvciB0aGF0IGVsZW1lbnQuXG4gKlxuICogVGhlIHByaW1hcnkgYE11dGF0aW9uT2JzZXJ2ZXJgIHJlbWFpbnMgYWN0aXZlIHVudGlsIHRoZSBgZGVzdHJveWAgZnVuY3Rpb24gaXMgY2FsbGVkLiBDYWxsaW5nIGBkZXN0cm95YCB3aWxsIGRpc2Nvbm5lY3QgYWxsXG4gKiBpbmRpdmlkdWFsIGVsZW1lbnQgb2JzZXJ2ZXJzIGFuZCByZWxlYXNlIGFueSBhc3NvY2lhdGVkIHJlc291cmNlcy5cbiAqXG4gKiBUaGVyZSBpcyBubyBuZWVkIHRvIGV4cGxpY2l0bHkgY2FsbCB0aGUgYG9ic2VydmVgIGZ1bmN0aW9uLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGludm9rZWQgd2hlbiBhIGB1c2VFbGVtZW50T2JzZXJ2ZXJgIGhvb2sgaXMgaW5zdGFudGlhdGVkLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIERPTU9ic2VydmVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgZG9jdW1lbnRPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIGxpc3RlbmVyczogTWFwPHN0cmluZywgRWxlbWVudE9ic2VydmVyPiA9IG5ldyBNYXAoKTtcblxuICBwcml2YXRlIHN0YXRpYyBub3RpZnlBZGl0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10sIG5vZGVNYXBwaW5nOiBNYXA8Tm9kZSwgRWxlbWVudE9ic2VydmVyPikge1xuICAgIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkKSA9PlxuICAgICAgcmVjb3JkLmFkZGVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICBub2RlTWFwcGluZy5nZXQobm9kZSk/LndhdGNoKG5vZGUpO1xuICAgICAgICBub2RlTWFwcGluZy5kZWxldGUobm9kZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm90aWZ5UmVtb3ZhbChyZWNvcmRzOiBNdXRhdGlvblJlY29yZFtdLCBub2RlTWFwcGluZzogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4pIHtcbiAgICByZWNvcmRzLmZvckVhY2goKHJlY29yZCkgPT5cbiAgICAgIHJlY29yZC5yZW1vdmVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICBub2RlTWFwcGluZy5nZXQobm9kZSk/LmRlc3Ryb3koKTtcbiAgICAgICAgbm9kZU1hcHBpbmcuZGVsZXRlKG5vZGUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG5vdGlmeUNoaWxkcmVuQ2hhbmdlcyhub2RlTWFwcGluZzogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4pIHtcbiAgICBBcnJheS5mcm9tKG5vZGVNYXBwaW5nLnZhbHVlcygpKS5mb3JFYWNoKChvYnNlcnZlcikgPT4gb2JzZXJ2ZXIuc3luY2hyb25pemUoKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBtYXBOb2RlSW5zdGFuY2VzVG9MaXN0ZW5lcnMoKTogTWFwPE5vZGUsIEVsZW1lbnRPYnNlcnZlcj4ge1xuICAgIGNvbnN0IG5vZGVNYXBwaW5nID0gbmV3IE1hcDxOb2RlLCBFbGVtZW50T2JzZXJ2ZXI+KCk7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSBvYnNlcnZlci5nZXROb2RlKCkgfHwgb2JzZXJ2ZXIuZ2V0U2VsZWN0b3IoKT8ucGFyc2UoKTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIG5vZGVNYXBwaW5nLnNldChub2RlLCBvYnNlcnZlcik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGVNYXBwaW5nO1xuICB9XG5cbiAgc3RhdGljIGFkZChzZWxlY3RvcjogTm9kZVNlbGVjdG9yKTogRWxlbWVudE9ic2VydmVyIHtcbiAgICBjb25zdCBub2RlID0gc2VsZWN0b3IuZ2V0UGF0dGVybigpO1xuICAgIGxldCBlbGVtZW50T2JzZXJ2ZXIgPSB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk7XG4gICAgaWYgKGVsZW1lbnRPYnNlcnZlcikge1xuICAgICAgcmV0dXJuIGVsZW1lbnRPYnNlcnZlcjtcbiAgICB9XG5cbiAgICBlbGVtZW50T2JzZXJ2ZXIgPSBuZXcgRWxlbWVudE9ic2VydmVyKHNlbGVjdG9yKTtcbiAgICB0aGlzLmxpc3RlbmVycy5zZXQobm9kZSwgZWxlbWVudE9ic2VydmVyKTtcbiAgICByZXR1cm4gZWxlbWVudE9ic2VydmVyO1xuICB9XG5cbiAgc3RhdGljIHJlbW92ZShzZWxlY3RvcjogTm9kZVNlbGVjdG9yKSB7XG4gICAgY29uc3Qgbm9kZSA9IHNlbGVjdG9yLmdldFBhdHRlcm4oKTtcbiAgICB0aGlzLmxpc3RlbmVycy5nZXQobm9kZSk/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmxpc3RlbmVycy5kZWxldGUobm9kZSk7XG4gIH1cblxuICBzdGF0aWMgb2JzZXJ2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnRPYnNlcnZlcikge1xuICAgICAgdGhpcy5kb2N1bWVudE9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgICBjb25zdCBub2RlTWFwcGluZyA9IHRoaXMubWFwTm9kZUluc3RhbmNlc1RvTGlzdGVuZXJzKCk7XG4gICAgICAgIHRoaXMubm90aWZ5QWRpdGlvbihtdXRhdGlvbnMsIG5vZGVNYXBwaW5nKTtcbiAgICAgICAgdGhpcy5ub3RpZnlSZW1vdmFsKG11dGF0aW9ucywgbm9kZU1hcHBpbmcpO1xuICAgICAgICB0aGlzLm5vdGlmeUNoaWxkcmVuQ2hhbmdlcyhub2RlTWFwcGluZyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZG9jdW1lbnRPYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuZG9jdW1lbnRPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci5kZXN0cm95KCkpO1xuICAgIHRoaXMubGlzdGVuZXJzLmNsZWFyKCk7XG4gICAgdGhpcy5kb2N1bWVudE9ic2VydmVyID0gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE1BQU0saUJBQWlCLFVBQWtCLGVBQXVCO0NBQzlELE1BQU0saUJBQWlCLElBQUksSUFBSSxTQUFTLE1BQU0sSUFBSSxDQUFDO0NBQ25ELE1BQU0sbUJBQW1CLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDO0FBQ3ZELFFBQU8sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUM7O0FBRzVFLElBQWEs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
@@ -127,4 +127,4 @@ Object.defineProperty(exports, 'reactAppNameAtom', {
127
127
  return reactAppNameAtom;
128
128
  }
129
129
  });
130
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnLURwODBoOXl1LmNqcyIsIm5hbWVzIjpbIkxvY2FsU3RvcmFnZUtleXMiLCJDb250ZXh0U291cmNlRW51bSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBDb250ZXh0U291cmNlRW51bSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VLZXlzLCBFbnZpdmVDb25maWcgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuY29uc3QgaW50ZXJuYWxFbnZpdmVDb25maWdBdG9tID0gYXRvbTxFbnZpdmVDb25maWcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBlbnZpdmVDb25maWdBdG9tID0gYXRvbShcbiAgKGdldCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldChpbnRlcm5hbEVudml2ZUNvbmZpZ0F0b20pO1xuICAgIExvZ2dlci5sb2dEZWJ1ZygnZW52aXZlQ29uZmlnLnRzOiBBY2Nlc3NpbmcgaW50ZXJuYWxFbnZpdmVDb25maWdBdG9tJywgY29uZmlnKTtcbiAgICByZXR1cm4gY29uZmlnOyAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vdCBzZXQgaW5zdGVhZCBvZiB0aHJvd2luZ1xuICB9LFxuICAoXywgc2V0LCB2YWx1ZTogRW52aXZlQ29uZmlnKSA9PiB7XG4gICAgc2V0KGludGVybmFsRW52aXZlQ29uZmlnQXRvbSwgdmFsdWUpO1xuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IGFtcGxpdHVkZUFwaUtleUF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXk7XG59KTtcbmV4cG9ydCBjb25zdCBkYXRhUmVzaWRlbmN5QXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG4gIHJldHVybiBjb25maWc/LmRhdGFSZXNpZGVuY3k7XG59KTtcbmV4cG9ydCBjb25zdCBlbnZBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgcmV0dXJuIGNvbmZpZz8uZW52O1xufSk7XG5leHBvcnQgY29uc3QgYmFzZVVybEF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5iYXNlVXJsIHx8ICdodHRwczovL2NvbW1lcmNlLWFwaS5kZXYuc3BpZmZ5LmFpJztcbn0pO1xuZXhwb3J0IGNvbnN0IHJlYWN0QXBwTmFtZUF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5yZWFjdEFwcE5hbWU7XG59KTtcbmV4cG9ydCBjb25zdCBjZG5VcmxBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgcmV0dXJuIGNvbmZpZz8uY2RuVXJsO1xufSk7XG5cbmV4cG9ydCBjb25zdCBjb250ZXh0U291cmNlQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG5cbiAgaWYgKGNvbmZpZz8uY29udGV4dFNvdXJjZSkge1xuICAgIHJldHVybiBjb25maWcuY29udGV4dFNvdXJjZSBhcyBDb250ZXh0U291cmNlRW51bTtcbiAgfVxuXG4gIGNvbnN0IHNwaWZmeU9uRmVhdHVyZUZsYWdTZXQgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlS2V5cy5TcGlmZnlPbk92ZXJyaWRlKTtcbiAgaWYgKHNwaWZmeU9uRmVhdHVyZUZsYWdTZXQgPT09ICd0cnVlJykge1xuICAgIHJldHVybiBDb250ZXh0U291cmNlRW51bS5QbGF5Z3JvdW5kO1xuICB9XG5cbiAgcmV0dXJuIENvbnRleHRTb3VyY2VFbnVtLkFwcDtcbn0pO1xuXG5leHBvcnQgY29uc3Qgb3JnTGV2ZWxBcGlLZXlBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBvcmdMZXZlbEFwaUtleScsIGNvbmZpZyk7XG4gIHJldHVybiBjb25maWc/Lm9yZ0xldmVsQXBpS2V5O1xufSk7XG5leHBvcnQgY29uc3Qgb3JnU2hvcnROYW1lQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG4gIExvZ2dlci5sb2dEZWJ1ZygnZW52aXZlQ29uZmlnLnRzOiBBY2Nlc3Npbmcgb3JnU2hvcnROYW1lJywgY29uZmlnKTtcbiAgcmV0dXJuIGNvbmZpZz8ub3JnU2hvcnROYW1lO1xufSk7XG5leHBvcnQgY29uc3QgaWRlbnRpZnlpbmdQcmVmaXhBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBpZGVudGlmeWluZ1ByZWZpeCcsIGNvbmZpZyk7XG4gIHJldHVybiBjb25maWc/LmlkZW50aWZ5aW5nUHJlZml4IHx8ICdzcGlmZnknO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwdWJsaWNLZXlBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBwdWJsaWNLZXknLCBjb25maWcpO1xuICByZXR1cm4gY29uZmlnPy5wdWJsaWNLZXk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0EsTUFBTSwyQ0FBMEQsT0FBVTtBQUUxRSxNQUFhLG9DQUNWLFFBQVE7Q0FDUCxNQUFNLFNBQVMsSUFBSSx5QkFBeUI7QUFDNUMsK0JBQU8sU0FBUyx1REFBdUQsT0FBTztBQUM5RSxRQUFPO0lBRVIsR0FBRyxLQUFLLFVBQXdCO0FBQy9CLEtBQUksMEJBQTBCLE1BQU07RUFFdkM7QUFFRCxNQUFhLHVDQUE0QixRQUFRO0FBRS9DLFFBRGUsSUFBSSxpQkFBaUIsRUFDckI7RUFDZjtBQUNGLE1BQWEscUNBQTBCLFFBQVE7QUFFN0MsUUFEZSxJQUFJLGlCQUFpQixFQUNyQjtFQUNmO0FBQ0YsTUFBYSwyQkFBZ0IsUUFBUTtBQUVuQyxRQURlLElBQUksaUJBQWlCLEVBQ3JCO0VBQ2Y7QUFDRixNQUFhLCtCQUFvQixRQUFRO0FBRXZDLFFBRGUsSUFBSSxpQkFBaUIsRUFDckIsV0FBVztFQUMxQjtBQUNGLE1BQWEsb0NBQXlCLFFBQVE7QUFFNUMsUUFEZSxJQUFJLGlCQUFpQixFQUNyQjtFQUNmO0FBQ0YsTUFBYSw4QkFBbUIsUUFBUTtBQUV0QyxRQURlLElBQUksaUJBQWlCLEVBQ3JCO0VBQ2Y7QUFFRixNQUFhLHFDQUEwQixRQUFRO0NBQzdDLE1BQU0sU0FBUyxJQUFJLGlCQUFpQjtBQUVwQyxLQUFJLFFBQVEsY0FDVixRQUFPLE9BQU87QUFJaEIsS0FEK0IsT0FBTyxhQUFhLFFBQVFBLDhCQUFpQixpQkFBaUIsS0FDOUQsT0FDN0IsUUFBT0Msa0RBQWtCO0FBRzNCLFFBQU9BLGtEQUFrQjtFQUN6QjtBQUVGLE1BQWEsc0NBQTJCLFFBQVE7Q0FDOUMsTUFBTSxTQUFTLElBQUksaUJBQWlCO0FBQ3BDLCtCQUFPLFNBQVMsNkNBQTZDLE9BQU87QUFDcEUsUUFBTyxRQUFRO0VBQ2Y7QUFDRixNQUFhLG9DQUF5QixRQUFRO0NBQzVDLE1BQU0sU0FBUyxJQUFJLGlCQUFpQjtBQUNwQywrQkFBTyxTQUFTLDJDQUEyQyxPQUFPO0FBQ2xFLFFBQU8sUUFBUTtFQUNmO0FBQ0YsTUFBYSx5Q0FBOEIsUUFBUTtDQUNqRCxNQUFNLFNBQVMsSUFBSSxpQkFBaUI7QUFDcEMsK0JBQU8sU0FBUyxnREFBZ0QsT0FBTztBQUN2RSxRQUFPLFFBQVEscUJBQXFCO0VBQ3BDO0FBRUYsTUFBYSxpQ0FBc0IsUUFBUTtDQUN6QyxNQUFNLFNBQVMsSUFBSSxpQkFBaUI7QUFDcEMsK0JBQU8sU0FBUyx3Q0FBd0MsT0FBTztBQUMvRCxRQUFPLFFBQVE7RUFDZiJ9
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnLUNRXzhtVC1nLmNqcyIsIm5hbWVzIjpbIkxvY2FsU3RvcmFnZUtleXMiLCJDb250ZXh0U291cmNlRW51bSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBDb250ZXh0U291cmNlRW51bSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VLZXlzLCBFbnZpdmVDb25maWcgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuY29uc3QgaW50ZXJuYWxFbnZpdmVDb25maWdBdG9tID0gYXRvbTxFbnZpdmVDb25maWcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBlbnZpdmVDb25maWdBdG9tID0gYXRvbShcbiAgKGdldCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldChpbnRlcm5hbEVudml2ZUNvbmZpZ0F0b20pO1xuICAgIExvZ2dlci5sb2dEZWJ1ZygnZW52aXZlQ29uZmlnLnRzOiBBY2Nlc3NpbmcgaW50ZXJuYWxFbnZpdmVDb25maWdBdG9tJywgY29uZmlnKTtcbiAgICByZXR1cm4gY29uZmlnOyAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vdCBzZXQgaW5zdGVhZCBvZiB0aHJvd2luZ1xuICB9LFxuICAoXywgc2V0LCB2YWx1ZTogRW52aXZlQ29uZmlnKSA9PiB7XG4gICAgc2V0KGludGVybmFsRW52aXZlQ29uZmlnQXRvbSwgdmFsdWUpO1xuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IGFtcGxpdHVkZUFwaUtleUF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXk7XG59KTtcbmV4cG9ydCBjb25zdCBkYXRhUmVzaWRlbmN5QXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG4gIHJldHVybiBjb25maWc/LmRhdGFSZXNpZGVuY3k7XG59KTtcbmV4cG9ydCBjb25zdCBlbnZBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgcmV0dXJuIGNvbmZpZz8uZW52O1xufSk7XG5leHBvcnQgY29uc3QgYmFzZVVybEF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5iYXNlVXJsIHx8ICdodHRwczovL2NvbW1lcmNlLWFwaS5kZXYuc3BpZmZ5LmFpJztcbn0pO1xuZXhwb3J0IGNvbnN0IHJlYWN0QXBwTmFtZUF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5yZWFjdEFwcE5hbWU7XG59KTtcbmV4cG9ydCBjb25zdCBjZG5VcmxBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgcmV0dXJuIGNvbmZpZz8uY2RuVXJsO1xufSk7XG5cbmV4cG9ydCBjb25zdCBjb250ZXh0U291cmNlQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG5cbiAgaWYgKGNvbmZpZz8uY29udGV4dFNvdXJjZSkge1xuICAgIHJldHVybiBjb25maWcuY29udGV4dFNvdXJjZSBhcyBDb250ZXh0U291cmNlRW51bTtcbiAgfVxuXG4gIGNvbnN0IHNwaWZmeU9uRmVhdHVyZUZsYWdTZXQgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlS2V5cy5TcGlmZnlPbk92ZXJyaWRlKTtcbiAgaWYgKHNwaWZmeU9uRmVhdHVyZUZsYWdTZXQgPT09ICd0cnVlJykge1xuICAgIHJldHVybiBDb250ZXh0U291cmNlRW51bS5QbGF5Z3JvdW5kO1xuICB9XG5cbiAgcmV0dXJuIENvbnRleHRTb3VyY2VFbnVtLkFwcDtcbn0pO1xuXG5leHBvcnQgY29uc3Qgb3JnTGV2ZWxBcGlLZXlBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBvcmdMZXZlbEFwaUtleScsIGNvbmZpZyk7XG4gIHJldHVybiBjb25maWc/Lm9yZ0xldmVsQXBpS2V5O1xufSk7XG5leHBvcnQgY29uc3Qgb3JnU2hvcnROYW1lQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG4gIExvZ2dlci5sb2dEZWJ1ZygnZW52aXZlQ29uZmlnLnRzOiBBY2Nlc3Npbmcgb3JnU2hvcnROYW1lJywgY29uZmlnKTtcbiAgcmV0dXJuIGNvbmZpZz8ub3JnU2hvcnROYW1lO1xufSk7XG5leHBvcnQgY29uc3QgaWRlbnRpZnlpbmdQcmVmaXhBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBpZGVudGlmeWluZ1ByZWZpeCcsIGNvbmZpZyk7XG4gIHJldHVybiBjb25maWc/LmlkZW50aWZ5aW5nUHJlZml4IHx8ICdzcGlmZnknO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwdWJsaWNLZXlBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBwdWJsaWNLZXknLCBjb25maWcpO1xuICByZXR1cm4gY29uZmlnPy5wdWJsaWNLZXk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0EsTUFBTSwyQ0FBMEQsT0FBVTtBQUUxRSxNQUFhLG9DQUNWLFFBQVE7Q0FDUCxNQUFNLFNBQVMsSUFBSSx5QkFBeUI7QUFDNUMsK0JBQU8sU0FBUyx1REFBdUQsT0FBTztBQUM5RSxRQUFPO0lBRVIsR0FBRyxLQUFLLFVBQXdCO0FBQy9CLEtBQUksMEJBQTBCLE1BQU07RUFFdkM7QUFFRCxNQUFhLHVDQUE0QixRQUFRO0FBRS9DLFFBRGUsSUFBSSxpQkFBaUIsRUFDckI7RUFDZjtBQUNGLE1BQWEscUNBQTBCLFFBQVE7QUFFN0MsUUFEZSxJQUFJLGlCQUFpQixFQUNyQjtFQUNmO0FBQ0YsTUFBYSwyQkFBZ0IsUUFBUTtBQUVuQyxRQURlLElBQUksaUJBQWlCLEVBQ3JCO0VBQ2Y7QUFDRixNQUFhLCtCQUFvQixRQUFRO0FBRXZDLFFBRGUsSUFBSSxpQkFBaUIsRUFDckIsV0FBVztFQUMxQjtBQUNGLE1BQWEsb0NBQXlCLFFBQVE7QUFFNUMsUUFEZSxJQUFJLGlCQUFpQixFQUNyQjtFQUNmO0FBQ0YsTUFBYSw4QkFBbUIsUUFBUTtBQUV0QyxRQURlLElBQUksaUJBQWlCLEVBQ3JCO0VBQ2Y7QUFFRixNQUFhLHFDQUEwQixRQUFRO0NBQzdDLE1BQU0sU0FBUyxJQUFJLGlCQUFpQjtBQUVwQyxLQUFJLFFBQVEsY0FDVixRQUFPLE9BQU87QUFJaEIsS0FEK0IsT0FBTyxhQUFhLFFBQVFBLDhCQUFpQixpQkFBaUIsS0FDOUQsT0FDN0IsUUFBT0Msa0RBQWtCO0FBRzNCLFFBQU9BLGtEQUFrQjtFQUN6QjtBQUVGLE1BQWEsc0NBQTJCLFFBQVE7Q0FDOUMsTUFBTSxTQUFTLElBQUksaUJBQWlCO0FBQ3BDLCtCQUFPLFNBQVMsNkNBQTZDLE9BQU87QUFDcEUsUUFBTyxRQUFRO0VBQ2Y7QUFDRixNQUFhLG9DQUF5QixRQUFRO0NBQzVDLE1BQU0sU0FBUyxJQUFJLGlCQUFpQjtBQUNwQywrQkFBTyxTQUFTLDJDQUEyQyxPQUFPO0FBQ2xFLFFBQU8sUUFBUTtFQUNmO0FBQ0YsTUFBYSx5Q0FBOEIsUUFBUTtDQUNqRCxNQUFNLFNBQVMsSUFBSSxpQkFBaUI7QUFDcEMsK0JBQU8sU0FBUyxnREFBZ0QsT0FBTztBQUN2RSxRQUFPLFFBQVEscUJBQXFCO0VBQ3BDO0FBRUYsTUFBYSxpQ0FBc0IsUUFBUTtDQUN6QyxNQUFNLFNBQVMsSUFBSSxpQkFBaUI7QUFDcEMsK0JBQU8sU0FBUyx3Q0FBd0MsT0FBTztBQUMvRCxRQUFPLFFBQVE7RUFDZiJ9
@@ -59,4 +59,4 @@ const publicKeyAtom = atom((get) => {
59
59
 
60
60
  //#endregion
61
61
  export { amplitudeApiKeyAtom, baseUrlAtom, cdnUrlAtom, contextSourceAtom, dataResidencyAtom, envAtom, enviveConfigAtom, identifyingPrefixAtom, orgLevelApiKeyAtom, orgShortNameAtom, reactAppNameAtom };
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnLUNpcTRBU29WLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBDb250ZXh0U291cmNlRW51bSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VLZXlzLCBFbnZpdmVDb25maWcgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuY29uc3QgaW50ZXJuYWxFbnZpdmVDb25maWdBdG9tID0gYXRvbTxFbnZpdmVDb25maWcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBlbnZpdmVDb25maWdBdG9tID0gYXRvbShcbiAgKGdldCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldChpbnRlcm5hbEVudml2ZUNvbmZpZ0F0b20pO1xuICAgIExvZ2dlci5sb2dEZWJ1ZygnZW52aXZlQ29uZmlnLnRzOiBBY2Nlc3NpbmcgaW50ZXJuYWxFbnZpdmVDb25maWdBdG9tJywgY29uZmlnKTtcbiAgICByZXR1cm4gY29uZmlnOyAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vdCBzZXQgaW5zdGVhZCBvZiB0aHJvd2luZ1xuICB9LFxuICAoXywgc2V0LCB2YWx1ZTogRW52aXZlQ29uZmlnKSA9PiB7XG4gICAgc2V0KGludGVybmFsRW52aXZlQ29uZmlnQXRvbSwgdmFsdWUpO1xuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IGFtcGxpdHVkZUFwaUtleUF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXk7XG59KTtcbmV4cG9ydCBjb25zdCBkYXRhUmVzaWRlbmN5QXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG4gIHJldHVybiBjb25maWc/LmRhdGFSZXNpZGVuY3k7XG59KTtcbmV4cG9ydCBjb25zdCBlbnZBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgcmV0dXJuIGNvbmZpZz8uZW52O1xufSk7XG5leHBvcnQgY29uc3QgYmFzZVVybEF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5iYXNlVXJsIHx8ICdodHRwczovL2NvbW1lcmNlLWFwaS5kZXYuc3BpZmZ5LmFpJztcbn0pO1xuZXhwb3J0IGNvbnN0IHJlYWN0QXBwTmFtZUF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5yZWFjdEFwcE5hbWU7XG59KTtcbmV4cG9ydCBjb25zdCBjZG5VcmxBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgcmV0dXJuIGNvbmZpZz8uY2RuVXJsO1xufSk7XG5cbmV4cG9ydCBjb25zdCBjb250ZXh0U291cmNlQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG5cbiAgaWYgKGNvbmZpZz8uY29udGV4dFNvdXJjZSkge1xuICAgIHJldHVybiBjb25maWcuY29udGV4dFNvdXJjZSBhcyBDb250ZXh0U291cmNlRW51bTtcbiAgfVxuXG4gIGNvbnN0IHNwaWZmeU9uRmVhdHVyZUZsYWdTZXQgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlS2V5cy5TcGlmZnlPbk92ZXJyaWRlKTtcbiAgaWYgKHNwaWZmeU9uRmVhdHVyZUZsYWdTZXQgPT09ICd0cnVlJykge1xuICAgIHJldHVybiBDb250ZXh0U291cmNlRW51bS5QbGF5Z3JvdW5kO1xuICB9XG5cbiAgcmV0dXJuIENvbnRleHRTb3VyY2VFbnVtLkFwcDtcbn0pO1xuXG5leHBvcnQgY29uc3Qgb3JnTGV2ZWxBcGlLZXlBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBvcmdMZXZlbEFwaUtleScsIGNvbmZpZyk7XG4gIHJldHVybiBjb25maWc/Lm9yZ0xldmVsQXBpS2V5O1xufSk7XG5leHBvcnQgY29uc3Qgb3JnU2hvcnROYW1lQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG4gIExvZ2dlci5sb2dEZWJ1ZygnZW52aXZlQ29uZmlnLnRzOiBBY2Nlc3Npbmcgb3JnU2hvcnROYW1lJywgY29uZmlnKTtcbiAgcmV0dXJuIGNvbmZpZz8ub3JnU2hvcnROYW1lO1xufSk7XG5leHBvcnQgY29uc3QgaWRlbnRpZnlpbmdQcmVmaXhBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBpZGVudGlmeWluZ1ByZWZpeCcsIGNvbmZpZyk7XG4gIHJldHVybiBjb25maWc/LmlkZW50aWZ5aW5nUHJlZml4IHx8ICdzcGlmZnknO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwdWJsaWNLZXlBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBwdWJsaWNLZXknLCBjb25maWcpO1xuICByZXR1cm4gY29uZmlnPy5wdWJsaWNLZXk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsTUFBTSwyQkFBMkIsS0FBK0IsT0FBVTtBQUUxRSxNQUFhLG1CQUFtQixNQUM3QixRQUFRO0NBQ1AsTUFBTSxTQUFTLElBQUkseUJBQXlCO0FBQzVDLGdCQUFPLFNBQVMsdURBQXVELE9BQU87QUFDOUUsUUFBTztJQUVSLEdBQUcsS0FBSyxVQUF3QjtBQUMvQixLQUFJLDBCQUEwQixNQUFNO0VBRXZDO0FBRUQsTUFBYSxzQkFBc0IsTUFBTSxRQUFRO0FBRS9DLFFBRGUsSUFBSSxpQkFBaUIsRUFDckI7RUFDZjtBQUNGLE1BQWEsb0JBQW9CLE1BQU0sUUFBUTtBQUU3QyxRQURlLElBQUksaUJBQWlCLEVBQ3JCO0VBQ2Y7QUFDRixNQUFhLFVBQVUsTUFBTSxRQUFRO0FBRW5DLFFBRGUsSUFBSSxpQkFBaUIsRUFDckI7RUFDZjtBQUNGLE1BQWEsY0FBYyxNQUFNLFFBQVE7QUFFdkMsUUFEZSxJQUFJLGlCQUFpQixFQUNyQixXQUFXO0VBQzFCO0FBQ0YsTUFBYSxtQkFBbUIsTUFBTSxRQUFRO0FBRTVDLFFBRGUsSUFBSSxpQkFBaUIsRUFDckI7RUFDZjtBQUNGLE1BQWEsYUFBYSxNQUFNLFFBQVE7QUFFdEMsUUFEZSxJQUFJLGlCQUFpQixFQUNyQjtFQUNmO0FBRUYsTUFBYSxvQkFBb0IsTUFBTSxRQUFRO0NBQzdDLE1BQU0sU0FBUyxJQUFJLGlCQUFpQjtBQUVwQyxLQUFJLFFBQVEsY0FDVixRQUFPLE9BQU87QUFJaEIsS0FEK0IsT0FBTyxhQUFhLFFBQVEsaUJBQWlCLGlCQUFpQixLQUM5RCxPQUM3QixRQUFPLGtCQUFrQjtBQUczQixRQUFPLGtCQUFrQjtFQUN6QjtBQUVGLE1BQWEscUJBQXFCLE1BQU0sUUFBUTtDQUM5QyxNQUFNLFNBQVMsSUFBSSxpQkFBaUI7QUFDcEMsZ0JBQU8sU0FBUyw2Q0FBNkMsT0FBTztBQUNwRSxRQUFPLFFBQVE7RUFDZjtBQUNGLE1BQWEsbUJBQW1CLE1BQU0sUUFBUTtDQUM1QyxNQUFNLFNBQVMsSUFBSSxpQkFBaUI7QUFDcEMsZ0JBQU8sU0FBUywyQ0FBMkMsT0FBTztBQUNsRSxRQUFPLFFBQVE7RUFDZjtBQUNGLE1BQWEsd0JBQXdCLE1BQU0sUUFBUTtDQUNqRCxNQUFNLFNBQVMsSUFBSSxpQkFBaUI7QUFDcEMsZ0JBQU8sU0FBUyxnREFBZ0QsT0FBTztBQUN2RSxRQUFPLFFBQVEscUJBQXFCO0VBQ3BDO0FBRUYsTUFBYSxnQkFBZ0IsTUFBTSxRQUFRO0NBQ3pDLE1BQU0sU0FBUyxJQUFJLGlCQUFpQjtBQUNwQyxnQkFBTyxTQUFTLHdDQUF3QyxPQUFPO0FBQy9ELFFBQU8sUUFBUTtFQUNmIn0=
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnLUN3bHA3LVF6LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBDb250ZXh0U291cmNlRW51bSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VLZXlzLCBFbnZpdmVDb25maWcgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuY29uc3QgaW50ZXJuYWxFbnZpdmVDb25maWdBdG9tID0gYXRvbTxFbnZpdmVDb25maWcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBlbnZpdmVDb25maWdBdG9tID0gYXRvbShcbiAgKGdldCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldChpbnRlcm5hbEVudml2ZUNvbmZpZ0F0b20pO1xuICAgIExvZ2dlci5sb2dEZWJ1ZygnZW52aXZlQ29uZmlnLnRzOiBBY2Nlc3NpbmcgaW50ZXJuYWxFbnZpdmVDb25maWdBdG9tJywgY29uZmlnKTtcbiAgICByZXR1cm4gY29uZmlnOyAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vdCBzZXQgaW5zdGVhZCBvZiB0aHJvd2luZ1xuICB9LFxuICAoXywgc2V0LCB2YWx1ZTogRW52aXZlQ29uZmlnKSA9PiB7XG4gICAgc2V0KGludGVybmFsRW52aXZlQ29uZmlnQXRvbSwgdmFsdWUpO1xuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IGFtcGxpdHVkZUFwaUtleUF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXk7XG59KTtcbmV4cG9ydCBjb25zdCBkYXRhUmVzaWRlbmN5QXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG4gIHJldHVybiBjb25maWc/LmRhdGFSZXNpZGVuY3k7XG59KTtcbmV4cG9ydCBjb25zdCBlbnZBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgcmV0dXJuIGNvbmZpZz8uZW52O1xufSk7XG5leHBvcnQgY29uc3QgYmFzZVVybEF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5iYXNlVXJsIHx8ICdodHRwczovL2NvbW1lcmNlLWFwaS5kZXYuc3BpZmZ5LmFpJztcbn0pO1xuZXhwb3J0IGNvbnN0IHJlYWN0QXBwTmFtZUF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICByZXR1cm4gY29uZmlnPy5yZWFjdEFwcE5hbWU7XG59KTtcbmV4cG9ydCBjb25zdCBjZG5VcmxBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgcmV0dXJuIGNvbmZpZz8uY2RuVXJsO1xufSk7XG5cbmV4cG9ydCBjb25zdCBjb250ZXh0U291cmNlQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG5cbiAgaWYgKGNvbmZpZz8uY29udGV4dFNvdXJjZSkge1xuICAgIHJldHVybiBjb25maWcuY29udGV4dFNvdXJjZSBhcyBDb250ZXh0U291cmNlRW51bTtcbiAgfVxuXG4gIGNvbnN0IHNwaWZmeU9uRmVhdHVyZUZsYWdTZXQgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlS2V5cy5TcGlmZnlPbk92ZXJyaWRlKTtcbiAgaWYgKHNwaWZmeU9uRmVhdHVyZUZsYWdTZXQgPT09ICd0cnVlJykge1xuICAgIHJldHVybiBDb250ZXh0U291cmNlRW51bS5QbGF5Z3JvdW5kO1xuICB9XG5cbiAgcmV0dXJuIENvbnRleHRTb3VyY2VFbnVtLkFwcDtcbn0pO1xuXG5leHBvcnQgY29uc3Qgb3JnTGV2ZWxBcGlLZXlBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBvcmdMZXZlbEFwaUtleScsIGNvbmZpZyk7XG4gIHJldHVybiBjb25maWc/Lm9yZ0xldmVsQXBpS2V5O1xufSk7XG5leHBvcnQgY29uc3Qgb3JnU2hvcnROYW1lQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXQoZW52aXZlQ29uZmlnQXRvbSk7XG4gIExvZ2dlci5sb2dEZWJ1ZygnZW52aXZlQ29uZmlnLnRzOiBBY2Nlc3Npbmcgb3JnU2hvcnROYW1lJywgY29uZmlnKTtcbiAgcmV0dXJuIGNvbmZpZz8ub3JnU2hvcnROYW1lO1xufSk7XG5leHBvcnQgY29uc3QgaWRlbnRpZnlpbmdQcmVmaXhBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBpZGVudGlmeWluZ1ByZWZpeCcsIGNvbmZpZyk7XG4gIHJldHVybiBjb25maWc/LmlkZW50aWZ5aW5nUHJlZml4IHx8ICdzcGlmZnknO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwdWJsaWNLZXlBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb25maWcudHM6IEFjY2Vzc2luZyBwdWJsaWNLZXknLCBjb25maWcpO1xuICByZXR1cm4gY29uZmlnPy5wdWJsaWNLZXk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsTUFBTSwyQkFBMkIsS0FBK0IsT0FBVTtBQUUxRSxNQUFhLG1CQUFtQixNQUM3QixRQUFRO0NBQ1AsTUFBTSxTQUFTLElBQUkseUJBQXlCO0FBQzVDLGdCQUFPLFNBQVMsdURBQXVELE9BQU87QUFDOUUsUUFBTztJQUVSLEdBQUcsS0FBSyxVQUF3QjtBQUMvQixLQUFJLDBCQUEwQixNQUFNO0VBRXZDO0FBRUQsTUFBYSxzQkFBc0IsTUFBTSxRQUFRO0FBRS9DLFFBRGUsSUFBSSxpQkFBaUIsRUFDckI7RUFDZjtBQUNGLE1BQWEsb0JBQW9CLE1BQU0sUUFBUTtBQUU3QyxRQURlLElBQUksaUJBQWlCLEVBQ3JCO0VBQ2Y7QUFDRixNQUFhLFVBQVUsTUFBTSxRQUFRO0FBRW5DLFFBRGUsSUFBSSxpQkFBaUIsRUFDckI7RUFDZjtBQUNGLE1BQWEsY0FBYyxNQUFNLFFBQVE7QUFFdkMsUUFEZSxJQUFJLGlCQUFpQixFQUNyQixXQUFXO0VBQzFCO0FBQ0YsTUFBYSxtQkFBbUIsTUFBTSxRQUFRO0FBRTVDLFFBRGUsSUFBSSxpQkFBaUIsRUFDckI7RUFDZjtBQUNGLE1BQWEsYUFBYSxNQUFNLFFBQVE7QUFFdEMsUUFEZSxJQUFJLGlCQUFpQixFQUNyQjtFQUNmO0FBRUYsTUFBYSxvQkFBb0IsTUFBTSxRQUFRO0NBQzdDLE1BQU0sU0FBUyxJQUFJLGlCQUFpQjtBQUVwQyxLQUFJLFFBQVEsY0FDVixRQUFPLE9BQU87QUFJaEIsS0FEK0IsT0FBTyxhQUFhLFFBQVEsaUJBQWlCLGlCQUFpQixLQUM5RCxPQUM3QixRQUFPLGtCQUFrQjtBQUczQixRQUFPLGtCQUFrQjtFQUN6QjtBQUVGLE1BQWEscUJBQXFCLE1BQU0sUUFBUTtDQUM5QyxNQUFNLFNBQVMsSUFBSSxpQkFBaUI7QUFDcEMsZ0JBQU8sU0FBUyw2Q0FBNkMsT0FBTztBQUNwRSxRQUFPLFFBQVE7RUFDZjtBQUNGLE1BQWEsbUJBQW1CLE1BQU0sUUFBUTtDQUM1QyxNQUFNLFNBQVMsSUFBSSxpQkFBaUI7QUFDcEMsZ0JBQU8sU0FBUywyQ0FBMkMsT0FBTztBQUNsRSxRQUFPLFFBQVE7RUFDZjtBQUNGLE1BQWEsd0JBQXdCLE1BQU0sUUFBUTtDQUNqRCxNQUFNLFNBQVMsSUFBSSxpQkFBaUI7QUFDcEMsZ0JBQU8sU0FBUyxnREFBZ0QsT0FBTztBQUN2RSxRQUFPLFFBQVEscUJBQXFCO0VBQ3BDO0FBRUYsTUFBYSxnQkFBZ0IsTUFBTSxRQUFRO0NBQ3pDLE1BQU0sU0FBUyxJQUFJLGlCQUFpQjtBQUNwQyxnQkFBTyxTQUFTLHdDQUF3QyxPQUFPO0FBQy9ELFFBQU8sUUFBUTtFQUNmIn0=