Files
speckle-server/scratch/edge-debug-selection/Default/Cache/Cache_Data/f_000118
T

378 lines
37 KiB
Plaintext

import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue");import { default as __nuxt_component_0 } from "/_nuxt/components/workspace/Avatar.vue";
import { default as __nuxt_component_1 } from "/_nuxt/components/header/WorkspaceSwitcher/header/Projects.vue";
import { default as __nuxt_component_2 } from "/_nuxt/components/header/WorkspaceSwitcher/header/SsoExpired.vue";
import { default as __nuxt_component_3 } from "/_nuxt/components/header/WorkspaceSwitcher/header/Workspace.vue";
import { default as __nuxt_component_4 } from "/_nuxt/components/header/WorkspaceSwitcher/header/Header.vue";
import { default as __nuxt_component_5 } from "/_nuxt/components/header/WorkspaceSwitcher/List.vue";
import { CommonBadge as __nuxt_component_6 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
import { default as __nuxt_component_7 } from "/_nuxt/node_modules/nuxt/dist/app/components/nuxt-link.js?v=e4f18c29";
import { default as __nuxt_component_8 } from "/_nuxt/components/invite/dialog/Workspace.vue";
import { default as __nuxt_component_9 } from "/_nuxt/components/workspace/discoverableWorkspaces/Modal.vue";
/* Injection by vite-plugin-vue-inspector Start */
import { createElementVNode as __createElementVNode,createVNode as __createVNode,createElementBlock as __createElementBlock,createBlock as __createBlock } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"
function _interopVNode(vnode) {
if (vnode && vnode.props && 'data-v-inspector' in vnode.props) {
const data = vnode.props['data-v-inspector']
delete vnode.props['data-v-inspector']
Object.defineProperty(vnode.props, '__v_inspector', { value: data, enumerable: false })
}
return vnode
}
function _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) }
function _createVNode(...args) { return _interopVNode(__createVNode(...args)) }
function _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) }
function _createBlock(...args) { return _interopVNode(__createBlock(...args)) }
/* Injection by vite-plugin-vue-inspector End */
import { defineComponent as _defineComponent } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
import { Menu, MenuButton, MenuItems, MenuItem } from "/_nuxt/node_modules/@headlessui/vue/dist/headlessui.esm.js?v=e4f18c29";
import { useQuery } from "/_nuxt/node_modules/@vue/apollo-composable/dist/index.mjs?v=e4f18c29";
import {
navigationWorkspaceSwitcherQuery,
workspaceSwitcherHeaderWorkspaceQuery
} from "/_nuxt/lib/navigation/graphql/queries.ts";
import { ChevronDownIcon } from "/_nuxt/node_modules/.cache/vite/client/deps/@heroicons_vue_24_outline.js?v=e4f18c29";
import { WorkspaceJoinRequestStatus } from "/_nuxt/lib/common/generated/gql/graphql.ts";
import { graphql } from "/_nuxt/lib/common/generated/gql/index.ts";
import { workspaceRoute } from "/_nuxt/lib/common/helpers/route.ts";
import { useNuxtApp } from "/_nuxt/node_modules/nuxt/dist/app/nuxt.js?v=e4f18c29";
import { useIsWorkspacesEnabled } from "/_nuxt/composables/globals.ts";
import { useId, ref, computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
const _sfc_main = /* @__PURE__ */ _defineComponent({
__name: "HeaderWorkspaceSwitcher",
setup(__props, { expose: __expose }) {
__expose();
graphql(`
fragment WorkspaceSwitcherActiveWorkspace_LimitedWorkspace on LimitedWorkspace {
id
name
logo
slug
role
}
`);
graphql(`
fragment WorkspaceSwitcherActiveWorkspace_User on User {
id
activeWorkspace {
...WorkspaceSwitcherActiveWorkspace_LimitedWorkspace
}
expiredSsoSessions {
id
...HeaderWorkspaceSwitcherHeaderExpiredSso_LimitedWorkspace
}
discoverableWorkspaces {
id
}
workspaceJoinRequests(filter: $joinRequestFilter) {
totalCount
}
}
`);
const { $intercom } = useNuxtApp();
const isWorkspacesEnabled = useIsWorkspacesEnabled();
const menuButtonId = useId();
const { result, onResult: onActiveWorkspaceResult } = useQuery(
navigationWorkspaceSwitcherQuery,
() => ({
joinRequestFilter: {
status: WorkspaceJoinRequestStatus.Pending
}
}),
() => ({
enabled: isWorkspacesEnabled.value
})
);
const { result: fullWorkspaceResult } = useQuery(
workspaceSwitcherHeaderWorkspaceQuery,
() => ({
slug: result.value?.activeUser?.activeWorkspace?.slug || ""
}),
{
enabled: !!result.value?.activeUser?.activeWorkspace?.slug && isWorkspacesEnabled.value && !!result.value?.activeUser?.activeWorkspace?.role
}
);
const showDiscoverableWorkspacesModal = ref(false);
const isInviteDialogOpen = ref(false);
const activeWorkspace = computed(() => result.value?.activeUser?.activeWorkspace);
const fullActiveWorkspace = computed(() => fullWorkspaceResult.value?.workspaceBySlug);
const ssoExpiredWorkspace = computed(
() => result.value?.activeUser?.expiredSsoSessions?.find(
(session) => session.slug === activeWorkspace.value?.slug
)
);
const hasDiscoverableWorkspaces = computed(
() => (result.value?.activeUser?.discoverableWorkspaces?.length || 0) > 0
);
const discoverableWorkspacesAndJoinRequestsCount = computed(
() => (result.value?.activeUser?.discoverableWorkspaces?.length || 0) + (result.value?.activeUser?.workspaceJoinRequests?.totalCount || 0)
);
const hasDiscoverableWorkspacesOrJoinRequests = computed(
() => discoverableWorkspacesAndJoinRequestsCount.value > 0
);
if (true) {
onActiveWorkspaceResult(({ data }) => {
if (data?.activeUser?.activeWorkspace) {
$intercom.updateCompany({
id: data.activeUser.activeWorkspace.id,
name: data.activeUser.activeWorkspace.name
});
}
});
}
const __returned__ = { $intercom, isWorkspacesEnabled, menuButtonId, result, onActiveWorkspaceResult, fullWorkspaceResult, showDiscoverableWorkspacesModal, isInviteDialogOpen, activeWorkspace, fullActiveWorkspace, ssoExpiredWorkspace, hasDiscoverableWorkspaces, discoverableWorkspacesAndJoinRequestsCount, hasDiscoverableWorkspacesOrJoinRequests, get Menu() {
return Menu;
}, get MenuButton() {
return MenuButton;
}, get MenuItems() {
return MenuItems;
}, get MenuItem() {
return MenuItem;
}, get ChevronDownIcon() {
return ChevronDownIcon;
}, get workspaceRoute() {
return workspaceRoute;
} };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
});
import { resolveComponent as _resolveComponent, openBlock as _openBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, withCtx as _withCtx, createTextVNode as _createTextVNode, Transition as _Transition } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
const _hoisted_1 = {
class: "inline-block",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:2:3"
};
const _hoisted_2 = {
class: "flex items-center gap-2 p-0.5 pr-1.5 hover:bg-highlight-2 rounded",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:6:9"
};
const _hoisted_3 = {
class: "relative",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:7:11"
};
const _hoisted_4 = {
key: 0,
class: "absolute -top-[4px] -right-[4px] size-3 border-[2px] border-foundation-page bg-danger rounded-full",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:12:13"
};
const _hoisted_5 = {
class: "text-body-xs text-foreground truncate max-w-40",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:17:11"
};
const _hoisted_6 = {
class: "p-2 border-t border-outline-2",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:59:13"
};
const _hoisted_7 = {
class: "relative",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:65:17"
};
const _hoisted_8 = {
key: 1,
class: "absolute -top-[4px] -right-[4px] size-3 border-[2px] border-foundation-page bg-danger rounded-full",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:69:19"
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_WorkspaceAvatar = __nuxt_component_0;
const _component_HeaderWorkspaceSwitcherHeaderProjects = __nuxt_component_1;
const _component_HeaderWorkspaceSwitcherHeaderSsoExpired = __nuxt_component_2;
const _component_HeaderWorkspaceSwitcherHeaderWorkspace = __nuxt_component_3;
const _component_HeaderWorkspaceSwitcherHeader = __nuxt_component_4;
const _component_HeaderWorkspaceSwitcherList = __nuxt_component_5;
const _component_CommonBadge = __nuxt_component_6;
const _component_NuxtLink = __nuxt_component_7;
const _component_InviteDialogWorkspace = __nuxt_component_8;
const _component_WorkspaceDiscoverableWorkspacesModal = __nuxt_component_9;
return _openBlock(), _createElementBlock("div", _hoisted_1, [
_createVNode($setup["Menu"], {
as: "div",
class: "flex items-center",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:3:5"
}, {
default: _withCtx(() => [
_createVNode($setup["MenuButton"], {
id: $setup.menuButtonId,
class: "w-full",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:4:7"
}, {
default: _withCtx(({ open: userOpen }) => [
_cache[4] || (_cache[4] = _createElementVNode(
"span",
{
class: "sr-only",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:5:9"
},
"Open workspace menu",
-1
/* CACHED */
)),
_createElementVNode("div", _hoisted_2, [
_createElementVNode("div", _hoisted_3, [
_createVNode(_component_WorkspaceAvatar, {
name: $setup.activeWorkspace?.name || "Personal projects",
logo: $setup.activeWorkspace?.logo,
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:8:13"
}, null, 8, ["name", "logo"]),
$setup.hasDiscoverableWorkspaces ? (_openBlock(), _createElementBlock("div", _hoisted_4)) : _createCommentVNode("v-if", true)
]),
_createElementVNode(
"p",
_hoisted_5,
_toDisplayString($setup.activeWorkspace?.name || "Personal projects"),
1
/* TEXT */
),
_createVNode($setup["ChevronDownIcon"], {
class: _normalizeClass([userOpen ? "rotate-180" : "", "h-3 w-3 flex-shrink-0"]),
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:20:11"
}, null, 8, ["class"])
])
]),
_: 1
/* STABLE */
}, 8, ["id"]),
_createVNode(_Transition, {
"enter-active-class": "transition ease-out duration-200",
"enter-from-class": "transform opacity-0 scale-95",
"enter-to-class": "transform opacity-100 scale-100",
"leave-active-class": "transition ease-in duration-75",
"leave-from-class": "transform opacity-100 scale-100",
"leave-to-class": "transform opacity-0 scale-95",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:26:7"
}, {
default: _withCtx(() => [
_createVNode($setup["MenuItems"], {
class: "absolute left-2 lg:left-3 top-[3.2rem] lg:top-14 w-[17rem] origin-top-right bg-foundation outline outline-1 outline-primary-muted rounded-md shadow-lg overflow-hidden",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:34:9"
}, {
default: _withCtx(() => [
!$setup.activeWorkspace ? (_openBlock(), _createBlock(_component_HeaderWorkspaceSwitcherHeaderProjects, {
key: 0,
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:37:11"
})) : $setup.ssoExpiredWorkspace ? (_openBlock(), _createBlock(_component_HeaderWorkspaceSwitcherHeaderSsoExpired, {
key: 1,
workspace: $setup.ssoExpiredWorkspace,
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:38:11"
}, null, 8, ["workspace"])) : $setup.activeWorkspace.role ? (_openBlock(), _createBlock(_component_HeaderWorkspaceSwitcherHeaderWorkspace, {
key: 2,
workspace: $setup.fullActiveWorkspace,
onOpenInviteDialog: _cache[0] || (_cache[0] = ($event) => $setup.isInviteDialogOpen = true),
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:42:11"
}, null, 8, ["workspace"])) : (_openBlock(), _createBlock(_component_HeaderWorkspaceSwitcherHeader, {
key: 3,
name: $setup.activeWorkspace?.name,
logo: $setup.activeWorkspace?.logo,
to: $setup.workspaceRoute($setup.activeWorkspace?.slug),
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:47:11"
}, {
default: _withCtx(() => [..._cache[5] || (_cache[5] = [
_createElementVNode(
"p",
{
class: "text-body-xs text-foreground-2",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:53:13"
},
" You are not part of this workspace. ",
-1
/* CACHED */
)
])]),
_: 1
/* STABLE */
}, 8, ["name", "logo", "to"])),
_createVNode(_component_HeaderWorkspaceSwitcherList, {
class: "border-t border-outline-2",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:57:11"
}),
$setup.hasDiscoverableWorkspacesOrJoinRequests ? (_openBlock(), _createBlock($setup["MenuItem"], {
key: 4,
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:58:11"
}, {
default: _withCtx(() => [
_createElementVNode("div", _hoisted_6, [
_createVNode(_component_NuxtLink, {
class: "flex justify-between items-center cursor-pointer hover:bg-highlight-1 py-1 px-2 rounded",
onClick: _cache[1] || (_cache[1] = ($event) => $setup.showDiscoverableWorkspacesModal = true),
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:60:15"
}, {
default: _withCtx(() => [
_cache[6] || (_cache[6] = _createElementVNode(
"p",
{
class: "text-body-xs text-foreground",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:64:17"
},
"Join existing workspaces",
-1
/* CACHED */
)),
_createElementVNode("div", _hoisted_7, [
$setup.hasDiscoverableWorkspacesOrJoinRequests ? (_openBlock(), _createBlock(_component_CommonBadge, {
key: 0,
rounded: "",
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:66:19"
}, {
default: _withCtx(() => [
_createTextVNode(
_toDisplayString($setup.discoverableWorkspacesAndJoinRequestsCount),
1
/* TEXT */
)
]),
_: 1
/* STABLE */
})) : _createCommentVNode("v-if", true),
$setup.hasDiscoverableWorkspaces ? (_openBlock(), _createElementBlock("div", _hoisted_8)) : _createCommentVNode("v-if", true)
])
]),
_: 1
/* STABLE */
})
])
]),
_: 1
/* STABLE */
})) : _createCommentVNode("v-if", true)
]),
_: 1
/* STABLE */
})
]),
_: 1
/* STABLE */
})
]),
_: 1
/* STABLE */
}),
_createVNode(_component_InviteDialogWorkspace, {
open: $setup.isInviteDialogOpen,
"onUpdate:open": _cache[2] || (_cache[2] = ($event) => $setup.isInviteDialogOpen = $event),
workspace: $setup.fullActiveWorkspace,
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:81:5"
}, null, 8, ["open", "workspace"]),
_createVNode(_component_WorkspaceDiscoverableWorkspacesModal, {
open: $setup.showDiscoverableWorkspacesModal,
"onUpdate:open": _cache[3] || (_cache[3] = ($event) => $setup.showDiscoverableWorkspacesModal = $event),
"data-v-inspector": "components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue:86:5"
}, null, 8, ["open"])
]);
}
_sfc_main.__hmrId = "d9c6eb17";
typeof __VUE_HMR_RUNTIME__ !== "undefined" && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main);
import.meta.hot.on("file-changed", ({ file }) => {
__VUE_HMR_RUNTIME__.CHANGED_FILE = file;
});
import.meta.hot.accept((mod) => {
if (!mod) return;
const { default: updated, _rerender_only } = mod;
if (_rerender_only) {
__VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render);
} else {
__VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated);
}
});
import _export_sfc from "/_nuxt/@id/__x00__plugin-vue:export-helper";
export default /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:/speckle-server/packages/frontend-2/components/header/WorkspaceSwitcher/WorkspaceSwitcher.vue"]]);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0RkEsU0FBUyxNQUFNLFlBQVksV0FBVyxnQkFBZ0I7QUFDdEQsU0FBUyxnQkFBZ0I7QUFDekI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLGtDQUFrQztBQUMzQyxTQUFTLGVBQWU7QUFDeEIsU0FBUyxzQkFBc0I7Ozs7Ozs7OztBQUUvQixZQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxDQVFQO0FBRUQsWUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsQ0FpQlA7QUFFRCxVQUFNLEVBQUUsVUFBVSxJQUFJLFdBQVc7QUFDakMsVUFBTSxzQkFBc0IsdUJBQXVCO0FBQ25ELFVBQU0sZUFBZSxNQUFNO0FBQzNCLFVBQU0sRUFBRSxRQUFRLFVBQVUsd0JBQXdCLElBQUk7QUFBQSxNQUNwRDtBQUFBLE1BQ0EsT0FBTztBQUFBLFFBQ0wsbUJBQW1CO0FBQUEsVUFDakIsUUFBUSwyQkFBMkI7QUFBQSxRQUNyQztBQUFBLE1BQ0Y7QUFBQSxNQUNBLE9BQU87QUFBQSxRQUNMLFNBQVMsb0JBQW9CO0FBQUEsTUFDL0I7QUFBQSxJQUNGO0FBRUEsVUFBTSxFQUFFLFFBQVEsb0JBQW9CLElBQUk7QUFBQSxNQUN0QztBQUFBLE1BQ0EsT0FBTztBQUFBLFFBQ0wsTUFBTSxPQUFPLE9BQU8sWUFBWSxpQkFBaUIsUUFBUTtBQUFBLE1BQzNEO0FBQUEsTUFDQTtBQUFBLFFBQ0UsU0FDRSxDQUFDLENBQUMsT0FBTyxPQUFPLFlBQVksaUJBQWlCLFFBQzdDLG9CQUFvQixTQUNwQixDQUFDLENBQUMsT0FBTyxPQUFPLFlBQVksaUJBQWlCO0FBQUEsTUFDakQ7QUFBQSxJQUNGO0FBRUEsVUFBTSxrQ0FBa0MsSUFBSSxLQUFLO0FBQ2pELFVBQU0scUJBQXFCLElBQUksS0FBSztBQUVwQyxVQUFNLGtCQUFrQixTQUFTLE1BQU0sT0FBTyxPQUFPLFlBQVksZUFBZTtBQUNoRixVQUFNLHNCQUFzQixTQUFTLE1BQU0sb0JBQW9CLE9BQU8sZUFBZTtBQUNyRixVQUFNLHNCQUFzQjtBQUFBLE1BQVMsTUFDbkMsT0FBTyxPQUFPLFlBQVksb0JBQW9CO0FBQUEsUUFDNUMsQ0FBQyxZQUFZLFFBQVEsU0FBUyxnQkFBZ0IsT0FBTztBQUFBLE1BQ3ZEO0FBQUEsSUFDRjtBQUNBLFVBQU0sNEJBQTRCO0FBQUEsTUFDaEMsT0FBTyxPQUFPLE9BQU8sWUFBWSx3QkFBd0IsVUFBVSxLQUFLO0FBQUEsSUFDMUU7QUFDQSxVQUFNLDZDQUE2QztBQUFBLE1BQ2pELE9BQ0csT0FBTyxPQUFPLFlBQVksd0JBQXdCLFVBQVUsTUFDNUQsT0FBTyxPQUFPLFlBQVksdUJBQXVCLGNBQWM7QUFBQSxJQUNwRTtBQUNBLFVBQU0sMENBQTBDO0FBQUEsTUFDOUMsTUFBTSwyQ0FBMkMsUUFBUTtBQUFBLElBQzNEO0FBRUEsUUFBSSxJQUFZLEVBQVE7QUFDdEIsOEJBQXdCLENBQUMsRUFBRSxLQUFLLE1BQU07QUFDcEMsWUFBSSxNQUFNLFlBQVksaUJBQWlCO0FBQ3JDLG9CQUFVLGNBQWM7QUFBQSxZQUN0QixJQUFJLEtBQUssV0FBVyxnQkFBZ0I7QUFBQSxZQUNwQyxNQUFNLEtBQUssV0FBVyxnQkFBZ0I7QUFBQSxVQUN4QyxDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBOUxPLE9BQU07QUFBQSxFQUFlLG9CQUFpQjs7O0VBSWhDLE9BQU07QUFBQSxFQUFvRSxvQkFBaUI7OztFQUN6RixPQUFNO0FBQUEsRUFBVyxvQkFBaUI7Ozs7RUFPbkMsT0FBTTtBQUFBLEVBQXFHLG9CQUFpQjs7O0VBRzdILE9BQU07QUFBQSxFQUFpRCxvQkFBaUI7OztFQTBDcEUsT0FBTTtBQUFBLEVBQWdDLG9CQUFpQjs7O0VBTW5ELE9BQU07QUFBQSxFQUFXLG9CQUFpQjs7OztFQU1uQyxPQUFNO0FBQUEsRUFBcUcsb0JBQWlCOzs7Ozs7Ozs7Ozs7O3VCQXJFOUksb0JBdUZNLE9BdkZOLFlBdUZNO0FBQUEsSUF0RkosYUE0RU87QUFBQSxNQTVFRCxJQUFHO0FBQUEsTUFBTSxPQUFNO0FBQUEsTUFBb0Isb0JBQWlCO0FBQUE7d0JBQ3hELE1BcUJhO0FBQUEsUUFyQmIsYUFxQmE7QUFBQSxVQXJCQSxJQUFJO0FBQUEsVUFBMEMsT0FBTTtBQUFBLFVBQVMsb0JBQWlCO0FBQUE7NEJBQ3pGLENBQWlJLFFBRHBGLFNBQVE7QUFBQSxzQ0FDckQ7QUFBQSxjQUFpSTtBQUFBO0FBQUEsZ0JBQTNILE9BQU07QUFBQSxnQkFBVSxvQkFBaUI7QUFBQTtjQUFnRTtBQUFBLGNBQW1CO0FBQUE7QUFBQTtBQUFBLFlBQzFILG9CQWtCTSxPQWxCTixZQWtCTTtBQUFBLGNBakJKLG9CQVNNLE9BVE4sWUFTTTtBQUFBLGdCQVJKLGFBR0U7QUFBQSxrQkFGQyxNQUFNLHdCQUFpQixRQUFJO0FBQUEsa0JBQzNCLE1BQU0sd0JBQWlCO0FBQUEsa0JBQU0sb0JBQWlCO0FBQUE7Z0JBR3pDLGtEQURSLG9CQUdFLE9BSEYsVUFHRTs7Y0FFSjtBQUFBLGdCQUVJO0FBQUEsZ0JBRko7QUFBQSxnQkFFSSxpQkFEQyx3QkFBaUIsUUFBSTtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBRTFCLGFBR0U7QUFBQSxnQkFGQyxPQUFLLGlCQUFFLFdBQVEsbUJBQ1YsdUJBQXVCO0FBQUEsZ0JBQUMsb0JBQWlCO0FBQUE7Ozs7OztRQUlyRCxhQW9EYTtBQUFBLFVBbkRYLHNCQUFtQjtBQUFBLFVBQ25CLG9CQUFpQjtBQUFBLFVBQ2pCLGtCQUFlO0FBQUEsVUFDZixzQkFBbUI7QUFBQSxVQUNuQixvQkFBaUI7QUFBQSxVQUNqQixrQkFBZTtBQUFBLFVBQStCLG9CQUFpQjtBQUFBOzRCQUUvRCxNQTJDWTtBQUFBLFlBM0NaLGFBMkNZO0FBQUEsY0ExQ1YsT0FBTTtBQUFBLGNBQXlLLG9CQUFpQjtBQUFBO2dDQXdCbk0sTUFFa0U7QUFBQSxpQkF4QmpCLHdDQUE5QyxhQUFvSjtBQUFBO2tCQUFyRixvQkFBaUI7QUFBQSxzQkFFbkUsNENBRGIsYUFHRTtBQUFBO2tCQURDLFdBQVc7QUFBQSxrQkFBcUIsb0JBQWlCO0FBQUEsOENBR3ZDLHVCQUFnQixzQkFEN0IsYUFJRTtBQUFBO2tCQUZDLFdBQVc7QUFBQSxrQkFDWCxvQkFBa0Isc0NBQUUsNEJBQWtCO0FBQUEsa0JBQVMsb0JBQWlCO0FBQUEsNkRBRW5FLGFBU2dDO0FBQUE7a0JBUDdCLE1BQU0sd0JBQWlCO0FBQUEsa0JBQ3ZCLE1BQU0sd0JBQWlCO0FBQUEsa0JBQ3ZCLElBQUksc0JBQWUsd0JBQWlCLElBQUk7QUFBQSxrQkFBRyxvQkFBaUI7QUFBQTtvQ0FFN0QsTUFFSTtBQUFBLG9CQUZKO0FBQUEsc0JBRUk7QUFBQTtBQUFBLHdCQUZELE9BQU07QUFBQSx3QkFBaUMsb0JBQWlCO0FBQUE7c0JBQWtFO0FBQUEsc0JBRTdIO0FBQUE7QUFBQTtBQUFBOzs7O2dCQUVGLGFBQW9KO0FBQUEsa0JBQXZILE9BQU07QUFBQSxrQkFBNEIsb0JBQWlCO0FBQUE7Z0JBQ2hFLGdFQUFoQixhQWtCVztBQUFBO2tCQWxCOEMsb0JBQWlCO0FBQUE7b0NBQ3hFLE1BZ0JNO0FBQUEsb0JBaEJOLG9CQWdCTSxPQWhCTixZQWdCTTtBQUFBLHNCQWZKLGFBY1c7QUFBQSx3QkFiVCxPQUFNO0FBQUEsd0JBQ0wsU0FBSyxzQ0FBRSx5Q0FBK0I7QUFBQSx3QkFBUyxvQkFBaUI7QUFBQTswQ0FFakUsTUFBdUo7QUFBQSxvREFBdko7QUFBQSw0QkFBdUo7QUFBQTtBQUFBLDhCQUFwSixPQUFNO0FBQUEsOEJBQStCLG9CQUFpQjtBQUFBOzRCQUFrRTtBQUFBLDRCQUF3QjtBQUFBO0FBQUE7QUFBQSwwQkFDbkosb0JBUU0sT0FSTixZQVFNO0FBQUEsNEJBUGUsZ0VBQW5CLGFBRWM7QUFBQTs4QkFGOEM7QUFBQSw4QkFBUSxvQkFBaUI7QUFBQTtnREFDbkYsTUFBZ0Q7QUFBQTttREFBN0MsaURBQTBDO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7NEJBR3ZDLGtEQURSLG9CQUdFLE9BSEYsVUFHRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFTaEIsYUFHRTtBQUFBLE1BRlEsTUFBTTtBQUFBLHlGQUFrQjtBQUFBLE1BQy9CLFdBQVc7QUFBQSxNQUFxQixvQkFBaUI7QUFBQTtJQUdwRCxhQUVFO0FBQUEsTUFEUSxNQUFNO0FBQUEsc0dBQStCO0FBQUEsTUFBRSxvQkFBaUI7QUFBQSIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsiV29ya3NwYWNlU3dpdGNoZXIudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiaW5saW5lLWJsb2NrXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZToyOjNcIj5cclxuICAgIDxNZW51IGFzPVwiZGl2XCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9Xb3Jrc3BhY2VTd2l0Y2hlci9Xb3Jrc3BhY2VTd2l0Y2hlci52dWU6Mzo1XCI+XHJcbiAgICAgIDxNZW51QnV0dG9uIDppZD1cIm1lbnVCdXR0b25JZFwiIHYtc2xvdD1cInsgb3BlbjogdXNlck9wZW4gfVwiIGNsYXNzPVwidy1mdWxsXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZTo0OjdcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjU6OVwiPk9wZW4gd29ya3NwYWNlIG1lbnU8L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHAtMC41IHByLTEuNSBob3ZlcjpiZy1oaWdobGlnaHQtMiByb3VuZGVkXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZTo2OjlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9Xb3Jrc3BhY2VTd2l0Y2hlci9Xb3Jrc3BhY2VTd2l0Y2hlci52dWU6NzoxMVwiPlxyXG4gICAgICAgICAgICA8V29ya3NwYWNlQXZhdGFyXHJcbiAgICAgICAgICAgICAgOm5hbWU9XCJhY3RpdmVXb3Jrc3BhY2U/Lm5hbWUgfHwgJ1BlcnNvbmFsIHByb2plY3RzJ1wiXHJcbiAgICAgICAgICAgICAgOmxvZ289XCJhY3RpdmVXb3Jrc3BhY2U/LmxvZ29cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjg6MTNcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgdi1pZj1cImhhc0Rpc2NvdmVyYWJsZVdvcmtzcGFjZXNcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1bNHB4XSAtcmlnaHQtWzRweF0gc2l6ZS0zIGJvcmRlci1bMnB4XSBib3JkZXItZm91bmRhdGlvbi1wYWdlIGJnLWRhbmdlciByb3VuZGVkLWZ1bGxcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjEyOjEzXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJvZHkteHMgdGV4dC1mb3JlZ3JvdW5kIHRydW5jYXRlIG1heC13LTQwXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZToxNzoxMVwiPlxyXG4gICAgICAgICAgICB7eyBhY3RpdmVXb3Jrc3BhY2U/Lm5hbWUgfHwgJ1BlcnNvbmFsIHByb2plY3RzJyB9fVxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPENoZXZyb25Eb3duSWNvblxyXG4gICAgICAgICAgICA6Y2xhc3M9XCJ1c2VyT3BlbiA/ICdyb3RhdGUtMTgwJyA6ICcnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJoLTMgdy0zIGZsZXgtc2hyaW5rLTBcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjIwOjExXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvTWVudUJ1dHRvbj5cclxuICAgICAgPFRyYW5zaXRpb25cclxuICAgICAgICBlbnRlci1hY3RpdmUtY2xhc3M9XCJ0cmFuc2l0aW9uIGVhc2Utb3V0IGR1cmF0aW9uLTIwMFwiXHJcbiAgICAgICAgZW50ZXItZnJvbS1jbGFzcz1cInRyYW5zZm9ybSBvcGFjaXR5LTAgc2NhbGUtOTVcIlxyXG4gICAgICAgIGVudGVyLXRvLWNsYXNzPVwidHJhbnNmb3JtIG9wYWNpdHktMTAwIHNjYWxlLTEwMFwiXHJcbiAgICAgICAgbGVhdmUtYWN0aXZlLWNsYXNzPVwidHJhbnNpdGlvbiBlYXNlLWluIGR1cmF0aW9uLTc1XCJcclxuICAgICAgICBsZWF2ZS1mcm9tLWNsYXNzPVwidHJhbnNmb3JtIG9wYWNpdHktMTAwIHNjYWxlLTEwMFwiXHJcbiAgICAgICAgbGVhdmUtdG8tY2xhc3M9XCJ0cmFuc2Zvcm0gb3BhY2l0eS0wIHNjYWxlLTk1XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZToyNjo3XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxNZW51SXRlbXNcclxuICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgbGVmdC0yIGxnOmxlZnQtMyB0b3AtWzMuMnJlbV0gbGc6dG9wLTE0IHctWzE3cmVtXSBvcmlnaW4tdG9wLXJpZ2h0IGJnLWZvdW5kYXRpb24gb3V0bGluZSBvdXRsaW5lLTEgb3V0bGluZS1wcmltYXJ5LW11dGVkIHJvdW5kZWQtbWQgc2hhZG93LWxnIG92ZXJmbG93LWhpZGRlblwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9Xb3Jrc3BhY2VTd2l0Y2hlci9Xb3Jrc3BhY2VTd2l0Y2hlci52dWU6MzQ6OVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPEhlYWRlcldvcmtzcGFjZVN3aXRjaGVySGVhZGVyUHJvamVjdHMgdi1pZj1cIiFhY3RpdmVXb3Jrc3BhY2VcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjM3OjExXCIgLz5cclxuICAgICAgICAgIDxIZWFkZXJXb3Jrc3BhY2VTd2l0Y2hlckhlYWRlclNzb0V4cGlyZWRcclxuICAgICAgICAgICAgdi1lbHNlLWlmPVwic3NvRXhwaXJlZFdvcmtzcGFjZVwiXHJcbiAgICAgICAgICAgIDp3b3Jrc3BhY2U9XCJzc29FeHBpcmVkV29ya3NwYWNlXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZTozODoxMVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPEhlYWRlcldvcmtzcGFjZVN3aXRjaGVySGVhZGVyV29ya3NwYWNlXHJcbiAgICAgICAgICAgIHYtZWxzZS1pZj1cImFjdGl2ZVdvcmtzcGFjZS5yb2xlXCJcclxuICAgICAgICAgICAgOndvcmtzcGFjZT1cImZ1bGxBY3RpdmVXb3Jrc3BhY2VcIlxyXG4gICAgICAgICAgICBAb3Blbi1pbnZpdGUtZGlhbG9nPVwiaXNJbnZpdGVEaWFsb2dPcGVuID0gdHJ1ZVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9Xb3Jrc3BhY2VTd2l0Y2hlci9Xb3Jrc3BhY2VTd2l0Y2hlci52dWU6NDI6MTFcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxIZWFkZXJXb3Jrc3BhY2VTd2l0Y2hlckhlYWRlclxyXG4gICAgICAgICAgICB2LWVsc2VcclxuICAgICAgICAgICAgOm5hbWU9XCJhY3RpdmVXb3Jrc3BhY2U/Lm5hbWVcIlxyXG4gICAgICAgICAgICA6bG9nbz1cImFjdGl2ZVdvcmtzcGFjZT8ubG9nb1wiXHJcbiAgICAgICAgICAgIDp0bz1cIndvcmtzcGFjZVJvdXRlKGFjdGl2ZVdvcmtzcGFjZT8uc2x1ZylcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjQ3OjExXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJvZHkteHMgdGV4dC1mb3JlZ3JvdW5kLTJcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjUzOjEzXCI+XHJcbiAgICAgICAgICAgICAgWW91IGFyZSBub3QgcGFydCBvZiB0aGlzIHdvcmtzcGFjZS5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPC9IZWFkZXJXb3Jrc3BhY2VTd2l0Y2hlckhlYWRlcj5cclxuICAgICAgICAgIDxIZWFkZXJXb3Jrc3BhY2VTd2l0Y2hlckxpc3QgY2xhc3M9XCJib3JkZXItdCBib3JkZXItb3V0bGluZS0yXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZTo1NzoxMVwiIC8+XHJcbiAgICAgICAgICA8TWVudUl0ZW0gdi1pZj1cImhhc0Rpc2NvdmVyYWJsZVdvcmtzcGFjZXNPckpvaW5SZXF1ZXN0c1wiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9Xb3Jrc3BhY2VTd2l0Y2hlci9Xb3Jrc3BhY2VTd2l0Y2hlci52dWU6NTg6MTFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMiBib3JkZXItdCBib3JkZXItb3V0bGluZS0yXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZTo1OToxM1wiPlxyXG4gICAgICAgICAgICAgIDxOdXh0TGlua1xyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgaG92ZXI6YmctaGlnaGxpZ2h0LTEgcHktMSBweC0yIHJvdW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwic2hvd0Rpc2NvdmVyYWJsZVdvcmtzcGFjZXNNb2RhbCA9IHRydWVcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjYwOjE1XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtYm9keS14cyB0ZXh0LWZvcmVncm91bmRcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjY0OjE3XCI+Sm9pbiBleGlzdGluZyB3b3Jrc3BhY2VzPC9wPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZTo2NToxN1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Q29tbW9uQmFkZ2Ugdi1pZj1cImhhc0Rpc2NvdmVyYWJsZVdvcmtzcGFjZXNPckpvaW5SZXF1ZXN0c1wiIHJvdW5kZWQgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZTo2NjoxOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGRpc2NvdmVyYWJsZVdvcmtzcGFjZXNBbmRKb2luUmVxdWVzdHNDb3VudCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L0NvbW1vbkJhZGdlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgdi1pZj1cImhhc0Rpc2NvdmVyYWJsZVdvcmtzcGFjZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1bNHB4XSAtcmlnaHQtWzRweF0gc2l6ZS0zIGJvcmRlci1bMnB4XSBib3JkZXItZm91bmRhdGlvbi1wYWdlIGJnLWRhbmdlciByb3VuZGVkLWZ1bGxcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjY5OjE5XCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvTnV4dExpbms+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9NZW51SXRlbT5cclxuICAgICAgICA8L01lbnVJdGVtcz5cclxuICAgICAgPC9UcmFuc2l0aW9uPlxyXG4gICAgPC9NZW51PlxyXG5cclxuICAgIDxJbnZpdGVEaWFsb2dXb3Jrc3BhY2VcclxuICAgICAgdi1tb2RlbDpvcGVuPVwiaXNJbnZpdGVEaWFsb2dPcGVuXCJcclxuICAgICAgOndvcmtzcGFjZT1cImZ1bGxBY3RpdmVXb3Jrc3BhY2VcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjgxOjVcIlxyXG4gICAgLz5cclxuXHJcbiAgICA8V29ya3NwYWNlRGlzY292ZXJhYmxlV29ya3NwYWNlc01vZGFsXHJcbiAgICAgIHYtbW9kZWw6b3Blbj1cInNob3dEaXNjb3ZlcmFibGVXb3Jrc3BhY2VzTW9kYWxcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvV29ya3NwYWNlU3dpdGNoZXIvV29ya3NwYWNlU3dpdGNoZXIudnVlOjg2OjVcIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB7IE1lbnUsIE1lbnVCdXR0b24sIE1lbnVJdGVtcywgTWVudUl0ZW0gfSBmcm9tICdAaGVhZGxlc3N1aS92dWUnXHJcbmltcG9ydCB7IHVzZVF1ZXJ5IH0gZnJvbSAnQHZ1ZS9hcG9sbG8tY29tcG9zYWJsZSdcclxuaW1wb3J0IHtcclxuICBuYXZpZ2F0aW9uV29ya3NwYWNlU3dpdGNoZXJRdWVyeSxcclxuICB3b3Jrc3BhY2VTd2l0Y2hlckhlYWRlcldvcmtzcGFjZVF1ZXJ5XHJcbn0gZnJvbSAnfi9saWIvbmF2aWdhdGlvbi9ncmFwaHFsL3F1ZXJpZXMnXHJcbmltcG9ydCB7IENoZXZyb25Eb3duSWNvbiB9IGZyb20gJ0BoZXJvaWNvbnMvdnVlLzI0L291dGxpbmUnXHJcbmltcG9ydCB7IFdvcmtzcGFjZUpvaW5SZXF1ZXN0U3RhdHVzIH0gZnJvbSAnfi9saWIvY29tbW9uL2dlbmVyYXRlZC9ncWwvZ3JhcGhxbCdcclxuaW1wb3J0IHsgZ3JhcGhxbCB9IGZyb20gJ34vbGliL2NvbW1vbi9nZW5lcmF0ZWQvZ3FsJ1xyXG5pbXBvcnQgeyB3b3Jrc3BhY2VSb3V0ZSB9IGZyb20gJ34vbGliL2NvbW1vbi9oZWxwZXJzL3JvdXRlJ1xyXG5cclxuZ3JhcGhxbChgXHJcbiAgZnJhZ21lbnQgV29ya3NwYWNlU3dpdGNoZXJBY3RpdmVXb3Jrc3BhY2VfTGltaXRlZFdvcmtzcGFjZSBvbiBMaW1pdGVkV29ya3NwYWNlIHtcclxuICAgIGlkXHJcbiAgICBuYW1lXHJcbiAgICBsb2dvXHJcbiAgICBzbHVnXHJcbiAgICByb2xlXHJcbiAgfVxyXG5gKVxyXG5cclxuZ3JhcGhxbChgXHJcbiAgZnJhZ21lbnQgV29ya3NwYWNlU3dpdGNoZXJBY3RpdmVXb3Jrc3BhY2VfVXNlciBvbiBVc2VyIHtcclxuICAgIGlkXHJcbiAgICBhY3RpdmVXb3Jrc3BhY2Uge1xyXG4gICAgICAuLi5Xb3Jrc3BhY2VTd2l0Y2hlckFjdGl2ZVdvcmtzcGFjZV9MaW1pdGVkV29ya3NwYWNlXHJcbiAgICB9XHJcbiAgICBleHBpcmVkU3NvU2Vzc2lvbnMge1xyXG4gICAgICBpZFxyXG4gICAgICAuLi5IZWFkZXJXb3Jrc3BhY2VTd2l0Y2hlckhlYWRlckV4cGlyZWRTc29fTGltaXRlZFdvcmtzcGFjZVxyXG4gICAgfVxyXG4gICAgZGlzY292ZXJhYmxlV29ya3NwYWNlcyB7XHJcbiAgICAgIGlkXHJcbiAgICB9XHJcbiAgICB3b3Jrc3BhY2VKb2luUmVxdWVzdHMoZmlsdGVyOiAkam9pblJlcXVlc3RGaWx0ZXIpIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gIH1cclxuYClcclxuXHJcbmNvbnN0IHsgJGludGVyY29tIH0gPSB1c2VOdXh0QXBwKClcclxuY29uc3QgaXNXb3Jrc3BhY2VzRW5hYmxlZCA9IHVzZUlzV29ya3NwYWNlc0VuYWJsZWQoKVxyXG5jb25zdCBtZW51QnV0dG9uSWQgPSB1c2VJZCgpXHJcbmNvbnN0IHsgcmVzdWx0LCBvblJlc3VsdDogb25BY3RpdmVXb3Jrc3BhY2VSZXN1bHQgfSA9IHVzZVF1ZXJ5KFxyXG4gIG5hdmlnYXRpb25Xb3Jrc3BhY2VTd2l0Y2hlclF1ZXJ5LFxyXG4gICgpID0+ICh7XHJcbiAgICBqb2luUmVxdWVzdEZpbHRlcjoge1xyXG4gICAgICBzdGF0dXM6IFdvcmtzcGFjZUpvaW5SZXF1ZXN0U3RhdHVzLlBlbmRpbmdcclxuICAgIH1cclxuICB9KSxcclxuICAoKSA9PiAoe1xyXG4gICAgZW5hYmxlZDogaXNXb3Jrc3BhY2VzRW5hYmxlZC52YWx1ZVxyXG4gIH0pXHJcbilcclxuLy8gU2VwZXJhdGUgcXVlcnkgdG8gZ2V0IHRoZSBmdWxsIHdvcmtzcGFjZSwgYmVjYXVzZSBpdCdzIG5vdCBhbHdheXMgbmVlZGVkXHJcbmNvbnN0IHsgcmVzdWx0OiBmdWxsV29ya3NwYWNlUmVzdWx0IH0gPSB1c2VRdWVyeShcclxuICB3b3Jrc3BhY2VTd2l0Y2hlckhlYWRlcldvcmtzcGFjZVF1ZXJ5LFxyXG4gICgpID0+ICh7XHJcbiAgICBzbHVnOiByZXN1bHQudmFsdWU/LmFjdGl2ZVVzZXI/LmFjdGl2ZVdvcmtzcGFjZT8uc2x1ZyB8fCAnJ1xyXG4gIH0pLFxyXG4gIHtcclxuICAgIGVuYWJsZWQ6XHJcbiAgICAgICEhcmVzdWx0LnZhbHVlPy5hY3RpdmVVc2VyPy5hY3RpdmVXb3Jrc3BhY2U/LnNsdWcgJiZcclxuICAgICAgaXNXb3Jrc3BhY2VzRW5hYmxlZC52YWx1ZSAmJlxyXG4gICAgICAhIXJlc3VsdC52YWx1ZT8uYWN0aXZlVXNlcj8uYWN0aXZlV29ya3NwYWNlPy5yb2xlXHJcbiAgfVxyXG4pXHJcblxyXG5jb25zdCBzaG93RGlzY292ZXJhYmxlV29ya3NwYWNlc01vZGFsID0gcmVmKGZhbHNlKVxyXG5jb25zdCBpc0ludml0ZURpYWxvZ09wZW4gPSByZWYoZmFsc2UpXHJcblxyXG5jb25zdCBhY3RpdmVXb3Jrc3BhY2UgPSBjb21wdXRlZCgoKSA9PiByZXN1bHQudmFsdWU/LmFjdGl2ZVVzZXI/LmFjdGl2ZVdvcmtzcGFjZSlcclxuY29uc3QgZnVsbEFjdGl2ZVdvcmtzcGFjZSA9IGNvbXB1dGVkKCgpID0+IGZ1bGxXb3Jrc3BhY2VSZXN1bHQudmFsdWU/LndvcmtzcGFjZUJ5U2x1ZylcclxuY29uc3Qgc3NvRXhwaXJlZFdvcmtzcGFjZSA9IGNvbXB1dGVkKCgpID0+XHJcbiAgcmVzdWx0LnZhbHVlPy5hY3RpdmVVc2VyPy5leHBpcmVkU3NvU2Vzc2lvbnM/LmZpbmQoXHJcbiAgICAoc2Vzc2lvbikgPT4gc2Vzc2lvbi5zbHVnID09PSBhY3RpdmVXb3Jrc3BhY2UudmFsdWU/LnNsdWdcclxuICApXHJcbilcclxuY29uc3QgaGFzRGlzY292ZXJhYmxlV29ya3NwYWNlcyA9IGNvbXB1dGVkKFxyXG4gICgpID0+IChyZXN1bHQudmFsdWU/LmFjdGl2ZVVzZXI/LmRpc2NvdmVyYWJsZVdvcmtzcGFjZXM/Lmxlbmd0aCB8fCAwKSA+IDBcclxuKVxyXG5jb25zdCBkaXNjb3ZlcmFibGVXb3Jrc3BhY2VzQW5kSm9pblJlcXVlc3RzQ291bnQgPSBjb21wdXRlZChcclxuICAoKSA9PlxyXG4gICAgKHJlc3VsdC52YWx1ZT8uYWN0aXZlVXNlcj8uZGlzY292ZXJhYmxlV29ya3NwYWNlcz8ubGVuZ3RoIHx8IDApICtcclxuICAgIChyZXN1bHQudmFsdWU/LmFjdGl2ZVVzZXI/LndvcmtzcGFjZUpvaW5SZXF1ZXN0cz8udG90YWxDb3VudCB8fCAwKVxyXG4pXHJcbmNvbnN0IGhhc0Rpc2NvdmVyYWJsZVdvcmtzcGFjZXNPckpvaW5SZXF1ZXN0cyA9IGNvbXB1dGVkKFxyXG4gICgpID0+IGRpc2NvdmVyYWJsZVdvcmtzcGFjZXNBbmRKb2luUmVxdWVzdHNDb3VudC52YWx1ZSA+IDBcclxuKVxyXG5cclxuaWYgKGltcG9ydC5tZXRhLmNsaWVudCkge1xyXG4gIG9uQWN0aXZlV29ya3NwYWNlUmVzdWx0KCh7IGRhdGEgfSkgPT4ge1xyXG4gICAgaWYgKGRhdGE/LmFjdGl2ZVVzZXI/LmFjdGl2ZVdvcmtzcGFjZSkge1xyXG4gICAgICAkaW50ZXJjb20udXBkYXRlQ29tcGFueSh7XHJcbiAgICAgICAgaWQ6IGRhdGEuYWN0aXZlVXNlci5hY3RpdmVXb3Jrc3BhY2UuaWQsXHJcbiAgICAgICAgbmFtZTogZGF0YS5hY3RpdmVVc2VyLmFjdGl2ZVdvcmtzcGFjZS5uYW1lXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfSlcclxufVxyXG48L3NjcmlwdD5cclxuIl0sImZpbGUiOiJEOi9zcGVja2xlLXNlcnZlci9wYWNrYWdlcy9mcm9udGVuZC0yL2NvbXBvbmVudHMvaGVhZGVyL1dvcmtzcGFjZVN3aXRjaGVyL1dvcmtzcGFjZVN3aXRjaGVyLnZ1ZSJ9