@projectcor/maia-components 2.51.0 → 2.51.1
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.
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +3 -2
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +15 -3
- package/lib/components/molecules/Sidebar/Sidebar.js +28 -18
- package/lib/components/organisms/ChatAI/ChatAI.js +14 -1
- package/lib/hooks/useIsMaiaPageRoute.js +26 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +6 -5
- package/lib/store/useChatsStore.js +5 -3
- package/lib/utils/maiaPageRoute.js +24 -0
- package/package.json +1 -1
|
@@ -253,7 +253,11 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
253
253
|
var activeChatId = useChatsStore(function (state) {
|
|
254
254
|
return state.activeChatId;
|
|
255
255
|
});
|
|
256
|
-
var
|
|
256
|
+
var chatsFetchedForUserRef = useRef(null);
|
|
257
|
+
var prevAgentIdRef = useRef(undefined);
|
|
258
|
+
var resetChatsStore = useChatsStore(function (state) {
|
|
259
|
+
return state.reset;
|
|
260
|
+
});
|
|
257
261
|
var chatsContainerRef = useRef(null);
|
|
258
262
|
var user = useUser();
|
|
259
263
|
var eventAmplitude = useEvent();
|
|
@@ -272,7 +276,6 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
272
276
|
updateChat = _useChats.updateChat,
|
|
273
277
|
fetchChats = _useChats.fetchChats,
|
|
274
278
|
limit = _useChats.limit,
|
|
275
|
-
offset = _useChats.offset,
|
|
276
279
|
hasMoreChats = _useChats.hasMoreChats,
|
|
277
280
|
loadMoreChats = _useChats.loadMoreChats,
|
|
278
281
|
isLoadingMoreChats = _useChats.isLoadingMoreChats,
|
|
@@ -438,23 +441,28 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
438
441
|
};
|
|
439
442
|
}();
|
|
440
443
|
useEffect(function () {
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
444
|
+
var _selectedAgent$id;
|
|
445
|
+
if (!(user !== null && user !== void 0 && user.id)) return;
|
|
446
|
+
var userId = user.id;
|
|
447
|
+
var userChanged = chatsFetchedForUserRef.current != null && chatsFetchedForUserRef.current !== userId;
|
|
448
|
+
var agentId = (_selectedAgent$id = selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.id) !== null && _selectedAgent$id !== void 0 ? _selectedAgent$id : null;
|
|
449
|
+
var agentJustBecameAvailable = prevAgentIdRef.current === null && agentId != null;
|
|
450
|
+
prevAgentIdRef.current = agentId;
|
|
451
|
+
if (userChanged) {
|
|
452
|
+
resetChatsStore();
|
|
448
453
|
}
|
|
449
|
-
|
|
454
|
+
var shouldFetch = chatsFetchedForUserRef.current !== userId || refetchChats || agentJustBecameAvailable;
|
|
455
|
+
if (!shouldFetch) return;
|
|
456
|
+
chatsFetchedForUserRef.current = userId;
|
|
457
|
+
// Initial/refresh always starts at page 1 (never reuse loadMore offset).
|
|
458
|
+
fetchChats({
|
|
459
|
+
limit: limit,
|
|
460
|
+
offset: 0
|
|
461
|
+
});
|
|
450
462
|
if (refetchChats) {
|
|
451
|
-
fetchChats({
|
|
452
|
-
limit: limit,
|
|
453
|
-
offset: offset
|
|
454
|
-
});
|
|
455
463
|
handleSetRefetchChats(false);
|
|
456
464
|
}
|
|
457
|
-
}, [refetchChats, handleSetRefetchChats, fetchChats, limit,
|
|
465
|
+
}, [user === null || user === void 0 ? void 0 : user.id, selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.id, refetchChats, handleSetRefetchChats, fetchChats, limit, resetChatsStore]);
|
|
458
466
|
useEffect(function () {
|
|
459
467
|
var handleScroll = function handleScroll() {
|
|
460
468
|
if (!chatsContainerRef.current || !hasMoreChats || isLoadingMoreChats || hasError) {
|
|
@@ -492,7 +500,9 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
492
500
|
useEffect(function () {
|
|
493
501
|
// Al crear/actualizar una conversación refrescamos la lista aunque el sidebar esté colapsado.
|
|
494
502
|
var handleRefetchSession = function handleRefetchSession() {
|
|
495
|
-
|
|
503
|
+
if (user !== null && user !== void 0 && user.id) {
|
|
504
|
+
chatsFetchedForUserRef.current = user.id;
|
|
505
|
+
}
|
|
496
506
|
fetchChats({
|
|
497
507
|
limit: 20,
|
|
498
508
|
offset: 0,
|
|
@@ -503,7 +513,7 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
503
513
|
return function () {
|
|
504
514
|
document.removeEventListener('refetch-session', handleRefetchSession);
|
|
505
515
|
};
|
|
506
|
-
}, [fetchChats]);
|
|
516
|
+
}, [fetchChats, user === null || user === void 0 ? void 0 : user.id]);
|
|
507
517
|
var isAgentsHubSection = resolveAgentsHubSection(showNewChat, agentsNavActive);
|
|
508
518
|
var showNewChatButton = resolveShowNewChatButton({
|
|
509
519
|
isAgentsHubSection: isAgentsHubSection,
|
|
@@ -706,4 +716,4 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
706
716
|
})]
|
|
707
717
|
});
|
|
708
718
|
};
|
|
709
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJDaGV2cm9uRG91YmxlTGVmdCIsIkhpc3RvcnkiLCJDVUJ1dHRvbiIsIk1lbnVEb3RzIiwiUGVuY2lsIiwiVHJhc2giLCJUb29sdGlwIiwiRW1wdHlIaXN0b3J5SWNvbiIsInVzZVJlc2l6ZUxpc3RlbmVyIiwidXNlQ2hhdHMiLCJTaWRlYmFyQ2hhdHNTa2VsZXRvbiIsIkVycm9yU3RhdGUiLCJNQUlBSWNvbiIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iLCJTa2lsbHNOYXZJY29uIiwiTmV3Q2hhdCIsIkVWRU5UUyIsInVzZUV2ZW50IiwidXNlVCIsIk9wdGlvbkl0ZW0iLCJFZGl0UXVlc3Rpb25Nb2RhbCIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJFcnJvckljb24iLCJ1c2VVc2VyIiwiRmVlZGJhY2tCdXR0b24iLCJ1c2VHbG9iYWxDb250ZXh0IiwiZmV0Y2hNYWlhIiwiY2FuQWNjZXNzVG9Ta2lsbHMiLCJpc1NraWxsc1BpbG90Q29tcGFueSIsIm1hcENPUkxhbmciLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJnZXRBZ2VudERpc3BsYXlOYW1lIiwiaXNNYXJrZXRwbGFjZUdsb2JhbENsb25lQWdlbnQiLCJBUFBDVUVTX0VWRU5UUyIsIkFQUENVRVNfU0VMRUNUT1JTIiwidHJhY2tBcHBjdWVzRXZlbnQiLCJTZXNzaW9uR2VuZXJhdGluZ0RvdCIsInVzZUlzU2Vzc2lvbkdlbmVyYXRpbmciLCJ1c2VTZXNzaW9uTWV0YSIsInVzZU1haWFUYXNrUGFuZWxaSW5kZXgiLCJ1c2VDaGF0c1N0b3JlIiwiU0NMSENXcmFwcGVyIiwiU0NMSENXcmFwcGVyQWdlbnQiLCJTQ0xIQ1dyYXBwZXJBZ2VudFRleHQiLCJTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zIiwiU0NMSENXcmFwcGVyQ29udGVudCIsIlNDTEhDV3JhcHBlclRpdGxlIiwiU0NMSENXcmFwcGVyVGl0bGVSb3ciLCJTQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uIiwiU0NTV3JhcHBlck5ld0NoYXRJY29uIiwiU0NTV3JhcHBlckFnZW50c05hdkljb24iLCJTQ1NTaWRlYmFyUm9vdCIsIlNDU1NpZGViYXJUb29sYmFyIiwiU0NTU2lkZWJhckJvZHkiLCJTQ1NTaWRlYmFyT3BlblBhbmVsIiwiU0NTU2lkZWJhckFnZW50c0Jsb2NrIiwiU0NTU2lkZWJhckFnZW50c0FjdGlvbnMiLCJTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbiIsIlNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWwiLCJTQ1NTaWRlYmFyTWFpYWtlck5hdkJhZGdlTmV3IiwiU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nIiwiU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nUm93IiwiU0NTU2lkZWJhckNoYXRzU2Nyb2xsIiwiU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4iLCJTQ1NTaWRlYmFyRXJyb3JTdGF0ZVRvcCIsIlNDU1NpZGViYXJFcnJvckJhbm5lciIsIlNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwIiwiU0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZSIsIlNDU1NpZGViYXJMb2FkaW5nQXJlYSIsIlNDU1NpZGViYXJMb2FkTW9yZVJvdyIsIlNDU1NpZGViYXJFbXB0eUNoYXRzIiwiU0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0IiwiU0NTU2lkZWJhckNoYXRzRm9vdGVyIiwiU0NTU2lkZWJhckZvb3RlckFjdGlvbnMiLCJTQ1NTaWRlYmFyQ29sbGFwc2VkRGl2aWRlciIsImNvdW50U2lkZWJhckFnZW50TmF2QnV0dG9ucyIsImlzQ2hhdExpc3RTY3JvbGxlZFRvQm90dG9tIiwiaXNDaGF0VW5yZWFkSW5kaWNhdG9yIiwicmVzb2x2ZUFnZW50c0h1YlNlY3Rpb24iLCJyZXNvbHZlU2hvd05ld0NoYXRCdXR0b24iLCJyZXNvbHZlU2lkZWJhckNoYXRBZ2VudExhYmVsIiwicmVzb2x2ZVRvZ2dsZUNoYXRNb2RhbElkIiwic2hvdWxkQ2xvc2VNb2RhbE9uT3V0c2lkZUNsaWNrIiwic2hvdWxkVXNlTWFpYUljb25Gb3JDaGF0QWdlbnQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJhY3Rpb25zIiwiZWRpdCIsInByb3BzIiwiX29iamVjdFNwcmVhZCIsImRlbGV0ZSIsIkxpc3RIaXN0b3J5Q2hhdCIsIl9yZWYiLCJjaGF0Iiwib25DbGljayIsImlzTW9kYWxPcGVuIiwib25PcGVuTW9kYWwiLCJvbkNsb3NlTW9kYWwiLCJoYW5kbGVycyIsImlzU2VsZWN0ZWQiLCJpbmRleCIsInRvb2x0aXBaSW5kZXgiLCJ0ZXh0UmVmIiwiYWdlbnRSZWYiLCJkaXNwbGF5VGl0bGUiLCJ0aXRsZSIsImRpc3BsYXlBZ2VudCIsImFnZW50VHlwZSIsImFnZW50IiwiY29udGV4dE5hbWUiLCJwcm9qZWN0TmFtZSIsImNsaWVudE5hbWUiLCJfdXNlUmVzaXplTGlzdGVuZXIiLCJzaG93VG9vbHRpcCIsIl91c2VSZXNpemVMaXN0ZW5lcjIiLCJzaG93VG9vbHRpcEFnZW50IiwiX3VzZVQiLCJ0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWN0aW9uIiwic2V0QWN0aW9uIiwiaXNHZW5lcmF0aW5nIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJzZXNzaW9uTWV0YSIsImlzVW5yZWFkIiwiaXNSZWFkIiwic2lkZWJhckFnZW50TGFiZWwiLCJhZ2VudE5hbWUiLCJtZW51SXRlbXMiLCJsYWJlbCIsIm9uQ2xpY2tJdGVtIiwiY2hhdElkIiwiSWNvbiIsImV2ZW50S2V5IiwicG1BaU1lbnVFZGl0IiwicG1BaU1lbnVEZWxldGUiLCJoYW5kbGVDb25maXJtQWN0aW9uIiwiY2hhdERhdGEiLCJoYW5kbGVVcGRhdGVDaGF0IiwiaGFuZGxlRGVsZXRlQ2hhdCIsImNoaWxkcmVuIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIiRpbmRleCIsImFyaWFMYWJlbCIsImlzV3JpdGluZyIsImFuaW1hdGVkIiwiekluZGV4IiwicmVmIiwiJHVucmVhZCIsImNvbmNhdCIsIndpZHRoIiwiaGVpZ2h0Iiwic3R5bGUiLCJmb250U2l6ZSIsImVtb2ppIiwiaWNvbk9ubHkiLCJzaXplIiwidmFyaWFudCIsImV2ZW50IiwiaWQiLCJwb3NpdGlvbiIsInRvcCIsInJpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJtaW5XaWR0aCIsIm1hcCIsIl9yZWYyIiwib25DbG9zZSIsImhhbmRsZVNldElzT3Blbk1vZGFsIiwiU2lkZWJhciIsIl9yZWYzIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkdvVG9DaGF0IiwiX3JlZjMkb25FcnJvciIsIm9uRXJyb3IiLCJoYW5kbGVHb1RvSG9tZSIsImhhbmRsZVN0YXJ0TmV3Q2hhdCIsImhhbmRsZU9wZW5NYXJrZXRwbGFjZSIsImhhbmRsZU9wZW5Ta2lsbHMiLCJvbk9wZW5NYWlha2VyQ3JlYXRvciIsInNob3dOZXdDaGF0IiwicmVmZXRjaENoYXRzIiwiaGFuZGxlU2V0UmVmZXRjaENoYXRzIiwiaGFzRXJyb3IiLCJfcmVmMyRhZ2VudHNOYXZBY3RpdmUiLCJhZ2VudHNOYXZBY3RpdmUiLCJfcmVmMyRpc0xlZ2FjeUNvbnRleHQiLCJpc0xlZ2FjeUNvbnRleHRTZXNzaW9uIiwiX3JlZjMkaW5pdGlhbE9wZW4iLCJpbml0aWFsT3BlbiIsIm9uT3BlbkNoYW5nZSIsIl91c2VUMiIsImkxOG4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzT3BlbiIsInNldElzT3BlbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNPcGVuTW9kYWwiLCJzZXRJc09wZW5Nb2RhbCIsImFjdGl2ZUNoYXRJZCIsInN0YXRlIiwiY2hhdHNGZXRjaGVkUmVmIiwiY2hhdHNDb250YWluZXJSZWYiLCJ1c2VyIiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdGVkQWdlbnQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwiX3VzZUNoYXRzIiwibG9hZGluZ0NoYXRzIiwiY2hhdHMiLCJkZWxldGVDaGF0IiwidXBkYXRlQ2hhdCIsImZldGNoQ2hhdHMiLCJsaW1pdCIsIm9mZnNldCIsImhhc01vcmVDaGF0cyIsImxvYWRNb3JlQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJzZXRVbnJlYWRDb3VudCIsInNldENoYXRSZWFkU3RhdGUiLCJ1bnJlYWRTdWJzY3JpYmVkUmVmIiwiJF9zYyIsInVuZGVmaW5lZCIsImNoYW5uZWwiLCJoYW5kbGVVbnJlYWRFdmVudCIsIl9yZWY0IiwibW9kZWxEYXRhIiwibW9kZWxfZGF0YSIsInVucmVhZF9jb3VudCIsInNlc3Npb25faWQiLCJpc19yZWFkIiwic3Vic2NyaWJlSGFuZGxlciIsImN1cnJlbnQiLCJfJF9zYyRhY3Rpb25UeXBlIiwiXyRfc2MkY2hhbm5lbFR5cGUiLCJ1cGRhdGVDb25uZWN0aW9uTW9kZWwiLCJtb2RlbF9oYXNoIiwiYWN0aW9uVHlwZSIsIlNVQlNDUklCRSIsImNoYW5uZWxUeXBlIiwiTU9ERUxfQ0hBTk5FTCIsInVzZXJQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY2FuQ3JlYXRlQWdlbnRzIiwiY3JlYXRlIiwiaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNhblZpZXdBZ2VudHMiLCJ2aWV3IiwiY2FuVmlld1NraWxscyIsImNvbXBhbnlfaWQiLCJzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uIiwiYWdlbnROYXZCdXR0b25Db3VudCIsInNob3dBZ2VudHNOYXZCbG9jayIsIm15QWdlbnRzU2lkZWJhclRyYWNrZWRSZWYiLCJtYWlhU2lkZWJhck15QWdlbnRzIiwiX3JlZjUiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVPcGVuTW9kYWwiLCJoYW5kbGVDbG9zZU1vZGFsIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwidGFyZ2V0IiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVRvZ2dsZVNpZGViYXIiLCJhaUNoYXRTaWRlYmFyIiwiaGFuZGxlT3BlbkNyZWF0ZUFnZW50IiwiX3JlZjYiLCJfY2FsbGVlMiIsInJlc3BvbnNlIiwiZGF0YSIsIm1haWFrZXJBZ2VudCIsIl90IiwiX3QyIiwiX2NvbnRleHQyIiwiYWJydXB0IiwicGF0aCIsImxhbmd1YWdlIiwibWV0aG9kIiwic2VudCIsImpzb24iLCJmaW5kIiwiYWdlbnRJdGVtIiwiaGFuZGxlU2Nyb2xsIiwiX2NoYXRzQ29udGFpbmVyUmVmJGN1Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiY29udGFpbmVyIiwiaGFuZGxlTmV3Q2hhdCIsImFpU2lkZWJhck5ld0NoYXQiLCJoYW5kbGVSZWZldGNoU2Vzc2lvbiIsImJhY2tncm91bmQiLCJpc0FnZW50c0h1YlNlY3Rpb24iLCJzaG93TmV3Q2hhdEJ1dHRvbiIsInVzZXJDYW5WaWV3QWdlbnRzIiwiQm9vbGVhbiIsIiRpc09wZW4iLCJjb2xvciIsIiRhY3RpdmUiLCJhaUNoYXRNcE9wZW4iLCJhaVNpZGViYXJNeUFnZW50cyIsImFpU2lkZWJhck15U2tpbGxzIiwidHlwZSIsIiRoYXNDaGF0cyIsImxlbmd0aCIsIiRvZmZzZXRWYXJpYW50IiwiJGFnZW50TmF2QnV0dG9uQ291bnQiLCJjb3VudCIsIiRqdXN0aWZ5QmV0d2VlbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TaWRlYmFyL1NpZGViYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tc2hhZG93ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZXZyb25Eb3VibGVMZWZ0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkRvdWJsZUxlZnQnXG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvSGlzdG9yeSdcbmltcG9ydCB7IENVQnV0dG9uIH0gZnJvbSAnQHByb2plY3Rjb3IvYnV0dG9uL2xpYi9jb21wb25lbnRzL0NVQnV0dG9uJ1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFBlbmNpbCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BlbmNpbCdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcblxuaW1wb3J0IHsgRW1wdHlIaXN0b3J5SWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0VtcHR5SGlzdG9yeSdcbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgdXNlQ2hhdHMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VDaGF0cydcbmltcG9ydCB7IFNpZGViYXJDaGF0c1NrZWxldG9uIH0gZnJvbSAnLi9TaWRlYmFyLnNrZWxldG9uJ1xuaW1wb3J0IHsgRXJyb3JTdGF0ZSwgTUFJQUljb24sIE1haWFTdG9yZUljb24sIE15QWdlbnRzTmF2SWNvbiwgU2tpbGxzTmF2SWNvbiwgTmV3Q2hhdCB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBPcHRpb25JdGVtIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2FyZE1lbnUvQ2FyZE1lbnUnXG5pbXBvcnQgeyBFZGl0UXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9FZGl0UXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0Vycm9ySWNvbidcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgRmVlZGJhY2tCdXR0b24gfSBmcm9tICcuLi8uLi9hdG9tcy9GZWVkYmFja0J1dHRvbidcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9jbGllbnQnXG5pbXBvcnQgeyBjYW5BY2Nlc3NUb1NraWxscywgaXNTa2lsbHNQaWxvdENvbXBhbnkgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvcGVybWlzc2lvbnMnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucydcbmltcG9ydCB7IGdldEFnZW50RGlzcGxheU5hbWUsIGlzTWFya2V0cGxhY2VHbG9iYWxDbG9uZUFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYWdlbnREaXNwbGF5TmFtZSdcbmltcG9ydCB7IEFQUENVRVNfRVZFTlRTLCBBUFBDVUVTX1NFTEVDVE9SUywgdHJhY2tBcHBjdWVzRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHBjdWVzJ1xuaW1wb3J0IHsgU2Vzc2lvbkdlbmVyYXRpbmdEb3QgfSBmcm9tICcuLi8uLi9hdG9tcy9TZXNzaW9uR2VuZXJhdGluZ0RvdCdcbmltcG9ydCB7IHVzZUlzU2Vzc2lvbkdlbmVyYXRpbmcsIHVzZVNlc3Npb25NZXRhIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2Vzc2lvbnMvdXNlU2Vzc2lvbk1ldGEnXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbmltcG9ydCB7IHVzZUNoYXRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS91c2VDaGF0c1N0b3JlJ1xuaW1wb3J0IHtcbiAgU0NMSENXcmFwcGVyLFxuICBTQ0xIQ1dyYXBwZXJBZ2VudCxcbiAgU0NMSENXcmFwcGVyQWdlbnRUZXh0LFxuICBTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zLFxuICBTQ0xIQ1dyYXBwZXJDb250ZW50LFxuICBTQ0xIQ1dyYXBwZXJUaXRsZSxcbiAgU0NMSENXcmFwcGVyVGl0bGVSb3csXG4gIFNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24sXG4gIFNDU1dyYXBwZXJOZXdDaGF0SWNvbixcbiAgU0NTV3JhcHBlckFnZW50c05hdkljb24sXG59IGZyb20gJy4vU2lkZWJhci5zdHlsZXMnXG5pbXBvcnQge1xuICBTQ1NTaWRlYmFyUm9vdCxcbiAgU0NTU2lkZWJhclRvb2xiYXIsXG4gIFNDU1NpZGViYXJCb2R5LFxuICBTQ1NTaWRlYmFyT3BlblBhbmVsLFxuICBTQ1NTaWRlYmFyQWdlbnRzQmxvY2ssXG4gIFNDU1NpZGViYXJBZ2VudHNBY3Rpb25zLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbixcbiAgU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbCxcbiAgU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldyxcbiAgU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nLFxuICBTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmdSb3csXG4gIFNDU1NpZGViYXJDaGF0c1Njcm9sbCxcbiAgU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4sXG4gIFNDU1NpZGViYXJFcnJvclN0YXRlVG9wLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXIsXG4gIFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlLFxuICBTQ1NTaWRlYmFyTG9hZGluZ0FyZWEsXG4gIFNDU1NpZGViYXJMb2FkTW9yZVJvdyxcbiAgU0NTU2lkZWJhckVtcHR5Q2hhdHMsXG4gIFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCxcbiAgU0NTU2lkZWJhckNoYXRzRm9vdGVyLFxuICBTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyxcbiAgU0NTU2lkZWJhckNvbGxhcHNlZERpdmlkZXIsXG59IGZyb20gJy4vU2lkZWJhci5sYXlvdXQuc3R5bGVzJ1xuaW1wb3J0IHtcbiAgY291bnRTaWRlYmFyQWdlbnROYXZCdXR0b25zLFxuICBpc0NoYXRMaXN0U2Nyb2xsZWRUb0JvdHRvbSxcbiAgaXNDaGF0VW5yZWFkSW5kaWNhdG9yLFxuICByZXNvbHZlQWdlbnRzSHViU2VjdGlvbixcbiAgcmVzb2x2ZVNob3dOZXdDaGF0QnV0dG9uLFxuICByZXNvbHZlU2lkZWJhckNoYXRBZ2VudExhYmVsLFxuICByZXNvbHZlVG9nZ2xlQ2hhdE1vZGFsSWQsXG4gIHNob3VsZENsb3NlTW9kYWxPbk91dHNpZGVDbGljayxcbiAgc2hvdWxkVXNlTWFpYUljb25Gb3JDaGF0QWdlbnQsXG59IGZyb20gJy4vU2lkZWJhci5oZWxwZXJzJ1xuXG5jb25zdCBhY3Rpb25zID0ge1xuICBlZGl0OiAocHJvcHM6IGFueSkgPT4gPEVkaXRRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG4gIGRlbGV0ZTogKHByb3BzOiBhbnkpID0+IDxEZWxldGVRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG59XG5cbmNvbnN0IExpc3RIaXN0b3J5Q2hhdCA9ICh7XG4gIGNoYXQsXG4gIG9uQ2xpY2ssXG4gIGlzTW9kYWxPcGVuLFxuICBvbk9wZW5Nb2RhbCxcbiAgb25DbG9zZU1vZGFsLFxuICBoYW5kbGVycyxcbiAgaXNTZWxlY3RlZCxcbiAgaW5kZXgsXG4gIHRvb2x0aXBaSW5kZXgsXG59OiB7XG4gIGNoYXQ6IGFueVxuICBvbkNsaWNrOiAoY2hhdDogYW55KSA9PiB2b2lkXG4gIGlzTW9kYWxPcGVuOiBib29sZWFuXG4gIG9uT3Blbk1vZGFsOiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25DbG9zZU1vZGFsOiAoKSA9PiB2b2lkXG4gIGhhbmRsZXJzOiB7XG4gICAgaGFuZGxlRGVsZXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICAgIGhhbmRsZVVwZGF0ZUNoYXQ6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgfVxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIGluZGV4OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleDogbnVtYmVyXG59KSA9PiB7XG4gIGNvbnN0IHRleHRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGFnZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBkaXNwbGF5VGl0bGUgPSB1c2VNZW1vKCgpID0+IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyhjaGF0LnRpdGxlKSwgW2NoYXQudGl0bGVdKVxuICBjb25zdCBkaXNwbGF5QWdlbnQgPSBnZXRBZ2VudERpc3BsYXlOYW1lKGNoYXQuYWdlbnRUeXBlLCBjaGF0LmFnZW50KVxuICBjb25zdCBjb250ZXh0TmFtZSA9IGNoYXQucHJvamVjdE5hbWUgfHwgY2hhdC5jbGllbnROYW1lXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXAgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRleHRSZWYsIFtkaXNwbGF5VGl0bGVdKVxuICBjb25zdCB7IHNob3dUb29sdGlwOiBzaG93VG9vbHRpcEFnZW50IH0gPSB1c2VSZXNpemVMaXN0ZW5lcihhZ2VudFJlZiwgW2NoYXQuYWdlbnRdKVxuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBbYWN0aW9uLCBzZXRBY3Rpb25dID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNHZW5lcmF0aW5nID0gdXNlSXNTZXNzaW9uR2VuZXJhdGluZyhjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICBjb25zdCBzZXNzaW9uTWV0YSA9IHVzZVNlc3Npb25NZXRhKGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gIGNvbnN0IGlzVW5yZWFkID0gaXNDaGF0VW5yZWFkSW5kaWNhdG9yKGNoYXQuaXNSZWFkLCBpc0dlbmVyYXRpbmcpXG4gIGNvbnN0IHNpZGViYXJBZ2VudExhYmVsID0gcmVzb2x2ZVNpZGViYXJDaGF0QWdlbnRMYWJlbCh7XG4gICAgYWdlbnRUeXBlOiBjaGF0LmFnZW50VHlwZSxcbiAgICBhZ2VudE5hbWU6IGNoYXQuYWdlbnQsXG4gICAgcHJvamVjdE5hbWU6IGNoYXQucHJvamVjdE5hbWUsXG4gIH0pXG5cbiAgY29uc3QgbWVudUl0ZW1zID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUucmVuYW1lJyksXG4gICAgICBvbkNsaWNrSXRlbTogKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldEFjdGlvbignZWRpdCcpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBQZW5jaWwsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RWRpdCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUuZGVsZXRlJyksXG4gICAgICBvbkNsaWNrSXRlbTogKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldEFjdGlvbignZGVsZXRlJylcbiAgICAgICAgb25PcGVuTW9kYWwoY2hhdElkKVxuICAgICAgfSxcbiAgICAgIEljb246IFRyYXNoLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudURlbGV0ZSxcbiAgICB9LFxuICBdXG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybUFjdGlvbiA9IChjaGF0RGF0YTogYW55KSA9PiB7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2VkaXQnKSB7XG4gICAgICBoYW5kbGVycy5oYW5kbGVVcGRhdGVDaGF0KGNoYXREYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVycy5oYW5kbGVEZWxldGVDaGF0KGNoYXREYXRhKVxuICAgIH1cbiAgICBzZXRBY3Rpb24obnVsbClcbiAgICBvbkNsb3NlTW9kYWwoKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFNDTEhDV3JhcHBlckNvbnRlbnRcbiAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIG9uQ2xpY2soY2hhdClcbiAgICAgICAgfX1cbiAgICAgICAga2V5PXtgY29udmVyc2F0aW9uLSR7Y2hhdC5zZXNzaW9uRXh0ZXJuYWxJZH1gfVxuICAgICAgICBpc01vZGFsT3Blbj17aXNNb2RhbE9wZW59XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICRpbmRleD17aW5kZXh9XG4gICAgICA+XG4gICAgICAgIDxTQ0xIQ1dyYXBwZXI+XG4gICAgICAgICAgPFNDTEhDV3JhcHBlclRpdGxlUm93PlxuICAgICAgICAgICAge2lzR2VuZXJhdGluZyB8fCBpc1VucmVhZCA/IChcbiAgICAgICAgICAgICAgPFNlc3Npb25HZW5lcmF0aW5nRG90XG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsPXtpc0dlbmVyYXRpbmcgPyB0KCdjb252ZXJzYXRpb25zLmdlbmVyYXRpbmcnKSA6IHQoJ2NvbnZlcnNhdGlvbnMudW5yZWFkTGFiZWwnKX1cbiAgICAgICAgICAgICAgICBpc1dyaXRpbmc9e2lzR2VuZXJhdGluZyAmJiBzZXNzaW9uTWV0YT8uaXNXcml0aW5nfVxuICAgICAgICAgICAgICAgIGFuaW1hdGVkPXtpc0dlbmVyYXRpbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcCA/IGRpc3BsYXlUaXRsZSA6ICcnfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICA8U0NMSENXcmFwcGVyVGl0bGUgcmVmPXt0ZXh0UmVmfSAkdW5yZWFkPXtpc1VucmVhZH0+XG4gICAgICAgICAgICAgICAge2Rpc3BsYXlUaXRsZSB8fCB0KCdjb252ZXJzYXRpb25zLmVtcHR5TGFiZWwnKX1cbiAgICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJUaXRsZT5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICA8L1NDTEhDV3JhcHBlclRpdGxlUm93PlxuICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICB0aXRsZT17c2hvd1Rvb2x0aXBBZ2VudCA/IGRpc3BsYXlBZ2VudCArIChjb250ZXh0TmFtZSA/IGAgLSAke2NvbnRleHROYW1lfWAgOiAnJykgOiAnJ31cbiAgICAgICAgICAgIHpJbmRleD17dG9vbHRpcFpJbmRleH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnQ+XG4gICAgICAgICAgICAgIHtzaG91bGRVc2VNYWlhSWNvbkZvckNoYXRBZ2VudChjaGF0LmFnZW50VHlwZSkgPyAoXG4gICAgICAgICAgICAgICAgPE1BSUFJY29uIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBmb250U2l6ZTogJzE0cHgnIH19PntjaGF0LmVtb2ppfTwvc3Bhbj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnRUZXh0IHJlZj17YWdlbnRSZWZ9PntzaWRlYmFyQWdlbnRMYWJlbH08L1NDTEhDV3JhcHBlckFnZW50VGV4dD5cbiAgICAgICAgICAgIDwvU0NMSENXcmFwcGVyQWdlbnQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L1NDTEhDV3JhcHBlcj5cbiAgICAgICAgPFNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnM+XG4gICAgICAgICAgPENVQnV0dG9uXG4gICAgICAgICAgICBpY29uT25seVxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgb25PcGVuTW9kYWwoY2hhdC5pZClcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPE1lbnVEb3RzIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgIHtpc01vZGFsT3BlbiAmJiAhYWN0aW9uICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgZGF0YS1tb2RhbC1jb250YWluZXJcbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICB0b3A6ICczMnB4JyxcbiAgICAgICAgICAgICAgICByaWdodDogJzE2cHgnLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3doaXRlJyxcbiAgICAgICAgICAgICAgICB6SW5kZXg6IDEwMDAsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMjI0LCAyMjQsIDIyNCwgMSknLFxuICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMTI0cHgnLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bWVudUl0ZW1zLm1hcCgoeyBsYWJlbCwgb25DbGlja0l0ZW0sIEljb24sIGV2ZW50S2V5IH0pID0+IChcbiAgICAgICAgICAgICAgICA8T3B0aW9uSXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xpY2tJdGVtKGNoYXQuaWQpfVxuICAgICAgICAgICAgICAgICAgSWNvbj17SWNvbn1cbiAgICAgICAgICAgICAgICAgIGV2ZW50S2V5PXtldmVudEtleX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucz5cbiAgICAgIDwvU0NMSENXcmFwcGVyQ29udGVudD5cbiAgICAgIHshIWFjdGlvbiAmJlxuICAgICAgICBhY3Rpb25zW2FjdGlvbl0oe1xuICAgICAgICAgIG9uQ2xvc2U6ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2VNb2RhbCgpXG4gICAgICAgICAgICBzZXRBY3Rpb24obnVsbClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoYXQsXG4gICAgICAgICAgaGFuZGxlcnM6IHtcbiAgICAgICAgICAgIGhhbmRsZUNvbmZpcm1BY3Rpb24sXG4gICAgICAgICAgICBoYW5kbGVTZXRJc09wZW5Nb2RhbDogb25DbG9zZU1vZGFsLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCBTaWRlYmFyID0gKHtcbiAgb25Hb1RvQ2hhdCxcbiAgb25FcnJvciA9ICgpID0+IG51bGwsXG4gIGhhbmRsZUdvVG9Ib21lLFxuICBoYW5kbGVTdGFydE5ld0NoYXQsXG4gIGhhbmRsZU9wZW5NYXJrZXRwbGFjZSxcbiAgaGFuZGxlT3BlblNraWxscyxcbiAgb25PcGVuTWFpYWtlckNyZWF0b3IsXG4gIHNob3dOZXdDaGF0LFxuICByZWZldGNoQ2hhdHMsXG4gIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyxcbiAgaGFzRXJyb3IsXG4gIGFnZW50c05hdkFjdGl2ZSA9IG51bGwsXG4gIGlzTGVnYWN5Q29udGV4dFNlc3Npb24gPSBmYWxzZSxcbiAgaW5pdGlhbE9wZW4gPSBmYWxzZSxcbiAgb25PcGVuQ2hhbmdlLFxufToge1xuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25FcnJvcjogKCkgPT4gdm9pZFxuICBoYW5kbGVHb1RvSG9tZTogKCkgPT4gdm9pZFxuICAvKiogSW5pY2lhIHVuIGNoYXQgbnVldm87IGVuIE1pcyBhZ2VudGVzIC8gTWFpYWtlciAvIE1pcyBza2lsbHMgdXNhIGVsIHByaW1lciBhZ2VudGUgZGUgbGEgbGlzdGEuICovXG4gIGhhbmRsZVN0YXJ0TmV3Q2hhdD86ICgpID0+IHZvaWRcbiAgaGFuZGxlT3Blbk1hcmtldHBsYWNlOiAoKSA9PiB2b2lkXG4gIGhhbmRsZU9wZW5Ta2lsbHM6ICgpID0+IHZvaWRcbiAgLyoqIEFicmUgZWwgY3JlYWRvciBNYWlha2VyIChtaXNtYSBsw7NnaWNhIHF1ZSBlbCBodWIgZGVsIG1vZGFsKS4gKi9cbiAgb25PcGVuTWFpYWtlckNyZWF0b3I/OiAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPlxuICBzaG93TmV3Q2hhdDogYm9vbGVhblxuICByZWZldGNoQ2hhdHM6IGJvb2xlYW5cbiAgaGFuZGxlU2V0UmVmZXRjaENoYXRzOiAocmVmZXRjaDogYm9vbGVhbikgPT4gdm9pZFxuICBoYXNFcnJvcjogYm9vbGVhblxuICAvKiogUmVzYWx0YSBNYWlha2VyLCBNaXMgYWdlbnRlcyBvIE1pcyBza2lsbHMgKi9cbiAgYWdlbnRzTmF2QWN0aXZlPzogJ21haWFrZXInIHwgJ215QWdlbnRzJyB8ICdteVNraWxscycgfCBudWxsXG4gIC8qKiBDb252ZXJzYWNpw7NuIGRlIHVuIGNsb25lIGxlZ2FjeSAoYWdlbnRfdHlwZSBjbG9uZSArIGVudGl0eSBwcm9qZWN0L2NsaWVudC90YXNrKTogb2N1bHRhIFwibnVldm8gY2hhdFwiLiAqL1xuICBpc0xlZ2FjeUNvbnRleHRTZXNzaW9uPzogYm9vbGVhblxuICAvKiogRXN0YWRvIGluaWNpYWwgZGVsIHNpZGViYXIgKHJlc3RhdXJhY2nDs24gZGUgc2VzacOzbiB0cmFzIG5hdmVnYWNpw7NuKS4gKi9cbiAgaW5pdGlhbE9wZW4/OiBib29sZWFuXG4gIG9uT3BlbkNoYW5nZT86IChvcGVuOiBib29sZWFuKSA9PiB2b2lkXG59KSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IHRvb2x0aXBaSW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDE1MDAsICdvdmVybGF5JylcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGluaXRpYWxPcGVuKVxuICBjb25zdCBbaXNPcGVuTW9kYWwsIHNldElzT3Blbk1vZGFsXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGFjdGl2ZUNoYXRJZCA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUuYWN0aXZlQ2hhdElkKVxuICBjb25zdCBjaGF0c0ZldGNoZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGNoYXRzQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IGFnZW50OiBzZWxlY3RlZEFnZW50LCBzZWxlY3RBZ2VudCwgc2V0UHJvamVjdCwgc2V0Q2xpZW50LCBzZXRUYXNrIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3Qge1xuICAgIGxvYWRpbmdDaGF0cyxcbiAgICBjaGF0cyxcbiAgICBkZWxldGVDaGF0LFxuICAgIHVwZGF0ZUNoYXQsXG4gICAgZmV0Y2hDaGF0cyxcbiAgICBsaW1pdCxcbiAgICBvZmZzZXQsXG4gICAgaGFzTW9yZUNoYXRzLFxuICAgIGxvYWRNb3JlQ2hhdHMsXG4gICAgaXNMb2FkaW5nTW9yZUNoYXRzLFxuICAgIHNldFVucmVhZENvdW50LFxuICAgIHNldENoYXRSZWFkU3RhdGUsXG4gIH0gPSB1c2VDaGF0cyh7XG4gICAgb25FcnJvcixcbiAgfSlcblxuICBjb25zdCB1bnJlYWRTdWJzY3JpYmVkUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF1c2VyPy5pZCB8fCB0eXBlb2YgJF9zYyA9PT0gJ3VuZGVmaW5lZCcgfHwgISRfc2MpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IGNoYW5uZWwgPSBgc2Vzc2lvbnMudW5yZWFkOiR7dXNlci5pZH1gXG4gICAgY29uc3QgaGFuZGxlVW5yZWFkRXZlbnQgPSAoe1xuICAgICAgbW9kZWxfZGF0YTogbW9kZWxEYXRhLFxuICAgIH06IHtcbiAgICAgIG1vZGVsX2RhdGE/OiB7IHVucmVhZF9jb3VudD86IG51bWJlcjsgc2Vzc2lvbl9pZD86IHN0cmluZzsgaXNfcmVhZD86IGJvb2xlYW4gfVxuICAgIH0pID0+IHtcbiAgICAgIGlmICh0eXBlb2YgbW9kZWxEYXRhPy51bnJlYWRfY291bnQgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHNldFVucmVhZENvdW50KG1vZGVsRGF0YS51bnJlYWRfY291bnQpXG4gICAgICB9XG4gICAgICBpZiAobW9kZWxEYXRhPy5zZXNzaW9uX2lkICYmIHR5cGVvZiBtb2RlbERhdGE/LmlzX3JlYWQgPT09ICdib29sZWFuJykge1xuICAgICAgICBzZXRDaGF0UmVhZFN0YXRlKG1vZGVsRGF0YS5zZXNzaW9uX2lkLCBtb2RlbERhdGEuaXNfcmVhZClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkX3NjLnN1YnNjcmliZUhhbmRsZXIoY2hhbm5lbCwgaGFuZGxlVW5yZWFkRXZlbnQpXG5cbiAgICBpZiAoIXVucmVhZFN1YnNjcmliZWRSZWYuY3VycmVudCkge1xuICAgICAgJF9zYy51cGRhdGVDb25uZWN0aW9uTW9kZWwoXG4gICAgICAgIHtcbiAgICAgICAgICBtb2RlbF9oYXNoOiBjaGFubmVsLFxuICAgICAgICAgIGFjdGlvbjogJF9zYy5hY3Rpb25UeXBlPy5TVUJTQ1JJQkUsXG4gICAgICAgIH0sXG4gICAgICAgIGNoYW5uZWwsXG4gICAgICAgIHVzZXIsXG4gICAgICAgIHVzZXIsXG4gICAgICAgICRfc2MuY2hhbm5lbFR5cGU/Lk1PREVMX0NIQU5ORUxcbiAgICAgIClcbiAgICAgIHVucmVhZFN1YnNjcmliZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFt1c2VyLCBzZXRVbnJlYWRDb3VudCwgc2V0Q2hhdFJlYWRTdGF0ZV0pXG5cbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBjYW5DcmVhdGVBZ2VudHMgPSAhIXVzZXJQZXJtaXNzaW9ucz8uY3JlYXRlXG4gIGNvbnN0IGhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2VzcyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuVmlld0FnZW50cyA9ICEhdXNlclBlcm1pc3Npb25zPy52aWV3ICYmIGhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2Vzc1xuICBjb25zdCBjYW5WaWV3U2tpbGxzID0gY2FuQWNjZXNzVG9Ta2lsbHModXNlcikgJiYgaXNTa2lsbHNQaWxvdENvbXBhbnkodXNlcj8uY29tcGFueV9pZClcbiAgY29uc3Qgc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiA9ICEhY2FuQ3JlYXRlQWdlbnRzICYmIGhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2Vzc1xuICBjb25zdCBhZ2VudE5hdkJ1dHRvbkNvdW50ID0gY291bnRTaWRlYmFyQWdlbnROYXZCdXR0b25zKHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24sIGNhblZpZXdBZ2VudHMsIGNhblZpZXdTa2lsbHMpXG4gIGNvbnN0IHNob3dBZ2VudHNOYXZCbG9jayA9IHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gfHwgY2FuVmlld0FnZW50cyB8fCBjYW5WaWV3U2tpbGxzXG4gIGNvbnN0IG15QWdlbnRzU2lkZWJhclRyYWNrZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWNhblZpZXdBZ2VudHMgfHwgbXlBZ2VudHNTaWRlYmFyVHJhY2tlZFJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIG15QWdlbnRzU2lkZWJhclRyYWNrZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICB0cmFja0FwcGN1ZXNFdmVudChBUFBDVUVTX0VWRU5UUy5tYWlhU2lkZWJhck15QWdlbnRzKVxuICB9LCBbY2FuVmlld0FnZW50c10pXG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlQ2hhdCA9IGFzeW5jIChjaGF0OiBhbnkpID0+IHtcbiAgICBkZWxldGVDaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICBjb25zdCBoYW5kbGVVcGRhdGVDaGF0ID0gKGNoYXQ6IGFueSkgPT4ge1xuICAgIHVwZGF0ZUNoYXQoY2hhdClcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3Blbk1vZGFsID0gKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0SXNPcGVuTW9kYWwocmVzb2x2ZVRvZ2dsZUNoYXRNb2RhbElkKGlzT3Blbk1vZGFsLCBjaGF0SWQpKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmIChzaG91bGRDbG9zZU1vZGFsT25PdXRzaWRlQ2xpY2soaXNPcGVuTW9kYWwsIGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KSkge1xuICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbaXNPcGVuTW9kYWxdKVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZVNpZGViYXIgPSAoKSA9PiB7XG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIH1cbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0U2lkZWJhciwgeyBhY3Rpb246IGlzT3BlbiA/ICdjbG9zZScgOiAnb3BlbicgfSlcbiAgICBzZXRJc09wZW4ocHJldiA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gIXByZXZcbiAgICAgIG9uT3BlbkNoYW5nZT8uKG5leHQpXG4gICAgICByZXR1cm4gbmV4dFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuQ3JlYXRlQWdlbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKG9uT3Blbk1haWFrZXJDcmVhdG9yKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBvbk9wZW5NYWlha2VyQ3JlYXRvcigpXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgb25FcnJvcigpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmZW50aXR5PWdsb2JhbCZsYW5nPSR7bWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKX1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgIGNvbnN0IG1haWFrZXJBZ2VudCA9IChkYXRhLmRhdGEgfHwgW10pLmZpbmQoKGFnZW50SXRlbTogeyB0eXBlPzogc3RyaW5nOyBlbnRpdHk/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmcgfSkgPT5cbiAgICAgICAgaXNNYXJrZXRwbGFjZUdsb2JhbENsb25lQWdlbnQoYWdlbnRJdGVtKVxuICAgICAgKVxuXG4gICAgICBpZiAoIW1haWFrZXJBZ2VudCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIC8vIGhhbmRsZUdvVG9Ib21lIHB1ZWRlIHJlc2VsZWNjaW9uYXIgYWdlbnRzLmRhdGFbMF0gc2kgZWwgYWdlbnRlIGdsb2JhbCBhdW4gZXN0YSBlbiBudWxsXG4gICAgICAvLyAoY2xvc3VyZSBzdGFsZSBkZSBsYSBzZWNjaW9uIFwiTWlzIGFnZW50ZXNcIiksIHBvciBlc28gc2VsZWN0QWdlbnQobWFpYWtlckFnZW50KSB2YSBkZXNwdWVzLlxuICAgICAgaGFuZGxlR29Ub0hvbWUoKVxuICAgICAgc2VsZWN0QWdlbnQobWFpYWtlckFnZW50KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBvbkVycm9yKClcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQgfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICAvLyBSZWZldGNoIHNvbGljaXRhZG8gcG9yIHByb3A6IHNlIGVqZWN1dGEgYXVucXVlIGVsIHNpZGViYXIgZXN0w6kgY29sYXBzYWRvLlxuICAgIGlmIChyZWZldGNoQ2hhdHMpIHtcbiAgICAgIGZldGNoQ2hhdHMoeyBsaW1pdCwgb2Zmc2V0IH0pXG4gICAgICBoYW5kbGVTZXRSZWZldGNoQ2hhdHMoZmFsc2UpXG4gICAgfVxuICB9LCBbcmVmZXRjaENoYXRzLCBoYW5kbGVTZXRSZWZldGNoQ2hhdHMsIGZldGNoQ2hhdHMsIGxpbWl0LCBvZmZzZXRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgaWYgKCFjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50IHx8ICFoYXNNb3JlQ2hhdHMgfHwgaXNMb2FkaW5nTW9yZUNoYXRzIHx8IGhhc0Vycm9yKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICAgIGlmIChpc0NoYXRMaXN0U2Nyb2xsZWRUb0JvdHRvbShzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0KSkge1xuICAgICAgICBsb2FkTW9yZUNoYXRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hhc01vcmVDaGF0cywgaXNMb2FkaW5nTW9yZUNoYXRzLCBsb2FkTW9yZUNoYXRzLCBoYXNFcnJvcl0pXG5cbiAgY29uc3QgaGFuZGxlTmV3Q2hhdCA9ICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlTaWRlYmFyTmV3Q2hhdClcbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfVxuICAgIGlmIChoYW5kbGVTdGFydE5ld0NoYXQpIHtcbiAgICAgIGhhbmRsZVN0YXJ0TmV3Q2hhdCgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaGFuZGxlR29Ub0hvbWUoKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBBbCBjcmVhci9hY3R1YWxpemFyIHVuYSBjb252ZXJzYWNpw7NuIHJlZnJlc2NhbW9zIGxhIGxpc3RhIGF1bnF1ZSBlbCBzaWRlYmFyIGVzdMOpIGNvbGFwc2Fkby5cbiAgICBjb25zdCBoYW5kbGVSZWZldGNoU2Vzc2lvbiA9ICgpID0+IHtcbiAgICAgIGNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0OiAyMCwgb2Zmc2V0OiAwLCBiYWNrZ3JvdW5kOiB0cnVlIH0pXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdyZWZldGNoLXNlc3Npb24nLCBoYW5kbGVSZWZldGNoU2Vzc2lvbilcbiAgICB9XG4gIH0sIFtmZXRjaENoYXRzXSlcblxuICBjb25zdCBpc0FnZW50c0h1YlNlY3Rpb24gPSByZXNvbHZlQWdlbnRzSHViU2VjdGlvbihzaG93TmV3Q2hhdCwgYWdlbnRzTmF2QWN0aXZlKVxuXG4gIGNvbnN0IHNob3dOZXdDaGF0QnV0dG9uID0gcmVzb2x2ZVNob3dOZXdDaGF0QnV0dG9uKHtcbiAgICBpc0FnZW50c0h1YlNlY3Rpb24sXG4gICAgc2hvd05ld0NoYXQsXG4gICAgaGFzRXJyb3IsXG4gICAgbG9hZGluZ0NoYXRzLFxuICAgIGlzTGVnYWN5Q29udGV4dFNlc3Npb24sXG4gICAgdXNlckNhblZpZXdBZ2VudHM6IEJvb2xlYW4odXNlclBlcm1pc3Npb25zPy52aWV3KSxcbiAgICBzZWxlY3RlZEFnZW50LFxuICB9KVxuXG4gIHJldHVybiAoXG4gICAgPFNDU1NpZGViYXJSb290ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICA8U0NTU2lkZWJhclRvb2xiYXIgJGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzT3BlbiA/IHQoJ2NvbnZlcnNhdGlvbnMuY29sbGFwc2UnKSA6IHQoJ2hpc3RvcnkudG9vbHRpcCcpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgIDxTQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZVNpZGViYXJ9IGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAgICAgIHtpc09wZW4gPyAoXG4gICAgICAgICAgICAgIDxDaGV2cm9uRG91YmxlTGVmdCBjb2xvcj1cInJnYmEoMTAyLCAxMDIsIDEwMiwgMSlcIiB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8SGlzdG9yeSBjb2xvcj1cInJnYmEoMTMsIDEzLCAxMywgMSlcIiB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbj5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICB7c2hvd05ld0NoYXRCdXR0b24gPyAoXG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NvbnZlcnNhdGlvbnMubmV3Q2hhdCcpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgPFNDU1dyYXBwZXJOZXdDaGF0SWNvbiBvbkNsaWNrPXtoYW5kbGVOZXdDaGF0fSBhcmlhLWxhYmVsPXt0KCdjb252ZXJzYXRpb25zLm5ld0NoYXQnKX0+XG4gICAgICAgICAgICAgIDxOZXdDaGF0IHdpZHRoPXsxNn0gaGVpZ2h0PXsxNn0gLz5cbiAgICAgICAgICAgIDwvU0NTV3JhcHBlck5ld0NoYXRJY29uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHshaXNPcGVuICYmIHNob3dBZ2VudHNOYXZCbG9jayA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDb2xsYXBzZWREaXZpZGVyIC8+XG4gICAgICAgICAgICB7c2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NvbnZlcnNhdGlvbnMubWFpYWtlck5hdicpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgIDxTQ1NXcmFwcGVyQWdlbnRzTmF2SWNvblxuICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbWFpYWtlcid9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRNcE9wZW4pXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DcmVhdGVBZ2VudCgpXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxNYWlhU3RvcmVJY29uIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgIDwvU0NTV3JhcHBlckFnZW50c05hdkljb24+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2NhblZpZXdBZ2VudHMgPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm15QWdlbnRzTmF2Jyl9IHpJbmRleD17dG9vbHRpcFpJbmRleH0+XG4gICAgICAgICAgICAgICAgPFNDU1dyYXBwZXJBZ2VudHNOYXZJY29uXG4gICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICBkYXRhLWFwcGN1ZXM9e0FQUENVRVNfU0VMRUNUT1JTLm1haWFTaWRlYmFyTXlBZ2VudHN9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haVNpZGViYXJNeUFnZW50cylcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlKClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPE15QWdlbnRzTmF2SWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1dyYXBwZXJBZ2VudHNOYXZJY29uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjYW5WaWV3U2tpbGxzID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnY29udmVyc2F0aW9ucy5teVNraWxsc05hdicpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgIDxTQ1NXcmFwcGVyQWdlbnRzTmF2SWNvblxuICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbXlTa2lsbHMnfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlTaWRlYmFyTXlTa2lsbHMpXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5Ta2lsbHMoKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U2tpbGxzTmF2SWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1dyYXBwZXJBZ2VudHNOYXZJY29uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDU1NpZGViYXJUb29sYmFyPlxuICAgICAgPFNDU1NpZGViYXJCb2R5ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICAgIHtpc09wZW4gPyAoXG4gICAgICAgICAgPFNDU1NpZGViYXJPcGVuUGFuZWw+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgICB7c2hvd0FnZW50c05hdkJsb2NrID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgIHtzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0TXBPcGVuKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ21haWFrZXInfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubWFpYWtlck5hdicpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge2NhblZpZXdBZ2VudHMgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXBwY3Vlcz17QVBQQ1VFU19TRUxFQ1RPUlMubWFpYVNpZGViYXJNeUFnZW50c31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlTaWRlYmFyTXlBZ2VudHMpXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVPcGVuTWFya2V0cGxhY2UoKVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbXlBZ2VudHMnfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPE15QWdlbnRzTmF2SWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD57dCgnY29udmVyc2F0aW9ucy5teUFnZW50c05hdicpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge2NhblZpZXdTa2lsbHMgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haVNpZGViYXJNeVNraWxscylcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5Ta2lsbHMoKVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbXlTa2lsbHMnfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNraWxsc05hdkljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubXlTa2lsbHNOYXYnKX08L1NDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2QmFkZ2VOZXc+e3QoJ2hvbWVNZW51Lm1haWFrZXIuYmFkZ2VOZXcnKX08L1NDU1NpZGViYXJNYWlha2VyTmF2QmFkZ2VOZXc+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJBZ2VudHNBY3Rpb25zPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZ1Jvdz5cbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nPnt0KCdjb252ZXJzYXRpb25zLnRpdGxlJyl9PC9TQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmc+XG4gICAgICAgICAgICAgIDwvU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nUm93PlxuICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzQmxvY2s+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckNoYXRzU2Nyb2xsXG4gICAgICAgICAgICAgIHJlZj17Y2hhdHNDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICRoYXNDaGF0cz17Y2hhdHMubGVuZ3RoID4gMH1cbiAgICAgICAgICAgICAgJG9mZnNldFZhcmlhbnQ9e2hhc0Vycm9yID8gJ2Vycm9yJyA6ICdkZWZhdWx0J31cbiAgICAgICAgICAgICAgJGFnZW50TmF2QnV0dG9uQ291bnQ9e2FnZW50TmF2QnV0dG9uQ291bnR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtoYXNFcnJvciAmJiAhY2hhdHMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JTdGF0ZUNvbHVtbj5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JTdGF0ZVRvcD5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yU3RhdGUgLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yU3RhdGVUb3A+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgPEVycm9ySWNvbiAvPlxuICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZT57dCgnY29udmVyc2F0aW9ucy5lcnJvcicpfTwvU0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgICkgOiBsb2FkaW5nQ2hhdHMgPyAoXG4gICAgICAgICAgICAgICAgPFNDU1NpZGViYXJMb2FkaW5nQXJlYT5cbiAgICAgICAgICAgICAgICAgIDxTaWRlYmFyQ2hhdHNTa2VsZXRvbiAvPlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckxvYWRpbmdBcmVhPlxuICAgICAgICAgICAgICApIDogY2hhdHMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7Y2hhdHMubWFwKChjaGF0LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SGlzdG9yeUNoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2hhdC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXQ9e2NoYXR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjaGF0RGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Hb1RvQ2hhdChjaGF0RGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01vZGFsT3Blbj17aXNPcGVuTW9kYWwgPT09IGNoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk9wZW5Nb2RhbD17aGFuZGxlT3Blbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZU1vZGFsPXtoYW5kbGVDbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRGVsZXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlVXBkYXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXthY3RpdmVDaGF0SWQgPT09IGNoYXQuc2Vzc2lvbkV4dGVybmFsSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwWkluZGV4PXt0b29sdGlwWkluZGV4fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ01vcmVDaGF0cyAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTG9hZE1vcmVSb3c+XG4gICAgICAgICAgICAgICAgICAgICAgPFNpZGViYXJDaGF0c1NrZWxldG9uIGNvdW50PXsyfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJMb2FkTW9yZVJvdz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFbXB0eUNoYXRzPlxuICAgICAgICAgICAgICAgICAgPEVtcHR5SGlzdG9yeUljb24gLz5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRW1wdHlDaGF0c1RleHQ+e3QoJ2NvbnZlcnNhdGlvbnMuZW1wdHknKX08L1NDU1NpZGViYXJFbXB0eUNoYXRzVGV4dD5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFbXB0eUNoYXRzPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQ2hhdHNTY3JvbGw+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckNoYXRzRm9vdGVyPlxuICAgICAgICAgICAgICB7aGFzRXJyb3IgJiYgY2hhdHMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXI+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXA+XG4gICAgICAgICAgICAgICAgICAgIDxFcnJvckljb24gLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXA+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZT57dCgnY29udmVyc2F0aW9ucy5lcnJvcicpfTwvU0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZT5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1NDU1NpZGViYXJDaGF0c0Zvb3Rlcj5cbiAgICAgICAgICA8L1NDU1NpZGViYXJPcGVuUGFuZWw+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8U0NTU2lkZWJhckZvb3RlckFjdGlvbnMgJGlzT3Blbj17aXNPcGVufSAkanVzdGlmeUJldHdlZW49eyEhc2VsZWN0ZWRBZ2VudH0+XG4gICAgICAgICAge3NlbGVjdGVkQWdlbnQgPyA8RmVlZGJhY2tCdXR0b24gc2VsZWN0ZWRBZ2VudD17c2VsZWN0ZWRBZ2VudH0gaXNPcGVuPXtpc09wZW59IC8+IDogbnVsbH1cbiAgICAgICAgPC9TQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucz5cbiAgICAgIDwvU0NTU2lkZWJhckJvZHk+XG4gICAgPC9TQ1NTaWRlYmFyUm9vdD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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
|
|
719
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJDaGV2cm9uRG91YmxlTGVmdCIsIkhpc3RvcnkiLCJDVUJ1dHRvbiIsIk1lbnVEb3RzIiwiUGVuY2lsIiwiVHJhc2giLCJUb29sdGlwIiwiRW1wdHlIaXN0b3J5SWNvbiIsInVzZVJlc2l6ZUxpc3RlbmVyIiwidXNlQ2hhdHMiLCJTaWRlYmFyQ2hhdHNTa2VsZXRvbiIsIkVycm9yU3RhdGUiLCJNQUlBSWNvbiIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iLCJTa2lsbHNOYXZJY29uIiwiTmV3Q2hhdCIsIkVWRU5UUyIsInVzZUV2ZW50IiwidXNlVCIsIk9wdGlvbkl0ZW0iLCJFZGl0UXVlc3Rpb25Nb2RhbCIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJFcnJvckljb24iLCJ1c2VVc2VyIiwiRmVlZGJhY2tCdXR0b24iLCJ1c2VHbG9iYWxDb250ZXh0IiwiZmV0Y2hNYWlhIiwiY2FuQWNjZXNzVG9Ta2lsbHMiLCJpc1NraWxsc1BpbG90Q29tcGFueSIsIm1hcENPUkxhbmciLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJnZXRBZ2VudERpc3BsYXlOYW1lIiwiaXNNYXJrZXRwbGFjZUdsb2JhbENsb25lQWdlbnQiLCJBUFBDVUVTX0VWRU5UUyIsIkFQUENVRVNfU0VMRUNUT1JTIiwidHJhY2tBcHBjdWVzRXZlbnQiLCJTZXNzaW9uR2VuZXJhdGluZ0RvdCIsInVzZUlzU2Vzc2lvbkdlbmVyYXRpbmciLCJ1c2VTZXNzaW9uTWV0YSIsInVzZU1haWFUYXNrUGFuZWxaSW5kZXgiLCJ1c2VDaGF0c1N0b3JlIiwiU0NMSENXcmFwcGVyIiwiU0NMSENXcmFwcGVyQWdlbnQiLCJTQ0xIQ1dyYXBwZXJBZ2VudFRleHQiLCJTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zIiwiU0NMSENXcmFwcGVyQ29udGVudCIsIlNDTEhDV3JhcHBlclRpdGxlIiwiU0NMSENXcmFwcGVyVGl0bGVSb3ciLCJTQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uIiwiU0NTV3JhcHBlck5ld0NoYXRJY29uIiwiU0NTV3JhcHBlckFnZW50c05hdkljb24iLCJTQ1NTaWRlYmFyUm9vdCIsIlNDU1NpZGViYXJUb29sYmFyIiwiU0NTU2lkZWJhckJvZHkiLCJTQ1NTaWRlYmFyT3BlblBhbmVsIiwiU0NTU2lkZWJhckFnZW50c0Jsb2NrIiwiU0NTU2lkZWJhckFnZW50c0FjdGlvbnMiLCJTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbiIsIlNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWwiLCJTQ1NTaWRlYmFyTWFpYWtlck5hdkJhZGdlTmV3IiwiU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nIiwiU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nUm93IiwiU0NTU2lkZWJhckNoYXRzU2Nyb2xsIiwiU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4iLCJTQ1NTaWRlYmFyRXJyb3JTdGF0ZVRvcCIsIlNDU1NpZGViYXJFcnJvckJhbm5lciIsIlNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwIiwiU0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZSIsIlNDU1NpZGViYXJMb2FkaW5nQXJlYSIsIlNDU1NpZGViYXJMb2FkTW9yZVJvdyIsIlNDU1NpZGViYXJFbXB0eUNoYXRzIiwiU0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0IiwiU0NTU2lkZWJhckNoYXRzRm9vdGVyIiwiU0NTU2lkZWJhckZvb3RlckFjdGlvbnMiLCJTQ1NTaWRlYmFyQ29sbGFwc2VkRGl2aWRlciIsImNvdW50U2lkZWJhckFnZW50TmF2QnV0dG9ucyIsImlzQ2hhdExpc3RTY3JvbGxlZFRvQm90dG9tIiwiaXNDaGF0VW5yZWFkSW5kaWNhdG9yIiwicmVzb2x2ZUFnZW50c0h1YlNlY3Rpb24iLCJyZXNvbHZlU2hvd05ld0NoYXRCdXR0b24iLCJyZXNvbHZlU2lkZWJhckNoYXRBZ2VudExhYmVsIiwicmVzb2x2ZVRvZ2dsZUNoYXRNb2RhbElkIiwic2hvdWxkQ2xvc2VNb2RhbE9uT3V0c2lkZUNsaWNrIiwic2hvdWxkVXNlTWFpYUljb25Gb3JDaGF0QWdlbnQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJhY3Rpb25zIiwiZWRpdCIsInByb3BzIiwiX29iamVjdFNwcmVhZCIsImRlbGV0ZSIsIkxpc3RIaXN0b3J5Q2hhdCIsIl9yZWYiLCJjaGF0Iiwib25DbGljayIsImlzTW9kYWxPcGVuIiwib25PcGVuTW9kYWwiLCJvbkNsb3NlTW9kYWwiLCJoYW5kbGVycyIsImlzU2VsZWN0ZWQiLCJpbmRleCIsInRvb2x0aXBaSW5kZXgiLCJ0ZXh0UmVmIiwiYWdlbnRSZWYiLCJkaXNwbGF5VGl0bGUiLCJ0aXRsZSIsImRpc3BsYXlBZ2VudCIsImFnZW50VHlwZSIsImFnZW50IiwiY29udGV4dE5hbWUiLCJwcm9qZWN0TmFtZSIsImNsaWVudE5hbWUiLCJfdXNlUmVzaXplTGlzdGVuZXIiLCJzaG93VG9vbHRpcCIsIl91c2VSZXNpemVMaXN0ZW5lcjIiLCJzaG93VG9vbHRpcEFnZW50IiwiX3VzZVQiLCJ0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWN0aW9uIiwic2V0QWN0aW9uIiwiaXNHZW5lcmF0aW5nIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJzZXNzaW9uTWV0YSIsImlzVW5yZWFkIiwiaXNSZWFkIiwic2lkZWJhckFnZW50TGFiZWwiLCJhZ2VudE5hbWUiLCJtZW51SXRlbXMiLCJsYWJlbCIsIm9uQ2xpY2tJdGVtIiwiY2hhdElkIiwiSWNvbiIsImV2ZW50S2V5IiwicG1BaU1lbnVFZGl0IiwicG1BaU1lbnVEZWxldGUiLCJoYW5kbGVDb25maXJtQWN0aW9uIiwiY2hhdERhdGEiLCJoYW5kbGVVcGRhdGVDaGF0IiwiaGFuZGxlRGVsZXRlQ2hhdCIsImNoaWxkcmVuIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIiRpbmRleCIsImFyaWFMYWJlbCIsImlzV3JpdGluZyIsImFuaW1hdGVkIiwiekluZGV4IiwicmVmIiwiJHVucmVhZCIsImNvbmNhdCIsIndpZHRoIiwiaGVpZ2h0Iiwic3R5bGUiLCJmb250U2l6ZSIsImVtb2ppIiwiaWNvbk9ubHkiLCJzaXplIiwidmFyaWFudCIsImV2ZW50IiwiaWQiLCJwb3NpdGlvbiIsInRvcCIsInJpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJtaW5XaWR0aCIsIm1hcCIsIl9yZWYyIiwib25DbG9zZSIsImhhbmRsZVNldElzT3Blbk1vZGFsIiwiU2lkZWJhciIsIl9yZWYzIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkdvVG9DaGF0IiwiX3JlZjMkb25FcnJvciIsIm9uRXJyb3IiLCJoYW5kbGVHb1RvSG9tZSIsImhhbmRsZVN0YXJ0TmV3Q2hhdCIsImhhbmRsZU9wZW5NYXJrZXRwbGFjZSIsImhhbmRsZU9wZW5Ta2lsbHMiLCJvbk9wZW5NYWlha2VyQ3JlYXRvciIsInNob3dOZXdDaGF0IiwicmVmZXRjaENoYXRzIiwiaGFuZGxlU2V0UmVmZXRjaENoYXRzIiwiaGFzRXJyb3IiLCJfcmVmMyRhZ2VudHNOYXZBY3RpdmUiLCJhZ2VudHNOYXZBY3RpdmUiLCJfcmVmMyRpc0xlZ2FjeUNvbnRleHQiLCJpc0xlZ2FjeUNvbnRleHRTZXNzaW9uIiwiX3JlZjMkaW5pdGlhbE9wZW4iLCJpbml0aWFsT3BlbiIsIm9uT3BlbkNoYW5nZSIsIl91c2VUMiIsImkxOG4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzT3BlbiIsInNldElzT3BlbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNPcGVuTW9kYWwiLCJzZXRJc09wZW5Nb2RhbCIsImFjdGl2ZUNoYXRJZCIsInN0YXRlIiwiY2hhdHNGZXRjaGVkRm9yVXNlclJlZiIsInByZXZBZ2VudElkUmVmIiwidW5kZWZpbmVkIiwicmVzZXRDaGF0c1N0b3JlIiwicmVzZXQiLCJjaGF0c0NvbnRhaW5lclJlZiIsInVzZXIiLCJldmVudEFtcGxpdHVkZSIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0ZWRBZ2VudCIsInNlbGVjdEFnZW50Iiwic2V0UHJvamVjdCIsInNldENsaWVudCIsInNldFRhc2siLCJfdXNlQ2hhdHMiLCJsb2FkaW5nQ2hhdHMiLCJjaGF0cyIsImRlbGV0ZUNoYXQiLCJ1cGRhdGVDaGF0IiwiZmV0Y2hDaGF0cyIsImxpbWl0IiwiaGFzTW9yZUNoYXRzIiwibG9hZE1vcmVDaGF0cyIsImlzTG9hZGluZ01vcmVDaGF0cyIsInNldFVucmVhZENvdW50Iiwic2V0Q2hhdFJlYWRTdGF0ZSIsInVucmVhZFN1YnNjcmliZWRSZWYiLCIkX3NjIiwiY2hhbm5lbCIsImhhbmRsZVVucmVhZEV2ZW50IiwiX3JlZjQiLCJtb2RlbERhdGEiLCJtb2RlbF9kYXRhIiwidW5yZWFkX2NvdW50Iiwic2Vzc2lvbl9pZCIsImlzX3JlYWQiLCJzdWJzY3JpYmVIYW5kbGVyIiwiY3VycmVudCIsIl8kX3NjJGFjdGlvblR5cGUiLCJfJF9zYyRjaGFubmVsVHlwZSIsInVwZGF0ZUNvbm5lY3Rpb25Nb2RlbCIsIm1vZGVsX2hhc2giLCJhY3Rpb25UeXBlIiwiU1VCU0NSSUJFIiwiY2hhbm5lbFR5cGUiLCJNT0RFTF9DSEFOTkVMIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjYW5DcmVhdGVBZ2VudHMiLCJjcmVhdGUiLCJoYXNNdWx0aUFnZW50c0ZlYXR1cmVBY2Nlc3MiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiY2FuVmlld0FnZW50cyIsInZpZXciLCJjYW5WaWV3U2tpbGxzIiwiY29tcGFueV9pZCIsInNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24iLCJhZ2VudE5hdkJ1dHRvbkNvdW50Iiwic2hvd0FnZW50c05hdkJsb2NrIiwibXlBZ2VudHNTaWRlYmFyVHJhY2tlZFJlZiIsIm1haWFTaWRlYmFyTXlBZ2VudHMiLCJfcmVmNSIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZU9wZW5Nb2RhbCIsImhhbmRsZUNsb3NlTW9kYWwiLCJoYW5kbGVDbGlja091dHNpZGUiLCJ0YXJnZXQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlVG9nZ2xlU2lkZWJhciIsImFpQ2hhdFNpZGViYXIiLCJoYW5kbGVPcGVuQ3JlYXRlQWdlbnQiLCJfcmVmNiIsIl9jYWxsZWUyIiwicmVzcG9uc2UiLCJkYXRhIiwibWFpYWtlckFnZW50IiwiX3QiLCJfdDIiLCJfY29udGV4dDIiLCJhYnJ1cHQiLCJwYXRoIiwibGFuZ3VhZ2UiLCJtZXRob2QiLCJzZW50IiwianNvbiIsImZpbmQiLCJhZ2VudEl0ZW0iLCJfc2VsZWN0ZWRBZ2VudCRpZCIsInVzZXJJZCIsInVzZXJDaGFuZ2VkIiwiYWdlbnRJZCIsImFnZW50SnVzdEJlY2FtZUF2YWlsYWJsZSIsInNob3VsZEZldGNoIiwib2Zmc2V0IiwiaGFuZGxlU2Nyb2xsIiwiX2NoYXRzQ29udGFpbmVyUmVmJGN1Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiY29udGFpbmVyIiwiaGFuZGxlTmV3Q2hhdCIsImFpU2lkZWJhck5ld0NoYXQiLCJoYW5kbGVSZWZldGNoU2Vzc2lvbiIsImJhY2tncm91bmQiLCJpc0FnZW50c0h1YlNlY3Rpb24iLCJzaG93TmV3Q2hhdEJ1dHRvbiIsInVzZXJDYW5WaWV3QWdlbnRzIiwiQm9vbGVhbiIsIiRpc09wZW4iLCJjb2xvciIsIiRhY3RpdmUiLCJhaUNoYXRNcE9wZW4iLCJhaVNpZGViYXJNeUFnZW50cyIsImFpU2lkZWJhck15U2tpbGxzIiwidHlwZSIsIiRoYXNDaGF0cyIsImxlbmd0aCIsIiRvZmZzZXRWYXJpYW50IiwiJGFnZW50TmF2QnV0dG9uQ291bnQiLCJjb3VudCIsIiRqdXN0aWZ5QmV0d2VlbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TaWRlYmFyL1NpZGViYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tc2hhZG93ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZXZyb25Eb3VibGVMZWZ0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkRvdWJsZUxlZnQnXG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvSGlzdG9yeSdcbmltcG9ydCB7IENVQnV0dG9uIH0gZnJvbSAnQHByb2plY3Rjb3IvYnV0dG9uL2xpYi9jb21wb25lbnRzL0NVQnV0dG9uJ1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFBlbmNpbCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BlbmNpbCdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcblxuaW1wb3J0IHsgRW1wdHlIaXN0b3J5SWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0VtcHR5SGlzdG9yeSdcbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgdXNlQ2hhdHMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VDaGF0cydcbmltcG9ydCB7IFNpZGViYXJDaGF0c1NrZWxldG9uIH0gZnJvbSAnLi9TaWRlYmFyLnNrZWxldG9uJ1xuaW1wb3J0IHsgRXJyb3JTdGF0ZSwgTUFJQUljb24sIE1haWFTdG9yZUljb24sIE15QWdlbnRzTmF2SWNvbiwgU2tpbGxzTmF2SWNvbiwgTmV3Q2hhdCB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBPcHRpb25JdGVtIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2FyZE1lbnUvQ2FyZE1lbnUnXG5pbXBvcnQgeyBFZGl0UXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9FZGl0UXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0Vycm9ySWNvbidcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgRmVlZGJhY2tCdXR0b24gfSBmcm9tICcuLi8uLi9hdG9tcy9GZWVkYmFja0J1dHRvbidcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9jbGllbnQnXG5pbXBvcnQgeyBjYW5BY2Nlc3NUb1NraWxscywgaXNTa2lsbHNQaWxvdENvbXBhbnkgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvcGVybWlzc2lvbnMnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucydcbmltcG9ydCB7IGdldEFnZW50RGlzcGxheU5hbWUsIGlzTWFya2V0cGxhY2VHbG9iYWxDbG9uZUFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYWdlbnREaXNwbGF5TmFtZSdcbmltcG9ydCB7IEFQUENVRVNfRVZFTlRTLCBBUFBDVUVTX1NFTEVDVE9SUywgdHJhY2tBcHBjdWVzRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHBjdWVzJ1xuaW1wb3J0IHsgU2Vzc2lvbkdlbmVyYXRpbmdEb3QgfSBmcm9tICcuLi8uLi9hdG9tcy9TZXNzaW9uR2VuZXJhdGluZ0RvdCdcbmltcG9ydCB7IHVzZUlzU2Vzc2lvbkdlbmVyYXRpbmcsIHVzZVNlc3Npb25NZXRhIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2Vzc2lvbnMvdXNlU2Vzc2lvbk1ldGEnXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbmltcG9ydCB7IHVzZUNoYXRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS91c2VDaGF0c1N0b3JlJ1xuaW1wb3J0IHtcbiAgU0NMSENXcmFwcGVyLFxuICBTQ0xIQ1dyYXBwZXJBZ2VudCxcbiAgU0NMSENXcmFwcGVyQWdlbnRUZXh0LFxuICBTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zLFxuICBTQ0xIQ1dyYXBwZXJDb250ZW50LFxuICBTQ0xIQ1dyYXBwZXJUaXRsZSxcbiAgU0NMSENXcmFwcGVyVGl0bGVSb3csXG4gIFNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24sXG4gIFNDU1dyYXBwZXJOZXdDaGF0SWNvbixcbiAgU0NTV3JhcHBlckFnZW50c05hdkljb24sXG59IGZyb20gJy4vU2lkZWJhci5zdHlsZXMnXG5pbXBvcnQge1xuICBTQ1NTaWRlYmFyUm9vdCxcbiAgU0NTU2lkZWJhclRvb2xiYXIsXG4gIFNDU1NpZGViYXJCb2R5LFxuICBTQ1NTaWRlYmFyT3BlblBhbmVsLFxuICBTQ1NTaWRlYmFyQWdlbnRzQmxvY2ssXG4gIFNDU1NpZGViYXJBZ2VudHNBY3Rpb25zLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbixcbiAgU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbCxcbiAgU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldyxcbiAgU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nLFxuICBTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmdSb3csXG4gIFNDU1NpZGViYXJDaGF0c1Njcm9sbCxcbiAgU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4sXG4gIFNDU1NpZGViYXJFcnJvclN0YXRlVG9wLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXIsXG4gIFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlLFxuICBTQ1NTaWRlYmFyTG9hZGluZ0FyZWEsXG4gIFNDU1NpZGViYXJMb2FkTW9yZVJvdyxcbiAgU0NTU2lkZWJhckVtcHR5Q2hhdHMsXG4gIFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCxcbiAgU0NTU2lkZWJhckNoYXRzRm9vdGVyLFxuICBTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyxcbiAgU0NTU2lkZWJhckNvbGxhcHNlZERpdmlkZXIsXG59IGZyb20gJy4vU2lkZWJhci5sYXlvdXQuc3R5bGVzJ1xuaW1wb3J0IHtcbiAgY291bnRTaWRlYmFyQWdlbnROYXZCdXR0b25zLFxuICBpc0NoYXRMaXN0U2Nyb2xsZWRUb0JvdHRvbSxcbiAgaXNDaGF0VW5yZWFkSW5kaWNhdG9yLFxuICByZXNvbHZlQWdlbnRzSHViU2VjdGlvbixcbiAgcmVzb2x2ZVNob3dOZXdDaGF0QnV0dG9uLFxuICByZXNvbHZlU2lkZWJhckNoYXRBZ2VudExhYmVsLFxuICByZXNvbHZlVG9nZ2xlQ2hhdE1vZGFsSWQsXG4gIHNob3VsZENsb3NlTW9kYWxPbk91dHNpZGVDbGljayxcbiAgc2hvdWxkVXNlTWFpYUljb25Gb3JDaGF0QWdlbnQsXG59IGZyb20gJy4vU2lkZWJhci5oZWxwZXJzJ1xuXG5jb25zdCBhY3Rpb25zID0ge1xuICBlZGl0OiAocHJvcHM6IGFueSkgPT4gPEVkaXRRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG4gIGRlbGV0ZTogKHByb3BzOiBhbnkpID0+IDxEZWxldGVRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG59XG5cbmNvbnN0IExpc3RIaXN0b3J5Q2hhdCA9ICh7XG4gIGNoYXQsXG4gIG9uQ2xpY2ssXG4gIGlzTW9kYWxPcGVuLFxuICBvbk9wZW5Nb2RhbCxcbiAgb25DbG9zZU1vZGFsLFxuICBoYW5kbGVycyxcbiAgaXNTZWxlY3RlZCxcbiAgaW5kZXgsXG4gIHRvb2x0aXBaSW5kZXgsXG59OiB7XG4gIGNoYXQ6IGFueVxuICBvbkNsaWNrOiAoY2hhdDogYW55KSA9PiB2b2lkXG4gIGlzTW9kYWxPcGVuOiBib29sZWFuXG4gIG9uT3Blbk1vZGFsOiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25DbG9zZU1vZGFsOiAoKSA9PiB2b2lkXG4gIGhhbmRsZXJzOiB7XG4gICAgaGFuZGxlRGVsZXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICAgIGhhbmRsZVVwZGF0ZUNoYXQ6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgfVxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIGluZGV4OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleDogbnVtYmVyXG59KSA9PiB7XG4gIGNvbnN0IHRleHRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGFnZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBkaXNwbGF5VGl0bGUgPSB1c2VNZW1vKCgpID0+IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyhjaGF0LnRpdGxlKSwgW2NoYXQudGl0bGVdKVxuICBjb25zdCBkaXNwbGF5QWdlbnQgPSBnZXRBZ2VudERpc3BsYXlOYW1lKGNoYXQuYWdlbnRUeXBlLCBjaGF0LmFnZW50KVxuICBjb25zdCBjb250ZXh0TmFtZSA9IGNoYXQucHJvamVjdE5hbWUgfHwgY2hhdC5jbGllbnROYW1lXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXAgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRleHRSZWYsIFtkaXNwbGF5VGl0bGVdKVxuICBjb25zdCB7IHNob3dUb29sdGlwOiBzaG93VG9vbHRpcEFnZW50IH0gPSB1c2VSZXNpemVMaXN0ZW5lcihhZ2VudFJlZiwgW2NoYXQuYWdlbnRdKVxuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBbYWN0aW9uLCBzZXRBY3Rpb25dID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNHZW5lcmF0aW5nID0gdXNlSXNTZXNzaW9uR2VuZXJhdGluZyhjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICBjb25zdCBzZXNzaW9uTWV0YSA9IHVzZVNlc3Npb25NZXRhKGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gIGNvbnN0IGlzVW5yZWFkID0gaXNDaGF0VW5yZWFkSW5kaWNhdG9yKGNoYXQuaXNSZWFkLCBpc0dlbmVyYXRpbmcpXG4gIGNvbnN0IHNpZGViYXJBZ2VudExhYmVsID0gcmVzb2x2ZVNpZGViYXJDaGF0QWdlbnRMYWJlbCh7XG4gICAgYWdlbnRUeXBlOiBjaGF0LmFnZW50VHlwZSxcbiAgICBhZ2VudE5hbWU6IGNoYXQuYWdlbnQsXG4gICAgcHJvamVjdE5hbWU6IGNoYXQucHJvamVjdE5hbWUsXG4gIH0pXG5cbiAgY29uc3QgbWVudUl0ZW1zID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUucmVuYW1lJyksXG4gICAgICBvbkNsaWNrSXRlbTogKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldEFjdGlvbignZWRpdCcpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBQZW5jaWwsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RWRpdCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUuZGVsZXRlJyksXG4gICAgICBvbkNsaWNrSXRlbTogKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldEFjdGlvbignZGVsZXRlJylcbiAgICAgICAgb25PcGVuTW9kYWwoY2hhdElkKVxuICAgICAgfSxcbiAgICAgIEljb246IFRyYXNoLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudURlbGV0ZSxcbiAgICB9LFxuICBdXG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybUFjdGlvbiA9IChjaGF0RGF0YTogYW55KSA9PiB7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2VkaXQnKSB7XG4gICAgICBoYW5kbGVycy5oYW5kbGVVcGRhdGVDaGF0KGNoYXREYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVycy5oYW5kbGVEZWxldGVDaGF0KGNoYXREYXRhKVxuICAgIH1cbiAgICBzZXRBY3Rpb24obnVsbClcbiAgICBvbkNsb3NlTW9kYWwoKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFNDTEhDV3JhcHBlckNvbnRlbnRcbiAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIG9uQ2xpY2soY2hhdClcbiAgICAgICAgfX1cbiAgICAgICAga2V5PXtgY29udmVyc2F0aW9uLSR7Y2hhdC5zZXNzaW9uRXh0ZXJuYWxJZH1gfVxuICAgICAgICBpc01vZGFsT3Blbj17aXNNb2RhbE9wZW59XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICRpbmRleD17aW5kZXh9XG4gICAgICA+XG4gICAgICAgIDxTQ0xIQ1dyYXBwZXI+XG4gICAgICAgICAgPFNDTEhDV3JhcHBlclRpdGxlUm93PlxuICAgICAgICAgICAge2lzR2VuZXJhdGluZyB8fCBpc1VucmVhZCA/IChcbiAgICAgICAgICAgICAgPFNlc3Npb25HZW5lcmF0aW5nRG90XG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsPXtpc0dlbmVyYXRpbmcgPyB0KCdjb252ZXJzYXRpb25zLmdlbmVyYXRpbmcnKSA6IHQoJ2NvbnZlcnNhdGlvbnMudW5yZWFkTGFiZWwnKX1cbiAgICAgICAgICAgICAgICBpc1dyaXRpbmc9e2lzR2VuZXJhdGluZyAmJiBzZXNzaW9uTWV0YT8uaXNXcml0aW5nfVxuICAgICAgICAgICAgICAgIGFuaW1hdGVkPXtpc0dlbmVyYXRpbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcCA/IGRpc3BsYXlUaXRsZSA6ICcnfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICA8U0NMSENXcmFwcGVyVGl0bGUgcmVmPXt0ZXh0UmVmfSAkdW5yZWFkPXtpc1VucmVhZH0+XG4gICAgICAgICAgICAgICAge2Rpc3BsYXlUaXRsZSB8fCB0KCdjb252ZXJzYXRpb25zLmVtcHR5TGFiZWwnKX1cbiAgICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJUaXRsZT5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICA8L1NDTEhDV3JhcHBlclRpdGxlUm93PlxuICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICB0aXRsZT17c2hvd1Rvb2x0aXBBZ2VudCA/IGRpc3BsYXlBZ2VudCArIChjb250ZXh0TmFtZSA/IGAgLSAke2NvbnRleHROYW1lfWAgOiAnJykgOiAnJ31cbiAgICAgICAgICAgIHpJbmRleD17dG9vbHRpcFpJbmRleH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnQ+XG4gICAgICAgICAgICAgIHtzaG91bGRVc2VNYWlhSWNvbkZvckNoYXRBZ2VudChjaGF0LmFnZW50VHlwZSkgPyAoXG4gICAgICAgICAgICAgICAgPE1BSUFJY29uIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBmb250U2l6ZTogJzE0cHgnIH19PntjaGF0LmVtb2ppfTwvc3Bhbj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnRUZXh0IHJlZj17YWdlbnRSZWZ9PntzaWRlYmFyQWdlbnRMYWJlbH08L1NDTEhDV3JhcHBlckFnZW50VGV4dD5cbiAgICAgICAgICAgIDwvU0NMSENXcmFwcGVyQWdlbnQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L1NDTEhDV3JhcHBlcj5cbiAgICAgICAgPFNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnM+XG4gICAgICAgICAgPENVQnV0dG9uXG4gICAgICAgICAgICBpY29uT25seVxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgb25PcGVuTW9kYWwoY2hhdC5pZClcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPE1lbnVEb3RzIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgIHtpc01vZGFsT3BlbiAmJiAhYWN0aW9uICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgZGF0YS1tb2RhbC1jb250YWluZXJcbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICB0b3A6ICczMnB4JyxcbiAgICAgICAgICAgICAgICByaWdodDogJzE2cHgnLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3doaXRlJyxcbiAgICAgICAgICAgICAgICB6SW5kZXg6IDEwMDAsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMjI0LCAyMjQsIDIyNCwgMSknLFxuICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMTI0cHgnLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bWVudUl0ZW1zLm1hcCgoeyBsYWJlbCwgb25DbGlja0l0ZW0sIEljb24sIGV2ZW50S2V5IH0pID0+IChcbiAgICAgICAgICAgICAgICA8T3B0aW9uSXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xpY2tJdGVtKGNoYXQuaWQpfVxuICAgICAgICAgICAgICAgICAgSWNvbj17SWNvbn1cbiAgICAgICAgICAgICAgICAgIGV2ZW50S2V5PXtldmVudEtleX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucz5cbiAgICAgIDwvU0NMSENXcmFwcGVyQ29udGVudD5cbiAgICAgIHshIWFjdGlvbiAmJlxuICAgICAgICBhY3Rpb25zW2FjdGlvbl0oe1xuICAgICAgICAgIG9uQ2xvc2U6ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2VNb2RhbCgpXG4gICAgICAgICAgICBzZXRBY3Rpb24obnVsbClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoYXQsXG4gICAgICAgICAgaGFuZGxlcnM6IHtcbiAgICAgICAgICAgIGhhbmRsZUNvbmZpcm1BY3Rpb24sXG4gICAgICAgICAgICBoYW5kbGVTZXRJc09wZW5Nb2RhbDogb25DbG9zZU1vZGFsLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCBTaWRlYmFyID0gKHtcbiAgb25Hb1RvQ2hhdCxcbiAgb25FcnJvciA9ICgpID0+IG51bGwsXG4gIGhhbmRsZUdvVG9Ib21lLFxuICBoYW5kbGVTdGFydE5ld0NoYXQsXG4gIGhhbmRsZU9wZW5NYXJrZXRwbGFjZSxcbiAgaGFuZGxlT3BlblNraWxscyxcbiAgb25PcGVuTWFpYWtlckNyZWF0b3IsXG4gIHNob3dOZXdDaGF0LFxuICByZWZldGNoQ2hhdHMsXG4gIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyxcbiAgaGFzRXJyb3IsXG4gIGFnZW50c05hdkFjdGl2ZSA9IG51bGwsXG4gIGlzTGVnYWN5Q29udGV4dFNlc3Npb24gPSBmYWxzZSxcbiAgaW5pdGlhbE9wZW4gPSBmYWxzZSxcbiAgb25PcGVuQ2hhbmdlLFxufToge1xuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25FcnJvcjogKCkgPT4gdm9pZFxuICBoYW5kbGVHb1RvSG9tZTogKCkgPT4gdm9pZFxuICAvKiogSW5pY2lhIHVuIGNoYXQgbnVldm87IGVuIE1pcyBhZ2VudGVzIC8gTWFpYWtlciAvIE1pcyBza2lsbHMgdXNhIGVsIHByaW1lciBhZ2VudGUgZGUgbGEgbGlzdGEuICovXG4gIGhhbmRsZVN0YXJ0TmV3Q2hhdD86ICgpID0+IHZvaWRcbiAgaGFuZGxlT3Blbk1hcmtldHBsYWNlOiAoKSA9PiB2b2lkXG4gIGhhbmRsZU9wZW5Ta2lsbHM6ICgpID0+IHZvaWRcbiAgLyoqIEFicmUgZWwgY3JlYWRvciBNYWlha2VyIChtaXNtYSBsw7NnaWNhIHF1ZSBlbCBodWIgZGVsIG1vZGFsKS4gKi9cbiAgb25PcGVuTWFpYWtlckNyZWF0b3I/OiAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPlxuICBzaG93TmV3Q2hhdDogYm9vbGVhblxuICByZWZldGNoQ2hhdHM6IGJvb2xlYW5cbiAgaGFuZGxlU2V0UmVmZXRjaENoYXRzOiAocmVmZXRjaDogYm9vbGVhbikgPT4gdm9pZFxuICBoYXNFcnJvcjogYm9vbGVhblxuICAvKiogUmVzYWx0YSBNYWlha2VyLCBNaXMgYWdlbnRlcyBvIE1pcyBza2lsbHMgKi9cbiAgYWdlbnRzTmF2QWN0aXZlPzogJ21haWFrZXInIHwgJ215QWdlbnRzJyB8ICdteVNraWxscycgfCBudWxsXG4gIC8qKiBDb252ZXJzYWNpw7NuIGRlIHVuIGNsb25lIGxlZ2FjeSAoYWdlbnRfdHlwZSBjbG9uZSArIGVudGl0eSBwcm9qZWN0L2NsaWVudC90YXNrKTogb2N1bHRhIFwibnVldm8gY2hhdFwiLiAqL1xuICBpc0xlZ2FjeUNvbnRleHRTZXNzaW9uPzogYm9vbGVhblxuICAvKiogRXN0YWRvIGluaWNpYWwgZGVsIHNpZGViYXIgKHJlc3RhdXJhY2nDs24gZGUgc2VzacOzbiB0cmFzIG5hdmVnYWNpw7NuKS4gKi9cbiAgaW5pdGlhbE9wZW4/OiBib29sZWFuXG4gIG9uT3BlbkNoYW5nZT86IChvcGVuOiBib29sZWFuKSA9PiB2b2lkXG59KSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IHRvb2x0aXBaSW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDE1MDAsICdvdmVybGF5JylcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGluaXRpYWxPcGVuKVxuICBjb25zdCBbaXNPcGVuTW9kYWwsIHNldElzT3Blbk1vZGFsXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGFjdGl2ZUNoYXRJZCA9IHVzZUNoYXRzU3RvcmUoc3RhdGUgPT4gc3RhdGUuYWN0aXZlQ2hhdElkKVxuICBjb25zdCBjaGF0c0ZldGNoZWRGb3JVc2VyUmVmID0gdXNlUmVmPHN0cmluZyB8IG51bWJlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHByZXZBZ2VudElkUmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcmVzZXRDaGF0c1N0b3JlID0gdXNlQ2hhdHNTdG9yZShzdGF0ZSA9PiBzdGF0ZS5yZXNldClcbiAgY29uc3QgY2hhdHNDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2sgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7XG4gICAgbG9hZGluZ0NoYXRzLFxuICAgIGNoYXRzLFxuICAgIGRlbGV0ZUNoYXQsXG4gICAgdXBkYXRlQ2hhdCxcbiAgICBmZXRjaENoYXRzLFxuICAgIGxpbWl0LFxuICAgIGhhc01vcmVDaGF0cyxcbiAgICBsb2FkTW9yZUNoYXRzLFxuICAgIGlzTG9hZGluZ01vcmVDaGF0cyxcbiAgICBzZXRVbnJlYWRDb3VudCxcbiAgICBzZXRDaGF0UmVhZFN0YXRlLFxuICB9ID0gdXNlQ2hhdHMoe1xuICAgIG9uRXJyb3IsXG4gIH0pXG5cbiAgY29uc3QgdW5yZWFkU3Vic2NyaWJlZFJlZiA9IHVzZVJlZihmYWxzZSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdXNlcj8uaWQgfHwgdHlwZW9mICRfc2MgPT09ICd1bmRlZmluZWQnIHx8ICEkX3NjKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBjaGFubmVsID0gYHNlc3Npb25zLnVucmVhZDoke3VzZXIuaWR9YFxuICAgIGNvbnN0IGhhbmRsZVVucmVhZEV2ZW50ID0gKHtcbiAgICAgIG1vZGVsX2RhdGE6IG1vZGVsRGF0YSxcbiAgICB9OiB7XG4gICAgICBtb2RlbF9kYXRhPzogeyB1bnJlYWRfY291bnQ/OiBudW1iZXI7IHNlc3Npb25faWQ/OiBzdHJpbmc7IGlzX3JlYWQ/OiBib29sZWFuIH1cbiAgICB9KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG1vZGVsRGF0YT8udW5yZWFkX2NvdW50ID09PSAnbnVtYmVyJykge1xuICAgICAgICBzZXRVbnJlYWRDb3VudChtb2RlbERhdGEudW5yZWFkX2NvdW50KVxuICAgICAgfVxuICAgICAgaWYgKG1vZGVsRGF0YT8uc2Vzc2lvbl9pZCAmJiB0eXBlb2YgbW9kZWxEYXRhPy5pc19yZWFkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgc2V0Q2hhdFJlYWRTdGF0ZShtb2RlbERhdGEuc2Vzc2lvbl9pZCwgbW9kZWxEYXRhLmlzX3JlYWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgJF9zYy5zdWJzY3JpYmVIYW5kbGVyKGNoYW5uZWwsIGhhbmRsZVVucmVhZEV2ZW50KVxuXG4gICAgaWYgKCF1bnJlYWRTdWJzY3JpYmVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICRfc2MudXBkYXRlQ29ubmVjdGlvbk1vZGVsKFxuICAgICAgICB7XG4gICAgICAgICAgbW9kZWxfaGFzaDogY2hhbm5lbCxcbiAgICAgICAgICBhY3Rpb246ICRfc2MuYWN0aW9uVHlwZT8uU1VCU0NSSUJFLFxuICAgICAgICB9LFxuICAgICAgICBjaGFubmVsLFxuICAgICAgICB1c2VyLFxuICAgICAgICB1c2VyLFxuICAgICAgICAkX3NjLmNoYW5uZWxUeXBlPy5NT0RFTF9DSEFOTkVMXG4gICAgICApXG4gICAgICB1bnJlYWRTdWJzY3JpYmVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbdXNlciwgc2V0VW5yZWFkQ291bnQsIHNldENoYXRSZWFkU3RhdGVdKVxuXG4gIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHNcbiAgY29uc3QgY2FuQ3JlYXRlQWdlbnRzID0gISF1c2VyUGVybWlzc2lvbnM/LmNyZWF0ZVxuICBjb25zdCBoYXNNdWx0aUFnZW50c0ZlYXR1cmVBY2Nlc3MgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG4gIGNvbnN0IGNhblZpZXdBZ2VudHMgPSAhIXVzZXJQZXJtaXNzaW9ucz8udmlldyAmJiBoYXNNdWx0aUFnZW50c0ZlYXR1cmVBY2Nlc3NcbiAgY29uc3QgY2FuVmlld1NraWxscyA9IGNhbkFjY2Vzc1RvU2tpbGxzKHVzZXIpICYmIGlzU2tpbGxzUGlsb3RDb21wYW55KHVzZXI/LmNvbXBhbnlfaWQpXG4gIGNvbnN0IHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPSAhIWNhbkNyZWF0ZUFnZW50cyAmJiBoYXNNdWx0aUFnZW50c0ZlYXR1cmVBY2Nlc3NcbiAgY29uc3QgYWdlbnROYXZCdXR0b25Db3VudCA9IGNvdW50U2lkZWJhckFnZW50TmF2QnV0dG9ucyhzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uLCBjYW5WaWV3QWdlbnRzLCBjYW5WaWV3U2tpbGxzKVxuICBjb25zdCBzaG93QWdlbnRzTmF2QmxvY2sgPSBzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uIHx8IGNhblZpZXdBZ2VudHMgfHwgY2FuVmlld1NraWxsc1xuICBjb25zdCBteUFnZW50c1NpZGViYXJUcmFja2VkUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjYW5WaWV3QWdlbnRzIHx8IG15QWdlbnRzU2lkZWJhclRyYWNrZWRSZWYuY3VycmVudCkgcmV0dXJuXG5cbiAgICBteUFnZW50c1NpZGViYXJUcmFja2VkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgdHJhY2tBcHBjdWVzRXZlbnQoQVBQQ1VFU19FVkVOVFMubWFpYVNpZGViYXJNeUFnZW50cylcbiAgfSwgW2NhblZpZXdBZ2VudHNdKVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUNoYXQgPSBhc3luYyAoY2hhdDogYW55KSA9PiB7XG4gICAgZGVsZXRlQ2hhdChjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgaGFuZGxlR29Ub0hvbWUoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlVXBkYXRlQ2hhdCA9IChjaGF0OiBhbnkpID0+IHtcbiAgICB1cGRhdGVDaGF0KGNoYXQpXG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5Nb2RhbCA9IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgIHNldElzT3Blbk1vZGFsKHJlc29sdmVUb2dnbGVDaGF0TW9kYWxJZChpc09wZW5Nb2RhbCwgY2hhdElkKSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoc2hvdWxkQ2xvc2VNb2RhbE9uT3V0c2lkZUNsaWNrKGlzT3Blbk1vZGFsLCBldmVudC50YXJnZXQgYXMgRWxlbWVudCkpIHtcbiAgICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cbiAgfSwgW2lzT3Blbk1vZGFsXSlcblxuICBjb25zdCBoYW5kbGVUb2dnbGVTaWRlYmFyID0gKCkgPT4ge1xuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFNpZGViYXIsIHsgYWN0aW9uOiBpc09wZW4gPyAnY2xvc2UnIDogJ29wZW4nIH0pXG4gICAgc2V0SXNPcGVuKHByZXYgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9ICFwcmV2XG4gICAgICBvbk9wZW5DaGFuZ2U/LihuZXh0KVxuICAgICAgcmV0dXJuIG5leHRcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3BlbkNyZWF0ZUFnZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChvbk9wZW5NYWlha2VyQ3JlYXRvcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgb25PcGVuTWFpYWtlckNyZWF0b3IoKVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIG9uRXJyb3IoKVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgcGF0aDogYGFnZW50cz9hZ2VudF90eXBlPWNsb25lJmVudGl0eT1nbG9iYWwmbGFuZz0ke21hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSl9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICBjb25zdCBtYWlha2VyQWdlbnQgPSAoZGF0YS5kYXRhIHx8IFtdKS5maW5kKChhZ2VudEl0ZW06IHsgdHlwZT86IHN0cmluZzsgZW50aXR5Pzogc3RyaW5nOyBuYW1lPzogc3RyaW5nIH0pID0+XG4gICAgICAgIGlzTWFya2V0cGxhY2VHbG9iYWxDbG9uZUFnZW50KGFnZW50SXRlbSlcbiAgICAgIClcblxuICAgICAgaWYgKCFtYWlha2VyQWdlbnQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRUYXNrKG51bGwpXG4gICAgICAvLyBoYW5kbGVHb1RvSG9tZSBwdWVkZSByZXNlbGVjY2lvbmFyIGFnZW50cy5kYXRhWzBdIHNpIGVsIGFnZW50ZSBnbG9iYWwgYXVuIGVzdGEgZW4gbnVsbFxuICAgICAgLy8gKGNsb3N1cmUgc3RhbGUgZGUgbGEgc2VjY2lvbiBcIk1pcyBhZ2VudGVzXCIpLCBwb3IgZXNvIHNlbGVjdEFnZW50KG1haWFrZXJBZ2VudCkgdmEgZGVzcHVlcy5cbiAgICAgIGhhbmRsZUdvVG9Ib21lKClcbiAgICAgIHNlbGVjdEFnZW50KG1haWFrZXJBZ2VudClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25FcnJvcigpXG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXVzZXI/LmlkKSByZXR1cm5cblxuICAgIGNvbnN0IHVzZXJJZCA9IHVzZXIuaWRcbiAgICBjb25zdCB1c2VyQ2hhbmdlZCA9IGNoYXRzRmV0Y2hlZEZvclVzZXJSZWYuY3VycmVudCAhPSBudWxsICYmIGNoYXRzRmV0Y2hlZEZvclVzZXJSZWYuY3VycmVudCAhPT0gdXNlcklkXG4gICAgY29uc3QgYWdlbnRJZCA9IHNlbGVjdGVkQWdlbnQ/LmlkID8/IG51bGxcbiAgICBjb25zdCBhZ2VudEp1c3RCZWNhbWVBdmFpbGFibGUgPSBwcmV2QWdlbnRJZFJlZi5jdXJyZW50ID09PSBudWxsICYmIGFnZW50SWQgIT0gbnVsbFxuICAgIHByZXZBZ2VudElkUmVmLmN1cnJlbnQgPSBhZ2VudElkXG5cbiAgICBpZiAodXNlckNoYW5nZWQpIHtcbiAgICAgIHJlc2V0Q2hhdHNTdG9yZSgpXG4gICAgfVxuXG4gICAgY29uc3Qgc2hvdWxkRmV0Y2ggPSBjaGF0c0ZldGNoZWRGb3JVc2VyUmVmLmN1cnJlbnQgIT09IHVzZXJJZCB8fCByZWZldGNoQ2hhdHMgfHwgYWdlbnRKdXN0QmVjYW1lQXZhaWxhYmxlXG5cbiAgICBpZiAoIXNob3VsZEZldGNoKSByZXR1cm5cblxuICAgIGNoYXRzRmV0Y2hlZEZvclVzZXJSZWYuY3VycmVudCA9IHVzZXJJZFxuICAgIC8vIEluaXRpYWwvcmVmcmVzaCBhbHdheXMgc3RhcnRzIGF0IHBhZ2UgMSAobmV2ZXIgcmV1c2UgbG9hZE1vcmUgb2Zmc2V0KS5cbiAgICBmZXRjaENoYXRzKHsgbGltaXQsIG9mZnNldDogMCB9KVxuICAgIGlmIChyZWZldGNoQ2hhdHMpIHtcbiAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyhmYWxzZSlcbiAgICB9XG4gIH0sIFt1c2VyPy5pZCwgc2VsZWN0ZWRBZ2VudD8uaWQsIHJlZmV0Y2hDaGF0cywgaGFuZGxlU2V0UmVmZXRjaENoYXRzLCBmZXRjaENoYXRzLCBsaW1pdCwgcmVzZXRDaGF0c1N0b3JlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGlmICghY2hhdHNDb250YWluZXJSZWYuY3VycmVudCB8fCAhaGFzTW9yZUNoYXRzIHx8IGlzTG9hZGluZ01vcmVDaGF0cyB8fCBoYXNFcnJvcikge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgICBpZiAoaXNDaGF0TGlzdFNjcm9sbGVkVG9Cb3R0b20oc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCkpIHtcbiAgICAgICAgbG9hZE1vcmVDaGF0cygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY2hhdHNDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtoYXNNb3JlQ2hhdHMsIGlzTG9hZGluZ01vcmVDaGF0cywgbG9hZE1vcmVDaGF0cywgaGFzRXJyb3JdKVxuXG4gIGNvbnN0IGhhbmRsZU5ld0NoYXQgPSAoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpU2lkZWJhck5ld0NoYXQpXG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIH1cbiAgICBpZiAoaGFuZGxlU3RhcnROZXdDaGF0KSB7XG4gICAgICBoYW5kbGVTdGFydE5ld0NoYXQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGhhbmRsZUdvVG9Ib21lKClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gQWwgY3JlYXIvYWN0dWFsaXphciB1bmEgY29udmVyc2FjacOzbiByZWZyZXNjYW1vcyBsYSBsaXN0YSBhdW5xdWUgZWwgc2lkZWJhciBlc3TDqSBjb2xhcHNhZG8uXG4gICAgY29uc3QgaGFuZGxlUmVmZXRjaFNlc3Npb24gPSAoKSA9PiB7XG4gICAgICBpZiAodXNlcj8uaWQpIHtcbiAgICAgICAgY2hhdHNGZXRjaGVkRm9yVXNlclJlZi5jdXJyZW50ID0gdXNlci5pZFxuICAgICAgfVxuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0OiAyMCwgb2Zmc2V0OiAwLCBiYWNrZ3JvdW5kOiB0cnVlIH0pXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdyZWZldGNoLXNlc3Npb24nLCBoYW5kbGVSZWZldGNoU2Vzc2lvbilcbiAgICB9XG4gIH0sIFtmZXRjaENoYXRzLCB1c2VyPy5pZF0pXG5cbiAgY29uc3QgaXNBZ2VudHNIdWJTZWN0aW9uID0gcmVzb2x2ZUFnZW50c0h1YlNlY3Rpb24oc2hvd05ld0NoYXQsIGFnZW50c05hdkFjdGl2ZSlcblxuICBjb25zdCBzaG93TmV3Q2hhdEJ1dHRvbiA9IHJlc29sdmVTaG93TmV3Q2hhdEJ1dHRvbih7XG4gICAgaXNBZ2VudHNIdWJTZWN0aW9uLFxuICAgIHNob3dOZXdDaGF0LFxuICAgIGhhc0Vycm9yLFxuICAgIGxvYWRpbmdDaGF0cyxcbiAgICBpc0xlZ2FjeUNvbnRleHRTZXNzaW9uLFxuICAgIHVzZXJDYW5WaWV3QWdlbnRzOiBCb29sZWFuKHVzZXJQZXJtaXNzaW9ucz8udmlldyksXG4gICAgc2VsZWN0ZWRBZ2VudCxcbiAgfSlcblxuICByZXR1cm4gKFxuICAgIDxTQ1NTaWRlYmFyUm9vdCAkaXNPcGVuPXtpc09wZW59PlxuICAgICAgPFNDU1NpZGViYXJUb29sYmFyICRpc09wZW49e2lzT3Blbn0+XG4gICAgICAgIDxUb29sdGlwIHRpdGxlPXtpc09wZW4gPyB0KCdjb252ZXJzYXRpb25zLmNvbGxhcHNlJykgOiB0KCdoaXN0b3J5LnRvb2x0aXAnKX0gekluZGV4PXt0b29sdGlwWkluZGV4fT5cbiAgICAgICAgICA8U0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVUb2dnbGVTaWRlYmFyfSBpc09wZW49e2lzT3Blbn0+XG4gICAgICAgICAgICB7aXNPcGVuID8gKFxuICAgICAgICAgICAgICA8Q2hldnJvbkRvdWJsZUxlZnQgY29sb3I9XCJyZ2JhKDEwMiwgMTAyLCAxMDIsIDEpXCIgd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEhpc3RvcnkgY29sb3I9XCJyZ2JhKDEzLCAxMywgMTMsIDEpXCIgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3Nob3dOZXdDaGF0QnV0dG9uID8gKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm5ld0NoYXQnKX0gekluZGV4PXt0b29sdGlwWkluZGV4fT5cbiAgICAgICAgICAgIDxTQ1NXcmFwcGVyTmV3Q2hhdEljb24gb25DbGljaz17aGFuZGxlTmV3Q2hhdH0gYXJpYS1sYWJlbD17dCgnY29udmVyc2F0aW9ucy5uZXdDaGF0Jyl9PlxuICAgICAgICAgICAgICA8TmV3Q2hhdCB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+XG4gICAgICAgICAgICA8L1NDU1dyYXBwZXJOZXdDaGF0SWNvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7IWlzT3BlbiAmJiBzaG93QWdlbnRzTmF2QmxvY2sgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29sbGFwc2VkRGl2aWRlciAvPlxuICAgICAgICAgICAge3Nob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm1haWFrZXJOYXYnKX0gekluZGV4PXt0b29sdGlwWkluZGV4fT5cbiAgICAgICAgICAgICAgICA8U0NTV3JhcHBlckFnZW50c05hdkljb25cbiAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ21haWFrZXInfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0TXBPcGVuKVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ3JlYXRlQWdlbnQoKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8TWFpYVN0b3JlSWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1dyYXBwZXJBZ2VudHNOYXZJY29uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjYW5WaWV3QWdlbnRzID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnY29udmVyc2F0aW9ucy5teUFnZW50c05hdicpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgIDxTQ1NXcmFwcGVyQWdlbnRzTmF2SWNvblxuICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbXlBZ2VudHMnfVxuICAgICAgICAgICAgICAgICAgZGF0YS1hcHBjdWVzPXtBUFBDVUVTX1NFTEVDVE9SUy5tYWlhU2lkZWJhck15QWdlbnRzfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlTaWRlYmFyTXlBZ2VudHMpXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5NYXJrZXRwbGFjZSgpXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxNeUFnZW50c05hdkljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgPC9TQ1NXcmFwcGVyQWdlbnRzTmF2SWNvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2FuVmlld1NraWxscyA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NvbnZlcnNhdGlvbnMubXlTa2lsbHNOYXYnKX0gekluZGV4PXt0b29sdGlwWkluZGV4fT5cbiAgICAgICAgICAgICAgICA8U0NTV3JhcHBlckFnZW50c05hdkljb25cbiAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ215U2tpbGxzJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpU2lkZWJhck15U2tpbGxzKVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVPcGVuU2tpbGxzKClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNraWxsc05hdkljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgPC9TQ1NXcmFwcGVyQWdlbnRzTmF2SWNvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ1NTaWRlYmFyVG9vbGJhcj5cbiAgICAgIDxTQ1NTaWRlYmFyQm9keSAkaXNPcGVuPXtpc09wZW59PlxuICAgICAgICB7aXNPcGVuID8gKFxuICAgICAgICAgIDxTQ1NTaWRlYmFyT3BlblBhbmVsPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJBZ2VudHNCbG9jaz5cbiAgICAgICAgICAgICAge3Nob3dBZ2VudHNOYXZCbG9jayA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckFnZW50c0FjdGlvbnM+XG4gICAgICAgICAgICAgICAgICB7c2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdE1wT3BlbilcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DcmVhdGVBZ2VudCgpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdtYWlha2VyJ31cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxNYWlhU3RvcmVJY29uIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm1haWFrZXJOYXYnKX08L1NDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtjYW5WaWV3QWdlbnRzID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhLWFwcGN1ZXM9e0FQUENVRVNfU0VMRUNUT1JTLm1haWFTaWRlYmFyTXlBZ2VudHN9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpU2lkZWJhck15QWdlbnRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlKClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ215QWdlbnRzJ31cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxNeUFnZW50c05hdkljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubXlBZ2VudHNOYXYnKX08L1NDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtjYW5WaWV3U2tpbGxzID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlTaWRlYmFyTXlTa2lsbHMpXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVPcGVuU2tpbGxzKClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ215U2tpbGxzJ31cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTa2lsbHNOYXZJY29uIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm15U2tpbGxzTmF2Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJhZGdlTmV3Pnt0KCdob21lTWVudS5tYWlha2VyLmJhZGdlTmV3Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJhZGdlTmV3PlxuICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmdSb3c+XG4gICAgICAgICAgICAgICAgPFNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZz57dCgnY29udmVyc2F0aW9ucy50aXRsZScpfTwvU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nPlxuICAgICAgICAgICAgICA8L1NDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZ1Jvdz5cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c1Njcm9sbFxuICAgICAgICAgICAgICByZWY9e2NoYXRzQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAkaGFzQ2hhdHM9e2NoYXRzLmxlbmd0aCA+IDB9XG4gICAgICAgICAgICAgICRvZmZzZXRWYXJpYW50PXtoYXNFcnJvciA/ICdlcnJvcicgOiAnZGVmYXVsdCd9XG4gICAgICAgICAgICAgICRhZ2VudE5hdkJ1dHRvbkNvdW50PXthZ2VudE5hdkJ1dHRvbkNvdW50fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aGFzRXJyb3IgJiYgIWNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVUb3A+XG4gICAgICAgICAgICAgICAgICAgIDxFcnJvclN0YXRlIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlVG9wPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICAgIDxFcnJvckljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICApIDogbG9hZGluZ0NoYXRzID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTG9hZGluZ0FyZWE+XG4gICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJMb2FkaW5nQXJlYT5cbiAgICAgICAgICAgICAgKSA6IGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2NoYXRzLm1hcCgoY2hhdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8TGlzdEhpc3RvcnlDaGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGF0PXtjaGF0fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2hhdERhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uR29Ub0NoYXQoY2hhdERhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgaXNNb2RhbE9wZW49e2lzT3Blbk1vZGFsID09PSBjaGF0LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25PcGVuTW9kYWw9e2hhbmRsZU9wZW5Nb2RhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvc2VNb2RhbD17aGFuZGxlQ2xvc2VNb2RhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZURlbGV0ZUNoYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVVwZGF0ZUNoYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17YWN0aXZlQ2hhdElkID09PSBjaGF0LnNlc3Npb25FeHRlcm5hbElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFpJbmRleD17dG9vbHRpcFpJbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdNb3JlQ2hhdHMgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckxvYWRNb3JlUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTaWRlYmFyQ2hhdHNTa2VsZXRvbiBjb3VudD17Mn0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTG9hZE1vcmVSb3c+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRW1wdHlDaGF0cz5cbiAgICAgICAgICAgICAgICAgIDxFbXB0eUhpc3RvcnlJY29uIC8+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0Pnt0KCdjb252ZXJzYXRpb25zLmVtcHR5Jyl9PC9TQ1NTaWRlYmFyRW1wdHlDaGF0c1RleHQ+XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRW1wdHlDaGF0cz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckNoYXRzU2Nyb2xsPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c0Zvb3Rlcj5cbiAgICAgICAgICAgICAge2hhc0Vycm9yICYmIGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JJY29uIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXI+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQ2hhdHNGb290ZXI+XG4gICAgICAgICAgPC9TQ1NTaWRlYmFyT3BlblBhbmVsPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPFNDU1NpZGViYXJGb290ZXJBY3Rpb25zICRpc09wZW49e2lzT3Blbn0gJGp1c3RpZnlCZXR3ZWVuPXshIXNlbGVjdGVkQWdlbnR9PlxuICAgICAgICAgIHtzZWxlY3RlZEFnZW50ID8gPEZlZWRiYWNrQnV0dG9uIHNlbGVjdGVkQWdlbnQ9e3NlbGVjdGVkQWdlbnR9IGlzT3Blbj17aXNPcGVufSAvPiA6IG51bGx9XG4gICAgICAgIDwvU0NTU2lkZWJhckZvb3RlckFjdGlvbnM+XG4gICAgICA8L1NDU1NpZGViYXJCb2R5PlxuICAgIDwvU0NTU2lkZWJhclJvb3Q+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEs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
|
|
@@ -10,7 +10,9 @@ import { GlobalContext } from '../../../context/global-context';
|
|
|
10
10
|
import { Features } from '../../atoms/WithFeatureValidation';
|
|
11
11
|
import { withAppCfg } from '../../atoms/WithAppCfg';
|
|
12
12
|
import { acquireChatsStore, releaseChatsStore } from '../../../store';
|
|
13
|
+
import { getChatsStoreState } from '../../../store/useChatsStore';
|
|
13
14
|
import { readMaiaPanelSession } from '../../../store/maiaPanelSessionPersistence';
|
|
15
|
+
import { isMaiaPageActive } from '../../../utils/maiaPageRoute';
|
|
14
16
|
import { ensureSessionNotificationsInitialized } from '../../../store/sessions/sessionNotifications';
|
|
15
17
|
import { useUser } from '../../../context/cor-user';
|
|
16
18
|
import { MAIA_OPEN_FROM_HOST_EVENT } from '../../../utils/maiaHostOpen';
|
|
@@ -108,7 +110,18 @@ export var ChatAI = withAppCfg(function (_ref) {
|
|
|
108
110
|
}),
|
|
109
111
|
context = _useProjectSummaryCon.context;
|
|
110
112
|
var deepLinkSendPendingRef = useRef(false);
|
|
113
|
+
var prevUserIdRef = useRef(user.id);
|
|
111
114
|
useEffect(function () {
|
|
115
|
+
if (prevUserIdRef.current !== user.id) {
|
|
116
|
+
prevUserIdRef.current = user.id;
|
|
117
|
+
getChatsStoreState().reset();
|
|
118
|
+
}
|
|
119
|
+
}, [user.id]);
|
|
120
|
+
useEffect(function () {
|
|
121
|
+
// On /maia the page instance owns chats; header ChatAI stays mounted (CSS-hidden).
|
|
122
|
+
if (isMaiaPageActive() && initialSection === 'header') {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
112
125
|
acquireChatsStore();
|
|
113
126
|
ensureSessionNotificationsInitialized();
|
|
114
127
|
return function () {
|
|
@@ -177,4 +190,4 @@ export var ChatAI = withAppCfg(function (_ref) {
|
|
|
177
190
|
children: /*#__PURE__*/_jsx(ChatAIModal, {})
|
|
178
191
|
});
|
|
179
192
|
}, Features.CHAT_AI);
|
|
180
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZU1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VDYWxsYmFjayIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiQ2hhdEFJTW9kYWwiLCJHbG9iYWxDb250ZXh0IiwiRmVhdHVyZXMiLCJ3aXRoQXBwQ2ZnIiwiYWNxdWlyZUNoYXRzU3RvcmUiLCJyZWxlYXNlQ2hhdHNTdG9yZSIsInJlYWRNYWlhUGFuZWxTZXNzaW9uIiwiZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCIsInVzZVVzZXIiLCJNQUlBX09QRU5fRlJPTV9IT1NUX0VWRU5UIiwianN4IiwiX2pzeCIsIm5vcm1hbGl6ZUJhbm5lckVudHJ5RmFxIiwiZmFxIiwiX2ZhcSRmYXFJZCIsIl9mYXEkZmFxVGl0bGUiLCJpZCIsImZhcUlkIiwidHJpbSIsInRpdGxlIiwiZmFxVGl0bGUiLCJjb250ZXh0RGF0YSIsIl90eXBlb2YiLCJ1bmRlZmluZWQiLCJfb2JqZWN0U3ByZWFkIiwiQ2hhdEFJIiwiX3JlZiIsIl9zYXZlZEhvc3RDb250ZXh0JHBybyIsImluaXRpYWxFbnRpdHkiLCJlbnRpdHkiLCJpbml0aWFsUHJvamVjdCIsInByb2plY3QiLCJpbml0aWFsQ2xpZW50IiwiY2xpZW50IiwiaW5pdGlhbFRhc2siLCJ0YXNrIiwiX3JlZiRoYXNNdWx0aUFnZW50cyIsImhhc011bHRpQWdlbnRzIiwiX3JlZiRzZWN0aW9uIiwic2VjdGlvbiIsImluaXRpYWxTZWN0aW9uIiwiX3JlZiRmYXEiLCJpbml0aWFsRmFxUHJvcCIsIl9yZWYkaW5pdGlhbERyYWZ0IiwiaW5pdGlhbERyYWZ0IiwiaW5pdGlhbERyYWZ0UHJvcCIsIl9yZWYkbWluaW1pemVkUGlsbEF2byIsIm1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMiLCJpbml0aWFsTWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyIsInVzZXIiLCJzYXZlZFNlc3Npb25Pbk1vdW50Iiwic2F2ZWRIb3N0Q29udGV4dCIsImlzRXhwYW5kZWQiLCJob3N0Q29udGV4dCIsIl91c2VTdGF0ZSIsIl9zYXZlZEhvc3RDb250ZXh0JHNlYyIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImhvc3RTZWN0aW9uIiwic2V0SG9zdFNlY3Rpb24iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImhvc3RFbnRpdHkiLCJzZXRIb3N0RW50aXR5IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJob3N0RmFxUHJvcCIsInNldEhvc3RGYXFQcm9wIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJob3N0SW5pdGlhbERyYWZ0UHJvcCIsInNldEhvc3RJbml0aWFsRHJhZnRQcm9wIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJob3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyIsInNldEhvc3RNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzIiwiX3VzZVN0YXRlMSIsIl9yZWYyIiwiX3NhdmVkSG9zdENvbnRleHQkY2xpIiwiX3VzZVN0YXRlMTAiLCJob3N0Q2xpZW50Iiwic2V0SG9zdENsaWVudCIsIl91c2VTdGF0ZTExIiwiX3JlZjMiLCJfc2F2ZWRIb3N0Q29udGV4dCR0YXMiLCJfdXNlU3RhdGUxMiIsImhvc3RUYXNrIiwic2V0SG9zdFRhc2siLCJpbml0aWFsUHJvamVjdFZhbHVlIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInNldFByb2plY3QiLCJfdXNlUHJvamVjdFN1bW1hcnlDb24iLCJjb250ZXh0IiwiZGVlcExpbmtTZW5kUGVuZGluZ1JlZiIsImN1cnJlbnQiLCJjb21wYW55X2lkIiwiYXBwbHlIb3N0T3BlbkRldGFpbCIsImRldGFpbCIsIl9kZXRhaWwkZmFxIiwiX2RldGFpbCRpbml0aWFsRHJhZnQiLCJfZGV0YWlsJHByb2plY3QiLCJfZGV0YWlsJGNsaWVudCIsIl9kZXRhaWwkdGFzayIsIm9uT3BlbkZyb21Ib3N0IiwiZXZlbnQiLCJfcmVmNCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJiYW5uZXJFbnRyeUZhcSIsImRyYWZ0IiwicHJvdmlkZXJWYWx1ZSIsIlByb3ZpZGVyIiwidmFsdWUiLCJjaGlsZHJlbiIsIkNIQVRfQUkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvQ2hhdEFJL0NoYXRBSS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlUHJvamVjdFN1bW1hcnlDb25maWcgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VQcm9qZWN0U3VtbWFyeUNvbmZpZydcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9Qcm9qZWN0J1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2xpZW50J1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL1Rhc2snXG5pbXBvcnQgeyBDaGF0QUlNb2RhbCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0QUlNb2RhbCdcbmltcG9ydCB7IEdsb2JhbENvbnRleHQsIHR5cGUgQmFubmVyRW50cnlGYXEsIHR5cGUgTWluaW1pemVkUGlsbEF2b2lkQW5jaG9yIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IEZlYXR1cmVzIH0gZnJvbSAnLi4vLi4vYXRvbXMvV2l0aEZlYXR1cmVWYWxpZGF0aW9uJ1xuaW1wb3J0IHsgd2l0aEFwcENmZyB9IGZyb20gJy4uLy4uL2F0b21zL1dpdGhBcHBDZmcnXG5pbXBvcnQgeyBhY3F1aXJlQ2hhdHNTdG9yZSwgcmVsZWFzZUNoYXRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZSdcbmltcG9ydCB7IHJlYWRNYWlhUGFuZWxTZXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvbWFpYVBhbmVsU2Vzc2lvblBlcnNpc3RlbmNlJ1xuaW1wb3J0IHsgZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25Ob3RpZmljYXRpb25zJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBNQUlBX09QRU5fRlJPTV9IT1NUX0VWRU5ULCB0eXBlIE1haWFIb3N0T3BlbkRldGFpbCwgdHlwZSBNYWlhSG9zdFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9tYWlhSG9zdE9wZW4nXG5cbnR5cGUgQ2hhdEFJUHJvcHMgPSB7XG4gIGVudGl0eToge1xuICAgIHByb2plY3RJZDogc3RyaW5nIHwgbnVsbFxuICAgIGNsaWVudElkOiBzdHJpbmcgfCBudWxsXG4gIH1cbiAgcHJvamVjdDogUHJvamVjdCB8IG51bGxcbiAgY2xpZW50PzogQ2xpZW50IHwgbnVsbFxuICB0YXNrPzogVGFzayB8IG51bGxcbiAgaGFzTXVsdGlBZ2VudHM/OiBib29sZWFuXG4gIHNlY3Rpb24/OiBNYWlhSG9zdFNlY3Rpb25cbiAgLyoqIEJhbm5lciAvIGhvc3Q6IGFicmUgZWwgY2hhdCBlbnZpYW5kbyBsYSBGQVEgY29tbyBtZW5zYWplIHkgYFgtRmFxLUlkYCBlbiBlbCBvcmNoZXN0cmF0b3IgKi9cbiAgZmFxPzogQmFubmVyRW50cnlGYXEgfCBudWxsXG4gIGluaXRpYWxEcmFmdD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFNlbGVjdG9yZXMgRE9NIGRlbCBob3N0IHF1ZSBlbCBwaWxsIG1pbmltaXphZG8gZGViZSBlc3F1aXZhciBhbCBlc3RhciB2aXNpYmxlLiAqL1xuICBtaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzPzogTWluaW1pemVkUGlsbEF2b2lkQW5jaG9yW11cbn1cblxuY29uc3Qgbm9ybWFsaXplQmFubmVyRW50cnlGYXEgPSAoZmFxOiBCYW5uZXJFbnRyeUZhcSB8IG51bGwgfCB1bmRlZmluZWQpOiBCYW5uZXJFbnRyeUZhcSB8IG51bGwgPT4ge1xuICBjb25zdCBpZCA9IGZhcT8uZmFxSWQ/LnRyaW0oKVxuICBjb25zdCB0aXRsZSA9IGZhcT8uZmFxVGl0bGU/LnRyaW0oKVxuICBpZiAoIXRpdGxlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBjb250ZXh0RGF0YSA9IGZhcT8uY29udGV4dERhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZmFxLmNvbnRleHREYXRhID09PSAnb2JqZWN0JyA/IGZhcS5jb250ZXh0RGF0YSA6IHVuZGVmaW5lZFxuICByZXR1cm4ge1xuICAgIC4uLihpZCA/IHsgZmFxSWQ6IGlkIH0gOiB7fSksXG4gICAgZmFxVGl0bGU6IHRpdGxlLFxuICAgIC4uLihjb250ZXh0RGF0YSA/IHsgY29udGV4dERhdGEgfSA6IHt9KSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJID0gd2l0aEFwcENmZyhcbiAgKHtcbiAgICBlbnRpdHk6IGluaXRpYWxFbnRpdHksXG4gICAgcHJvamVjdDogaW5pdGlhbFByb2plY3QsXG4gICAgY2xpZW50OiBpbml0aWFsQ2xpZW50LFxuICAgIHRhc2s6IGluaXRpYWxUYXNrLFxuICAgIGhhc011bHRpQWdlbnRzID0gZmFsc2UsXG4gICAgc2VjdGlvbjogaW5pdGlhbFNlY3Rpb24gPSAnaGVhZGVyJyxcbiAgICBmYXE6IGluaXRpYWxGYXFQcm9wID0gbnVsbCxcbiAgICBpbml0aWFsRHJhZnQ6IGluaXRpYWxEcmFmdFByb3AgPSBudWxsLFxuICAgIG1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnM6IGluaXRpYWxNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzID0gW10sXG4gIH06IENoYXRBSVByb3BzKSA9PiB7XG4gICAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICAgIGNvbnN0IHNhdmVkU2Vzc2lvbk9uTW91bnQgPSByZWFkTWFpYVBhbmVsU2Vzc2lvbih1c2VyLmlkKVxuICAgIGNvbnN0IHNhdmVkSG9zdENvbnRleHQgPSBzYXZlZFNlc3Npb25Pbk1vdW50Py5pc0V4cGFuZGVkID8gc2F2ZWRTZXNzaW9uT25Nb3VudC5ob3N0Q29udGV4dCA6IHVuZGVmaW5lZFxuXG4gICAgY29uc3QgW2hvc3RTZWN0aW9uLCBzZXRIb3N0U2VjdGlvbl0gPSB1c2VTdGF0ZTxNYWlhSG9zdFNlY3Rpb24+KCgpID0+IHNhdmVkSG9zdENvbnRleHQ/LnNlY3Rpb24gPz8gaW5pdGlhbFNlY3Rpb24pXG4gICAgY29uc3QgW2hvc3RFbnRpdHksIHNldEhvc3RFbnRpdHldID0gdXNlU3RhdGUoaW5pdGlhbEVudGl0eSlcbiAgICBjb25zdCBbaG9zdEZhcVByb3AsIHNldEhvc3RGYXFQcm9wXSA9IHVzZVN0YXRlPEJhbm5lckVudHJ5RmFxIHwgbnVsbD4oaW5pdGlhbEZhcVByb3ApXG4gICAgY29uc3QgW2hvc3RJbml0aWFsRHJhZnRQcm9wLCBzZXRIb3N0SW5pdGlhbERyYWZ0UHJvcF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihpbml0aWFsRHJhZnRQcm9wKVxuICAgIGNvbnN0IFtob3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycywgc2V0SG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnNdID0gdXNlU3RhdGUoaW5pdGlhbE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMpXG4gICAgY29uc3QgW2hvc3RDbGllbnQsIHNldEhvc3RDbGllbnRdID0gdXNlU3RhdGU8Q2xpZW50IHwgbnVsbD4oKCkgPT4gc2F2ZWRIb3N0Q29udGV4dD8uY2xpZW50ID8/IGluaXRpYWxDbGllbnQgPz8gbnVsbClcbiAgICBjb25zdCBbaG9zdFRhc2ssIHNldEhvc3RUYXNrXSA9IHVzZVN0YXRlPFRhc2sgfCBudWxsPigoKSA9PiBzYXZlZEhvc3RDb250ZXh0Py50YXNrID8/IGluaXRpYWxUYXNrID8/IG51bGwpXG5cbiAgICBjb25zdCBpbml0aWFsUHJvamVjdFZhbHVlID1cbiAgICAgIHNhdmVkSG9zdENvbnRleHQ/LnByb2plY3QgPz8gKGhvc3RTZWN0aW9uID09PSAncHJvamVjdCcgfHwgaG9zdFNlY3Rpb24gPT09ICd0YXNrJyA/IGluaXRpYWxQcm9qZWN0IDogbnVsbClcbiAgICBjb25zdCBbcHJvamVjdCwgc2V0UHJvamVjdF0gPSB1c2VTdGF0ZTxQcm9qZWN0IHwgbnVsbD4oaW5pdGlhbFByb2plY3RWYWx1ZSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoKGhvc3RTZWN0aW9uID09PSAncHJvamVjdCcgfHwgaG9zdFNlY3Rpb24gPT09ICd0YXNrJykgJiYgaW5pdGlhbFByb2plY3QgIT0gbnVsbCkge1xuICAgICAgICBzZXRQcm9qZWN0KGluaXRpYWxQcm9qZWN0KVxuICAgICAgfVxuICAgIH0sIFtob3N0U2VjdGlvbiwgaW5pdGlhbFByb2plY3RdKVxuXG4gICAgY29uc3QgeyBjb250ZXh0IH0gPSB1c2VQcm9qZWN0U3VtbWFyeUNvbmZpZyh7XG4gICAgICBzZWN0aW9uOiBob3N0U2VjdGlvbixcbiAgICAgIGVudGl0eTogaG9zdEVudGl0eSxcbiAgICAgIHByb2plY3QsXG4gICAgICBzZXRQcm9qZWN0LFxuICAgICAgY2xpZW50OiBob3N0U2VjdGlvbiA9PT0gJ2NsaWVudCcgPyBob3N0Q2xpZW50IDogdW5kZWZpbmVkLFxuICAgICAgdGFzazogaG9zdFNlY3Rpb24gPT09ICd0YXNrJyA/IGhvc3RUYXNrIDogdW5kZWZpbmVkLFxuICAgICAgaGFzTXVsdGlBZ2VudHMsXG4gICAgfSlcbiAgICBjb25zdCBkZWVwTGlua1NlbmRQZW5kaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGFjcXVpcmVDaGF0c1N0b3JlKClcbiAgICAgIGVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQoKVxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZGVlcExpbmtTZW5kUGVuZGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgcmVsZWFzZUNoYXRzU3RvcmUoKVxuICAgICAgfVxuICAgIH0sIFt1c2VyLmlkLCB1c2VyLmNvbXBhbnlfaWQsIGluaXRpYWxTZWN0aW9uXSlcblxuICAgIGNvbnN0IGFwcGx5SG9zdE9wZW5EZXRhaWwgPSB1c2VDYWxsYmFjaygoZGV0YWlsOiBNYWlhSG9zdE9wZW5EZXRhaWwpID0+IHtcbiAgICAgIHNldEhvc3RTZWN0aW9uKGRldGFpbC5zZWN0aW9uKVxuICAgICAgc2V0SG9zdEVudGl0eShkZXRhaWwuZW50aXR5KVxuICAgICAgc2V0SG9zdEZhcVByb3AoZGV0YWlsLmZhcSA/PyBudWxsKVxuICAgICAgc2V0SG9zdEluaXRpYWxEcmFmdFByb3AoZGV0YWlsLmluaXRpYWxEcmFmdCA/PyBudWxsKVxuICAgICAgaWYgKGRldGFpbC5taW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzICE9IG51bGwpIHtcbiAgICAgICAgc2V0SG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMoZGV0YWlsLm1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMpXG4gICAgICB9XG5cbiAgICAgIGlmIChkZXRhaWwuc2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IGRldGFpbC5zZWN0aW9uID09PSAndGFzaycpIHtcbiAgICAgICAgc2V0UHJvamVjdChkZXRhaWwucHJvamVjdCA/PyBudWxsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgfVxuXG4gICAgICBpZiAoZGV0YWlsLnNlY3Rpb24gPT09ICdjbGllbnQnKSB7XG4gICAgICAgIHNldEhvc3RDbGllbnQoZGV0YWlsLmNsaWVudCA/PyBudWxsKVxuICAgICAgfSBlbHNlIGlmIChkZXRhaWwuc2VjdGlvbiA9PT0gJ2hlYWRlcicgfHwgZGV0YWlsLnNlY3Rpb24gPT09ICdwbGFubmVyJykge1xuICAgICAgICBzZXRIb3N0Q2xpZW50KG51bGwpXG4gICAgICB9XG5cbiAgICAgIGlmIChkZXRhaWwuc2VjdGlvbiA9PT0gJ3Rhc2snKSB7XG4gICAgICAgIHNldEhvc3RUYXNrKGRldGFpbC50YXNrID8/IG51bGwpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRIb3N0VGFzayhudWxsKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG9uT3BlbkZyb21Ib3N0ID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IGRldGFpbCB9ID0gZXZlbnQgYXMgQ3VzdG9tRXZlbnQ8TWFpYUhvc3RPcGVuRGV0YWlsPlxuICAgICAgICBpZiAoIWRldGFpbCkgcmV0dXJuXG4gICAgICAgIGFwcGx5SG9zdE9wZW5EZXRhaWwoZGV0YWlsKVxuICAgICAgfVxuXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKE1BSUFfT1BFTl9GUk9NX0hPU1RfRVZFTlQsIG9uT3BlbkZyb21Ib3N0KVxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihNQUlBX09QRU5fRlJPTV9IT1NUX0VWRU5ULCBvbk9wZW5Gcm9tSG9zdClcbiAgICAgIH1cbiAgICB9LCBbYXBwbHlIb3N0T3BlbkRldGFpbF0pXG5cbiAgICBjb25zdCBiYW5uZXJFbnRyeUZhcSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBub3JtYWxpemVCYW5uZXJFbnRyeUZhcShob3N0RmFxUHJvcCksXG4gICAgICBbaG9zdEZhcVByb3A/LmZhcUlkLCBob3N0RmFxUHJvcD8uZmFxVGl0bGUsIGhvc3RGYXFQcm9wPy5jb250ZXh0RGF0YV1cbiAgICApXG5cbiAgICBjb25zdCBpbml0aWFsRHJhZnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGRyYWZ0ID0gaG9zdEluaXRpYWxEcmFmdFByb3A/LnRyaW0oKVxuICAgICAgcmV0dXJuIGRyYWZ0IHx8IG51bGxcbiAgICB9LCBbaG9zdEluaXRpYWxEcmFmdFByb3BdKVxuXG4gICAgY29uc3QgcHJvdmlkZXJWYWx1ZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICBzZWN0aW9uOiBob3N0U2VjdGlvbixcbiAgICAgICAgYmFubmVyRW50cnlGYXEsXG4gICAgICAgIGluaXRpYWxEcmFmdCxcbiAgICAgICAgZGVlcExpbmtTZW5kUGVuZGluZ1JlZixcbiAgICAgICAgbWluaW1pemVkUGlsbEF2b2lkQW5jaG9yczogaG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMsXG4gICAgICB9KSxcbiAgICAgIFtjb250ZXh0LCBob3N0U2VjdGlvbiwgYmFubmVyRW50cnlGYXEsIGluaXRpYWxEcmFmdCwgaG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnNdXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxHbG9iYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcm92aWRlclZhbHVlfT5cbiAgICAgICAgPENoYXRBSU1vZGFsIC8+XG4gICAgICA8L0dsb2JhbENvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuICB9LFxuICBGZWF0dXJlcy5DSEFUX0FJXG4pXG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxXQUFXLFFBQVEsT0FBTztBQUN6RSxTQUFTQyx1QkFBdUIsUUFBUSx3Q0FBd0M7QUFJaEYsU0FBU0MsV0FBVyxRQUFRLDZCQUE2QjtBQUN6RCxTQUFTQyxhQUFhLFFBQTRELGlDQUFpQztBQUNuSCxTQUFTQyxRQUFRLFFBQVEsbUNBQW1DO0FBQzVELFNBQVNDLFVBQVUsUUFBUSx3QkFBd0I7QUFDbkQsU0FBU0MsaUJBQWlCLEVBQUVDLGlCQUFpQixRQUFRLGdCQUFnQjtBQUNyRSxTQUFTQyxvQkFBb0IsUUFBUSw0Q0FBNEM7QUFDakYsU0FBU0MscUNBQXFDLFFBQVEsOENBQThDO0FBQ3BHLFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFDbkQsU0FBU0MseUJBQXlCLFFB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SUFDN0IsQ0FBQztJQUVEUyxRQUFRLENBQUNDLGdCQUFnQixDQUFDbkcseUJBQXlCLEVBQUUrRixjQUFjLENBQUM7SUFDcEUsT0FBTyxZQUFNO01BQ1hHLFFBQVEsQ0FBQ0UsbUJBQW1CLENBQUNwRyx5QkFBeUIsRUFBRStGLGNBQWMsQ0FBQztJQUN6RSxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNQLG1CQUFtQixDQUFDLENBQUM7RUFFekIsSUFBTWEsY0FBYyxHQUFHbEgsT0FBTyxDQUM1QjtJQUFBLE9BQU1nQix1QkFBdUIsQ0FBQ3NELFdBQVcsQ0FBQztFQUFBLEdBQzFDLENBQUNBLFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFakQsS0FBSyxFQUFFaUQsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUU5QyxRQUFRLEVBQUU4QyxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRTdDLFdBQVcsQ0FDdEUsQ0FBQztFQUVELElBQU11QixZQUFZLEdBQUdoRCxPQUFPLENBQUMsWUFBTTtJQUNqQyxJQUFNbUgsS0FBSyxHQUFHekMsb0JBQW9CLGFBQXBCQSxvQkFBb0IsdUJBQXBCQSxvQkFBb0IsQ0FBRXBELElBQUksQ0FBQyxDQUFDO0lBQzFDLE9BQU82RixLQUFLLElBQUksSUFBSTtFQUN0QixDQUFDLEVBQUUsQ0FBQ3pDLG9CQUFvQixDQUFDLENBQUM7RUFFMUIsSUFBTTBDLGFBQWEsR0FBR3BILE9BQU8sQ0FDM0I7SUFBQSxPQUFBNEIsYUFBQSxDQUFBQSxhQUFBLEtBQ0txRSxPQUFPO01BQ1Z0RCxPQUFPLEVBQUVtQixXQUFXO01BQ3BCb0QsY0FBYyxFQUFkQSxjQUFjO01BQ2RsRSxZQUFZLEVBQVpBLFlBQVk7TUFDWmtELHNCQUFzQixFQUF0QkEsc0JBQXNCO01BQ3RCL0MseUJBQXlCLEVBQUUyQjtJQUE2QjtFQUFBLENBQ3hELEVBQ0YsQ0FBQ21CLE9BQU8sRUFBRW5DLFdBQVcsRUFBRW9ELGNBQWMsRUFBRWxFLFlBQVksRUFBRThCLDZCQUE2QixDQUNwRixDQUFDO0VBRUQsb0JBQ0UvRCxJQUFBLENBQUNWLGFBQWEsQ0FBQ2dILFFBQVE7SUFBQ0MsS0FBSyxFQUFFRixhQUFjO0lBQUFHLFFBQUEsZUFDM0N4RyxJQUFBLENBQUNYLFdBQVcsSUFBRTtFQUFDLENBQ08sQ0FBQztBQUU3QixDQUFDLEVBQ0RFLFFBQVEsQ0FBQ2tILE9BQ1gsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
193
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZU1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VDYWxsYmFjayIsInVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIiwiQ2hhdEFJTW9kYWwiLCJHbG9iYWxDb250ZXh0IiwiRmVhdHVyZXMiLCJ3aXRoQXBwQ2ZnIiwiYWNxdWlyZUNoYXRzU3RvcmUiLCJyZWxlYXNlQ2hhdHNTdG9yZSIsImdldENoYXRzU3RvcmVTdGF0ZSIsInJlYWRNYWlhUGFuZWxTZXNzaW9uIiwiaXNNYWlhUGFnZUFjdGl2ZSIsImVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQiLCJ1c2VVc2VyIiwiTUFJQV9PUEVOX0ZST01fSE9TVF9FVkVOVCIsImpzeCIsIl9qc3giLCJub3JtYWxpemVCYW5uZXJFbnRyeUZhcSIsImZhcSIsIl9mYXEkZmFxSWQiLCJfZmFxJGZhcVRpdGxlIiwiaWQiLCJmYXFJZCIsInRyaW0iLCJ0aXRsZSIsImZhcVRpdGxlIiwiY29udGV4dERhdGEiLCJfdHlwZW9mIiwidW5kZWZpbmVkIiwiX29iamVjdFNwcmVhZCIsIkNoYXRBSSIsIl9yZWYiLCJfc2F2ZWRIb3N0Q29udGV4dCRwcm8iLCJpbml0aWFsRW50aXR5IiwiZW50aXR5IiwiaW5pdGlhbFByb2plY3QiLCJwcm9qZWN0IiwiaW5pdGlhbENsaWVudCIsImNsaWVudCIsImluaXRpYWxUYXNrIiwidGFzayIsIl9yZWYkaGFzTXVsdGlBZ2VudHMiLCJoYXNNdWx0aUFnZW50cyIsIl9yZWYkc2VjdGlvbiIsInNlY3Rpb24iLCJpbml0aWFsU2VjdGlvbiIsIl9yZWYkZmFxIiwiaW5pdGlhbEZhcVByb3AiLCJfcmVmJGluaXRpYWxEcmFmdCIsImluaXRpYWxEcmFmdCIsImluaXRpYWxEcmFmdFByb3AiLCJfcmVmJG1pbmltaXplZFBpbGxBdm8iLCJtaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzIiwiaW5pdGlhbE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMiLCJ1c2VyIiwic2F2ZWRTZXNzaW9uT25Nb3VudCIsInNhdmVkSG9zdENvbnRleHQiLCJpc0V4cGFuZGVkIiwiaG9zdENvbnRleHQiLCJfdXNlU3RhdGUiLCJfc2F2ZWRIb3N0Q29udGV4dCRzZWMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJob3N0U2VjdGlvbiIsInNldEhvc3RTZWN0aW9uIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJob3N0RW50aXR5Iiwic2V0SG9zdEVudGl0eSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaG9zdEZhcVByb3AiLCJzZXRIb3N0RmFxUHJvcCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaG9zdEluaXRpYWxEcmFmdFByb3AiLCJzZXRIb3N0SW5pdGlhbERyYWZ0UHJvcCIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMiLCJzZXRIb3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyIsIl91c2VTdGF0ZTEiLCJfcmVmMiIsIl9zYXZlZEhvc3RDb250ZXh0JGNsaSIsIl91c2VTdGF0ZTEwIiwiaG9zdENsaWVudCIsInNldEhvc3RDbGllbnQiLCJfdXNlU3RhdGUxMSIsIl9yZWYzIiwiX3NhdmVkSG9zdENvbnRleHQkdGFzIiwiX3VzZVN0YXRlMTIiLCJob3N0VGFzayIsInNldEhvc3RUYXNrIiwiaW5pdGlhbFByb2plY3RWYWx1ZSIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJzZXRQcm9qZWN0IiwiX3VzZVByb2plY3RTdW1tYXJ5Q29uIiwiY29udGV4dCIsImRlZXBMaW5rU2VuZFBlbmRpbmdSZWYiLCJwcmV2VXNlcklkUmVmIiwiY3VycmVudCIsInJlc2V0IiwiY29tcGFueV9pZCIsImFwcGx5SG9zdE9wZW5EZXRhaWwiLCJkZXRhaWwiLCJfZGV0YWlsJGZhcSIsIl9kZXRhaWwkaW5pdGlhbERyYWZ0IiwiX2RldGFpbCRwcm9qZWN0IiwiX2RldGFpbCRjbGllbnQiLCJfZGV0YWlsJHRhc2siLCJvbk9wZW5Gcm9tSG9zdCIsImV2ZW50IiwiX3JlZjQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYmFubmVyRW50cnlGYXEiLCJkcmFmdCIsInByb3ZpZGVyVmFsdWUiLCJQcm92aWRlciIsInZhbHVlIiwiY2hpbGRyZW4iLCJDSEFUX0FJIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0NoYXRBSS9DaGF0QUkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVJlZiwgdXNlU3RhdGUsIHVzZU1lbW8sIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUHJvamVjdFN1bW1hcnlDb25maWcnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NsaWVudCdcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9UYXNrJ1xuaW1wb3J0IHsgQ2hhdEFJTW9kYWwgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvQ2hhdEFJTW9kYWwnXG5pbXBvcnQgeyBHbG9iYWxDb250ZXh0LCB0eXBlIEJhbm5lckVudHJ5RmFxLCB0eXBlIE1pbmltaXplZFBpbGxBdm9pZEFuY2hvciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBGZWF0dXJlcyB9IGZyb20gJy4uLy4uL2F0b21zL1dpdGhGZWF0dXJlVmFsaWRhdGlvbidcbmltcG9ydCB7IHdpdGhBcHBDZmcgfSBmcm9tICcuLi8uLi9hdG9tcy9XaXRoQXBwQ2ZnJ1xuaW1wb3J0IHsgYWNxdWlyZUNoYXRzU3RvcmUsIHJlbGVhc2VDaGF0c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUnXG5pbXBvcnQgeyBnZXRDaGF0c1N0b3JlU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS91c2VDaGF0c1N0b3JlJ1xuaW1wb3J0IHsgcmVhZE1haWFQYW5lbFNlc3Npb24gfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9tYWlhUGFuZWxTZXNzaW9uUGVyc2lzdGVuY2UnXG5pbXBvcnQgeyBpc01haWFQYWdlQWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbWFpYVBhZ2VSb3V0ZSdcbmltcG9ydCB7IGVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9zZXNzaW9ucy9zZXNzaW9uTm90aWZpY2F0aW9ucydcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgTUFJQV9PUEVOX0ZST01fSE9TVF9FVkVOVCwgdHlwZSBNYWlhSG9zdE9wZW5EZXRhaWwsIHR5cGUgTWFpYUhvc3RTZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbWFpYUhvc3RPcGVuJ1xuXG50eXBlIENoYXRBSVByb3BzID0ge1xuICBlbnRpdHk6IHtcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGxcbiAgICBjbGllbnRJZDogc3RyaW5nIHwgbnVsbFxuICB9XG4gIHByb2plY3Q6IFByb2plY3QgfCBudWxsXG4gIGNsaWVudD86IENsaWVudCB8IG51bGxcbiAgdGFzaz86IFRhc2sgfCBudWxsXG4gIGhhc011bHRpQWdlbnRzPzogYm9vbGVhblxuICBzZWN0aW9uPzogTWFpYUhvc3RTZWN0aW9uXG4gIC8qKiBCYW5uZXIgLyBob3N0OiBhYnJlIGVsIGNoYXQgZW52aWFuZG8gbGEgRkFRIGNvbW8gbWVuc2FqZSB5IGBYLUZhcS1JZGAgZW4gZWwgb3JjaGVzdHJhdG9yICovXG4gIGZhcT86IEJhbm5lckVudHJ5RmFxIHwgbnVsbFxuICBpbml0aWFsRHJhZnQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBTZWxlY3RvcmVzIERPTSBkZWwgaG9zdCBxdWUgZWwgcGlsbCBtaW5pbWl6YWRvIGRlYmUgZXNxdWl2YXIgYWwgZXN0YXIgdmlzaWJsZS4gKi9cbiAgbWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycz86IE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcltdXG59XG5cbmNvbnN0IG5vcm1hbGl6ZUJhbm5lckVudHJ5RmFxID0gKGZhcTogQmFubmVyRW50cnlGYXEgfCBudWxsIHwgdW5kZWZpbmVkKTogQmFubmVyRW50cnlGYXEgfCBudWxsID0+IHtcbiAgY29uc3QgaWQgPSBmYXE/LmZhcUlkPy50cmltKClcbiAgY29uc3QgdGl0bGUgPSBmYXE/LmZhcVRpdGxlPy50cmltKClcbiAgaWYgKCF0aXRsZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgY29udGV4dERhdGEgPSBmYXE/LmNvbnRleHREYXRhICE9IG51bGwgJiYgdHlwZW9mIGZhcS5jb250ZXh0RGF0YSA9PT0gJ29iamVjdCcgPyBmYXEuY29udGV4dERhdGEgOiB1bmRlZmluZWRcbiAgcmV0dXJuIHtcbiAgICAuLi4oaWQgPyB7IGZhcUlkOiBpZCB9IDoge30pLFxuICAgIGZhcVRpdGxlOiB0aXRsZSxcbiAgICAuLi4oY29udGV4dERhdGEgPyB7IGNvbnRleHREYXRhIH0gOiB7fSksXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSSA9IHdpdGhBcHBDZmcoXG4gICh7XG4gICAgZW50aXR5OiBpbml0aWFsRW50aXR5LFxuICAgIHByb2plY3Q6IGluaXRpYWxQcm9qZWN0LFxuICAgIGNsaWVudDogaW5pdGlhbENsaWVudCxcbiAgICB0YXNrOiBpbml0aWFsVGFzayxcbiAgICBoYXNNdWx0aUFnZW50cyA9IGZhbHNlLFxuICAgIHNlY3Rpb246IGluaXRpYWxTZWN0aW9uID0gJ2hlYWRlcicsXG4gICAgZmFxOiBpbml0aWFsRmFxUHJvcCA9IG51bGwsXG4gICAgaW5pdGlhbERyYWZ0OiBpbml0aWFsRHJhZnRQcm9wID0gbnVsbCxcbiAgICBtaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzOiBpbml0aWFsTWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyA9IFtdLFxuICB9OiBDaGF0QUlQcm9wcykgPT4ge1xuICAgIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgICBjb25zdCBzYXZlZFNlc3Npb25Pbk1vdW50ID0gcmVhZE1haWFQYW5lbFNlc3Npb24odXNlci5pZClcbiAgICBjb25zdCBzYXZlZEhvc3RDb250ZXh0ID0gc2F2ZWRTZXNzaW9uT25Nb3VudD8uaXNFeHBhbmRlZCA/IHNhdmVkU2Vzc2lvbk9uTW91bnQuaG9zdENvbnRleHQgOiB1bmRlZmluZWRcblxuICAgIGNvbnN0IFtob3N0U2VjdGlvbiwgc2V0SG9zdFNlY3Rpb25dID0gdXNlU3RhdGU8TWFpYUhvc3RTZWN0aW9uPigoKSA9PiBzYXZlZEhvc3RDb250ZXh0Py5zZWN0aW9uID8/IGluaXRpYWxTZWN0aW9uKVxuICAgIGNvbnN0IFtob3N0RW50aXR5LCBzZXRIb3N0RW50aXR5XSA9IHVzZVN0YXRlKGluaXRpYWxFbnRpdHkpXG4gICAgY29uc3QgW2hvc3RGYXFQcm9wLCBzZXRIb3N0RmFxUHJvcF0gPSB1c2VTdGF0ZTxCYW5uZXJFbnRyeUZhcSB8IG51bGw+KGluaXRpYWxGYXFQcm9wKVxuICAgIGNvbnN0IFtob3N0SW5pdGlhbERyYWZ0UHJvcCwgc2V0SG9zdEluaXRpYWxEcmFmdFByb3BdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4oaW5pdGlhbERyYWZ0UHJvcClcbiAgICBjb25zdCBbaG9zdE1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMsIHNldEhvc3RNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzXSA9IHVzZVN0YXRlKGluaXRpYWxNaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzKVxuICAgIGNvbnN0IFtob3N0Q2xpZW50LCBzZXRIb3N0Q2xpZW50XSA9IHVzZVN0YXRlPENsaWVudCB8IG51bGw+KCgpID0+IHNhdmVkSG9zdENvbnRleHQ/LmNsaWVudCA/PyBpbml0aWFsQ2xpZW50ID8/IG51bGwpXG4gICAgY29uc3QgW2hvc3RUYXNrLCBzZXRIb3N0VGFza10gPSB1c2VTdGF0ZTxUYXNrIHwgbnVsbD4oKCkgPT4gc2F2ZWRIb3N0Q29udGV4dD8udGFzayA/PyBpbml0aWFsVGFzayA/PyBudWxsKVxuXG4gICAgY29uc3QgaW5pdGlhbFByb2plY3RWYWx1ZSA9XG4gICAgICBzYXZlZEhvc3RDb250ZXh0Py5wcm9qZWN0ID8/IChob3N0U2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IGhvc3RTZWN0aW9uID09PSAndGFzaycgPyBpbml0aWFsUHJvamVjdCA6IG51bGwpXG4gICAgY29uc3QgW3Byb2plY3QsIHNldFByb2plY3RdID0gdXNlU3RhdGU8UHJvamVjdCB8IG51bGw+KGluaXRpYWxQcm9qZWN0VmFsdWUpXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKChob3N0U2VjdGlvbiA9PT0gJ3Byb2plY3QnIHx8IGhvc3RTZWN0aW9uID09PSAndGFzaycpICYmIGluaXRpYWxQcm9qZWN0ICE9IG51bGwpIHtcbiAgICAgICAgc2V0UHJvamVjdChpbml0aWFsUHJvamVjdClcbiAgICAgIH1cbiAgICB9LCBbaG9zdFNlY3Rpb24sIGluaXRpYWxQcm9qZWN0XSlcblxuICAgIGNvbnN0IHsgY29udGV4dCB9ID0gdXNlUHJvamVjdFN1bW1hcnlDb25maWcoe1xuICAgICAgc2VjdGlvbjogaG9zdFNlY3Rpb24sXG4gICAgICBlbnRpdHk6IGhvc3RFbnRpdHksXG4gICAgICBwcm9qZWN0LFxuICAgICAgc2V0UHJvamVjdCxcbiAgICAgIGNsaWVudDogaG9zdFNlY3Rpb24gPT09ICdjbGllbnQnID8gaG9zdENsaWVudCA6IHVuZGVmaW5lZCxcbiAgICAgIHRhc2s6IGhvc3RTZWN0aW9uID09PSAndGFzaycgPyBob3N0VGFzayA6IHVuZGVmaW5lZCxcbiAgICAgIGhhc011bHRpQWdlbnRzLFxuICAgIH0pXG4gICAgY29uc3QgZGVlcExpbmtTZW5kUGVuZGluZ1JlZiA9IHVzZVJlZihmYWxzZSlcblxuICAgIGNvbnN0IHByZXZVc2VySWRSZWYgPSB1c2VSZWYodXNlci5pZClcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAocHJldlVzZXJJZFJlZi5jdXJyZW50ICE9PSB1c2VyLmlkKSB7XG4gICAgICAgIHByZXZVc2VySWRSZWYuY3VycmVudCA9IHVzZXIuaWRcbiAgICAgICAgZ2V0Q2hhdHNTdG9yZVN0YXRlKCkucmVzZXQoKVxuICAgICAgfVxuICAgIH0sIFt1c2VyLmlkXSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAvLyBPbiAvbWFpYSB0aGUgcGFnZSBpbnN0YW5jZSBvd25zIGNoYXRzOyBoZWFkZXIgQ2hhdEFJIHN0YXlzIG1vdW50ZWQgKENTUy1oaWRkZW4pLlxuICAgICAgaWYgKGlzTWFpYVBhZ2VBY3RpdmUoKSAmJiBpbml0aWFsU2VjdGlvbiA9PT0gJ2hlYWRlcicpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfVxuICAgICAgYWNxdWlyZUNoYXRzU3RvcmUoKVxuICAgICAgZW5zdXJlU2Vzc2lvbk5vdGlmaWNhdGlvbnNJbml0aWFsaXplZCgpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICByZWxlYXNlQ2hhdHNTdG9yZSgpXG4gICAgICB9XG4gICAgfSwgW3VzZXIuaWQsIHVzZXIuY29tcGFueV9pZCwgaW5pdGlhbFNlY3Rpb25dKVxuXG4gICAgY29uc3QgYXBwbHlIb3N0T3BlbkRldGFpbCA9IHVzZUNhbGxiYWNrKChkZXRhaWw6IE1haWFIb3N0T3BlbkRldGFpbCkgPT4ge1xuICAgICAgc2V0SG9zdFNlY3Rpb24oZGV0YWlsLnNlY3Rpb24pXG4gICAgICBzZXRIb3N0RW50aXR5KGRldGFpbC5lbnRpdHkpXG4gICAgICBzZXRIb3N0RmFxUHJvcChkZXRhaWwuZmFxID8/IG51bGwpXG4gICAgICBzZXRIb3N0SW5pdGlhbERyYWZ0UHJvcChkZXRhaWwuaW5pdGlhbERyYWZ0ID8/IG51bGwpXG4gICAgICBpZiAoZGV0YWlsLm1pbmltaXplZFBpbGxBdm9pZEFuY2hvcnMgIT0gbnVsbCkge1xuICAgICAgICBzZXRIb3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyhkZXRhaWwubWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycylcbiAgICAgIH1cblxuICAgICAgaWYgKGRldGFpbC5zZWN0aW9uID09PSAncHJvamVjdCcgfHwgZGV0YWlsLnNlY3Rpb24gPT09ICd0YXNrJykge1xuICAgICAgICBzZXRQcm9qZWN0KGRldGFpbC5wcm9qZWN0ID8/IG51bGwpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICB9XG5cbiAgICAgIGlmIChkZXRhaWwuc2VjdGlvbiA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgc2V0SG9zdENsaWVudChkZXRhaWwuY2xpZW50ID8/IG51bGwpXG4gICAgICB9IGVsc2UgaWYgKGRldGFpbC5zZWN0aW9uID09PSAnaGVhZGVyJyB8fCBkZXRhaWwuc2VjdGlvbiA9PT0gJ3BsYW5uZXInKSB7XG4gICAgICAgIHNldEhvc3RDbGllbnQobnVsbClcbiAgICAgIH1cblxuICAgICAgaWYgKGRldGFpbC5zZWN0aW9uID09PSAndGFzaycpIHtcbiAgICAgICAgc2V0SG9zdFRhc2soZGV0YWlsLnRhc2sgPz8gbnVsbClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEhvc3RUYXNrKG51bGwpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgb25PcGVuRnJvbUhvc3QgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZGV0YWlsIH0gPSBldmVudCBhcyBDdXN0b21FdmVudDxNYWlhSG9zdE9wZW5EZXRhaWw+XG4gICAgICAgIGlmICghZGV0YWlsKSByZXR1cm5cbiAgICAgICAgYXBwbHlIb3N0T3BlbkRldGFpbChkZXRhaWwpXG4gICAgICB9XG5cbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoTUFJQV9PUEVOX0ZST01fSE9TVF9FVkVOVCwgb25PcGVuRnJvbUhvc3QpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKE1BSUFfT1BFTl9GUk9NX0hPU1RfRVZFTlQsIG9uT3BlbkZyb21Ib3N0KVxuICAgICAgfVxuICAgIH0sIFthcHBseUhvc3RPcGVuRGV0YWlsXSlcblxuICAgIGNvbnN0IGJhbm5lckVudHJ5RmFxID0gdXNlTWVtbyhcbiAgICAgICgpID0+IG5vcm1hbGl6ZUJhbm5lckVudHJ5RmFxKGhvc3RGYXFQcm9wKSxcbiAgICAgIFtob3N0RmFxUHJvcD8uZmFxSWQsIGhvc3RGYXFQcm9wPy5mYXFUaXRsZSwgaG9zdEZhcVByb3A/LmNvbnRleHREYXRhXVxuICAgIClcblxuICAgIGNvbnN0IGluaXRpYWxEcmFmdCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgZHJhZnQgPSBob3N0SW5pdGlhbERyYWZ0UHJvcD8udHJpbSgpXG4gICAgICByZXR1cm4gZHJhZnQgfHwgbnVsbFxuICAgIH0sIFtob3N0SW5pdGlhbERyYWZ0UHJvcF0pXG5cbiAgICBjb25zdCBwcm92aWRlclZhbHVlID0gdXNlTWVtbyhcbiAgICAgICgpID0+ICh7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIHNlY3Rpb246IGhvc3RTZWN0aW9uLFxuICAgICAgICBiYW5uZXJFbnRyeUZhcSxcbiAgICAgICAgaW5pdGlhbERyYWZ0LFxuICAgICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLFxuICAgICAgICBtaW5pbWl6ZWRQaWxsQXZvaWRBbmNob3JzOiBob3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9ycyxcbiAgICAgIH0pLFxuICAgICAgW2NvbnRleHQsIGhvc3RTZWN0aW9uLCBiYW5uZXJFbnRyeUZhcSwgaW5pdGlhbERyYWZ0LCBob3N0TWluaW1pemVkUGlsbEF2b2lkQW5jaG9yc11cbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEdsb2JhbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3Byb3ZpZGVyVmFsdWV9PlxuICAgICAgICA8Q2hhdEFJTW9kYWwgLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG4gIH0sXG4gIEZlYXR1cmVzLkNIQVRfQUlcbilcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsT0FBTyxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLHVCQUF1QixRQUFRLHdDQUF3QztBQUloRixTQUFTQyxXQUFXLFFBQVEsNkJBQTZCO0FBQ3pELFNBQVNDLGFBQWEsUUFBNEQsaUNBQWlDO0FBQ25ILFNBQVNDLFFBQVEsUUFBUSxtQ0FBbUM7QUFDNUQsU0FBU0MsVUFBVSxRQUFRLHdCQUF3QjtBQUNuRCxTQUFTQyxpQkFBaUIsRUFBRUMsaUJBQWlCLFFBQVEsZ0JBQWdCO0FBQ3JFLFNBQVNDLGtCQUFrQixRQUFRLDhCQUE4QjtBQUNqRSxTQUFTQyxvQkFBb0IsUUFBUSw0Q0FBNEM7QUFDakYsU0FBU0MsZ0JBQWdCLFFBQVEsOEJBQThCO0FBQy9ELFNBQVNDLHFDQUFxQyxRQUFRLDhDQUE4QztBQUNwRyxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBQ25ELFNBQVNDLHlCQUF5QixRQUF1RCw2QkFBNkI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFtQnRILElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlDLEdBQXNDLEVBQTRCO0VBQUEsSUFBQUMsVUFBQSxFQUFBQyxhQUFBO0VBQ2pHLElBQU1DLEVBQUUsR0FBR0gsR0FBRyxhQUFIQSxHQUFHLGdCQUFBQyxVQUFBLEdBQUhELEdBQUcsQ0FBRUksS0FBSyxjQUFBSCxVQUFBLHVCQUFWQSxVQUFBLENBQVlJLElB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
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { isMaiaPageActive, MAIA_PAGE_PRESENCE_EVENT } from '../utils/maiaPageRoute';
|
|
4
|
+
export var useIsMaiaPageRoute = function useIsMaiaPageRoute() {
|
|
5
|
+
var _useState = useState(isMaiaPageActive),
|
|
6
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
7
|
+
isMaiaPage = _useState2[0],
|
|
8
|
+
setIsMaiaPage = _useState2[1];
|
|
9
|
+
useEffect(function () {
|
|
10
|
+
var sync = function sync() {
|
|
11
|
+
var next = isMaiaPageActive();
|
|
12
|
+
setIsMaiaPage(function (prev) {
|
|
13
|
+
return prev === next ? prev : next;
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
document.addEventListener(MAIA_PAGE_PRESENCE_EVENT, sync);
|
|
17
|
+
window.addEventListener('popstate', sync);
|
|
18
|
+
sync();
|
|
19
|
+
return function () {
|
|
20
|
+
document.removeEventListener(MAIA_PAGE_PRESENCE_EVENT, sync);
|
|
21
|
+
window.removeEventListener('popstate', sync);
|
|
22
|
+
};
|
|
23
|
+
}, []);
|
|
24
|
+
return isMaiaPage;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsImlzTWFpYVBhZ2VBY3RpdmUiLCJNQUlBX1BBR0VfUFJFU0VOQ0VfRVZFTlQiLCJ1c2VJc01haWFQYWdlUm91dGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpc01haWFQYWdlIiwic2V0SXNNYWlhUGFnZSIsInN5bmMiLCJuZXh0IiwicHJldiIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlSXNNYWlhUGFnZVJvdXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGlzTWFpYVBhZ2VBY3RpdmUsIE1BSUFfUEFHRV9QUkVTRU5DRV9FVkVOVCB9IGZyb20gJy4uL3V0aWxzL21haWFQYWdlUm91dGUnXG5cbmV4cG9ydCBjb25zdCB1c2VJc01haWFQYWdlUm91dGUgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IFtpc01haWFQYWdlLCBzZXRJc01haWFQYWdlXSA9IHVzZVN0YXRlKGlzTWFpYVBhZ2VBY3RpdmUpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzeW5jID0gKCkgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IGlzTWFpYVBhZ2VBY3RpdmUoKVxuICAgICAgc2V0SXNNYWlhUGFnZShwcmV2ID0+IChwcmV2ID09PSBuZXh0ID8gcHJldiA6IG5leHQpKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoTUFJQV9QQUdFX1BSRVNFTkNFX0VWRU5ULCBzeW5jKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHN5bmMpXG4gICAgc3luYygpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihNQUlBX1BBR0VfUFJFU0VOQ0VfRVZFTlQsIHN5bmMpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBzeW5jKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgcmV0dXJuIGlzTWFpYVBhZ2Vcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFNBQVMsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDM0MsU0FBU0MsZ0JBQWdCLEVBQUVDLHdCQUF3QixRQUFRLHdCQUF3QjtBQUVuRixPQUFPLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUEsRUFBa0I7RUFDL0MsSUFBQUMsU0FBQSxHQUFvQ0osUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQztJQUFBSSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUF2REcsVUFBVSxHQUFBRixVQUFBO0lBQUVHLGFBQWEsR0FBQUgsVUFBQTtFQUVoQ04sU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNVSxJQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FBQSxFQUFTO01BQ2pCLElBQU1DLElBQUksR0FBR1QsZ0JBQWdCLENBQUMsQ0FBQztNQUMvQk8sYUFBYSxDQUFDLFVBQUFHLElBQUk7UUFBQSxPQUFLQSxJQUFJLEtBQUtELElBQUksR0FBR0MsSUFBSSxHQUFHRCxJQUFJO01BQUEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFREUsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ1gsd0JBQXdCLEVBQUVPLElBQUksQ0FBQztJQUN6REssTUFBTSxDQUFDRCxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUVKLElBQUksQ0FBQztJQUN6Q0EsSUFBSSxDQUFDLENBQUM7SUFFTixPQUFPLFlBQU07TUFDWEcsUUFBUSxDQUFDRyxtQkFBbUIsQ0FBQ2Isd0JBQXdCLEVBQUVPLElBQUksQ0FBQztNQUM1REssTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUVOLElBQUksQ0FBQztJQUM5QyxDQUFDO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLE9BQU9GLFVBQVU7QUFDbkIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|