tide-design-system 2.0.44 → 2.0.46
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/.storybook/main.ts +1 -1
- package/dist/style.css +1 -1
- package/dist/tide-design-system.cjs +2 -2
- package/dist/tide-design-system.esm.d.ts +164 -78
- package/dist/tide-design-system.esm.js +947 -913
- package/index.ts +6 -0
- package/package.json +5 -4
- package/src/assets/svg/icons/IconBed.svg +3 -0
- package/src/assets/svg/icons/IconEngine.svg +3 -0
- package/src/assets/svg/icons/IconGas.svg +3 -0
- package/src/assets/svg/icons/IconLevellingJack.svg +3 -0
- package/src/assets/svg/icons/IconOdometer.svg +3 -0
- package/src/assets/svg/icons/IconPowerOff.svg +3 -0
- package/src/assets/svg/icons/IconSleeps.svg +3 -0
- package/src/assets/svg/icons/IconSnowflake.svg +3 -0
- package/src/assets/svg/icons/IconUmbrella.svg +3 -0
- package/src/assets/svg/icons/IconWater.svg +3 -0
- package/src/assets/svg/icons/realm/rv/IconRvClassA.svg +3 -0
- package/src/assets/svg/icons/realm/rv/IconRvClassB.svg +3 -0
- package/src/assets/svg/icons/realm/rv/IconRvClassC.svg +3 -0
- package/src/assets/svg/icons/realm/rv/IconRvFifthWheel.svg +3 -0
- package/src/assets/svg/icons/realm/rv/IconRvFishHouse.svg +3 -0
- package/src/assets/svg/icons/realm/rv/IconRvParkModel.svg +3 -0
- package/src/assets/svg/icons/realm/rv/IconRvPopUpCamper.svg +3 -0
- package/src/assets/svg/icons/realm/rv/IconRvTravelTrailer.svg +3 -0
- package/src/assets/svg/icons/realm/rv/IconRvTruckCamper.svg +3 -0
- package/src/components/TideCard.vue +62 -8
- package/src/components/TideIcon.vue +16 -6
- package/src/components/TideInputCheckbox.vue +10 -47
- package/src/stories/TideCard.stories.ts +73 -10
- package/src/stories/TideInputCheckbox.stories.ts +18 -3
- package/src/types/Card.ts +14 -0
- package/src/types/Icon.ts +34 -2
- package/src/types/Realm.ts +2 -1
- package/dist/IconAccountBalance-0a430d19.cjs +0 -2
- package/dist/IconAccountBalance-ad4f4a95.js +0 -16
- package/dist/IconAdd-917e055b.js +0 -16
- package/dist/IconAdd-91de604b.cjs +0 -2
- package/dist/IconAiDescription-674cca6d.cjs +0 -2
- package/dist/IconAiDescription-e6f8ed46.js +0 -20
- package/dist/IconAlignSpace-5d64a8e4.js +0 -16
- package/dist/IconAlignSpace-7ee811f8.cjs +0 -2
- package/dist/IconApplePay-7742e162.js +0 -16
- package/dist/IconApplePay-92395240.cjs +0 -2
- package/dist/IconArrowBack-1810092d.js +0 -16
- package/dist/IconArrowBack-3d47d166.cjs +0 -2
- package/dist/IconArrowForward-613e128c.cjs +0 -2
- package/dist/IconArrowForward-ddabefc9.js +0 -16
- package/dist/IconArrowRight-9f39cdbb.cjs +0 -2
- package/dist/IconArrowRight-d93347c3.js +0 -16
- package/dist/IconAssignment-1983e555.js +0 -16
- package/dist/IconAssignment-915702cc.cjs +0 -2
- package/dist/IconAwardStar-447cf4fc.cjs +0 -2
- package/dist/IconAwardStar-8128aca1.js +0 -16
- package/dist/IconBookmark-3f6454d9.cjs +0 -2
- package/dist/IconBookmark-7d88d664.js +0 -16
- package/dist/IconCalendarMonth-2fd1e713.js +0 -16
- package/dist/IconCalendarMonth-bb5bbb9b.cjs +0 -2
- package/dist/IconCall-08f3119f.cjs +0 -2
- package/dist/IconCall-8aa582d9.js +0 -16
- package/dist/IconCheck-910929df.cjs +0 -2
- package/dist/IconCheck-cf7470ee.js +0 -16
- package/dist/IconChevronLeft-558206bb.js +0 -16
- package/dist/IconChevronLeft-6626777e.cjs +0 -2
- package/dist/IconChevronRight-28930a0b.js +0 -16
- package/dist/IconChevronRight-91bc7ad1.cjs +0 -2
- package/dist/IconClear-489c5a46.cjs +0 -2
- package/dist/IconClear-9419bf17.js +0 -16
- package/dist/IconClose-538a540f.cjs +0 -2
- package/dist/IconClose-abfb6177.js +0 -16
- package/dist/IconCycle-2affec71.js +0 -16
- package/dist/IconCycle-7b7c7325.cjs +0 -2
- package/dist/IconDelete-5cc224a1.cjs +0 -2
- package/dist/IconDelete-67b69553.js +0 -16
- package/dist/IconDiamond-4e736f5f.cjs +0 -2
- package/dist/IconDiamond-93af488a.js +0 -16
- package/dist/IconDraft-26850369.cjs +0 -2
- package/dist/IconDraft-6e70e48f.js +0 -16
- package/dist/IconEdit-16d34325.js +0 -16
- package/dist/IconEdit-b4d5f175.cjs +0 -2
- package/dist/IconError-4ad48be1.cjs +0 -2
- package/dist/IconError-a2922b95.js +0 -16
- package/dist/IconExpandContent-03a28bfb.cjs +0 -2
- package/dist/IconExpandContent-7e144d1c.js +0 -16
- package/dist/IconExpandLess-3a8a0552.js +0 -16
- package/dist/IconExpandLess-59a80211.cjs +0 -2
- package/dist/IconExpandMore-c600148e.js +0 -16
- package/dist/IconExpandMore-edf55cdd.cjs +0 -2
- package/dist/IconFacebook-4658b533.js +0 -16
- package/dist/IconFacebook-9c43095a.cjs +0 -2
- package/dist/IconFavorite-43091cef.cjs +0 -2
- package/dist/IconFavorite-d23faefe.js +0 -16
- package/dist/IconFavoriteFilled-71277849.cjs +0 -2
- package/dist/IconFavoriteFilled-aa0d6d5e.js +0 -16
- package/dist/IconFormatBold-4faa5f99.cjs +0 -2
- package/dist/IconFormatBold-70a5cacf.js +0 -16
- package/dist/IconFormatItalic-c06504d7.js +0 -16
- package/dist/IconFormatItalic-fee490fc.cjs +0 -2
- package/dist/IconFormatListBulleted-9493858a.js +0 -16
- package/dist/IconFormatListBulleted-d0a77d0e.cjs +0 -2
- package/dist/IconForum-22217aa0.cjs +0 -2
- package/dist/IconForum-ae4ad63f.js +0 -16
- package/dist/IconGavel-44c29036.js +0 -16
- package/dist/IconGavel-aacae653.cjs +0 -2
- package/dist/IconGoogle-77ec192e.cjs +0 -2
- package/dist/IconGoogle-febad0d8.js +0 -31
- package/dist/IconGooglePay-049e93ec.cjs +0 -2
- package/dist/IconGooglePay-8cf0286e.js +0 -16
- package/dist/IconGrid-1693599f.cjs +0 -2
- package/dist/IconGrid-25f665e0.js +0 -16
- package/dist/IconHeight-4fae7545.js +0 -16
- package/dist/IconHeight-d8ee424f.cjs +0 -2
- package/dist/IconHelp-340ee4fb.js +0 -16
- package/dist/IconHelp-43137a66.cjs +0 -2
- package/dist/IconInfo-2d14575c.cjs +0 -2
- package/dist/IconInfo-efead10b.js +0 -16
- package/dist/IconInsertText-00236a65.js +0 -16
- package/dist/IconInsertText-14c80b9a.cjs +0 -2
- package/dist/IconInstagram-43bb02ea.cjs +0 -2
- package/dist/IconInstagram-57188d29.js +0 -16
- package/dist/IconIosShare-167aa8c4.js +0 -16
- package/dist/IconIosShare-526a016a.cjs +0 -2
- package/dist/IconLayout-2865e0eb.js +0 -16
- package/dist/IconLayout-e663120e.cjs +0 -2
- package/dist/IconLinkedIn-088a3792.cjs +0 -2
- package/dist/IconLinkedIn-f29c217d.js +0 -16
- package/dist/IconLocalShipping-901a3e4c.js +0 -16
- package/dist/IconLocalShipping-9bca5a95.cjs +0 -2
- package/dist/IconLock-1c996287.cjs +0 -2
- package/dist/IconLock-47669e20.js +0 -16
- package/dist/IconMail-9b85058a.js +0 -16
- package/dist/IconMail-f2b8fee4.cjs +0 -2
- package/dist/IconMenu-4bed57f3.js +0 -16
- package/dist/IconMenu-c7c2b143.cjs +0 -2
- package/dist/IconMoreHoriz-2aabe29f.js +0 -16
- package/dist/IconMoreHoriz-2c82da62.cjs +0 -2
- package/dist/IconNotifications-01f7658b.cjs +0 -2
- package/dist/IconNotifications-bcbf1d8c.js +0 -16
- package/dist/IconOpenInNew-78fffcfe.js +0 -16
- package/dist/IconOpenInNew-9032f1db.cjs +0 -2
- package/dist/IconPalette-22865300.js +0 -16
- package/dist/IconPalette-269c7286.cjs +0 -2
- package/dist/IconPaypal-427e8667.cjs +0 -2
- package/dist/IconPaypal-c28e6dbe.js +0 -16
- package/dist/IconPerson-7ada8b07.js +0 -16
- package/dist/IconPerson-ee87961e.cjs +0 -2
- package/dist/IconPhotoCamera-31a58b85.js +0 -16
- package/dist/IconPhotoCamera-56cb060d.cjs +0 -2
- package/dist/IconPinterest-87034fbf.cjs +0 -2
- package/dist/IconPinterest-fe5cc414.js +0 -16
- package/dist/IconPlayArrow-1ed5d884.js +0 -16
- package/dist/IconPlayArrow-80f601bf.cjs +0 -2
- package/dist/IconRemove-73b05132.cjs +0 -2
- package/dist/IconRemove-bab221ba.js +0 -16
- package/dist/IconRoundedCorners-53cb2cfc.cjs +0 -2
- package/dist/IconRoundedCorners-e21c4321.js +0 -16
- package/dist/IconRuler-0ceea80a.js +0 -16
- package/dist/IconRuler-5feb5a83.cjs +0 -2
- package/dist/IconSearch-45b2c0e5.cjs +0 -2
- package/dist/IconSearch-f8faefb4.js +0 -16
- package/dist/IconSeating-2ca8921d.js +0 -16
- package/dist/IconSeating-bc19b98f.cjs +0 -2
- package/dist/IconSell-b011ac2d.js +0 -16
- package/dist/IconSell-bcede586.cjs +0 -2
- package/dist/IconShare-57f28ce3.js +0 -16
- package/dist/IconShare-ff50a973.cjs +0 -2
- package/dist/IconShoppingCart-b532dab0.js +0 -16
- package/dist/IconShoppingCart-eee95744.cjs +0 -2
- package/dist/IconSms-0575f458.cjs +0 -2
- package/dist/IconSms-378f373a.js +0 -16
- package/dist/IconStar-1b8ad0f9.js +0 -16
- package/dist/IconStar-e2a88836.cjs +0 -2
- package/dist/IconSwapVert-29258e96.cjs +0 -2
- package/dist/IconSwapVert-8085e942.js +0 -16
- package/dist/IconThreeDRotation-33f086a7.js +0 -29
- package/dist/IconThreeDRotation-7be89ff8.cjs +0 -2
- package/dist/IconTrophy-4d05eb75.cjs +0 -2
- package/dist/IconTrophy-f4be8b54.js +0 -16
- package/dist/IconTune-0913ba01.js +0 -16
- package/dist/IconTune-1276696d.cjs +0 -2
- package/dist/IconTwitter-55b8ba63.cjs +0 -2
- package/dist/IconTwitter-9acefb07.js +0 -16
- package/dist/IconVideocam-33650e6f.js +0 -16
- package/dist/IconVideocam-f5b07935.cjs +0 -2
- package/dist/IconViewInAr-a583aff8.cjs +0 -2
- package/dist/IconViewInAr-d1534ef2.js +0 -16
- package/dist/IconVisibility-4984bcac.cjs +0 -2
- package/dist/IconVisibility-a1c21dd0.js +0 -16
- package/dist/IconVolumeOff-35d350ee.cjs +0 -2
- package/dist/IconVolumeOff-8e121ef3.js +0 -16
- package/dist/IconVolumeOn-386ad18b.cjs +0 -2
- package/dist/IconVolumeOn-992e16dd.js +0 -16
- package/dist/IconWarning-54f3a9ac.cjs +0 -2
- package/dist/IconWarning-6f490acf.js +0 -16
- package/dist/IconWeight-c6ddd367.cjs +0 -2
- package/dist/IconWeight-e3b3daa6.js +0 -16
- package/dist/IconWidth-a556befc.cjs +0 -2
- package/dist/IconWidth-c81dbc7a.js +0 -16
- package/dist/IconYoutube-a6224033.js +0 -16
- package/dist/IconYoutube-ed951c21.cjs +0 -2
- /package/src/assets/svg/icons/{IconCycle.svg → IconArrowCycle.svg} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent as L, openBlock as l, createElementBlock as E, normalizeClass as
|
|
1
|
+
import { defineComponent as L, openBlock as l, createElementBlock as E, normalizeClass as s, unref as t, ref as u, watch as K, defineAsyncComponent as Fe, markRaw as pe, createBlock as D, resolveDynamicComponent as Q, createCommentVNode as c, toDisplayString as I, onMounted as le, createElementVNode as T, createVNode as P, renderSlot as W, withCtx as ee, computed as U, Fragment as M, renderList as x, createTextVNode as ue, onUnmounted as _e, onUpdated as De, normalizeStyle as de, withModifiers as ie, withDirectives as oe, vModelSelect as Se, vModelDynamic as fe, vModelText as ve, Teleport as Ue } from "vue";
|
|
2
2
|
const e = {
|
|
3
|
-
withBreakpoint: (
|
|
3
|
+
withBreakpoint: (n, i) => n.map((a) => `${i}-${a}`),
|
|
4
4
|
ALIGN: {
|
|
5
5
|
X: {
|
|
6
6
|
CENTER: "tide-text-center",
|
|
@@ -454,90 +454,95 @@ const e = {
|
|
|
454
454
|
}
|
|
455
455
|
};
|
|
456
456
|
e.DISPLAY.BLOCK, e.DISPLAY.CONTENTS, e.DISPLAY.FLEX, e.DISPLAY.GRID, e.DISPLAY.NONE, e.DISPLAY.INITIAL, e.DISPLAY.INLINE, e.DISPLAY.INLINE_BLOCK, e.DISPLAY.INLINE_FLEX, e.AXIS1.AROUND, e.AXIS1.BETWEEN, e.AXIS1.CENTER, e.AXIS1.END, e.AXIS1.START, e.AXIS2.AROUND, e.AXIS2.CENTER, e.AXIS2.END, e.AXIS2.START, e.FLEX.DIRECTION.COLUMN, e.FLEX.DIRECTION.COLUMN_REVERSE, e.FLEX.DIRECTION.ROW, e.FLEX.DIRECTION.ROW_REVERSE, e.GAP.ONE, e.GAP.HALF, e.GAP.QUARTER, e.GAP.TWO, e.GAP.FOUR, e.FLEX.BASIS.ZERO, e.FLEX.GROW.ON, e.FLEX.GROW.OFF, e.FLEX.SHRINK.ON, e.FLEX.SHRINK.OFF, e.FLEX.WRAP, e.POSITION.ABSOLUTE, e.POSITION.FIXED, e.POSITION.RELATIVE, e.POSITION.STICKY, e.POSITIONING.TOP, e.POSITIONING.RIGHT, e.POSITIONING.BOTTOM, e.POSITIONING.LEFT, e.BOX_SIZING.BORDER_BOX, e.BOX_SIZING.CONTENT_BOX, e.MARGIN.FULL.ZERO, e.MARGIN.FULL.ONE, e.MARGIN.FULL.HALF, e.MARGIN.FULL.QUARTER, e.MARGIN.FULL.TWO, e.MARGIN.FULL.FOUR, e.MARGIN.Y.ZERO, e.MARGIN.Y.ONE, e.MARGIN.Y.HALF, e.MARGIN.Y.QUARTER, e.MARGIN.Y.TWO, e.MARGIN.Y.FOUR, e.MARGIN.TOP.ZERO, e.MARGIN.TOP.ONE, e.MARGIN.TOP.HALF, e.MARGIN.TOP.QUARTER, e.MARGIN.TOP.TWO, e.MARGIN.TOP.FOUR, e.MARGIN.X.ZERO, e.MARGIN.X.ONE, e.MARGIN.X.HALF, e.MARGIN.X.QUARTER, e.MARGIN.X.TWO, e.MARGIN.X.FOUR, e.MARGIN.X.AUTO, e.MARGIN.RIGHT.ZERO, e.MARGIN.RIGHT.ONE, e.MARGIN.RIGHT.HALF, e.MARGIN.RIGHT.QUARTER, e.MARGIN.RIGHT.TWO, e.MARGIN.RIGHT.FOUR, e.MARGIN.RIGHT.AUTO, e.MARGIN.BOTTOM.ZERO, e.MARGIN.BOTTOM.ONE, e.MARGIN.BOTTOM.HALF, e.MARGIN.BOTTOM.QUARTER, e.MARGIN.BOTTOM.TWO, e.MARGIN.BOTTOM.FOUR, e.MARGIN.LEFT.ZERO, e.MARGIN.LEFT.ONE, e.MARGIN.LEFT.HALF, e.MARGIN.LEFT.QUARTER, e.MARGIN.LEFT.TWO, e.MARGIN.LEFT.FOUR, e.MARGIN.LEFT.AUTO, e.BORDER.FULL.ONE, e.BORDER.FULL.TWO, e.BORDER.TOP.ONE, e.BORDER.TOP.TWO, e.BORDER.RIGHT.ONE, e.BORDER.RIGHT.TWO, e.BORDER.BOTTOM.ONE, e.BORDER.BOTTOM.TWO, e.BORDER.LEFT.ONE, e.BORDER.LEFT.TWO, e.BORDER.RADIUS.ONE, e.BORDER.RADIUS.HALF, e.BORDER.RADIUS.QUARTER, e.BORDER.RADIUS.FULL, e.PADDING.FULL.ZERO, e.PADDING.FULL.ONE, e.PADDING.FULL.HALF, e.PADDING.FULL.QUARTER, e.PADDING.FULL.TWO, e.PADDING.FULL.FOUR, e.PADDING.Y.ZERO, e.PADDING.Y.ONE, e.PADDING.Y.HALF, e.PADDING.Y.QUARTER, e.PADDING.Y.TWO, e.PADDING.Y.FOUR, e.PADDING.TOP.ZERO, e.PADDING.TOP.ONE, e.PADDING.TOP.HALF, e.PADDING.TOP.QUARTER, e.PADDING.TOP.TWO, e.PADDING.TOP.FOUR, e.PADDING.X.ZERO, e.PADDING.X.ONE, e.PADDING.X.HALF, e.PADDING.X.QUARTER, e.PADDING.X.TWO, e.PADDING.X.FOUR, e.PADDING.RIGHT.ZERO, e.PADDING.RIGHT.ONE, e.PADDING.RIGHT.HALF, e.PADDING.RIGHT.QUARTER, e.PADDING.RIGHT.TWO, e.PADDING.RIGHT.FOUR, e.PADDING.BOTTOM.ZERO, e.PADDING.BOTTOM.ONE, e.PADDING.BOTTOM.HALF, e.PADDING.BOTTOM.QUARTER, e.PADDING.BOTTOM.TWO, e.PADDING.BOTTOM.FOUR, e.PADDING.LEFT.ZERO, e.PADDING.LEFT.ONE, e.PADDING.LEFT.HALF, e.PADDING.LEFT.QUARTER, e.PADDING.LEFT.TWO, e.PADDING.LEFT.FOUR, e.WIDTH.MAX_FULL, e.WIDTH.ZERO, e.WIDTH.FULL, e.HEIGHT.ZERO, e.HEIGHT.FULL, e.ALIGN.Y.MIDDLE, e.BREAK_WORD, e.CURSOR.NOT_ALLOWED, e.CURSOR.POINTER, e.CURSOR.TEXT, e.FONT.SIZE.TWELVE, e.FONT.SIZE.FOURTEEN, e.FONT.SIZE.SIXTEEN, e.FONT.SIZE.TWENTY, e.FONT.SIZE.TWENTY_FOUR, e.FONT.SIZE.THIRTY_TWO, e.FONT.WEIGHT.FOUR_HUNDRED, e.FONT.WEIGHT.FIVE_HUNDRED, e.FONT.WEIGHT.SIX_HUNDRED, e.FONT.WEIGHT.SEVEN_HUNDRED, e.LIST_BULLETS.OFF, e.OBJECT.CENTER, e.OBJECT.CONTAIN, e.OBJECT.COVER, e.OBJECT.SCALE_DOWN, e.POINTER_EVENTS.ON, e.POINTER_EVENTS.OFF, e.SCROLLBAR.OFF, e.SHADOW.BOTTOM, e.SHADOW.TOP, e.SNAP.ON, e.SNAP_ALIGN.START, e.ALIGN.X.LEFT, e.ALIGN.X.CENTER, e.ALIGN.X.RIGHT, e.TEXT_TRANSFORM.LOWER, e.TEXT_TRANSFORM.NONE, e.TEXT_TRANSFORM.UPPER, e.UNDERLINE.HOVER, e.UNDERLINE.OFF, e.UNDERLINE.ON, e.VISIBILITY.ON, e.VISIBILITY.OFF, e.WHITESPACE_WRAP.OFF, e.OVERFLOW.XY.AUTO, e.OVERFLOW.XY.HIDDEN, e.OVERFLOW.X.AUTO, e.OVERFLOW.X.HIDDEN, e.OVERFLOW.X.SCROLL, e.OVERFLOW.Y.AUTO, e.OVERFLOW.Y.HIDDEN, e.Z_INDEX.ONE;
|
|
457
|
-
const
|
|
457
|
+
const ce = {
|
|
458
458
|
HORIZONTAL: "horizontal",
|
|
459
459
|
VERTICAL: "vertical"
|
|
460
460
|
}, Ie = /* @__PURE__ */ L({
|
|
461
461
|
__name: "TideDivider",
|
|
462
462
|
props: {
|
|
463
|
-
orientation: { default:
|
|
463
|
+
orientation: { default: ce.HORIZONTAL }
|
|
464
464
|
},
|
|
465
|
-
setup(
|
|
466
|
-
const i =
|
|
467
|
-
return (
|
|
468
|
-
class:
|
|
465
|
+
setup(n) {
|
|
466
|
+
const i = n;
|
|
467
|
+
return (a, d) => (l(), E("div", {
|
|
468
|
+
class: s([
|
|
469
469
|
t(e).BORDER.COLOR.LOW,
|
|
470
|
-
i.orientation === t(
|
|
470
|
+
i.orientation === t(ce).HORIZONTAL ? [t(e).MARGIN.Y.HALF, t(e).BORDER.BOTTOM.ONE] : [t(e).MARGIN.X.HALF, t(e).BORDER.RIGHT.ONE]
|
|
471
471
|
])
|
|
472
472
|
}, null, 2));
|
|
473
473
|
}
|
|
474
|
-
}),
|
|
475
|
-
const s = o[i];
|
|
476
|
-
return s ? typeof s == "function" ? s() : Promise.resolve(s) : new Promise((n, d) => {
|
|
477
|
-
(typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(d.bind(null, new Error("Unknown variable dynamic import: " + i)));
|
|
478
|
-
});
|
|
479
|
-
}, b = {
|
|
474
|
+
}), G = {
|
|
480
475
|
LARGE: "large",
|
|
481
476
|
SMALL: "small"
|
|
482
|
-
},
|
|
483
|
-
let i =
|
|
484
|
-
return
|
|
485
|
-
},
|
|
486
|
-
let i = String(
|
|
487
|
-
switch (
|
|
477
|
+
}, Ee = (n) => {
|
|
478
|
+
let i = n && typeof n == "number" ? new Intl.NumberFormat().format(n) : String(n || ""), a = i;
|
|
479
|
+
return n && typeof n == "string" && (a = a.replace(/\D/g, ""), Number(a) ? i = new Intl.NumberFormat().format(Number(a)) : i = "0"), i;
|
|
480
|
+
}, Ae = (n) => n && typeof n == "string" ? n.replace(/([a-z]{1})([A-Z]{1})/g, "$1 $2").replace(/[\s_-]/g, " ").toLowerCase().split(" ").map((i) => i.slice(0, 1).toUpperCase() + i.slice(1)).join("") : n, ge = (n) => {
|
|
481
|
+
let i = String(n && typeof n == "number" ? n : n || ""), a = i;
|
|
482
|
+
switch (a = a.replace(/\D/g, ""), a.length) {
|
|
488
483
|
case 7:
|
|
489
|
-
i = `${
|
|
484
|
+
i = `${a.slice(0, 3)}-${a.slice(3)}`;
|
|
490
485
|
break;
|
|
491
486
|
case 10:
|
|
492
|
-
i = `${
|
|
487
|
+
i = `${a.slice(0, 3)}-${a.slice(3, 6)}-${a.slice(6)}`;
|
|
493
488
|
break;
|
|
494
489
|
case 11:
|
|
495
|
-
i = `${
|
|
490
|
+
i = `${a.slice(0, 1)}-${a.slice(1, 4)}-${a.slice(4, 7)}-${a.slice(7)}`;
|
|
496
491
|
break;
|
|
497
492
|
default:
|
|
498
|
-
i =
|
|
493
|
+
i = a;
|
|
499
494
|
break;
|
|
500
495
|
}
|
|
501
496
|
return i;
|
|
502
|
-
}, me = (
|
|
497
|
+
}, me = (n) => `$${n ? Ee(n) : String(n || "0")}`, Ce = {
|
|
498
|
+
AERO: "aero",
|
|
499
|
+
ATV: "atv",
|
|
500
|
+
BOATMART: "boatmart",
|
|
501
|
+
CYCLE: "cycle",
|
|
502
|
+
EQUIP: "equip",
|
|
503
|
+
PWC: "pwc",
|
|
504
|
+
RV: "rv",
|
|
505
|
+
SNOW: "snow",
|
|
506
|
+
TRUCK: "truck"
|
|
507
|
+
}, f = /* @__PURE__ */ L({
|
|
503
508
|
__name: "TideIcon",
|
|
504
509
|
props: {
|
|
505
510
|
icon: {},
|
|
506
|
-
size: { default:
|
|
511
|
+
size: { default: G.SMALL }
|
|
507
512
|
},
|
|
508
|
-
setup(
|
|
509
|
-
const i =
|
|
510
|
-
return
|
|
513
|
+
setup(n) {
|
|
514
|
+
const i = n, a = u();
|
|
515
|
+
return K(
|
|
511
516
|
() => i.icon,
|
|
512
|
-
() => {
|
|
513
|
-
const
|
|
514
|
-
|
|
517
|
+
async () => {
|
|
518
|
+
const d = i.icon, [o, ...O] = d.split("-"), R = Ae(O.length > 0 ? O.join("-") : o), r = Ce[o == null ? void 0 : o.toUpperCase()], N = r ? `../assets/svg/icons/realm/${r}/Icon${Ae(o)}${R}.svg` : `../assets/svg/icons/Icon${R}.svg`, g = Fe(() => import(N));
|
|
519
|
+
a.value = pe(g);
|
|
515
520
|
},
|
|
516
521
|
{ immediate: !0 }
|
|
517
|
-
), (
|
|
518
|
-
class:
|
|
522
|
+
), (d, o) => (l(), E("div", {
|
|
523
|
+
class: s(["tide-icon", i.size])
|
|
519
524
|
}, [
|
|
520
|
-
|
|
525
|
+
a.value ? (l(), D(Q(a.value), {
|
|
521
526
|
key: 0,
|
|
522
|
-
class:
|
|
523
|
-
"data-icon":
|
|
527
|
+
class: s([t(e).DISPLAY.BLOCK]),
|
|
528
|
+
"data-icon": d.icon,
|
|
524
529
|
fill: "currentColor"
|
|
525
|
-
}, null, 8, ["class", "data-icon"])) :
|
|
530
|
+
}, null, 8, ["class", "data-icon"])) : c("", !0)
|
|
526
531
|
], 2));
|
|
527
532
|
}
|
|
528
533
|
});
|
|
529
|
-
const
|
|
534
|
+
const Pe = {
|
|
530
535
|
key: 0,
|
|
531
|
-
class: /* @__PURE__ */
|
|
532
|
-
},
|
|
536
|
+
class: /* @__PURE__ */ s(["tide-indicator-label"])
|
|
537
|
+
}, Ge = /* @__PURE__ */ L({
|
|
533
538
|
__name: "TideIndicator",
|
|
534
539
|
props: {
|
|
535
540
|
label: { default: void 0 }
|
|
536
541
|
},
|
|
537
|
-
setup(
|
|
538
|
-
const i =
|
|
539
|
-
return (
|
|
540
|
-
class:
|
|
542
|
+
setup(n) {
|
|
543
|
+
const i = n;
|
|
544
|
+
return (a, d) => (l(), E("div", {
|
|
545
|
+
class: s([
|
|
541
546
|
"tide-indicator",
|
|
542
547
|
i.label && "tide-indicator-background",
|
|
543
548
|
t(e).BG.SURFACE.ACCENT,
|
|
@@ -553,26 +558,28 @@ const Ue = {
|
|
|
553
558
|
] : []
|
|
554
559
|
])
|
|
555
560
|
}, [
|
|
556
|
-
i.label ? (l(), E("div",
|
|
561
|
+
i.label ? (l(), E("div", Pe, I(i.label), 1)) : c("", !0)
|
|
557
562
|
], 2));
|
|
558
563
|
}
|
|
559
564
|
});
|
|
560
|
-
const
|
|
561
|
-
const
|
|
562
|
-
for (const [
|
|
563
|
-
|
|
564
|
-
return
|
|
565
|
-
},
|
|
565
|
+
const m = (n, i) => {
|
|
566
|
+
const a = n.__vccOpts || n;
|
|
567
|
+
for (const [d, o] of i)
|
|
568
|
+
a[d] = o;
|
|
569
|
+
return a;
|
|
570
|
+
}, he = /* @__PURE__ */ m(Ge, [["__scopeId", "data-v-4e56cba5"]]), p = {
|
|
566
571
|
ACCOUNT_BALANCE: "account-balance",
|
|
567
572
|
ADD: "add",
|
|
568
573
|
AI_DESCRIPTION: "ai-description",
|
|
569
574
|
ALIGN_SPACE: "align-space",
|
|
570
575
|
APPLE_PAY: "apple-pay",
|
|
571
576
|
ARROW_BACK: "arrow-back",
|
|
577
|
+
ARROW_CYCLE: "arrow-cycle",
|
|
572
578
|
ARROW_FORWARD: "arrow-forward",
|
|
573
579
|
ARROW_RIGHT: "arrow-right",
|
|
574
580
|
ASSIGNMENT: "assignment",
|
|
575
581
|
AWARD_STAR: "award-star",
|
|
582
|
+
BED: "bed",
|
|
576
583
|
BOOKMARK: "bookmark",
|
|
577
584
|
CALENDAR_MONTH: "calendar-month",
|
|
578
585
|
CALL: "call",
|
|
@@ -581,11 +588,11 @@ const C = (o, i) => {
|
|
|
581
588
|
CHEVRON_RIGHT: "chevron-right",
|
|
582
589
|
CLEAR: "clear",
|
|
583
590
|
CLOSE: "close",
|
|
584
|
-
CYCLE: "cycle",
|
|
585
591
|
DELETE: "delete",
|
|
586
592
|
DIAMOND: "diamond",
|
|
587
593
|
DRAFT: "draft",
|
|
588
594
|
EDIT: "edit",
|
|
595
|
+
ENGINE: "engine",
|
|
589
596
|
ERROR: "error",
|
|
590
597
|
EXPAND_CONTENT: "expand-content",
|
|
591
598
|
EXPAND_LESS: "expand-less",
|
|
@@ -597,6 +604,7 @@ const C = (o, i) => {
|
|
|
597
604
|
FORMAT_ITALIC: "format-italic",
|
|
598
605
|
FORMAT_LIST_BULLETED: "format-list-bulleted",
|
|
599
606
|
FORUM: "forum",
|
|
607
|
+
GAS: "gas",
|
|
600
608
|
GAVEL: "gavel",
|
|
601
609
|
GOOGLE: "google",
|
|
602
610
|
GOOGLE_PAY: "google-pay",
|
|
@@ -608,6 +616,7 @@ const C = (o, i) => {
|
|
|
608
616
|
INSTAGRAM: "instagram",
|
|
609
617
|
IOS_SHARE: "ios-share",
|
|
610
618
|
LAYOUT: "layout",
|
|
619
|
+
LEVELLING_JACK: "levelling-jack",
|
|
611
620
|
LINKED_IN: "linked in",
|
|
612
621
|
LOCAL_SHIPPING: "local-shipping",
|
|
613
622
|
LOCK: "lock",
|
|
@@ -615,6 +624,7 @@ const C = (o, i) => {
|
|
|
615
624
|
MENU: "menu",
|
|
616
625
|
MORE_HORIZ: "more-horiz",
|
|
617
626
|
NOTIFICATIONS: "notifications",
|
|
627
|
+
ODOMETER: "odometer",
|
|
618
628
|
OPEN_IN_NEW: "open-in-new",
|
|
619
629
|
PALETTE: "palette",
|
|
620
630
|
PAYPAL: "paypal",
|
|
@@ -622,6 +632,7 @@ const C = (o, i) => {
|
|
|
622
632
|
PHOTO_CAMERA: "photo-camera",
|
|
623
633
|
PINTEREST: "pinterest",
|
|
624
634
|
PLAY_ARROW: "play-arrow",
|
|
635
|
+
POWER_OFF: "power-off",
|
|
625
636
|
REMOVE: "remove",
|
|
626
637
|
ROUNDED_CORNERS: "rounded-corners",
|
|
627
638
|
RULER: "ruler",
|
|
@@ -630,23 +641,27 @@ const C = (o, i) => {
|
|
|
630
641
|
SELL: "sell",
|
|
631
642
|
SHARE: "share",
|
|
632
643
|
SHOPPING_CART: "shopping-cart",
|
|
644
|
+
SLEEPS: "sleeps",
|
|
633
645
|
SMS: "sms",
|
|
646
|
+
SNOWFLAKE: "snowflake",
|
|
634
647
|
STAR: "star",
|
|
635
648
|
SWAP_VERT: "swap-vert",
|
|
636
649
|
THREE_D_ROTATION: "three-d-rotation",
|
|
637
650
|
TROPHY: "trophy",
|
|
638
651
|
TUNE: "tune",
|
|
639
652
|
TWITTER: "twitter",
|
|
653
|
+
UMBRELLA: "umbrella",
|
|
640
654
|
VIDEOCAM: "videocam",
|
|
641
655
|
VIEW_IN_AR: "view-in-ar",
|
|
642
656
|
VISIBILITY: "visibility",
|
|
643
657
|
VOLUME_OFF: "volume-off",
|
|
644
658
|
VOLUME_ON: "volume-on",
|
|
645
659
|
WARNING: "warning",
|
|
660
|
+
WATER: "water",
|
|
646
661
|
WEIGHT: "weight",
|
|
647
662
|
WIDTH: "width",
|
|
648
663
|
YOUTUBE: "youtube"
|
|
649
|
-
},
|
|
664
|
+
}, be = { class: "tide-accordion-item" }, ye = /* @__PURE__ */ L({
|
|
650
665
|
__name: "TideAccordionItem",
|
|
651
666
|
props: {
|
|
652
667
|
hasBottomDivider: {
|
|
@@ -680,101 +695,101 @@ const C = (o, i) => {
|
|
|
680
695
|
type: String
|
|
681
696
|
}
|
|
682
697
|
},
|
|
683
|
-
setup(
|
|
684
|
-
const i =
|
|
685
|
-
let
|
|
686
|
-
const
|
|
687
|
-
const
|
|
688
|
-
|
|
698
|
+
setup(n) {
|
|
699
|
+
const i = n, a = u(i.isExpandedInitial);
|
|
700
|
+
let d = u();
|
|
701
|
+
const o = () => {
|
|
702
|
+
const O = d.value;
|
|
703
|
+
a.value = !a.value, O.style.gridTemplateRows = a.value ? "1fr" : "0fr";
|
|
689
704
|
};
|
|
690
|
-
return
|
|
691
|
-
const
|
|
692
|
-
|
|
693
|
-
}), (
|
|
694
|
-
i.hasTopDivider ? (l(),
|
|
695
|
-
|
|
696
|
-
class:
|
|
697
|
-
onClick:
|
|
705
|
+
return le(() => {
|
|
706
|
+
const O = d.value;
|
|
707
|
+
O.style.gridTemplateRows = a.value ? "1fr" : "0fr";
|
|
708
|
+
}), (O, R) => (l(), E("div", be, [
|
|
709
|
+
i.hasTopDivider ? (l(), D(Ie, { key: 0 })) : c("", !0),
|
|
710
|
+
T("div", {
|
|
711
|
+
class: s(["tide-accordion-head", t(e).DISPLAY.FLEX, t(e).AXIS1.BETWEEN, t(e).PADDING.Y.HALF, t(e).CURSOR.POINTER]),
|
|
712
|
+
onClick: o
|
|
698
713
|
}, [
|
|
699
|
-
|
|
700
|
-
class:
|
|
714
|
+
T("div", {
|
|
715
|
+
class: s([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.HALF, t(e).FONT.WEIGHT.SEVEN_HUNDRED])
|
|
701
716
|
}, [
|
|
702
|
-
|
|
717
|
+
T("span", null, I(i.label), 1),
|
|
703
718
|
i.isOptional ? (l(), E("span", {
|
|
704
719
|
key: 0,
|
|
705
|
-
class:
|
|
706
|
-
}, " (optional) ", 2)) :
|
|
707
|
-
i.isActive ? (l(),
|
|
720
|
+
class: s([t(e).FONT.COLOR.SURFACE.VARIANT])
|
|
721
|
+
}, " (optional) ", 2)) : c("", !0),
|
|
722
|
+
i.isActive ? (l(), D(he, { key: 1 })) : c("", !0)
|
|
708
723
|
], 2),
|
|
709
|
-
P(
|
|
710
|
-
icon:
|
|
724
|
+
P(f, {
|
|
725
|
+
icon: a.value ? t(p).EXPAND_LESS : t(p).EXPAND_MORE
|
|
711
726
|
}, null, 8, ["icon"])
|
|
712
727
|
], 2),
|
|
713
|
-
|
|
714
|
-
class:
|
|
728
|
+
T("div", {
|
|
729
|
+
class: s(["tide-accordion-body", t(e).DISPLAY.GRID]),
|
|
715
730
|
ref_key: "accordionBody",
|
|
716
|
-
ref:
|
|
731
|
+
ref: d
|
|
717
732
|
}, [
|
|
718
|
-
|
|
719
|
-
class:
|
|
733
|
+
T("div", {
|
|
734
|
+
class: s([t(e).OVERFLOW.Y.HIDDEN])
|
|
720
735
|
}, [
|
|
721
|
-
|
|
722
|
-
class:
|
|
736
|
+
T("div", {
|
|
737
|
+
class: s([t(e).MARGIN.Y.ONE, t(e).FONT.WEIGHT.FOUR_HUNDRED, t(e).FONT.COLOR.SURFACE.DEFAULT])
|
|
723
738
|
}, [
|
|
724
|
-
|
|
739
|
+
W(O.$slots, "default", {}, void 0, !0)
|
|
725
740
|
], 2)
|
|
726
741
|
], 2)
|
|
727
742
|
], 2),
|
|
728
|
-
i.hasBottomDivider ? (l(),
|
|
743
|
+
i.hasBottomDivider ? (l(), D(Ie, { key: 1 })) : c("", !0)
|
|
729
744
|
]));
|
|
730
745
|
}
|
|
731
746
|
});
|
|
732
|
-
const
|
|
747
|
+
const Wt = /* @__PURE__ */ m(ye, [["__scopeId", "data-v-ad283103"]]), S = {
|
|
733
748
|
BUTTON: "button",
|
|
734
749
|
LINK: "a"
|
|
735
|
-
},
|
|
750
|
+
}, V = {
|
|
736
751
|
BUTTON: "button",
|
|
737
752
|
DIV: "div",
|
|
738
753
|
LINK: "a"
|
|
739
|
-
},
|
|
754
|
+
}, $ = {
|
|
740
755
|
PRIMARY: "primary",
|
|
741
756
|
SECONDARY: "secondary",
|
|
742
757
|
TERTIARY: "tertiary",
|
|
743
758
|
QUATERNARY: "quaternary",
|
|
744
759
|
FLOATING: "floating"
|
|
745
|
-
},
|
|
760
|
+
}, Y = {
|
|
746
761
|
BLANK: "_blank",
|
|
747
762
|
SELF: void 0
|
|
748
|
-
},
|
|
763
|
+
}, J = /* @__PURE__ */ L({
|
|
749
764
|
__name: "TideButtonIcon",
|
|
750
765
|
props: {
|
|
751
766
|
disabled: { type: Boolean, default: !1 },
|
|
752
|
-
element: { default:
|
|
767
|
+
element: { default: S.BUTTON },
|
|
753
768
|
href: { default: void 0 },
|
|
754
769
|
icon: { default: void 0 },
|
|
755
770
|
isNewTab: { type: Boolean, default: !1 },
|
|
756
|
-
priority: { default:
|
|
771
|
+
priority: { default: $.PRIMARY }
|
|
757
772
|
},
|
|
758
|
-
setup(
|
|
759
|
-
const i =
|
|
760
|
-
return (
|
|
773
|
+
setup(n) {
|
|
774
|
+
const i = n;
|
|
775
|
+
return (a, d) => (l(), D(Q(i.element === t(S).LINK ? "a" : "button"), {
|
|
761
776
|
"aria-label": i.icon,
|
|
762
|
-
class:
|
|
763
|
-
i.element === t(
|
|
777
|
+
class: s([
|
|
778
|
+
i.element === t(S).LINK ? "tide-link-as-button-icon" : "tide-button-icon",
|
|
764
779
|
i.priority && `tide-button-${i.priority}`,
|
|
765
780
|
[t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).BORDER.RADIUS.FULL, t(e).PADDING.FULL.HALF],
|
|
766
|
-
i.element === t(
|
|
781
|
+
i.element === t(S).LINK ? [t(e).UNDERLINE.OFF] : ""
|
|
767
782
|
]),
|
|
768
|
-
disabled: i.element === t(
|
|
769
|
-
href: i.element === t(
|
|
770
|
-
target: i.element === t(
|
|
783
|
+
disabled: i.element === t(S).BUTTON && i.disabled,
|
|
784
|
+
href: i.element === t(S).LINK && i.href ? i.href : void 0,
|
|
785
|
+
target: i.element === t(S).LINK && i.isNewTab ? t(Y).BLANK : t(Y).SELF
|
|
771
786
|
}, {
|
|
772
787
|
default: ee(() => [
|
|
773
|
-
i.icon ? (l(),
|
|
788
|
+
i.icon ? (l(), D(f, {
|
|
774
789
|
key: 0,
|
|
775
790
|
icon: i.icon,
|
|
776
|
-
size: t(
|
|
777
|
-
}, null, 8, ["icon", "size"])) :
|
|
791
|
+
size: t(G).LARGE
|
|
792
|
+
}, null, 8, ["icon", "size"])) : c("", !0)
|
|
778
793
|
]),
|
|
779
794
|
_: 1
|
|
780
795
|
}, 8, ["aria-label", "class", "disabled", "href", "target"]));
|
|
@@ -784,35 +799,35 @@ const Ht = /* @__PURE__ */ C(he, [["__scopeId", "data-v-ad283103"]]), _ = {
|
|
|
784
799
|
INFO: "info",
|
|
785
800
|
SUCCESS: "success",
|
|
786
801
|
WARNING: "warning"
|
|
787
|
-
},
|
|
802
|
+
}, He = /* @__PURE__ */ L({
|
|
788
803
|
__name: "TideAlert",
|
|
789
804
|
props: {
|
|
790
805
|
heading: { default: void 0 },
|
|
791
806
|
isToast: { type: Boolean, default: !1 },
|
|
792
807
|
type: { default: H.INFO }
|
|
793
808
|
},
|
|
794
|
-
setup(
|
|
795
|
-
const i =
|
|
796
|
-
let
|
|
809
|
+
setup(n) {
|
|
810
|
+
const i = n, a = U(() => {
|
|
811
|
+
let d = p.VIEW_IN_AR;
|
|
797
812
|
switch (i.type) {
|
|
798
813
|
case H.ERROR:
|
|
799
|
-
|
|
814
|
+
d = p.ERROR;
|
|
800
815
|
break;
|
|
801
816
|
default:
|
|
802
817
|
case H.INFO:
|
|
803
|
-
|
|
818
|
+
d = p.INFO;
|
|
804
819
|
break;
|
|
805
820
|
case H.SUCCESS:
|
|
806
|
-
|
|
821
|
+
d = p.CHECK;
|
|
807
822
|
break;
|
|
808
823
|
case H.WARNING:
|
|
809
|
-
|
|
824
|
+
d = p.WARNING;
|
|
810
825
|
break;
|
|
811
826
|
}
|
|
812
|
-
return
|
|
827
|
+
return d;
|
|
813
828
|
});
|
|
814
|
-
return (
|
|
815
|
-
class:
|
|
829
|
+
return (d, o) => (l(), E("div", {
|
|
830
|
+
class: s([
|
|
816
831
|
i.type,
|
|
817
832
|
"tide-alert",
|
|
818
833
|
t(e).DISPLAY.GRID,
|
|
@@ -825,11 +840,11 @@ const Ht = /* @__PURE__ */ C(he, [["__scopeId", "data-v-ad283103"]]), _ = {
|
|
|
825
840
|
i.isToast ? t(e).SHADOW.BOTTOM : ""
|
|
826
841
|
])
|
|
827
842
|
}, [
|
|
828
|
-
|
|
829
|
-
class:
|
|
843
|
+
T("div", {
|
|
844
|
+
class: s(["tide-alert-icon", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER])
|
|
830
845
|
}, [
|
|
831
|
-
P(
|
|
832
|
-
class:
|
|
846
|
+
P(f, {
|
|
847
|
+
class: s([
|
|
833
848
|
i.type,
|
|
834
849
|
t(e).BORDER.RADIUS.FULL,
|
|
835
850
|
t(e).PADDING.FULL.HALF,
|
|
@@ -839,33 +854,33 @@ const Ht = /* @__PURE__ */ C(he, [["__scopeId", "data-v-ad283103"]]), _ = {
|
|
|
839
854
|
i.type === t(H).SUCCESS && t(e).BG.SUCCESS,
|
|
840
855
|
i.type === t(H).WARNING && t(e).BG.WARNING
|
|
841
856
|
]),
|
|
842
|
-
icon:
|
|
857
|
+
icon: a.value
|
|
843
858
|
}, null, 8, ["class", "icon"])
|
|
844
859
|
], 2),
|
|
845
|
-
|
|
846
|
-
class:
|
|
860
|
+
T("div", {
|
|
861
|
+
class: s(["tide-alert-heading", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER])
|
|
847
862
|
}, [
|
|
848
|
-
|
|
849
|
-
class:
|
|
850
|
-
},
|
|
863
|
+
T("h2", {
|
|
864
|
+
class: s([t(e).FONT.SIZE.SIXTEEN, t(e).FONT.WEIGHT.SIX_HUNDRED, t(e).FONT.COLOR.SURFACE.DEFAULT])
|
|
865
|
+
}, I(i.heading), 3)
|
|
851
866
|
], 2),
|
|
852
|
-
P(
|
|
853
|
-
class:
|
|
854
|
-
icon: t(
|
|
855
|
-
priority: t(
|
|
867
|
+
P(J, {
|
|
868
|
+
class: s(["tide-alert-close", t(e).AXIS2.CENTER, t(e).FONT.COLOR.SURFACE.DEFAULT]),
|
|
869
|
+
icon: t(p).CLOSE,
|
|
870
|
+
priority: t($).QUATERNARY,
|
|
856
871
|
"aria-label": "Close alert"
|
|
857
872
|
}, null, 8, ["class", "icon", "priority"]),
|
|
858
|
-
|
|
859
|
-
class:
|
|
873
|
+
T("div", {
|
|
874
|
+
class: s(["tide-alert-body", t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).FONT.COLOR.SURFACE.VARIANT])
|
|
860
875
|
}, [
|
|
861
|
-
|
|
876
|
+
W(d.$slots, "default", {}, void 0, !0)
|
|
862
877
|
], 2)
|
|
863
878
|
], 2));
|
|
864
879
|
}
|
|
865
880
|
});
|
|
866
|
-
const
|
|
867
|
-
class: /* @__PURE__ */
|
|
868
|
-
},
|
|
881
|
+
const Mt = /* @__PURE__ */ m(He, [["__scopeId", "data-v-279a5605"]]), Be = {
|
|
882
|
+
class: /* @__PURE__ */ s(["tide-image"])
|
|
883
|
+
}, Xe = ["media", "srcset"], We = ["alt", "fetchpriority", "loading", "src"], se = "https://cdn-static-rec.tilabs.io/image-coming-soon-512.png", Me = /* @__PURE__ */ L({
|
|
869
884
|
__name: "TideImage",
|
|
870
885
|
props: {
|
|
871
886
|
alt: { default: "" },
|
|
@@ -873,30 +888,30 @@ const Bt = /* @__PURE__ */ C(be, [["__scopeId", "data-v-279a5605"]]), ye = {
|
|
|
873
888
|
sources: { default: () => [] },
|
|
874
889
|
src: { default: void 0 }
|
|
875
890
|
},
|
|
876
|
-
setup(
|
|
877
|
-
const
|
|
878
|
-
const
|
|
879
|
-
|
|
891
|
+
setup(n, { expose: i }) {
|
|
892
|
+
const a = n, d = u(), o = () => {
|
|
893
|
+
const O = d.value.currentSrc, R = d.value.parentElement.querySelector(`source[srcset="${O}"]`);
|
|
894
|
+
R ? R.srcset = se : d.value.src = se;
|
|
880
895
|
};
|
|
881
|
-
return i(
|
|
882
|
-
(l(!0), E(M, null,
|
|
896
|
+
return i(d.value), (O, R) => (l(), E("picture", Be, [
|
|
897
|
+
(l(!0), E(M, null, x(a.sources, (r) => (l(), E("source", {
|
|
883
898
|
key: r.srcset,
|
|
884
899
|
media: `(min-width:${r.media}px)`,
|
|
885
900
|
srcset: r.srcset
|
|
886
|
-
}, null, 8,
|
|
887
|
-
|
|
888
|
-
alt:
|
|
889
|
-
class:
|
|
890
|
-
fetchpriority:
|
|
891
|
-
loading:
|
|
901
|
+
}, null, 8, Xe))), 128)),
|
|
902
|
+
T("img", {
|
|
903
|
+
alt: O.alt,
|
|
904
|
+
class: s([t(e).WIDTH.FULL, t(e).HEIGHT.FULL, t(e).OBJECT.CENTER, t(e).OBJECT.COVER]),
|
|
905
|
+
fetchpriority: O.isLazy ? void 0 : "high",
|
|
906
|
+
loading: a.isLazy ? "lazy" : "eager",
|
|
892
907
|
ref_key: "tideImage",
|
|
893
|
-
ref:
|
|
894
|
-
src:
|
|
895
|
-
onError:
|
|
896
|
-
}, null, 42,
|
|
908
|
+
ref: d,
|
|
909
|
+
src: O.src ?? se,
|
|
910
|
+
onError: o
|
|
911
|
+
}, null, 42, We)
|
|
897
912
|
]));
|
|
898
913
|
}
|
|
899
|
-
}),
|
|
914
|
+
}), Ye = /* @__PURE__ */ L({
|
|
900
915
|
__name: "TideBackgroundImage",
|
|
901
916
|
props: {
|
|
902
917
|
alt: { default: "" },
|
|
@@ -904,13 +919,13 @@ const Bt = /* @__PURE__ */ C(be, [["__scopeId", "data-v-279a5605"]]), ye = {
|
|
|
904
919
|
sources: { default: () => [] },
|
|
905
920
|
src: { default: void 0 }
|
|
906
921
|
},
|
|
907
|
-
setup(
|
|
908
|
-
const i =
|
|
909
|
-
return (
|
|
910
|
-
class:
|
|
922
|
+
setup(n) {
|
|
923
|
+
const i = n;
|
|
924
|
+
return (a, d) => (l(), E("div", {
|
|
925
|
+
class: s([t(e).POSITION.RELATIVE, t(e).OVERFLOW.XY.HIDDEN, t(e).ISOLATION.ISOLATE])
|
|
911
926
|
}, [
|
|
912
|
-
|
|
913
|
-
class:
|
|
927
|
+
T("div", {
|
|
928
|
+
class: s([
|
|
914
929
|
t(e).POSITION.ABSOLUTE,
|
|
915
930
|
t(e).HEIGHT.FULL,
|
|
916
931
|
t(e).WIDTH.FULL,
|
|
@@ -919,27 +934,27 @@ const Bt = /* @__PURE__ */ C(be, [["__scopeId", "data-v-279a5605"]]), ye = {
|
|
|
919
934
|
t(e).AXIS2.CENTER
|
|
920
935
|
])
|
|
921
936
|
}, [
|
|
922
|
-
P(
|
|
923
|
-
class:
|
|
937
|
+
P(Me, {
|
|
938
|
+
class: s(["tide-background-image", t(e).WIDTH.FULL, t(e).HEIGHT.FULL]),
|
|
924
939
|
"is-lazy": i.isLazy,
|
|
925
940
|
sources: i.sources,
|
|
926
941
|
src: i.src,
|
|
927
942
|
alt: "props.alt"
|
|
928
943
|
}, null, 8, ["class", "is-lazy", "sources", "src"])
|
|
929
944
|
], 2),
|
|
930
|
-
|
|
945
|
+
W(a.$slots, "default", {}, void 0, !0)
|
|
931
946
|
], 2));
|
|
932
947
|
}
|
|
933
948
|
});
|
|
934
|
-
const
|
|
949
|
+
const Yt = /* @__PURE__ */ m(Ye, [["__scopeId", "data-v-092da9db"]]), kt = /* @__PURE__ */ L({
|
|
935
950
|
__name: "TideBadge",
|
|
936
951
|
props: {
|
|
937
952
|
label: {}
|
|
938
953
|
},
|
|
939
|
-
setup(
|
|
940
|
-
const i =
|
|
941
|
-
return (
|
|
942
|
-
class:
|
|
954
|
+
setup(n) {
|
|
955
|
+
const i = n;
|
|
956
|
+
return (a, d) => (l(), E("div", {
|
|
957
|
+
class: s([
|
|
943
958
|
"tide-badge",
|
|
944
959
|
t(e).FONT.COLOR.SURFACE.DEFAULT,
|
|
945
960
|
t(e).BG.SURFACE.FLOATING,
|
|
@@ -951,17 +966,17 @@ const Xt = /* @__PURE__ */ C(We, [["__scopeId", "data-v-092da9db"]]), Wt = /* @_
|
|
|
951
966
|
t(e).PADDING.X.HALF,
|
|
952
967
|
t(e).FONT.SIZE.FOURTEEN
|
|
953
968
|
])
|
|
954
|
-
},
|
|
969
|
+
}, I(i.label), 3));
|
|
955
970
|
}
|
|
956
|
-
}),
|
|
971
|
+
}), Vt = /* @__PURE__ */ L({
|
|
957
972
|
__name: "TideBadgePremium",
|
|
958
973
|
props: {
|
|
959
974
|
label: {}
|
|
960
975
|
},
|
|
961
|
-
setup(
|
|
962
|
-
const i =
|
|
963
|
-
return (
|
|
964
|
-
class:
|
|
976
|
+
setup(n) {
|
|
977
|
+
const i = n;
|
|
978
|
+
return (a, d) => (l(), E("div", {
|
|
979
|
+
class: s([
|
|
965
980
|
"tide-badge",
|
|
966
981
|
t(e).FONT.COLOR.SURFACE.DEFAULT,
|
|
967
982
|
t(e).BG.SURFACE.VARIANT,
|
|
@@ -972,31 +987,31 @@ const Xt = /* @__PURE__ */ C(We, [["__scopeId", "data-v-092da9db"]]), Wt = /* @_
|
|
|
972
987
|
t(e).PADDING.X.HALF,
|
|
973
988
|
t(e).FONT.SIZE.TWELVE
|
|
974
989
|
])
|
|
975
|
-
},
|
|
990
|
+
}, I(i.label), 3));
|
|
976
991
|
}
|
|
977
|
-
}),
|
|
992
|
+
}), xt = {
|
|
978
993
|
JUST_LISTED: "Just listed",
|
|
979
994
|
NATIONWIDE: "Nationwide",
|
|
980
995
|
REDUCED: "Reduced",
|
|
981
996
|
UPDATED: "Updated"
|
|
982
|
-
},
|
|
997
|
+
}, $t = {
|
|
983
998
|
PREMIUM: "Premium",
|
|
984
999
|
PREMIUM_SELECT: "Premium SELECT"
|
|
985
|
-
},
|
|
1000
|
+
}, ke = {
|
|
986
1001
|
YEARS_10: "10",
|
|
987
1002
|
YEARS_15: "15",
|
|
988
1003
|
YEARS_5: "5"
|
|
989
|
-
},
|
|
990
|
-
class: /* @__PURE__ */
|
|
991
|
-
},
|
|
1004
|
+
}, Ve = {
|
|
1005
|
+
class: /* @__PURE__ */ s([])
|
|
1006
|
+
}, wt = /* @__PURE__ */ L({
|
|
992
1007
|
__name: "TideBadgeTrustedPartner",
|
|
993
1008
|
props: {
|
|
994
|
-
years: { default:
|
|
1009
|
+
years: { default: ke.YEARS_5 }
|
|
995
1010
|
},
|
|
996
|
-
setup(
|
|
997
|
-
const i =
|
|
998
|
-
return (
|
|
999
|
-
class:
|
|
1011
|
+
setup(n) {
|
|
1012
|
+
const i = n;
|
|
1013
|
+
return (a, d) => (l(), E("div", {
|
|
1014
|
+
class: s([
|
|
1000
1015
|
"tide-badge-trusted-partner",
|
|
1001
1016
|
t(e).FONT.COLOR.SURFACE.BRAND,
|
|
1002
1017
|
t(e).DISPLAY.INLINE_FLEX,
|
|
@@ -1007,15 +1022,15 @@ const Xt = /* @__PURE__ */ C(We, [["__scopeId", "data-v-092da9db"]]), Wt = /* @_
|
|
|
1007
1022
|
t(e).FONT.SIZE.FOURTEEN
|
|
1008
1023
|
])
|
|
1009
1024
|
}, [
|
|
1010
|
-
P(
|
|
1011
|
-
icon: t(
|
|
1025
|
+
P(f, {
|
|
1026
|
+
icon: t(p).VIEW_IN_AR
|
|
1012
1027
|
}, null, 8, ["icon"]),
|
|
1013
|
-
|
|
1014
|
-
|
|
1028
|
+
T("div", Ve, [
|
|
1029
|
+
T("span", null, I(i.years) + " year trusted partner", 1)
|
|
1015
1030
|
])
|
|
1016
1031
|
], 2));
|
|
1017
1032
|
}
|
|
1018
|
-
}),
|
|
1033
|
+
}), xe = ["data-track", "href"], $e = ["data-track"], we = { key: 0 }, Zt = /* @__PURE__ */ L({
|
|
1019
1034
|
__name: "TideBreadCrumbs",
|
|
1020
1035
|
props: {
|
|
1021
1036
|
breadCrumbs: {
|
|
@@ -1024,210 +1039,249 @@ const Xt = /* @__PURE__ */ C(We, [["__scopeId", "data-v-092da9db"]]), Wt = /* @_
|
|
|
1024
1039
|
type: Object
|
|
1025
1040
|
}
|
|
1026
1041
|
},
|
|
1027
|
-
setup(
|
|
1028
|
-
const i =
|
|
1029
|
-
return (
|
|
1030
|
-
class:
|
|
1042
|
+
setup(n) {
|
|
1043
|
+
const i = n;
|
|
1044
|
+
return (a, d) => (l(), E("ul", {
|
|
1045
|
+
class: s(["tide-bread-crumbs", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).LIST_BULLETS.OFF])
|
|
1031
1046
|
}, [
|
|
1032
|
-
(l(!0), E(M, null,
|
|
1033
|
-
key:
|
|
1047
|
+
(l(!0), E(M, null, x(i.breadCrumbs, (o, O) => (l(), E(M, {
|
|
1048
|
+
key: o.label
|
|
1034
1049
|
}, [
|
|
1035
|
-
|
|
1036
|
-
class:
|
|
1050
|
+
T("li", {
|
|
1051
|
+
class: s([t(e).FONT.SIZE.FOURTEEN])
|
|
1037
1052
|
}, [
|
|
1038
|
-
|
|
1053
|
+
o.url ? (l(), E("a", {
|
|
1039
1054
|
key: 0,
|
|
1040
|
-
class:
|
|
1041
|
-
"data-track":
|
|
1042
|
-
href:
|
|
1043
|
-
},
|
|
1055
|
+
class: s([t(e).FONT.WEIGHT.SEVEN_HUNDRED, t(e).FONT.COLOR.SURFACE.DEFAULT]),
|
|
1056
|
+
"data-track": o.dataTrack || void 0,
|
|
1057
|
+
href: o.url
|
|
1058
|
+
}, I(o.label), 11, xe)) : (l(), E("span", {
|
|
1044
1059
|
key: 1,
|
|
1045
|
-
class:
|
|
1046
|
-
"data-track":
|
|
1047
|
-
},
|
|
1060
|
+
class: s([t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).FONT.COLOR.SURFACE.VARIANT]),
|
|
1061
|
+
"data-track": o.dataTrack || void 0
|
|
1062
|
+
}, I(o.label), 11, $e))
|
|
1048
1063
|
], 2),
|
|
1049
|
-
i.breadCrumbs &&
|
|
1050
|
-
P(
|
|
1051
|
-
icon: t(
|
|
1052
|
-
size: t(
|
|
1064
|
+
i.breadCrumbs && O < i.breadCrumbs.length - 1 ? (l(), E("li", we, [
|
|
1065
|
+
P(f, {
|
|
1066
|
+
icon: t(p).ARROW_RIGHT,
|
|
1067
|
+
size: t(G).SMALL
|
|
1053
1068
|
}, null, 8, ["icon", "size"])
|
|
1054
|
-
])) :
|
|
1069
|
+
])) : c("", !0)
|
|
1055
1070
|
], 64))), 128))
|
|
1056
1071
|
], 2));
|
|
1057
1072
|
}
|
|
1058
|
-
}),
|
|
1073
|
+
}), Kt = /* @__PURE__ */ L({
|
|
1059
1074
|
__name: "TideButton",
|
|
1060
1075
|
props: {
|
|
1061
1076
|
disabled: { type: Boolean, default: !1 },
|
|
1062
|
-
element: { default:
|
|
1077
|
+
element: { default: S.BUTTON },
|
|
1063
1078
|
href: { default: void 0 },
|
|
1064
1079
|
iconLeading: { default: void 0 },
|
|
1065
1080
|
iconTrailing: { default: void 0 },
|
|
1066
1081
|
isNewTab: { type: Boolean, default: !1 },
|
|
1067
1082
|
label: { default: void 0 },
|
|
1068
|
-
priority: { default:
|
|
1083
|
+
priority: { default: $.PRIMARY }
|
|
1069
1084
|
},
|
|
1070
|
-
setup(
|
|
1071
|
-
const i =
|
|
1072
|
-
return (
|
|
1073
|
-
class:
|
|
1074
|
-
i.element === t(
|
|
1085
|
+
setup(n) {
|
|
1086
|
+
const i = n;
|
|
1087
|
+
return (a, d) => (l(), D(Q(i.element === t(S).LINK ? t(S).LINK : t(S).BUTTON), {
|
|
1088
|
+
class: s([
|
|
1089
|
+
i.element === t(S).LINK ? "tide-link-as-button" : "tide-button",
|
|
1075
1090
|
i.priority && `tide-button-${i.priority}`,
|
|
1076
|
-
i.element === t(
|
|
1091
|
+
i.element === t(S).LINK ? [t(e).DISPLAY.INLINE_FLEX] : [t(e).DISPLAY.FLEX],
|
|
1077
1092
|
[t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).GAP.HALF, t(e).BORDER.RADIUS.HALF],
|
|
1078
|
-
i.element === t(
|
|
1093
|
+
i.element === t(S).LINK ? t(e).UNDERLINE.OFF : "",
|
|
1079
1094
|
t(e).PADDING.Y.ONE,
|
|
1080
1095
|
t(e).PADDING.X.TWO,
|
|
1081
1096
|
t(e).FONT.WEIGHT.SIX_HUNDRED
|
|
1082
1097
|
]),
|
|
1083
|
-
disabled: i.element === t(
|
|
1084
|
-
href: i.element === t(
|
|
1085
|
-
target: i.element === t(
|
|
1098
|
+
disabled: i.element === t(S).BUTTON && i.disabled,
|
|
1099
|
+
href: i.element === t(S).LINK && i.href ? i.href : void 0,
|
|
1100
|
+
target: i.element === t(S).LINK && i.isNewTab ? t(Y).BLANK : t(Y).SELF
|
|
1086
1101
|
}, {
|
|
1087
1102
|
default: ee(() => [
|
|
1088
|
-
i.iconLeading ? (l(),
|
|
1103
|
+
i.iconLeading ? (l(), D(f, {
|
|
1089
1104
|
key: 0,
|
|
1090
1105
|
icon: i.iconLeading,
|
|
1091
|
-
size: t(
|
|
1092
|
-
}, null, 8, ["icon", "size"])) :
|
|
1093
|
-
|
|
1094
|
-
i.iconTrailing ? (l(),
|
|
1106
|
+
size: t(G).LARGE
|
|
1107
|
+
}, null, 8, ["icon", "size"])) : c("", !0),
|
|
1108
|
+
ue(" " + I(i.label) + " ", 1),
|
|
1109
|
+
i.iconTrailing ? (l(), D(f, {
|
|
1095
1110
|
key: 1,
|
|
1096
1111
|
icon: i.iconTrailing,
|
|
1097
|
-
size: t(
|
|
1098
|
-
}, null, 8, ["icon", "size"])) :
|
|
1112
|
+
size: t(G).LARGE
|
|
1113
|
+
}, null, 8, ["icon", "size"])) : c("", !0)
|
|
1099
1114
|
]),
|
|
1100
1115
|
_: 1
|
|
1101
1116
|
}, 8, ["class", "disabled", "href", "target"]));
|
|
1102
1117
|
}
|
|
1103
|
-
}),
|
|
1118
|
+
}), Ze = /* @__PURE__ */ L({
|
|
1104
1119
|
__name: "TideButtonPagination",
|
|
1105
1120
|
props: {
|
|
1106
1121
|
disabled: { type: Boolean, default: !1 },
|
|
1107
|
-
element: { default:
|
|
1122
|
+
element: { default: V.BUTTON },
|
|
1108
1123
|
href: { default: void 0 },
|
|
1109
1124
|
label: { default: void 0 }
|
|
1110
1125
|
},
|
|
1111
|
-
setup(
|
|
1112
|
-
const i =
|
|
1113
|
-
return (
|
|
1114
|
-
i.element === t(
|
|
1126
|
+
setup(n) {
|
|
1127
|
+
const i = n;
|
|
1128
|
+
return (a, d) => (l(), D(Q(
|
|
1129
|
+
i.element === t(V).LINK ? "a" : i.element === t(V).BUTTON ? "button" : "div"
|
|
1115
1130
|
), {
|
|
1116
|
-
class:
|
|
1117
|
-
i.element === t(
|
|
1131
|
+
class: s([
|
|
1132
|
+
i.element === t(V).LINK ? "tide-link-as-button-icon" : "tide-button-icon",
|
|
1118
1133
|
[t(e).DISPLAY.INLINE_BLOCK, t(e).BORDER.RADIUS.FULL, t(e).PADDING.FULL.HALF],
|
|
1119
|
-
i.element === t(
|
|
1120
|
-
i.element === t(
|
|
1134
|
+
i.element === t(V).LINK ? [t(e).UNDERLINE.OFF] : "",
|
|
1135
|
+
i.element === t(V).DIV ? [t(e).CURSOR.POINTER] : "",
|
|
1121
1136
|
[t(e).FONT.WEIGHT.SEVEN_HUNDRED]
|
|
1122
1137
|
]),
|
|
1123
|
-
disabled: i.element === t(
|
|
1124
|
-
href: i.element === t(
|
|
1138
|
+
disabled: i.element === t(V).BUTTON && i.disabled,
|
|
1139
|
+
href: i.element === t(V).LINK && i.href ? i.href : void 0
|
|
1125
1140
|
}, {
|
|
1126
1141
|
default: ee(() => [
|
|
1127
|
-
|
|
1128
|
-
class:
|
|
1129
|
-
},
|
|
1142
|
+
T("span", {
|
|
1143
|
+
class: s(["label", t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER])
|
|
1144
|
+
}, I(i.label), 3)
|
|
1130
1145
|
]),
|
|
1131
1146
|
_: 1
|
|
1132
1147
|
}, 8, ["class", "disabled", "href"]));
|
|
1133
1148
|
}
|
|
1134
1149
|
});
|
|
1135
|
-
const
|
|
1150
|
+
const Ke = /* @__PURE__ */ m(Ze, [["__scopeId", "data-v-0710b4ab"]]), te = {
|
|
1151
|
+
ACTIONABLE: "action",
|
|
1152
|
+
INFORMATIONAL: "informational",
|
|
1153
|
+
SELECTABLE: "select"
|
|
1154
|
+
}, ne = {
|
|
1155
|
+
LEFT: "left",
|
|
1156
|
+
TOP: "top"
|
|
1157
|
+
}, Qe = /* @__PURE__ */ L({
|
|
1136
1158
|
__name: "TideCard",
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1159
|
+
props: {
|
|
1160
|
+
description: { default: void 0 },
|
|
1161
|
+
heading: {},
|
|
1162
|
+
icon: { default: void 0 },
|
|
1163
|
+
iconPosition: { default: ne.LEFT },
|
|
1164
|
+
selected: { type: Boolean, default: void 0 },
|
|
1165
|
+
type: { default: te.INFORMATIONAL }
|
|
1166
|
+
},
|
|
1167
|
+
setup(n) {
|
|
1168
|
+
return (i, a) => (l(), D(Q(i.type === t(te).INFORMATIONAL ? "div" : "button"), {
|
|
1169
|
+
class: s([
|
|
1140
1170
|
"tide-card",
|
|
1141
|
-
t(e).
|
|
1171
|
+
t(e).BORDER.COLOR.LOW,
|
|
1172
|
+
t(e).BORDER.FULL.ONE,
|
|
1142
1173
|
t(e).BORDER.RADIUS.HALF,
|
|
1143
|
-
t(e).
|
|
1144
|
-
t(e).
|
|
1145
|
-
t(e).
|
|
1146
|
-
t(e).
|
|
1174
|
+
t(e).DISPLAY.FLEX,
|
|
1175
|
+
t(e).GAP.HALF,
|
|
1176
|
+
t(e).PADDING.FULL.ONE,
|
|
1177
|
+
t(e).WIDTH.FULL,
|
|
1178
|
+
t(e).ALIGN.X.LEFT,
|
|
1179
|
+
i.iconPosition === t(ne).LEFT ? t(e).FLEX.DIRECTION.ROW : i.iconPosition === t(ne).TOP && t(e).FLEX.DIRECTION.COLUMN,
|
|
1180
|
+
i.type !== t(te).INFORMATIONAL && "hoverable",
|
|
1181
|
+
i.type === t(te).SELECTABLE && i.selected && "selected"
|
|
1147
1182
|
])
|
|
1148
|
-
},
|
|
1149
|
-
|
|
1150
|
-
|
|
1183
|
+
}, {
|
|
1184
|
+
default: ee(() => [
|
|
1185
|
+
i.icon ? (l(), D(f, {
|
|
1186
|
+
key: 0,
|
|
1187
|
+
icon: i.icon,
|
|
1188
|
+
size: t(G).SMALL
|
|
1189
|
+
}, null, 8, ["icon", "size"])) : c("", !0),
|
|
1190
|
+
T("div", {
|
|
1191
|
+
class: s([t(e).AXIS2.START, t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).GAP.HALF])
|
|
1192
|
+
}, [
|
|
1193
|
+
T("div", {
|
|
1194
|
+
class: s([t(e).FONT.ROLE.LABEL_1_SEMIBOLD, t(e).FONT.COLOR.SURFACE.DEFAULT])
|
|
1195
|
+
}, I(i.heading), 3),
|
|
1196
|
+
i.description ? (l(), E("div", {
|
|
1197
|
+
key: 0,
|
|
1198
|
+
class: s([t(e).FONT.ROLE.LABEL_2, t(e).FONT.COLOR.SURFACE.VARIANT])
|
|
1199
|
+
}, I(i.description), 3)) : c("", !0)
|
|
1200
|
+
], 2)
|
|
1201
|
+
]),
|
|
1202
|
+
_: 1
|
|
1203
|
+
}, 8, ["class"]));
|
|
1151
1204
|
}
|
|
1152
|
-
})
|
|
1205
|
+
});
|
|
1206
|
+
const Qt = /* @__PURE__ */ m(Qe, [["__scopeId", "data-v-0e115687"]]), Ne = 16, zt = /* @__PURE__ */ L({
|
|
1153
1207
|
__name: "TideCarousel",
|
|
1154
1208
|
props: {
|
|
1155
1209
|
isTouchscreen: { type: Boolean },
|
|
1156
1210
|
offsetX: { default: 0 }
|
|
1157
1211
|
},
|
|
1158
1212
|
emits: ["change"],
|
|
1159
|
-
setup(
|
|
1160
|
-
const
|
|
1161
|
-
let
|
|
1162
|
-
const r =
|
|
1163
|
-
const
|
|
1164
|
-
if (
|
|
1213
|
+
setup(n, { emit: i }) {
|
|
1214
|
+
const a = n;
|
|
1215
|
+
let d = u(), o = u(), O = u(), R = u();
|
|
1216
|
+
const r = u(), N = u(), g = u(), A = u(0), h = () => {
|
|
1217
|
+
const F = Array.from(r.value.children).map((b) => b.offsetLeft);
|
|
1218
|
+
if (F.length === 0)
|
|
1165
1219
|
return;
|
|
1166
|
-
const
|
|
1167
|
-
|
|
1220
|
+
const _ = F.reduce((b, Z) => Math.abs(Z - N.value.scrollLeft) < Math.abs(b - N.value.scrollLeft) ? Z : b);
|
|
1221
|
+
A.value = F.indexOf(_);
|
|
1168
1222
|
}, y = () => {
|
|
1169
|
-
|
|
1170
|
-
},
|
|
1223
|
+
d.value = r.value.scrollWidth, o.value = N.value.clientWidth, O.value = d.value > o.value, R.value = N.value.scrollWidth - N.value.clientWidth, g.value = O.value && !a.isTouchscreen, h();
|
|
1224
|
+
}, w = () => {
|
|
1171
1225
|
y();
|
|
1172
|
-
},
|
|
1173
|
-
|
|
1226
|
+
}, k = (F) => {
|
|
1227
|
+
N.value.scrollTo({
|
|
1174
1228
|
behavior: "smooth",
|
|
1175
|
-
left: r.value.children[
|
|
1229
|
+
left: r.value.children[F].offsetLeft
|
|
1176
1230
|
});
|
|
1177
|
-
},
|
|
1178
|
-
const
|
|
1179
|
-
if (
|
|
1180
|
-
|
|
1231
|
+
}, B = () => {
|
|
1232
|
+
const F = r.value.scrollWidth, _ = N.value.scrollLeft + N.value.clientWidth;
|
|
1233
|
+
if (_ > F)
|
|
1234
|
+
N.value.scrollTo({
|
|
1181
1235
|
behavior: "smooth",
|
|
1182
|
-
left:
|
|
1236
|
+
left: F
|
|
1183
1237
|
});
|
|
1184
1238
|
else {
|
|
1185
|
-
const
|
|
1186
|
-
|
|
1239
|
+
const b = a.offsetX && A.value === 0, C = _ === F ? 0 : b ? 2 : A.value + 1;
|
|
1240
|
+
k(C);
|
|
1187
1241
|
}
|
|
1188
|
-
},
|
|
1189
|
-
const
|
|
1190
|
-
|
|
1242
|
+
}, v = () => {
|
|
1243
|
+
const F = a.offsetX ? 1 : 0, _ = A.value - 1 === F, Z = A.value <= F ? r.value.children.length - 1 : _ ? 0 : A.value - 1;
|
|
1244
|
+
k(Z);
|
|
1191
1245
|
};
|
|
1192
|
-
return
|
|
1246
|
+
return le(() => {
|
|
1193
1247
|
y(), window.addEventListener("resize", y);
|
|
1194
|
-
}),
|
|
1248
|
+
}), _e(() => {
|
|
1195
1249
|
window.removeEventListener("resize", y);
|
|
1196
|
-
}),
|
|
1250
|
+
}), De(() => {
|
|
1197
1251
|
y();
|
|
1198
|
-
}),
|
|
1199
|
-
i("change",
|
|
1200
|
-
}), (
|
|
1201
|
-
class:
|
|
1252
|
+
}), K(A, () => {
|
|
1253
|
+
i("change", A.value);
|
|
1254
|
+
}), (F, _) => (l(), E("section", {
|
|
1255
|
+
class: s(["tide-carousel", t(e).POSITION.RELATIVE, t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).WIDTH.FULL]),
|
|
1202
1256
|
ref: "carouselRef"
|
|
1203
1257
|
}, [
|
|
1204
|
-
|
|
1205
|
-
class:
|
|
1258
|
+
T("div", {
|
|
1259
|
+
class: s([t(e).SCROLLBAR.OFF, t(e).SNAP.ON, t(e).OVERFLOW.X.SCROLL]),
|
|
1206
1260
|
ref_key: "frameRef",
|
|
1207
|
-
ref:
|
|
1208
|
-
onScroll:
|
|
1261
|
+
ref: N,
|
|
1262
|
+
onScroll: w
|
|
1209
1263
|
}, [
|
|
1210
|
-
|
|
1211
|
-
class:
|
|
1264
|
+
T("ul", {
|
|
1265
|
+
class: s([a.isTouchscreen ? [t(e).OVERFLOW.X.AUTO] : "", t(e).DISPLAY.FLEX, t(e).GAP.ONE, t(e).LIST_BULLETS.OFF]),
|
|
1212
1266
|
ref_key: "contentRef",
|
|
1213
1267
|
ref: r
|
|
1214
1268
|
}, [
|
|
1215
|
-
|
|
1269
|
+
a.offsetX ? (l(), E("li", {
|
|
1216
1270
|
key: 0,
|
|
1217
|
-
class:
|
|
1218
|
-
style:
|
|
1219
|
-
}, null, 6)) :
|
|
1220
|
-
|
|
1221
|
-
|
|
1271
|
+
class: s([t(e).FLEX.SHRINK.OFF, t(e).SNAP_ALIGN.START]),
|
|
1272
|
+
style: de({ width: `${a.offsetX - Ne}px` })
|
|
1273
|
+
}, null, 6)) : c("", !0),
|
|
1274
|
+
W(F.$slots, "default"),
|
|
1275
|
+
a.offsetX ? (l(), E("li", {
|
|
1222
1276
|
key: 1,
|
|
1223
|
-
class:
|
|
1224
|
-
style:
|
|
1225
|
-
}, null, 6)) :
|
|
1277
|
+
class: s([t(e).FLEX.SHRINK.OFF, t(e).SNAP_ALIGN.START]),
|
|
1278
|
+
style: de({ width: `${a.offsetX - Ne}px` })
|
|
1279
|
+
}, null, 6)) : c("", !0)
|
|
1226
1280
|
], 2)
|
|
1227
1281
|
], 34),
|
|
1228
|
-
|
|
1282
|
+
g.value ? (l(), E("div", {
|
|
1229
1283
|
key: 0,
|
|
1230
|
-
class:
|
|
1284
|
+
class: s([
|
|
1231
1285
|
t(e).POSITION.ABSOLUTE,
|
|
1232
1286
|
t(e).DISPLAY.FLEX,
|
|
1233
1287
|
t(e).AXIS1.BETWEEN,
|
|
@@ -1237,32 +1291,32 @@ const we = /* @__PURE__ */ C($e, [["__scopeId", "data-v-0710b4ab"]]), wt = /* @_
|
|
|
1237
1291
|
t(e).POINTER_EVENTS.OFF
|
|
1238
1292
|
])
|
|
1239
1293
|
}, [
|
|
1240
|
-
P(
|
|
1241
|
-
class:
|
|
1242
|
-
icon: t(
|
|
1243
|
-
priority: t(
|
|
1244
|
-
onClick:
|
|
1294
|
+
P(J, {
|
|
1295
|
+
class: s([t(e).MARGIN.LEFT.ONE, t(e).POINTER_EVENTS.ON]),
|
|
1296
|
+
icon: t(p).CHEVRON_LEFT,
|
|
1297
|
+
priority: t($).QUATERNARY,
|
|
1298
|
+
onClick: v
|
|
1245
1299
|
}, null, 8, ["class", "icon", "priority"]),
|
|
1246
|
-
P(
|
|
1247
|
-
class:
|
|
1248
|
-
icon: t(
|
|
1249
|
-
priority: t(
|
|
1250
|
-
onClick:
|
|
1300
|
+
P(J, {
|
|
1301
|
+
class: s([t(e).MARGIN.RIGHT.ONE, t(e).POINTER_EVENTS.ON]),
|
|
1302
|
+
icon: t(p).CHEVRON_RIGHT,
|
|
1303
|
+
priority: t($).QUATERNARY,
|
|
1304
|
+
onClick: B
|
|
1251
1305
|
}, null, 8, ["class", "icon", "priority"])
|
|
1252
|
-
], 2)) :
|
|
1306
|
+
], 2)) : c("", !0)
|
|
1253
1307
|
], 2));
|
|
1254
1308
|
}
|
|
1255
|
-
}),
|
|
1309
|
+
}), ze = ["href", "target"], qe = /* @__PURE__ */ L({
|
|
1256
1310
|
__name: "TideChipAction",
|
|
1257
1311
|
props: {
|
|
1258
1312
|
href: {},
|
|
1259
1313
|
isNewTab: { type: Boolean, default: !1 },
|
|
1260
1314
|
label: {}
|
|
1261
1315
|
},
|
|
1262
|
-
setup(
|
|
1263
|
-
const i =
|
|
1264
|
-
return (
|
|
1265
|
-
class:
|
|
1316
|
+
setup(n) {
|
|
1317
|
+
const i = n;
|
|
1318
|
+
return (a, d) => (l(), E("a", {
|
|
1319
|
+
class: s([
|
|
1266
1320
|
"tide-chip-action",
|
|
1267
1321
|
t(e).DISPLAY.FLEX,
|
|
1268
1322
|
t(e).AXIS2.CENTER,
|
|
@@ -1278,25 +1332,25 @@ const we = /* @__PURE__ */ C($e, [["__scopeId", "data-v-0710b4ab"]]), wt = /* @_
|
|
|
1278
1332
|
t(e).UNDERLINE.OFF
|
|
1279
1333
|
]),
|
|
1280
1334
|
href: i.href,
|
|
1281
|
-
target: i.isNewTab ? t(
|
|
1335
|
+
target: i.isNewTab ? t(Y).BLANK : t(Y).SELF
|
|
1282
1336
|
}, [
|
|
1283
|
-
P(
|
|
1284
|
-
icon: t(
|
|
1337
|
+
P(f, {
|
|
1338
|
+
icon: t(p).SEARCH
|
|
1285
1339
|
}, null, 8, ["icon"]),
|
|
1286
|
-
|
|
1287
|
-
], 10,
|
|
1340
|
+
T("span", null, I(i.label), 1)
|
|
1341
|
+
], 10, ze));
|
|
1288
1342
|
}
|
|
1289
1343
|
});
|
|
1290
|
-
const
|
|
1344
|
+
const qt = /* @__PURE__ */ m(qe, [["__scopeId", "data-v-bd4ee14b"]]), je = /* @__PURE__ */ L({
|
|
1291
1345
|
__name: "TideChipFilter",
|
|
1292
1346
|
props: {
|
|
1293
1347
|
isActive: { type: Boolean },
|
|
1294
1348
|
label: {}
|
|
1295
1349
|
},
|
|
1296
|
-
setup(
|
|
1297
|
-
const i =
|
|
1298
|
-
return (
|
|
1299
|
-
class:
|
|
1350
|
+
setup(n) {
|
|
1351
|
+
const i = n;
|
|
1352
|
+
return (a, d) => (l(), E("button", {
|
|
1353
|
+
class: s([
|
|
1300
1354
|
"tide-chip-filter",
|
|
1301
1355
|
i.isActive ? [t(e).BG.SECONDARY, t(e).FONT.COLOR.SECONDARY] : [t(e).BG.SURFACE.VARIANT, t(e).FONT.COLOR.SURFACE.DEFAULT],
|
|
1302
1356
|
t(e).DISPLAY.FLEX,
|
|
@@ -1311,26 +1365,26 @@ const Qt = /* @__PURE__ */ C(Qe, [["__scopeId", "data-v-bd4ee14b"]]), Ke = /* @_
|
|
|
1311
1365
|
i.isActive ? "active" : ""
|
|
1312
1366
|
])
|
|
1313
1367
|
}, [
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
class:
|
|
1368
|
+
W(a.$slots, "default", {}, void 0, !0),
|
|
1369
|
+
T("div", {
|
|
1370
|
+
class: s([t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).GAP.HALF])
|
|
1317
1371
|
}, [
|
|
1318
|
-
|
|
1319
|
-
class:
|
|
1320
|
-
},
|
|
1372
|
+
T("span", {
|
|
1373
|
+
class: s([i.isActive ? "" : "icon-spacing", t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).WHITESPACE_WRAP.OFF])
|
|
1374
|
+
}, I(i.label), 3)
|
|
1321
1375
|
], 2)
|
|
1322
1376
|
], 2));
|
|
1323
1377
|
}
|
|
1324
1378
|
});
|
|
1325
|
-
const
|
|
1379
|
+
const jt = /* @__PURE__ */ m(je, [["__scopeId", "data-v-c07faf14"]]), Je = /* @__PURE__ */ L({
|
|
1326
1380
|
__name: "TideChipInput",
|
|
1327
1381
|
props: {
|
|
1328
1382
|
label: {}
|
|
1329
1383
|
},
|
|
1330
|
-
setup(
|
|
1331
|
-
const i =
|
|
1332
|
-
return (
|
|
1333
|
-
class:
|
|
1384
|
+
setup(n) {
|
|
1385
|
+
const i = n;
|
|
1386
|
+
return (a, d) => (l(), E("button", {
|
|
1387
|
+
class: s([
|
|
1334
1388
|
"tide-chip-input",
|
|
1335
1389
|
t(e).BG.SURFACE.VARIANT,
|
|
1336
1390
|
t(e).FONT.COLOR.SURFACE,
|
|
@@ -1345,44 +1399,44 @@ const Kt = /* @__PURE__ */ C(Ke, [["__scopeId", "data-v-c07faf14"]]), ze = /* @_
|
|
|
1345
1399
|
t(e).FONT.WEIGHT.FIVE_HUNDRED
|
|
1346
1400
|
])
|
|
1347
1401
|
}, [
|
|
1348
|
-
|
|
1349
|
-
P(
|
|
1350
|
-
icon: t(
|
|
1402
|
+
T("span", null, I(i.label), 1),
|
|
1403
|
+
P(f, {
|
|
1404
|
+
icon: t(p).CLOSE
|
|
1351
1405
|
}, null, 8, ["icon"])
|
|
1352
1406
|
], 2));
|
|
1353
1407
|
}
|
|
1354
1408
|
});
|
|
1355
|
-
const
|
|
1409
|
+
const Jt = /* @__PURE__ */ m(Je, [["__scopeId", "data-v-62b9f1c0"]]), et = { class: "tide-columns" }, tt = { class: "tide-columns-column" }, it = { class: "tide-columns-column" }, at = { class: "tide-columns-column" }, st = { class: "tide-columns-column" }, nt = /* @__PURE__ */ L({
|
|
1356
1410
|
__name: "TideColumns",
|
|
1357
1411
|
props: {
|
|
1358
1412
|
heading: { default: "" }
|
|
1359
1413
|
},
|
|
1360
|
-
setup(
|
|
1361
|
-
const i =
|
|
1362
|
-
return (
|
|
1363
|
-
|
|
1364
|
-
class:
|
|
1365
|
-
},
|
|
1366
|
-
|
|
1367
|
-
class:
|
|
1414
|
+
setup(n) {
|
|
1415
|
+
const i = n;
|
|
1416
|
+
return (a, d) => (l(), E("section", et, [
|
|
1417
|
+
T("h2", {
|
|
1418
|
+
class: s([t(e).MARGIN.BOTTOM.HALF, t(e).FONT.SIZE.SIXTEEN])
|
|
1419
|
+
}, I(i.heading), 3),
|
|
1420
|
+
T("ul", {
|
|
1421
|
+
class: s([t(e).DISPLAY.FLEX, t(e).FLEX.WRAP, t(e).GAP.TWO, t(e).LIST_BULLETS.OFF])
|
|
1368
1422
|
}, [
|
|
1369
|
-
|
|
1370
|
-
|
|
1423
|
+
T("li", tt, [
|
|
1424
|
+
W(a.$slots, "section1", {}, void 0, !0)
|
|
1371
1425
|
]),
|
|
1372
|
-
|
|
1373
|
-
|
|
1426
|
+
T("li", it, [
|
|
1427
|
+
W(a.$slots, "section2", {}, void 0, !0)
|
|
1374
1428
|
]),
|
|
1375
|
-
|
|
1376
|
-
|
|
1429
|
+
T("li", at, [
|
|
1430
|
+
W(a.$slots, "section3", {}, void 0, !0)
|
|
1377
1431
|
]),
|
|
1378
|
-
|
|
1379
|
-
|
|
1432
|
+
T("li", st, [
|
|
1433
|
+
W(a.$slots, "section4", {}, void 0, !0)
|
|
1380
1434
|
])
|
|
1381
1435
|
], 2)
|
|
1382
1436
|
]));
|
|
1383
1437
|
}
|
|
1384
1438
|
});
|
|
1385
|
-
const
|
|
1439
|
+
const ei = /* @__PURE__ */ m(nt, [["__scopeId", "data-v-14ad0455"]]), dt = ["checked", "disabled", "name", "id"], lt = ["for"], ot = /* @__PURE__ */ L({
|
|
1386
1440
|
__name: "TideInputCheckbox",
|
|
1387
1441
|
props: {
|
|
1388
1442
|
checked: { type: Boolean, default: !1 },
|
|
@@ -1394,43 +1448,31 @@ const qt = /* @__PURE__ */ C(st, [["__scopeId", "data-v-14ad0455"]]), it = ["che
|
|
|
1394
1448
|
name: { default: void 0 },
|
|
1395
1449
|
number: { default: void 0 }
|
|
1396
1450
|
},
|
|
1397
|
-
setup(
|
|
1398
|
-
const
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
return Y(
|
|
1402
|
-
() => s.indeterminate,
|
|
1403
|
-
(r, O) => {
|
|
1404
|
-
(r !== O || r !== T.value) && n.value && (T.value = r, n.value.indeterminate = T.value, T.value === !0 && (d.value = !0), n.value.checked = d.value);
|
|
1405
|
-
}
|
|
1406
|
-
), Y(
|
|
1407
|
-
() => s.checked,
|
|
1408
|
-
(r, O) => {
|
|
1409
|
-
(r !== O || r !== d.value) && (d.value = r);
|
|
1410
|
-
}
|
|
1411
|
-
), i({ checked: d, indeterminate: T }), (r, O) => (l(), E("div", {
|
|
1412
|
-
class: a([
|
|
1451
|
+
setup(n) {
|
|
1452
|
+
const i = n, a = U(() => i.checked || i.indeterminate);
|
|
1453
|
+
return (d, o) => (l(), E("div", {
|
|
1454
|
+
class: s([
|
|
1413
1455
|
"tide-input-checkbox",
|
|
1414
1456
|
t(e).DISPLAY.FLEX,
|
|
1415
1457
|
t(e).AXIS2.CENTER,
|
|
1416
1458
|
t(e).GAP.HALF,
|
|
1417
1459
|
t(e).FONT.SIZE.FOURTEEN,
|
|
1418
|
-
|
|
1419
|
-
r.disabled ? t(e).CURSOR.NOT_ALLOWED : t(e).CURSOR.POINTER
|
|
1460
|
+
d.disabled ? ["disabled", t(e).POINTER_EVENTS.OFF] : t(e).CURSOR.POINTER
|
|
1420
1461
|
])
|
|
1421
1462
|
}, [
|
|
1422
|
-
|
|
1423
|
-
checked:
|
|
1424
|
-
class:
|
|
1425
|
-
disabled:
|
|
1426
|
-
name:
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1463
|
+
T("input", {
|
|
1464
|
+
checked: a.value,
|
|
1465
|
+
class: s([t(e).DISPLAY.NONE]),
|
|
1466
|
+
disabled: i.disabled,
|
|
1467
|
+
name: i.name,
|
|
1468
|
+
ref: "input",
|
|
1469
|
+
onClick: o[0] || (o[0] = ie(() => {
|
|
1470
|
+
}, ["prevent"])),
|
|
1471
|
+
id: i.inputId,
|
|
1430
1472
|
type: "checkbox"
|
|
1431
|
-
}, null, 10,
|
|
1432
|
-
|
|
1433
|
-
class:
|
|
1473
|
+
}, null, 10, dt),
|
|
1474
|
+
T("div", {
|
|
1475
|
+
class: s([
|
|
1434
1476
|
"tide-input-checkbox-custom",
|
|
1435
1477
|
t(e).POSITION.RELATIVE,
|
|
1436
1478
|
t(e).DISPLAY.FLEX,
|
|
@@ -1438,36 +1480,36 @@ const qt = /* @__PURE__ */ C(st, [["__scopeId", "data-v-14ad0455"]]), it = ["che
|
|
|
1438
1480
|
t(e).AXIS2.CENTER,
|
|
1439
1481
|
t(e).FLEX.SHRINK.OFF,
|
|
1440
1482
|
t(e).BORDER.FULL.ONE,
|
|
1441
|
-
|
|
1483
|
+
a.value ? [t(e).BORDER.COLOR.HIGH, t(e).BG.SECONDARY] : [t(e).BORDER.COLOR.DEFAULT, t(e).BG.SURFACE.DEFAULT],
|
|
1442
1484
|
t(e).BORDER.RADIUS.QUARTER,
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
])
|
|
1446
|
-
onClick: I
|
|
1485
|
+
a.value && "checked",
|
|
1486
|
+
d.disabled ? t(e).CURSOR.NOT_ALLOWED : t(e).CURSOR.POINTER
|
|
1487
|
+
])
|
|
1447
1488
|
}, [
|
|
1448
|
-
|
|
1489
|
+
a.value ? (l(), D(f, {
|
|
1449
1490
|
key: 0,
|
|
1450
|
-
class:
|
|
1451
|
-
icon:
|
|
1452
|
-
size: t(
|
|
1453
|
-
}, null, 8, ["class", "icon", "size"])) :
|
|
1491
|
+
class: s([t(e).FONT.COLOR.SECONDARY]),
|
|
1492
|
+
icon: i.indeterminate ? t(p).REMOVE : t(p).CHECK,
|
|
1493
|
+
size: t(G).SMALL
|
|
1494
|
+
}, null, 8, ["class", "icon", "size"])) : c("", !0)
|
|
1454
1495
|
], 2),
|
|
1455
|
-
|
|
1496
|
+
d.label ? (l(), E("label", {
|
|
1456
1497
|
key: 0,
|
|
1457
|
-
class:
|
|
1458
|
-
for:
|
|
1459
|
-
onClick:
|
|
1498
|
+
class: s([t(e).DISPLAY.FLEX, t(e).GAP.HALF, d.disabled ? t(e).CURSOR.NOT_ALLOWED : t(e).CURSOR.POINTER]),
|
|
1499
|
+
for: i.inputId,
|
|
1500
|
+
onClick: o[1] || (o[1] = ie(() => {
|
|
1501
|
+
}, ["prevent"]))
|
|
1460
1502
|
}, [
|
|
1461
|
-
|
|
1462
|
-
|
|
1503
|
+
T("span", null, I(d.label), 1),
|
|
1504
|
+
i.number ? (l(), E("span", {
|
|
1463
1505
|
key: 0,
|
|
1464
|
-
class:
|
|
1465
|
-
}, " (" +
|
|
1466
|
-
], 10,
|
|
1506
|
+
class: s([t(e).FONT.COLOR.SURFACE.VARIANT])
|
|
1507
|
+
}, " (" + I(t(Ee)(i.number)) + ") ", 3)) : c("", !0)
|
|
1508
|
+
], 10, lt)) : c("", !0)
|
|
1467
1509
|
], 2));
|
|
1468
1510
|
}
|
|
1469
1511
|
});
|
|
1470
|
-
const
|
|
1512
|
+
const ti = /* @__PURE__ */ m(ot, [["__scopeId", "data-v-60fe83ce"]]), Et = ["checked", "id"], rt = ["for"], Tt = /* @__PURE__ */ L({
|
|
1471
1513
|
__name: "TideInputRadio",
|
|
1472
1514
|
props: {
|
|
1473
1515
|
checked: { type: Boolean, default: !1 },
|
|
@@ -1477,111 +1519,111 @@ const jt = /* @__PURE__ */ C(ot, [["__scopeId", "data-v-0c7f2a7e"]]), nt = ["che
|
|
|
1477
1519
|
label: { default: void 0 },
|
|
1478
1520
|
name: {}
|
|
1479
1521
|
},
|
|
1480
|
-
setup(
|
|
1481
|
-
const i =
|
|
1482
|
-
return
|
|
1522
|
+
setup(n) {
|
|
1523
|
+
const i = n, a = u(i.checked);
|
|
1524
|
+
return K(
|
|
1483
1525
|
() => i.checked,
|
|
1484
|
-
(
|
|
1485
|
-
(
|
|
1526
|
+
(d, o) => {
|
|
1527
|
+
(d !== o || d !== a.value) && (a.value = d);
|
|
1486
1528
|
}
|
|
1487
|
-
), (
|
|
1488
|
-
class:
|
|
1529
|
+
), (d, o) => (l(), E("div", {
|
|
1530
|
+
class: s(["tide-input-radio", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.HALF, i.disabled && "disabled"])
|
|
1489
1531
|
}, [
|
|
1490
|
-
|
|
1491
|
-
checked:
|
|
1492
|
-
class:
|
|
1532
|
+
T("input", {
|
|
1533
|
+
checked: a.value,
|
|
1534
|
+
class: s([t(e).DISPLAY.NONE]),
|
|
1493
1535
|
id: i.inputId,
|
|
1494
1536
|
name: "",
|
|
1495
1537
|
type: "radio",
|
|
1496
1538
|
value: ""
|
|
1497
|
-
}, null, 10,
|
|
1498
|
-
|
|
1499
|
-
class:
|
|
1539
|
+
}, null, 10, Et),
|
|
1540
|
+
T("div", {
|
|
1541
|
+
class: s([
|
|
1500
1542
|
"tide-input-radio-custom",
|
|
1501
1543
|
t(e).POSITION.RELATIVE,
|
|
1502
1544
|
t(e).DISPLAY.FLEX,
|
|
1503
1545
|
t(e).AXIS1.CENTER,
|
|
1504
1546
|
t(e).AXIS2.CENTER,
|
|
1505
1547
|
t(e).BORDER.FULL.ONE,
|
|
1506
|
-
|
|
1548
|
+
a.value ? t(e).BORDER.COLOR.HIGH : t(e).BORDER.COLOR.DEFAULT,
|
|
1507
1549
|
t(e).BORDER.RADIUS.FULL,
|
|
1508
|
-
|
|
1550
|
+
a.value && "checked"
|
|
1509
1551
|
])
|
|
1510
1552
|
}, [
|
|
1511
|
-
|
|
1512
|
-
class:
|
|
1553
|
+
T("div", {
|
|
1554
|
+
class: s(["tide-input-radio-check", t(e).BORDER.RADIUS.FULL, i.checked && t(e).BG.SECONDARY])
|
|
1513
1555
|
}, null, 2)
|
|
1514
1556
|
], 2),
|
|
1515
|
-
|
|
1516
|
-
class:
|
|
1557
|
+
T("label", {
|
|
1558
|
+
class: s(t(e).FONT.WEIGHT.FOUR_HUNDRED),
|
|
1517
1559
|
for: i.inputId
|
|
1518
|
-
},
|
|
1560
|
+
}, I(i.label), 11, rt)
|
|
1519
1561
|
], 2));
|
|
1520
1562
|
}
|
|
1521
1563
|
});
|
|
1522
|
-
const
|
|
1564
|
+
const ii = /* @__PURE__ */ m(Tt, [["__scopeId", "data-v-75f2f184"]]), re = "Please enter a valid value.", Ot = {
|
|
1523
1565
|
message: "",
|
|
1524
1566
|
valid: !0
|
|
1525
|
-
},
|
|
1526
|
-
let
|
|
1527
|
-
return i.trim().match(
|
|
1528
|
-
message:
|
|
1567
|
+
}, z = (n) => (i) => {
|
|
1568
|
+
let a = Ot;
|
|
1569
|
+
return i.trim().match(n) || (a = {
|
|
1570
|
+
message: re,
|
|
1529
1571
|
valid: !1
|
|
1530
|
-
}),
|
|
1531
|
-
},
|
|
1532
|
-
const
|
|
1533
|
-
return !(!
|
|
1534
|
-
},
|
|
1535
|
-
error:
|
|
1572
|
+
}), a;
|
|
1573
|
+
}, Te = (n, i) => typeof n == "string" && n.length > 0 ? n : typeof i == "string" && i.length > 0 ? i : re, Oe = (n, i) => n !== !1 || i !== !1, Rt = ({ maxlength: n, minlength: i, required: a, value: d }) => {
|
|
1574
|
+
const o = d.length === 0 && !a, O = n && d.length > n;
|
|
1575
|
+
return !(!o && i && d.length < i) && !O;
|
|
1576
|
+
}, Le = ({
|
|
1577
|
+
error: n,
|
|
1536
1578
|
errorFromProps: i,
|
|
1537
|
-
maxlength:
|
|
1538
|
-
minlength:
|
|
1539
|
-
required:
|
|
1540
|
-
validators:
|
|
1541
|
-
value:
|
|
1579
|
+
maxlength: a,
|
|
1580
|
+
minlength: d,
|
|
1581
|
+
required: o = !1,
|
|
1582
|
+
validators: O,
|
|
1583
|
+
value: R
|
|
1542
1584
|
}) => {
|
|
1543
|
-
if (
|
|
1544
|
-
const r =
|
|
1545
|
-
r.valid || (
|
|
1585
|
+
if (n.value = i || !1, !n.value && O) {
|
|
1586
|
+
const r = It(R.value, O);
|
|
1587
|
+
r.valid || (n.value = r.message);
|
|
1546
1588
|
}
|
|
1547
|
-
if (!
|
|
1589
|
+
if (!n.value && (a || d)) {
|
|
1548
1590
|
const r = ct({
|
|
1549
|
-
maxlength:
|
|
1550
|
-
minlength:
|
|
1551
|
-
required:
|
|
1552
|
-
value:
|
|
1591
|
+
maxlength: a,
|
|
1592
|
+
minlength: d,
|
|
1593
|
+
required: o,
|
|
1594
|
+
value: R.value
|
|
1553
1595
|
});
|
|
1554
|
-
r.valid || (
|
|
1596
|
+
r.valid || (n.value = r.message);
|
|
1555
1597
|
}
|
|
1556
1598
|
}, ct = ({
|
|
1557
|
-
maxlength:
|
|
1599
|
+
maxlength: n,
|
|
1558
1600
|
minlength: i,
|
|
1559
|
-
required:
|
|
1560
|
-
value:
|
|
1601
|
+
required: a = !1,
|
|
1602
|
+
value: d
|
|
1561
1603
|
}) => {
|
|
1562
|
-
const
|
|
1604
|
+
const o = {
|
|
1563
1605
|
message: "",
|
|
1564
1606
|
valid: !0
|
|
1565
1607
|
};
|
|
1566
|
-
return
|
|
1567
|
-
maxlength:
|
|
1608
|
+
return o.valid = Rt({
|
|
1609
|
+
maxlength: n,
|
|
1568
1610
|
minlength: i,
|
|
1569
|
-
required:
|
|
1570
|
-
value:
|
|
1571
|
-
}),
|
|
1611
|
+
required: a,
|
|
1612
|
+
value: d
|
|
1613
|
+
}), o.valid || (o.message = re, n && i ? o.message = `Please enter a value between ${i} and ${n} characters in length.` : n ? o.message = `Please enter a value no more than ${n} characters in length.` : i && (o.message = `Please enter a value no less than ${i} characters in length.`)), o;
|
|
1572
1614
|
};
|
|
1573
|
-
function
|
|
1574
|
-
for (const
|
|
1575
|
-
const
|
|
1576
|
-
if (!
|
|
1577
|
-
return
|
|
1615
|
+
function It(n, i) {
|
|
1616
|
+
for (const a of i) {
|
|
1617
|
+
const d = a(n);
|
|
1618
|
+
if (!d.valid)
|
|
1619
|
+
return d;
|
|
1578
1620
|
}
|
|
1579
1621
|
return {
|
|
1580
1622
|
message: "",
|
|
1581
1623
|
valid: !0
|
|
1582
1624
|
};
|
|
1583
1625
|
}
|
|
1584
|
-
const
|
|
1626
|
+
const At = ["for"], Nt = ["disabled", "name", "required", "id"], ut = ["label"], Lt = ["value"], Ft = ["selected", "value"], pt = ["selected", "value"], _t = /* @__PURE__ */ L({
|
|
1585
1627
|
__name: "TideInputSelect",
|
|
1586
1628
|
props: {
|
|
1587
1629
|
inputId: { default: void 0 },
|
|
@@ -1595,124 +1637,124 @@ const It = ["for"], Ot = ["disabled", "name", "required", "id"], Rt = ["label"],
|
|
|
1595
1637
|
required: { type: Boolean, default: !1 },
|
|
1596
1638
|
value: { default: void 0 }
|
|
1597
1639
|
},
|
|
1598
|
-
setup(
|
|
1599
|
-
const
|
|
1600
|
-
var
|
|
1601
|
-
const
|
|
1602
|
-
(
|
|
1603
|
-
},
|
|
1604
|
-
|
|
1605
|
-
},
|
|
1606
|
-
|
|
1640
|
+
setup(n, { expose: i }) {
|
|
1641
|
+
const a = n, d = u(a.error), o = u(!1), O = u(null), R = u(a.required), r = u(a.value), N = U(() => Te(a.error, d.value)), g = U(() => a.required ? `${a.label} *` : a.label), A = U(() => a.required && !r.value || Oe(d.value, a.error)), h = U(() => o.value || !y.value), y = U(() => r.value === void 0), w = () => {
|
|
1642
|
+
var F;
|
|
1643
|
+
const v = new MouseEvent("mousedown");
|
|
1644
|
+
(F = O == null ? void 0 : O.value) == null || F.dispatchEvent(v);
|
|
1645
|
+
}, k = () => {
|
|
1646
|
+
o.value = !0;
|
|
1647
|
+
}, B = () => {
|
|
1648
|
+
o.value = !1;
|
|
1607
1649
|
};
|
|
1608
|
-
return
|
|
1609
|
-
() =>
|
|
1610
|
-
(
|
|
1611
|
-
(
|
|
1650
|
+
return K(
|
|
1651
|
+
() => a.value,
|
|
1652
|
+
(v, F) => {
|
|
1653
|
+
(v !== F || v !== r.value) && (r.value = v);
|
|
1612
1654
|
}
|
|
1613
|
-
), i({ error:
|
|
1614
|
-
class:
|
|
1655
|
+
), i({ error: d, value: r }), (v, F) => (l(), E("div", {
|
|
1656
|
+
class: s([
|
|
1615
1657
|
"tide-input-select",
|
|
1616
1658
|
t(e).DISPLAY.FLEX,
|
|
1617
1659
|
t(e).FLEX.DIRECTION.COLUMN,
|
|
1618
1660
|
t(e).GAP.QUARTER,
|
|
1619
|
-
|
|
1620
|
-
|
|
1661
|
+
v.disabled && "disabled",
|
|
1662
|
+
A.value && "error"
|
|
1621
1663
|
])
|
|
1622
1664
|
}, [
|
|
1623
|
-
|
|
1624
|
-
class:
|
|
1665
|
+
T("div", {
|
|
1666
|
+
class: s([
|
|
1625
1667
|
"tide-input-border",
|
|
1626
1668
|
t(e).POSITION.RELATIVE,
|
|
1627
1669
|
t(e).DISPLAY.FLEX,
|
|
1628
1670
|
t(e).AXIS2.CENTER,
|
|
1629
1671
|
t(e).GAP.HALF,
|
|
1630
1672
|
t(e).BORDER.RADIUS.HALF,
|
|
1631
|
-
|
|
1673
|
+
a.disabled ? t(e).CURSOR.NOT_ALLOWED : "",
|
|
1632
1674
|
t(e).OVERFLOW.XY.HIDDEN
|
|
1633
1675
|
]),
|
|
1634
|
-
onClick:
|
|
1676
|
+
onClick: w
|
|
1635
1677
|
}, [
|
|
1636
|
-
|
|
1637
|
-
class:
|
|
1678
|
+
T("div", {
|
|
1679
|
+
class: s([t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).WIDTH.FULL])
|
|
1638
1680
|
}, [
|
|
1639
|
-
|
|
1681
|
+
v.label ? (l(), E("label", {
|
|
1640
1682
|
key: 0,
|
|
1641
|
-
class:
|
|
1642
|
-
|
|
1683
|
+
class: s([
|
|
1684
|
+
h.value ? ["minilabel", t(e).FONT.SIZE.TWELVE] : t(e).FONT.SIZE.SIXTEEN,
|
|
1643
1685
|
t(e).POSITION.ABSOLUTE,
|
|
1644
1686
|
t(e).POSITIONING.LEFT,
|
|
1645
1687
|
t(e).MARGIN.TOP.HALF,
|
|
1646
1688
|
t(e).MARGIN.LEFT.ONE,
|
|
1647
|
-
!
|
|
1689
|
+
!A.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1648
1690
|
t(e).FONT.WEIGHT.FIVE_HUNDRED
|
|
1649
1691
|
]),
|
|
1650
|
-
for:
|
|
1651
|
-
},
|
|
1652
|
-
|
|
1653
|
-
class:
|
|
1654
|
-
disabled:
|
|
1655
|
-
name:
|
|
1692
|
+
for: a.inputId
|
|
1693
|
+
}, I(g.value), 11, At)) : c("", !0),
|
|
1694
|
+
oe(T("select", {
|
|
1695
|
+
class: s([t(e).PADDING.BOTTOM.HALF, t(e).PADDING.X.ONE, t(e).WIDTH.FULL, v.disabled && t(e).CURSOR.NOT_ALLOWED]),
|
|
1696
|
+
disabled: v.disabled,
|
|
1697
|
+
name: v.name,
|
|
1656
1698
|
ref_key: "input",
|
|
1657
|
-
ref:
|
|
1658
|
-
required:
|
|
1659
|
-
onFocus:
|
|
1660
|
-
onFocusout:
|
|
1661
|
-
id:
|
|
1662
|
-
"onUpdate:modelValue":
|
|
1699
|
+
ref: O,
|
|
1700
|
+
required: R.value,
|
|
1701
|
+
onFocus: k,
|
|
1702
|
+
onFocusout: B,
|
|
1703
|
+
id: a.inputId,
|
|
1704
|
+
"onUpdate:modelValue": F[0] || (F[0] = (_) => r.value = _)
|
|
1663
1705
|
}, [
|
|
1664
|
-
(l(!0), E(M, null,
|
|
1665
|
-
|
|
1666
|
-
class:
|
|
1667
|
-
key:
|
|
1668
|
-
label:
|
|
1706
|
+
(l(!0), E(M, null, x(a.optgroups, (_) => (l(), E(M, null, [
|
|
1707
|
+
_.options ? (l(), E("optgroup", {
|
|
1708
|
+
class: s([t(e).WIDTH.FULL, t(e).BG.SURFACE.DEFAULT]),
|
|
1709
|
+
key: _.label,
|
|
1710
|
+
label: _.label
|
|
1669
1711
|
}, [
|
|
1670
|
-
(l(!0), E(M, null,
|
|
1671
|
-
class:
|
|
1672
|
-
key:
|
|
1673
|
-
value:
|
|
1674
|
-
},
|
|
1675
|
-
], 10,
|
|
1676
|
-
class:
|
|
1677
|
-
key:
|
|
1678
|
-
selected: r.value ===
|
|
1679
|
-
value:
|
|
1680
|
-
},
|
|
1712
|
+
(l(!0), E(M, null, x(_.options, (b) => (l(), E("option", {
|
|
1713
|
+
class: s([t(e).WIDTH.FULL, t(e).BG.SURFACE.DEFAULT]),
|
|
1714
|
+
key: b.value,
|
|
1715
|
+
value: b.value
|
|
1716
|
+
}, I(b.label), 11, Lt))), 128))
|
|
1717
|
+
], 10, ut)) : (l(), E("option", {
|
|
1718
|
+
class: s([t(e).WIDTH.FULL, t(e).BG.SURFACE.DEFAULT]),
|
|
1719
|
+
key: _.value,
|
|
1720
|
+
selected: r.value === _.value ? !0 : void 0,
|
|
1721
|
+
value: _.value
|
|
1722
|
+
}, I(_.label), 11, Ft))
|
|
1681
1723
|
], 64))), 256)),
|
|
1682
|
-
(l(!0), E(M, null,
|
|
1683
|
-
class:
|
|
1684
|
-
key:
|
|
1685
|
-
selected: r.value ===
|
|
1686
|
-
value:
|
|
1687
|
-
},
|
|
1688
|
-
], 42,
|
|
1689
|
-
[
|
|
1724
|
+
(l(!0), E(M, null, x(v.options, (_) => (l(), E("option", {
|
|
1725
|
+
class: s([t(e).WIDTH.FULL, t(e).BG.SURFACE.DEFAULT]),
|
|
1726
|
+
key: _.value,
|
|
1727
|
+
selected: r.value === _.value ? !0 : void 0,
|
|
1728
|
+
value: _.value
|
|
1729
|
+
}, I(_.label), 11, pt))), 128))
|
|
1730
|
+
], 42, Nt), [
|
|
1731
|
+
[Se, r.value]
|
|
1690
1732
|
])
|
|
1691
1733
|
], 2),
|
|
1692
|
-
P(
|
|
1693
|
-
class:
|
|
1694
|
-
icon: t(
|
|
1695
|
-
size: t(
|
|
1734
|
+
P(f, {
|
|
1735
|
+
class: s([t(e).POSITION.ABSOLUTE, t(e).POSITIONING.RIGHT, t(e).MARGIN.RIGHT.ONE, t(e).POINTER_EVENTS.OFF]),
|
|
1736
|
+
icon: t(p).EXPAND_MORE,
|
|
1737
|
+
size: t(G).SMALL
|
|
1696
1738
|
}, null, 8, ["class", "icon", "size"])
|
|
1697
1739
|
], 2),
|
|
1698
|
-
|
|
1740
|
+
a.supportingText || A.value ? (l(), E("div", {
|
|
1699
1741
|
key: 0,
|
|
1700
|
-
class:
|
|
1742
|
+
class: s([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).MARGIN.LEFT.ONE])
|
|
1701
1743
|
}, [
|
|
1702
|
-
|
|
1744
|
+
A.value ? (l(), D(f, {
|
|
1703
1745
|
key: 0,
|
|
1704
|
-
class:
|
|
1705
|
-
icon: t(
|
|
1706
|
-
size: t(
|
|
1707
|
-
}, null, 8, ["icon", "size"])) :
|
|
1708
|
-
|
|
1709
|
-
class:
|
|
1710
|
-
}, A
|
|
1711
|
-
], 2)) :
|
|
1746
|
+
class: s([]),
|
|
1747
|
+
icon: t(p).ERROR,
|
|
1748
|
+
size: t(G).SMALL
|
|
1749
|
+
}, null, 8, ["icon", "size"])) : c("", !0),
|
|
1750
|
+
T("div", {
|
|
1751
|
+
class: s([t(e).FONT.SIZE.TWELVE, t(e).FONT.WEIGHT.FIVE_HUNDRED])
|
|
1752
|
+
}, I(A.value ? N.value : a.supportingText), 3)
|
|
1753
|
+
], 2)) : c("", !0)
|
|
1712
1754
|
], 2));
|
|
1713
1755
|
}
|
|
1714
1756
|
});
|
|
1715
|
-
const
|
|
1757
|
+
const ai = /* @__PURE__ */ m(_t, [["__scopeId", "data-v-c1ec19a5"]]), q = {
|
|
1716
1758
|
DATE: "date",
|
|
1717
1759
|
DATETIME_LOCAL: "datetime-local",
|
|
1718
1760
|
EMAIL: "email",
|
|
@@ -1725,7 +1767,7 @@ const es = /* @__PURE__ */ C(Lt, [["__scopeId", "data-v-c1ec19a5"]]), z = {
|
|
|
1725
1767
|
TIME: "time",
|
|
1726
1768
|
URL: "url",
|
|
1727
1769
|
WEEK: "week"
|
|
1728
|
-
},
|
|
1770
|
+
}, Dt = ["for"], St = ["autocomplete", "data-track", "disabled", "maxlength", "minlength", "name", "required", "type", "id"], ft = /* @__PURE__ */ L({
|
|
1729
1771
|
__name: "TideInputText",
|
|
1730
1772
|
props: {
|
|
1731
1773
|
autocomplete: { type: Boolean, default: !1 },
|
|
@@ -1744,156 +1786,156 @@ const es = /* @__PURE__ */ C(Lt, [["__scopeId", "data-v-c1ec19a5"]]), z = {
|
|
|
1744
1786
|
suffix: { default: void 0 },
|
|
1745
1787
|
supportingText: { default: void 0 },
|
|
1746
1788
|
transformValue: { type: Function, default: void 0 },
|
|
1747
|
-
type: { default:
|
|
1789
|
+
type: { default: q.TEXT },
|
|
1748
1790
|
validators: { default: void 0 },
|
|
1749
1791
|
value: { default: "" }
|
|
1750
1792
|
},
|
|
1751
|
-
setup(
|
|
1752
|
-
const
|
|
1753
|
-
() =>
|
|
1754
|
-
),
|
|
1755
|
-
var
|
|
1756
|
-
r.value = "", (
|
|
1757
|
-
}, D = () => {
|
|
1758
|
-
d.value = !0;
|
|
1759
|
-
}, p = () => {
|
|
1760
|
-
d.value = !1, h();
|
|
1793
|
+
setup(n, { expose: i }) {
|
|
1794
|
+
const a = n, d = u(a.error), o = u(!1), O = u(null), R = u(!1), r = u(a.value), N = U(() => Te(a.error, d.value)), g = U(() => a.required && a.label ? `${a.label} *` : a.label), A = U(() => a.hasClear && r.value), h = U(() => a.required && !r.value || Oe(d.value, a.error)), y = U(() => o.value || !w.value), w = U(() => r.value === ""), k = U(
|
|
1795
|
+
() => a.type === q.PASSWORD && R.value === !0 ? q.TEXT : a.type
|
|
1796
|
+
), B = () => {
|
|
1797
|
+
var C;
|
|
1798
|
+
r.value = "", (C = O.value) == null || C.focus();
|
|
1761
1799
|
}, v = () => {
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1800
|
+
o.value = !0;
|
|
1801
|
+
}, F = () => {
|
|
1802
|
+
o.value = !1, b();
|
|
1803
|
+
}, _ = () => {
|
|
1804
|
+
var C;
|
|
1805
|
+
if (a.transformValue) {
|
|
1806
|
+
const X = ((C = r.value.match(/\d/g)) == null ? void 0 : C.join("")) || void 0;
|
|
1807
|
+
r.value = X ? a.transformValue(X) : "";
|
|
1766
1808
|
}
|
|
1767
|
-
},
|
|
1768
|
-
|
|
1769
|
-
error:
|
|
1770
|
-
errorFromProps:
|
|
1771
|
-
maxlength:
|
|
1772
|
-
minlength:
|
|
1773
|
-
required:
|
|
1774
|
-
validators:
|
|
1809
|
+
}, b = () => {
|
|
1810
|
+
Le({
|
|
1811
|
+
error: d,
|
|
1812
|
+
errorFromProps: a.error,
|
|
1813
|
+
maxlength: a.maxlength,
|
|
1814
|
+
minlength: a.minlength,
|
|
1815
|
+
required: a.required,
|
|
1816
|
+
validators: a.validators,
|
|
1775
1817
|
value: r
|
|
1776
1818
|
});
|
|
1777
|
-
},
|
|
1778
|
-
r.value =
|
|
1819
|
+
}, Z = (C) => {
|
|
1820
|
+
r.value = C;
|
|
1779
1821
|
};
|
|
1780
|
-
return
|
|
1781
|
-
() =>
|
|
1782
|
-
(
|
|
1783
|
-
(
|
|
1822
|
+
return K(
|
|
1823
|
+
() => a.value,
|
|
1824
|
+
(C, X) => {
|
|
1825
|
+
(C !== X || C !== r.value) && (r.value = C);
|
|
1784
1826
|
}
|
|
1785
|
-
), i({ error:
|
|
1786
|
-
class:
|
|
1827
|
+
), i({ error: d, updateValue: Z, value: r }), (C, X) => (l(), E("div", {
|
|
1828
|
+
class: s([
|
|
1787
1829
|
"tide-input-text",
|
|
1788
1830
|
t(e).DISPLAY.FLEX,
|
|
1789
1831
|
t(e).FLEX.DIRECTION.COLUMN,
|
|
1790
1832
|
t(e).GAP.QUARTER,
|
|
1791
|
-
|
|
1792
|
-
|
|
1833
|
+
C.disabled && "disabled",
|
|
1834
|
+
h.value && "error"
|
|
1793
1835
|
])
|
|
1794
1836
|
}, [
|
|
1795
|
-
|
|
1796
|
-
class:
|
|
1837
|
+
T("div", {
|
|
1838
|
+
class: s([
|
|
1797
1839
|
"tide-input-border",
|
|
1798
1840
|
t(e).DISPLAY.FLEX,
|
|
1799
1841
|
t(e).AXIS2.CENTER,
|
|
1800
1842
|
t(e).GAP.HALF,
|
|
1801
1843
|
t(e).POSITION.RELATIVE,
|
|
1802
1844
|
t(e).BORDER.RADIUS.HALF,
|
|
1803
|
-
|
|
1845
|
+
A.value ? [t(e).PADDING.RIGHT.HALF, t(e).PADDING.LEFT.ONE] : [t(e).PADDING.X.ONE],
|
|
1804
1846
|
t(e).PADDING.Y.HALF,
|
|
1805
|
-
|
|
1847
|
+
a.disabled ? t(e).CURSOR.NOT_ALLOWED : t(e).CURSOR.TEXT
|
|
1806
1848
|
])
|
|
1807
1849
|
}, [
|
|
1808
|
-
|
|
1850
|
+
a.iconLeading ? (l(), D(f, {
|
|
1809
1851
|
key: 0,
|
|
1810
|
-
icon:
|
|
1811
|
-
size: t(
|
|
1812
|
-
}, null, 8, ["icon", "size"])) :
|
|
1813
|
-
|
|
1814
|
-
class:
|
|
1852
|
+
icon: a.iconLeading,
|
|
1853
|
+
size: t(G).SMALL
|
|
1854
|
+
}, null, 8, ["icon", "size"])) : c("", !0),
|
|
1855
|
+
T("div", {
|
|
1856
|
+
class: s([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).WIDTH.FULL])
|
|
1815
1857
|
}, [
|
|
1816
|
-
|
|
1858
|
+
a.prefix ? (l(), E("div", {
|
|
1817
1859
|
key: 0,
|
|
1818
|
-
class:
|
|
1819
|
-
},
|
|
1820
|
-
|
|
1821
|
-
class:
|
|
1822
|
-
onClick:
|
|
1823
|
-
var
|
|
1824
|
-
return (
|
|
1860
|
+
class: s(["tide-input-text-prefix", !h.value && t(e).FONT.COLOR.SURFACE.VARIANT, y.value ? "" : "offset"])
|
|
1861
|
+
}, I(a.prefix), 3)) : c("", !0),
|
|
1862
|
+
T("div", {
|
|
1863
|
+
class: s([t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).WIDTH.FULL]),
|
|
1864
|
+
onClick: X[1] || (X[1] = ie((ae) => {
|
|
1865
|
+
var Re;
|
|
1866
|
+
return (Re = O.value) == null ? void 0 : Re.focus();
|
|
1825
1867
|
}, ["prevent"]))
|
|
1826
1868
|
}, [
|
|
1827
|
-
|
|
1869
|
+
C.label ? (l(), E("label", {
|
|
1828
1870
|
key: 0,
|
|
1829
|
-
class:
|
|
1871
|
+
class: s([
|
|
1830
1872
|
y.value ? ["minilabel", t(e).FONT.SIZE.TWELVE] : t(e).FONT.SIZE.SIXTEEN,
|
|
1831
|
-
!
|
|
1873
|
+
!h.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1832
1874
|
t(e).FONT.WEIGHT.FIVE_HUNDRED,
|
|
1833
1875
|
t(e).CURSOR.TEXT
|
|
1834
1876
|
]),
|
|
1835
|
-
for:
|
|
1836
|
-
},
|
|
1837
|
-
|
|
1838
|
-
autocomplete:
|
|
1839
|
-
class:
|
|
1840
|
-
"data-track":
|
|
1841
|
-
disabled:
|
|
1842
|
-
maxlength:
|
|
1843
|
-
minlength:
|
|
1844
|
-
name:
|
|
1877
|
+
for: a.inputId
|
|
1878
|
+
}, I(g.value), 11, Dt)) : c("", !0),
|
|
1879
|
+
oe(T("input", {
|
|
1880
|
+
autocomplete: C.autocomplete ? "on" : "off",
|
|
1881
|
+
class: s([t(e).WIDTH.FULL, C.disabled && t(e).CURSOR.NOT_ALLOWED]),
|
|
1882
|
+
"data-track": a.dataTrack,
|
|
1883
|
+
disabled: a.disabled,
|
|
1884
|
+
maxlength: a.maxlength,
|
|
1885
|
+
minlength: a.minlength,
|
|
1886
|
+
name: a.name,
|
|
1845
1887
|
ref_key: "input",
|
|
1846
|
-
ref:
|
|
1847
|
-
required:
|
|
1848
|
-
type:
|
|
1849
|
-
onChange:
|
|
1850
|
-
onFocus:
|
|
1851
|
-
onFocusout:
|
|
1852
|
-
onInput:
|
|
1853
|
-
id:
|
|
1854
|
-
"onUpdate:modelValue":
|
|
1855
|
-
}, null, 42,
|
|
1856
|
-
[
|
|
1888
|
+
ref: O,
|
|
1889
|
+
required: a.required,
|
|
1890
|
+
type: k.value,
|
|
1891
|
+
onChange: b,
|
|
1892
|
+
onFocus: v,
|
|
1893
|
+
onFocusout: F,
|
|
1894
|
+
onInput: _,
|
|
1895
|
+
id: a.inputId,
|
|
1896
|
+
"onUpdate:modelValue": X[0] || (X[0] = (ae) => r.value = ae)
|
|
1897
|
+
}, null, 42, St), [
|
|
1898
|
+
[fe, r.value]
|
|
1857
1899
|
])
|
|
1858
1900
|
], 2),
|
|
1859
|
-
|
|
1901
|
+
a.suffix ? (l(), E("div", {
|
|
1860
1902
|
key: 1,
|
|
1861
|
-
class:
|
|
1862
|
-
},
|
|
1903
|
+
class: s(["tide-input-text-suffix", !h.value && t(e).FONT.COLOR.SURFACE.VARIANT, y.value ? "" : "offset"])
|
|
1904
|
+
}, I(a.suffix), 3)) : c("", !0)
|
|
1863
1905
|
], 2),
|
|
1864
|
-
|
|
1906
|
+
A.value && a.type !== t(q).PASSWORD ? (l(), D(f, {
|
|
1865
1907
|
key: 1,
|
|
1866
|
-
class:
|
|
1867
|
-
icon: t(
|
|
1868
|
-
size: t(
|
|
1869
|
-
onClick:
|
|
1870
|
-
}, null, 8, ["class", "icon", "size"])) :
|
|
1871
|
-
|
|
1908
|
+
class: s([t(e).PADDING.Y.HALF, t(e).PADDING.FULL.HALF, t(e).CURSOR.POINTER]),
|
|
1909
|
+
icon: t(p).CLOSE,
|
|
1910
|
+
size: t(G).SMALL,
|
|
1911
|
+
onClick: B
|
|
1912
|
+
}, null, 8, ["class", "icon", "size"])) : c("", !0),
|
|
1913
|
+
a.type === t(q).PASSWORD ? (l(), D(f, {
|
|
1872
1914
|
key: 2,
|
|
1873
|
-
class:
|
|
1874
|
-
icon: t(
|
|
1875
|
-
size: t(
|
|
1876
|
-
onClick:
|
|
1877
|
-
}, null, 8, ["class", "icon", "size"])) :
|
|
1915
|
+
class: s([t(e).PADDING.Y.HALF, t(e).PADDING.FULL.HALF, t(e).CURSOR.POINTER]),
|
|
1916
|
+
icon: t(p).VISIBILITY,
|
|
1917
|
+
size: t(G).SMALL,
|
|
1918
|
+
onClick: X[2] || (X[2] = (ae) => R.value = !R.value)
|
|
1919
|
+
}, null, 8, ["class", "icon", "size"])) : c("", !0)
|
|
1878
1920
|
], 2),
|
|
1879
|
-
|
|
1921
|
+
a.supportingText || h.value ? (l(), E("div", {
|
|
1880
1922
|
key: 0,
|
|
1881
|
-
class:
|
|
1923
|
+
class: s([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).MARGIN.LEFT.ONE])
|
|
1882
1924
|
}, [
|
|
1883
|
-
|
|
1925
|
+
h.value ? (l(), D(f, {
|
|
1884
1926
|
key: 0,
|
|
1885
|
-
class:
|
|
1886
|
-
icon: t(
|
|
1887
|
-
size: t(
|
|
1888
|
-
}, null, 8, ["icon", "size"])) :
|
|
1889
|
-
|
|
1890
|
-
class:
|
|
1891
|
-
},
|
|
1892
|
-
], 2)) :
|
|
1927
|
+
class: s([]),
|
|
1928
|
+
icon: t(p).ERROR,
|
|
1929
|
+
size: t(G).SMALL
|
|
1930
|
+
}, null, 8, ["icon", "size"])) : c("", !0),
|
|
1931
|
+
T("div", {
|
|
1932
|
+
class: s([t(e).FONT.SIZE.TWELVE, t(e).FONT.WEIGHT.FIVE_HUNDRED])
|
|
1933
|
+
}, I(h.value ? N.value : a.supportingText), 3)
|
|
1934
|
+
], 2)) : c("", !0)
|
|
1893
1935
|
], 2));
|
|
1894
1936
|
}
|
|
1895
1937
|
});
|
|
1896
|
-
const
|
|
1938
|
+
const si = /* @__PURE__ */ m(ft, [["__scopeId", "data-v-ee86780d"]]), vt = ["for"], Ut = ["data-track", "maxlength", "minlength", "name", "required", "rows", "id"], gt = /* @__PURE__ */ L({
|
|
1897
1939
|
__name: "TideInputTextarea",
|
|
1898
1940
|
props: {
|
|
1899
1941
|
dataTrack: { default: "" },
|
|
@@ -1908,28 +1950,28 @@ const ts = /* @__PURE__ */ C(vt, [["__scopeId", "data-v-ee86780d"]]), _t = ["for
|
|
|
1908
1950
|
supportingText: { default: void 0 },
|
|
1909
1951
|
value: { default: "" }
|
|
1910
1952
|
},
|
|
1911
|
-
setup(
|
|
1912
|
-
const
|
|
1913
|
-
|
|
1914
|
-
},
|
|
1915
|
-
|
|
1916
|
-
},
|
|
1917
|
-
error:
|
|
1918
|
-
errorFromProps:
|
|
1919
|
-
maxlength:
|
|
1920
|
-
minlength:
|
|
1921
|
-
value:
|
|
1953
|
+
setup(n, { expose: i }) {
|
|
1954
|
+
const a = n, d = u(a.error), o = u(!1), O = u(null), R = u(a.value), r = U(() => Te(a.error, d.value)), N = U(() => a.required ? `${a.label} *` : a.label), g = U(() => a.required && !R.value || Oe(d.value, a.error)), A = U(() => o.value || !h.value), h = U(() => R.value === ""), y = () => {
|
|
1955
|
+
o.value = !0;
|
|
1956
|
+
}, w = () => {
|
|
1957
|
+
o.value = !1;
|
|
1958
|
+
}, k = () => Le({
|
|
1959
|
+
error: d,
|
|
1960
|
+
errorFromProps: a.error,
|
|
1961
|
+
maxlength: a.maxlength,
|
|
1962
|
+
minlength: a.minlength,
|
|
1963
|
+
value: R
|
|
1922
1964
|
});
|
|
1923
|
-
return
|
|
1924
|
-
() =>
|
|
1925
|
-
(
|
|
1926
|
-
(
|
|
1965
|
+
return K(
|
|
1966
|
+
() => a.value,
|
|
1967
|
+
(B, v) => {
|
|
1968
|
+
(B !== v || B !== R.value) && (R.value = B);
|
|
1927
1969
|
}
|
|
1928
|
-
), i({ error:
|
|
1929
|
-
class:
|
|
1970
|
+
), i({ error: d, value: R }), (B, v) => (l(), E("div", {
|
|
1971
|
+
class: s(["tide-input-textarea", t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).GAP.QUARTER, g.value && "error"])
|
|
1930
1972
|
}, [
|
|
1931
|
-
|
|
1932
|
-
class:
|
|
1973
|
+
T("div", {
|
|
1974
|
+
class: s([
|
|
1933
1975
|
"tide-input-textarea-field",
|
|
1934
1976
|
t(e).GAP.HALF,
|
|
1935
1977
|
t(e).POSITION.RELATIVE,
|
|
@@ -1939,92 +1981,92 @@ const ts = /* @__PURE__ */ C(vt, [["__scopeId", "data-v-ee86780d"]]), _t = ["for
|
|
|
1939
1981
|
t(e).OVERFLOW.XY.HIDDEN
|
|
1940
1982
|
])
|
|
1941
1983
|
}, [
|
|
1942
|
-
|
|
1984
|
+
B.label ? (l(), E("label", {
|
|
1943
1985
|
key: 0,
|
|
1944
|
-
class:
|
|
1945
|
-
|
|
1946
|
-
!
|
|
1986
|
+
class: s([
|
|
1987
|
+
A.value ? ["minilabel", t(e).FONT.SIZE.TWELVE] : t(e).FONT.SIZE.SIXTEEN,
|
|
1988
|
+
!g.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1947
1989
|
t(e).FONT.WEIGHT.FIVE_HUNDRED,
|
|
1948
1990
|
t(e).CURSOR.TEXT
|
|
1949
1991
|
]),
|
|
1950
|
-
for:
|
|
1992
|
+
for: a.inputId,
|
|
1951
1993
|
ref: "label"
|
|
1952
|
-
},
|
|
1953
|
-
|
|
1954
|
-
class:
|
|
1955
|
-
"data-track":
|
|
1956
|
-
maxlength:
|
|
1957
|
-
minlength:
|
|
1958
|
-
name:
|
|
1994
|
+
}, I(N.value), 11, vt)) : c("", !0),
|
|
1995
|
+
oe(T("textarea", {
|
|
1996
|
+
class: s([t(e).WIDTH.FULL]),
|
|
1997
|
+
"data-track": a.dataTrack,
|
|
1998
|
+
maxlength: a.maxlength,
|
|
1999
|
+
minlength: a.minlength,
|
|
2000
|
+
name: a.name,
|
|
1959
2001
|
ref_key: "input",
|
|
1960
|
-
ref:
|
|
1961
|
-
required:
|
|
1962
|
-
rows:
|
|
1963
|
-
onChange:
|
|
2002
|
+
ref: O,
|
|
2003
|
+
required: a.required,
|
|
2004
|
+
rows: a.rows,
|
|
2005
|
+
onChange: k,
|
|
1964
2006
|
onFocus: y,
|
|
1965
|
-
onFocusout:
|
|
1966
|
-
id:
|
|
1967
|
-
"onUpdate:modelValue":
|
|
1968
|
-
}, null, 42,
|
|
1969
|
-
[
|
|
2007
|
+
onFocusout: w,
|
|
2008
|
+
id: a.inputId,
|
|
2009
|
+
"onUpdate:modelValue": v[0] || (v[0] = (F) => R.value = F)
|
|
2010
|
+
}, null, 42, Ut), [
|
|
2011
|
+
[ve, R.value]
|
|
1970
2012
|
])
|
|
1971
2013
|
], 2),
|
|
1972
|
-
|
|
2014
|
+
a.supportingText || g.value ? (l(), E("div", {
|
|
1973
2015
|
key: 0,
|
|
1974
|
-
class:
|
|
2016
|
+
class: s([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).MARGIN.LEFT.ONE])
|
|
1975
2017
|
}, [
|
|
1976
|
-
|
|
2018
|
+
g.value ? (l(), D(f, {
|
|
1977
2019
|
key: 0,
|
|
1978
|
-
icon: t(
|
|
1979
|
-
size: t(
|
|
1980
|
-
}, null, 8, ["icon", "size"])) :
|
|
1981
|
-
|
|
1982
|
-
class:
|
|
1983
|
-
},
|
|
1984
|
-
], 2)) :
|
|
2020
|
+
icon: t(p).ERROR,
|
|
2021
|
+
size: t(G).SMALL
|
|
2022
|
+
}, null, 8, ["icon", "size"])) : c("", !0),
|
|
2023
|
+
T("div", {
|
|
2024
|
+
class: s([t(e).FONT.SIZE.TWELVE, t(e).FONT.WEIGHT.FIVE_HUNDRED])
|
|
2025
|
+
}, I(g.value ? r.value : a.supportingText), 3)
|
|
2026
|
+
], 2)) : c("", !0)
|
|
1985
2027
|
], 2));
|
|
1986
2028
|
}
|
|
1987
2029
|
});
|
|
1988
|
-
const
|
|
2030
|
+
const ni = /* @__PURE__ */ m(gt, [["__scopeId", "data-v-fed7aa8a"]]), di = /* @__PURE__ */ L({
|
|
1989
2031
|
__name: "TideLink",
|
|
1990
2032
|
props: {
|
|
1991
|
-
element: { default:
|
|
2033
|
+
element: { default: S.LINK },
|
|
1992
2034
|
href: { default: void 0 },
|
|
1993
2035
|
iconLeading: { default: void 0 },
|
|
1994
2036
|
iconTrailing: { default: void 0 },
|
|
1995
2037
|
isNewTab: { type: Boolean, default: !1 },
|
|
1996
2038
|
label: { default: void 0 }
|
|
1997
2039
|
},
|
|
1998
|
-
setup(
|
|
1999
|
-
const i =
|
|
2000
|
-
return (
|
|
2001
|
-
class:
|
|
2002
|
-
i.element === t(
|
|
2003
|
-
|
|
2040
|
+
setup(n) {
|
|
2041
|
+
const i = n, a = U(() => i.iconLeading || i.iconTrailing);
|
|
2042
|
+
return (d, o) => (l(), D(Q(i.element === t(S).LINK ? t(S).LINK : t(S).BUTTON), {
|
|
2043
|
+
class: s([
|
|
2044
|
+
i.element === t(S).LINK ? "tide-button-as-link" : "tide-link",
|
|
2045
|
+
a.value ? [t(e).DISPLAY.INLINE_FLEX, t(e).AXIS2.CENTER, t(e).GAP.HALF] : [t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).UNDERLINE.ON]
|
|
2004
2046
|
]),
|
|
2005
2047
|
href: i.href,
|
|
2006
|
-
target: i.isNewTab ? t(
|
|
2048
|
+
target: i.isNewTab ? t(Y).BLANK : t(Y).SELF
|
|
2007
2049
|
}, {
|
|
2008
2050
|
default: ee(() => [
|
|
2009
|
-
i.iconLeading ? (l(),
|
|
2051
|
+
i.iconLeading ? (l(), D(f, {
|
|
2010
2052
|
key: 0,
|
|
2011
2053
|
icon: i.iconLeading
|
|
2012
|
-
}, null, 8, ["icon"])) :
|
|
2013
|
-
|
|
2054
|
+
}, null, 8, ["icon"])) : c("", !0),
|
|
2055
|
+
a.value ? (l(), E("div", {
|
|
2014
2056
|
key: 1,
|
|
2015
|
-
class:
|
|
2016
|
-
},
|
|
2017
|
-
|
|
2057
|
+
class: s([t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).UNDERLINE.ON])
|
|
2058
|
+
}, I(i.label), 3)) : (l(), E(M, { key: 2 }, [
|
|
2059
|
+
ue(I(i.label), 1)
|
|
2018
2060
|
], 64)),
|
|
2019
|
-
i.iconTrailing ? (l(),
|
|
2061
|
+
i.iconTrailing ? (l(), D(f, {
|
|
2020
2062
|
key: 3,
|
|
2021
2063
|
icon: i.iconTrailing
|
|
2022
|
-
}, null, 8, ["icon"])) :
|
|
2064
|
+
}, null, 8, ["icon"])) : c("", !0)
|
|
2023
2065
|
]),
|
|
2024
2066
|
_: 1
|
|
2025
2067
|
}, 8, ["class", "href", "target"]));
|
|
2026
2068
|
}
|
|
2027
|
-
}),
|
|
2069
|
+
}), mt = ["onClick"], Ct = /* @__PURE__ */ L({
|
|
2028
2070
|
__name: "TideModal",
|
|
2029
2071
|
props: {
|
|
2030
2072
|
isOpen: { type: Boolean },
|
|
@@ -2032,28 +2074,28 @@ const ss = /* @__PURE__ */ C(St, [["__scopeId", "data-v-fed7aa8a"]]), is = /* @_
|
|
|
2032
2074
|
width: {}
|
|
2033
2075
|
},
|
|
2034
2076
|
emits: ["close"],
|
|
2035
|
-
setup(
|
|
2036
|
-
const
|
|
2037
|
-
|
|
2038
|
-
},
|
|
2039
|
-
|
|
2040
|
-
}, r = (
|
|
2041
|
-
|
|
2042
|
-
},
|
|
2077
|
+
setup(n, { emit: i }) {
|
|
2078
|
+
const a = n, d = u(a.isOpen), o = u(null), O = (A) => {
|
|
2079
|
+
d.value = !1, R(), i("close", A);
|
|
2080
|
+
}, R = () => {
|
|
2081
|
+
d.value ? (o.value = window.scrollY, document.body.style.overflow = "hidden", o.value && window.scrollTo(0, o.value), N()) : (document.body.style.overflow = "", g());
|
|
2082
|
+
}, r = (A) => {
|
|
2083
|
+
A.key === "Escape" && (A.stopPropagation(), O(A));
|
|
2084
|
+
}, N = () => {
|
|
2043
2085
|
window.addEventListener("keydown", r);
|
|
2044
|
-
},
|
|
2086
|
+
}, g = () => {
|
|
2045
2087
|
window.removeEventListener("keydown", r);
|
|
2046
2088
|
};
|
|
2047
|
-
return
|
|
2048
|
-
|
|
2049
|
-
}),
|
|
2050
|
-
() =>
|
|
2051
|
-
(
|
|
2052
|
-
|
|
2089
|
+
return le(() => {
|
|
2090
|
+
R();
|
|
2091
|
+
}), K(
|
|
2092
|
+
() => a.isOpen,
|
|
2093
|
+
(A) => {
|
|
2094
|
+
d.value = A, R();
|
|
2053
2095
|
}
|
|
2054
|
-
), (
|
|
2055
|
-
|
|
2056
|
-
class:
|
|
2096
|
+
), (A, h) => (l(), D(Ue, { to: "body" }, [
|
|
2097
|
+
T("div", {
|
|
2098
|
+
class: s([
|
|
2057
2099
|
"tide-modal-wrapper",
|
|
2058
2100
|
t(e).POSITION.ABSOLUTE,
|
|
2059
2101
|
t(e).DISPLAY.FLEX,
|
|
@@ -2063,17 +2105,17 @@ const ss = /* @__PURE__ */ C(St, [["__scopeId", "data-v-fed7aa8a"]]), is = /* @_
|
|
|
2063
2105
|
t(e).POSITIONING.LEFT,
|
|
2064
2106
|
t(e).WIDTH.FULL,
|
|
2065
2107
|
t(e).HEIGHT.FULL,
|
|
2066
|
-
|
|
2108
|
+
a.isOpen ? "active" : t(e).POINTER_EVENTS.OFF,
|
|
2067
2109
|
t(e).OVERFLOW.Y.HIDDEN
|
|
2068
2110
|
])
|
|
2069
2111
|
}, [
|
|
2070
|
-
|
|
2071
|
-
class:
|
|
2072
|
-
style:
|
|
2073
|
-
onClick:
|
|
2074
|
-
}, null, 14,
|
|
2075
|
-
|
|
2076
|
-
class:
|
|
2112
|
+
T("div", {
|
|
2113
|
+
class: s(["tide-modal-bg", t(e).POSITION.ABSOLUTE, t(e).WIDTH.FULL, t(e).HEIGHT.FULL]),
|
|
2114
|
+
style: de({ "--tide-modal-width": a.width }),
|
|
2115
|
+
onClick: ie(O, ["self"])
|
|
2116
|
+
}, null, 14, mt),
|
|
2117
|
+
T("div", {
|
|
2118
|
+
class: s([
|
|
2077
2119
|
"tide-modal",
|
|
2078
2120
|
t(e).BG.SURFACE.DEFAULT,
|
|
2079
2121
|
t(e).FONT.COLOR.SURFACE.DEFAULT,
|
|
@@ -2085,8 +2127,8 @@ const ss = /* @__PURE__ */ C(St, [["__scopeId", "data-v-fed7aa8a"]]), is = /* @_
|
|
|
2085
2127
|
t(e).SHADOW.BOTTOM
|
|
2086
2128
|
])
|
|
2087
2129
|
}, [
|
|
2088
|
-
|
|
2089
|
-
class:
|
|
2130
|
+
T("header", {
|
|
2131
|
+
class: s([
|
|
2090
2132
|
"tide-modal-header",
|
|
2091
2133
|
t(e).POSITION.RELATIVE,
|
|
2092
2134
|
t(e).DISPLAY.FLEX,
|
|
@@ -2097,28 +2139,28 @@ const ss = /* @__PURE__ */ C(St, [["__scopeId", "data-v-fed7aa8a"]]), is = /* @_
|
|
|
2097
2139
|
t(e).BORDER.COLOR.LOW
|
|
2098
2140
|
])
|
|
2099
2141
|
}, [
|
|
2100
|
-
|
|
2142
|
+
A.title ? (l(), E("div", {
|
|
2101
2143
|
key: 0,
|
|
2102
|
-
class:
|
|
2103
|
-
}, A
|
|
2104
|
-
|
|
2105
|
-
class:
|
|
2106
|
-
onClick:
|
|
2144
|
+
class: s([t(e).FLEX.GROW.ON, t(e).FONT.SIZE.TWENTY, t(e).FONT.WEIGHT.SEVEN_HUNDRED])
|
|
2145
|
+
}, I(A.title), 3)) : c("", !0),
|
|
2146
|
+
T("button", {
|
|
2147
|
+
class: s([t(e).POSITION.ABSOLUTE, t(e).POSITIONING.RIGHT, t(e).MARGIN.RIGHT.TWO]),
|
|
2148
|
+
onClick: O,
|
|
2107
2149
|
title: "Close"
|
|
2108
2150
|
}, [
|
|
2109
|
-
P(
|
|
2110
|
-
icon: t(
|
|
2151
|
+
P(f, {
|
|
2152
|
+
icon: t(p).CLOSE
|
|
2111
2153
|
}, null, 8, ["icon"])
|
|
2112
2154
|
], 2)
|
|
2113
2155
|
], 2),
|
|
2114
|
-
|
|
2115
|
-
class:
|
|
2156
|
+
T("div", {
|
|
2157
|
+
class: s(["tide-modal-content", t(e).PADDING.FULL.TWO, t(e).OVERFLOW.Y.AUTO])
|
|
2116
2158
|
}, [
|
|
2117
|
-
|
|
2159
|
+
W(A.$slots, "default", {}, void 0, !0)
|
|
2118
2160
|
], 2),
|
|
2119
|
-
|
|
2161
|
+
A.$slots.footer ? (l(), E("footer", {
|
|
2120
2162
|
key: 0,
|
|
2121
|
-
class:
|
|
2163
|
+
class: s([
|
|
2122
2164
|
"tide-bg-surface",
|
|
2123
2165
|
t(e).POSITION.STICKY,
|
|
2124
2166
|
t(e).POSITIONING.LEFT,
|
|
@@ -2131,95 +2173,95 @@ const ss = /* @__PURE__ */ C(St, [["__scopeId", "data-v-fed7aa8a"]]), is = /* @_
|
|
|
2131
2173
|
t(e).SHADOW.TOP
|
|
2132
2174
|
])
|
|
2133
2175
|
}, [
|
|
2134
|
-
|
|
2135
|
-
], 2)) :
|
|
2176
|
+
W(A.$slots, "footer", {}, void 0, !0)
|
|
2177
|
+
], 2)) : c("", !0)
|
|
2136
2178
|
], 2)
|
|
2137
2179
|
], 2)
|
|
2138
2180
|
]));
|
|
2139
2181
|
}
|
|
2140
2182
|
});
|
|
2141
|
-
const
|
|
2183
|
+
const li = /* @__PURE__ */ m(Ct, [["__scopeId", "data-v-5e665389"]]), oi = /* @__PURE__ */ L({
|
|
2142
2184
|
__name: "TidePagination",
|
|
2143
2185
|
props: {
|
|
2144
2186
|
pageCurrent: { default: 1 },
|
|
2145
2187
|
pageTotal: { default: 1 }
|
|
2146
2188
|
},
|
|
2147
2189
|
emits: ["change"],
|
|
2148
|
-
setup(
|
|
2149
|
-
const
|
|
2150
|
-
|
|
2190
|
+
setup(n, { emit: i }) {
|
|
2191
|
+
const a = n, d = u(a.pageCurrent), o = U(() => new Array(a.pageTotal).fill("").map((R, r) => r + 1)), O = (R, r) => {
|
|
2192
|
+
d.value = r, i("change", R, r);
|
|
2151
2193
|
};
|
|
2152
|
-
return (
|
|
2153
|
-
class:
|
|
2194
|
+
return (R, r) => (l(), E("section", {
|
|
2195
|
+
class: s(["tide-pagination", t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).WIDTH.FULL])
|
|
2154
2196
|
}, [
|
|
2155
|
-
P(
|
|
2156
|
-
disabled:
|
|
2157
|
-
icon: t(
|
|
2158
|
-
priority: t(
|
|
2159
|
-
onClick: r[0] || (r[0] = (
|
|
2197
|
+
P(J, {
|
|
2198
|
+
disabled: d.value === 1,
|
|
2199
|
+
icon: t(p).CHEVRON_LEFT,
|
|
2200
|
+
priority: t($).QUATERNARY,
|
|
2201
|
+
onClick: r[0] || (r[0] = (N) => O(N, d.value - 1))
|
|
2160
2202
|
}, null, 8, ["disabled", "icon", "priority"]),
|
|
2161
|
-
|
|
2162
|
-
class:
|
|
2203
|
+
T("ul", {
|
|
2204
|
+
class: s([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).LIST_BULLETS.OFF])
|
|
2163
2205
|
}, [
|
|
2164
|
-
(l(!0), E(M, null,
|
|
2165
|
-
P(
|
|
2166
|
-
disabled:
|
|
2167
|
-
label:
|
|
2168
|
-
priority: t(
|
|
2169
|
-
onClick: (
|
|
2206
|
+
(l(!0), E(M, null, x(o.value, (N) => (l(), E("li", { key: N }, [
|
|
2207
|
+
P(Ke, {
|
|
2208
|
+
disabled: d.value === N,
|
|
2209
|
+
label: N,
|
|
2210
|
+
priority: t($).QUATERNARY,
|
|
2211
|
+
onClick: (g) => O(g, N)
|
|
2170
2212
|
}, null, 8, ["disabled", "label", "priority", "onClick"])
|
|
2171
2213
|
]))), 128))
|
|
2172
2214
|
], 2),
|
|
2173
|
-
P(
|
|
2174
|
-
disabled:
|
|
2175
|
-
icon: t(
|
|
2176
|
-
priority: t(
|
|
2177
|
-
onClick: r[1] || (r[1] = (
|
|
2215
|
+
P(J, {
|
|
2216
|
+
disabled: d.value === o.value[o.value.length - 1],
|
|
2217
|
+
icon: t(p).CHEVRON_RIGHT,
|
|
2218
|
+
priority: t($).QUATERNARY,
|
|
2219
|
+
onClick: r[1] || (r[1] = (N) => O(N, d.value + 1))
|
|
2178
2220
|
}, null, 8, ["disabled", "icon", "priority"])
|
|
2179
2221
|
], 2));
|
|
2180
2222
|
}
|
|
2181
|
-
}),
|
|
2223
|
+
}), Pt = { class: "tide-seo-links" }, Gt = ["href", "target"], ht = /* @__PURE__ */ L({
|
|
2182
2224
|
__name: "TideSeoLinks",
|
|
2183
2225
|
props: {
|
|
2184
2226
|
heading: { default: "" },
|
|
2185
2227
|
links: {}
|
|
2186
2228
|
},
|
|
2187
|
-
setup(
|
|
2188
|
-
const i =
|
|
2189
|
-
return (
|
|
2190
|
-
|
|
2191
|
-
class:
|
|
2192
|
-
},
|
|
2193
|
-
|
|
2194
|
-
class:
|
|
2229
|
+
setup(n) {
|
|
2230
|
+
const i = n;
|
|
2231
|
+
return (a, d) => (l(), E("section", Pt, [
|
|
2232
|
+
T("h2", {
|
|
2233
|
+
class: s([t(e).MARGIN.BOTTOM.HALF, t(e).FONT.SIZE.SIXTEEN])
|
|
2234
|
+
}, I(i.heading), 3),
|
|
2235
|
+
T("ul", {
|
|
2236
|
+
class: s([t(e).DISPLAY.FLEX, t(e).FLEX.WRAP, t(e).GAP.TWO, t(e).LIST_BULLETS.OFF])
|
|
2195
2237
|
}, [
|
|
2196
|
-
(l(!0), E(M, null,
|
|
2197
|
-
class:
|
|
2198
|
-
key:
|
|
2238
|
+
(l(!0), E(M, null, x(i.links, (o) => (l(), E("li", {
|
|
2239
|
+
class: s(["tide-seo-link", t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).GAP.QUARTER, t(e).FONT.SIZE.FOURTEEN]),
|
|
2240
|
+
key: o.label
|
|
2199
2241
|
}, [
|
|
2200
|
-
|
|
2201
|
-
class:
|
|
2202
|
-
href:
|
|
2203
|
-
target:
|
|
2204
|
-
},
|
|
2242
|
+
T("a", {
|
|
2243
|
+
class: s([t(e).UNDERLINE.OFF]),
|
|
2244
|
+
href: o.url,
|
|
2245
|
+
target: o.isNewTab ? t(Y).BLANK : t(Y).SELF
|
|
2246
|
+
}, I(o.label), 11, Gt)
|
|
2205
2247
|
], 2))), 128))
|
|
2206
2248
|
], 2)
|
|
2207
2249
|
]));
|
|
2208
2250
|
}
|
|
2209
2251
|
});
|
|
2210
|
-
const
|
|
2252
|
+
const Ei = /* @__PURE__ */ m(ht, [["__scopeId", "data-v-d62373f1"]]), bt = ["data-track", "onClick"], yt = /* @__PURE__ */ L({
|
|
2211
2253
|
__name: "TideTabs",
|
|
2212
2254
|
props: {
|
|
2213
2255
|
activeTabInitial: { default: 0 },
|
|
2214
2256
|
tabs: {}
|
|
2215
2257
|
},
|
|
2216
2258
|
emits: ["change"],
|
|
2217
|
-
setup(
|
|
2218
|
-
const
|
|
2219
|
-
|
|
2259
|
+
setup(n, { emit: i }) {
|
|
2260
|
+
const a = n, d = u(a.activeTabInitial), o = (O, R) => {
|
|
2261
|
+
d.value = R, i("change", O, R);
|
|
2220
2262
|
};
|
|
2221
|
-
return (
|
|
2222
|
-
class:
|
|
2263
|
+
return (O, R) => (l(), E("div", {
|
|
2264
|
+
class: s([
|
|
2223
2265
|
"tide-tabs",
|
|
2224
2266
|
t(e).BG.SURFACE.VARIANT,
|
|
2225
2267
|
t(e).DISPLAY.FLEX,
|
|
@@ -2230,10 +2272,10 @@ const ns = /* @__PURE__ */ C(Ct, [["__scopeId", "data-v-d62373f1"]]), Pt = ["dat
|
|
|
2230
2272
|
t(e).WIDTH.FULL
|
|
2231
2273
|
])
|
|
2232
2274
|
}, [
|
|
2233
|
-
(l(!0), E(M, null,
|
|
2234
|
-
class:
|
|
2275
|
+
(l(!0), E(M, null, x(a.tabs, (r, N) => (l(), E("button", {
|
|
2276
|
+
class: s([
|
|
2235
2277
|
"tide-tabs-tab",
|
|
2236
|
-
|
|
2278
|
+
N === d.value ? [t(e).BG.SURFACE.DEFAULT, t(e).FONT.COLOR.SURFACE.DEFAULT, t(e).SHADOW.BOTTOM] : ["inactive", t(e).FONT.COLOR.SURFACE.VARIANT],
|
|
2237
2279
|
t(e).FLEX.GROW.ON,
|
|
2238
2280
|
t(e).BORDER.RADIUS.QUARTER,
|
|
2239
2281
|
t(e).PADDING.Y.QUARTER,
|
|
@@ -2243,20 +2285,20 @@ const ns = /* @__PURE__ */ C(Ct, [["__scopeId", "data-v-d62373f1"]]), Pt = ["dat
|
|
|
2243
2285
|
]),
|
|
2244
2286
|
"data-track": r.dataTrack || void 0,
|
|
2245
2287
|
key: r.label,
|
|
2246
|
-
onClick: (
|
|
2288
|
+
onClick: (g) => o(g, N)
|
|
2247
2289
|
}, [
|
|
2248
|
-
|
|
2249
|
-
class:
|
|
2250
|
-
},
|
|
2290
|
+
T("span", {
|
|
2291
|
+
class: s([t(e).FONT.WEIGHT.SIX_HUNDRED])
|
|
2292
|
+
}, I(r.label), 3),
|
|
2251
2293
|
r.count && r.count > 0 ? (l(), E("span", {
|
|
2252
2294
|
key: 0,
|
|
2253
|
-
class:
|
|
2254
|
-
}, " (" +
|
|
2255
|
-
], 10,
|
|
2295
|
+
class: s([t(e).FONT.WEIGHT.SIX_HUNDRED])
|
|
2296
|
+
}, " (" + I(r.count) + ") ", 3)) : c("", !0)
|
|
2297
|
+
], 10, bt))), 128))
|
|
2256
2298
|
], 2));
|
|
2257
2299
|
}
|
|
2258
2300
|
});
|
|
2259
|
-
const
|
|
2301
|
+
const ri = /* @__PURE__ */ m(yt, [["__scopeId", "data-v-894fc638"]]), Ht = ["disabled"], Bt = /* @__PURE__ */ L({
|
|
2260
2302
|
__name: "TideToggle",
|
|
2261
2303
|
props: {
|
|
2262
2304
|
disabled: {
|
|
@@ -2270,60 +2312,60 @@ const ls = /* @__PURE__ */ C(Gt, [["__scopeId", "data-v-894fc638"]]), ht = ["dis
|
|
|
2270
2312
|
}
|
|
2271
2313
|
},
|
|
2272
2314
|
emits: ["change"],
|
|
2273
|
-
setup(
|
|
2274
|
-
const
|
|
2275
|
-
|
|
2315
|
+
setup(n, { emit: i }) {
|
|
2316
|
+
const a = n, d = u(a.isActive), o = (O) => {
|
|
2317
|
+
a.disabled || (d.value = !d.value, i("change", O, d.value));
|
|
2276
2318
|
};
|
|
2277
|
-
return (
|
|
2278
|
-
class:
|
|
2319
|
+
return (O, R) => (l(), E("button", {
|
|
2320
|
+
class: s([
|
|
2279
2321
|
"tide-toggle",
|
|
2280
|
-
|
|
2322
|
+
a.isActive ? "active" : "",
|
|
2281
2323
|
t(e).DISPLAY.FLEX,
|
|
2282
2324
|
t(e).AXIS2.CENTER,
|
|
2283
2325
|
t(e).BORDER.FULL.ONE,
|
|
2284
2326
|
t(e).BORDER.RADIUS.FULL,
|
|
2285
|
-
|
|
2327
|
+
a.isActive ? "" : t(e).BORDER.COLOR.DEFAULT,
|
|
2286
2328
|
t(e).OVERFLOW.XY.HIDDEN,
|
|
2287
|
-
|
|
2329
|
+
a.isActive ? t(e).BG.SECONDARY : t(e).BG.SURFACE.DEFAULT
|
|
2288
2330
|
]),
|
|
2289
|
-
disabled:
|
|
2290
|
-
onClick:
|
|
2331
|
+
disabled: a.disabled,
|
|
2332
|
+
onClick: o,
|
|
2291
2333
|
"aria-label": "Toggle"
|
|
2292
2334
|
}, [
|
|
2293
|
-
|
|
2294
|
-
class:
|
|
2335
|
+
T("div", {
|
|
2336
|
+
class: s([
|
|
2295
2337
|
"tide-toggle-indicator",
|
|
2296
2338
|
t(e).POSITION.RELATIVE,
|
|
2297
2339
|
t(e).DISPLAY.FLEX,
|
|
2298
2340
|
t(e).AXIS1.CENTER,
|
|
2299
2341
|
t(e).AXIS2.CENTER,
|
|
2300
2342
|
t(e).BORDER.RADIUS.FULL,
|
|
2301
|
-
|
|
2343
|
+
a.isActive ? t(e).BG.SURFACE.DEFAULT : t(e).BG.SECONDARY
|
|
2302
2344
|
])
|
|
2303
2345
|
}, [
|
|
2304
|
-
P(
|
|
2305
|
-
icon: t(
|
|
2306
|
-
size: t(
|
|
2346
|
+
P(f, {
|
|
2347
|
+
icon: t(p).CHECK,
|
|
2348
|
+
size: t(G).LARGE
|
|
2307
2349
|
}, null, 8, ["icon", "size"])
|
|
2308
2350
|
], 2)
|
|
2309
|
-
], 10,
|
|
2351
|
+
], 10, Ht));
|
|
2310
2352
|
}
|
|
2311
2353
|
});
|
|
2312
|
-
const
|
|
2354
|
+
const Ti = /* @__PURE__ */ m(Bt, [["__scopeId", "data-v-59d06131"]]), Oi = {
|
|
2313
2355
|
SM: "sm",
|
|
2314
2356
|
MD: "md",
|
|
2315
2357
|
LG: "lg",
|
|
2316
2358
|
XL: "xl"
|
|
2317
|
-
},
|
|
2359
|
+
}, Ri = {
|
|
2318
2360
|
SM: 768,
|
|
2319
2361
|
MD: 992,
|
|
2320
2362
|
LG: 1232,
|
|
2321
2363
|
XL: 1920
|
|
2322
|
-
},
|
|
2323
|
-
NUMBER:
|
|
2324
|
-
PHONE:
|
|
2364
|
+
}, ci = {
|
|
2365
|
+
NUMBER: Ee,
|
|
2366
|
+
PHONE: ge,
|
|
2325
2367
|
PRICE: me
|
|
2326
|
-
},
|
|
2368
|
+
}, j = {
|
|
2327
2369
|
alpha: /^[a-zA-Z]+$/g,
|
|
2328
2370
|
alphaNumberOrEmpty: /^$|^[a-z0-9]+$/i,
|
|
2329
2371
|
alphaSpace: /^[a-zA-Z ]+$/g,
|
|
@@ -2331,81 +2373,73 @@ const ds = /* @__PURE__ */ C(bt, [["__scopeId", "data-v-59d06131"]]), rs = {
|
|
|
2331
2373
|
numberFormatted: /^$|(?=.)^\$?(([1-9][0-9]{0,2}(,[0-9]{3})*)|0)?(\.[0-9]{1,2})?$/,
|
|
2332
2374
|
phone: /^(?:\d{3}-\d{3}-\d{4}|\d{1}-\d{3}-\d{3}-\d{4})?$/,
|
|
2333
2375
|
price: /(?=.)^\$?(([1-9][0-9]{0,2}(,[0-9]{3})*)|0)?(\.[0-9]{1,2})?$/
|
|
2334
|
-
},
|
|
2376
|
+
}, Ii = {
|
|
2335
2377
|
IMAGE: {
|
|
2336
2378
|
FLOORPLAN: "floorplan",
|
|
2337
2379
|
IMAGE: "image"
|
|
2338
2380
|
},
|
|
2339
2381
|
VIDEO: "video",
|
|
2340
2382
|
VR: "vr"
|
|
2341
|
-
},
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
PWC: "pwc",
|
|
2348
|
-
RV: "rv",
|
|
2349
|
-
SNOW: "snow",
|
|
2350
|
-
TRUCK: "truck"
|
|
2351
|
-
}, Os = {
|
|
2352
|
-
ALPHA_NUMBER_EMPTY: K(q.alphaNumberOrEmpty),
|
|
2353
|
-
ALPHA_SPACE: K(q.alphaSpace),
|
|
2354
|
-
EMAIL: K(q.email),
|
|
2355
|
-
NUMBER: K(q.numberFormatted),
|
|
2356
|
-
PHONE: K(q.phone)
|
|
2383
|
+
}, Ai = {
|
|
2384
|
+
ALPHA_NUMBER_EMPTY: z(j.alphaNumberOrEmpty),
|
|
2385
|
+
ALPHA_SPACE: z(j.alphaSpace),
|
|
2386
|
+
EMAIL: z(j.email),
|
|
2387
|
+
NUMBER: z(j.numberFormatted),
|
|
2388
|
+
PHONE: z(j.phone)
|
|
2357
2389
|
};
|
|
2358
2390
|
export {
|
|
2359
2391
|
H as ALERT,
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2392
|
+
xt as BADGE,
|
|
2393
|
+
$t as BADGE_PREMIUM,
|
|
2394
|
+
ke as BADGE_TRUSTED,
|
|
2395
|
+
Oi as BREAKPOINT,
|
|
2364
2396
|
e as CSS,
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
Qt as
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2397
|
+
S as ELEMENT,
|
|
2398
|
+
V as ELEMENT_TEXT_AS_ICON,
|
|
2399
|
+
ci as FORMAT,
|
|
2400
|
+
j as FORMAT_REGEX,
|
|
2401
|
+
p as ICON,
|
|
2402
|
+
Ri as MEDIA,
|
|
2403
|
+
Ii as MEDIA_SLIDE_TYPES,
|
|
2404
|
+
ce as ORIENTATION,
|
|
2405
|
+
ne as POSITION_CARD_ICON,
|
|
2406
|
+
$ as PRIORITY,
|
|
2407
|
+
Ce as REALM,
|
|
2408
|
+
G as SIZE,
|
|
2409
|
+
Y as TARGET,
|
|
2410
|
+
q as TEXT_INPUT_TYPE,
|
|
2411
|
+
te as TYPE_CARD,
|
|
2412
|
+
Wt as TideAccordionItem,
|
|
2413
|
+
Mt as TideAlert,
|
|
2414
|
+
Yt as TideBackgroundImage,
|
|
2415
|
+
kt as TideBadge,
|
|
2416
|
+
Vt as TideBadgePremium,
|
|
2417
|
+
wt as TideBadgeTrustedPartner,
|
|
2418
|
+
Zt as TideBreadCrumbs,
|
|
2419
|
+
Kt as TideButton,
|
|
2420
|
+
J as TideButtonIcon,
|
|
2421
|
+
Ke as TideButtonPagination,
|
|
2422
|
+
Qt as TideCard,
|
|
2423
|
+
zt as TideCarousel,
|
|
2424
|
+
qt as TideChipAction,
|
|
2425
|
+
jt as TideChipFilter,
|
|
2426
|
+
Jt as TideChipInput,
|
|
2427
|
+
ei as TideColumns,
|
|
2394
2428
|
Ie as TideDivider,
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2429
|
+
f as TideIcon,
|
|
2430
|
+
Me as TideImage,
|
|
2431
|
+
he as TideIndicator,
|
|
2432
|
+
ti as TideInputCheckbox,
|
|
2433
|
+
ii as TideInputRadio,
|
|
2434
|
+
ai as TideInputSelect,
|
|
2435
|
+
si as TideInputText,
|
|
2436
|
+
ni as TideInputTextarea,
|
|
2437
|
+
di as TideLink,
|
|
2438
|
+
li as TideModal,
|
|
2439
|
+
oi as TidePagination,
|
|
2440
|
+
Ei as TideSeoLinks,
|
|
2441
|
+
ri as TideTabs,
|
|
2442
|
+
Ti as TideToggle,
|
|
2443
|
+
Ai as VALIDATOR
|
|
2410
2444
|
};
|
|
2411
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlkZS1kZXNpZ24tc3lzdGVtLmVzbS5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzL1N0eWxlcy50cyIsIi4uL3NyYy90eXBlcy9PcmllbnRhdGlvbi50cyIsIi4uL3NyYy90eXBlcy9TaXplLnRzIiwiLi4vc3JjL3V0aWxpdGllcy9mb3JtYXQudHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSWNvbi52dWUiLCIuLi9zcmMvdHlwZXMvSWNvbi50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVBY2NvcmRpb25JdGVtLnZ1ZSIsIi4uL3NyYy90eXBlcy9FbGVtZW50LnRzIiwiLi4vc3JjL3R5cGVzL1ByaW9yaXR5LnRzIiwiLi4vc3JjL3R5cGVzL1RhcmdldC50cyIsIi4uL3NyYy90eXBlcy9BbGVydC50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVBbGVydC52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSW1hZ2UudnVlIiwiLi4vc3JjL3R5cGVzL0JhZGdlLnRzIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUNhcm91c2VsLnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dENoZWNrYm94LnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dFJhZGlvLnZ1ZSIsIi4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGlvbi50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dFNlbGVjdC52dWUiLCIuLi9zcmMvdHlwZXMvVGV4dElucHV0LnRzIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUlucHV0VGV4dC52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSW5wdXRUZXh0YXJlYS52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlTGluay52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlTW9kYWwudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZVBhZ2luYXRpb24udnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZVRhYnMudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZVRvZ2dsZS52dWUiLCIuLi9zcmMvdHlwZXMvQnJlYWtwb2ludC50cyIsIi4uL3NyYy90eXBlcy9Gb3JtYXR0ZWQudHMiLCIuLi9zcmMvdHlwZXMvTGlzdGluZ01lZGlhLnRzIiwiLi4vc3JjL3R5cGVzL1JlYWxtLnRzIiwiLi4vc3JjL3R5cGVzL1ZhbGlkYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgdnVlL3NvcnQta2V5cyAqL1xuXG5pbXBvcnQgdHlwZSB7IEJyZWFrcG9pbnQgfSBmcm9tICdAL3R5cGVzL0JyZWFrcG9pbnQnO1xuXG5leHBvcnQgY29uc3QgQ1NTID0ge1xuICB3aXRoQnJlYWtwb2ludDogKHV0aWxpdGllczogc3RyaW5nW10sIGJyZWFrcG9pbnQ6IEJyZWFrcG9pbnQpOiBzdHJpbmdbXSA9PiB7XG4gICAgcmV0dXJuIHV0aWxpdGllcy5tYXAoKHV0aWxpdHkpID0+IGAke2JyZWFrcG9pbnR9LSR7dXRpbGl0eX1gKTtcbiAgfSxcbiAgQUxJR046IHtcbiAgICBYOiB7XG4gICAgICBDRU5URVI6ICd0aWRlLXRleHQtY2VudGVyJyxcbiAgICAgIExFRlQ6ICd0aWRlLXRleHQtbGVmdCcsXG4gICAgICBSSUdIVDogJ3RpZGUtdGV4dC1yaWdodCcsXG4gICAgfSxcbiAgICBZOiB7XG4gICAgICBJTklUSUFMOiAndGlkZS1hbGlnbi1pbml0aWFsJyxcbiAgICAgIE1JRERMRTogJ3RpZGUtYWxpZ24tbWlkZGxlJyxcbiAgICB9LFxuICB9LFxuICBBWElTMToge1xuICAgIEFST1VORDogJ3RpZGUtYXhpczEtYXJvdW5kJyxcbiAgICBCRVRXRUVOOiAndGlkZS1heGlzMS1iZXR3ZWVuJyxcbiAgICBDRU5URVI6ICd0aWRlLWF4aXMxLWNlbnRlcicsXG4gICAgRU5EOiAndGlkZS1heGlzMS1lbmQnLFxuICAgIFNUQVJUOiAndGlkZS1heGlzMS1zdGFydCcsXG4gIH0sXG4gIEFYSVMyOiB7XG4gICAgQVJPVU5EOiAndGlkZS1heGlzMi1hcm91bmQnLFxuICAgIENFTlRFUjogJ3RpZGUtYXhpczItY2VudGVyJyxcbiAgICBFTkQ6ICd0aWRlLWF4aXMyLWVuZCcsXG4gICAgU1RBUlQ6ICd0aWRlLWF4aXMyLXN0YXJ0JyxcbiAgfSxcbiAgQkc6IHtcbiAgICBJTklUSUFMOiAndGlkZS1iZy1pbml0aWFsJyxcbiAgICBCTFVSOiAndGlkZS1iZy1ibHVyJyxcbiAgICBFUlJPUjogJ3RpZGUtYmctZXJyb3InLFxuICAgIElORk86ICd0aWRlLWJnLWluZm8nLFxuICAgIFBSSU1BUlk6ICd0aWRlLWJnLXByaW1hcnknLFxuICAgIFNFQ09OREFSWTogJ3RpZGUtYmctc2Vjb25kYXJ5JyxcbiAgICBTVUNDRVNTOiAndGlkZS1iZy1zdWNjZXNzJyxcbiAgICBTVVJGQUNFOiB7XG4gICAgICBBQ0NFTlQ6ICd0aWRlLWJnLXN1cmZhY2UtYWNjZW50JyxcbiAgICAgIEFDQ0VOVF9WQVJJQU5UOiAndGlkZS1iZy1zdXJmYWNlLWFjY2VudC12YXJpYW50JyxcbiAgICAgIEJSQU5EOiAndGlkZS1iZy1zdXJmYWNlLWJyYW5kJyxcbiAgICAgIERFRkFVTFQ6ICd0aWRlLWJnLXN1cmZhY2UnLFxuICAgICAgRVJST1I6ICd0aWRlLWJnLXN1cmZhY2UtZXJyb3InLFxuICAgICAgRkxPQVRJTkc6ICd0aWRlLWJnLXN1cmZhY2UtZmxvYXRpbmcnLFxuICAgICAgR1JBRElFTlQ6ICd0aWRlLWJnLXN1cmZhY2UtZ3JhZGllbnQnLFxuICAgICAgSU5GTzogJ3RpZGUtYmctc3VyZmFjZS1pbmZvJyxcbiAgICAgIFNVQ0NFU1M6ICd0aWRlLWJnLXN1cmZhY2Utc3VjY2VzcycsXG4gICAgICBWQVJJQU5UOiAndGlkZS1iZy1zdXJmYWNlLXZhcmlhbnQnLFxuICAgICAgV0FSTklORzogJ3RpZGUtYmctc3VyZmFjZS13YXJuaW5nJyxcbiAgICB9LFxuICAgIFRSQU5TUEFSRU5UOiB7XG4gICAgICBPTkVfSFVORFJFRDogJ3RpZGUtdHJhbnNwYXJlbnQtMTAwJyxcbiAgICAgIFRXT19IVU5EUkVEOiAndGlkZS10cmFuc3BhcmVudC0yMDAnLFxuICAgICAgVEhSRUVfSFVORFJFRDogJ3RpZGUtdHJhbnNwYXJlbnQtMzAwJyxcbiAgICAgIEZPVVJfSFVORFJFRDogJ3RpZGUtdHJhbnNwYXJlbnQtNDAwJyxcbiAgICB9LFxuICAgIFdBUk5JTkc6ICd0aWRlLWJnLXdhcm5pbmcnLFxuICB9LFxuICBCT1JERVI6IHtcbiAgICBDT0xPUjoge1xuICAgICAgSU5JVElBTDogJ3RpZGUtYm9yZGVyLWNvbG9yLWluaXRpYWwnLFxuICAgICAgREVGQVVMVDogJ3RpZGUtYm9yZGVyJyxcbiAgICAgIEZMT0FUSU5HOiAndGlkZS1ib3JkZXItZmxvYXRpbmcnLFxuICAgICAgSElHSDogJ3RpZGUtYm9yZGVyLWhpZ2gnLFxuICAgICAgTE9XOiAndGlkZS1ib3JkZXItbG93JyxcbiAgICAgIFBSSU1BUlk6ICd0aWRlLWJvcmRlci1wcmltYXJ5JyxcbiAgICB9LFxuICAgIFJBRElVUzoge1xuICAgICAgWkVSTzogJ3RpZGUtcmFkaXVzLTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcmFkaXVzLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1yYWRpdXMtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcmFkaXVzLTEnLFxuICAgICAgRlVMTDogJ3RpZGUtcmFkaXVzLWZ1bGwnLFxuICAgIH0sXG4gICAgQk9UVE9NOiB7XG4gICAgICBaRVJPOiAndGlkZS1ib3JkZXItYm90dG9tLTAnLFxuICAgICAgT05FOiAndGlkZS1ib3JkZXItYm90dG9tLTEnLFxuICAgICAgVFdPOiAndGlkZS1ib3JkZXItYm90dG9tLTInLFxuICAgIH0sXG4gICAgRlVMTDoge1xuICAgICAgWkVSTzogJ3RpZGUtYm9yZGVyLTAnLFxuICAgICAgT05FOiAndGlkZS1ib3JkZXItMScsXG4gICAgICBUV086ICd0aWRlLWJvcmRlci0yJyxcbiAgICB9LFxuICAgIExFRlQ6IHtcbiAgICAgIFpFUk86ICd0aWRlLWJvcmRlci1sZWZ0LTAnLFxuICAgICAgT05FOiAndGlkZS1ib3JkZXItbGVmdC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtYm9yZGVyLWxlZnQtMicsXG4gICAgfSxcbiAgICBSSUdIVDoge1xuICAgICAgWkVSTzogJ3RpZGUtYm9yZGVyLXJpZ2h0LTAnLFxuICAgICAgT05FOiAndGlkZS1ib3JkZXItcmlnaHQtMScsXG4gICAgICBUV086ICd0aWRlLWJvcmRlci1yaWdodC0yJyxcbiAgICB9LFxuICAgIFRPUDoge1xuICAgICAgWkVSTzogJ3RpZGUtYm9yZGVyLXRvcC0wJyxcbiAgICAgIE9ORTogJ3RpZGUtYm9yZGVyLXRvcC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtYm9yZGVyLXRvcC0yJyxcbiAgICB9LFxuICB9LFxuICBCT1hfU0laSU5HOiB7XG4gICAgQk9SREVSX0JPWDogJ3RpZGUtYm94LWJvcmRlcicsXG4gICAgQ09OVEVOVF9CT1g6ICd0aWRlLWJveC1jb250ZW50JyxcbiAgfSxcbiAgQlJFQUtfV09SRDoge1xuICAgIE9GRjogJ3RpZGUtYnJlYWstaW5pdGlhbCcsXG4gICAgT046ICd0aWRlLWJyZWFrLXdvcmQnLFxuICB9LFxuICBDT0xVTU5TOiB7XG4gICAgSU5JVElBTDogJ3RpZGUtY29sdW1ucy1pbml0aWFsJyxcbiAgICBPTkU6ICd0aWRlLWNvbHVtbnMtMScsXG4gICAgVFdPOiAndGlkZS1jb2x1bW5zLTInLFxuICAgIFRIUkVFOiAndGlkZS1jb2x1bW5zLTMnLFxuICAgIEZPVVI6ICd0aWRlLWNvbHVtbnMtNCcsXG4gIH0sXG4gIENVUlNPUjoge1xuICAgIE5PVF9BTExPV0VEOiAndGlkZS1jdXJzb3Itbm90LWFsbG93ZWQnLFxuICAgIFBPSU5URVI6ICd0aWRlLWN1cnNvci1wb2ludGVyJyxcbiAgICBURVhUOiAndGlkZS1jdXJzb3ItdGV4dCcsXG4gIH0sXG4gIERJU1BMQVk6IHtcbiAgICBCTE9DSzogJ3RpZGUtZGlzcGxheS1ibG9jaycsXG4gICAgQ09OVEVOVFM6ICd0aWRlLWRpc3BsYXktY29udGVudHMnLFxuICAgIEZMRVg6ICd0aWRlLWRpc3BsYXktZmxleCcsXG4gICAgR1JJRDogJ3RpZGUtZGlzcGxheS1ncmlkJyxcbiAgICBJTklUSUFMOiAnaW5pdGlhbCcsXG4gICAgSU5MSU5FOiAndGlkZS1kaXNwbGF5LWlubGluZScsXG4gICAgSU5MSU5FX0JMT0NLOiAndGlkZS1kaXNwbGF5LWlubGluZS1ibG9jaycsXG4gICAgSU5MSU5FX0ZMRVg6ICd0aWRlLWRpc3BsYXktaW5saW5lLWZsZXgnLFxuICAgIE5PTkU6ICd0aWRlLWRpc3BsYXktbm9uZScsXG4gIH0sXG4gIEZMRVg6IHtcbiAgICBCQVNJUzoge1xuICAgICAgQVVUTzogJ3RpZGUtZmxleC1iYXNpcy1hdXRvJyxcbiAgICAgIFpFUk86ICd0aWRlLWZsZXgtYmFzaXMtMCcsXG4gICAgfSxcbiAgICBESVJFQ1RJT046IHtcbiAgICAgIENPTFVNTjogJ3RpZGUtZmxleC1jb2x1bW4nLFxuICAgICAgQ09MVU1OX1JFVkVSU0U6ICd0aWRlLWZsZXgtY29sdW1uLXJldmVyc2UnLFxuICAgICAgUk9XOiAndGlkZS1mbGV4LXJvdycsXG4gICAgICBST1dfUkVWRVJTRTogJ3RpZGUtZmxleC1yb3ctcmV2ZXJzZScsXG4gICAgfSxcbiAgICBHUk9XOiB7XG4gICAgICBPRkY6ICd0aWRlLWdyb3ctbm9uZScsXG4gICAgICBPTjogJ3RpZGUtZ3JvdycsXG4gICAgfSxcbiAgICBTSFJJTks6IHtcbiAgICAgIE9GRjogJ3RpZGUtc2hyaW5rLW5vbmUnLFxuICAgICAgT046ICd0aWRlLXNocmluaycsXG4gICAgfSxcbiAgICBXUkFQOiAndGlkZS1mbGV4LXdyYXAnLFxuICB9LFxuICBGT05UOiB7XG4gICAgQ09MT1I6IHtcbiAgICAgIFBSSU1BUlk6ICd0aWRlLWZvbnQtb24tcHJpbWFyeScsXG4gICAgICBTRUNPTkRBUlk6ICd0aWRlLWZvbnQtb24tc2Vjb25kYXJ5JyxcbiAgICAgIFNVUkZBQ0U6IHtcbiAgICAgICAgQlJBTkQ6ICd0aWRlLWZvbnQtb24tc3VyZmFjZS1icmFuZCcsXG4gICAgICAgIERFRkFVTFQ6ICd0aWRlLWZvbnQtb24tc3VyZmFjZScsXG4gICAgICAgIElOVkVSU0U6ICd0aWRlLWZvbnQtb24tc3VyZmFjZS1pbnZlcnNlJyxcbiAgICAgICAgVkFSSUFOVDogJ3RpZGUtZm9udC1vbi1zdXJmYWNlLXZhcmlhbnQnLFxuICAgICAgICBWQVJJQU5UX0lOVkVSU0U6ICd0aWRlLWZvbnQtb24tc3VyZmFjZS12YXJpYW50LWludmVyc2UnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIFJPTEU6IHtcbiAgICAgIERJU1BMQVlfMTogJ3RpZGUtdHlwb2dyYXBoeS1kaXNwbGF5LTEnLFxuICAgICAgSEVBRExJTkVfMTogJ3RpZGUtdHlwb2dyYXBoeS1oZWFkbGluZS0xJyxcbiAgICAgIEhFQURMSU5FXzI6ICd0aWRlLXR5cG9ncmFwaHktaGVhZGxpbmUtMicsXG4gICAgICBIRUFETElORV8zOiAndGlkZS10eXBvZ3JhcGh5LWhlYWRsaW5lLTMnLFxuICAgICAgVElUTEVfMTogJ3RpZGUtdHlwb2dyYXBoeS10aXRsZS0xJyxcbiAgICAgIFRJVExFXzI6ICd0aWRlLXR5cG9ncmFwaHktdGl0bGUtMicsXG4gICAgICBCT0RZXzE6ICd0aWRlLXR5cG9ncmFwaHktYm9keS0xJyxcbiAgICAgIEJPRFlfMjogJ3RpZGUtdHlwb2dyYXBoeS1ib2R5LTInLFxuICAgICAgTEFCRUxfMTogJ3RpZGUtdHlwb2dyYXBoeS1sYWJlbC0xJyxcbiAgICAgIExBQkVMXzFfU0VNSUJPTEQ6ICd0aWRlLXR5cG9ncmFwaHktbGFiZWwtMS1zZW1pYm9sZCcsXG4gICAgICBMQUJFTF8yOiAndGlkZS10eXBvZ3JhcGh5LWxhYmVsLTInLFxuICAgICAgTEFCRUxfMl9TRU1JQk9MRDogJ3RpZGUtdHlwb2dyYXBoeS1sYWJlbC0yLXNlbWlib2xkJyxcbiAgICAgIExBQkVMXzM6ICd0aWRlLXR5cG9ncmFwaHktbGFiZWwtMycsXG4gICAgICBMSU5LXzE6ICd0aWRlLXR5cG9ncmFwaHktbGluay0xJyxcbiAgICAgIExJTktfMjogJ3RpZGUtdHlwb2dyYXBoeS1saW5rLTInLFxuICAgICAgTElOS18zOiAndGlkZS10eXBvZ3JhcGh5LWxpbmstMycsXG4gICAgICBCVVRUT05fMTogJ3RpZGUtdHlwb2dyYXBoeS1idXR0b24tMScsXG4gICAgICBCVVRUT05fMjogJ3RpZGUtdHlwb2dyYXBoeS1idXR0b24tMicsXG4gICAgfSxcbiAgICBTSVpFOiB7XG4gICAgICBUV0VMVkU6ICd0aWRlLWZvbnQtMTInLFxuICAgICAgRk9VUlRFRU46ICd0aWRlLWZvbnQtMTQnLFxuICAgICAgU0lYVEVFTjogJ3RpZGUtZm9udC0xNicsXG4gICAgICBUV0VOVFk6ICd0aWRlLWZvbnQtMjAnLFxuICAgICAgVFdFTlRZX0ZPVVI6ICd0aWRlLWZvbnQtMjQnLFxuICAgICAgVEhJUlRZX1RXTzogJ3RpZGUtZm9udC0zMicsXG4gICAgfSxcbiAgICBXRUlHSFQ6IHtcbiAgICAgIEZPVVJfSFVORFJFRDogJ3RpZGUtZm9udC00MDAnLFxuICAgICAgRklWRV9IVU5EUkVEOiAndGlkZS1mb250LTUwMCcsXG4gICAgICBTSVhfSFVORFJFRDogJ3RpZGUtZm9udC02MDAnLFxuICAgICAgU0VWRU5fSFVORFJFRDogJ3RpZGUtZm9udC03MDAnLFxuICAgIH0sXG4gIH0sXG4gIEdBUDoge1xuICAgIFpFUk86ICd0aWRlLWdhcC0wJyxcbiAgICBRVUFSVEVSOiAndGlkZS1nYXAtMS80JyxcbiAgICBIQUxGOiAndGlkZS1nYXAtMS8yJyxcbiAgICBPTkU6ICd0aWRlLWdhcC0xJyxcbiAgICBUV086ICd0aWRlLWdhcC0yJyxcbiAgICBGT1VSOiAndGlkZS1nYXAtNCcsXG4gIH0sXG4gIEdSSUQ6IHtcbiAgICBFTkQ6IHtcbiAgICAgIE9ORTogJ3RpZGUtZW5kLTEnLFxuICAgICAgVFdPOiAndGlkZS1lbmQtMicsXG4gICAgICBUSFJFRTogJ3RpZGUtZW5kLTMnLFxuICAgICAgRk9VUjogJ3RpZGUtZW5kLTQnLFxuICAgICAgRklWRTogJ3RpZGUtZW5kLTUnLFxuICAgICAgU0lYOiAndGlkZS1lbmQtNicsXG4gICAgICBTRVZFTjogJ3RpZGUtZW5kLTcnLFxuICAgICAgRUlHSFQ6ICd0aWRlLWVuZC04JyxcbiAgICAgIE5JTkU6ICd0aWRlLWVuZC05JyxcbiAgICAgIFRFTjogJ3RpZGUtZW5kLTEwJyxcbiAgICAgIEVMRVZFTjogJ3RpZGUtZW5kLTExJyxcbiAgICAgIFRXRUxWRTogJ3RpZGUtZW5kLTEyJyxcbiAgICAgIFRISVJURUVOOiAndGlkZS1lbmQtMTMnLFxuICAgIH0sXG4gICAgRkxVSUQ6ICd0aWRlLWZsdWlkJyxcbiAgICBJVEVNOiAndGlkZS1ncmlkLWl0ZW0nLFxuICAgIExBWU9VVDogJ3RpZGUtZ3JpZC1sYXlvdXQnLFxuICAgIFNUQVJUOiB7XG4gICAgICBaRVJPOiAndGlkZS1zdGFydC0wJyxcbiAgICAgIE9ORTogJ3RpZGUtc3RhcnQtMScsXG4gICAgICBUV086ICd0aWRlLXN0YXJ0LTInLFxuICAgICAgVEhSRUU6ICd0aWRlLXN0YXJ0LTMnLFxuICAgICAgRk9VUjogJ3RpZGUtc3RhcnQtNCcsXG4gICAgICBGSVZFOiAndGlkZS1zdGFydC01JyxcbiAgICAgIFNJWDogJ3RpZGUtc3RhcnQtNicsXG4gICAgICBTRVZFTjogJ3RpZGUtc3RhcnQtNycsXG4gICAgICBFSUdIVDogJ3RpZGUtc3RhcnQtOCcsXG4gICAgICBOSU5FOiAndGlkZS1zdGFydC05JyxcbiAgICAgIFRFTjogJ3RpZGUtc3RhcnQtMTAnLFxuICAgICAgRUxFVkVOOiAndGlkZS1zdGFydC0xMScsXG4gICAgICBUV0VMVkU6ICd0aWRlLXN0YXJ0LTEyJyxcbiAgICB9LFxuICAgIFhMOiAndGlkZS1ncmlkLXhsJyxcbiAgfSxcbiAgSEVJR0hUOiB7XG4gICAgQVVUTzogJ3RpZGUtaGVpZ2h0LWF1dG8nLFxuICAgIFpFUk86ICd0aWRlLWhlaWdodC0wJyxcbiAgICBGVUxMOiAndGlkZS1oZWlnaHQtZnVsbCcsXG4gIH0sXG4gIElTT0xBVElPTjoge1xuICAgIElTT0xBVEU6ICd0aWRlLWlzb2xhdGUnLFxuICB9LFxuICBMSVNUX0JVTExFVFM6IHtcbiAgICBPRkY6ICd0aWRlLWxpc3Qtbm9uZScsXG4gIH0sXG4gIE1BUkdJTjoge1xuICAgIEJPVFRPTToge1xuICAgICAgWkVSTzogJ3RpZGUtbWFyZ2luLWJvdHRvbS0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLW1hcmdpbi1ib3R0b20tMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi1ib3R0b20tMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtbWFyZ2luLWJvdHRvbS0xJyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLWJvdHRvbS0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi1ib3R0b20tNCcsXG4gICAgfSxcbiAgICBGVUxMOiB7XG4gICAgICBaRVJPOiAndGlkZS1tYXJnaW4tMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4tMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tMScsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi00JyxcbiAgICB9LFxuICAgIExFRlQ6IHtcbiAgICAgIEFVVE86ICd0aWRlLW1hcmdpbi1sZWZ0LWF1dG8nLFxuICAgICAgWkVSTzogJ3RpZGUtbWFyZ2luLWxlZnQtMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4tbGVmdC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtbWFyZ2luLWxlZnQtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtbWFyZ2luLWxlZnQtMScsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi1sZWZ0LTInLFxuICAgICAgRk9VUjogJ3RpZGUtbWFyZ2luLWxlZnQtNCcsXG4gICAgfSxcbiAgICBSSUdIVDoge1xuICAgICAgQVVUTzogJ3RpZGUtbWFyZ2luLXJpZ2h0LWF1dG8nLFxuICAgICAgWkVSTzogJ3RpZGUtbWFyZ2luLXJpZ2h0LTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLXJpZ2h0LTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tcmlnaHQtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtbWFyZ2luLXJpZ2h0LTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4tcmlnaHQtMicsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4tcmlnaHQtNCcsXG4gICAgfSxcbiAgICBUT1A6IHtcbiAgICAgIFpFUk86ICd0aWRlLW1hcmdpbi10b3AtMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4tdG9wLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tdG9wLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi10b3AtMScsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi10b3AtMicsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4tdG9wLTQnLFxuICAgIH0sXG4gICAgWDoge1xuICAgICAgQVVUTzogJ3RpZGUtbWFyZ2luLXgtYXV0bycsXG4gICAgICBaRVJPOiAndGlkZS1tYXJnaW4teC0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLW1hcmdpbi14LTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4teC0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4teC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLXgtMicsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4teC00JyxcbiAgICB9LFxuICAgIFk6IHtcbiAgICAgIFpFUk86ICd0aWRlLW1hcmdpbi15LTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLXktMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi15LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi15LTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4teS0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi15LTQnLFxuICAgIH0sXG4gIH0sXG4gIE9CSkVDVDoge1xuICAgIENFTlRFUjogJ3RpZGUtb2JqZWN0LWNlbnRlcicsXG4gICAgQ09OVEFJTjogJ3RpZGUtb2JqZWN0LWNvbnRhaW4nLFxuICAgIENPVkVSOiAndGlkZS1vYmplY3QtY292ZXInLFxuICAgIFNDQUxFX0RPV046ICd0aWRlLW9iamVjdC1zY2FsZS1kb3duJyxcbiAgfSxcbiAgT1BBQ0lUWToge1xuICAgIE9GRjogJ3RpZGUtb3BhY2l0eS1ub25lJyxcbiAgICBPTjogJ3RpZGUtb3BhY2l0eScsXG4gIH0sXG4gIE9WRVJGTE9XOiB7XG4gICAgWDoge1xuICAgICAgQVVUTzogJ3RpZGUteC1hdXRvJyxcbiAgICAgIEhJRERFTjogJ3RpZGUteC1oaWRkZW4nLFxuICAgICAgU0NST0xMOiAndGlkZS14LXNjcm9sbCcsXG4gICAgfSxcbiAgICBYWToge1xuICAgICAgQVVUTzogJ3RpZGUteHktYXV0bycsXG4gICAgICBISURERU46ICd0aWRlLXh5LWhpZGRlbicsXG4gICAgfSxcbiAgICBZOiB7XG4gICAgICBBVVRPOiAndGlkZS15LWF1dG8nLFxuICAgICAgSElEREVOOiAndGlkZS15LWhpZGRlbicsXG4gICAgfSxcbiAgfSxcbiAgUEFERElORzoge1xuICAgIEJPVFRPTToge1xuICAgICAgWkVSTzogJ3RpZGUtcGFkZGluZy1ib3R0b20tMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1wYWRkaW5nLWJvdHRvbS0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy1ib3R0b20tMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy1ib3R0b20tMScsXG4gICAgICBUV086ICd0aWRlLXBhZGRpbmctYm90dG9tLTInLFxuICAgICAgRk9VUjogJ3RpZGUtcGFkZGluZy1ib3R0b20tNCcsXG4gICAgfSxcbiAgICBGVUxMOiB7XG4gICAgICBaRVJPOiAndGlkZS1wYWRkaW5nLTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLTEnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLTInLFxuICAgICAgRk9VUjogJ3RpZGUtcGFkZGluZy00JyxcbiAgICB9LFxuICAgIExFRlQ6IHtcbiAgICAgIFpFUk86ICd0aWRlLXBhZGRpbmctbGVmdC0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmctbGVmdC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy1sZWZ0LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmctbGVmdC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy1sZWZ0LTInLFxuICAgICAgRk9VUjogJ3RpZGUtcGFkZGluZy1sZWZ0LTQnLFxuICAgIH0sXG4gICAgUklHSFQ6IHtcbiAgICAgIFpFUk86ICd0aWRlLXBhZGRpbmctcmlnaHQtMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1wYWRkaW5nLXJpZ2h0LTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLXJpZ2h0LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmctcmlnaHQtMScsXG4gICAgICBUV086ICd0aWRlLXBhZGRpbmctcmlnaHQtMicsXG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLXJpZ2h0LTQnLFxuICAgIH0sXG4gICAgVE9QOiB7XG4gICAgICBaRVJPOiAndGlkZS1wYWRkaW5nLXRvcC0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmctdG9wLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLXRvcC0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLXRvcC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy10b3AtMicsXG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLXRvcC00JyxcbiAgICB9LFxuICAgIFg6IHtcbiAgICAgIFpFUk86ICd0aWRlLXBhZGRpbmcteC0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmcteC0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy14LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmcteC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy14LTInLFxuICAgICAgRk9VUjogJ3RpZGUtcGFkZGluZy14LTQnLFxuICAgIH0sXG4gICAgWToge1xuICAgICAgWkVSTzogJ3RpZGUtcGFkZGluZy15LTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy15LTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLXktMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy15LTEnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLXktMicsXG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLXktNCcsXG4gICAgfSxcbiAgfSxcbiAgUE9JTlRFUl9FVkVOVFM6IHtcbiAgICBPRkY6ICd0aWRlLXBvaW50ZXItZXZlbnRzLW5vbmUnLFxuICAgIE9OOiAndGlkZS1wb2ludGVyLWV2ZW50cycsXG4gIH0sXG4gIFBPU0lUSU9OOiB7XG4gICAgQUJTT0xVVEU6ICd0aWRlLXBvc2l0aW9uLWFic29sdXRlJyxcbiAgICBGSVhFRDogJ3RpZGUtcG9zaXRpb24tZml4ZWQnLFxuICAgIFJFTEFUSVZFOiAndGlkZS1wb3NpdGlvbi1yZWxhdGl2ZScsXG4gICAgU1RBVElDOiAndGlkZS1wb3NpdGlvbi1zdGF0aWMnLFxuICAgIFNUSUNLWTogJ3RpZGUtcG9zaXRpb24tc3RpY2t5JyxcbiAgfSxcbiAgUE9TSVRJT05JTkc6IHtcbiAgICBCT1RUT006ICd0aWRlLWJvdHRvbS0wJyxcbiAgICBMRUZUOiAndGlkZS1sZWZ0LTAnLFxuICAgIFJJR0hUOiAndGlkZS1yaWdodC0wJyxcbiAgICBUT1A6ICd0aWRlLXRvcC0wJyxcbiAgfSxcbiAgU0NST0xMQkFSOiB7XG4gICAgT0ZGOiAndGlkZS1zY3JvbGxiYXItbm9uZScsXG4gIH0sXG4gIFNIQURPVzoge1xuICAgIElOSVRJQUw6ICd0aWRlLXNoYWRvdy1pbml0aWFsJyxcbiAgICBCT1RUT006ICd0aWRlLXNoYWRvdy1ib3R0b20nLFxuICAgIFRPUDogJ3RpZGUtc2hhZG93LXRvcCcsXG4gIH0sXG4gIFNOQVA6IHtcbiAgICBPTjogJ3RpZGUtc2Nyb2xsLXNuYXAnLFxuICB9LFxuICBTTkFQX0FMSUdOOiB7XG4gICAgU1RBUlQ6ICd0aWRlLXNuYXAtc3RhcnQnLFxuICB9LFxuICBURVhUX1RSQU5TRk9STToge1xuICAgIExPV0VSOiAndGlkZS10ZXh0LXRyYW5zZm9ybS1sb3dlcicsXG4gICAgTk9ORTogJ3RpZGUtdGV4dC10cmFuc2Zvcm0tbm9uZScsXG4gICAgVVBQRVI6ICd0aWRlLXRleHQtdHJhbnNmb3JtLXVwcGVyJyxcbiAgfSxcbiAgVU5ERVJMSU5FOiB7XG4gICAgSE9WRVI6ICd0aWRlLXVuZGVybGluZS1ob3ZlcicsXG4gICAgT0ZGOiAndGlkZS11bmRlcmxpbmUtbm9uZScsXG4gICAgT046ICd0aWRlLXVuZGVybGluZScsXG4gIH0sXG4gIFZJU0lCSUxJVFk6IHtcbiAgICBPRkY6ICd0aWRlLXZpc2libGUtbm9uZScsXG4gICAgT046ICd0aWRlLXZpc2libGUnLFxuICB9LFxuICBXSElURVNQQUNFX1dSQVA6IHtcbiAgICBPRkY6ICd0aWRlLXdoaXRlc3BhY2Utbm93cmFwJyxcbiAgfSxcbiAgV0lEVEg6IHtcbiAgICBBVVRPOiAndGlkZS13aWR0aC1hdXRvJyxcbiAgICBaRVJPOiAndGlkZS13aWR0aC0wJyxcbiAgICBGVUxMOiAndGlkZS13aWR0aC1mdWxsJyxcbiAgICBNQVhfRlVMTDogJ3RpZGUtbWF4LXdpZHRoLWZ1bGwnLFxuICB9LFxuICBaX0lOREVYOiB7XG4gICAgSU5JVElBTDogJ3RpZGUtei1pbmRleC1pbml0aWFsJyxcbiAgICBPTkU6ICd0aWRlLXotaW5kZXgtMScsXG4gIH0sXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBDc3NVdGlsaXR5ID0gKHR5cGVvZiBDU1MpW2tleW9mIHR5cGVvZiBDU1NdO1xuXG5leHBvcnQgY29uc3QgY3NzU29ydE9yZGVyID0gW1xuICBDU1MuRElTUExBWS5CTE9DSyxcbiAgQ1NTLkRJU1BMQVkuQ09OVEVOVFMsXG4gIENTUy5ESVNQTEFZLkZMRVgsXG4gIENTUy5ESVNQTEFZLkdSSUQsXG4gIENTUy5ESVNQTEFZLk5PTkUsXG4gIENTUy5ESVNQTEFZLklOSVRJQUwsXG4gIENTUy5ESVNQTEFZLklOTElORSxcbiAgQ1NTLkRJU1BMQVkuSU5MSU5FX0JMT0NLLFxuICBDU1MuRElTUExBWS5JTkxJTkVfRkxFWCxcbiAgQ1NTLkFYSVMxLkFST1VORCxcbiAgQ1NTLkFYSVMxLkJFVFdFRU4sXG4gIENTUy5BWElTMS5DRU5URVIsXG4gIENTUy5BWElTMS5FTkQsXG4gIENTUy5BWElTMS5TVEFSVCxcbiAgQ1NTLkFYSVMyLkFST1VORCxcbiAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgQ1NTLkFYSVMyLkVORCxcbiAgQ1NTLkFYSVMyLlNUQVJULFxuICBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OLFxuICBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OX1JFVkVSU0UsXG4gIENTUy5GTEVYLkRJUkVDVElPTi5ST1csXG4gIENTUy5GTEVYLkRJUkVDVElPTi5ST1dfUkVWRVJTRSxcbiAgQ1NTLkdBUC5PTkUsXG4gIENTUy5HQVAuSEFMRixcbiAgQ1NTLkdBUC5RVUFSVEVSLFxuICBDU1MuR0FQLlRXTyxcbiAgQ1NTLkdBUC5GT1VSLFxuICBDU1MuRkxFWC5CQVNJUy5aRVJPLFxuICBDU1MuRkxFWC5HUk9XLk9OLFxuICBDU1MuRkxFWC5HUk9XLk9GRixcbiAgQ1NTLkZMRVguU0hSSU5LLk9OLFxuICBDU1MuRkxFWC5TSFJJTksuT0ZGLFxuICBDU1MuRkxFWC5XUkFQLFxuICBDU1MuUE9TSVRJT04uQUJTT0xVVEUsXG4gIENTUy5QT1NJVElPTi5GSVhFRCxcbiAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICBDU1MuUE9TSVRJT04uU1RJQ0tZLFxuICBDU1MuUE9TSVRJT05JTkcuVE9QLFxuICBDU1MuUE9TSVRJT05JTkcuUklHSFQsXG4gIENTUy5QT1NJVElPTklORy5CT1RUT00sXG4gIENTUy5QT1NJVElPTklORy5MRUZULFxuICBDU1MuQk9YX1NJWklORy5CT1JERVJfQk9YLFxuICBDU1MuQk9YX1NJWklORy5DT05URU5UX0JPWCxcbiAgQ1NTLk1BUkdJTi5GVUxMLlpFUk8sXG4gIENTUy5NQVJHSU4uRlVMTC5PTkUsXG4gIENTUy5NQVJHSU4uRlVMTC5IQUxGLFxuICBDU1MuTUFSR0lOLkZVTEwuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5GVUxMLlRXTyxcbiAgQ1NTLk1BUkdJTi5GVUxMLkZPVVIsXG4gIENTUy5NQVJHSU4uWS5aRVJPLFxuICBDU1MuTUFSR0lOLlkuT05FLFxuICBDU1MuTUFSR0lOLlkuSEFMRixcbiAgQ1NTLk1BUkdJTi5ZLlFVQVJURVIsXG4gIENTUy5NQVJHSU4uWS5UV08sXG4gIENTUy5NQVJHSU4uWS5GT1VSLFxuICBDU1MuTUFSR0lOLlRPUC5aRVJPLFxuICBDU1MuTUFSR0lOLlRPUC5PTkUsXG4gIENTUy5NQVJHSU4uVE9QLkhBTEYsXG4gIENTUy5NQVJHSU4uVE9QLlFVQVJURVIsXG4gIENTUy5NQVJHSU4uVE9QLlRXTyxcbiAgQ1NTLk1BUkdJTi5UT1AuRk9VUixcbiAgQ1NTLk1BUkdJTi5YLlpFUk8sXG4gIENTUy5NQVJHSU4uWC5PTkUsXG4gIENTUy5NQVJHSU4uWC5IQUxGLFxuICBDU1MuTUFSR0lOLlguUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5YLlRXTyxcbiAgQ1NTLk1BUkdJTi5YLkZPVVIsXG4gIENTUy5NQVJHSU4uWC5BVVRPLFxuICBDU1MuTUFSR0lOLlJJR0hULlpFUk8sXG4gIENTUy5NQVJHSU4uUklHSFQuT05FLFxuICBDU1MuTUFSR0lOLlJJR0hULkhBTEYsXG4gIENTUy5NQVJHSU4uUklHSFQuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5SSUdIVC5UV08sXG4gIENTUy5NQVJHSU4uUklHSFQuRk9VUixcbiAgQ1NTLk1BUkdJTi5SSUdIVC5BVVRPLFxuICBDU1MuTUFSR0lOLkJPVFRPTS5aRVJPLFxuICBDU1MuTUFSR0lOLkJPVFRPTS5PTkUsXG4gIENTUy5NQVJHSU4uQk9UVE9NLkhBTEYsXG4gIENTUy5NQVJHSU4uQk9UVE9NLlFVQVJURVIsXG4gIENTUy5NQVJHSU4uQk9UVE9NLlRXTyxcbiAgQ1NTLk1BUkdJTi5CT1RUT00uRk9VUixcbiAgQ1NTLk1BUkdJTi5MRUZULlpFUk8sXG4gIENTUy5NQVJHSU4uTEVGVC5PTkUsXG4gIENTUy5NQVJHSU4uTEVGVC5IQUxGLFxuICBDU1MuTUFSR0lOLkxFRlQuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5MRUZULlRXTyxcbiAgQ1NTLk1BUkdJTi5MRUZULkZPVVIsXG4gIENTUy5NQVJHSU4uTEVGVC5BVVRPLFxuICBDU1MuQk9SREVSLkZVTEwuT05FLFxuICBDU1MuQk9SREVSLkZVTEwuVFdPLFxuICBDU1MuQk9SREVSLlRPUC5PTkUsXG4gIENTUy5CT1JERVIuVE9QLlRXTyxcbiAgQ1NTLkJPUkRFUi5SSUdIVC5PTkUsXG4gIENTUy5CT1JERVIuUklHSFQuVFdPLFxuICBDU1MuQk9SREVSLkJPVFRPTS5PTkUsXG4gIENTUy5CT1JERVIuQk9UVE9NLlRXTyxcbiAgQ1NTLkJPUkRFUi5MRUZULk9ORSxcbiAgQ1NTLkJPUkRFUi5MRUZULlRXTyxcbiAgQ1NTLkJPUkRFUi5SQURJVVMuT05FLFxuICBDU1MuQk9SREVSLlJBRElVUy5IQUxGLFxuICBDU1MuQk9SREVSLlJBRElVUy5RVUFSVEVSLFxuICBDU1MuQk9SREVSLlJBRElVUy5GVUxMLFxuICBDU1MuUEFERElORy5GVUxMLlpFUk8sXG4gIENTUy5QQURESU5HLkZVTEwuT05FLFxuICBDU1MuUEFERElORy5GVUxMLkhBTEYsXG4gIENTUy5QQURESU5HLkZVTEwuUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuRlVMTC5UV08sXG4gIENTUy5QQURESU5HLkZVTEwuRk9VUixcbiAgQ1NTLlBBRERJTkcuWS5aRVJPLFxuICBDU1MuUEFERElORy5ZLk9ORSxcbiAgQ1NTLlBBRERJTkcuWS5IQUxGLFxuICBDU1MuUEFERElORy5ZLlFVQVJURVIsXG4gIENTUy5QQURESU5HLlkuVFdPLFxuICBDU1MuUEFERElORy5ZLkZPVVIsXG4gIENTUy5QQURESU5HLlRPUC5aRVJPLFxuICBDU1MuUEFERElORy5UT1AuT05FLFxuICBDU1MuUEFERElORy5UT1AuSEFMRixcbiAgQ1NTLlBBRERJTkcuVE9QLlFVQVJURVIsXG4gIENTUy5QQURESU5HLlRPUC5UV08sXG4gIENTUy5QQURESU5HLlRPUC5GT1VSLFxuICBDU1MuUEFERElORy5YLlpFUk8sXG4gIENTUy5QQURESU5HLlguT05FLFxuICBDU1MuUEFERElORy5YLkhBTEYsXG4gIENTUy5QQURESU5HLlguUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuWC5UV08sXG4gIENTUy5QQURESU5HLlguRk9VUixcbiAgQ1NTLlBBRERJTkcuUklHSFQuWkVSTyxcbiAgQ1NTLlBBRERJTkcuUklHSFQuT05FLFxuICBDU1MuUEFERElORy5SSUdIVC5IQUxGLFxuICBDU1MuUEFERElORy5SSUdIVC5RVUFSVEVSLFxuICBDU1MuUEFERElORy5SSUdIVC5UV08sXG4gIENTUy5QQURESU5HLlJJR0hULkZPVVIsXG4gIENTUy5QQURESU5HLkJPVFRPTS5aRVJPLFxuICBDU1MuUEFERElORy5CT1RUT00uT05FLFxuICBDU1MuUEFERElORy5CT1RUT00uSEFMRixcbiAgQ1NTLlBBRERJTkcuQk9UVE9NLlFVQVJURVIsXG4gIENTUy5QQURESU5HLkJPVFRPTS5UV08sXG4gIENTUy5QQURESU5HLkJPVFRPTS5GT1VSLFxuICBDU1MuUEFERElORy5MRUZULlpFUk8sXG4gIENTUy5QQURESU5HLkxFRlQuT05FLFxuICBDU1MuUEFERElORy5MRUZULkhBTEYsXG4gIENTUy5QQURESU5HLkxFRlQuUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuTEVGVC5UV08sXG4gIENTUy5QQURESU5HLkxFRlQuRk9VUixcbiAgQ1NTLldJRFRILk1BWF9GVUxMLFxuICBDU1MuV0lEVEguWkVSTyxcbiAgQ1NTLldJRFRILkZVTEwsXG4gIENTUy5IRUlHSFQuWkVSTyxcbiAgQ1NTLkhFSUdIVC5GVUxMLFxuICBDU1MuQUxJR04uWS5NSURETEUsXG4gIENTUy5CUkVBS19XT1JELFxuICBDU1MuQ1VSU09SLk5PVF9BTExPV0VELFxuICBDU1MuQ1VSU09SLlBPSU5URVIsXG4gIENTUy5DVVJTT1IuVEVYVCxcbiAgQ1NTLkZPTlQuU0laRS5UV0VMVkUsXG4gIENTUy5GT05ULlNJWkUuRk9VUlRFRU4sXG4gIENTUy5GT05ULlNJWkUuU0lYVEVFTixcbiAgQ1NTLkZPTlQuU0laRS5UV0VOVFksXG4gIENTUy5GT05ULlNJWkUuVFdFTlRZX0ZPVVIsXG4gIENTUy5GT05ULlNJWkUuVEhJUlRZX1RXTyxcbiAgQ1NTLkZPTlQuV0VJR0hULkZPVVJfSFVORFJFRCxcbiAgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCxcbiAgQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVELFxuICBDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRCxcbiAgQ1NTLkxJU1RfQlVMTEVUUy5PRkYsXG4gIENTUy5PQkpFQ1QuQ0VOVEVSLFxuICBDU1MuT0JKRUNULkNPTlRBSU4sXG4gIENTUy5PQkpFQ1QuQ09WRVIsXG4gIENTUy5PQkpFQ1QuU0NBTEVfRE9XTixcbiAgQ1NTLlBPSU5URVJfRVZFTlRTLk9OLFxuICBDU1MuUE9JTlRFUl9FVkVOVFMuT0ZGLFxuICBDU1MuU0NST0xMQkFSLk9GRixcbiAgQ1NTLlNIQURPVy5CT1RUT00sXG4gIENTUy5TSEFET1cuVE9QLFxuICBDU1MuU05BUC5PTixcbiAgQ1NTLlNOQVBfQUxJR04uU1RBUlQsXG4gIENTUy5BTElHTi5YLkxFRlQsXG4gIENTUy5BTElHTi5YLkNFTlRFUixcbiAgQ1NTLkFMSUdOLlguUklHSFQsXG4gIENTUy5URVhUX1RSQU5TRk9STS5MT1dFUixcbiAgQ1NTLlRFWFRfVFJBTlNGT1JNLk5PTkUsXG4gIENTUy5URVhUX1RSQU5TRk9STS5VUFBFUixcbiAgQ1NTLlVOREVSTElORS5IT1ZFUixcbiAgQ1NTLlVOREVSTElORS5PRkYsXG4gIENTUy5VTkRFUkxJTkUuT04sXG4gIENTUy5WSVNJQklMSVRZLk9OLFxuICBDU1MuVklTSUJJTElUWS5PRkYsXG4gIENTUy5XSElURVNQQUNFX1dSQVAuT0ZGLFxuICBDU1MuT1ZFUkZMT1cuWFkuQVVUTyxcbiAgQ1NTLk9WRVJGTE9XLlhZLkhJRERFTixcbiAgQ1NTLk9WRVJGTE9XLlguQVVUTyxcbiAgQ1NTLk9WRVJGTE9XLlguSElEREVOLFxuICBDU1MuT1ZFUkZMT1cuWC5TQ1JPTEwsXG4gIENTUy5PVkVSRkxPVy5ZLkFVVE8sXG4gIENTUy5PVkVSRkxPVy5ZLkhJRERFTixcbiAgQ1NTLlpfSU5ERVguT05FLFxuXSBhcyBjb25zdDtcbiIsImV4cG9ydCBjb25zdCBPUklFTlRBVElPTiA9IHtcbiAgSE9SSVpPTlRBTDogJ2hvcml6b250YWwnLFxuICBWRVJUSUNBTDogJ3ZlcnRpY2FsJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE9yaWVudGF0aW9uID0gKHR5cGVvZiBPUklFTlRBVElPTilba2V5b2YgdHlwZW9mIE9SSUVOVEFUSU9OXTtcbiIsImV4cG9ydCBjb25zdCBTSVpFID0ge1xuICBMQVJHRTogJ2xhcmdlJyxcbiAgU01BTEw6ICdzbWFsbCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBTaXplID0gKHR5cGVvZiBTSVpFKVtrZXlvZiB0eXBlb2YgU0laRV07XG4iLCJjb25zdCBjYXBpdGFsaXplRmlyc3QgPSAoc3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIHN0cmluZy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKTtcbn07XG5cbmNvbnN0IGZvcm1hdENhbWVsQ2FzZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZydcbiAgICA/IGlucHV0XG4gICAgICAgIC5yZXBsYWNlKC9eW1xcc18tXS8sICcnKVxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJyAnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKCh3b3JkLCBpbmRleCkgPT4gKGluZGV4ID09PSAwID8gd29yZCA6IHdvcmQuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkpKVxuICAgICAgICAuam9pbignJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0S2ViYWJDYXNlID0gKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJ1xuICAgID8gaW5wdXRcbiAgICAgICAgLnJlcGxhY2UoLyhbYS16XXsxfSkoW0EtWl17MX0pL2csICckMSAkMicpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgIC5yZXBsYWNlKC9bXFxzXy1dL2csICctJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0TGFiZWwgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICBjb25zdCBsYWJlbE1hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICBmYWxzZTogJ05vJyxcbiAgICB0cnVlOiAnWWVzJyxcbiAgfTtcbiAgcmV0dXJuIE9iamVjdC5oYXNPd24obGFiZWxNYXAsIHZhbHVlKSA/IGxhYmVsTWFwW3ZhbHVlXSA6IHZhbHVlO1xufTtcblxuY29uc3QgZm9ybWF0TnVtYmVyID0gKGlucHV0OiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBsZXQgb3V0cHV0ID0gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJyA/IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdChpbnB1dCkgOiBTdHJpbmcoaW5wdXQgfHwgJycpO1xuICBsZXQgZGlnaXRzID0gb3V0cHV0O1xuXG4gIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgZGlnaXRzID0gZGlnaXRzLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG4gICAgaWYgKE51bWJlcihkaWdpdHMpKSB7XG4gICAgICBvdXRwdXQgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKS5mb3JtYXQoTnVtYmVyKGRpZ2l0cykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXQgPSAnMCc7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFBhc2NhbENhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJyAnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKCh3b3JkKSA9PiB3b3JkLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpKVxuICAgICAgICAuam9pbignJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0UGhvbmUgPSAoaW5wdXQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGxldCBvdXRwdXQgPSBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdudW1iZXInID8gU3RyaW5nKGlucHV0KSA6IFN0cmluZyhpbnB1dCB8fCAnJyk7XG4gIGxldCBkaWdpdHMgPSBvdXRwdXQ7XG4gIGRpZ2l0cyA9IGRpZ2l0cy5yZXBsYWNlKC9cXEQvZywgJycpO1xuXG4gIHN3aXRjaCAoZGlnaXRzLmxlbmd0aCkge1xuICAgIGNhc2UgNzpcbiAgICAgIG91dHB1dCA9IGAke2RpZ2l0cy5zbGljZSgwLCAzKX0tJHtkaWdpdHMuc2xpY2UoMyl9YDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTA6XG4gICAgICBvdXRwdXQgPSBgJHtkaWdpdHMuc2xpY2UoMCwgMyl9LSR7ZGlnaXRzLnNsaWNlKDMsIDYpfS0ke2RpZ2l0cy5zbGljZSg2KX1gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAxMTpcbiAgICAgIG91dHB1dCA9IGAke2RpZ2l0cy5zbGljZSgwLCAxKX0tJHtkaWdpdHMuc2xpY2UoMSwgNCl9LSR7ZGlnaXRzLnNsaWNlKDQsIDcpfS0ke2RpZ2l0cy5zbGljZSg3KX1gO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIG91dHB1dCA9IGRpZ2l0cztcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFByaWNlID0gKGlucHV0OiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBvdXRwdXQgPSBpbnB1dCA/IGZvcm1hdE51bWJlcihpbnB1dCkgOiBTdHJpbmcoaW5wdXQgfHwgJzAnKTtcbiAgcmV0dXJuIGAkJHtvdXRwdXR9YDtcbn07XG5cbmNvbnN0IGZvcm1hdFF1b3RlcyA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmICh2YWx1ZS5zdGFydHNXaXRoKCdcIicpICYmIHZhbHVlLmVuZHNXaXRoKCdcIicpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNsaWNlKDEsIC0xKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmNvbnN0IGZvcm1hdFNlbnRlbmNlQ2FzZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgbGV0IHNlbnRlbmNlQ2FzZSA9IGlucHV0O1xuXG4gIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgbG93ZXJDYXNlID0gaW5wdXRcbiAgICAgIC5yZXBsYWNlKC8oW2Etel17MX0pKFtBLVpdezF9KS9nLCAnJDEgJDInKVxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC5yZXBsYWNlKC9bXFxzXy1dL2csICcgJyk7XG5cbiAgICBzZW50ZW5jZUNhc2UgPSBsb3dlckNhc2Uuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIGxvd2VyQ2FzZS5zbGljZSgxKTtcbiAgfVxuXG4gIHJldHVybiBzZW50ZW5jZUNhc2U7XG59O1xuXG5jb25zdCBmb3JtYXRTbmFrZUNhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJ18nKVxuICAgIDogaW5wdXQ7XG59O1xuXG5jb25zdCBmb3JtYXRUaXRsZUNhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJyAnKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKCh3b3JkKSA9PiB3b3JkLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpKVxuICAgICAgICAuam9pbignICcpXG4gICAgOiBpbnB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFVybEZyb21Sb290ID0gKHVybDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHVybEZvcm1hdHRlZCA9IHVybC5zcGxpdCgnLmNvbS8nKTtcblxuICByZXR1cm4gdXJsRm9ybWF0dGVkLmxlbmd0aCA+IDEgPyBgLyR7dXJsRm9ybWF0dGVkWzFdfWAgOiB1cmw7XG59O1xuXG5jb25zdCBmb3JtYXRXZWlnaHQgPSAoaW5wdXQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG91dHB1dCA9IGlucHV0ID8gZm9ybWF0TnVtYmVyKGlucHV0KSA6IFN0cmluZyhpbnB1dCB8fCAnMCcpO1xuICByZXR1cm4gYCR7b3V0cHV0fSBsYnNgO1xufTtcblxuY29uc3QgZ2V0QXJ0aWNsZSA9IChub3VuOiBzdHJpbmcsIGlzUGx1cmFsID0gZmFsc2UsIGlzRGVmaW5pdGUgPSBmYWxzZSkgPT4ge1xuICBjb25zdCB2b3dlbHMgPSBbJ2EnLCAnZScsICdpJywgJ28nLCAndSddO1xuICBjb25zdCBpc1Zvd2VsTGVhZGluZyA9IHZvd2Vscy5pbmNsdWRlcyhub3VuLmNoYXJBdCgwKSk7XG5cbiAgcmV0dXJuIGlzRGVmaW5pdGUgPyAndGhlJyA6IGlzUGx1cmFsID8gJ3NvbWUnIDogaXNWb3dlbExlYWRpbmcgPyAnYW4nIDogJ2EnO1xufTtcblxuY29uc3QgcHJpY2VUb051bWJlciA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmIChOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJyQnLCAnJyk7XG4gICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcbiAgfVxuICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTtcbn07XG5cbmNvbnN0IHVuZm9ybWF0UHJpY2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG91dHB1dCA9IGlucHV0LnJlcGxhY2UoL1xcJC9nLCAnJykucmVwbGFjZSgvLC9nLCAnJyk7XG4gIHJldHVybiBgJHtvdXRwdXR9YDtcbn07XG5cbmV4cG9ydCB7XG4gIGNhcGl0YWxpemVGaXJzdCxcbiAgZm9ybWF0Q2FtZWxDYXNlLFxuICBmb3JtYXRLZWJhYkNhc2UsXG4gIGZvcm1hdExhYmVsLFxuICBmb3JtYXROdW1iZXIsXG4gIGZvcm1hdFBhc2NhbENhc2UsXG4gIGZvcm1hdFBob25lLFxuICBmb3JtYXRQcmljZSxcbiAgZm9ybWF0UXVvdGVzLFxuICBmb3JtYXRTZW50ZW5jZUNhc2UsXG4gIGZvcm1hdFNuYWtlQ2FzZSxcbiAgZm9ybWF0VGl0bGVDYXNlLFxuICBmb3JtYXRVcmxGcm9tUm9vdCxcbiAgZm9ybWF0V2VpZ2h0LFxuICBnZXRBcnRpY2xlLFxuICBwcmljZVRvTnVtYmVyLFxuICB1bmZvcm1hdFByaWNlLFxufTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGRlZmluZUFzeW5jQ29tcG9uZW50LCBtYXJrUmF3LCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IENvbXBvbmVudCB9IGZyb20gJ3Z1ZSc7XG4gIGltcG9ydCB0eXBlIHsgSWNvbiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB0eXBlIHsgU2l6ZSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG5cbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgZm9ybWF0UGFzY2FsQ2FzZSB9IGZyb20gJ0AvdXRpbGl0aWVzL2Zvcm1hdCc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBpY29uOiBJY29uO1xuICAgIHNpemU/OiBTaXplO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgc2l6ZTogU0laRS5TTUFMTCxcbiAgfSk7XG5cbiAgY29uc3QgaW5uZXJTVkcgPSByZWY8Q29tcG9uZW50PigpO1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLmljb24sXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBwcm9wcy5pY29uIGFzIHVua25vd24gYXMgc3RyaW5nO1xuICAgICAgY29uc3QgbmFtZSA9IGZvcm1hdFBhc2NhbENhc2UoaWQpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gZGVmaW5lQXN5bmNDb21wb25lbnQoKCkgPT4gaW1wb3J0KGAuLi9hc3NldHMvc3ZnL2ljb25zL0ljb24ke25hbWV9LnN2Z2ApKTtcblxuICAgICAgaW5uZXJTVkcudmFsdWUgPSBtYXJrUmF3KGNvbXBvbmVudCk7XG4gICAgfSxcbiAgICB7IGltbWVkaWF0ZTogdHJ1ZSB9XG4gICk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1pY29uJywgcHJvcHMuc2l6ZV1cIj5cbiAgICA8Q29tcG9uZW50XG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuQkxPQ0tdXCJcbiAgICAgIDpkYXRhLWljb249XCJpY29uXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgOmlzPVwiaW5uZXJTVkdcIlxuICAgICAgdi1pZj1cImlubmVyU1ZHXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZT5cbiAgLnRpZGUtaWNvbiBzdmcge1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gIH1cblxuICAudGlkZS1pY29uLnNtYWxsIHN2ZyB7XG4gICAgd2lkdGg6IDEuMjVyZW07XG4gICAgaGVpZ2h0OiAxLjI1cmVtO1xuICB9XG48L3N0eWxlPlxuIiwiZXhwb3J0IGNvbnN0IElDT04gPSB7XG4gIEFDQ09VTlRfQkFMQU5DRTogJ2FjY291bnQtYmFsYW5jZScsXG4gIEFERDogJ2FkZCcsXG4gIEFJX0RFU0NSSVBUSU9OOiAnYWktZGVzY3JpcHRpb24nLFxuICBBTElHTl9TUEFDRTogJ2FsaWduLXNwYWNlJyxcbiAgQVBQTEVfUEFZOiAnYXBwbGUtcGF5JyxcbiAgQVJST1dfQkFDSzogJ2Fycm93LWJhY2snLFxuICBBUlJPV19GT1JXQVJEOiAnYXJyb3ctZm9yd2FyZCcsXG4gIEFSUk9XX1JJR0hUOiAnYXJyb3ctcmlnaHQnLFxuICBBU1NJR05NRU5UOiAnYXNzaWdubWVudCcsXG4gIEFXQVJEX1NUQVI6ICdhd2FyZC1zdGFyJyxcbiAgQk9PS01BUks6ICdib29rbWFyaycsXG4gIENBTEVOREFSX01PTlRIOiAnY2FsZW5kYXItbW9udGgnLFxuICBDQUxMOiAnY2FsbCcsXG4gIENIRUNLOiAnY2hlY2snLFxuICBDSEVWUk9OX0xFRlQ6ICdjaGV2cm9uLWxlZnQnLFxuICBDSEVWUk9OX1JJR0hUOiAnY2hldnJvbi1yaWdodCcsXG4gIENMRUFSOiAnY2xlYXInLFxuICBDTE9TRTogJ2Nsb3NlJyxcbiAgQ1lDTEU6ICdjeWNsZScsXG4gIERFTEVURTogJ2RlbGV0ZScsXG4gIERJQU1PTkQ6ICdkaWFtb25kJyxcbiAgRFJBRlQ6ICdkcmFmdCcsXG4gIEVESVQ6ICdlZGl0JyxcbiAgRVJST1I6ICdlcnJvcicsXG4gIEVYUEFORF9DT05URU5UOiAnZXhwYW5kLWNvbnRlbnQnLFxuICBFWFBBTkRfTEVTUzogJ2V4cGFuZC1sZXNzJyxcbiAgRVhQQU5EX01PUkU6ICdleHBhbmQtbW9yZScsXG4gIEZBQ0VCT09LOiAnZmFjZWJvb2snLFxuICBGQVZPUklURTogJ2Zhdm9yaXRlJyxcbiAgRkFWT1JJVEVfRklMTEVEOiAnZmF2b3JpdGUtZmlsbGVkJyxcbiAgRk9STUFUX0JPTEQ6ICdmb3JtYXQtYm9sZCcsXG4gIEZPUk1BVF9JVEFMSUM6ICdmb3JtYXQtaXRhbGljJyxcbiAgRk9STUFUX0xJU1RfQlVMTEVURUQ6ICdmb3JtYXQtbGlzdC1idWxsZXRlZCcsXG4gIEZPUlVNOiAnZm9ydW0nLFxuICBHQVZFTDogJ2dhdmVsJyxcbiAgR09PR0xFOiAnZ29vZ2xlJyxcbiAgR09PR0xFX1BBWTogJ2dvb2dsZS1wYXknLFxuICBHUklEOiAnZ3JpZCcsXG4gIEhFSUdIVDogJ2hlaWdodCcsXG4gIEhFTFA6ICdoZWxwJyxcbiAgSU5GTzogJ2luZm8nLFxuICBJTlNFUlRfVEVYVDogJ2luc2VydC10ZXh0JyxcbiAgSU5TVEFHUkFNOiAnaW5zdGFncmFtJyxcbiAgSU9TX1NIQVJFOiAnaW9zLXNoYXJlJyxcbiAgTEFZT1VUOiAnbGF5b3V0JyxcbiAgTElOS0VEX0lOOiAnbGlua2VkIGluJyxcbiAgTE9DQUxfU0hJUFBJTkc6ICdsb2NhbC1zaGlwcGluZycsXG4gIExPQ0s6ICdsb2NrJyxcbiAgTUFJTDogJ21haWwnLFxuICBNRU5VOiAnbWVudScsXG4gIE1PUkVfSE9SSVo6ICdtb3JlLWhvcml6JyxcbiAgTk9USUZJQ0FUSU9OUzogJ25vdGlmaWNhdGlvbnMnLFxuICBPUEVOX0lOX05FVzogJ29wZW4taW4tbmV3JyxcbiAgUEFMRVRURTogJ3BhbGV0dGUnLFxuICBQQVlQQUw6ICdwYXlwYWwnLFxuICBQRVJTT046ICdwZXJzb24nLFxuICBQSE9UT19DQU1FUkE6ICdwaG90by1jYW1lcmEnLFxuICBQSU5URVJFU1Q6ICdwaW50ZXJlc3QnLFxuICBQTEFZX0FSUk9XOiAncGxheS1hcnJvdycsXG4gIFJFTU9WRTogJ3JlbW92ZScsXG4gIFJPVU5ERURfQ09STkVSUzogJ3JvdW5kZWQtY29ybmVycycsXG4gIFJVTEVSOiAncnVsZXInLFxuICBTRUFSQ0g6ICdzZWFyY2gnLFxuICBTRUFUSU5HOiAnc2VhdGluZycsXG4gIFNFTEw6ICdzZWxsJyxcbiAgU0hBUkU6ICdzaGFyZScsXG4gIFNIT1BQSU5HX0NBUlQ6ICdzaG9wcGluZy1jYXJ0JyxcbiAgU01TOiAnc21zJyxcbiAgU1RBUjogJ3N0YXInLFxuICBTV0FQX1ZFUlQ6ICdzd2FwLXZlcnQnLFxuICBUSFJFRV9EX1JPVEFUSU9OOiAndGhyZWUtZC1yb3RhdGlvbicsXG4gIFRST1BIWTogJ3Ryb3BoeScsXG4gIFRVTkU6ICd0dW5lJyxcbiAgVFdJVFRFUjogJ3R3aXR0ZXInLFxuICBWSURFT0NBTTogJ3ZpZGVvY2FtJyxcbiAgVklFV19JTl9BUjogJ3ZpZXctaW4tYXInLFxuICBWSVNJQklMSVRZOiAndmlzaWJpbGl0eScsXG4gIFZPTFVNRV9PRkY6ICd2b2x1bWUtb2ZmJyxcbiAgVk9MVU1FX09OOiAndm9sdW1lLW9uJyxcbiAgV0FSTklORzogJ3dhcm5pbmcnLFxuICBXRUlHSFQ6ICd3ZWlnaHQnLFxuICBXSURUSDogJ3dpZHRoJyxcbiAgWU9VVFVCRTogJ3lvdXR1YmUnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgSWNvbiA9ICh0eXBlb2YgSUNPTilba2V5b2YgdHlwZW9mIElDT05dO1xuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgb25Nb3VudGVkLCByZWYgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCBUaWRlRGl2aWRlciBmcm9tICdAL2NvbXBvbmVudHMvVGlkZURpdmlkZXIudnVlJztcbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgVGlkZUluZGljYXRvciBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUluZGljYXRvci52dWUnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuXG4gIGNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoe1xuICAgIGhhc0JvdHRvbURpdmlkZXI6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIGhhc1RvcERpdmlkZXI6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIGlzQWN0aXZlOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBpc0V4cGFuZGVkSW5pdGlhbDoge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgaXNPcHRpb25hbDoge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgbGFiZWw6IHtcbiAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgaXNFeHBhbmRlZCA9IHJlZihwcm9wcy5pc0V4cGFuZGVkSW5pdGlhbCk7XG5cbiAgbGV0IGFjY29yZGlvbkJvZHkgPSByZWYoKTtcblxuICBjb25zdCB0b2dnbGVJc0V4cGFuZGVkID0gKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhY2NvcmRpb25Cb2R5LnZhbHVlIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaXNFeHBhbmRlZC52YWx1ZSA9ICFpc0V4cGFuZGVkLnZhbHVlO1xuXG4gICAgZWxlbWVudC5zdHlsZS5ncmlkVGVtcGxhdGVSb3dzID0gaXNFeHBhbmRlZC52YWx1ZSA/ICcxZnInIDogJzBmcic7XG4gIH07XG5cbiAgb25Nb3VudGVkKCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gYWNjb3JkaW9uQm9keS52YWx1ZSBhcyBIVE1MRWxlbWVudDtcblxuICAgIGVsZW1lbnQuc3R5bGUuZ3JpZFRlbXBsYXRlUm93cyA9IGlzRXhwYW5kZWQudmFsdWUgPyAnMWZyJyA6ICcwZnInO1xuICB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJ0aWRlLWFjY29yZGlvbi1pdGVtXCI+XG4gICAgPFRpZGVEaXZpZGVyIHYtaWY9XCJwcm9wcy5oYXNUb3BEaXZpZGVyXCIgLz5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIlsndGlkZS1hY2NvcmRpb24taGVhZCcsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMS5CRVRXRUVOLCBDU1MuUEFERElORy5ZLkhBTEYsIENTUy5DVVJTT1IuUE9JTlRFUl1cIlxuICAgICAgQGNsaWNrPVwidG9nZ2xlSXNFeHBhbmRlZFwiXG4gICAgPlxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5IQUxGLCBDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRF1cIj5cbiAgICAgICAgPHNwYW4+e3sgcHJvcHMubGFiZWwgfX08L3NwYW4+XG5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5UXVwiXG4gICAgICAgICAgdi1pZj1cInByb3BzLmlzT3B0aW9uYWxcIlxuICAgICAgICA+XG4gICAgICAgICAgKG9wdGlvbmFsKVxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPFRpZGVJbmRpY2F0b3Igdi1pZj1cInByb3BzLmlzQWN0aXZlXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8VGlkZUljb24gOmljb249XCJpc0V4cGFuZGVkID8gSUNPTi5FWFBBTkRfTEVTUyA6IElDT04uRVhQQU5EX01PUkVcIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiWyd0aWRlLWFjY29yZGlvbi1ib2R5JywgQ1NTLkRJU1BMQVkuR1JJRF1cIlxuICAgICAgcmVmPVwiYWNjb3JkaW9uQm9keVwiXG4gICAgPlxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLk9WRVJGTE9XLlkuSElEREVOXVwiPlxuICAgICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuTUFSR0lOLlkuT05FLCBDU1MuRk9OVC5XRUlHSFQuRk9VUl9IVU5EUkVELCBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLkRFRkFVTFRdXCI+XG4gICAgICAgICAgPHNsb3QgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxUaWRlRGl2aWRlciB2LWlmPVwicHJvcHMuaGFzQm90dG9tRGl2aWRlclwiIC8+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtYWNjb3JkaW9uLWJvZHkge1xuICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG48L3N0eWxlPlxuIiwiZXhwb3J0IGNvbnN0IEVMRU1FTlQgPSB7XG4gIEJVVFRPTjogJ2J1dHRvbicsXG4gIExJTks6ICdhJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBFTEVNRU5UX1RFWFRfQVNfSUNPTiA9IHtcbiAgQlVUVE9OOiAnYnV0dG9uJyxcbiAgRElWOiAnZGl2JyxcbiAgTElOSzogJ2EnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgRWxlbWVudCA9ICh0eXBlb2YgRUxFTUVOVClba2V5b2YgdHlwZW9mIEVMRU1FTlRdO1xuZXhwb3J0IHR5cGUgRWxlbWVudFRleHRBc0ljb24gPSAodHlwZW9mIEVMRU1FTlRfVEVYVF9BU19JQ09OKVtrZXlvZiB0eXBlb2YgRUxFTUVOVF9URVhUX0FTX0lDT05dO1xuIiwiLyogZXNsaW50LWRpc2FibGUgdnVlL3NvcnQta2V5cyAqL1xuXG5leHBvcnQgY29uc3QgUFJJT1JJVFkgPSB7XG4gIFBSSU1BUlk6ICdwcmltYXJ5JyxcbiAgU0VDT05EQVJZOiAnc2Vjb25kYXJ5JyxcbiAgVEVSVElBUlk6ICd0ZXJ0aWFyeScsXG4gIFFVQVRFUk5BUlk6ICdxdWF0ZXJuYXJ5JyxcbiAgRkxPQVRJTkc6ICdmbG9hdGluZycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBQcmlvcml0eSA9ICh0eXBlb2YgUFJJT1JJVFkpW2tleW9mIHR5cGVvZiBQUklPUklUWV07XG4iLCJleHBvcnQgY29uc3QgVEFSR0VUID0ge1xuICBCTEFOSzogJ19ibGFuaycsXG4gIFNFTEY6IHVuZGVmaW5lZCxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFRhcmdldCA9ICh0eXBlb2YgVEFSR0VUKVtrZXlvZiB0eXBlb2YgVEFSR0VUXTtcbiIsImV4cG9ydCBjb25zdCBBTEVSVCA9IHtcbiAgRVJST1I6ICdlcnJvcicsXG4gIElORk86ICdpbmZvJyxcbiAgU1VDQ0VTUzogJ3N1Y2Nlc3MnLFxuICBXQVJOSU5HOiAnd2FybmluZycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBBbGVydCA9ICh0eXBlb2YgQUxFUlQpW2tleW9mIHR5cGVvZiBBTEVSVF07XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHR5cGUgeyBBbGVydCB9IGZyb20gJ0AvdHlwZXMvQWxlcnQnO1xuICBpbXBvcnQgdHlwZSB7IEljb24gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IFRpZGVCdXR0b25JY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlQnV0dG9uSWNvbi52dWUnO1xuICBpbXBvcnQgeyBBTEVSVCB9IGZyb20gJ0AvdHlwZXMvQWxlcnQnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBQUklPUklUWSB9IGZyb20gJ0AvdHlwZXMvUHJpb3JpdHknO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgaGVhZGluZz86IHN0cmluZztcbiAgICBpc1RvYXN0PzogYm9vbGVhbjtcbiAgICB0eXBlPzogQWxlcnQ7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBoZWFkaW5nOiB1bmRlZmluZWQsXG4gICAgaXNUb2FzdDogZmFsc2UsXG4gICAgdHlwZTogQUxFUlQuSU5GTyxcbiAgfSk7XG5cbiAgY29uc3QgaWNvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBsZXQgaWNvbjogSWNvbiA9IElDT04uVklFV19JTl9BUjtcblxuICAgIHN3aXRjaCAocHJvcHMudHlwZSkge1xuICAgICAgY2FzZSBBTEVSVC5FUlJPUjpcbiAgICAgICAgaWNvbiA9IElDT04uRVJST1I7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgIGNhc2UgQUxFUlQuSU5GTzpcbiAgICAgICAgaWNvbiA9IElDT04uSU5GTztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEFMRVJULlNVQ0NFU1M6XG4gICAgICAgIGljb24gPSBJQ09OLkNIRUNLO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQUxFUlQuV0FSTklORzpcbiAgICAgICAgaWNvbiA9IElDT04uV0FSTklORztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIGljb247XG4gIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdlxuICAgIDpjbGFzcz1cIltcbiAgICAgIHByb3BzLnR5cGUsXG4gICAgICAndGlkZS1hbGVydCcsXG4gICAgICBDU1MuRElTUExBWS5HUklELFxuICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuSEFMRixcbiAgICAgIENTUy5QQURESU5HLkZVTEwuT05FLFxuICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuRVJST1IgJiYgQ1NTLkJHLlNVUkZBQ0UuRVJST1IsXG4gICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5JTkZPICYmIENTUy5CRy5TVVJGQUNFLklORk8sXG4gICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5TVUNDRVNTICYmIENTUy5CRy5TVVJGQUNFLlNVQ0NFU1MsXG4gICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5XQVJOSU5HICYmIENTUy5CRy5TVVJGQUNFLldBUk5JTkcsXG4gICAgICBwcm9wcy5pc1RvYXN0ID8gQ1NTLlNIQURPVy5CT1RUT00gOiAnJyxcbiAgICBdXCJcbiAgPlxuICAgIDxkaXYgOmNsYXNzPVwiWyd0aWRlLWFsZXJ0LWljb24nLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSXVwiPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICBwcm9wcy50eXBlLFxuICAgICAgICAgIENTUy5CT1JERVIuUkFESVVTLkZVTEwsXG4gICAgICAgICAgQ1NTLlBBRERJTkcuRlVMTC5IQUxGLFxuICAgICAgICAgIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuSU5WRVJTRSxcbiAgICAgICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5FUlJPUiAmJiBDU1MuQkcuRVJST1IsXG4gICAgICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuSU5GTyAmJiBDU1MuQkcuSU5GTyxcbiAgICAgICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5TVUNDRVNTICYmIENTUy5CRy5TVUNDRVNTLFxuICAgICAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULldBUk5JTkcgJiYgQ1NTLkJHLldBUk5JTkcsXG4gICAgICAgIF1cIlxuICAgICAgICA6aWNvbj1cImljb25cIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgOmNsYXNzPVwiWyd0aWRlLWFsZXJ0LWhlYWRpbmcnLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSXVwiPlxuICAgICAgPGgyIDpjbGFzcz1cIltDU1MuRk9OVC5TSVpFLlNJWFRFRU4sIENTUy5GT05ULldFSUdIVC5TSVhfSFVORFJFRCwgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5ERUZBVUxUXVwiPlxuICAgICAgICB7eyBwcm9wcy5oZWFkaW5nIH19XG4gICAgICA8L2gyPlxuICAgIDwvZGl2PlxuXG4gICAgPFRpZGVCdXR0b25JY29uXG4gICAgICA6Y2xhc3M9XCJbJ3RpZGUtYWxlcnQtY2xvc2UnLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLkRFRkFVTFRdXCJcbiAgICAgIDppY29uPVwiSUNPTi5DTE9TRVwiXG4gICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBhbGVydFwiXG4gICAgLz5cblxuICAgIDxkaXYgOmNsYXNzPVwiWyd0aWRlLWFsZXJ0LWJvZHknLCBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVELCBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlRdXCI+XG4gICAgICA8c2xvdCAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLWFsZXJ0IHtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgICAgJ2ljb24gaGVhZGluZyBjbG9zZSdcbiAgICAgICcuIGJvZHkgLic7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvO1xuICAgIGdyaWQtY29sdW1uLWdhcDogMC41cmVtO1xuICAgIG1heC13aWR0aDogNDByZW07XG4gIH1cblxuICAudGlkZS1hbGVydC1pY29uIHtcbiAgICBncmlkLWFyZWE6IGljb247XG4gIH1cblxuICAudGlkZS1hbGVydC1oZWFkaW5nIHtcbiAgICBncmlkLWFyZWE6IGhlYWRpbmc7XG4gIH1cblxuICAudGlkZS1hbGVydC1jbG9zZSB7XG4gICAgZ3JpZC1hcmVhOiBjbG9zZTtcbiAgfVxuXG4gIC50aWRlLWFsZXJ0LWJvZHkge1xuICAgIGdyaWQtYXJlYTogYm9keTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IHJlZiB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHR5cGUgeyBTb3VyY2UgfSBmcm9tICdAL3R5cGVzL1NvdXJjZSc7XG5cbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgYWx0OiBzdHJpbmc7XG4gICAgaXNMYXp5PzogYm9vbGVhbjtcbiAgICBzb3VyY2VzPzogU291cmNlW107XG4gICAgc3JjPzogc3RyaW5nO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgYWx0OiAnJyxcbiAgICBpc0xhenk6IHRydWUsXG4gICAgc291cmNlczogKCkgPT4gW10sXG4gICAgc3JjOiB1bmRlZmluZWQsXG4gIH0pO1xuXG4gIGNvbnN0IHRpZGVJbWFnZSA9IHJlZigpO1xuICBjb25zdCBpbWFnZURlZmF1bHQgPSAnaHR0cHM6Ly9jZG4tc3RhdGljLXJlYy50aWxhYnMuaW8vaW1hZ2UtY29taW5nLXNvb24tNTEyLnBuZyc7XG5cbiAgY29uc3Qgc2V0SW1hZ2VGcm9tRGVmYXVsdCA9ICgpID0+IHtcbiAgICBjb25zdCBzcmMgPSB0aWRlSW1hZ2UudmFsdWUuY3VycmVudFNyYztcbiAgICBjb25zdCBjdXJyZW50U291cmNlID0gdGlkZUltYWdlLnZhbHVlLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3Rvcihgc291cmNlW3NyY3NldD1cIiR7c3JjfVwiXWApO1xuXG4gICAgaWYgKGN1cnJlbnRTb3VyY2UpIHtcbiAgICAgIGN1cnJlbnRTb3VyY2Uuc3Jjc2V0ID0gaW1hZ2VEZWZhdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aWRlSW1hZ2UudmFsdWUuc3JjID0gaW1hZ2VEZWZhdWx0O1xuICAgIH1cbiAgfTtcblxuICBkZWZpbmVFeHBvc2UodGlkZUltYWdlLnZhbHVlKTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxwaWN0dXJlIDpjbGFzcz1cIlsndGlkZS1pbWFnZSddXCI+XG4gICAgPHNvdXJjZVxuICAgICAgOmtleT1cInNvdXJjZS5zcmNzZXRcIlxuICAgICAgOm1lZGlhPVwiYChtaW4td2lkdGg6JHtzb3VyY2UubWVkaWF9cHgpYFwiXG4gICAgICA6c3Jjc2V0PVwic291cmNlLnNyY3NldFwiXG4gICAgICB2LWZvcj1cInNvdXJjZSBpbiBwcm9wcy5zb3VyY2VzXCJcbiAgICAvPlxuXG4gICAgPGltZ1xuICAgICAgOmFsdD1cImFsdFwiXG4gICAgICA6Y2xhc3M9XCJbQ1NTLldJRFRILkZVTEwsIENTUy5IRUlHSFQuRlVMTCwgQ1NTLk9CSkVDVC5DRU5URVIsIENTUy5PQkpFQ1QuQ09WRVJdXCJcbiAgICAgIDpmZXRjaHByaW9yaXR5PVwiaXNMYXp5ID8gdW5kZWZpbmVkIDogJ2hpZ2gnXCJcbiAgICAgIDpsb2FkaW5nPVwicHJvcHMuaXNMYXp5ID8gJ2xhenknIDogJ2VhZ2VyJ1wiXG4gICAgICByZWY9XCJ0aWRlSW1hZ2VcIlxuICAgICAgOnNyYz1cInNyYyA/PyBpbWFnZURlZmF1bHRcIlxuICAgICAgQGVycm9yPVwic2V0SW1hZ2VGcm9tRGVmYXVsdFwiXG4gICAgLz5cbiAgPC9waWN0dXJlPlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD48L3N0eWxlPlxuIiwiZXhwb3J0IGNvbnN0IEJBREdFID0ge1xuICBKVVNUX0xJU1RFRDogJ0p1c3QgbGlzdGVkJyxcbiAgTkFUSU9OV0lERTogJ05hdGlvbndpZGUnLFxuICBSRURVQ0VEOiAnUmVkdWNlZCcsXG4gIFVQREFURUQ6ICdVcGRhdGVkJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBCQURHRV9QUkVNSVVNID0ge1xuICBQUkVNSVVNOiAnUHJlbWl1bScsXG4gIFBSRU1JVU1fU0VMRUNUOiAnUHJlbWl1bSBTRUxFQ1QnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEJBREdFX1RSVVNURUQgPSB7XG4gIFlFQVJTXzEwOiAnMTAnLFxuICBZRUFSU18xNTogJzE1JyxcbiAgWUVBUlNfNTogJzUnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQmFkZ2UgPSAodHlwZW9mIEJBREdFKVtrZXlvZiB0eXBlb2YgQkFER0VdO1xuZXhwb3J0IHR5cGUgQmFkZ2VQcmVtaXVtID0gKHR5cGVvZiBCQURHRV9QUkVNSVVNKVtrZXlvZiB0eXBlb2YgQkFER0VfUFJFTUlVTV07XG5leHBvcnQgdHlwZSBCYWRnZVRydXN0ZWRZZWFycyA9ICh0eXBlb2YgQkFER0VfVFJVU1RFRClba2V5b2YgdHlwZW9mIEJBREdFX1RSVVNURURdO1xuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgb25Nb3VudGVkLCBvblVubW91bnRlZCwgb25VcGRhdGVkLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZUJ1dHRvbkljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVCdXR0b25JY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFBSSU9SSVRZIH0gZnJvbSAnQC90eXBlcy9Qcmlvcml0eSc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBpc1RvdWNoc2NyZWVuPzogYm9vbGVhbjtcbiAgICBvZmZzZXRYPzogbnVtYmVyO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgb2Zmc2V0WDogMCxcbiAgfSk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2hhbmdlJ10pO1xuXG4gIGxldCBjb250ZW50V2lkdGggPSByZWYoKTtcbiAgbGV0IGZyYW1lV2lkdGggPSByZWYoKTtcbiAgbGV0IGhhc092ZXJmbG93ID0gcmVmKCk7XG4gIGxldCBsYXN0UG9zaXRpb24gPSByZWYoKTtcblxuICBjb25zdCBjb250ZW50UmVmID0gcmVmKCk7XG4gIGNvbnN0IGZyYW1lUmVmID0gcmVmKCk7XG4gIGNvbnN0IHNob3dCdXR0b25zID0gcmVmKCk7XG4gIGNvbnN0IGN1cnJlbnRTbGlkZSA9IHJlZigwKTtcblxuICBjb25zdCBnYXAgPSAxNjtcblxuICAvKipcbiAgICogTWVhc3VyZSB0aGUgY3VycmVudCBzbGlkZSBiYXNlZCBvbiB0aGUgc2Nyb2xsXG4gICAqIHBvc2l0aW9uIG9mIHRoZSBmcmFtZS4gVGhlIGN1cnJlbnQgc2xpZGUgaXNcbiAgICogdGhlIHNsaWRlIHRoYXQgaXMgY2xvc2VzdCB0byB0aGUgbGVmdCBlZGdlIG9mXG4gICAqIHRoZSBmcmFtZS5cbiAgICovXG4gIGNvbnN0IG1lYXN1cmVDdXJyZW50U2xpZGUgPSAoKSA9PiB7XG4gICAgLy8gZ2V0IGxlZnQgb2Zmc2V0cyBvZiBlYWNoIHNsaWRlXG4gICAgY29uc3Qgc2xpZGVPZmZzZXRzID0gQXJyYXkuZnJvbShjb250ZW50UmVmLnZhbHVlLmNoaWxkcmVuKS5tYXAoKHNsaWRlOiBhbnkpID0+IHNsaWRlLm9mZnNldExlZnQpO1xuXG4gICAgaWYgKHNsaWRlT2Zmc2V0cy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIC8vIGdldCB2YWx1ZSBjbG9zZXN0IHRvIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uXG4gICAgY29uc3QgY2xvc2VzdFNsaWRlT2Zmc2V0ID0gc2xpZGVPZmZzZXRzLnJlZHVjZSgocHJldiwgY3VycikgPT4ge1xuICAgICAgcmV0dXJuIE1hdGguYWJzKGN1cnIgLSBmcmFtZVJlZi52YWx1ZS5zY3JvbGxMZWZ0KSA8IE1hdGguYWJzKHByZXYgLSBmcmFtZVJlZi52YWx1ZS5zY3JvbGxMZWZ0KSA/IGN1cnIgOiBwcmV2O1xuICAgIH0pO1xuXG4gICAgLy8gc2V0IGN1cnJlbnQgc2xpZGUgdG8gaW5kZXggb2YgY2xvc2VzdCBzbGlkZVxuICAgIGN1cnJlbnRTbGlkZS52YWx1ZSA9IHNsaWRlT2Zmc2V0cy5pbmRleE9mKGNsb3Nlc3RTbGlkZU9mZnNldCk7XG4gIH07XG5cbiAgY29uc3QgbWVhc3VyZURvbSA9ICgpID0+IHtcbiAgICBjb250ZW50V2lkdGgudmFsdWUgPSBjb250ZW50UmVmLnZhbHVlLnNjcm9sbFdpZHRoO1xuICAgIGZyYW1lV2lkdGgudmFsdWUgPSBmcmFtZVJlZi52YWx1ZS5jbGllbnRXaWR0aDtcbiAgICBoYXNPdmVyZmxvdy52YWx1ZSA9IGNvbnRlbnRXaWR0aC52YWx1ZSA+IGZyYW1lV2lkdGgudmFsdWU7XG4gICAgbGFzdFBvc2l0aW9uLnZhbHVlID0gZnJhbWVSZWYudmFsdWUuc2Nyb2xsV2lkdGggLSBmcmFtZVJlZi52YWx1ZS5jbGllbnRXaWR0aDtcbiAgICBzaG93QnV0dG9ucy52YWx1ZSA9IGhhc092ZXJmbG93LnZhbHVlICYmICFwcm9wcy5pc1RvdWNoc2NyZWVuO1xuXG4gICAgbWVhc3VyZUN1cnJlbnRTbGlkZSgpO1xuICB9O1xuXG4gIC8vIFRPRE86IGRlYm91bmNlIHRoaXNcbiAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgIG1lYXN1cmVEb20oKTtcbiAgfTtcblxuICAvKipcbiAgICogU2Nyb2xscyB0byB0aGUgc2xpZGUgYXQgdGhlIGdpdmVuIGluZGV4LCBvclxuICAgKiB0byB0aGUgZmlyc3Qgb3IgbGFzdCBzbGlkZSBpZiB0aGUgZ2l2ZW4gaW5kZXhcbiAgICogaXMgb3V0IG9mIGJvdW5kcy5cbiAgICogQHBhcmFtIHNsaWRlSW5kZXggVGhlIGluZGV4IG9mIHRoZSBzbGlkZSB0byBzY3JvbGwgdG9cbiAgICovXG4gIGNvbnN0IHNjcm9sbFRvU2xpZGUgPSAoc2xpZGVJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgZnJhbWVSZWYudmFsdWUuc2Nyb2xsVG8oe1xuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgbGVmdDogY29udGVudFJlZi52YWx1ZS5jaGlsZHJlbltzbGlkZUluZGV4XS5vZmZzZXRMZWZ0LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHNob3dOZXh0U2xpZGUgPSAoKSA9PiB7XG4gICAgY29uc3QgY29udGVudFdpZHRoID0gY29udGVudFJlZi52YWx1ZS5zY3JvbGxXaWR0aDtcbiAgICBjb25zdCBjb250ZW50UmlnaHRFZGdlID0gZnJhbWVSZWYudmFsdWUuc2Nyb2xsTGVmdCArIGZyYW1lUmVmLnZhbHVlLmNsaWVudFdpZHRoO1xuXG4gICAgaWYgKGNvbnRlbnRSaWdodEVkZ2UgPiBjb250ZW50V2lkdGgpIHtcbiAgICAgIGZyYW1lUmVmLnZhbHVlLnNjcm9sbFRvKHtcbiAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICBsZWZ0OiBjb250ZW50V2lkdGgsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXNGaXJzdFNsaWRlV2l0aE9mZnNldCA9IHByb3BzLm9mZnNldFggJiYgY3VycmVudFNsaWRlLnZhbHVlID09PSAwO1xuICAgICAgY29uc3QgaXNMYXN0U2xpZGUgPSBjb250ZW50UmlnaHRFZGdlID09PSBjb250ZW50V2lkdGg7XG4gICAgICBjb25zdCBuZXh0U2xpZGUgPSBpc0xhc3RTbGlkZSA/IDAgOiBpc0ZpcnN0U2xpZGVXaXRoT2Zmc2V0ID8gMiA6IGN1cnJlbnRTbGlkZS52YWx1ZSArIDE7XG5cbiAgICAgIHNjcm9sbFRvU2xpZGUobmV4dFNsaWRlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2hvd1ByZXZpb3VzU2xpZGUgPSAoKSA9PiB7XG4gICAgY29uc3QgZmlyc3RTbGlkZSA9IHByb3BzLm9mZnNldFggPyAxIDogMDtcbiAgICBjb25zdCBpc0ZpcnN0U2xpZGUgPSBjdXJyZW50U2xpZGUudmFsdWUgLSAxID09PSBmaXJzdFNsaWRlO1xuICAgIGNvbnN0IGlzU2Vjb25kU2xpZGUgPSBjdXJyZW50U2xpZGUudmFsdWUgPD0gZmlyc3RTbGlkZTtcbiAgICBjb25zdCBwcmV2aW91c1NsaWRlID0gaXNTZWNvbmRTbGlkZVxuICAgICAgPyBjb250ZW50UmVmLnZhbHVlLmNoaWxkcmVuLmxlbmd0aCAtIDFcbiAgICAgIDogaXNGaXJzdFNsaWRlXG4gICAgICA/IDBcbiAgICAgIDogY3VycmVudFNsaWRlLnZhbHVlIC0gMTtcblxuICAgIHNjcm9sbFRvU2xpZGUocHJldmlvdXNTbGlkZSk7XG4gIH07XG5cbiAgb25Nb3VudGVkKCgpID0+IHtcbiAgICBtZWFzdXJlRG9tKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG1lYXN1cmVEb20pO1xuICB9KTtcblxuICBvblVubW91bnRlZCgoKSA9PiB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG1lYXN1cmVEb20pO1xuICB9KTtcblxuICBvblVwZGF0ZWQoKCkgPT4ge1xuICAgIG1lYXN1cmVEb20oKTtcbiAgfSk7XG5cbiAgd2F0Y2goY3VycmVudFNsaWRlLCAoKSA9PiB7XG4gICAgZW1pdCgnY2hhbmdlJywgY3VycmVudFNsaWRlLnZhbHVlKTtcbiAgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8c2VjdGlvblxuICAgIDpjbGFzcz1cIlsndGlkZS1jYXJvdXNlbCcsIENTUy5QT1NJVElPTi5SRUxBVElWRSwgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLldJRFRILkZVTExdXCJcbiAgICByZWY9XCJjYXJvdXNlbFJlZlwiXG4gID5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbQ1NTLlNDUk9MTEJBUi5PRkYsIENTUy5TTkFQLk9OLCBDU1MuT1ZFUkZMT1cuWC5TQ1JPTExdXCJcbiAgICAgIHJlZj1cImZyYW1lUmVmXCJcbiAgICAgIEBzY3JvbGw9XCJoYW5kbGVTY3JvbGxcIlxuICAgID5cbiAgICAgIDx1bFxuICAgICAgICA6Y2xhc3M9XCJbcHJvcHMuaXNUb3VjaHNjcmVlbiA/IFtDU1MuT1ZFUkZMT1cuWC5BVVRPXSA6ICcnLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuR0FQLk9ORSwgQ1NTLkxJU1RfQlVMTEVUUy5PRkZdXCJcbiAgICAgICAgcmVmPVwiY29udGVudFJlZlwiXG4gICAgICA+XG4gICAgICAgIDxsaVxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuRkxFWC5TSFJJTksuT0ZGLCBDU1MuU05BUF9BTElHTi5TVEFSVF1cIlxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGAke3Byb3BzLm9mZnNldFggLSBnYXB9cHhgIH1cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5vZmZzZXRYXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8c2xvdCAvPlxuXG4gICAgICAgIDxsaVxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuRkxFWC5TSFJJTksuT0ZGLCBDU1MuU05BUF9BTElHTi5TVEFSVF1cIlxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGAke3Byb3BzLm9mZnNldFggLSBnYXB9cHhgIH1cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5vZmZzZXRYXCJcbiAgICAgICAgLz5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgIENTUy5QT1NJVElPTi5BQlNPTFVURSxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMxLkJFVFdFRU4sXG4gICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgIENTUy5XSURUSC5GVUxMLFxuICAgICAgICBDU1MuSEVJR0hULkZVTEwsXG4gICAgICAgIENTUy5QT0lOVEVSX0VWRU5UUy5PRkYsXG4gICAgICBdXCJcbiAgICAgIHYtaWY9XCJzaG93QnV0dG9uc1wiXG4gICAgPlxuICAgICAgPFRpZGVCdXR0b25JY29uXG4gICAgICAgIDpjbGFzcz1cIltDU1MuTUFSR0lOLkxFRlQuT05FLCBDU1MuUE9JTlRFUl9FVkVOVFMuT05dXCJcbiAgICAgICAgOmljb249XCJJQ09OLkNIRVZST05fTEVGVFwiXG4gICAgICAgIDpwcmlvcml0eT1cIlBSSU9SSVRZLlFVQVRFUk5BUllcIlxuICAgICAgICBAY2xpY2s9XCJzaG93UHJldmlvdXNTbGlkZVwiXG4gICAgICAvPlxuXG4gICAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5NQVJHSU4uUklHSFQuT05FLCBDU1MuUE9JTlRFUl9FVkVOVFMuT05dXCJcbiAgICAgICAgOmljb249XCJJQ09OLkNIRVZST05fUklHSFRcIlxuICAgICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgICAgQGNsaWNrPVwic2hvd05leHRTbGlkZVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG48L3RlbXBsYXRlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgcmVmLCB3YXRjaCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgZm9ybWF0TnVtYmVyIH0gZnJvbSAnQC91dGlsaXRpZXMvZm9ybWF0JztcblxuICBjb25zdCBpbnB1dCA9IHJlZjxIVE1MSW5wdXRFbGVtZW50PigpO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgY2hlY2tlZD86IGJvb2xlYW47XG4gICAgZGF0YVRyYWNrPzogc3RyaW5nO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcbiAgICBpbnB1dElkPzogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG51bWJlcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIGRhdGFUcmFjazogJycsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGluZGV0ZXJtaW5hdGU6IGZhbHNlLFxuICAgIGlucHV0SWQ6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogdW5kZWZpbmVkLFxuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICBudW1iZXI6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgY29uc3QgY2hlY2tlZCA9IHJlZihwcm9wcy5jaGVja2VkIHx8IHByb3BzLmluZGV0ZXJtaW5hdGUpO1xuICBjb25zdCBpbmRldGVybWluYXRlID0gcmVmKHByb3BzLmluZGV0ZXJtaW5hdGUpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKCkgPT4ge1xuICAgIGNoZWNrZWQudmFsdWUgPSAhY2hlY2tlZC52YWx1ZTtcbiAgfTtcblxuICB3YXRjaChcbiAgICAoKSA9PiBwcm9wcy5pbmRldGVybWluYXRlLFxuICAgIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUgfHwgbmV3VmFsdWUgIT09IGluZGV0ZXJtaW5hdGUudmFsdWUpIHtcbiAgICAgICAgaWYgKGlucHV0LnZhbHVlKSB7XG4gICAgICAgICAgaW5kZXRlcm1pbmF0ZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgIGlucHV0LnZhbHVlLmluZGV0ZXJtaW5hdGUgPSBpbmRldGVybWluYXRlLnZhbHVlO1xuXG4gICAgICAgICAgaWYgKGluZGV0ZXJtaW5hdGUudmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGNoZWNrZWQudmFsdWUgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlucHV0LnZhbHVlLmNoZWNrZWQgPSBjaGVja2VkLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLmNoZWNrZWQsXG4gICAgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSB8fCBuZXdWYWx1ZSAhPT0gY2hlY2tlZC52YWx1ZSkge1xuICAgICAgICBjaGVja2VkLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIGRlZmluZUV4cG9zZSh7IGNoZWNrZWQsIGluZGV0ZXJtaW5hdGUgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiW1xuICAgICAgJ3RpZGUtaW5wdXQtY2hlY2tib3gnLFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICBDU1MuR0FQLkhBTEYsXG4gICAgICBDU1MuRk9OVC5TSVpFLkZPVVJURUVOLFxuICAgICAgZGlzYWJsZWQgJiYgJ2Rpc2FibGVkJyxcbiAgICAgIGRpc2FibGVkID8gQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRCA6IENTUy5DVVJTT1IuUE9JTlRFUixcbiAgICBdXCJcbiAgPlxuICAgIDxpbnB1dFxuICAgICAgOmNoZWNrZWQ9XCJjaGVja2VkXCJcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5OT05FXVwiXG4gICAgICA6ZGlzYWJsZWQ9XCJwcm9wcy5kaXNhYmxlZFwiXG4gICAgICA6bmFtZT1cInByb3BzLm5hbWVcIlxuICAgICAgcmVmPVwiaW5wdXRcIlxuICAgICAgOmlkPVwicHJvcHMuaW5wdXRJZFwiXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgIC8+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLWlucHV0LWNoZWNrYm94LWN1c3RvbScsXG4gICAgICAgIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMxLkNFTlRFUixcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLkZMRVguU0hSSU5LLk9GRixcbiAgICAgICAgQ1NTLkJPUkRFUi5GVUxMLk9ORSxcbiAgICAgICAgY2hlY2tlZCA/IFtDU1MuQk9SREVSLkNPTE9SLkhJR0gsIENTUy5CRy5TRUNPTkRBUlldIDogW0NTUy5CT1JERVIuQ09MT1IuREVGQVVMVCwgQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVF0sXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLlFVQVJURVIsXG4gICAgICAgIGNoZWNrZWQgJiYgJ2NoZWNrZWQnLFxuICAgICAgICBkaXNhYmxlZCA/IENTUy5DVVJTT1IuTk9UX0FMTE9XRUQgOiBDU1MuQ1VSU09SLlBPSU5URVIsXG4gICAgICBdXCJcbiAgICAgIEBjbGljaz1cImhhbmRsZUNsaWNrXCJcbiAgICA+XG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5GT05ULkNPTE9SLlNFQ09OREFSWV1cIlxuICAgICAgICA6aWNvbj1cImluZGV0ZXJtaW5hdGUgPyBJQ09OLlJFTU9WRSA6IElDT04uQ0hFQ0tcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICB2LWlmPVwiY2hlY2tlZCB8fCBpbmRldGVybWluYXRlXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8bGFiZWxcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuR0FQLkhBTEYsIGRpc2FibGVkID8gQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRCA6IENTUy5DVVJTT1IuUE9JTlRFUl1cIlxuICAgICAgOmZvcj1cInByb3BzLmlucHV0SWRcIlxuICAgICAgQGNsaWNrLnByZXZlbnQ9XCJjaGVja2VkID0gIWNoZWNrZWRcIlxuICAgICAgdi1pZj1cImxhYmVsXCJcbiAgICA+XG4gICAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIDpjbGFzcz1cIltDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlRdXCJcbiAgICAgICAgdi1pZj1cInByb3BzLm51bWJlclwiXG4gICAgICA+XG4gICAgICAgICh7eyBmb3JtYXROdW1iZXIocHJvcHMubnVtYmVyKSB9fSlcbiAgICAgIDwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLWlucHV0LWNoZWNrYm94LmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiB2YXIoLS10aWRlLWRpc2FibGVkKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LWNoZWNrYm94LWN1c3RvbSB7XG4gICAgd2lkdGg6IHZhcigtLXRpZGUtZm9udC0yOCk7XG4gICAgaGVpZ2h0OiB2YXIoLS10aWRlLWZvbnQtMjgpO1xuICB9XG48L3N0eWxlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgcmVmLCB3YXRjaCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgY2hlY2tlZD86IGJvb2xlYW47XG4gICAgZGF0YVRyYWNrPzogc3RyaW5nO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBpbnB1dElkPzogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgY2hlY2tlZDogZmFsc2UsXG4gICAgZGF0YVRyYWNrOiAnJyxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgaW5wdXRJZDogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiB1bmRlZmluZWQsXG4gIH0pO1xuXG4gIGNvbnN0IGNoZWNrZWQgPSByZWYocHJvcHMuY2hlY2tlZCk7XG5cbiAgd2F0Y2goXG4gICAgKCkgPT4gcHJvcHMuY2hlY2tlZCxcbiAgICAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlIHx8IG5ld1ZhbHVlICE9PSBjaGVja2VkLnZhbHVlKSB7XG4gICAgICAgIGNoZWNrZWQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1pbnB1dC1yYWRpbycsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuSEFMRiwgcHJvcHMuZGlzYWJsZWQgJiYgJ2Rpc2FibGVkJ11cIj5cbiAgICA8aW5wdXRcbiAgICAgIDpjaGVja2VkPVwiY2hlY2tlZFwiXG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuTk9ORV1cIlxuICAgICAgOmlkPVwicHJvcHMuaW5wdXRJZFwiXG4gICAgICBuYW1lPVwiXCJcbiAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICB2YWx1ZT1cIlwiXG4gICAgLz5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtaW5wdXQtcmFkaW8tY3VzdG9tJyxcbiAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzEuQ0VOVEVSLFxuICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICBDU1MuQk9SREVSLkZVTEwuT05FLFxuICAgICAgICBjaGVja2VkID8gQ1NTLkJPUkRFUi5DT0xPUi5ISUdIIDogQ1NTLkJPUkRFUi5DT0xPUi5ERUZBVUxULFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5GVUxMLFxuICAgICAgICBjaGVja2VkICYmICdjaGVja2VkJyxcbiAgICAgIF1cIlxuICAgID5cbiAgICAgIDxkaXYgOmNsYXNzPVwiWyd0aWRlLWlucHV0LXJhZGlvLWNoZWNrJywgQ1NTLkJPUkRFUi5SQURJVVMuRlVMTCwgcHJvcHMuY2hlY2tlZCAmJiBDU1MuQkcuU0VDT05EQVJZXVwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8bGFiZWxcbiAgICAgIDpjbGFzcz1cIkNTUy5GT05ULldFSUdIVC5GT1VSX0hVTkRSRURcIlxuICAgICAgOmZvcj1cInByb3BzLmlucHV0SWRcIlxuICAgID5cbiAgICAgIHt7IHByb3BzLmxhYmVsIH19XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS1pbnB1dC1yYWRpby5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogdmFyKC0tdGlkZS1kaXNhYmxlZCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1yYWRpby1jdXN0b20ge1xuICAgIHdpZHRoOiB2YXIoLS10aWRlLWZvbnQtMjgpO1xuICAgIGhlaWdodDogdmFyKC0tdGlkZS1mb250LTI4KTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXJhZGlvLWNoZWNrIHtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gIH1cbjwvc3R5bGU+XG4iLCJpbXBvcnQgdHlwZSB7IFJlZiB9IGZyb20gJ3Z1ZSc7XG5cbmltcG9ydCB0eXBlIHsgUmFuZ2VEYXRhIH0gZnJvbSAnQC90eXBlcy9GYWNldFJhbmdlJztcbmltcG9ydCB0eXBlIHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnQC90eXBlcy9TZWxlY3QnO1xuaW1wb3J0IHR5cGUgeyBTdHJpbmdJbnB1dCB9IGZyb20gJ0AvdHlwZXMvRm9ybSc7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25FcnJvciwgVmFsaWRhdGlvbkxlbmd0aCwgVmFsaWRhdGlvblJlc3VsdCwgVmFsaWRhdG9yIH0gZnJvbSAnQC90eXBlcy9WYWxpZGF0aW9uJztcblxuaW1wb3J0IHsgcHJpY2VUb051bWJlciB9IGZyb20gJ0AvdXRpbGl0aWVzL2Zvcm1hdCc7XG5cbmV4cG9ydCBjb25zdCBlcnJvck1lc3NhZ2VEZWZhdWx0ID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHZhbHVlLic7XG5cbmV4cG9ydCBjb25zdCBub0Vycm9yID0ge1xuICBtZXNzYWdlOiAnJyxcbiAgdmFsaWQ6IHRydWUsXG59IGFzIFJlYWRvbmx5PFZhbGlkYXRpb25SZXN1bHQ+O1xuXG5leHBvcnQgY29uc3QgY2hlY2tGb3JtYXQgPSAoZm9ybWF0OiBSZWdFeHApID0+IHtcbiAgcmV0dXJuICh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvblJlc3VsdCA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IG5vRXJyb3I7XG5cbiAgICBpZiAoIXZhbHVlLnRyaW0oKS5tYXRjaChmb3JtYXQpKSB7XG4gICAgICByZXN1bHQgPSB7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZURlZmF1bHQsXG4gICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFcnJvck1lc3NhZ2UgPSAoZXJyb3JGcm9tUHJvcHM6IFZhbGlkYXRpb25FcnJvciwgZXJyb3JGcm9tUmVmOiBWYWxpZGF0aW9uRXJyb3IpID0+IHtcbiAgLy8gZXJyb3IgaW4gcHJvcHMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHZhbGlkYXRpb24gZXJyb3JcbiAgaWYgKHR5cGVvZiBlcnJvckZyb21Qcm9wcyA9PT0gJ3N0cmluZycgJiYgZXJyb3JGcm9tUHJvcHMubGVuZ3RoID4gMCkgcmV0dXJuIGVycm9yRnJvbVByb3BzO1xuXG4gIHJldHVybiB0eXBlb2YgZXJyb3JGcm9tUmVmID09PSAnc3RyaW5nJyAmJiBlcnJvckZyb21SZWYubGVuZ3RoID4gMCA/IGVycm9yRnJvbVJlZiA6IGVycm9yTWVzc2FnZURlZmF1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmllbGRIYXNFcnJvciA9IChlcnJvckZyb21Qcm9wczogVmFsaWRhdGlvbkVycm9yLCBlcnJvckZyb21SZWY6IFZhbGlkYXRpb25FcnJvcikgPT5cbiAgZXJyb3JGcm9tUHJvcHMgIT09IGZhbHNlIHx8IGVycm9yRnJvbVJlZiAhPT0gZmFsc2U7XG5cbmV4cG9ydCBjb25zdCBnZXRGaWVsZExlbmd0aElzVmFsaWQgPSAoeyBtYXhsZW5ndGgsIG1pbmxlbmd0aCwgcmVxdWlyZWQsIHZhbHVlIH06IFZhbGlkYXRpb25MZW5ndGgpID0+IHtcbiAgY29uc3QgaXNFbXB0eUFuZFVucmVxdWlyZWQgPSB2YWx1ZS5sZW5ndGggPT09IDAgJiYgIXJlcXVpcmVkO1xuICBjb25zdCBpc1Rvb0xvbmcgPSBtYXhsZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4bGVuZ3RoO1xuICBjb25zdCBpc1Rvb1Nob3J0ID0gIWlzRW1wdHlBbmRVbnJlcXVpcmVkICYmIG1pbmxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5sZW5ndGg7XG5cbiAgcmV0dXJuICFpc1Rvb1Nob3J0ICYmICFpc1Rvb0xvbmc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWF4UmFuZ2VJc1ZhbGlkID0gKHsgbWluIH06IFBpY2s8UmFuZ2VEYXRhLCAnbWluJz4sIHR5cGU/OiAncHJpY2UnKSA9PiB7XG4gIHJldHVybiAodmFsdWU6IHN0cmluZyk6IFZhbGlkYXRpb25SZXN1bHQgPT4ge1xuICAgIGxldCBuZXdNYXg6IG51bWJlciB8IG51bGwgPSB0eXBlID09PSAncHJpY2UnID8gcHJpY2VUb051bWJlcih2YWx1ZSkgOiBOdW1iZXIodmFsdWUpO1xuICAgIG5ld01heCA9ICFpc05hTihuZXdNYXgpID8gbmV3TWF4IDogbnVsbDtcbiAgICBpZiAobWluICYmIG5ld01heCkge1xuICAgICAgaWYgKG5ld01heCA+PSBtaW4pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbWVzc2FnZTogYE11c3QgYmUgZ3JlYXRlciB0aGFuIG1pbmAsXG4gICAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbm9FcnJvcjtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWluUmFuZ2VJc1ZhbGlkID0gKHsgbWF4IH06IFBpY2s8UmFuZ2VEYXRhLCAnbWF4Jz4sIHR5cGU/OiAncHJpY2UnKSA9PiB7XG4gIHJldHVybiAodmFsdWU6IHN0cmluZyk6IFZhbGlkYXRpb25SZXN1bHQgPT4ge1xuICAgIGxldCBuZXdNaW46IG51bWJlciB8IG51bGwgPSB0eXBlID09PSAncHJpY2UnID8gcHJpY2VUb051bWJlcih2YWx1ZSkgOiBOdW1iZXIodmFsdWUpO1xuICAgIG5ld01pbiA9ICFpc05hTihuZXdNaW4pID8gbmV3TWluIDogbnVsbDtcbiAgICBpZiAobWF4ICYmIG5ld01pbikge1xuICAgICAgaWYgKG5ld01pbiA8PSBtYXgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbWVzc2FnZTogYE11c3QgYmUgbGVzcyB0aGFuIG1heGAsXG4gICAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbm9FcnJvcjtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0T3B0aW9uc0Zyb21TdHJpbmdzID0gKHN0cmluZ3M6IHN0cmluZ1tdKSA9PlxuICBzdHJpbmdzLm1hcChcbiAgICAob3B0aW9uKSA9PlxuICAgICAgKHtcbiAgICAgICAgbGFiZWw6IG9wdGlvbixcbiAgICAgICAgdmFsdWU6IG9wdGlvbixcbiAgICAgIH0gYXMgU2VsZWN0T3B0aW9uKVxuICApO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlRmllbGRWYWxpZGF0aW9uID0gKHtcbiAgZXJyb3IsXG4gIGVycm9yRnJvbVByb3BzLFxuICBtYXhsZW5ndGgsXG4gIG1pbmxlbmd0aCxcbiAgcmVxdWlyZWQgPSBmYWxzZSxcbiAgdmFsaWRhdG9ycyxcbiAgdmFsdWUsXG59OiB7XG4gIGVycm9yOiBSZWY8VmFsaWRhdGlvbkVycm9yPjtcbiAgZXJyb3JGcm9tUHJvcHM6IFZhbGlkYXRpb25FcnJvcjtcbiAgbWF4bGVuZ3RoPzogbnVtYmVyO1xuICBtaW5sZW5ndGg/OiBudW1iZXI7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgdmFsaWRhdG9ycz86IFZhbGlkYXRvcltdO1xuICB2YWx1ZTogUmVmPHN0cmluZz47XG59KSA9PiB7XG4gIC8vIGVycm9yIGluIHByb3BzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB2YWxpZGF0aW9uIGVycm9yXG5cbiAgZXJyb3IudmFsdWUgPSBlcnJvckZyb21Qcm9wcyA/IGVycm9yRnJvbVByb3BzIDogZmFsc2U7XG5cbiAgaWYgKCFlcnJvci52YWx1ZSAmJiB2YWxpZGF0b3JzKSB7XG4gICAgY29uc3QgdmFsaWRhdGlvbiA9IHZhbGlkYXRlUHJvcGVydHkodmFsdWUudmFsdWUsIHZhbGlkYXRvcnMpO1xuXG4gICAgaWYgKCF2YWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgICBlcnJvci52YWx1ZSA9IHZhbGlkYXRpb24ubWVzc2FnZTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWVycm9yLnZhbHVlICYmIChtYXhsZW5ndGggfHwgbWlubGVuZ3RoKSkge1xuICAgIGNvbnN0IGxlbmd0aFZhbGlkYXRpb24gPSB2YWxpZGF0ZUxlbmd0aCh7XG4gICAgICBtYXhsZW5ndGgsXG4gICAgICBtaW5sZW5ndGgsXG4gICAgICByZXF1aXJlZCxcbiAgICAgIHZhbHVlOiB2YWx1ZS52YWx1ZSxcbiAgICB9KTtcblxuICAgIGlmICghbGVuZ3RoVmFsaWRhdGlvbi52YWxpZCkge1xuICAgICAgZXJyb3IudmFsdWUgPSBsZW5ndGhWYWxpZGF0aW9uLm1lc3NhZ2U7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVGaWVsZHNGcm9tUmVmcyhmaWVsZHM6IHsgW2tleTogc3RyaW5nXTogUmVmPFN0cmluZ0lucHV0IHwgbnVsbD4gfSkge1xuICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gIGZvciAoY29uc3Qga2V5IGluIGZpZWxkcykge1xuICAgIGlmIChmaWVsZHNba2V5XS52YWx1ZT8ucmVxdWlyZWQpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZmllbGRzW2tleV0udmFsdWU/LnZhbHVlO1xuICAgICAgdmFsaWQgPSB2YWxpZCAmJiAhIXZhbHVlICYmIHZhbHVlLnRyaW0oKSAhPT0gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3IgPSBmaWVsZHNba2V5XS52YWx1ZT8uZXJyb3I7XG4gICAgdmFsaWQgPSB2YWxpZCAmJiAhZXJyb3I7XG4gIH1cblxuICByZXR1cm4gdmFsaWQ7XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUxlbmd0aCA9ICh7XG4gIG1heGxlbmd0aCxcbiAgbWlubGVuZ3RoLFxuICByZXF1aXJlZCA9IGZhbHNlLFxuICB2YWx1ZSxcbn06IFZhbGlkYXRpb25MZW5ndGgpOiBWYWxpZGF0aW9uUmVzdWx0ID0+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgbWVzc2FnZTogJycsXG4gICAgdmFsaWQ6IHRydWUsXG4gIH07XG5cbiAgcmVzcG9uc2UudmFsaWQgPSBnZXRGaWVsZExlbmd0aElzVmFsaWQoe1xuICAgIG1heGxlbmd0aCxcbiAgICBtaW5sZW5ndGgsXG4gICAgcmVxdWlyZWQsXG4gICAgdmFsdWUsXG4gIH0pO1xuXG4gIGlmIChyZXNwb25zZS52YWxpZCkgcmV0dXJuIHJlc3BvbnNlO1xuXG4gIHJlc3BvbnNlLm1lc3NhZ2UgPSBlcnJvck1lc3NhZ2VEZWZhdWx0O1xuXG4gIGlmIChtYXhsZW5ndGggJiYgbWlubGVuZ3RoKSB7XG4gICAgcmVzcG9uc2UubWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSB2YWx1ZSBiZXR3ZWVuICR7bWlubGVuZ3RofSBhbmQgJHttYXhsZW5ndGh9IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLmA7XG4gIH0gZWxzZSBpZiAobWF4bGVuZ3RoKSB7XG4gICAgcmVzcG9uc2UubWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSB2YWx1ZSBubyBtb3JlIHRoYW4gJHttYXhsZW5ndGh9IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLmA7XG4gIH0gZWxzZSBpZiAobWlubGVuZ3RoKSB7XG4gICAgcmVzcG9uc2UubWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSB2YWx1ZSBubyBsZXNzIHRoYW4gJHttaW5sZW5ndGh9IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLmA7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0eSh2YWx1ZTogc3RyaW5nLCB2YWxpZGF0b3JzOiAoKHZhbHVlOiBzdHJpbmcpID0+IFZhbGlkYXRpb25SZXN1bHQpW10pOiBWYWxpZGF0aW9uUmVzdWx0IHtcbiAgZm9yIChjb25zdCB2YWxpZGF0b3Igb2YgdmFsaWRhdG9ycykge1xuICAgIGNvbnN0IHZhbGlkYXRpb24gPSB2YWxpZGF0b3IodmFsdWUpO1xuICAgIGlmICghdmFsaWRhdGlvbi52YWxpZCkge1xuICAgICAgcmV0dXJuIHZhbGlkYXRpb247XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtZXNzYWdlOiAnJyxcbiAgICB2YWxpZDogdHJ1ZSxcbiAgfTtcbn1cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IFNlbGVjdEZpZWxkIH0gZnJvbSAnQC90eXBlcy9GaWVsZCc7XG4gIGltcG9ydCB0eXBlIHsgU2VsZWN0T3B0aW9uLCBTZWxlY3RPcHRpb25Hcm91cCB9IGZyb20gJ0AvdHlwZXMvU2VsZWN0JztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFNJWkUgfSBmcm9tICdAL3R5cGVzL1NpemUnO1xuICBpbXBvcnQgeyBnZXRGaWVsZEhhc0Vycm9yLCBnZXRFcnJvck1lc3NhZ2UgfSBmcm9tICdAL3V0aWxpdGllcy92YWxpZGF0aW9uJztcblxuICBpbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBTZWxlY3RGaWVsZCB7XG4gICAgaW5wdXRJZD86IHN0cmluZztcbiAgICBzdXBwb3J0aW5nVGV4dD86IHN0cmluZztcbiAgfVxuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGVycm9yOiBmYWxzZSxcbiAgICBpbnB1dElkOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6IHVuZGVmaW5lZCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgc3VwcG9ydGluZ1RleHQ6IHVuZGVmaW5lZCxcbiAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCBlcnJvciA9IHJlZihwcm9wcy5lcnJvcik7XG4gIGNvbnN0IGhhc0ZvY3VzID0gcmVmKGZhbHNlKTtcbiAgY29uc3QgaW5wdXQgPSByZWY8SFRNTFNlbGVjdEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgcmVxdWlyZWQgPSByZWYocHJvcHMucmVxdWlyZWQpO1xuICBjb25zdCB2YWx1ZSA9IHJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHByb3BzLnZhbHVlKTtcblxuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBjb21wdXRlZCgoKSA9PiBnZXRFcnJvck1lc3NhZ2UocHJvcHMuZXJyb3IsIGVycm9yLnZhbHVlKSk7XG4gIGNvbnN0IGZvcm1hdHRlZExhYmVsID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLnJlcXVpcmVkID8gYCR7cHJvcHMubGFiZWx9ICpgIDogcHJvcHMubGFiZWwpKTtcbiAgY29uc3QgaGFzRXJyb3IgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgJiYgIXZhbHVlLnZhbHVlKSB8fCBnZXRGaWVsZEhhc0Vycm9yKGVycm9yLnZhbHVlLCBwcm9wcy5lcnJvcikpO1xuICBjb25zdCBoYXNNaW5pbGFiZWwgPSBjb21wdXRlZCgoKSA9PiBoYXNGb2N1cy52YWx1ZSB8fCAhaXNFbXB0eS52YWx1ZSk7XG4gIGNvbnN0IGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB2YWx1ZS52YWx1ZSA9PT0gdW5kZWZpbmVkKTtcblxuICBjb25zdCBleHBhbmRPcHRpb25zID0gKCkgPT4ge1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ21vdXNlZG93bicpO1xuICAgIGlucHV0Py52YWx1ZT8uZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRm9jdXMgPSAoKSA9PiB7XG4gICAgaGFzRm9jdXMudmFsdWUgPSB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzT3V0ID0gKCkgPT4ge1xuICAgIGhhc0ZvY3VzLnZhbHVlID0gZmFsc2U7XG4gIH07XG5cbiAgd2F0Y2goXG4gICAgKCkgPT4gcHJvcHMudmFsdWUsXG4gICAgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSB8fCBuZXdWYWx1ZSAhPT0gdmFsdWUudmFsdWUpIHtcbiAgICAgICAgdmFsdWUudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgZGVmaW5lRXhwb3NlKHsgZXJyb3IsIHZhbHVlIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdlxuICAgIDpjbGFzcz1cIltcbiAgICAgICd0aWRlLWlucHV0LXNlbGVjdCcsXG4gICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTixcbiAgICAgIENTUy5HQVAuUVVBUlRFUixcbiAgICAgIGRpc2FibGVkICYmICdkaXNhYmxlZCcsXG4gICAgICBoYXNFcnJvciAmJiAnZXJyb3InLFxuICAgIF1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS1pbnB1dC1ib3JkZXInLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgIENTUy5HQVAuSEFMRixcbiAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuSEFMRixcbiAgICAgICAgcHJvcHMuZGlzYWJsZWQgPyBDU1MuQ1VSU09SLk5PVF9BTExPV0VEIDogJycsXG4gICAgICAgIENTUy5PVkVSRkxPVy5YWS5ISURERU4sXG4gICAgICBdXCJcbiAgICAgIEBjbGljaz1cImV4cGFuZE9wdGlvbnNcIlxuICAgID5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sIENTUy5XSURUSC5GVUxMXVwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgICBoYXNNaW5pbGFiZWwgPyBbJ21pbmlsYWJlbCcsIENTUy5GT05ULlNJWkUuVFdFTFZFXSA6IENTUy5GT05ULlNJWkUuU0lYVEVFTixcbiAgICAgICAgICAgIENTUy5QT1NJVElPTi5BQlNPTFVURSxcbiAgICAgICAgICAgIENTUy5QT1NJVElPTklORy5MRUZULFxuICAgICAgICAgICAgQ1NTLk1BUkdJTi5UT1AuSEFMRixcbiAgICAgICAgICAgIENTUy5NQVJHSU4uTEVGVC5PTkUsXG4gICAgICAgICAgICAhaGFzRXJyb3IgJiYgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5ULFxuICAgICAgICAgICAgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCxcbiAgICAgICAgICBdXCJcbiAgICAgICAgICA6Zm9yPVwicHJvcHMuaW5wdXRJZFwiXG4gICAgICAgICAgdi1pZj1cImxhYmVsXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHRlZExhYmVsIH19XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuUEFERElORy5CT1RUT00uSEFMRiwgQ1NTLlBBRERJTkcuWC5PTkUsIENTUy5XSURUSC5GVUxMLCBkaXNhYmxlZCAmJiBDU1MuQ1VSU09SLk5PVF9BTExPV0VEXVwiXG4gICAgICAgICAgOmRpc2FibGVkPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIDpuYW1lPVwibmFtZVwiXG4gICAgICAgICAgcmVmPVwiaW5wdXRcIlxuICAgICAgICAgIDpyZXF1aXJlZD1cInJlcXVpcmVkXCJcbiAgICAgICAgICBAZm9jdXM9XCJoYW5kbGVGb2N1c1wiXG4gICAgICAgICAgQGZvY3Vzb3V0PVwiaGFuZGxlRm9jdXNPdXRcIlxuICAgICAgICAgIDppZD1cInByb3BzLmlucHV0SWRcIlxuICAgICAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCJvcHRncm91cCBpbiBwcm9wcy5vcHRncm91cHNcIj5cbiAgICAgICAgICAgIDxvcHRncm91cFxuICAgICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLldJRFRILkZVTEwsIENTUy5CRy5TVVJGQUNFLkRFRkFVTFRdXCJcbiAgICAgICAgICAgICAgOmtleT1cIihvcHRncm91cCBhcyBTZWxlY3RPcHRpb25Hcm91cCkubGFiZWxcIlxuICAgICAgICAgICAgICA6bGFiZWw9XCIob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uR3JvdXApLmxhYmVsXCJcbiAgICAgICAgICAgICAgdi1pZj1cIihvcHRncm91cCBhcyBTZWxlY3RPcHRpb25Hcm91cCkub3B0aW9uc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLldJRFRILkZVTEwsIENTUy5CRy5TVVJGQUNFLkRFRkFVTFRdXCJcbiAgICAgICAgICAgICAgICA6a2V5PVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgICAgIHYtZm9yPVwib3B0aW9uIGluIChvcHRncm91cCBhcyBTZWxlY3RPcHRpb25Hcm91cCkub3B0aW9uc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICA8L29wdGdyb3VwPlxuXG4gICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTCwgQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVF1cIlxuICAgICAgICAgICAgICA6a2V5PVwiKG9wdGdyb3VwIGFzIFNlbGVjdE9wdGlvbikudmFsdWVcIlxuICAgICAgICAgICAgICA6c2VsZWN0ZWQ9XCJ2YWx1ZSA9PT0gKG9wdGdyb3VwIGFzIFNlbGVjdE9wdGlvbikudmFsdWUgPyB0cnVlIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgOnZhbHVlPVwiKG9wdGdyb3VwIGFzIFNlbGVjdE9wdGlvbikudmFsdWVcIlxuICAgICAgICAgICAgICB2LWVsc2VcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgKG9wdGdyb3VwIGFzIFNlbGVjdE9wdGlvbikubGFiZWwgfX1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDwvdGVtcGxhdGU+XG5cbiAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLldJRFRILkZVTEwsIENTUy5CRy5TVVJGQUNFLkRFRkFVTFRdXCJcbiAgICAgICAgICAgIDprZXk9XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgOnNlbGVjdGVkPVwidmFsdWUgPT09IG9wdGlvbi52YWx1ZSA/IHRydWUgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgOnZhbHVlPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgIHYtZm9yPVwib3B0aW9uIGluIG9wdGlvbnNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5QT1NJVElPTi5BQlNPTFVURSwgQ1NTLlBPU0lUSU9OSU5HLlJJR0hULCBDU1MuTUFSR0lOLlJJR0hULk9ORSwgQ1NTLlBPSU5URVJfRVZFTlRTLk9GRl1cIlxuICAgICAgICA6aWNvbj1cIklDT04uRVhQQU5EX01PUkVcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5NQVJHSU4uTEVGVC5PTkVdXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5zdXBwb3J0aW5nVGV4dCB8fCBoYXNFcnJvclwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltdXCJcbiAgICAgICAgOmljb249XCJJQ09OLkVSUk9SXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgdi1pZj1cImhhc0Vycm9yXCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5GT05ULlNJWkUuVFdFTFZFLCBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVEXVwiPlxuICAgICAgICB7eyBoYXNFcnJvciA/IGVycm9yTWVzc2FnZSA6IHByb3BzLnN1cHBvcnRpbmdUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICBzZWxlY3Qge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICBsYWJlbCB7XG4gICAgaGVpZ2h0OiAxLjE4NzVyZW07XG4gICAgdHJhbnNpdGlvbjogZm9udC1zaXplIHZhcigtLXRpZGUtYW5pbWF0ZSksIHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgbGFiZWw6bm90KC5taW5pbGFiZWwpIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCBjYWxjKDkgLyAxNiAqIDFyZW0pKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXNlbGVjdC5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogdmFyKC0tdGlkZS1kaXNhYmxlZCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZXJyb3IgLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLWJvcmRlcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXNlbGVjdC5lcnJvcjpmb2N1cy13aXRoaW4gLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLWJvcmRlcik7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3Q6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGg6IHZhcigtLXRpZGUtYm9yZGVyLXdpZHRoLTIpO1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLXRpZGUtc3VyZmFjZS1ib3JkZXItaGlnaCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0xKTtcbiAgICBvdXRsaW5lOiB2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpIHNvbGlkIHZhcigtLXRpZGUtYm9yZGVyKTtcbiAgICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpICogLTEpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtc2VsZWN0LmVycm9yIHtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1lcnJvci1vbi1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXNlbGVjdC5lcnJvciBvcHRpb24ge1xuICAgIGNvbG9yOiB2YXIoLS10aWRlLW9uLXN1cmZhY2UpO1xuICB9XG5cbiAgc2VsZWN0IHtcbiAgICBwYWRkaW5nLXRvcDogMjdweDtcbiAgfVxuPC9zdHlsZT5cbiIsImV4cG9ydCBjb25zdCBURVhUX0lOUFVUX1RZUEUgPSB7XG4gIERBVEU6ICdkYXRlJyxcbiAgREFURVRJTUVfTE9DQUw6ICdkYXRldGltZS1sb2NhbCcsXG4gIEVNQUlMOiAnZW1haWwnLFxuICBNT05USDogJ21vbnRoJyxcbiAgTlVNQkVSOiAnbnVtYmVyJyxcbiAgUEFTU1dPUkQ6ICdwYXNzd29yZCcsXG4gIFNFQVJDSDogJ3NlYXJjaCcsXG4gIFRFTDogJ3RlbCcsXG4gIFRFWFQ6ICd0ZXh0JyxcbiAgVElNRTogJ3RpbWUnLFxuICBVUkw6ICd1cmwnLFxuICBXRUVLOiAnd2VlaycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBUZXh0SW5wdXRUeXBlID0gKHR5cGVvZiBURVhUX0lOUFVUX1RZUEUpW2tleW9mIHR5cGVvZiBURVhUX0lOUFVUX1RZUEVdO1xuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgY29tcHV0ZWQsIHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgRm9ybVZhbHVlVHJhbnNmb3JtZXIgfSBmcm9tICdAL3R5cGVzL0Zvcm0nO1xuICBpbXBvcnQgdHlwZSB7IEljb24gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgdHlwZSB7IFRleHRJbnB1dFR5cGUgfSBmcm9tICdAL3R5cGVzL1RleHRJbnB1dCc7XG4gIGltcG9ydCB0eXBlIHsgVmFsaWRhdGlvbkVycm9yLCBWYWxpZGF0b3IgfSBmcm9tICdAL3R5cGVzL1ZhbGlkYXRpb24nO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgU0laRSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG4gIGltcG9ydCB7IFRFWFRfSU5QVVRfVFlQRSB9IGZyb20gJ0AvdHlwZXMvVGV4dElucHV0JztcbiAgaW1wb3J0IHsgZ2V0RXJyb3JNZXNzYWdlLCBnZXRGaWVsZEhhc0Vycm9yLCBoYW5kbGVGaWVsZFZhbGlkYXRpb24gfSBmcm9tICdAL3V0aWxpdGllcy92YWxpZGF0aW9uJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGF1dG9jb21wbGV0ZT86IGJvb2xlYW47XG4gICAgZGF0YVRyYWNrPzogc3RyaW5nO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBlcnJvcj86IFZhbGlkYXRpb25FcnJvcjtcbiAgICBoYXNDbGVhcj86IGJvb2xlYW47XG4gICAgaWNvbkxlYWRpbmc/OiBJY29uO1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBtYXhsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbWlubGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIHN1ZmZpeD86IHN0cmluZztcbiAgICBzdXBwb3J0aW5nVGV4dD86IHN0cmluZztcbiAgICB0cmFuc2Zvcm1WYWx1ZT86IEZvcm1WYWx1ZVRyYW5zZm9ybWVyO1xuICAgIHR5cGU/OiBUZXh0SW5wdXRUeXBlO1xuICAgIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JbXTtcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGF1dG9jb21wbGV0ZTogZmFsc2UsXG4gICAgZGF0YVRyYWNrOiAnJyxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgZXJyb3I6IGZhbHNlLFxuICAgIGhhc0NsZWFyOiBmYWxzZSxcbiAgICBpY29uTGVhZGluZzogdW5kZWZpbmVkLFxuICAgIGlucHV0SWQ6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogdW5kZWZpbmVkLFxuICAgIG1heGxlbmd0aDogdW5kZWZpbmVkLFxuICAgIG1pbmxlbmd0aDogdW5kZWZpbmVkLFxuICAgIHByZWZpeDogdW5kZWZpbmVkLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBzdWZmaXg6IHVuZGVmaW5lZCxcbiAgICBzdXBwb3J0aW5nVGV4dDogdW5kZWZpbmVkLFxuICAgIHRyYW5zZm9ybVZhbHVlOiB1bmRlZmluZWQsXG4gICAgdHlwZTogVEVYVF9JTlBVVF9UWVBFLlRFWFQsXG4gICAgdmFsaWRhdG9yczogdW5kZWZpbmVkLFxuICAgIHZhbHVlOiAnJyxcbiAgfSk7XG5cbiAgY29uc3QgZXJyb3IgPSByZWYocHJvcHMuZXJyb3IpO1xuICBjb25zdCBoYXNGb2N1cyA9IHJlZihmYWxzZSk7XG4gIGNvbnN0IGlucHV0ID0gcmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3Qgc2hvd1Bhc3N3b3JkID0gcmVmKGZhbHNlKTtcbiAgY29uc3QgdmFsdWUgPSByZWYocHJvcHMudmFsdWUpO1xuXG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGNvbXB1dGVkKCgpID0+IGdldEVycm9yTWVzc2FnZShwcm9wcy5lcnJvciwgZXJyb3IudmFsdWUpKTtcbiAgY29uc3QgZm9ybWF0dGVkTGFiZWwgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgJiYgcHJvcHMubGFiZWwgPyBgJHtwcm9wcy5sYWJlbH0gKmAgOiBwcm9wcy5sYWJlbCkpO1xuICBjb25zdCBoYXNDbGVhciA9IGNvbXB1dGVkKCgpID0+IHByb3BzLmhhc0NsZWFyICYmIHZhbHVlLnZhbHVlKTtcbiAgY29uc3QgaGFzRXJyb3IgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgJiYgIXZhbHVlLnZhbHVlKSB8fCBnZXRGaWVsZEhhc0Vycm9yKGVycm9yLnZhbHVlLCBwcm9wcy5lcnJvcikpO1xuICBjb25zdCBoYXNNaW5pbGFiZWwgPSBjb21wdXRlZCgoKSA9PiBoYXNGb2N1cy52YWx1ZSB8fCAhaXNFbXB0eS52YWx1ZSk7XG4gIGNvbnN0IGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB2YWx1ZS52YWx1ZSA9PT0gJycpO1xuICBjb25zdCB0eXBlID0gY29tcHV0ZWQoKCkgPT5cbiAgICBwcm9wcy50eXBlID09PSBURVhUX0lOUFVUX1RZUEUuUEFTU1dPUkQgJiYgc2hvd1Bhc3N3b3JkLnZhbHVlID09PSB0cnVlID8gVEVYVF9JTlBVVF9UWVBFLlRFWFQgOiBwcm9wcy50eXBlXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlQ2xlYXIgPSAoKSA9PiB7XG4gICAgdmFsdWUudmFsdWUgPSAnJztcbiAgICBpbnB1dC52YWx1ZT8uZm9jdXMoKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGb2N1cyA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IHRydWU7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRm9jdXNPdXQgPSAoKSA9PiB7XG4gICAgaGFzRm9jdXMudmFsdWUgPSBmYWxzZTtcbiAgICBoYW5kbGVWYWxpZGF0aW9uKCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlSW5wdXQgPSAoKSA9PiB7XG4gICAgaWYgKHByb3BzLnRyYW5zZm9ybVZhbHVlKSB7XG4gICAgICBjb25zdCBkaWdpdHMgPSB2YWx1ZS52YWx1ZS5tYXRjaCgvXFxkL2cpPy5qb2luKCcnKSB8fCB1bmRlZmluZWQ7XG5cbiAgICAgIHZhbHVlLnZhbHVlID0gZGlnaXRzID8gcHJvcHMudHJhbnNmb3JtVmFsdWUoZGlnaXRzKSA6ICcnO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVWYWxpZGF0aW9uID0gKCkgPT4ge1xuICAgIGhhbmRsZUZpZWxkVmFsaWRhdGlvbih7XG4gICAgICBlcnJvcixcbiAgICAgIGVycm9yRnJvbVByb3BzOiBwcm9wcy5lcnJvcixcbiAgICAgIG1heGxlbmd0aDogcHJvcHMubWF4bGVuZ3RoLFxuICAgICAgbWlubGVuZ3RoOiBwcm9wcy5taW5sZW5ndGgsXG4gICAgICByZXF1aXJlZDogcHJvcHMucmVxdWlyZWQsXG4gICAgICB2YWxpZGF0b3JzOiBwcm9wcy52YWxpZGF0b3JzLFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlVmFsdWUgPSAobmV3VmFsdWU6IHN0cmluZykgPT4ge1xuICAgIHZhbHVlLnZhbHVlID0gbmV3VmFsdWU7XG4gIH07XG5cbiAgd2F0Y2goXG4gICAgKCkgPT4gcHJvcHMudmFsdWUsXG4gICAgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSB8fCBuZXdWYWx1ZSAhPT0gdmFsdWUudmFsdWUpIHtcbiAgICAgICAgdmFsdWUudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgZGVmaW5lRXhwb3NlKHsgZXJyb3IsIHVwZGF0ZVZhbHVlLCB2YWx1ZSB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXZcbiAgICA6Y2xhc3M9XCJbXG4gICAgICAndGlkZS1pbnB1dC10ZXh0JyxcbiAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OLFxuICAgICAgQ1NTLkdBUC5RVUFSVEVSLFxuICAgICAgZGlzYWJsZWQgJiYgJ2Rpc2FibGVkJyxcbiAgICAgIGhhc0Vycm9yICYmICdlcnJvcicsXG4gICAgXVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLWlucHV0LWJvcmRlcicsXG4gICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgIENTUy5HQVAuSEFMRixcbiAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5IQUxGLFxuICAgICAgICBoYXNDbGVhciA/IFtDU1MuUEFERElORy5SSUdIVC5IQUxGLCBDU1MuUEFERElORy5MRUZULk9ORV0gOiBbQ1NTLlBBRERJTkcuWC5PTkVdLFxuICAgICAgICBDU1MuUEFERElORy5ZLkhBTEYsXG4gICAgICAgIHByb3BzLmRpc2FibGVkID8gQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRCA6IENTUy5DVVJTT1IuVEVYVCxcbiAgICAgIF1cIlxuICAgID5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6aWNvbj1cInByb3BzLmljb25MZWFkaW5nXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgdi1pZj1cInByb3BzLmljb25MZWFkaW5nXCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuUVVBUlRFUiwgQ1NTLldJRFRILkZVTExdXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICA6Y2xhc3M9XCJbJ3RpZGUtaW5wdXQtdGV4dC1wcmVmaXgnLCAhaGFzRXJyb3IgJiYgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5ULCBoYXNNaW5pbGFiZWwgPyAnJyA6ICdvZmZzZXQnXVwiXG4gICAgICAgICAgdi1pZj1cInByb3BzLnByZWZpeFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBwcm9wcy5wcmVmaXggfX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OLCBDU1MuV0lEVEguRlVMTF1cIlxuICAgICAgICAgIEBjbGljay5wcmV2ZW50PVwiaW5wdXQ/LmZvY3VzKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgICAgIGhhc01pbmlsYWJlbCA/IFsnbWluaWxhYmVsJywgQ1NTLkZPTlQuU0laRS5UV0VMVkVdIDogQ1NTLkZPTlQuU0laRS5TSVhURUVOLFxuICAgICAgICAgICAgICAhaGFzRXJyb3IgJiYgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5ULFxuICAgICAgICAgICAgICBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVELFxuICAgICAgICAgICAgICBDU1MuQ1VSU09SLlRFWFQsXG4gICAgICAgICAgICBdXCJcbiAgICAgICAgICAgIDpmb3I9XCJwcm9wcy5pbnB1dElkXCJcbiAgICAgICAgICAgIHYtaWY9XCJsYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZm9ybWF0dGVkTGFiZWwgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICA6YXV0b2NvbXBsZXRlPVwiYXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTCwgZGlzYWJsZWQgJiYgQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRF1cIlxuICAgICAgICAgICAgOmRhdGEtdHJhY2s9XCJwcm9wcy5kYXRhVHJhY2tcIlxuICAgICAgICAgICAgOmRpc2FibGVkPVwicHJvcHMuZGlzYWJsZWRcIlxuICAgICAgICAgICAgOm1heGxlbmd0aD1cInByb3BzLm1heGxlbmd0aFwiXG4gICAgICAgICAgICA6bWlubGVuZ3RoPVwicHJvcHMubWlubGVuZ3RoXCJcbiAgICAgICAgICAgIDpuYW1lPVwicHJvcHMubmFtZVwiXG4gICAgICAgICAgICByZWY9XCJpbnB1dFwiXG4gICAgICAgICAgICA6cmVxdWlyZWQ9XCJwcm9wcy5yZXF1aXJlZFwiXG4gICAgICAgICAgICA6dHlwZT1cInR5cGVcIlxuICAgICAgICAgICAgQGNoYW5nZT1cImhhbmRsZVZhbGlkYXRpb25cIlxuICAgICAgICAgICAgQGZvY3VzPVwiaGFuZGxlRm9jdXNcIlxuICAgICAgICAgICAgQGZvY3Vzb3V0PVwiaGFuZGxlRm9jdXNPdXRcIlxuICAgICAgICAgICAgQGlucHV0PVwiaGFuZGxlSW5wdXRcIlxuICAgICAgICAgICAgOmlkPVwicHJvcHMuaW5wdXRJZFwiXG4gICAgICAgICAgICB2LW1vZGVsPVwidmFsdWVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICA6Y2xhc3M9XCJbJ3RpZGUtaW5wdXQtdGV4dC1zdWZmaXgnLCAhaGFzRXJyb3IgJiYgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5ULCBoYXNNaW5pbGFiZWwgPyAnJyA6ICdvZmZzZXQnXVwiXG4gICAgICAgICAgdi1pZj1cInByb3BzLnN1ZmZpeFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBwcm9wcy5zdWZmaXggfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltDU1MuUEFERElORy5ZLkhBTEYsIENTUy5QQURESU5HLkZVTEwuSEFMRiwgQ1NTLkNVUlNPUi5QT0lOVEVSXVwiXG4gICAgICAgIDppY29uPVwiSUNPTi5DTE9TRVwiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAgIEBjbGljaz1cImhhbmRsZUNsZWFyXCJcbiAgICAgICAgdi1pZj1cImhhc0NsZWFyICYmIHByb3BzLnR5cGUgIT09IFRFWFRfSU5QVVRfVFlQRS5QQVNTV09SRFwiXG4gICAgICAvPlxuXG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5QQURESU5HLlkuSEFMRiwgQ1NTLlBBRERJTkcuRlVMTC5IQUxGLCBDU1MuQ1VSU09SLlBPSU5URVJdXCJcbiAgICAgICAgOmljb249XCJJQ09OLlZJU0lCSUxJVFlcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICBAY2xpY2s9XCJzaG93UGFzc3dvcmQgPSAhc2hvd1Bhc3N3b3JkXCJcbiAgICAgICAgdi1pZj1cInByb3BzLnR5cGUgPT09IFRFWFRfSU5QVVRfVFlQRS5QQVNTV09SRFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuUVVBUlRFUiwgQ1NTLk1BUkdJTi5MRUZULk9ORV1cIlxuICAgICAgdi1pZj1cInByb3BzLnN1cHBvcnRpbmdUZXh0IHx8IGhhc0Vycm9yXCJcbiAgICA+XG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmNsYXNzPVwiW11cIlxuICAgICAgICA6aWNvbj1cIklDT04uRVJST1JcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICB2LWlmPVwiaGFzRXJyb3JcIlxuICAgICAgLz5cblxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLkZPTlQuU0laRS5UV0VMVkUsIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRURdXCI+XG4gICAgICAgIHt7IGhhc0Vycm9yID8gZXJyb3JNZXNzYWdlIDogcHJvcHMuc3VwcG9ydGluZ1RleHQgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIGxhYmVsIHtcbiAgICBoZWlnaHQ6IDEuMTg3NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBmb250LXNpemUgdmFyKC0tdGlkZS1hbmltYXRlKSwgdHJhbnNmb3JtIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cblxuICBsYWJlbDpub3QoLm1pbmlsYWJlbCksXG4gIC50aWRlLWlucHV0LXRleHQtcHJlZml4Om5vdCgub2Zmc2V0KSxcbiAgLnRpZGUtaW5wdXQtdGV4dC1zdWZmaXg6bm90KC5vZmZzZXQpIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCBjYWxjKDkgLyAxNiAqIDFyZW0pKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQtcHJlZml4LFxuICAudGlkZS1pbnB1dC10ZXh0LXN1ZmZpeCB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0LmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiB2YXIoLS10aWRlLWRpc2FibGVkKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQuZXJyb3Ige1xuICAgIGNvbG9yOiB2YXIoLS10aWRlLWVycm9yLW9uLXN1cmZhY2UpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dC5lcnJvciAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLXRpZGUtZXJyb3ItYm9yZGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLXN1cmZhY2UpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dC5lcnJvcjpmb2N1cy13aXRoaW4gLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLWJvcmRlcik7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0OmZvY3VzLXdpdGhpbiAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0yKTtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtYm9yZGVyLWhpZ2gpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dCBpbnB1dCB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGg6IHZhcigtLXRpZGUtYm9yZGVyLXdpZHRoLTEpO1xuICAgIG91dGxpbmU6IHZhcigtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aCkgc29saWQgdmFyKC0tdGlkZS1ib3JkZXIpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKHZhcigtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aCkgKiAtMSk7XG4gICAgY29sb3I6IHZhcigtLXRpZGUtc3VyZmFjZS1mb3JlZ3JvdW5kKTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ0AvdHlwZXMvVmFsaWRhdGlvbic7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgZ2V0RXJyb3JNZXNzYWdlLCBnZXRGaWVsZEhhc0Vycm9yLCBoYW5kbGVGaWVsZFZhbGlkYXRpb24gfSBmcm9tICdAL3V0aWxpdGllcy92YWxpZGF0aW9uJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGRhdGFUcmFjaz86IHN0cmluZztcbiAgICBlcnJvcj86IFZhbGlkYXRpb25FcnJvcjtcbiAgICBpbnB1dElkPzogc3RyaW5nO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIG1heGxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBtaW5sZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICByZXF1aXJlZD86IGJvb2xlYW47XG4gICAgcm93cz86IG51bWJlcjtcbiAgICBzdXBwb3J0aW5nVGV4dD86IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGRhdGFUcmFjazogJycsXG4gICAgZXJyb3I6IGZhbHNlLFxuICAgIGlucHV0SWQ6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogdW5kZWZpbmVkLFxuICAgIG1heGxlbmd0aDogdW5kZWZpbmVkLFxuICAgIG1pbmxlbmd0aDogdW5kZWZpbmVkLFxuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgcm93czogOCxcbiAgICBzdXBwb3J0aW5nVGV4dDogdW5kZWZpbmVkLFxuICAgIHZhbHVlOiAnJyxcbiAgfSk7XG5cbiAgY29uc3QgZXJyb3IgPSByZWYocHJvcHMuZXJyb3IpO1xuICBjb25zdCBoYXNGb2N1cyA9IHJlZihmYWxzZSk7XG4gIGNvbnN0IGlucHV0ID0gcmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgdmFsdWUgPSByZWYocHJvcHMudmFsdWUpO1xuXG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGNvbXB1dGVkKCgpID0+IGdldEVycm9yTWVzc2FnZShwcm9wcy5lcnJvciwgZXJyb3IudmFsdWUpKTtcbiAgY29uc3QgZm9ybWF0dGVkTGFiZWwgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgPyBgJHtwcm9wcy5sYWJlbH0gKmAgOiBwcm9wcy5sYWJlbCkpO1xuICBjb25zdCBoYXNFcnJvciA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5yZXF1aXJlZCAmJiAhdmFsdWUudmFsdWUpIHx8IGdldEZpZWxkSGFzRXJyb3IoZXJyb3IudmFsdWUsIHByb3BzLmVycm9yKSk7XG4gIGNvbnN0IGhhc01pbmlsYWJlbCA9IGNvbXB1dGVkKCgpID0+IGhhc0ZvY3VzLnZhbHVlIHx8ICFpc0VtcHR5LnZhbHVlKTtcbiAgY29uc3QgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHZhbHVlLnZhbHVlID09PSAnJyk7XG5cbiAgY29uc3QgaGFuZGxlRm9jdXMgPSAoKSA9PiB7XG4gICAgaGFzRm9jdXMudmFsdWUgPSB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzT3V0ID0gKCkgPT4ge1xuICAgIGhhc0ZvY3VzLnZhbHVlID0gZmFsc2U7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVmFsaWRhdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4gaGFuZGxlRmllbGRWYWxpZGF0aW9uKHtcbiAgICAgIGVycm9yLFxuICAgICAgZXJyb3JGcm9tUHJvcHM6IHByb3BzLmVycm9yLFxuICAgICAgbWF4bGVuZ3RoOiBwcm9wcy5tYXhsZW5ndGgsXG4gICAgICBtaW5sZW5ndGg6IHByb3BzLm1pbmxlbmd0aCxcbiAgICAgIHZhbHVlLFxuICAgIH0pO1xuICB9O1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLnZhbHVlLFxuICAgIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUgfHwgbmV3VmFsdWUgIT09IHZhbHVlLnZhbHVlKSB7XG4gICAgICAgIHZhbHVlLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIGRlZmluZUV4cG9zZSh7IGVycm9yLCB2YWx1ZSB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXZcbiAgICA6Y2xhc3M9XCJbJ3RpZGUtaW5wdXQtdGV4dGFyZWEnLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OLCBDU1MuR0FQLlFVQVJURVIsIGhhc0Vycm9yICYmICdlcnJvciddXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtaW5wdXQtdGV4dGFyZWEtZmllbGQnLFxuICAgICAgICBDU1MuR0FQLkhBTEYsXG4gICAgICAgIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuSEFMRixcbiAgICAgICAgQ1NTLlBBRERJTkcuTEVGVC5PTkUsXG4gICAgICAgIENTUy5QQURESU5HLlRPUC5IQUxGLFxuICAgICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPGxhYmVsXG4gICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICBoYXNNaW5pbGFiZWwgPyBbJ21pbmlsYWJlbCcsIENTUy5GT05ULlNJWkUuVFdFTFZFXSA6IENTUy5GT05ULlNJWkUuU0lYVEVFTixcbiAgICAgICAgICAhaGFzRXJyb3IgJiYgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5ULFxuICAgICAgICAgIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRUQsXG4gICAgICAgICAgQ1NTLkNVUlNPUi5URVhULFxuICAgICAgICBdXCJcbiAgICAgICAgOmZvcj1cInByb3BzLmlucHV0SWRcIlxuICAgICAgICByZWY9XCJsYWJlbFwiXG4gICAgICAgIHYtaWY9XCJsYWJlbFwiXG4gICAgICA+XG4gICAgICAgIHt7IGZvcm1hdHRlZExhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8dGV4dGFyZWFcbiAgICAgICAgOmNsYXNzPVwiW0NTUy5XSURUSC5GVUxMXVwiXG4gICAgICAgIDpkYXRhLXRyYWNrPVwicHJvcHMuZGF0YVRyYWNrXCJcbiAgICAgICAgOm1heGxlbmd0aD1cInByb3BzLm1heGxlbmd0aFwiXG4gICAgICAgIDptaW5sZW5ndGg9XCJwcm9wcy5taW5sZW5ndGhcIlxuICAgICAgICA6bmFtZT1cInByb3BzLm5hbWVcIlxuICAgICAgICByZWY9XCJpbnB1dFwiXG4gICAgICAgIDpyZXF1aXJlZD1cInByb3BzLnJlcXVpcmVkXCJcbiAgICAgICAgOnJvd3M9XCJwcm9wcy5yb3dzXCJcbiAgICAgICAgQGNoYW5nZT1cImhhbmRsZVZhbGlkYXRpb25cIlxuICAgICAgICBAZm9jdXM9XCJoYW5kbGVGb2N1c1wiXG4gICAgICAgIEBmb2N1c291dD1cImhhbmRsZUZvY3VzT3V0XCJcbiAgICAgICAgOmlkPVwicHJvcHMuaW5wdXRJZFwiXG4gICAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuUVVBUlRFUiwgQ1NTLk1BUkdJTi5MRUZULk9ORV1cIlxuICAgICAgdi1pZj1cInByb3BzLnN1cHBvcnRpbmdUZXh0IHx8IGhhc0Vycm9yXCJcbiAgICA+XG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmljb249XCJJQ09OLkVSUk9SXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgdi1pZj1cImhhc0Vycm9yXCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5GT05ULlNJWkUuVFdFTFZFLCBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVEXVwiPlxuICAgICAgICB7eyBoYXNFcnJvciA/IGVycm9yTWVzc2FnZSA6IHByb3BzLnN1cHBvcnRpbmdUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgfVxuPC9zdHlsZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgbGFiZWwge1xuICAgIGhlaWdodDogMS4xODc1cmVtO1xuICAgIHRyYW5zaXRpb246IGZvbnQtc2l6ZSB2YXIoLS10aWRlLWFuaW1hdGUpLCB0cmFuc2Zvcm0gdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuXG4gIGxhYmVsOm5vdCgubWluaWxhYmVsKSxcbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEtcHJlZml4Om5vdCgub2Zmc2V0KSxcbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEtc3VmZml4Om5vdCgub2Zmc2V0KSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgY2FsYyg5IC8gMTYgKiAxcmVtKSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS1wcmVmaXgsXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLXN1ZmZpeCB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS5lcnJvciB7XG4gICAgY29sb3I6IHZhcigtLXRpZGUtZXJyb3Itb24tc3VyZmFjZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS5lcnJvciAudGlkZS1pbnB1dC10ZXh0YXJlYS1maWVsZCB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRpZGUtZXJyb3Itc3VyZmFjZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS5lcnJvcjpmb2N1cy13aXRoaW4gLnRpZGUtaW5wdXQtdGV4dGFyZWEtZmllbGQge1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLXRpZGUtZXJyb3ItYm9yZGVyKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhOmZvY3VzLXdpdGhpbiAudGlkZS1pbnB1dC10ZXh0YXJlYS1maWVsZCB7XG4gICAgLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGg6IHZhcigtLXRpZGUtYm9yZGVyLXdpZHRoLTIpO1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLXRpZGUtc3VyZmFjZS1ib3JkZXItaGlnaCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLWZpZWxkIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMSk7XG4gICAgb3V0bGluZTogdmFyKC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoKSBzb2xpZCB2YXIoLS10aWRlLWJvcmRlcik7XG4gICAgb3V0bGluZS1vZmZzZXQ6IGNhbGModmFyKC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoKSAqIC0xKTtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1zdXJmYWNlLWZvcmVncm91bmQpO1xuICB9XG48L3N0eWxlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgRWxlbWVudCB9IGZyb20gJ0AvdHlwZXMvRWxlbWVudCc7XG4gIGltcG9ydCB0eXBlIHsgSWNvbiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IEVMRU1FTlQgfSBmcm9tICdAL3R5cGVzL0VsZW1lbnQnO1xuICBpbXBvcnQgeyBUQVJHRVQgfSBmcm9tICdAL3R5cGVzL1RhcmdldCc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBlbGVtZW50PzogRWxlbWVudDtcbiAgICBocmVmPzogc3RyaW5nO1xuICAgIGljb25MZWFkaW5nPzogSWNvbjtcbiAgICBpY29uVHJhaWxpbmc/OiBJY29uO1xuICAgIGlzTmV3VGFiPzogYm9vbGVhbjtcbiAgICBsYWJlbDogc3RyaW5nO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgZWxlbWVudDogRUxFTUVOVC5MSU5LLFxuICAgIGhyZWY6IHVuZGVmaW5lZCxcbiAgICBpY29uTGVhZGluZzogdW5kZWZpbmVkLFxuICAgIGljb25UcmFpbGluZzogdW5kZWZpbmVkLFxuICAgIGlzTmV3VGFiOiBmYWxzZSxcbiAgICBsYWJlbDogdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCBoYXNJY29uID0gY29tcHV0ZWQoKCkgPT4gcHJvcHMuaWNvbkxlYWRpbmcgfHwgcHJvcHMuaWNvblRyYWlsaW5nKTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxjb21wb25lbnRcbiAgICA6Y2xhc3M9XCJbXG4gICAgICBwcm9wcy5lbGVtZW50ID09PSBFTEVNRU5ULkxJTksgPyAndGlkZS1idXR0b24tYXMtbGluaycgOiAndGlkZS1saW5rJyxcbiAgICAgIGhhc0ljb25cbiAgICAgICAgPyBbQ1NTLkRJU1BMQVkuSU5MSU5FX0ZMRVgsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuSEFMRl1cbiAgICAgICAgOiBbQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCwgQ1NTLlVOREVSTElORS5PTl0sXG4gICAgXVwiXG4gICAgOmhyZWY9XCJwcm9wcy5ocmVmXCJcbiAgICA6dGFyZ2V0PVwicHJvcHMuaXNOZXdUYWIgPyBUQVJHRVQuQkxBTksgOiBUQVJHRVQuU0VMRlwiXG4gICAgOmlzPVwicHJvcHMuZWxlbWVudCA9PT0gRUxFTUVOVC5MSU5LID8gRUxFTUVOVC5MSU5LIDogRUxFTUVOVC5CVVRUT05cIlxuICA+XG4gICAgPFRpZGVJY29uXG4gICAgICA6aWNvbj1cInByb3BzLmljb25MZWFkaW5nXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5pY29uTGVhZGluZ1wiXG4gICAgLz5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVELCBDU1MuVU5ERVJMSU5FLk9OXVwiXG4gICAgICB2LWlmPVwiaGFzSWNvblwiXG4gICAgPlxuICAgICAge3sgcHJvcHMubGFiZWwgfX1cbiAgICA8L2Rpdj5cblxuICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XG4gICAgICB7eyBwcm9wcy5sYWJlbCB9fVxuICAgIDwvdGVtcGxhdGU+XG5cbiAgICA8VGlkZUljb25cbiAgICAgIDppY29uPVwicHJvcHMuaWNvblRyYWlsaW5nXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5pY29uVHJhaWxpbmdcIlxuICAgIC8+XG4gIDwvY29tcG9uZW50PlxuPC90ZW1wbGF0ZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IG9uTW91bnRlZCwgcmVmLCB3YXRjaCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgaXNPcGVuOiBib29sZWFuO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHM8UHJvcHM+KCk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2xvc2UnXSk7XG5cbiAgY29uc3QgaXNPcGVuID0gcmVmKHByb3BzLmlzT3Blbik7XG4gIGNvbnN0IHNhdmVkU2Nyb2xsUG9zaXRpb24gPSByZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7IC8vIFRPRE86IHJlcGxhY2UgYm9keSBzY3JvbGwgbG9jayB3aXRoIGdsb2JhbCBzdHJ1Y3R1cmU/XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgaXNPcGVuLnZhbHVlID0gZmFsc2U7XG5cbiAgICB1cGRhdGVNb2RhbERpc3BsYXkoKTtcbiAgICBlbWl0KCdjbG9zZScsIGV2ZW50KTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGVNb2RhbERpc3BsYXkgPSAoKSA9PiB7XG4gICAgaWYgKGlzT3Blbi52YWx1ZSkge1xuICAgICAgc2F2ZWRTY3JvbGxQb3NpdGlvbi52YWx1ZSA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgc2F2ZWRTY3JvbGxQb3NpdGlvbi52YWx1ZSAmJiB3aW5kb3cuc2Nyb2xsVG8oMCwgc2F2ZWRTY3JvbGxQb3NpdGlvbi52YWx1ZSk7XG5cbiAgICAgIGFkZE9wZW5MaXN0ZW5lcnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnO1xuXG4gICAgICByZW1vdmVPcGVuTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBoYW5kbGVDbG9zZShldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFkZE9wZW5MaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTtcbiAgfTtcblxuICBjb25zdCByZW1vdmVPcGVuTGlzdGVuZXJzID0gKCkgPT4ge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7XG4gIH07XG5cbiAgb25Nb3VudGVkKCgpID0+IHtcbiAgICB1cGRhdGVNb2RhbERpc3BsYXkoKTtcbiAgfSk7XG5cbiAgd2F0Y2goXG4gICAgKCkgPT4gcHJvcHMuaXNPcGVuLFxuICAgIChuZXdWYWx1ZSkgPT4ge1xuICAgICAgaXNPcGVuLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB1cGRhdGVNb2RhbERpc3BsYXkoKTtcbiAgICB9XG4gICk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8VGVsZXBvcnQgdG89XCJib2R5XCI+XG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS1tb2RhbC13cmFwcGVyJyxcbiAgICAgICAgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzEuQ0VOVEVSLFxuICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICBDU1MuUE9TSVRJT05JTkcuVE9QLFxuICAgICAgICBDU1MuUE9TSVRJT05JTkcuTEVGVCxcbiAgICAgICAgQ1NTLldJRFRILkZVTEwsXG4gICAgICAgIENTUy5IRUlHSFQuRlVMTCxcbiAgICAgICAgcHJvcHMuaXNPcGVuID8gJ2FjdGl2ZScgOiBDU1MuUE9JTlRFUl9FVkVOVFMuT0ZGLFxuICAgICAgICBDU1MuT1ZFUkZMT1cuWS5ISURERU4sXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIDpjbGFzcz1cIlsndGlkZS1tb2RhbC1iZycsIENTUy5QT1NJVElPTi5BQlNPTFVURSwgQ1NTLldJRFRILkZVTEwsIENTUy5IRUlHSFQuRlVMTF1cIlxuICAgICAgICA6c3R5bGU9XCJ7ICctLXRpZGUtbW9kYWwtd2lkdGgnOiBwcm9wcy53aWR0aCB9XCJcbiAgICAgICAgQGNsaWNrLnNlbGY9XCJoYW5kbGVDbG9zZVwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICAndGlkZS1tb2RhbCcsXG4gICAgICAgICAgQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVCxcbiAgICAgICAgICBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLkRFRkFVTFQsXG4gICAgICAgICAgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLFxuICAgICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgICAgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTixcbiAgICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5PTkUsXG4gICAgICAgICAgQ1NTLk9WRVJGTE9XLlhZLkhJRERFTixcbiAgICAgICAgICBDU1MuU0hBRE9XLkJPVFRPTSxcbiAgICAgICAgXVwiXG4gICAgICA+XG4gICAgICAgIDxoZWFkZXJcbiAgICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgICAndGlkZS1tb2RhbC1oZWFkZXInLFxuICAgICAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgICAgICBDU1MuUEFERElORy5ZLk9ORSxcbiAgICAgICAgICAgIENTUy5QQURESU5HLlguVFdPLFxuICAgICAgICAgICAgQ1NTLkJPUkRFUi5CT1RUT00uT05FLFxuICAgICAgICAgICAgQ1NTLkJPUkRFUi5DT0xPUi5MT1csXG4gICAgICAgICAgXVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLkZMRVguR1JPVy5PTiwgQ1NTLkZPTlQuU0laRS5UV0VOVFksIENTUy5GT05ULldFSUdIVC5TRVZFTl9IVU5EUkVEXVwiXG4gICAgICAgICAgICB2LWlmPVwidGl0bGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBPU0lUSU9OLkFCU09MVVRFLCBDU1MuUE9TSVRJT05JTkcuUklHSFQsIENTUy5NQVJHSU4uUklHSFQuVFdPXVwiXG4gICAgICAgICAgICBAY2xpY2s9XCJoYW5kbGVDbG9zZVwiXG4gICAgICAgICAgICB0aXRsZT1cIkNsb3NlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VGlkZUljb24gOmljb249XCJJQ09OLkNMT1NFXCIgLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtbW9kYWwtY29udGVudCcsIENTUy5QQURESU5HLkZVTEwuVFdPLCBDU1MuT1ZFUkZMT1cuWS5BVVRPXVwiPlxuICAgICAgICAgIDxzbG90IC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiJHNsb3RzLmZvb3RlclwiPlxuICAgICAgICAgIDxmb290ZXJcbiAgICAgICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICAgICAgJ3RpZGUtYmctc3VyZmFjZScsXG4gICAgICAgICAgICAgIENTUy5QT1NJVElPTi5TVElDS1ksXG4gICAgICAgICAgICAgIENTUy5QT1NJVElPTklORy5MRUZULFxuICAgICAgICAgICAgICBDU1MuUE9TSVRJT05JTkcuQk9UVE9NLFxuICAgICAgICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICAgICAgICBDU1MuQVhJUzEuRU5ELFxuICAgICAgICAgICAgICBDU1MuR0FQLk9ORSxcbiAgICAgICAgICAgICAgQ1NTLlBBRERJTkcuWC5UV08sXG4gICAgICAgICAgICAgIENTUy5QQURESU5HLlkuT05FLFxuICAgICAgICAgICAgICBDU1MuU0hBRE9XLlRPUCxcbiAgICAgICAgICAgIF1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzbG90IG5hbWU9XCJmb290ZXJcIiAvPlxuICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvVGVsZXBvcnQ+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS1tb2RhbCB7XG4gICAgd2lkdGg6IHZhcigtLXRpZGUtbW9kYWwtd2lkdGgpO1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMnJlbSk7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMnJlbSk7XG4gICAgYm94LXNoYWRvdzogMHB4IDEwcHggMjVweCAwcHggcmdiYSgxOCwgNDMsIDU4LCAwLjIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDB2aCk7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIH1cblxuICAudGlkZS1tb2RhbC1iZyB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tkcm9wLWZpbHRlciwgYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIC5hY3RpdmUgLnRpZGUtbW9kYWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuXG4gIC5hY3RpdmUgLnRpZGUtbW9kYWwtYmcge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRpZGUtdHJhbnNwYXJlbnQtNDAwKTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkLCByZWYgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCBUaWRlQnV0dG9uSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUJ1dHRvbkljb24udnVlJztcbiAgaW1wb3J0IFRpZGVCdXR0b25QYWdpbmF0aW9uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlQnV0dG9uUGFnaW5hdGlvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBQUklPUklUWSB9IGZyb20gJ0AvdHlwZXMvUHJpb3JpdHknO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgcGFnZUN1cnJlbnQ/OiBudW1iZXI7XG4gICAgcGFnZVRvdGFsPzogbnVtYmVyO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgcGFnZUN1cnJlbnQ6IDEsXG4gICAgcGFnZVRvdGFsOiAxLFxuICB9KTtcblxuICBjb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydjaGFuZ2UnXSk7XG5cbiAgY29uc3QgcGFnZUN1cnJlbnQgPSByZWYocHJvcHMucGFnZUN1cnJlbnQpO1xuXG4gIGNvbnN0IHBhZ2luYXRpb25CdXR0b25zID0gY29tcHV0ZWQoKCkgPT4gbmV3IEFycmF5KHByb3BzLnBhZ2VUb3RhbCkuZmlsbCgnJykubWFwKChlbXB0eSwgaW5kZXgpID0+IGluZGV4ICsgMSkpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBFdmVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIHBhZ2VDdXJyZW50LnZhbHVlID0gaW5kZXg7XG5cbiAgICBlbWl0KCdjaGFuZ2UnLCBldmVudCwgaW5kZXgpO1xuICB9O1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPHNlY3Rpb25cbiAgICA6Y2xhc3M9XCJbJ3RpZGUtcGFnaW5hdGlvbicsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMS5DRU5URVIsIENTUy5BWElTMi5DRU5URVIsIENTUy5HQVAuUVVBUlRFUiwgQ1NTLldJRFRILkZVTExdXCJcbiAgPlxuICAgIDxUaWRlQnV0dG9uSWNvblxuICAgICAgOmRpc2FibGVkPVwicGFnZUN1cnJlbnQgPT09IDFcIlxuICAgICAgOmljb249XCJJQ09OLkNIRVZST05fTEVGVFwiXG4gICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgIEBjbGljaz1cIihldmVudDogRXZlbnQpID0+IGhhbmRsZUNsaWNrKGV2ZW50LCBwYWdlQ3VycmVudCAtIDEpXCJcbiAgICAvPlxuXG4gICAgPHVsIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5MSVNUX0JVTExFVFMuT0ZGXVwiPlxuICAgICAgPGxpXG4gICAgICAgIDprZXk9XCJwYWdpbmF0aW9uQnV0dG9uXCJcbiAgICAgICAgdi1mb3I9XCJwYWdpbmF0aW9uQnV0dG9uIGluIHBhZ2luYXRpb25CdXR0b25zXCJcbiAgICAgID5cbiAgICAgICAgPFRpZGVCdXR0b25QYWdpbmF0aW9uXG4gICAgICAgICAgOmRpc2FibGVkPVwicGFnZUN1cnJlbnQgPT09IHBhZ2luYXRpb25CdXR0b25cIlxuICAgICAgICAgIDpsYWJlbD1cInBhZ2luYXRpb25CdXR0b25cIlxuICAgICAgICAgIDpwcmlvcml0eT1cIlBSSU9SSVRZLlFVQVRFUk5BUllcIlxuICAgICAgICAgIEBjbGljaz1cIihldmVudDogRXZlbnQpID0+IGhhbmRsZUNsaWNrKGV2ZW50LCBwYWdpbmF0aW9uQnV0dG9uKVwiXG4gICAgICAgIC8+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG5cbiAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgIDpkaXNhYmxlZD1cInBhZ2VDdXJyZW50ID09PSBwYWdpbmF0aW9uQnV0dG9uc1twYWdpbmF0aW9uQnV0dG9ucy5sZW5ndGggLSAxXVwiXG4gICAgICA6aWNvbj1cIklDT04uQ0hFVlJPTl9SSUdIVFwiXG4gICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgIEBjbGljaz1cIihldmVudDogRXZlbnQpID0+IGhhbmRsZUNsaWNrKGV2ZW50LCBwYWdlQ3VycmVudCArIDEpXCJcbiAgICAvPlxuICA8L3NlY3Rpb24+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyByZWYgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgVGFiIH0gZnJvbSAnQC90eXBlcy9UYWInO1xuXG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGFjdGl2ZVRhYkluaXRpYWw/OiBudW1iZXI7XG4gICAgdGFiczogVGFiW107XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBhY3RpdmVUYWJJbml0aWFsOiAwLFxuICB9KTtcblxuICBjb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydjaGFuZ2UnXSk7XG5cbiAgY29uc3QgYWN0aXZlVGFiID0gcmVmKHByb3BzLmFjdGl2ZVRhYkluaXRpYWwpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBFdmVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGFjdGl2ZVRhYi52YWx1ZSA9IGluZGV4O1xuXG4gICAgZW1pdCgnY2hhbmdlJywgZXZlbnQsIGluZGV4KTtcbiAgfTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXZcbiAgICA6Y2xhc3M9XCJbXG4gICAgICAndGlkZS10YWJzJyxcbiAgICAgIENTUy5CRy5TVVJGQUNFLlZBUklBTlQsXG4gICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgQ1NTLkdBUC5RVUFSVEVSLFxuICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuSEFMRixcbiAgICAgIENTUy5QQURESU5HLkZVTEwuUVVBUlRFUixcbiAgICAgIENTUy5PVkVSRkxPVy5YWS5ISURERU4sXG4gICAgICBDU1MuV0lEVEguRlVMTCxcbiAgICBdXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtdGFicy10YWInLFxuICAgICAgICBpbmRleCA9PT0gYWN0aXZlVGFiXG4gICAgICAgICAgPyBbQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVCwgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5ERUZBVUxULCBDU1MuU0hBRE9XLkJPVFRPTV1cbiAgICAgICAgICA6IFsnaW5hY3RpdmUnLCBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlRdLFxuICAgICAgICBDU1MuRkxFWC5HUk9XLk9OLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5RVUFSVEVSLFxuICAgICAgICBDU1MuUEFERElORy5ZLlFVQVJURVIsXG4gICAgICAgIENTUy5XSURUSC5GVUxMLFxuICAgICAgICBDU1MuRk9OVC5XRUlHSFQuU0lYX0hVTkRSRUQsXG4gICAgICAgIENTUy5XSElURVNQQUNFX1dSQVAuT0ZGLFxuICAgICAgXVwiXG4gICAgICA6ZGF0YS10cmFjaz1cInRhYi5kYXRhVHJhY2sgfHwgdW5kZWZpbmVkXCJcbiAgICAgIDprZXk9XCJ0YWIubGFiZWxcIlxuICAgICAgQGNsaWNrPVwiKGV2ZW50OiBFdmVudCkgPT4gaGFuZGxlQ2xpY2soZXZlbnQsIGluZGV4KVwiXG4gICAgICB2LWZvcj1cIih0YWIsIGluZGV4KSBpbiBwcm9wcy50YWJzXCJcbiAgICA+XG4gICAgICA8c3BhbiA6Y2xhc3M9XCJbQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVEXVwiPlxuICAgICAgICB7eyB0YWIubGFiZWwgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIDpjbGFzcz1cIltDU1MuRk9OVC5XRUlHSFQuU0lYX0hVTkRSRURdXCJcbiAgICAgICAgdi1pZj1cInRhYi5jb3VudCAmJiB0YWIuY291bnQgPiAwXCJcbiAgICAgID5cbiAgICAgICAgKHt7IHRhYi5jb3VudCB9fSlcbiAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS10YWJzIHtcbiAgICBtYXgtd2lkdGg6IDIzLjNyZW07XG4gIH1cblxuICAudGlkZS10YWJzLXRhYiB7XG4gICAgZmxleDogMTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cblxuICAuaW5hY3RpdmU6bm90KDpob3Zlcikge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRpZGUtc3VyZmFjZS12YXJpYW50KTtcbiAgfVxuXG4gIC5pbmFjdGl2ZTpob3ZlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGlkZS1ib3JkZXIpO1xuICB9XG48L3N0eWxlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFNJWkUgfSBmcm9tICdAL3R5cGVzL1NpemUnO1xuXG4gIGNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoe1xuICAgIGRpc2FibGVkOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBpc0FjdGl2ZToge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0cyhbJ2NoYW5nZSddKTtcblxuICBjb25zdCBpc0FjdGl2ZSA9IHJlZihwcm9wcy5pc0FjdGl2ZSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgaWYgKCFwcm9wcy5kaXNhYmxlZCkge1xuICAgICAgaXNBY3RpdmUudmFsdWUgPSAhaXNBY3RpdmUudmFsdWU7XG5cbiAgICAgIGVtaXQoJ2NoYW5nZScsIGV2ZW50LCBpc0FjdGl2ZS52YWx1ZSk7XG4gICAgfVxuICB9O1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGJ1dHRvblxuICAgIDpjbGFzcz1cIltcbiAgICAgICd0aWRlLXRvZ2dsZScsXG4gICAgICBwcm9wcy5pc0FjdGl2ZSA/ICdhY3RpdmUnIDogJycsXG4gICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgIENTUy5CT1JERVIuRlVMTC5PTkUsXG4gICAgICBDU1MuQk9SREVSLlJBRElVUy5GVUxMLFxuICAgICAgcHJvcHMuaXNBY3RpdmUgPyAnJyA6IENTUy5CT1JERVIuQ09MT1IuREVGQVVMVCxcbiAgICAgIENTUy5PVkVSRkxPVy5YWS5ISURERU4sXG4gICAgICBwcm9wcy5pc0FjdGl2ZSA/IENTUy5CRy5TRUNPTkRBUlkgOiBDU1MuQkcuU1VSRkFDRS5ERUZBVUxULFxuICAgIF1cIlxuICAgIDpkaXNhYmxlZD1cInByb3BzLmRpc2FibGVkXCJcbiAgICBAY2xpY2s9XCJoYW5kbGVDbGlja1wiXG4gICAgYXJpYS1sYWJlbD1cIlRvZ2dsZVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLXRvZ2dsZS1pbmRpY2F0b3InLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgIENTUy5BWElTMS5DRU5URVIsXG4gICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkZVTEwsXG4gICAgICAgIHByb3BzLmlzQWN0aXZlID8gQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVCA6IENTUy5CRy5TRUNPTkRBUlksXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmljb249XCJJQ09OLkNIRUNLXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLkxBUkdFXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIDwvYnV0dG9uPlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtdG9nZ2xlIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG5cbiAgLnRpZGUtdG9nZ2xlOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjMyO1xuICB9XG5cbiAgLnRpZGUtdG9nZ2xlLmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10aWRlLXNlY29uZGFyeSk7XG4gIH1cblxuICAudGlkZS10b2dnbGUuYWN0aXZlIC50aWRlLXRvZ2dsZS1pbmRpY2F0b3Ige1xuICAgIGxlZnQ6IDM2cHg7XG4gIH1cblxuICAudGlkZS10b2dnbGUtaW5kaWNhdG9yIHtcbiAgICBsZWZ0OiA0cHg7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0LCBib3JkZXItY29sb3IsIGJhY2tncm91bmQtY29sb3I7XG4gIH1cbjwvc3R5bGU+XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSB2dWUvc29ydC1rZXlzICovXG5cbmV4cG9ydCBjb25zdCBCUkVBS1BPSU5UID0ge1xuICBTTTogJ3NtJyxcbiAgTUQ6ICdtZCcsXG4gIExHOiAnbGcnLFxuICBYTDogJ3hsJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBNRURJQSA9IHtcbiAgU006IDc2OCxcbiAgTUQ6IDk5MixcbiAgTEc6IDEyMzIsXG4gIFhMOiAxOTIwLFxufTtcblxuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9ICh0eXBlb2YgQlJFQUtQT0lOVClba2V5b2YgdHlwZW9mIEJSRUFLUE9JTlRdO1xuZXhwb3J0IHR5cGUgTWVkaWEgPSAodHlwZW9mIE1FRElBKVtrZXlvZiB0eXBlb2YgTUVESUFdO1xuIiwiaW1wb3J0IHsgZm9ybWF0TnVtYmVyLCBmb3JtYXRQaG9uZSwgZm9ybWF0UHJpY2UgfSBmcm9tICdAL3V0aWxpdGllcy9mb3JtYXQnO1xuXG5leHBvcnQgdHlwZSBGb3JtYXR0ZWQgPSB7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVtYmVyO1xufTtcblxuZXhwb3J0IGNvbnN0IEZPUk1BVCA9IHtcbiAgTlVNQkVSOiBmb3JtYXROdW1iZXIsXG4gIFBIT05FOiBmb3JtYXRQaG9uZSxcbiAgUFJJQ0U6IGZvcm1hdFByaWNlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEZPUk1BVF9SRUdFWCA9IHtcbiAgYWxwaGE6IC9eW2EtekEtWl0rJC9nLFxuICBhbHBoYU51bWJlck9yRW1wdHk6IC9eJHxeW2EtejAtOV0rJC9pLFxuICBhbHBoYVNwYWNlOiAvXlthLXpBLVogXSskL2csXG4gIGVtYWlsOlxuICAgIC9eKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFxdKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLyxcbiAgbnVtYmVyRm9ybWF0dGVkOiAvXiR8KD89LileXFwkPygoWzEtOV1bMC05XXswLDJ9KCxbMC05XXszfSkqKXwwKT8oXFwuWzAtOV17MSwyfSk/JC8sXG4gIHBob25lOiAvXig/OlxcZHszfS1cXGR7M30tXFxkezR9fFxcZHsxfS1cXGR7M30tXFxkezN9LVxcZHs0fSk/JC8sXG4gIHByaWNlOiAvKD89LileXFwkPygoWzEtOV1bMC05XXswLDJ9KCxbMC05XXszfSkqKXwwKT8oXFwuWzAtOV17MSwyfSk/JC8sXG59O1xuIiwiLyoqXG4gKiBUaGVzZSBzbGlkZXMgYXJlIHVzZWQgaW4gYm90aCB0aGUgaW5saW5lIGRldGFpbCBwYWdlIHBob3RvIHNsaWRlclxuICogYW5kIHRoZSBmdWxsc2NyZWVuIG1lZGlhIGdhbGxlcnkuXG4gKi9cblxuZXhwb3J0IGNvbnN0IE1FRElBX1NMSURFX1RZUEVTID0ge1xuICBJTUFHRToge1xuICAgIEZMT09SUExBTjogJ2Zsb29ycGxhbicsXG4gICAgSU1BR0U6ICdpbWFnZScsXG4gIH0sXG4gIFZJREVPOiAndmlkZW8nLFxuICBWUjogJ3ZyJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE1lZGlhU2xpZGVUeXBlID1cbiAgfCAodHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLklNQUdFKVtrZXlvZiB0eXBlb2YgTUVESUFfU0xJREVfVFlQRVMuSU1BR0VdXG4gIHwgdHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLlZJREVPXG4gIHwgdHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLlZSO1xuXG5leHBvcnQgdHlwZSBJbWFnZVNsaWRlVHlwZSA9ICh0eXBlb2YgTUVESUFfU0xJREVfVFlQRVMuSU1BR0UpW2tleW9mIHR5cGVvZiBNRURJQV9TTElERV9UWVBFUy5JTUFHRV07XG5cbnR5cGUgSW1hZ2VTbGlkZSA9IHtcbiAgaW1hZ2VVcmw6IHN0cmluZztcbiAgdHlwZTogSW1hZ2VTbGlkZVR5cGU7XG59O1xuXG5leHBvcnQgdHlwZSBWaWRlb1NsaWRlVHlwZSA9IHR5cGVvZiBNRURJQV9TTElERV9UWVBFUy5WSURFTztcblxudHlwZSBWaWRlb1NsaWRlID0ge1xuICBpbWFnZVVybDogc3RyaW5nO1xuICB0eXBlOiBWaWRlb1NsaWRlVHlwZTtcbiAgdmlkZW9Vcmw6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFZyU2xpZGVUeXBlID0gdHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLlZSO1xuXG50eXBlIFZyU2xpZGUgPSB7XG4gIGltYWdlVXJsOiBzdHJpbmc7XG4gIHR5cGU6IFZyU2xpZGVUeXBlO1xuICB2clVybDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTGlzdGluZ01lZGlhID0gSW1hZ2VTbGlkZSB8IFZpZGVvU2xpZGUgfCBWclNsaWRlO1xuIiwiZXhwb3J0IGNvbnN0IFJFQUxNID0ge1xuICBBRVJPOiAnYWVybycsXG4gIEFUVjogJ2F0dicsXG4gIEJPQVRNQVJUOiAnYm9hdG1hcnQnLFxuICBDWUNMRTogJ2N5Y2xlJyxcbiAgRVFVSVA6ICdlcXVpcCcsXG4gIFBXQzogJ3B3YycsXG4gIFJWOiAncnYnLFxuICBTTk9XOiAnc25vdycsXG4gIFRSVUNLOiAndHJ1Y2snLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUmVhbG0gPSAodHlwZW9mIFJFQUxNKVtrZXlvZiB0eXBlb2YgUkVBTE1dO1xuIiwiaW1wb3J0IHsgRk9STUFUX1JFR0VYIH0gZnJvbSAnQC90eXBlcy9Gb3JtYXR0ZWQnO1xuaW1wb3J0IHsgY2hlY2tGb3JtYXQgfSBmcm9tICdAL3V0aWxpdGllcy92YWxpZGF0aW9uJztcblxuZXhwb3J0IGNvbnN0IFZBTElEQVRPUiA9IHtcbiAgQUxQSEFfTlVNQkVSX0VNUFRZOiBjaGVja0Zvcm1hdChGT1JNQVRfUkVHRVguYWxwaGFOdW1iZXJPckVtcHR5KSxcbiAgQUxQSEFfU1BBQ0U6IGNoZWNrRm9ybWF0KEZPUk1BVF9SRUdFWC5hbHBoYVNwYWNlKSxcbiAgRU1BSUw6IGNoZWNrRm9ybWF0KEZPUk1BVF9SRUdFWC5lbWFpbCksXG4gIE5VTUJFUjogY2hlY2tGb3JtYXQoRk9STUFUX1JFR0VYLm51bWJlckZvcm1hdHRlZCksXG4gIFBIT05FOiBjaGVja0Zvcm1hdChGT1JNQVRfUkVHRVgucGhvbmUpLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkVycm9yID0gc3RyaW5nIHwgYm9vbGVhbjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25SZXN1bHQgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdmFsaWQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uTGVuZ3RoID0ge1xuICBtYXhsZW5ndGg/OiBudW1iZXI7XG4gIG1pbmxlbmd0aD86IG51bWJlcjtcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICB2YWx1ZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yID0gKHZhbHVlOiBzdHJpbmcpID0+IFZhbGlkYXRpb25SZXN1bHQ7XG4iXSwibmFtZXMiOlsiQ1NTIiwidXRpbGl0aWVzIiwiYnJlYWtwb2ludCIsInV0aWxpdHkiLCJPUklFTlRBVElPTiIsIlNJWkUiLCJmb3JtYXROdW1iZXIiLCJpbnB1dCIsIm91dHB1dCIsImRpZ2l0cyIsImZvcm1hdFBhc2NhbENhc2UiLCJ3b3JkIiwiZm9ybWF0UGhvbmUiLCJmb3JtYXRQcmljZSIsImlubmVyU1ZHIiwicmVmIiwid2F0Y2giLCJwcm9wcyIsImlkIiwibmFtZSIsImNvbXBvbmVudCIsImRlZmluZUFzeW5jQ29tcG9uZW50IiwiX192YXJpYWJsZUR5bmFtaWNJbXBvcnRSdW50aW1lSGVscGVyIiwibWFya1JhdyIsIklDT04iLCJpc0V4cGFuZGVkIiwiYWNjb3JkaW9uQm9keSIsInRvZ2dsZUlzRXhwYW5kZWQiLCJlbGVtZW50Iiwib25Nb3VudGVkIiwiRUxFTUVOVCIsIkVMRU1FTlRfVEVYVF9BU19JQ09OIiwiUFJJT1JJVFkiLCJUQVJHRVQiLCJBTEVSVCIsImljb24iLCJjb21wdXRlZCIsImltYWdlRGVmYXVsdCIsInRpZGVJbWFnZSIsInNldEltYWdlRnJvbURlZmF1bHQiLCJzcmMiLCJjdXJyZW50U291cmNlIiwiX19leHBvc2UiLCJCQURHRSIsIkJBREdFX1BSRU1JVU0iLCJCQURHRV9UUlVTVEVEIiwiZ2FwIiwiY29udGVudFdpZHRoIiwiZnJhbWVXaWR0aCIsImhhc092ZXJmbG93IiwibGFzdFBvc2l0aW9uIiwiY29udGVudFJlZiIsImZyYW1lUmVmIiwic2hvd0J1dHRvbnMiLCJjdXJyZW50U2xpZGUiLCJtZWFzdXJlQ3VycmVudFNsaWRlIiwic2xpZGVPZmZzZXRzIiwic2xpZGUiLCJjbG9zZXN0U2xpZGVPZmZzZXQiLCJwcmV2IiwiY3VyciIsIm1lYXN1cmVEb20iLCJoYW5kbGVTY3JvbGwiLCJzY3JvbGxUb1NsaWRlIiwic2xpZGVJbmRleCIsInNob3dOZXh0U2xpZGUiLCJjb250ZW50UmlnaHRFZGdlIiwiaXNGaXJzdFNsaWRlV2l0aE9mZnNldCIsIm5leHRTbGlkZSIsInNob3dQcmV2aW91c1NsaWRlIiwiZmlyc3RTbGlkZSIsImlzRmlyc3RTbGlkZSIsInByZXZpb3VzU2xpZGUiLCJvblVubW91bnRlZCIsIm9uVXBkYXRlZCIsImVtaXQiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImhhbmRsZUNsaWNrIiwibmV3VmFsdWUiLCJvbGRWYWx1ZSIsImVycm9yTWVzc2FnZURlZmF1bHQiLCJub0Vycm9yIiwiY2hlY2tGb3JtYXQiLCJmb3JtYXQiLCJ2YWx1ZSIsInJlc3VsdCIsImdldEVycm9yTWVzc2FnZSIsImVycm9yRnJvbVByb3BzIiwiZXJyb3JGcm9tUmVmIiwiZ2V0RmllbGRIYXNFcnJvciIsImdldEZpZWxkTGVuZ3RoSXNWYWxpZCIsIm1heGxlbmd0aCIsIm1pbmxlbmd0aCIsInJlcXVpcmVkIiwiaXNFbXB0eUFuZFVucmVxdWlyZWQiLCJpc1Rvb0xvbmciLCJoYW5kbGVGaWVsZFZhbGlkYXRpb24iLCJlcnJvciIsInZhbGlkYXRvcnMiLCJ2YWxpZGF0aW9uIiwidmFsaWRhdGVQcm9wZXJ0eSIsImxlbmd0aFZhbGlkYXRpb24iLCJ2YWxpZGF0ZUxlbmd0aCIsInJlc3BvbnNlIiwidmFsaWRhdG9yIiwiaGFzRm9jdXMiLCJlcnJvck1lc3NhZ2UiLCJmb3JtYXR0ZWRMYWJlbCIsImhhc0Vycm9yIiwiaGFzTWluaWxhYmVsIiwiaXNFbXB0eSIsImV4cGFuZE9wdGlvbnMiLCJldmVudCIsIl9hIiwiaGFuZGxlRm9jdXMiLCJoYW5kbGVGb2N1c091dCIsIlRFWFRfSU5QVVRfVFlQRSIsInNob3dQYXNzd29yZCIsImhhc0NsZWFyIiwidHlwZSIsImhhbmRsZUNsZWFyIiwiaGFuZGxlVmFsaWRhdGlvbiIsImhhbmRsZUlucHV0IiwidXBkYXRlVmFsdWUiLCJoYXNJY29uIiwiaXNPcGVuIiwic2F2ZWRTY3JvbGxQb3NpdGlvbiIsImhhbmRsZUNsb3NlIiwidXBkYXRlTW9kYWxEaXNwbGF5IiwiYWRkT3Blbkxpc3RlbmVycyIsInJlbW92ZU9wZW5MaXN0ZW5lcnMiLCJoYW5kbGVLZXlEb3duIiwicGFnZUN1cnJlbnQiLCJwYWdpbmF0aW9uQnV0dG9ucyIsImVtcHR5IiwiaW5kZXgiLCJhY3RpdmVUYWIiLCJpc0FjdGl2ZSIsIkJSRUFLUE9JTlQiLCJNRURJQSIsIkZPUk1BVCIsIkZPUk1BVF9SRUdFWCIsIk1FRElBX1NMSURFX1RZUEVTIiwiUkVBTE0iLCJWQUxJREFUT1IiXSwibWFwcGluZ3MiOiI7QUFJTyxNQUFNQSxJQUFNO0FBQUEsRUFDakIsZ0JBQWdCLENBQUNDLEdBQXFCQyxNQUM3QkQsRUFBVSxJQUFJLENBQUNFLE1BQVksR0FBR0QsQ0FBVSxJQUFJQyxDQUFPLEVBQUU7QUFBQSxFQUU5RCxPQUFPO0FBQUEsSUFDTCxHQUFHO0FBQUEsTUFDRCxRQUFRO0FBQUEsTUFDUixNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EsR0FBRztBQUFBLE1BQ0QsU0FBUztBQUFBLE1BQ1QsUUFBUTtBQUFBLElBQ1Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ0wsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUNBLElBQUk7QUFBQSxJQUNGLFNBQVM7QUFBQSxJQUNULE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxNQUNQLFFBQVE7QUFBQSxNQUNSLGdCQUFnQjtB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QUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxPQUFPO0FBQUEsTUFDUCxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxRQUFRO0FBQUEsTUFDUixRQUFRO0FBQUEsSUFDVjtBQUFBLElBQ0EsSUFBSTtBQUFBLEVBQ047QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxFQUNSO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVCxTQUFTO0FBQUEsRUFDWDtBQUFBLEVBQ0EsY0FBYztBQUFBLElBQ1osS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLFFBQVE7QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxNQUFNO0FBQUEsTUFDSixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsTUFBTTtBQUFBLE1BQ0osTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLE9BQU87QUFBQSxNQUNMLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxLQUFLO0FBQUEsTUFDSCxNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsR0FBRztBQUFBLE1BQ0QsTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLEdBQUc7QUFBQSxNQUNELE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsRUFDRjtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ04sUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsT0FBTztBQUFBLElBQ1AsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNQLEtBQUs7QUFBQSxJQUNMLElBQUk7QUFBQSxFQUNOO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDUixHQUFHO0FBQUEsTUFDRCxNQUFNO0FBQUEsTUFDTixRQUFRO0FBQUEsTUFDUixRQUFRO0FBQUEsSUFDVjtBQUFBLElBQ0EsSUFBSTtBQUFBLE1BQ0YsTUFBTTtBQUFBLE1BQ04sUUFBUTtBQUFBLElBQ1Y7QUFBQSxJQUNBLEdBQUc7QUFBQSxNQUNELE1BQU07QUFBQSxNQUNOLFFBQVE7QUFBQSxJQUNWO0FBQUEsRUFDRjtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsUUFBUTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLE1BQU07QUFBQSxNQUNKLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxN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QkEsRUFBSSxJQUFJLEtBQ1JBLEVBQUksSUFBSSxNQUNSQSxFQUFJLElBQUksU0FDUkEsRUFBSSxJQUFJLEtBQ1JBLEVBQUksSUFBSSxNQUNSQSxFQUFJLEtBQUssTUFBTSxNQUNmQSxFQUFJLEtBQUssS0FBSyxJQUNkQSxFQUFJLEtBQUssS0FBSyxLQUNkQSxFQUFJLEtBQUssT0FBTyxJQUNoQkEsRUFBSSxLQUFLLE9BQU8sS0FDaEJBLEVBQUksS0FBSyxNQUNUQSxFQUFJLFNBQVMsVUFDYkEsRUFBSSxTQUFTLE9BQ2JBLEVBQUksU0FBUyxVQUNiQSxFQUFJLFNBQVMsUUFDYkEsRUFBSSxZQUFZLEtBQ2hCQSxFQUFJLFlBQVksT0FDaEJBLEVBQUksWUFBWSxRQUNoQkEsRUFBSSxZQUFZLE1BQ2hCQSxFQUFJLFdBQVcsWUFDZkEsRUFBSSxXQUFXLGFBQ2ZBLEVBQUksT0FBTyxLQUFLLE1BQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLEtBQUssTUFDaEJBLEVBQUksT0FBTyxLQUFLLFNBQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLEtBQUssTUFDaEJBLEVBQUksT0FBTyxFQUFFLE1BQ2JBLEVBQUksT0FBTyxFQUFFLEtBQ2JBLEVBQUksT0FBTyxFQUFFLE1BQ2JBLEVBQUksT0FBTyxFQUFFLFNBQ2JBLEVBQUksT0FBTyxFQUFFLEtBQ2JBLEVBQUksT0FBTyxFQUFFLE1BQ2JBLEVBQUksT0FBTyxJQUFJLE1BQ2ZBLEVBQUksT0FBTyxJQUFJLEtBQ2ZBLEVBQUksT0FBTyxJQUFJLE1BQ2ZBLEVBQUksT0FBTyxJQUFJLFNBQ2ZBLEVBQUksT0FBTyxJQUFJLEtBQ2ZBLEVBQUksT0FBTyxJQUFJLE1BQ2ZBLEVBQUksT0FBTyxFQUFFLE1BQ2JBLEVBQUksT0FBTyxFQUFFLEtBQ2JBLEVBQUksT0FBTyxFQUFFLE1BQ2JBLEVBQUksT0FBTyxFQUFFLFNBQ2JBLEVBQUksT0FBTyxFQUFFLEtBQ2JBLEVBQUksT0FBTyxFQUFFLE1BQ2JBLEVBQUksT0FBTyxFQUFFLE1BQ2JBLEVBQUksT0FBTyxNQUFNLE1BQ2pCQSxFQUFJLE9BQU8sTUFBTSxLQUNqQkEsRUFBSSxPQUFPLE1BQU0sTUFDakJBLEVBQUksT0FBTyxNQUFNLFNBQ2pCQSxFQUFJLE9BQU8sTUFBTSxLQUNqQkEsRUFBSSxPQUFPLE1BQU0sTUFDakJBLEVBQUksT0FBTyxNQUFNLE1BQ2pCQSxFQUFJLE9BQU8sT0FBTyxNQUNsQkEsRUFBSSxPQUFPLE9BQU8sS0FDbEJBLEVBQUksT0FBTyxPQUFPLE1BQ2xCQSxFQUFJLE9BQU8sT0FBTyxTQUNsQkEsRUFBSSxPQUFPLE9BQU8sS0FDbEJBLEVBQUksT0FBTyxPQUFPLE1BQ2xCQSxFQUFJLE9BQU8sS0FBSyxNQUNoQkEsRUFBSSxPQUFPLEtBQUssS0FDaEJBLEVBQUksT0FBTyxLQUFLLE1BQ2hCQSxFQUFJLE9BQU8sS0FBSyxTQUNoQkEsRUFBSSxPQUFPLEtBQUssS0FDaEJBLEVBQUksT0FBTyxLQUFLLE1BQ2hCQSxFQUFJLE9BQU8sS0FBSyxNQUNoQkEsRUFBSSxPQUFPLEtBQUssS0FDaEJBLEVBQUksT0FBTyxLQUFLLEtBQ2hCQSxFQUFJLE9BQU8sSUFBSSxLQUNmQSxFQUFJLE9BQU8sSUFBSSxLQUNmQSxFQUFJLE9BQU8sTUFBTSxLQUNqQkEsRUFBSSxPQUFPLE1BQU0sS0FDakJBLEVBQUksT0FBTyxPQUFPLEtBQ2xCQSxFQUFJLE9BQU8sT0FBTyxLQUNsQkEsRUFBSSxPQUFPLEtBQUssS0FDaEJBLEVBQUksT0FBTyxLQUFLLEtBQ2hCQSxFQUFJLE9BQU8sT0FBTyxLQUNsQkEsRUFBSSxPQUFPLE9BQU8sTUFDbEJBLEVBQUksT0FBTyxPQUFPLFNBQ2xCQSxFQUFJLE9BQU8sT0FBTyxNQUNsQkEsRUFBSSxRQUFRLEtBQUssTUFDakJBLEVBQUksUUFBUSxLQUFLLEtBQ2pCQSxFQUFJLFFBQVEsS0FBSyxNQUNqQkEsRUFBSSxRQUFRLEtBQUssU0FDakJBLEVBQUksUUFBUSxLQUFLLEtBQ2pCQSxFQUFJLFFBQVEsS0FBSyxNQUNqQkEsRUFBSSxRQUFRLEVBQUUsTUFDZEEsRUFBSSxRQUFRLEVBQUUsS0FDZEEsRUFBSSxRQUFRLEVBQUUsTUFDZEEsRUFBSSxRQUFRLEVBQUUsU0FDZEEsRUFBSSxRQUFRLEVBQUUsS0FDZEEsRUFBSSxRQUFRLEVBQUUsTUFDZEEsRUFBSSxRQUFRLElBQUksTUFDaEJBLEVBQUksUUFBUSxJQUFJLEtBQ2hCQSxFQUFJLFFBQVEsSUFBSSxNQUNoQkEsRUFBSSxRQUFRLElBQUksU0FDaEJBLEVBQUksUUFBUSxJQUFJLEtBQ2hCQSxFQUFJLFFBQVEsSUFBSSxNQUNoQkEsRUFBSSxRQUFRLEVBQUUsTUFDZEEsRUFBSSxRQUFRLEVBQUUsS0FDZEEsRUFBSSxRQUFRLEVBQUUsTUFDZEEsRUFBSSxRQUFRLEVBQUUsU0FDZEEsRUFBSSxRQUFRLEVBQUUsS0FDZEEsRUFBSSxRQUFRLEVBQUUsTUFDZEEsRUFBSSxRQUFRLE1BQU0sTUFDbEJBLEVBQUksUUFBUSxNQUFNLEtBQ2xCQSxFQUFJLFFBQVEsTUFBTSxNQUNsQkEsRUFBSSxRQUFRLE1BQU0sU0FDbEJBLEVBQUksUUFBUSxNQUFNLEtBQ2xCQSxFQUFJLFFBQVEsTUFBTSxNQUNsQkEsRUFBSSxRQUFRLE9BQU8sTUFDbkJBLEVBQUksUUFBUSxPQUFPLEtBQ25CQSxFQUFJLFFBQVEsT0FBTyxNQUNuQkEsRUFBSSxRQUFRLE9BQU8sU0FDbkJBLEVBQUksUUFBUSxPQUFPLEtBQ25CQSxFQUFJLFFBQVEsT0FBTyxNQUNuQkEsRUFBSSxRQUFRLEtBQUssTUFDakJBLEVBQUksUUFBUSxLQUFLLEtBQ2pCQSxFQUFJLFFBQVEsS0FBSyxNQUNqQkEsRUFBSSxRQUFRLEtBQUssU0FDakJBLEVBQUksUUFBUSxLQUFLLEtBQ2pCQSxFQUFJLFFBQVEsS0FBSyxNQUNqQkEsRUFBSSxNQUFNLFVBQ1ZBLEVBQUksTUFBTSxNQUNWQSxFQUFJLE1BQU0sTUFDVkEsRUFBSSxPQUFPLE1BQ1hBLEVBQUksT0FBTyxNQUNYQSxFQUFJLE1BQU0sRUFBRSxRQUNaQSxFQUFJLFlBQ0pBLEVBQUksT0FBTyxhQUNYQSxFQUFJLE9BQU8sU0FD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QUEsRUFDUixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxnQkFBZ0I7QUFBQSxFQUNoQixhQUFhO0FBQUEsRUFDYixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixpQkFBaUI7QUFBQSxFQUNqQixhQUFhO0FBQUEsRUFDYixlQUFlO0FBQUEsRUFDZixzQkFBc0I7QUFBQSxFQUN0QixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixZQUFZO0FBQUEsRUFDWixNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixXQUFXO0FBQUEsRUFDWCxnQkFBZ0I7QUFBQSxFQUNoQixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixZQUFZO0FBQUEsRUFDWixlQUFlO0FBQUEsRUFDZixhQUFhO0FBQUEsRUFDYixTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixjQUFjO0FBQUEsRUFDZCxXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixpQkFBaUI7QUFBQSxFQUNqQixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxlQUFlO0FBQUEsRUFDZixLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxrQkFBa0I7QUFBQSxFQUNsQixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixZQUFZO0FBQUEsRUFDWixZQUFZO0FBQUEsRUFDWixXQUFX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
|
|
2445
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlkZS1kZXNpZ24tc3lzdGVtLmVzbS5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzL1N0eWxlcy50cyIsIi4uL3NyYy90eXBlcy9PcmllbnRhdGlvbi50cyIsIi4uL3NyYy90eXBlcy9TaXplLnRzIiwiLi4vc3JjL3V0aWxpdGllcy9mb3JtYXQudHMiLCIuLi9zcmMvdHlwZXMvUmVhbG0udHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSWNvbi52dWUiLCIuLi9zcmMvdHlwZXMvSWNvbi50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVBY2NvcmRpb25JdGVtLnZ1ZSIsIi4uL3NyYy90eXBlcy9FbGVtZW50LnRzIiwiLi4vc3JjL3R5cGVzL1ByaW9yaXR5LnRzIiwiLi4vc3JjL3R5cGVzL1RhcmdldC50cyIsIi4uL3NyYy90eXBlcy9BbGVydC50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVBbGVydC52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSW1hZ2UudnVlIiwiLi4vc3JjL3R5cGVzL0JhZGdlLnRzIiwiLi4vc3JjL3R5cGVzL0NhcmQudHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlQ2Fyb3VzZWwudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUlucHV0Q2hlY2tib3gudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUlucHV0UmFkaW8udnVlIiwiLi4vc3JjL3V0aWxpdGllcy92YWxpZGF0aW9uLnRzIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUlucHV0U2VsZWN0LnZ1ZSIsIi4uL3NyYy90eXBlcy9UZXh0SW5wdXQudHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSW5wdXRUZXh0LnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dFRleHRhcmVhLnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVMaW5rLnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVNb2RhbC52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlUGFnaW5hdGlvbi52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlVGFicy52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlVG9nZ2xlLnZ1ZSIsIi4uL3NyYy90eXBlcy9CcmVha3BvaW50LnRzIiwiLi4vc3JjL3R5cGVzL0Zvcm1hdHRlZC50cyIsIi4uL3NyYy90eXBlcy9MaXN0aW5nTWVkaWEudHMiLCIuLi9zcmMvdHlwZXMvVmFsaWRhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSB2dWUvc29ydC1rZXlzICovXG5cbmltcG9ydCB0eXBlIHsgQnJlYWtwb2ludCB9IGZyb20gJ0AvdHlwZXMvQnJlYWtwb2ludCc7XG5cbmV4cG9ydCBjb25zdCBDU1MgPSB7XG4gIHdpdGhCcmVha3BvaW50OiAodXRpbGl0aWVzOiBzdHJpbmdbXSwgYnJlYWtwb2ludDogQnJlYWtwb2ludCk6IHN0cmluZ1tdID0+IHtcbiAgICByZXR1cm4gdXRpbGl0aWVzLm1hcCgodXRpbGl0eSkgPT4gYCR7YnJlYWtwb2ludH0tJHt1dGlsaXR5fWApO1xuICB9LFxuICBBTElHTjoge1xuICAgIFg6IHtcbiAgICAgIENFTlRFUjogJ3RpZGUtdGV4dC1jZW50ZXInLFxuICAgICAgTEVGVDogJ3RpZGUtdGV4dC1sZWZ0JyxcbiAgICAgIFJJR0hUOiAndGlkZS10ZXh0LXJpZ2h0JyxcbiAgICB9LFxuICAgIFk6IHtcbiAgICAgIElOSVRJQUw6ICd0aWRlLWFsaWduLWluaXRpYWwnLFxuICAgICAgTUlERExFOiAndGlkZS1hbGlnbi1taWRkbGUnLFxuICAgIH0sXG4gIH0sXG4gIEFYSVMxOiB7XG4gICAgQVJPVU5EOiAndGlkZS1heGlzMS1hcm91bmQnLFxuICAgIEJFVFdFRU46ICd0aWRlLWF4aXMxLWJldHdlZW4nLFxuICAgIENFTlRFUjogJ3RpZGUtYXhpczEtY2VudGVyJyxcbiAgICBFTkQ6ICd0aWRlLWF4aXMxLWVuZCcsXG4gICAgU1RBUlQ6ICd0aWRlLWF4aXMxLXN0YXJ0JyxcbiAgfSxcbiAgQVhJUzI6IHtcbiAgICBBUk9VTkQ6ICd0aWRlLWF4aXMyLWFyb3VuZCcsXG4gICAgQ0VOVEVSOiAndGlkZS1heGlzMi1jZW50ZXInLFxuICAgIEVORDogJ3RpZGUtYXhpczItZW5kJyxcbiAgICBTVEFSVDogJ3RpZGUtYXhpczItc3RhcnQnLFxuICB9LFxuICBCRzoge1xuICAgIElOSVRJQUw6ICd0aWRlLWJnLWluaXRpYWwnLFxuICAgIEJMVVI6ICd0aWRlLWJnLWJsdXInLFxuICAgIEVSUk9SOiAndGlkZS1iZy1lcnJvcicsXG4gICAgSU5GTzogJ3RpZGUtYmctaW5mbycsXG4gICAgUFJJTUFSWTogJ3RpZGUtYmctcHJpbWFyeScsXG4gICAgU0VDT05EQVJZOiAndGlkZS1iZy1zZWNvbmRhcnknLFxuICAgIFNVQ0NFU1M6ICd0aWRlLWJnLXN1Y2Nlc3MnLFxuICAgIFNVUkZBQ0U6IHtcbiAgICAgIEFDQ0VOVDogJ3RpZGUtYmctc3VyZmFjZS1hY2NlbnQnLFxuICAgICAgQUNDRU5UX1ZBUklBTlQ6ICd0aWRlLWJnLXN1cmZhY2UtYWNjZW50LXZhcmlhbnQnLFxuICAgICAgQlJBTkQ6ICd0aWRlLWJnLXN1cmZhY2UtYnJhbmQnLFxuICAgICAgREVGQVVMVDogJ3RpZGUtYmctc3VyZmFjZScsXG4gICAgICBFUlJPUjogJ3RpZGUtYmctc3VyZmFjZS1lcnJvcicsXG4gICAgICBGTE9BVElORzogJ3RpZGUtYmctc3VyZmFjZS1mbG9hdGluZycsXG4gICAgICBHUkFESUVOVDogJ3RpZGUtYmctc3VyZmFjZS1ncmFkaWVudCcsXG4gICAgICBJTkZPOiAndGlkZS1iZy1zdXJmYWNlLWluZm8nLFxuICAgICAgU1VDQ0VTUzogJ3RpZGUtYmctc3VyZmFjZS1zdWNjZXNzJyxcbiAgICAgIFZBUklBTlQ6ICd0aWRlLWJnLXN1cmZhY2UtdmFyaWFudCcsXG4gICAgICBXQVJOSU5HOiAndGlkZS1iZy1zdXJmYWNlLXdhcm5pbmcnLFxuICAgIH0sXG4gICAgVFJBTlNQQVJFTlQ6IHtcbiAgICAgIE9ORV9IVU5EUkVEOiAndGlkZS10cmFuc3BhcmVudC0xMDAnLFxuICAgICAgVFdPX0hVTkRSRUQ6ICd0aWRlLXRyYW5zcGFyZW50LTIwMCcsXG4gICAgICBUSFJFRV9IVU5EUkVEOiAndGlkZS10cmFuc3BhcmVudC0zMDAnLFxuICAgICAgRk9VUl9IVU5EUkVEOiAndGlkZS10cmFuc3BhcmVudC00MDAnLFxuICAgIH0sXG4gICAgV0FSTklORzogJ3RpZGUtYmctd2FybmluZycsXG4gIH0sXG4gIEJPUkRFUjoge1xuICAgIENPTE9SOiB7XG4gICAgICBJTklUSUFMOiAndGlkZS1ib3JkZXItY29sb3ItaW5pdGlhbCcsXG4gICAgICBERUZBVUxUOiAndGlkZS1ib3JkZXInLFxuICAgICAgRkxPQVRJTkc6ICd0aWRlLWJvcmRlci1mbG9hdGluZycsXG4gICAgICBISUdIOiAndGlkZS1ib3JkZXItaGlnaCcsXG4gICAgICBMT1c6ICd0aWRlLWJvcmRlci1sb3cnLFxuICAgICAgUFJJTUFSWTogJ3RpZGUtYm9yZGVyLXByaW1hcnknLFxuICAgIH0sXG4gICAgUkFESVVTOiB7XG4gICAgICBaRVJPOiAndGlkZS1yYWRpdXMtMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1yYWRpdXMtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLXJhZGl1cy0xLzInLFxuICAgICAgT05FOiAndGlkZS1yYWRpdXMtMScsXG4gICAgICBGVUxMOiAndGlkZS1yYWRpdXMtZnVsbCcsXG4gICAgfSxcbiAgICBCT1RUT006IHtcbiAgICAgIFpFUk86ICd0aWRlLWJvcmRlci1ib3R0b20tMCcsXG4gICAgICBPTkU6ICd0aWRlLWJvcmRlci1ib3R0b20tMScsXG4gICAgICBUV086ICd0aWRlLWJvcmRlci1ib3R0b20tMicsXG4gICAgfSxcbiAgICBGVUxMOiB7XG4gICAgICBaRVJPOiAndGlkZS1ib3JkZXItMCcsXG4gICAgICBPTkU6ICd0aWRlLWJvcmRlci0xJyxcbiAgICAgIFRXTzogJ3RpZGUtYm9yZGVyLTInLFxuICAgIH0sXG4gICAgTEVGVDoge1xuICAgICAgWkVSTzogJ3RpZGUtYm9yZGVyLWxlZnQtMCcsXG4gICAgICBPTkU6ICd0aWRlLWJvcmRlci1sZWZ0LTEnLFxuICAgICAgVFdPOiAndGlkZS1ib3JkZXItbGVmdC0yJyxcbiAgICB9LFxuICAgIFJJR0hUOiB7XG4gICAgICBaRVJPOiAndGlkZS1ib3JkZXItcmlnaHQtMCcsXG4gICAgICBPTkU6ICd0aWRlLWJvcmRlci1yaWdodC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtYm9yZGVyLXJpZ2h0LTInLFxuICAgIH0sXG4gICAgVE9QOiB7XG4gICAgICBaRVJPOiAndGlkZS1ib3JkZXItdG9wLTAnLFxuICAgICAgT05FOiAndGlkZS1ib3JkZXItdG9wLTEnLFxuICAgICAgVFdPOiAndGlkZS1ib3JkZXItdG9wLTInLFxuICAgIH0sXG4gIH0sXG4gIEJPWF9TSVpJTkc6IHtcbiAgICBCT1JERVJfQk9YOiAndGlkZS1ib3gtYm9yZGVyJyxcbiAgICBDT05URU5UX0JPWDogJ3RpZGUtYm94LWNvbnRlbnQnLFxuICB9LFxuICBCUkVBS19XT1JEOiB7XG4gICAgT0ZGOiAndGlkZS1icmVhay1pbml0aWFsJyxcbiAgICBPTjogJ3RpZGUtYnJlYWstd29yZCcsXG4gIH0sXG4gIENPTFVNTlM6IHtcbiAgICBJTklUSUFMOiAndGlkZS1jb2x1bW5zLWluaXRpYWwnLFxuICAgIE9ORTogJ3RpZGUtY29sdW1ucy0xJyxcbiAgICBUV086ICd0aWRlLWNvbHVtbnMtMicsXG4gICAgVEhSRUU6ICd0aWRlLWNvbHVtbnMtMycsXG4gICAgRk9VUjogJ3RpZGUtY29sdW1ucy00JyxcbiAgfSxcbiAgQ1VSU09SOiB7XG4gICAgTk9UX0FMTE9XRUQ6ICd0aWRlLWN1cnNvci1ub3QtYWxsb3dlZCcsXG4gICAgUE9JTlRFUjogJ3RpZGUtY3Vyc29yLXBvaW50ZXInLFxuICAgIFRFWFQ6ICd0aWRlLWN1cnNvci10ZXh0JyxcbiAgfSxcbiAgRElTUExBWToge1xuICAgIEJMT0NLOiAndGlkZS1kaXNwbGF5LWJsb2NrJyxcbiAgICBDT05URU5UUzogJ3RpZGUtZGlzcGxheS1jb250ZW50cycsXG4gICAgRkxFWDogJ3RpZGUtZGlzcGxheS1mbGV4JyxcbiAgICBHUklEOiAndGlkZS1kaXNwbGF5LWdyaWQnLFxuICAgIElOSVRJQUw6ICdpbml0aWFsJyxcbiAgICBJTkxJTkU6ICd0aWRlLWRpc3BsYXktaW5saW5lJyxcbiAgICBJTkxJTkVfQkxPQ0s6ICd0aWRlLWRpc3BsYXktaW5saW5lLWJsb2NrJyxcbiAgICBJTkxJTkVfRkxFWDogJ3RpZGUtZGlzcGxheS1pbmxpbmUtZmxleCcsXG4gICAgTk9ORTogJ3RpZGUtZGlzcGxheS1ub25lJyxcbiAgfSxcbiAgRkxFWDoge1xuICAgIEJBU0lTOiB7XG4gICAgICBBVVRPOiAndGlkZS1mbGV4LWJhc2lzLWF1dG8nLFxuICAgICAgWkVSTzogJ3RpZGUtZmxleC1iYXNpcy0wJyxcbiAgICB9LFxuICAgIERJUkVDVElPTjoge1xuICAgICAgQ09MVU1OOiAndGlkZS1mbGV4LWNvbHVtbicsXG4gICAgICBDT0xVTU5fUkVWRVJTRTogJ3RpZGUtZmxleC1jb2x1bW4tcmV2ZXJzZScsXG4gICAgICBST1c6ICd0aWRlLWZsZXgtcm93JyxcbiAgICAgIFJPV19SRVZFUlNFOiAndGlkZS1mbGV4LXJvdy1yZXZlcnNlJyxcbiAgICB9LFxuICAgIEdST1c6IHtcbiAgICAgIE9GRjogJ3RpZGUtZ3Jvdy1ub25lJyxcbiAgICAgIE9OOiAndGlkZS1ncm93JyxcbiAgICB9LFxuICAgIFNIUklOSzoge1xuICAgICAgT0ZGOiAndGlkZS1zaHJpbmstbm9uZScsXG4gICAgICBPTjogJ3RpZGUtc2hyaW5rJyxcbiAgICB9LFxuICAgIFdSQVA6ICd0aWRlLWZsZXgtd3JhcCcsXG4gIH0sXG4gIEZPTlQ6IHtcbiAgICBDT0xPUjoge1xuICAgICAgUFJJTUFSWTogJ3RpZGUtZm9udC1vbi1wcmltYXJ5JyxcbiAgICAgIFNFQ09OREFSWTogJ3RpZGUtZm9udC1vbi1zZWNvbmRhcnknLFxuICAgICAgU1VSRkFDRToge1xuICAgICAgICBCUkFORDogJ3RpZGUtZm9udC1vbi1zdXJmYWNlLWJyYW5kJyxcbiAgICAgICAgREVGQVVMVDogJ3RpZGUtZm9udC1vbi1zdXJmYWNlJyxcbiAgICAgICAgSU5WRVJTRTogJ3RpZGUtZm9udC1vbi1zdXJmYWNlLWludmVyc2UnLFxuICAgICAgICBWQVJJQU5UOiAndGlkZS1mb250LW9uLXN1cmZhY2UtdmFyaWFudCcsXG4gICAgICAgIFZBUklBTlRfSU5WRVJTRTogJ3RpZGUtZm9udC1vbi1zdXJmYWNlLXZhcmlhbnQtaW52ZXJzZScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgUk9MRToge1xuICAgICAgRElTUExBWV8xOiAndGlkZS10eXBvZ3JhcGh5LWRpc3BsYXktMScsXG4gICAgICBIRUFETElORV8xOiAndGlkZS10eXBvZ3JhcGh5LWhlYWRsaW5lLTEnLFxuICAgICAgSEVBRExJTkVfMjogJ3RpZGUtdHlwb2dyYXBoeS1oZWFkbGluZS0yJyxcbiAgICAgIEhFQURMSU5FXzM6ICd0aWRlLXR5cG9ncmFwaHktaGVhZGxpbmUtMycsXG4gICAgICBUSVRMRV8xOiAndGlkZS10eXBvZ3JhcGh5LXRpdGxlLTEnLFxuICAgICAgVElUTEVfMjogJ3RpZGUtdHlwb2dyYXBoeS10aXRsZS0yJyxcbiAgICAgIEJPRFlfMTogJ3RpZGUtdHlwb2dyYXBoeS1ib2R5LTEnLFxuICAgICAgQk9EWV8yOiAndGlkZS10eXBvZ3JhcGh5LWJvZHktMicsXG4gICAgICBMQUJFTF8xOiAndGlkZS10eXBvZ3JhcGh5LWxhYmVsLTEnLFxuICAgICAgTEFCRUxfMV9TRU1JQk9MRDogJ3RpZGUtdHlwb2dyYXBoeS1sYWJlbC0xLXNlbWlib2xkJyxcbiAgICAgIExBQkVMXzI6ICd0aWRlLXR5cG9ncmFwaHktbGFiZWwtMicsXG4gICAgICBMQUJFTF8yX1NFTUlCT0xEOiAndGlkZS10eXBvZ3JhcGh5LWxhYmVsLTItc2VtaWJvbGQnLFxuICAgICAgTEFCRUxfMzogJ3RpZGUtdHlwb2dyYXBoeS1sYWJlbC0zJyxcbiAgICAgIExJTktfMTogJ3RpZGUtdHlwb2dyYXBoeS1saW5rLTEnLFxuICAgICAgTElOS18yOiAndGlkZS10eXBvZ3JhcGh5LWxpbmstMicsXG4gICAgICBMSU5LXzM6ICd0aWRlLXR5cG9ncmFwaHktbGluay0zJyxcbiAgICAgIEJVVFRPTl8xOiAndGlkZS10eXBvZ3JhcGh5LWJ1dHRvbi0xJyxcbiAgICAgIEJVVFRPTl8yOiAndGlkZS10eXBvZ3JhcGh5LWJ1dHRvbi0yJyxcbiAgICB9LFxuICAgIFNJWkU6IHtcbiAgICAgIFRXRUxWRTogJ3RpZGUtZm9udC0xMicsXG4gICAgICBGT1VSVEVFTjogJ3RpZGUtZm9udC0xNCcsXG4gICAgICBTSVhURUVOOiAndGlkZS1mb250LTE2JyxcbiAgICAgIFRXRU5UWTogJ3RpZGUtZm9udC0yMCcsXG4gICAgICBUV0VOVFlfRk9VUjogJ3RpZGUtZm9udC0yNCcsXG4gICAgICBUSElSVFlfVFdPOiAndGlkZS1mb250LTMyJyxcbiAgICB9LFxuICAgIFdFSUdIVDoge1xuICAgICAgRk9VUl9IVU5EUkVEOiAndGlkZS1mb250LTQwMCcsXG4gICAgICBGSVZFX0hVTkRSRUQ6ICd0aWRlLWZvbnQtNTAwJyxcbiAgICAgIFNJWF9IVU5EUkVEOiAndGlkZS1mb250LTYwMCcsXG4gICAgICBTRVZFTl9IVU5EUkVEOiAndGlkZS1mb250LTcwMCcsXG4gICAgfSxcbiAgfSxcbiAgR0FQOiB7XG4gICAgWkVSTzogJ3RpZGUtZ2FwLTAnLFxuICAgIFFVQVJURVI6ICd0aWRlLWdhcC0xLzQnLFxuICAgIEhBTEY6ICd0aWRlLWdhcC0xLzInLFxuICAgIE9ORTogJ3RpZGUtZ2FwLTEnLFxuICAgIFRXTzogJ3RpZGUtZ2FwLTInLFxuICAgIEZPVVI6ICd0aWRlLWdhcC00JyxcbiAgfSxcbiAgR1JJRDoge1xuICAgIEVORDoge1xuICAgICAgT05FOiAndGlkZS1lbmQtMScsXG4gICAgICBUV086ICd0aWRlLWVuZC0yJyxcbiAgICAgIFRIUkVFOiAndGlkZS1lbmQtMycsXG4gICAgICBGT1VSOiAndGlkZS1lbmQtNCcsXG4gICAgICBGSVZFOiAndGlkZS1lbmQtNScsXG4gICAgICBTSVg6ICd0aWRlLWVuZC02JyxcbiAgICAgIFNFVkVOOiAndGlkZS1lbmQtNycsXG4gICAgICBFSUdIVDogJ3RpZGUtZW5kLTgnLFxuICAgICAgTklORTogJ3RpZGUtZW5kLTknLFxuICAgICAgVEVOOiAndGlkZS1lbmQtMTAnLFxuICAgICAgRUxFVkVOOiAndGlkZS1lbmQtMTEnLFxuICAgICAgVFdFTFZFOiAndGlkZS1lbmQtMTInLFxuICAgICAgVEhJUlRFRU46ICd0aWRlLWVuZC0xMycsXG4gICAgfSxcbiAgICBGTFVJRDogJ3RpZGUtZmx1aWQnLFxuICAgIElURU06ICd0aWRlLWdyaWQtaXRlbScsXG4gICAgTEFZT1VUOiAndGlkZS1ncmlkLWxheW91dCcsXG4gICAgU1RBUlQ6IHtcbiAgICAgIFpFUk86ICd0aWRlLXN0YXJ0LTAnLFxuICAgICAgT05FOiAndGlkZS1zdGFydC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtc3RhcnQtMicsXG4gICAgICBUSFJFRTogJ3RpZGUtc3RhcnQtMycsXG4gICAgICBGT1VSOiAndGlkZS1zdGFydC00JyxcbiAgICAgIEZJVkU6ICd0aWRlLXN0YXJ0LTUnLFxuICAgICAgU0lYOiAndGlkZS1zdGFydC02JyxcbiAgICAgIFNFVkVOOiAndGlkZS1zdGFydC03JyxcbiAgICAgIEVJR0hUOiAndGlkZS1zdGFydC04JyxcbiAgICAgIE5JTkU6ICd0aWRlLXN0YXJ0LTknLFxuICAgICAgVEVOOiAndGlkZS1zdGFydC0xMCcsXG4gICAgICBFTEVWRU46ICd0aWRlLXN0YXJ0LTExJyxcbiAgICAgIFRXRUxWRTogJ3RpZGUtc3RhcnQtMTInLFxuICAgIH0sXG4gICAgWEw6ICd0aWRlLWdyaWQteGwnLFxuICB9LFxuICBIRUlHSFQ6IHtcbiAgICBBVVRPOiAndGlkZS1oZWlnaHQtYXV0bycsXG4gICAgWkVSTzogJ3RpZGUtaGVpZ2h0LTAnLFxuICAgIEZVTEw6ICd0aWRlLWhlaWdodC1mdWxsJyxcbiAgfSxcbiAgSVNPTEFUSU9OOiB7XG4gICAgSVNPTEFURTogJ3RpZGUtaXNvbGF0ZScsXG4gIH0sXG4gIExJU1RfQlVMTEVUUzoge1xuICAgIE9GRjogJ3RpZGUtbGlzdC1ub25lJyxcbiAgfSxcbiAgTUFSR0lOOiB7XG4gICAgQk9UVE9NOiB7XG4gICAgICBaRVJPOiAndGlkZS1tYXJnaW4tYm90dG9tLTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLWJvdHRvbS0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtbWFyZ2luLWJvdHRvbS0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tYm90dG9tLTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4tYm90dG9tLTInLFxuICAgICAgRk9VUjogJ3RpZGUtbWFyZ2luLWJvdHRvbS00JyxcbiAgICB9LFxuICAgIEZVTEw6IHtcbiAgICAgIFpFUk86ICd0aWRlLW1hcmdpbi0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLW1hcmdpbi0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtbWFyZ2luLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi0xJyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLTInLFxuICAgICAgRk9VUjogJ3RpZGUtbWFyZ2luLTQnLFxuICAgIH0sXG4gICAgTEVGVDoge1xuICAgICAgQVVUTzogJ3RpZGUtbWFyZ2luLWxlZnQtYXV0bycsXG4gICAgICBaRVJPOiAndGlkZS1tYXJnaW4tbGVmdC0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLW1hcmdpbi1sZWZ0LTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tbGVmdC0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tbGVmdC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLWxlZnQtMicsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4tbGVmdC00JyxcbiAgICB9LFxuICAgIFJJR0hUOiB7XG4gICAgICBBVVRPOiAndGlkZS1tYXJnaW4tcmlnaHQtYXV0bycsXG4gICAgICBaRVJPOiAndGlkZS1tYXJnaW4tcmlnaHQtMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4tcmlnaHQtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi1yaWdodC0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tcmlnaHQtMScsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi1yaWdodC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi1yaWdodC00JyxcbiAgICB9LFxuICAgIFRPUDoge1xuICAgICAgWkVSTzogJ3RpZGUtbWFyZ2luLXRvcC0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLW1hcmdpbi10b3AtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi10b3AtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtbWFyZ2luLXRvcC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLXRvcC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi10b3AtNCcsXG4gICAgfSxcbiAgICBYOiB7XG4gICAgICBBVVRPOiAndGlkZS1tYXJnaW4teC1hdXRvJyxcbiAgICAgIFpFUk86ICd0aWRlLW1hcmdpbi14LTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLXgtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi14LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi14LTEnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4teC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi14LTQnLFxuICAgIH0sXG4gICAgWToge1xuICAgICAgWkVSTzogJ3RpZGUtbWFyZ2luLXktMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4teS0xLzQnLFxuICAgICAgSEFMRjogJ3RpZGUtbWFyZ2luLXktMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtbWFyZ2luLXktMScsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi15LTInLFxuICAgICAgRk9VUjogJ3RpZGUtbWFyZ2luLXktNCcsXG4gICAgfSxcbiAgfSxcbiAgT0JKRUNUOiB7XG4gICAgQ0VOVEVSOiAndGlkZS1vYmplY3QtY2VudGVyJyxcbiAgICBDT05UQUlOOiAndGlkZS1vYmplY3QtY29udGFpbicsXG4gICAgQ09WRVI6ICd0aWRlLW9iamVjdC1jb3ZlcicsXG4gICAgU0NBTEVfRE9XTjogJ3RpZGUtb2JqZWN0LXNjYWxlLWRvd24nLFxuICB9LFxuICBPUEFDSVRZOiB7XG4gICAgT0ZGOiAndGlkZS1vcGFjaXR5LW5vbmUnLFxuICAgIE9OOiAndGlkZS1vcGFjaXR5JyxcbiAgfSxcbiAgT1ZFUkZMT1c6IHtcbiAgICBYOiB7XG4gICAgICBBVVRPOiAndGlkZS14LWF1dG8nLFxuICAgICAgSElEREVOOiAndGlkZS14LWhpZGRlbicsXG4gICAgICBTQ1JPTEw6ICd0aWRlLXgtc2Nyb2xsJyxcbiAgICB9LFxuICAgIFhZOiB7XG4gICAgICBBVVRPOiAndGlkZS14eS1hdXRvJyxcbiAgICAgIEhJRERFTjogJ3RpZGUteHktaGlkZGVuJyxcbiAgICB9LFxuICAgIFk6IHtcbiAgICAgIEFVVE86ICd0aWRlLXktYXV0bycsXG4gICAgICBISURERU46ICd0aWRlLXktaGlkZGVuJyxcbiAgICB9LFxuICB9LFxuICBQQURESU5HOiB7XG4gICAgQk9UVE9NOiB7XG4gICAgICBaRVJPOiAndGlkZS1wYWRkaW5nLWJvdHRvbS0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmctYm90dG9tLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLWJvdHRvbS0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLWJvdHRvbS0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy1ib3R0b20tMicsXG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLWJvdHRvbS00JyxcbiAgICB9LFxuICAgIEZVTEw6IHtcbiAgICAgIFpFUk86ICd0aWRlLXBhZGRpbmctMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1wYWRkaW5nLTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmctMScsXG4gICAgICBUV086ICd0aWRlLXBhZGRpbmctMicsXG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLTQnLFxuICAgIH0sXG4gICAgTEVGVDoge1xuICAgICAgWkVSTzogJ3RpZGUtcGFkZGluZy1sZWZ0LTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy1sZWZ0LTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLWxlZnQtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy1sZWZ0LTEnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLWxlZnQtMicsXG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLWxlZnQtNCcsXG4gICAgfSxcbiAgICBSSUdIVDoge1xuICAgICAgWkVSTzogJ3RpZGUtcGFkZGluZy1yaWdodC0wJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLXBhZGRpbmctcmlnaHQtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmctcmlnaHQtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy1yaWdodC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy1yaWdodC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmctcmlnaHQtNCcsXG4gICAgfSxcbiAgICBUT1A6IHtcbiAgICAgIFpFUk86ICd0aWRlLXBhZGRpbmctdG9wLTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy10b3AtMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmctdG9wLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmctdG9wLTEnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLXRvcC0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmctdG9wLTQnLFxuICAgIH0sXG4gICAgWDoge1xuICAgICAgWkVSTzogJ3RpZGUtcGFkZGluZy14LTAnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy14LTEvNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLXgtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy14LTEnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLXgtMicsXG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLXgtNCcsXG4gICAgfSxcbiAgICBZOiB7XG4gICAgICBaRVJPOiAndGlkZS1wYWRkaW5nLXktMCcsXG4gICAgICBRVUFSVEVSOiAndGlkZS1wYWRkaW5nLXktMS80JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmcteS0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLXktMScsXG4gICAgICBUV086ICd0aWRlLXBhZGRpbmcteS0yJyxcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmcteS00JyxcbiAgICB9LFxuICB9LFxuICBQT0lOVEVSX0VWRU5UUzoge1xuICAgIE9GRjogJ3RpZGUtcG9pbnRlci1ldmVudHMtbm9uZScsXG4gICAgT046ICd0aWRlLXBvaW50ZXItZXZlbnRzJyxcbiAgfSxcbiAgUE9TSVRJT046IHtcbiAgICBBQlNPTFVURTogJ3RpZGUtcG9zaXRpb24tYWJzb2x1dGUnLFxuICAgIEZJWEVEOiAndGlkZS1wb3NpdGlvbi1maXhlZCcsXG4gICAgUkVMQVRJVkU6ICd0aWRlLXBvc2l0aW9uLXJlbGF0aXZlJyxcbiAgICBTVEFUSUM6ICd0aWRlLXBvc2l0aW9uLXN0YXRpYycsXG4gICAgU1RJQ0tZOiAndGlkZS1wb3NpdGlvbi1zdGlja3knLFxuICB9LFxuICBQT1NJVElPTklORzoge1xuICAgIEJPVFRPTTogJ3RpZGUtYm90dG9tLTAnLFxuICAgIExFRlQ6ICd0aWRlLWxlZnQtMCcsXG4gICAgUklHSFQ6ICd0aWRlLXJpZ2h0LTAnLFxuICAgIFRPUDogJ3RpZGUtdG9wLTAnLFxuICB9LFxuICBTQ1JPTExCQVI6IHtcbiAgICBPRkY6ICd0aWRlLXNjcm9sbGJhci1ub25lJyxcbiAgfSxcbiAgU0hBRE9XOiB7XG4gICAgSU5JVElBTDogJ3RpZGUtc2hhZG93LWluaXRpYWwnLFxuICAgIEJPVFRPTTogJ3RpZGUtc2hhZG93LWJvdHRvbScsXG4gICAgVE9QOiAndGlkZS1zaGFkb3ctdG9wJyxcbiAgfSxcbiAgU05BUDoge1xuICAgIE9OOiAndGlkZS1zY3JvbGwtc25hcCcsXG4gIH0sXG4gIFNOQVBfQUxJR046IHtcbiAgICBTVEFSVDogJ3RpZGUtc25hcC1zdGFydCcsXG4gIH0sXG4gIFRFWFRfVFJBTlNGT1JNOiB7XG4gICAgTE9XRVI6ICd0aWRlLXRleHQtdHJhbnNmb3JtLWxvd2VyJyxcbiAgICBOT05FOiAndGlkZS10ZXh0LXRyYW5zZm9ybS1ub25lJyxcbiAgICBVUFBFUjogJ3RpZGUtdGV4dC10cmFuc2Zvcm0tdXBwZXInLFxuICB9LFxuICBVTkRFUkxJTkU6IHtcbiAgICBIT1ZFUjogJ3RpZGUtdW5kZXJsaW5lLWhvdmVyJyxcbiAgICBPRkY6ICd0aWRlLXVuZGVybGluZS1ub25lJyxcbiAgICBPTjogJ3RpZGUtdW5kZXJsaW5lJyxcbiAgfSxcbiAgVklTSUJJTElUWToge1xuICAgIE9GRjogJ3RpZGUtdmlzaWJsZS1ub25lJyxcbiAgICBPTjogJ3RpZGUtdmlzaWJsZScsXG4gIH0sXG4gIFdISVRFU1BBQ0VfV1JBUDoge1xuICAgIE9GRjogJ3RpZGUtd2hpdGVzcGFjZS1ub3dyYXAnLFxuICB9LFxuICBXSURUSDoge1xuICAgIEFVVE86ICd0aWRlLXdpZHRoLWF1dG8nLFxuICAgIFpFUk86ICd0aWRlLXdpZHRoLTAnLFxuICAgIEZVTEw6ICd0aWRlLXdpZHRoLWZ1bGwnLFxuICAgIE1BWF9GVUxMOiAndGlkZS1tYXgtd2lkdGgtZnVsbCcsXG4gIH0sXG4gIFpfSU5ERVg6IHtcbiAgICBJTklUSUFMOiAndGlkZS16LWluZGV4LWluaXRpYWwnLFxuICAgIE9ORTogJ3RpZGUtei1pbmRleC0xJyxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIENzc1V0aWxpdHkgPSAodHlwZW9mIENTUylba2V5b2YgdHlwZW9mIENTU107XG5cbmV4cG9ydCBjb25zdCBjc3NTb3J0T3JkZXIgPSBbXG4gIENTUy5ESVNQTEFZLkJMT0NLLFxuICBDU1MuRElTUExBWS5DT05URU5UUyxcbiAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgQ1NTLkRJU1BMQVkuR1JJRCxcbiAgQ1NTLkRJU1BMQVkuTk9ORSxcbiAgQ1NTLkRJU1BMQVkuSU5JVElBTCxcbiAgQ1NTLkRJU1BMQVkuSU5MSU5FLFxuICBDU1MuRElTUExBWS5JTkxJTkVfQkxPQ0ssXG4gIENTUy5ESVNQTEFZLklOTElORV9GTEVYLFxuICBDU1MuQVhJUzEuQVJPVU5ELFxuICBDU1MuQVhJUzEuQkVUV0VFTixcbiAgQ1NTLkFYSVMxLkNFTlRFUixcbiAgQ1NTLkFYSVMxLkVORCxcbiAgQ1NTLkFYSVMxLlNUQVJULFxuICBDU1MuQVhJUzIuQVJPVU5ELFxuICBDU1MuQVhJUzIuQ0VOVEVSLFxuICBDU1MuQVhJUzIuRU5ELFxuICBDU1MuQVhJUzIuU1RBUlQsXG4gIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sXG4gIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU5fUkVWRVJTRSxcbiAgQ1NTLkZMRVguRElSRUNUSU9OLlJPVyxcbiAgQ1NTLkZMRVguRElSRUNUSU9OLlJPV19SRVZFUlNFLFxuICBDU1MuR0FQLk9ORSxcbiAgQ1NTLkdBUC5IQUxGLFxuICBDU1MuR0FQLlFVQVJURVIsXG4gIENTUy5HQVAuVFdPLFxuICBDU1MuR0FQLkZPVVIsXG4gIENTUy5GTEVYLkJBU0lTLlpFUk8sXG4gIENTUy5GTEVYLkdST1cuT04sXG4gIENTUy5GTEVYLkdST1cuT0ZGLFxuICBDU1MuRkxFWC5TSFJJTksuT04sXG4gIENTUy5GTEVYLlNIUklOSy5PRkYsXG4gIENTUy5GTEVYLldSQVAsXG4gIENTUy5QT1NJVElPTi5BQlNPTFVURSxcbiAgQ1NTLlBPU0lUSU9OLkZJWEVELFxuICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gIENTUy5QT1NJVElPTi5TVElDS1ksXG4gIENTUy5QT1NJVElPTklORy5UT1AsXG4gIENTUy5QT1NJVElPTklORy5SSUdIVCxcbiAgQ1NTLlBPU0lUSU9OSU5HLkJPVFRPTSxcbiAgQ1NTLlBPU0lUSU9OSU5HLkxFRlQsXG4gIENTUy5CT1hfU0laSU5HLkJPUkRFUl9CT1gsXG4gIENTUy5CT1hfU0laSU5HLkNPTlRFTlRfQk9YLFxuICBDU1MuTUFSR0lOLkZVTEwuWkVSTyxcbiAgQ1NTLk1BUkdJTi5GVUxMLk9ORSxcbiAgQ1NTLk1BUkdJTi5GVUxMLkhBTEYsXG4gIENTUy5NQVJHSU4uRlVMTC5RVUFSVEVSLFxuICBDU1MuTUFSR0lOLkZVTEwuVFdPLFxuICBDU1MuTUFSR0lOLkZVTEwuRk9VUixcbiAgQ1NTLk1BUkdJTi5ZLlpFUk8sXG4gIENTUy5NQVJHSU4uWS5PTkUsXG4gIENTUy5NQVJHSU4uWS5IQUxGLFxuICBDU1MuTUFSR0lOLlkuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5ZLlRXTyxcbiAgQ1NTLk1BUkdJTi5ZLkZPVVIsXG4gIENTUy5NQVJHSU4uVE9QLlpFUk8sXG4gIENTUy5NQVJHSU4uVE9QLk9ORSxcbiAgQ1NTLk1BUkdJTi5UT1AuSEFMRixcbiAgQ1NTLk1BUkdJTi5UT1AuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5UT1AuVFdPLFxuICBDU1MuTUFSR0lOLlRPUC5GT1VSLFxuICBDU1MuTUFSR0lOLlguWkVSTyxcbiAgQ1NTLk1BUkdJTi5YLk9ORSxcbiAgQ1NTLk1BUkdJTi5YLkhBTEYsXG4gIENTUy5NQVJHSU4uWC5RVUFSVEVSLFxuICBDU1MuTUFSR0lOLlguVFdPLFxuICBDU1MuTUFSR0lOLlguRk9VUixcbiAgQ1NTLk1BUkdJTi5YLkFVVE8sXG4gIENTUy5NQVJHSU4uUklHSFQuWkVSTyxcbiAgQ1NTLk1BUkdJTi5SSUdIVC5PTkUsXG4gIENTUy5NQVJHSU4uUklHSFQuSEFMRixcbiAgQ1NTLk1BUkdJTi5SSUdIVC5RVUFSVEVSLFxuICBDU1MuTUFSR0lOLlJJR0hULlRXTyxcbiAgQ1NTLk1BUkdJTi5SSUdIVC5GT1VSLFxuICBDU1MuTUFSR0lOLlJJR0hULkFVVE8sXG4gIENTUy5NQVJHSU4uQk9UVE9NLlpFUk8sXG4gIENTUy5NQVJHSU4uQk9UVE9NLk9ORSxcbiAgQ1NTLk1BUkdJTi5CT1RUT00uSEFMRixcbiAgQ1NTLk1BUkdJTi5CT1RUT00uUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5CT1RUT00uVFdPLFxuICBDU1MuTUFSR0lOLkJPVFRPTS5GT1VSLFxuICBDU1MuTUFSR0lOLkxFRlQuWkVSTyxcbiAgQ1NTLk1BUkdJTi5MRUZULk9ORSxcbiAgQ1NTLk1BUkdJTi5MRUZULkhBTEYsXG4gIENTUy5NQVJHSU4uTEVGVC5RVUFSVEVSLFxuICBDU1MuTUFSR0lOLkxFRlQuVFdPLFxuICBDU1MuTUFSR0lOLkxFRlQuRk9VUixcbiAgQ1NTLk1BUkdJTi5MRUZULkFVVE8sXG4gIENTUy5CT1JERVIuRlVMTC5PTkUsXG4gIENTUy5CT1JERVIuRlVMTC5UV08sXG4gIENTUy5CT1JERVIuVE9QLk9ORSxcbiAgQ1NTLkJPUkRFUi5UT1AuVFdPLFxuICBDU1MuQk9SREVSLlJJR0hULk9ORSxcbiAgQ1NTLkJPUkRFUi5SSUdIVC5UV08sXG4gIENTUy5CT1JERVIuQk9UVE9NLk9ORSxcbiAgQ1NTLkJPUkRFUi5CT1RUT00uVFdPLFxuICBDU1MuQk9SREVSLkxFRlQuT05FLFxuICBDU1MuQk9SREVSLkxFRlQuVFdPLFxuICBDU1MuQk9SREVSLlJBRElVUy5PTkUsXG4gIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gIENTUy5CT1JERVIuUkFESVVTLlFVQVJURVIsXG4gIENTUy5CT1JERVIuUkFESVVTLkZVTEwsXG4gIENTUy5QQURESU5HLkZVTEwuWkVSTyxcbiAgQ1NTLlBBRERJTkcuRlVMTC5PTkUsXG4gIENTUy5QQURESU5HLkZVTEwuSEFMRixcbiAgQ1NTLlBBRERJTkcuRlVMTC5RVUFSVEVSLFxuICBDU1MuUEFERElORy5GVUxMLlRXTyxcbiAgQ1NTLlBBRERJTkcuRlVMTC5GT1VSLFxuICBDU1MuUEFERElORy5ZLlpFUk8sXG4gIENTUy5QQURESU5HLlkuT05FLFxuICBDU1MuUEFERElORy5ZLkhBTEYsXG4gIENTUy5QQURESU5HLlkuUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuWS5UV08sXG4gIENTUy5QQURESU5HLlkuRk9VUixcbiAgQ1NTLlBBRERJTkcuVE9QLlpFUk8sXG4gIENTUy5QQURESU5HLlRPUC5PTkUsXG4gIENTUy5QQURESU5HLlRPUC5IQUxGLFxuICBDU1MuUEFERElORy5UT1AuUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuVE9QLlRXTyxcbiAgQ1NTLlBBRERJTkcuVE9QLkZPVVIsXG4gIENTUy5QQURESU5HLlguWkVSTyxcbiAgQ1NTLlBBRERJTkcuWC5PTkUsXG4gIENTUy5QQURESU5HLlguSEFMRixcbiAgQ1NTLlBBRERJTkcuWC5RVUFSVEVSLFxuICBDU1MuUEFERElORy5YLlRXTyxcbiAgQ1NTLlBBRERJTkcuWC5GT1VSLFxuICBDU1MuUEFERElORy5SSUdIVC5aRVJPLFxuICBDU1MuUEFERElORy5SSUdIVC5PTkUsXG4gIENTUy5QQURESU5HLlJJR0hULkhBTEYsXG4gIENTUy5QQURESU5HLlJJR0hULlFVQVJURVIsXG4gIENTUy5QQURESU5HLlJJR0hULlRXTyxcbiAgQ1NTLlBBRERJTkcuUklHSFQuRk9VUixcbiAgQ1NTLlBBRERJTkcuQk9UVE9NLlpFUk8sXG4gIENTUy5QQURESU5HLkJPVFRPTS5PTkUsXG4gIENTUy5QQURESU5HLkJPVFRPTS5IQUxGLFxuICBDU1MuUEFERElORy5CT1RUT00uUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuQk9UVE9NLlRXTyxcbiAgQ1NTLlBBRERJTkcuQk9UVE9NLkZPVVIsXG4gIENTUy5QQURESU5HLkxFRlQuWkVSTyxcbiAgQ1NTLlBBRERJTkcuTEVGVC5PTkUsXG4gIENTUy5QQURESU5HLkxFRlQuSEFMRixcbiAgQ1NTLlBBRERJTkcuTEVGVC5RVUFSVEVSLFxuICBDU1MuUEFERElORy5MRUZULlRXTyxcbiAgQ1NTLlBBRERJTkcuTEVGVC5GT1VSLFxuICBDU1MuV0lEVEguTUFYX0ZVTEwsXG4gIENTUy5XSURUSC5aRVJPLFxuICBDU1MuV0lEVEguRlVMTCxcbiAgQ1NTLkhFSUdIVC5aRVJPLFxuICBDU1MuSEVJR0hULkZVTEwsXG4gIENTUy5BTElHTi5ZLk1JRERMRSxcbiAgQ1NTLkJSRUFLX1dPUkQsXG4gIENTUy5DVVJTT1IuTk9UX0FMTE9XRUQsXG4gIENTUy5DVVJTT1IuUE9JTlRFUixcbiAgQ1NTLkNVUlNPUi5URVhULFxuICBDU1MuRk9OVC5TSVpFLlRXRUxWRSxcbiAgQ1NTLkZPTlQuU0laRS5GT1VSVEVFTixcbiAgQ1NTLkZPTlQuU0laRS5TSVhURUVOLFxuICBDU1MuRk9OVC5TSVpFLlRXRU5UWSxcbiAgQ1NTLkZPTlQuU0laRS5UV0VOVFlfRk9VUixcbiAgQ1NTLkZPTlQuU0laRS5USElSVFlfVFdPLFxuICBDU1MuRk9OVC5XRUlHSFQuRk9VUl9IVU5EUkVELFxuICBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVELFxuICBDU1MuRk9OVC5XRUlHSFQuU0lYX0hVTkRSRUQsXG4gIENTUy5GT05ULldFSUdIVC5TRVZFTl9IVU5EUkVELFxuICBDU1MuTElTVF9CVUxMRVRTLk9GRixcbiAgQ1NTLk9CSkVDVC5DRU5URVIsXG4gIENTUy5PQkpFQ1QuQ09OVEFJTixcbiAgQ1NTLk9CSkVDVC5DT1ZFUixcbiAgQ1NTLk9CSkVDVC5TQ0FMRV9ET1dOLFxuICBDU1MuUE9JTlRFUl9FVkVOVFMuT04sXG4gIENTUy5QT0lOVEVSX0VWRU5UUy5PRkYsXG4gIENTUy5TQ1JPTExCQVIuT0ZGLFxuICBDU1MuU0hBRE9XLkJPVFRPTSxcbiAgQ1NTLlNIQURPVy5UT1AsXG4gIENTUy5TTkFQLk9OLFxuICBDU1MuU05BUF9BTElHTi5TVEFSVCxcbiAgQ1NTLkFMSUdOLlguTEVGVCxcbiAgQ1NTLkFMSUdOLlguQ0VOVEVSLFxuICBDU1MuQUxJR04uWC5SSUdIVCxcbiAgQ1NTLlRFWFRfVFJBTlNGT1JNLkxPV0VSLFxuICBDU1MuVEVYVF9UUkFOU0ZPUk0uTk9ORSxcbiAgQ1NTLlRFWFRfVFJBTlNGT1JNLlVQUEVSLFxuICBDU1MuVU5ERVJMSU5FLkhPVkVSLFxuICBDU1MuVU5ERVJMSU5FLk9GRixcbiAgQ1NTLlVOREVSTElORS5PTixcbiAgQ1NTLlZJU0lCSUxJVFkuT04sXG4gIENTUy5WSVNJQklMSVRZLk9GRixcbiAgQ1NTLldISVRFU1BBQ0VfV1JBUC5PRkYsXG4gIENTUy5PVkVSRkxPVy5YWS5BVVRPLFxuICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICBDU1MuT1ZFUkZMT1cuWC5BVVRPLFxuICBDU1MuT1ZFUkZMT1cuWC5ISURERU4sXG4gIENTUy5PVkVSRkxPVy5YLlNDUk9MTCxcbiAgQ1NTLk9WRVJGTE9XLlkuQVVUTyxcbiAgQ1NTLk9WRVJGTE9XLlkuSElEREVOLFxuICBDU1MuWl9JTkRFWC5PTkUsXG5dIGFzIGNvbnN0O1xuIiwiZXhwb3J0IGNvbnN0IE9SSUVOVEFUSU9OID0ge1xuICBIT1JJWk9OVEFMOiAnaG9yaXpvbnRhbCcsXG4gIFZFUlRJQ0FMOiAndmVydGljYWwnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgT3JpZW50YXRpb24gPSAodHlwZW9mIE9SSUVOVEFUSU9OKVtrZXlvZiB0eXBlb2YgT1JJRU5UQVRJT05dO1xuIiwiZXhwb3J0IGNvbnN0IFNJWkUgPSB7XG4gIExBUkdFOiAnbGFyZ2UnLFxuICBTTUFMTDogJ3NtYWxsJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFNpemUgPSAodHlwZW9mIFNJWkUpW2tleW9mIHR5cGVvZiBTSVpFXTtcbiIsImNvbnN0IGNhcGl0YWxpemVGaXJzdCA9IChzdHJpbmc6IHN0cmluZykgPT4ge1xuICByZXR1cm4gc3RyaW5nLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyaW5nLnNsaWNlKDEpO1xufTtcblxuY29uc3QgZm9ybWF0Q2FtZWxDYXNlID0gKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJ1xuICAgID8gaW5wdXRcbiAgICAgICAgLnJlcGxhY2UoL15bXFxzXy1dLywgJycpXG4gICAgICAgIC5yZXBsYWNlKC8oW2Etel17MX0pKFtBLVpdezF9KS9nLCAnJDEgJDInKVxuICAgICAgICAucmVwbGFjZSgvW1xcc18tXS9nLCAnICcpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgIC5zcGxpdCgnICcpXG4gICAgICAgIC5tYXAoKHdvcmQsIGluZGV4KSA9PiAoaW5kZXggPT09IDAgPyB3b3JkIDogd29yZC5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKSkpXG4gICAgICAgIC5qb2luKCcnKVxuICAgIDogaW5wdXQ7XG59O1xuXG5jb25zdCBmb3JtYXRLZWJhYkNhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJy0nKVxuICAgIDogaW5wdXQ7XG59O1xuXG5jb25zdCBmb3JtYXRMYWJlbCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGxhYmVsTWFwOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIGZhbHNlOiAnTm8nLFxuICAgIHRydWU6ICdZZXMnLFxuICB9O1xuICByZXR1cm4gT2JqZWN0Lmhhc093bihsYWJlbE1hcCwgdmFsdWUpID8gbGFiZWxNYXBbdmFsdWVdIDogdmFsdWU7XG59O1xuXG5jb25zdCBmb3JtYXROdW1iZXIgPSAoaW5wdXQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGxldCBvdXRwdXQgPSBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdudW1iZXInID8gbmV3IEludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0KGlucHV0KSA6IFN0cmluZyhpbnB1dCB8fCAnJyk7XG4gIGxldCBkaWdpdHMgPSBvdXRwdXQ7XG5cbiAgaWYgKGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICBkaWdpdHMgPSBkaWdpdHMucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICBpZiAoTnVtYmVyKGRpZ2l0cykpIHtcbiAgICAgIG91dHB1dCA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdChOdW1iZXIoZGlnaXRzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dCA9ICcwJztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0O1xufTtcblxuY29uc3QgZm9ybWF0UGFzY2FsQ2FzZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZydcbiAgICA/IGlucHV0XG4gICAgICAgIC5yZXBsYWNlKC8oW2Etel17MX0pKFtBLVpdezF9KS9nLCAnJDEgJDInKVxuICAgICAgICAucmVwbGFjZSgvW1xcc18tXS9nLCAnICcpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgIC5zcGxpdCgnICcpXG4gICAgICAgIC5tYXAoKHdvcmQpID0+IHdvcmQuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkpXG4gICAgICAgIC5qb2luKCcnKVxuICAgIDogaW5wdXQ7XG59O1xuXG5jb25zdCBmb3JtYXRQaG9uZSA9IChpbnB1dDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgbGV0IG91dHB1dCA9IGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicgPyBTdHJpbmcoaW5wdXQpIDogU3RyaW5nKGlucHV0IHx8ICcnKTtcbiAgbGV0IGRpZ2l0cyA9IG91dHB1dDtcbiAgZGlnaXRzID0gZGlnaXRzLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG5cbiAgc3dpdGNoIChkaWdpdHMubGVuZ3RoKSB7XG4gICAgY2FzZSA3OlxuICAgICAgb3V0cHV0ID0gYCR7ZGlnaXRzLnNsaWNlKDAsIDMpfS0ke2RpZ2l0cy5zbGljZSgzKX1gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAxMDpcbiAgICAgIG91dHB1dCA9IGAke2RpZ2l0cy5zbGljZSgwLCAzKX0tJHtkaWdpdHMuc2xpY2UoMywgNil9LSR7ZGlnaXRzLnNsaWNlKDYpfWA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDExOlxuICAgICAgb3V0cHV0ID0gYCR7ZGlnaXRzLnNsaWNlKDAsIDEpfS0ke2RpZ2l0cy5zbGljZSgxLCA0KX0tJHtkaWdpdHMuc2xpY2UoNCwgNyl9LSR7ZGlnaXRzLnNsaWNlKDcpfWA7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgb3V0cHV0ID0gZGlnaXRzO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gb3V0cHV0O1xufTtcblxuY29uc3QgZm9ybWF0UHJpY2UgPSAoaW5wdXQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG91dHB1dCA9IGlucHV0ID8gZm9ybWF0TnVtYmVyKGlucHV0KSA6IFN0cmluZyhpbnB1dCB8fCAnMCcpO1xuICByZXR1cm4gYCQke291dHB1dH1gO1xufTtcblxuY29uc3QgZm9ybWF0UXVvdGVzID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ1wiJykgJiYgdmFsdWUuZW5kc1dpdGgoJ1wiJykpIHtcbiAgICByZXR1cm4gdmFsdWUuc2xpY2UoMSwgLTEpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuY29uc3QgZm9ybWF0U2VudGVuY2VDYXNlID0gKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBsZXQgc2VudGVuY2VDYXNlID0gaW5wdXQ7XG5cbiAgaWYgKGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBsb3dlckNhc2UgPSBpbnB1dFxuICAgICAgLnJlcGxhY2UoLyhbYS16XXsxfSkoW0EtWl17MX0pL2csICckMSAkMicpXG4gICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgLnJlcGxhY2UoL1tcXHNfLV0vZywgJyAnKTtcblxuICAgIHNlbnRlbmNlQ2FzZSA9IGxvd2VyQ2FzZS5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpICsgbG93ZXJDYXNlLnNsaWNlKDEpO1xuICB9XG5cbiAgcmV0dXJuIHNlbnRlbmNlQ2FzZTtcbn07XG5cbmNvbnN0IGZvcm1hdFNuYWtlQ2FzZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZydcbiAgICA/IGlucHV0XG4gICAgICAgIC5yZXBsYWNlKC8oW2Etel17MX0pKFtBLVpdezF9KS9nLCAnJDEgJDInKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAucmVwbGFjZSgvW1xcc18tXS9nLCAnXycpXG4gICAgOiBpbnB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFRpdGxlQ2FzZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZydcbiAgICA/IGlucHV0XG4gICAgICAgIC5yZXBsYWNlKC8oW2Etel17MX0pKFtBLVpdezF9KS9nLCAnJDEgJDInKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAucmVwbGFjZSgvW1xcc18tXS9nLCAnICcpXG4gICAgICAgIC5zcGxpdCgnICcpXG4gICAgICAgIC5tYXAoKHdvcmQpID0+IHdvcmQuc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkpXG4gICAgICAgIC5qb2luKCcgJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0VXJsRnJvbVJvb3QgPSAodXJsOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgdXJsRm9ybWF0dGVkID0gdXJsLnNwbGl0KCcuY29tLycpO1xuXG4gIHJldHVybiB1cmxGb3JtYXR0ZWQubGVuZ3RoID4gMSA/IGAvJHt1cmxGb3JtYXR0ZWRbMV19YCA6IHVybDtcbn07XG5cbmNvbnN0IGZvcm1hdFdlaWdodCA9IChpbnB1dDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgb3V0cHV0ID0gaW5wdXQgPyBmb3JtYXROdW1iZXIoaW5wdXQpIDogU3RyaW5nKGlucHV0IHx8ICcwJyk7XG4gIHJldHVybiBgJHtvdXRwdXR9IGxic2A7XG59O1xuXG5jb25zdCBnZXRBcnRpY2xlID0gKG5vdW46IHN0cmluZywgaXNQbHVyYWwgPSBmYWxzZSwgaXNEZWZpbml0ZSA9IGZhbHNlKSA9PiB7XG4gIGNvbnN0IHZvd2VscyA9IFsnYScsICdlJywgJ2knLCAnbycsICd1J107XG4gIGNvbnN0IGlzVm93ZWxMZWFkaW5nID0gdm93ZWxzLmluY2x1ZGVzKG5vdW4uY2hhckF0KDApKTtcblxuICByZXR1cm4gaXNEZWZpbml0ZSA/ICd0aGUnIDogaXNQbHVyYWwgPyAnc29tZScgOiBpc1Zvd2VsTGVhZGluZyA/ICdhbicgOiAnYSc7XG59O1xuXG5jb25zdCBwcmljZVRvTnVtYmVyID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgaWYgKE51bWJlci5pc05hTihOdW1iZXIodmFsdWUpKSkge1xuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnJCcsICcnKTtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoLywvZywgJycpO1xuICB9XG4gIHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApO1xufTtcblxuY29uc3QgdW5mb3JtYXRQcmljZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgb3V0cHV0ID0gaW5wdXQucmVwbGFjZSgvXFwkL2csICcnKS5yZXBsYWNlKC8sL2csICcnKTtcbiAgcmV0dXJuIGAke291dHB1dH1gO1xufTtcblxuZXhwb3J0IHtcbiAgY2FwaXRhbGl6ZUZpcnN0LFxuICBmb3JtYXRDYW1lbENhc2UsXG4gIGZvcm1hdEtlYmFiQ2FzZSxcbiAgZm9ybWF0TGFiZWwsXG4gIGZvcm1hdE51bWJlcixcbiAgZm9ybWF0UGFzY2FsQ2FzZSxcbiAgZm9ybWF0UGhvbmUsXG4gIGZvcm1hdFByaWNlLFxuICBmb3JtYXRRdW90ZXMsXG4gIGZvcm1hdFNlbnRlbmNlQ2FzZSxcbiAgZm9ybWF0U25ha2VDYXNlLFxuICBmb3JtYXRUaXRsZUNhc2UsXG4gIGZvcm1hdFVybEZyb21Sb290LFxuICBmb3JtYXRXZWlnaHQsXG4gIGdldEFydGljbGUsXG4gIHByaWNlVG9OdW1iZXIsXG4gIHVuZm9ybWF0UHJpY2UsXG59O1xuIiwiZXhwb3J0IGNvbnN0IFJFQUxNID0ge1xuICBBRVJPOiAnYWVybycsXG4gIEFUVjogJ2F0dicsXG4gIEJPQVRNQVJUOiAnYm9hdG1hcnQnLFxuICBDWUNMRTogJ2N5Y2xlJyxcbiAgRVFVSVA6ICdlcXVpcCcsXG4gIFBXQzogJ3B3YycsXG4gIFJWOiAncnYnLFxuICBTTk9XOiAnc25vdycsXG4gIFRSVUNLOiAndHJ1Y2snLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUmVhbG1LZXkgPSBrZXlvZiB0eXBlb2YgUkVBTE07XG5leHBvcnQgdHlwZSBSZWFsbSA9ICh0eXBlb2YgUkVBTE0pW1JlYWxtS2V5XTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGRlZmluZUFzeW5jQ29tcG9uZW50LCBtYXJrUmF3LCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IENvbXBvbmVudCB9IGZyb20gJ3Z1ZSc7XG4gIGltcG9ydCB0eXBlIHsgSWNvbiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB0eXBlIHsgU2l6ZSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG5cbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgZm9ybWF0UGFzY2FsQ2FzZSB9IGZyb20gJ0AvdXRpbGl0aWVzL2Zvcm1hdCc7XG4gIGltcG9ydCB7IFJFQUxNIH0gZnJvbSAnQC90eXBlcy9SZWFsbSc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBpY29uOiBJY29uO1xuICAgIHNpemU/OiBTaXplO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgc2l6ZTogU0laRS5TTUFMTCxcbiAgfSk7XG5cbiAgY29uc3QgaW5uZXJTVkcgPSByZWY8Q29tcG9uZW50PigpO1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLmljb24sXG4gICAgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBwcm9wcy5pY29uIGFzIHVua25vd24gYXMgc3RyaW5nO1xuICAgICAgY29uc3QgW3ByZWZpeCwgLi4ucmVzdF0gPSBpZC5zcGxpdCgnLScpO1xuICAgICAgY29uc3QgbmFtZSA9IGZvcm1hdFBhc2NhbENhc2UocmVzdC5sZW5ndGggPiAwID8gcmVzdC5qb2luKCctJykgOiBwcmVmaXgpO1xuICAgICAgY29uc3QgcmVhbG1Gb2xkZXIgPSBSRUFMTVtwcmVmaXg/LnRvVXBwZXJDYXNlKCkgYXMga2V5b2YgdHlwZW9mIFJFQUxNXTtcblxuICAgICAgY29uc3QgY29tcG9uZW50UGF0aDogc3RyaW5nID0gcmVhbG1Gb2xkZXJcbiAgICAgICAgPyBgLi4vYXNzZXRzL3N2Zy9pY29ucy9yZWFsbS8ke3JlYWxtRm9sZGVyfS9JY29uJHtmb3JtYXRQYXNjYWxDYXNlKHByZWZpeCl9JHtuYW1lfS5zdmdgXG4gICAgICAgIDogYC4uL2Fzc2V0cy9zdmcvaWNvbnMvSWNvbiR7bmFtZX0uc3ZnYDtcblxuICAgICAgY29uc3QgY29tcG9uZW50ID0gZGVmaW5lQXN5bmNDb21wb25lbnQoKCkgPT4gaW1wb3J0KGNvbXBvbmVudFBhdGgpKTtcbiAgICAgIGlubmVyU1ZHLnZhbHVlID0gbWFya1Jhdyhjb21wb25lbnQpO1xuICAgIH0sXG4gICAgeyBpbW1lZGlhdGU6IHRydWUgfVxuICApO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtaWNvbicsIHByb3BzLnNpemVdXCI+XG4gICAgPENvbXBvbmVudFxuICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkJMT0NLXVwiXG4gICAgICA6ZGF0YS1pY29uPVwiaWNvblwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIDppcz1cImlubmVyU1ZHXCJcbiAgICAgIHYtaWY9XCJpbm5lclNWR1wiXG4gICAgLz5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGU+XG4gIC50aWRlLWljb24ge1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gIH1cbiAgLnRpZGUtaWNvbi5zbWFsbCB7XG4gICAgd2lkdGg6IDEuMjVyZW07XG4gICAgaGVpZ2h0OiAxLjI1cmVtO1xuICB9XG4gIC50aWRlLWljb24gc3ZnIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbjwvc3R5bGU+XG4iLCJpbXBvcnQgdHlwZSB7IFJlYWxtS2V5IH0gZnJvbSAnQC90eXBlcy9SZWFsbSc7XG5cbmV4cG9ydCBjb25zdCBJQ09OID0ge1xuICBBQ0NPVU5UX0JBTEFOQ0U6ICdhY2NvdW50LWJhbGFuY2UnLFxuICBBREQ6ICdhZGQnLFxuICBBSV9ERVNDUklQVElPTjogJ2FpLWRlc2NyaXB0aW9uJyxcbiAgQUxJR05fU1BBQ0U6ICdhbGlnbi1zcGFjZScsXG4gIEFQUExFX1BBWTogJ2FwcGxlLXBheScsXG4gIEFSUk9XX0JBQ0s6ICdhcnJvdy1iYWNrJyxcbiAgQVJST1dfQ1lDTEU6ICdhcnJvdy1jeWNsZScsXG4gIEFSUk9XX0ZPUldBUkQ6ICdhcnJvdy1mb3J3YXJkJyxcbiAgQVJST1dfUklHSFQ6ICdhcnJvdy1yaWdodCcsXG4gIEFTU0lHTk1FTlQ6ICdhc3NpZ25tZW50JyxcbiAgQVdBUkRfU1RBUjogJ2F3YXJkLXN0YXInLFxuICBCRUQ6ICdiZWQnLFxuICBCT09LTUFSSzogJ2Jvb2ttYXJrJyxcbiAgQ0FMRU5EQVJfTU9OVEg6ICdjYWxlbmRhci1tb250aCcsXG4gIENBTEw6ICdjYWxsJyxcbiAgQ0hFQ0s6ICdjaGVjaycsXG4gIENIRVZST05fTEVGVDogJ2NoZXZyb24tbGVmdCcsXG4gIENIRVZST05fUklHSFQ6ICdjaGV2cm9uLXJpZ2h0JyxcbiAgQ0xFQVI6ICdjbGVhcicsXG4gIENMT1NFOiAnY2xvc2UnLFxuICBERUxFVEU6ICdkZWxldGUnLFxuICBESUFNT05EOiAnZGlhbW9uZCcsXG4gIERSQUZUOiAnZHJhZnQnLFxuICBFRElUOiAnZWRpdCcsXG4gIEVOR0lORTogJ2VuZ2luZScsXG4gIEVSUk9SOiAnZXJyb3InLFxuICBFWFBBTkRfQ09OVEVOVDogJ2V4cGFuZC1jb250ZW50JyxcbiAgRVhQQU5EX0xFU1M6ICdleHBhbmQtbGVzcycsXG4gIEVYUEFORF9NT1JFOiAnZXhwYW5kLW1vcmUnLFxuICBGQUNFQk9PSzogJ2ZhY2Vib29rJyxcbiAgRkFWT1JJVEU6ICdmYXZvcml0ZScsXG4gIEZBVk9SSVRFX0ZJTExFRDogJ2Zhdm9yaXRlLWZpbGxlZCcsXG4gIEZPUk1BVF9CT0xEOiAnZm9ybWF0LWJvbGQnLFxuICBGT1JNQVRfSVRBTElDOiAnZm9ybWF0LWl0YWxpYycsXG4gIEZPUk1BVF9MSVNUX0JVTExFVEVEOiAnZm9ybWF0LWxpc3QtYnVsbGV0ZWQnLFxuICBGT1JVTTogJ2ZvcnVtJyxcbiAgR0FTOiAnZ2FzJyxcbiAgR0FWRUw6ICdnYXZlbCcsXG4gIEdPT0dMRTogJ2dvb2dsZScsXG4gIEdPT0dMRV9QQVk6ICdnb29nbGUtcGF5JyxcbiAgR1JJRDogJ2dyaWQnLFxuICBIRUlHSFQ6ICdoZWlnaHQnLFxuICBIRUxQOiAnaGVscCcsXG4gIElORk86ICdpbmZvJyxcbiAgSU5TRVJUX1RFWFQ6ICdpbnNlcnQtdGV4dCcsXG4gIElOU1RBR1JBTTogJ2luc3RhZ3JhbScsXG4gIElPU19TSEFSRTogJ2lvcy1zaGFyZScsXG4gIExBWU9VVDogJ2xheW91dCcsXG4gIExFVkVMTElOR19KQUNLOiAnbGV2ZWxsaW5nLWphY2snLFxuICBMSU5LRURfSU46ICdsaW5rZWQgaW4nLFxuICBMT0NBTF9TSElQUElORzogJ2xvY2FsLXNoaXBwaW5nJyxcbiAgTE9DSzogJ2xvY2snLFxuICBNQUlMOiAnbWFpbCcsXG4gIE1FTlU6ICdtZW51JyxcbiAgTU9SRV9IT1JJWjogJ21vcmUtaG9yaXonLFxuICBOT1RJRklDQVRJT05TOiAnbm90aWZpY2F0aW9ucycsXG4gIE9ET01FVEVSOiAnb2RvbWV0ZXInLFxuICBPUEVOX0lOX05FVzogJ29wZW4taW4tbmV3JyxcbiAgUEFMRVRURTogJ3BhbGV0dGUnLFxuICBQQVlQQUw6ICdwYXlwYWwnLFxuICBQRVJTT046ICdwZXJzb24nLFxuICBQSE9UT19DQU1FUkE6ICdwaG90by1jYW1lcmEnLFxuICBQSU5URVJFU1Q6ICdwaW50ZXJlc3QnLFxuICBQTEFZX0FSUk9XOiAncGxheS1hcnJvdycsXG4gIFBPV0VSX09GRjogJ3Bvd2VyLW9mZicsXG4gIFJFTU9WRTogJ3JlbW92ZScsXG4gIFJPVU5ERURfQ09STkVSUzogJ3JvdW5kZWQtY29ybmVycycsXG4gIFJVTEVSOiAncnVsZXInLFxuICBTRUFSQ0g6ICdzZWFyY2gnLFxuICBTRUFUSU5HOiAnc2VhdGluZycsXG4gIFNFTEw6ICdzZWxsJyxcbiAgU0hBUkU6ICdzaGFyZScsXG4gIFNIT1BQSU5HX0NBUlQ6ICdzaG9wcGluZy1jYXJ0JyxcbiAgU0xFRVBTOiAnc2xlZXBzJyxcbiAgU01TOiAnc21zJyxcbiAgU05PV0ZMQUtFOiAnc25vd2ZsYWtlJyxcbiAgU1RBUjogJ3N0YXInLFxuICBTV0FQX1ZFUlQ6ICdzd2FwLXZlcnQnLFxuICBUSFJFRV9EX1JPVEFUSU9OOiAndGhyZWUtZC1yb3RhdGlvbicsXG4gIFRST1BIWTogJ3Ryb3BoeScsXG4gIFRVTkU6ICd0dW5lJyxcbiAgVFdJVFRFUjogJ3R3aXR0ZXInLFxuICBVTUJSRUxMQTogJ3VtYnJlbGxhJyxcbiAgVklERU9DQU06ICd2aWRlb2NhbScsXG4gIFZJRVdfSU5fQVI6ICd2aWV3LWluLWFyJyxcbiAgVklTSUJJTElUWTogJ3Zpc2liaWxpdHknLFxuICBWT0xVTUVfT0ZGOiAndm9sdW1lLW9mZicsXG4gIFZPTFVNRV9PTjogJ3ZvbHVtZS1vbicsXG4gIFdBUk5JTkc6ICd3YXJuaW5nJyxcbiAgV0FURVI6ICd3YXRlcicsXG4gIFdFSUdIVDogJ3dlaWdodCcsXG4gIFdJRFRIOiAnd2lkdGgnLFxuICBZT1VUVUJFOiAneW91dHViZScsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgSUNPTl9SRUFMTSA9IHtcbiAgUlY6IHtcbiAgICBDTEFTU19BOiAncnYtY2xhc3MtYScsXG4gICAgQ0xBU1NfQjogJ3J2LWNsYXNzLWInLFxuICAgIENMQVNTX0M6ICdydi1jbGFzcy1jJyxcbiAgICBGSUZUSF9XSEVFTDogJ3J2LWZpZnRoLXdoZWVsJyxcbiAgICBGSVNIX0hPVVNFOiAncnYtZmlzaC1ob3VzZScsXG4gICAgUEFSS19NT0RFTDogJ3J2LXBhcmstbW9kZWwnLFxuICAgIFBPUF9VUF9DQU1QRVI6ICdydi1wb3AtdXAtY2FtcGVyJyxcbiAgICBUUkFWRUxfVFJBSUxFUjogJ3J2LXRyYXZlbC10cmFpbGVyJyxcbiAgICBUUlVDS19DQU1QRVI6ICdydi10cnVjay1jYW1wZXInLFxuICB9LFxufSBhcyBjb25zdDtcblxudHlwZSBSZWFsbUtleXNXaXRoSWNvbnMgPSBFeHRyYWN0PFJlYWxtS2V5LCBrZXlvZiB0eXBlb2YgSUNPTl9SRUFMTT47XG50eXBlIFJlYWxtSWNvbiA9IHtcbiAgW1JlYWxtS2V5IGluIFJlYWxtS2V5c1dpdGhJY29uc106ICh0eXBlb2YgSUNPTl9SRUFMTSlbUmVhbG1LZXldW2tleW9mICh0eXBlb2YgSUNPTl9SRUFMTSlbUmVhbG1LZXldXTtcbn1bUmVhbG1LZXlzV2l0aEljb25zXTtcblxuZXhwb3J0IHR5cGUgR2xvYmFsSWNvbiA9ICh0eXBlb2YgSUNPTilba2V5b2YgdHlwZW9mIElDT05dO1xuZXhwb3J0IHR5cGUgSWNvbiA9IEdsb2JhbEljb24gfCBSZWFsbUljb247XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBvbk1vdW50ZWQsIHJlZiB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IFRpZGVEaXZpZGVyIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlRGl2aWRlci52dWUnO1xuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCBUaWRlSW5kaWNhdG9yIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSW5kaWNhdG9yLnZ1ZSc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG5cbiAgY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wcyh7XG4gICAgaGFzQm90dG9tRGl2aWRlcjoge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgaGFzVG9wRGl2aWRlcjoge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgaXNBY3RpdmU6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIGlzRXhwYW5kZWRJbml0aWFsOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBpc09wdGlvbmFsOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBsYWJlbDoge1xuICAgICAgZGVmYXVsdDogJycsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBpc0V4cGFuZGVkID0gcmVmKHByb3BzLmlzRXhwYW5kZWRJbml0aWFsKTtcblxuICBsZXQgYWNjb3JkaW9uQm9keSA9IHJlZigpO1xuXG4gIGNvbnN0IHRvZ2dsZUlzRXhwYW5kZWQgPSAoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFjY29yZGlvbkJvZHkudmFsdWUgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpc0V4cGFuZGVkLnZhbHVlID0gIWlzRXhwYW5kZWQudmFsdWU7XG5cbiAgICBlbGVtZW50LnN0eWxlLmdyaWRUZW1wbGF0ZVJvd3MgPSBpc0V4cGFuZGVkLnZhbHVlID8gJzFmcicgOiAnMGZyJztcbiAgfTtcblxuICBvbk1vdW50ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhY2NvcmRpb25Cb2R5LnZhbHVlIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgZWxlbWVudC5zdHlsZS5ncmlkVGVtcGxhdGVSb3dzID0gaXNFeHBhbmRlZC52YWx1ZSA/ICcxZnInIDogJzBmcic7XG4gIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInRpZGUtYWNjb3JkaW9uLWl0ZW1cIj5cbiAgICA8VGlkZURpdmlkZXIgdi1pZj1cInByb3BzLmhhc1RvcERpdmlkZXJcIiAvPlxuXG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiWyd0aWRlLWFjY29yZGlvbi1oZWFkJywgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMxLkJFVFdFRU4sIENTUy5QQURESU5HLlkuSEFMRiwgQ1NTLkNVUlNPUi5QT0lOVEVSXVwiXG4gICAgICBAY2xpY2s9XCJ0b2dnbGVJc0V4cGFuZGVkXCJcbiAgICA+XG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLkhBTEYsIENTUy5GT05ULldFSUdIVC5TRVZFTl9IVU5EUkVEXVwiPlxuICAgICAgICA8c3Bhbj57eyBwcm9wcy5sYWJlbCB9fTwvc3Bhbj5cblxuICAgICAgICA8c3BhblxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlRdXCJcbiAgICAgICAgICB2LWlmPVwicHJvcHMuaXNPcHRpb25hbFwiXG4gICAgICAgID5cbiAgICAgICAgICAob3B0aW9uYWwpXG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8VGlkZUluZGljYXRvciB2LWlmPVwicHJvcHMuaXNBY3RpdmVcIiAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxUaWRlSWNvbiA6aWNvbj1cImlzRXhwYW5kZWQgPyBJQ09OLkVYUEFORF9MRVNTIDogSUNPTi5FWFBBTkRfTU9SRVwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbJ3RpZGUtYWNjb3JkaW9uLWJvZHknLCBDU1MuRElTUExBWS5HUklEXVwiXG4gICAgICByZWY9XCJhY2NvcmRpb25Cb2R5XCJcbiAgICA+XG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuT1ZFUkZMT1cuWS5ISURERU5dXCI+XG4gICAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5NQVJHSU4uWS5PTkUsIENTUy5GT05ULldFSUdIVC5GT1VSX0hVTkRSRUQsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuREVGQVVMVF1cIj5cbiAgICAgICAgICA8c2xvdCAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPFRpZGVEaXZpZGVyIHYtaWY9XCJwcm9wcy5oYXNCb3R0b21EaXZpZGVyXCIgLz5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS1hY2NvcmRpb24tYm9keSB7XG4gICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cbjwvc3R5bGU+XG4iLCJleHBvcnQgY29uc3QgRUxFTUVOVCA9IHtcbiAgQlVUVE9OOiAnYnV0dG9uJyxcbiAgTElOSzogJ2EnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEVMRU1FTlRfVEVYVF9BU19JQ09OID0ge1xuICBCVVRUT046ICdidXR0b24nLFxuICBESVY6ICdkaXYnLFxuICBMSU5LOiAnYScsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBFbGVtZW50ID0gKHR5cGVvZiBFTEVNRU5UKVtrZXlvZiB0eXBlb2YgRUxFTUVOVF07XG5leHBvcnQgdHlwZSBFbGVtZW50VGV4dEFzSWNvbiA9ICh0eXBlb2YgRUxFTUVOVF9URVhUX0FTX0lDT04pW2tleW9mIHR5cGVvZiBFTEVNRU5UX1RFWFRfQVNfSUNPTl07XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSB2dWUvc29ydC1rZXlzICovXG5cbmV4cG9ydCBjb25zdCBQUklPUklUWSA9IHtcbiAgUFJJTUFSWTogJ3ByaW1hcnknLFxuICBTRUNPTkRBUlk6ICdzZWNvbmRhcnknLFxuICBURVJUSUFSWTogJ3RlcnRpYXJ5JyxcbiAgUVVBVEVSTkFSWTogJ3F1YXRlcm5hcnknLFxuICBGTE9BVElORzogJ2Zsb2F0aW5nJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFByaW9yaXR5ID0gKHR5cGVvZiBQUklPUklUWSlba2V5b2YgdHlwZW9mIFBSSU9SSVRZXTtcbiIsImV4cG9ydCBjb25zdCBUQVJHRVQgPSB7XG4gIEJMQU5LOiAnX2JsYW5rJyxcbiAgU0VMRjogdW5kZWZpbmVkLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVGFyZ2V0ID0gKHR5cGVvZiBUQVJHRVQpW2tleW9mIHR5cGVvZiBUQVJHRVRdO1xuIiwiZXhwb3J0IGNvbnN0IEFMRVJUID0ge1xuICBFUlJPUjogJ2Vycm9yJyxcbiAgSU5GTzogJ2luZm8nLFxuICBTVUNDRVNTOiAnc3VjY2VzcycsXG4gIFdBUk5JTkc6ICd3YXJuaW5nJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEFsZXJ0ID0gKHR5cGVvZiBBTEVSVClba2V5b2YgdHlwZW9mIEFMRVJUXTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IEFsZXJ0IH0gZnJvbSAnQC90eXBlcy9BbGVydCc7XG4gIGltcG9ydCB0eXBlIHsgSWNvbiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgVGlkZUJ1dHRvbkljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVCdXR0b25JY29uLnZ1ZSc7XG4gIGltcG9ydCB7IEFMRVJUIH0gZnJvbSAnQC90eXBlcy9BbGVydCc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFBSSU9SSVRZIH0gZnJvbSAnQC90eXBlcy9Qcmlvcml0eSc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBoZWFkaW5nPzogc3RyaW5nO1xuICAgIGlzVG9hc3Q/OiBib29sZWFuO1xuICAgIHR5cGU/OiBBbGVydDtcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGhlYWRpbmc6IHVuZGVmaW5lZCxcbiAgICBpc1RvYXN0OiBmYWxzZSxcbiAgICB0eXBlOiBBTEVSVC5JTkZPLFxuICB9KTtcblxuICBjb25zdCBpY29uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGxldCBpY29uOiBJY29uID0gSUNPTi5WSUVXX0lOX0FSO1xuXG4gICAgc3dpdGNoIChwcm9wcy50eXBlKSB7XG4gICAgICBjYXNlIEFMRVJULkVSUk9SOlxuICAgICAgICBpY29uID0gSUNPTi5FUlJPUjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSBBTEVSVC5JTkZPOlxuICAgICAgICBpY29uID0gSUNPTi5JTkZPO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQUxFUlQuU1VDQ0VTUzpcbiAgICAgICAgaWNvbiA9IElDT04uQ0hFQ0s7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBBTEVSVC5XQVJOSU5HOlxuICAgICAgICBpY29uID0gSUNPTi5XQVJOSU5HO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gaWNvbjtcbiAgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiW1xuICAgICAgcHJvcHMudHlwZSxcbiAgICAgICd0aWRlLWFsZXJ0JyxcbiAgICAgIENTUy5ESVNQTEFZLkdSSUQsXG4gICAgICBDU1MuQk9SREVSLlJBRElVUy5IQUxGLFxuICAgICAgQ1NTLlBBRERJTkcuRlVMTC5PTkUsXG4gICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5FUlJPUiAmJiBDU1MuQkcuU1VSRkFDRS5FUlJPUixcbiAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULklORk8gJiYgQ1NTLkJHLlNVUkZBQ0UuSU5GTyxcbiAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULlNVQ0NFU1MgJiYgQ1NTLkJHLlNVUkZBQ0UuU1VDQ0VTUyxcbiAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULldBUk5JTkcgJiYgQ1NTLkJHLlNVUkZBQ0UuV0FSTklORyxcbiAgICAgIHByb3BzLmlzVG9hc3QgPyBDU1MuU0hBRE9XLkJPVFRPTSA6ICcnLFxuICAgIF1cIlxuICA+XG4gICAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtYWxlcnQtaWNvbicsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVJdXCI+XG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgIHByb3BzLnR5cGUsXG4gICAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuRlVMTCxcbiAgICAgICAgICBDU1MuUEFERElORy5GVUxMLkhBTEYsXG4gICAgICAgICAgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5JTlZFUlNFLFxuICAgICAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULkVSUk9SICYmIENTUy5CRy5FUlJPUixcbiAgICAgICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5JTkZPICYmIENTUy5CRy5JTkZPLFxuICAgICAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULlNVQ0NFU1MgJiYgQ1NTLkJHLlNVQ0NFU1MsXG4gICAgICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuV0FSTklORyAmJiBDU1MuQkcuV0FSTklORyxcbiAgICAgICAgXVwiXG4gICAgICAgIDppY29uPVwiaWNvblwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtYWxlcnQtaGVhZGluZycsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVJdXCI+XG4gICAgICA8aDIgOmNsYXNzPVwiW0NTUy5GT05ULlNJWkUuU0lYVEVFTiwgQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVELCBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLkRFRkFVTFRdXCI+XG4gICAgICAgIHt7IHByb3BzLmhlYWRpbmcgfX1cbiAgICAgIDwvaDI+XG4gICAgPC9kaXY+XG5cbiAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgIDpjbGFzcz1cIlsndGlkZS1hbGVydC1jbG9zZScsIENTUy5BWElTMi5DRU5URVIsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuREVGQVVMVF1cIlxuICAgICAgOmljb249XCJJQ09OLkNMT1NFXCJcbiAgICAgIDpwcmlvcml0eT1cIlBSSU9SSVRZLlFVQVRFUk5BUllcIlxuICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIGFsZXJ0XCJcbiAgICAvPlxuXG4gICAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtYWxlcnQtYm9keScsIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRUQsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVF1cIj5cbiAgICAgIDxzbG90IC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtYWxlcnQge1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAnaWNvbiBoZWFkaW5nIGNsb3NlJ1xuICAgICAgJy4gYm9keSAuJztcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gICAgZ3JpZC1jb2x1bW4tZ2FwOiAwLjVyZW07XG4gICAgbWF4LXdpZHRoOiA0MHJlbTtcbiAgfVxuXG4gIC50aWRlLWFsZXJ0LWljb24ge1xuICAgIGdyaWQtYXJlYTogaWNvbjtcbiAgfVxuXG4gIC50aWRlLWFsZXJ0LWhlYWRpbmcge1xuICAgIGdyaWQtYXJlYTogaGVhZGluZztcbiAgfVxuXG4gIC50aWRlLWFsZXJ0LWNsb3NlIHtcbiAgICBncmlkLWFyZWE6IGNsb3NlO1xuICB9XG5cbiAgLnRpZGUtYWxlcnQtYm9keSB7XG4gICAgZ3JpZC1hcmVhOiBib2R5O1xuICB9XG48L3N0eWxlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IFNvdXJjZSB9IGZyb20gJ0AvdHlwZXMvU291cmNlJztcblxuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBhbHQ6IHN0cmluZztcbiAgICBpc0xhenk/OiBib29sZWFuO1xuICAgIHNvdXJjZXM/OiBTb3VyY2VbXTtcbiAgICBzcmM/OiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBhbHQ6ICcnLFxuICAgIGlzTGF6eTogdHJ1ZSxcbiAgICBzb3VyY2VzOiAoKSA9PiBbXSxcbiAgICBzcmM6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgY29uc3QgdGlkZUltYWdlID0gcmVmKCk7XG4gIGNvbnN0IGltYWdlRGVmYXVsdCA9ICdodHRwczovL2Nkbi1zdGF0aWMtcmVjLnRpbGFicy5pby9pbWFnZS1jb21pbmctc29vbi01MTIucG5nJztcblxuICBjb25zdCBzZXRJbWFnZUZyb21EZWZhdWx0ID0gKCkgPT4ge1xuICAgIGNvbnN0IHNyYyA9IHRpZGVJbWFnZS52YWx1ZS5jdXJyZW50U3JjO1xuICAgIGNvbnN0IGN1cnJlbnRTb3VyY2UgPSB0aWRlSW1hZ2UudmFsdWUucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKGBzb3VyY2Vbc3Jjc2V0PVwiJHtzcmN9XCJdYCk7XG5cbiAgICBpZiAoY3VycmVudFNvdXJjZSkge1xuICAgICAgY3VycmVudFNvdXJjZS5zcmNzZXQgPSBpbWFnZURlZmF1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRpZGVJbWFnZS52YWx1ZS5zcmMgPSBpbWFnZURlZmF1bHQ7XG4gICAgfVxuICB9O1xuXG4gIGRlZmluZUV4cG9zZSh0aWRlSW1hZ2UudmFsdWUpO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPHBpY3R1cmUgOmNsYXNzPVwiWyd0aWRlLWltYWdlJ11cIj5cbiAgICA8c291cmNlXG4gICAgICA6a2V5PVwic291cmNlLnNyY3NldFwiXG4gICAgICA6bWVkaWE9XCJgKG1pbi13aWR0aDoke3NvdXJjZS5tZWRpYX1weClgXCJcbiAgICAgIDpzcmNzZXQ9XCJzb3VyY2Uuc3Jjc2V0XCJcbiAgICAgIHYtZm9yPVwic291cmNlIGluIHByb3BzLnNvdXJjZXNcIlxuICAgIC8+XG5cbiAgICA8aW1nXG4gICAgICA6YWx0PVwiYWx0XCJcbiAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTCwgQ1NTLkhFSUdIVC5GVUxMLCBDU1MuT0JKRUNULkNFTlRFUiwgQ1NTLk9CSkVDVC5DT1ZFUl1cIlxuICAgICAgOmZldGNocHJpb3JpdHk9XCJpc0xhenkgPyB1bmRlZmluZWQgOiAnaGlnaCdcIlxuICAgICAgOmxvYWRpbmc9XCJwcm9wcy5pc0xhenkgPyAnbGF6eScgOiAnZWFnZXInXCJcbiAgICAgIHJlZj1cInRpZGVJbWFnZVwiXG4gICAgICA6c3JjPVwic3JjID8/IGltYWdlRGVmYXVsdFwiXG4gICAgICBAZXJyb3I9XCJzZXRJbWFnZUZyb21EZWZhdWx0XCJcbiAgICAvPlxuICA8L3BpY3R1cmU+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPjwvc3R5bGU+XG4iLCJleHBvcnQgY29uc3QgQkFER0UgPSB7XG4gIEpVU1RfTElTVEVEOiAnSnVzdCBsaXN0ZWQnLFxuICBOQVRJT05XSURFOiAnTmF0aW9ud2lkZScsXG4gIFJFRFVDRUQ6ICdSZWR1Y2VkJyxcbiAgVVBEQVRFRDogJ1VwZGF0ZWQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEJBREdFX1BSRU1JVU0gPSB7XG4gIFBSRU1JVU06ICdQcmVtaXVtJyxcbiAgUFJFTUlVTV9TRUxFQ1Q6ICdQcmVtaXVtIFNFTEVDVCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgQkFER0VfVFJVU1RFRCA9IHtcbiAgWUVBUlNfMTA6ICcxMCcsXG4gIFlFQVJTXzE1OiAnMTUnLFxuICBZRUFSU181OiAnNScsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBCYWRnZSA9ICh0eXBlb2YgQkFER0UpW2tleW9mIHR5cGVvZiBCQURHRV07XG5leHBvcnQgdHlwZSBCYWRnZVByZW1pdW0gPSAodHlwZW9mIEJBREdFX1BSRU1JVU0pW2tleW9mIHR5cGVvZiBCQURHRV9QUkVNSVVNXTtcbmV4cG9ydCB0eXBlIEJhZGdlVHJ1c3RlZFllYXJzID0gKHR5cGVvZiBCQURHRV9UUlVTVEVEKVtrZXlvZiB0eXBlb2YgQkFER0VfVFJVU1RFRF07XG4iLCJleHBvcnQgY29uc3QgVFlQRV9DQVJEID0ge1xuICBBQ1RJT05BQkxFOiAnYWN0aW9uJyxcbiAgSU5GT1JNQVRJT05BTDogJ2luZm9ybWF0aW9uYWwnLFxuICBTRUxFQ1RBQkxFOiAnc2VsZWN0Jyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIENhcmRUeXBlID0gKHR5cGVvZiBUWVBFX0NBUkQpW2tleW9mIHR5cGVvZiBUWVBFX0NBUkRdO1xuXG5leHBvcnQgY29uc3QgUE9TSVRJT05fQ0FSRF9JQ09OID0ge1xuICBMRUZUOiAnbGVmdCcsXG4gIFRPUDogJ3RvcCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBDYXJkSWNvblBvc2l0aW9uID0gKHR5cGVvZiBQT1NJVElPTl9DQVJEX0lDT04pW2tleW9mIHR5cGVvZiBQT1NJVElPTl9DQVJEX0lDT05dO1xuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgb25Nb3VudGVkLCBvblVubW91bnRlZCwgb25VcGRhdGVkLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZUJ1dHRvbkljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVCdXR0b25JY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFBSSU9SSVRZIH0gZnJvbSAnQC90eXBlcy9Qcmlvcml0eSc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBpc1RvdWNoc2NyZWVuPzogYm9vbGVhbjtcbiAgICBvZmZzZXRYPzogbnVtYmVyO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgb2Zmc2V0WDogMCxcbiAgfSk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2hhbmdlJ10pO1xuXG4gIGxldCBjb250ZW50V2lkdGggPSByZWYoKTtcbiAgbGV0IGZyYW1lV2lkdGggPSByZWYoKTtcbiAgbGV0IGhhc092ZXJmbG93ID0gcmVmKCk7XG4gIGxldCBsYXN0UG9zaXRpb24gPSByZWYoKTtcblxuICBjb25zdCBjb250ZW50UmVmID0gcmVmKCk7XG4gIGNvbnN0IGZyYW1lUmVmID0gcmVmKCk7XG4gIGNvbnN0IHNob3dCdXR0b25zID0gcmVmKCk7XG4gIGNvbnN0IGN1cnJlbnRTbGlkZSA9IHJlZigwKTtcblxuICBjb25zdCBnYXAgPSAxNjtcblxuICAvKipcbiAgICogTWVhc3VyZSB0aGUgY3VycmVudCBzbGlkZSBiYXNlZCBvbiB0aGUgc2Nyb2xsXG4gICAqIHBvc2l0aW9uIG9mIHRoZSBmcmFtZS4gVGhlIGN1cnJlbnQgc2xpZGUgaXNcbiAgICogdGhlIHNsaWRlIHRoYXQgaXMgY2xvc2VzdCB0byB0aGUgbGVmdCBlZGdlIG9mXG4gICAqIHRoZSBmcmFtZS5cbiAgICovXG4gIGNvbnN0IG1lYXN1cmVDdXJyZW50U2xpZGUgPSAoKSA9PiB7XG4gICAgLy8gZ2V0IGxlZnQgb2Zmc2V0cyBvZiBlYWNoIHNsaWRlXG4gICAgY29uc3Qgc2xpZGVPZmZzZXRzID0gQXJyYXkuZnJvbShjb250ZW50UmVmLnZhbHVlLmNoaWxkcmVuKS5tYXAoKHNsaWRlOiBhbnkpID0+IHNsaWRlLm9mZnNldExlZnQpO1xuXG4gICAgaWYgKHNsaWRlT2Zmc2V0cy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIC8vIGdldCB2YWx1ZSBjbG9zZXN0IHRvIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uXG4gICAgY29uc3QgY2xvc2VzdFNsaWRlT2Zmc2V0ID0gc2xpZGVPZmZzZXRzLnJlZHVjZSgocHJldiwgY3VycikgPT4ge1xuICAgICAgcmV0dXJuIE1hdGguYWJzKGN1cnIgLSBmcmFtZVJlZi52YWx1ZS5zY3JvbGxMZWZ0KSA8IE1hdGguYWJzKHByZXYgLSBmcmFtZVJlZi52YWx1ZS5zY3JvbGxMZWZ0KSA/IGN1cnIgOiBwcmV2O1xuICAgIH0pO1xuXG4gICAgLy8gc2V0IGN1cnJlbnQgc2xpZGUgdG8gaW5kZXggb2YgY2xvc2VzdCBzbGlkZVxuICAgIGN1cnJlbnRTbGlkZS52YWx1ZSA9IHNsaWRlT2Zmc2V0cy5pbmRleE9mKGNsb3Nlc3RTbGlkZU9mZnNldCk7XG4gIH07XG5cbiAgY29uc3QgbWVhc3VyZURvbSA9ICgpID0+IHtcbiAgICBjb250ZW50V2lkdGgudmFsdWUgPSBjb250ZW50UmVmLnZhbHVlLnNjcm9sbFdpZHRoO1xuICAgIGZyYW1lV2lkdGgudmFsdWUgPSBmcmFtZVJlZi52YWx1ZS5jbGllbnRXaWR0aDtcbiAgICBoYXNPdmVyZmxvdy52YWx1ZSA9IGNvbnRlbnRXaWR0aC52YWx1ZSA+IGZyYW1lV2lkdGgudmFsdWU7XG4gICAgbGFzdFBvc2l0aW9uLnZhbHVlID0gZnJhbWVSZWYudmFsdWUuc2Nyb2xsV2lkdGggLSBmcmFtZVJlZi52YWx1ZS5jbGllbnRXaWR0aDtcbiAgICBzaG93QnV0dG9ucy52YWx1ZSA9IGhhc092ZXJmbG93LnZhbHVlICYmICFwcm9wcy5pc1RvdWNoc2NyZWVuO1xuXG4gICAgbWVhc3VyZUN1cnJlbnRTbGlkZSgpO1xuICB9O1xuXG4gIC8vIFRPRE86IGRlYm91bmNlIHRoaXNcbiAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgIG1lYXN1cmVEb20oKTtcbiAgfTtcblxuICAvKipcbiAgICogU2Nyb2xscyB0byB0aGUgc2xpZGUgYXQgdGhlIGdpdmVuIGluZGV4LCBvclxuICAgKiB0byB0aGUgZmlyc3Qgb3IgbGFzdCBzbGlkZSBpZiB0aGUgZ2l2ZW4gaW5kZXhcbiAgICogaXMgb3V0IG9mIGJvdW5kcy5cbiAgICogQHBhcmFtIHNsaWRlSW5kZXggVGhlIGluZGV4IG9mIHRoZSBzbGlkZSB0byBzY3JvbGwgdG9cbiAgICovXG4gIGNvbnN0IHNjcm9sbFRvU2xpZGUgPSAoc2xpZGVJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgZnJhbWVSZWYudmFsdWUuc2Nyb2xsVG8oe1xuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgbGVmdDogY29udGVudFJlZi52YWx1ZS5jaGlsZHJlbltzbGlkZUluZGV4XS5vZmZzZXRMZWZ0LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHNob3dOZXh0U2xpZGUgPSAoKSA9PiB7XG4gICAgY29uc3QgY29udGVudFdpZHRoID0gY29udGVudFJlZi52YWx1ZS5zY3JvbGxXaWR0aDtcbiAgICBjb25zdCBjb250ZW50UmlnaHRFZGdlID0gZnJhbWVSZWYudmFsdWUuc2Nyb2xsTGVmdCArIGZyYW1lUmVmLnZhbHVlLmNsaWVudFdpZHRoO1xuXG4gICAgaWYgKGNvbnRlbnRSaWdodEVkZ2UgPiBjb250ZW50V2lkdGgpIHtcbiAgICAgIGZyYW1lUmVmLnZhbHVlLnNjcm9sbFRvKHtcbiAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICBsZWZ0OiBjb250ZW50V2lkdGgsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXNGaXJzdFNsaWRlV2l0aE9mZnNldCA9IHByb3BzLm9mZnNldFggJiYgY3VycmVudFNsaWRlLnZhbHVlID09PSAwO1xuICAgICAgY29uc3QgaXNMYXN0U2xpZGUgPSBjb250ZW50UmlnaHRFZGdlID09PSBjb250ZW50V2lkdGg7XG4gICAgICBjb25zdCBuZXh0U2xpZGUgPSBpc0xhc3RTbGlkZSA/IDAgOiBpc0ZpcnN0U2xpZGVXaXRoT2Zmc2V0ID8gMiA6IGN1cnJlbnRTbGlkZS52YWx1ZSArIDE7XG5cbiAgICAgIHNjcm9sbFRvU2xpZGUobmV4dFNsaWRlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2hvd1ByZXZpb3VzU2xpZGUgPSAoKSA9PiB7XG4gICAgY29uc3QgZmlyc3RTbGlkZSA9IHByb3BzLm9mZnNldFggPyAxIDogMDtcbiAgICBjb25zdCBpc0ZpcnN0U2xpZGUgPSBjdXJyZW50U2xpZGUudmFsdWUgLSAxID09PSBmaXJzdFNsaWRlO1xuICAgIGNvbnN0IGlzU2Vjb25kU2xpZGUgPSBjdXJyZW50U2xpZGUudmFsdWUgPD0gZmlyc3RTbGlkZTtcbiAgICBjb25zdCBwcmV2aW91c1NsaWRlID0gaXNTZWNvbmRTbGlkZVxuICAgICAgPyBjb250ZW50UmVmLnZhbHVlLmNoaWxkcmVuLmxlbmd0aCAtIDFcbiAgICAgIDogaXNGaXJzdFNsaWRlXG4gICAgICA/IDBcbiAgICAgIDogY3VycmVudFNsaWRlLnZhbHVlIC0gMTtcblxuICAgIHNjcm9sbFRvU2xpZGUocHJldmlvdXNTbGlkZSk7XG4gIH07XG5cbiAgb25Nb3VudGVkKCgpID0+IHtcbiAgICBtZWFzdXJlRG9tKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG1lYXN1cmVEb20pO1xuICB9KTtcblxuICBvblVubW91bnRlZCgoKSA9PiB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG1lYXN1cmVEb20pO1xuICB9KTtcblxuICBvblVwZGF0ZWQoKCkgPT4ge1xuICAgIG1lYXN1cmVEb20oKTtcbiAgfSk7XG5cbiAgd2F0Y2goY3VycmVudFNsaWRlLCAoKSA9PiB7XG4gICAgZW1pdCgnY2hhbmdlJywgY3VycmVudFNsaWRlLnZhbHVlKTtcbiAgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8c2VjdGlvblxuICAgIDpjbGFzcz1cIlsndGlkZS1jYXJvdXNlbCcsIENTUy5QT1NJVElPTi5SRUxBVElWRSwgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLldJRFRILkZVTExdXCJcbiAgICByZWY9XCJjYXJvdXNlbFJlZlwiXG4gID5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbQ1NTLlNDUk9MTEJBUi5PRkYsIENTUy5TTkFQLk9OLCBDU1MuT1ZFUkZMT1cuWC5TQ1JPTExdXCJcbiAgICAgIHJlZj1cImZyYW1lUmVmXCJcbiAgICAgIEBzY3JvbGw9XCJoYW5kbGVTY3JvbGxcIlxuICAgID5cbiAgICAgIDx1bFxuICAgICAgICA6Y2xhc3M9XCJbcHJvcHMuaXNUb3VjaHNjcmVlbiA/IFtDU1MuT1ZFUkZMT1cuWC5BVVRPXSA6ICcnLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuR0FQLk9ORSwgQ1NTLkxJU1RfQlVMTEVUUy5PRkZdXCJcbiAgICAgICAgcmVmPVwiY29udGVudFJlZlwiXG4gICAgICA+XG4gICAgICAgIDxsaVxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuRkxFWC5TSFJJTksuT0ZGLCBDU1MuU05BUF9BTElHTi5TVEFSVF1cIlxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGAke3Byb3BzLm9mZnNldFggLSBnYXB9cHhgIH1cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5vZmZzZXRYXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8c2xvdCAvPlxuXG4gICAgICAgIDxsaVxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuRkxFWC5TSFJJTksuT0ZGLCBDU1MuU05BUF9BTElHTi5TVEFSVF1cIlxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGAke3Byb3BzLm9mZnNldFggLSBnYXB9cHhgIH1cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5vZmZzZXRYXCJcbiAgICAgICAgLz5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgIENTUy5QT1NJVElPTi5BQlNPTFVURSxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMxLkJFVFdFRU4sXG4gICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgIENTUy5XSURUSC5GVUxMLFxuICAgICAgICBDU1MuSEVJR0hULkZVTEwsXG4gICAgICAgIENTUy5QT0lOVEVSX0VWRU5UUy5PRkYsXG4gICAgICBdXCJcbiAgICAgIHYtaWY9XCJzaG93QnV0dG9uc1wiXG4gICAgPlxuICAgICAgPFRpZGVCdXR0b25JY29uXG4gICAgICAgIDpjbGFzcz1cIltDU1MuTUFSR0lOLkxFRlQuT05FLCBDU1MuUE9JTlRFUl9FVkVOVFMuT05dXCJcbiAgICAgICAgOmljb249XCJJQ09OLkNIRVZST05fTEVGVFwiXG4gICAgICAgIDpwcmlvcml0eT1cIlBSSU9SSVRZLlFVQVRFUk5BUllcIlxuICAgICAgICBAY2xpY2s9XCJzaG93UHJldmlvdXNTbGlkZVwiXG4gICAgICAvPlxuXG4gICAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5NQVJHSU4uUklHSFQuT05FLCBDU1MuUE9JTlRFUl9FVkVOVFMuT05dXCJcbiAgICAgICAgOmljb249XCJJQ09OLkNIRVZST05fUklHSFRcIlxuICAgICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgICAgQGNsaWNrPVwic2hvd05leHRTbGlkZVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG48L3RlbXBsYXRlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgU0laRSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG4gIGltcG9ydCB7IGZvcm1hdE51bWJlciB9IGZyb20gJ0AvdXRpbGl0aWVzL2Zvcm1hdCc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICBkYXRhVHJhY2s/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGluZGV0ZXJtaW5hdGU/OiBib29sZWFuO1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbnVtYmVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgY2hlY2tlZDogZmFsc2UsXG4gICAgZGF0YVRyYWNrOiAnJyxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgaW5kZXRlcm1pbmF0ZTogZmFsc2UsXG4gICAgaW5wdXRJZDogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiB1bmRlZmluZWQsXG4gICAgbmFtZTogdW5kZWZpbmVkLFxuICAgIG51bWJlcjogdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCBpc0NoZWNrZWQgPSBjb21wdXRlZCgoKSA9PiBwcm9wcy5jaGVja2VkIHx8IHByb3BzLmluZGV0ZXJtaW5hdGUpO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdlxuICAgIDpjbGFzcz1cIltcbiAgICAgICd0aWRlLWlucHV0LWNoZWNrYm94JyxcbiAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgQ1NTLkdBUC5IQUxGLFxuICAgICAgQ1NTLkZPTlQuU0laRS5GT1VSVEVFTixcbiAgICAgIGRpc2FibGVkID8gWydkaXNhYmxlZCcsIENTUy5QT0lOVEVSX0VWRU5UUy5PRkZdIDogQ1NTLkNVUlNPUi5QT0lOVEVSLFxuICAgIF1cIlxuICA+XG4gICAgPGlucHV0XG4gICAgICA6Y2hlY2tlZD1cImlzQ2hlY2tlZFwiXG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuTk9ORV1cIlxuICAgICAgOmRpc2FibGVkPVwicHJvcHMuZGlzYWJsZWRcIlxuICAgICAgOm5hbWU9XCJwcm9wcy5uYW1lXCJcbiAgICAgIHJlZj1cImlucHV0XCJcbiAgICAgIEBjbGljay5wcmV2ZW50XG4gICAgICA6aWQ9XCJwcm9wcy5pbnB1dElkXCJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgLz5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtaW5wdXQtY2hlY2tib3gtY3VzdG9tJyxcbiAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzEuQ0VOVEVSLFxuICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICBDU1MuRkxFWC5TSFJJTksuT0ZGLFxuICAgICAgICBDU1MuQk9SREVSLkZVTEwuT05FLFxuICAgICAgICBpc0NoZWNrZWQgPyBbQ1NTLkJPUkRFUi5DT0xPUi5ISUdILCBDU1MuQkcuU0VDT05EQVJZXSA6IFtDU1MuQk9SREVSLkNPTE9SLkRFRkFVTFQsIENTUy5CRy5TVVJGQUNFLkRFRkFVTFRdLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5RVUFSVEVSLFxuICAgICAgICBpc0NoZWNrZWQgJiYgJ2NoZWNrZWQnLFxuICAgICAgICBkaXNhYmxlZCA/IENTUy5DVVJTT1IuTk9UX0FMTE9XRUQgOiBDU1MuQ1VSU09SLlBPSU5URVIsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5GT05ULkNPTE9SLlNFQ09OREFSWV1cIlxuICAgICAgICA6aWNvbj1cInByb3BzLmluZGV0ZXJtaW5hdGUgPyBJQ09OLlJFTU9WRSA6IElDT04uQ0hFQ0tcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICB2LWlmPVwiaXNDaGVja2VkXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8bGFiZWxcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuR0FQLkhBTEYsIGRpc2FibGVkID8gQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRCA6IENTUy5DVVJTT1IuUE9JTlRFUl1cIlxuICAgICAgOmZvcj1cInByb3BzLmlucHV0SWRcIlxuICAgICAgQGNsaWNrLnByZXZlbnRcbiAgICAgIHYtaWY9XCJsYWJlbFwiXG4gICAgPlxuICAgICAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5UXVwiXG4gICAgICAgIHYtaWY9XCJwcm9wcy5udW1iZXJcIlxuICAgICAgPlxuICAgICAgICAoe3sgZm9ybWF0TnVtYmVyKHByb3BzLm51bWJlcikgfX0pXG4gICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS1pbnB1dC1jaGVja2JveC5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogdmFyKC0tdGlkZS1kaXNhYmxlZCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1jaGVja2JveC1jdXN0b20ge1xuICAgIHdpZHRoOiB2YXIoLS10aWRlLWZvbnQtMjgpO1xuICAgIGhlaWdodDogdmFyKC0tdGlkZS1mb250LTI4KTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGNoZWNrZWQ/OiBib29sZWFuO1xuICAgIGRhdGFUcmFjaz86IHN0cmluZztcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgaW5wdXRJZD86IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIGRhdGFUcmFjazogJycsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGlucHV0SWQ6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCBjaGVja2VkID0gcmVmKHByb3BzLmNoZWNrZWQpO1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLmNoZWNrZWQsXG4gICAgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSB8fCBuZXdWYWx1ZSAhPT0gY2hlY2tlZC52YWx1ZSkge1xuICAgICAgICBjaGVja2VkLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICApO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtaW5wdXQtcmFkaW8nLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLkhBTEYsIHByb3BzLmRpc2FibGVkICYmICdkaXNhYmxlZCddXCI+XG4gICAgPGlucHV0XG4gICAgICA6Y2hlY2tlZD1cImNoZWNrZWRcIlxuICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLk5PTkVdXCJcbiAgICAgIDppZD1cInByb3BzLmlucHV0SWRcIlxuICAgICAgbmFtZT1cIlwiXG4gICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgdmFsdWU9XCJcIlxuICAgIC8+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLWlucHV0LXJhZGlvLWN1c3RvbScsXG4gICAgICAgIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMxLkNFTlRFUixcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLkJPUkRFUi5GVUxMLk9ORSxcbiAgICAgICAgY2hlY2tlZCA/IENTUy5CT1JERVIuQ09MT1IuSElHSCA6IENTUy5CT1JERVIuQ09MT1IuREVGQVVMVCxcbiAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuRlVMTCxcbiAgICAgICAgY2hlY2tlZCAmJiAnY2hlY2tlZCcsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8ZGl2IDpjbGFzcz1cIlsndGlkZS1pbnB1dC1yYWRpby1jaGVjaycsIENTUy5CT1JERVIuUkFESVVTLkZVTEwsIHByb3BzLmNoZWNrZWQgJiYgQ1NTLkJHLlNFQ09OREFSWV1cIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGxhYmVsXG4gICAgICA6Y2xhc3M9XCJDU1MuRk9OVC5XRUlHSFQuRk9VUl9IVU5EUkVEXCJcbiAgICAgIDpmb3I9XCJwcm9wcy5pbnB1dElkXCJcbiAgICA+XG4gICAgICB7eyBwcm9wcy5sYWJlbCB9fVxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtaW5wdXQtcmFkaW8uZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IHZhcigtLXRpZGUtZGlzYWJsZWQpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtcmFkaW8tY3VzdG9tIHtcbiAgICB3aWR0aDogdmFyKC0tdGlkZS1mb250LTI4KTtcbiAgICBoZWlnaHQ6IHZhcigtLXRpZGUtZm9udC0yOCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1yYWRpby1jaGVjayB7XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICB9XG48L3N0eWxlPlxuIiwiaW1wb3J0IHR5cGUgeyBSZWYgfSBmcm9tICd2dWUnO1xuXG5pbXBvcnQgdHlwZSB7IFJhbmdlRGF0YSB9IGZyb20gJ0AvdHlwZXMvRmFjZXRSYW5nZSc7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJ0AvdHlwZXMvU2VsZWN0JztcbmltcG9ydCB0eXBlIHsgU3RyaW5nSW5wdXQgfSBmcm9tICdAL3R5cGVzL0Zvcm0nO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uRXJyb3IsIFZhbGlkYXRpb25MZW5ndGgsIFZhbGlkYXRpb25SZXN1bHQsIFZhbGlkYXRvciB9IGZyb20gJ0AvdHlwZXMvVmFsaWRhdGlvbic7XG5cbmltcG9ydCB7IHByaWNlVG9OdW1iZXIgfSBmcm9tICdAL3V0aWxpdGllcy9mb3JtYXQnO1xuXG5leHBvcnQgY29uc3QgZXJyb3JNZXNzYWdlRGVmYXVsdCA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCB2YWx1ZS4nO1xuXG5leHBvcnQgY29uc3Qgbm9FcnJvciA9IHtcbiAgbWVzc2FnZTogJycsXG4gIHZhbGlkOiB0cnVlLFxufSBhcyBSZWFkb25seTxWYWxpZGF0aW9uUmVzdWx0PjtcblxuZXhwb3J0IGNvbnN0IGNoZWNrRm9ybWF0ID0gKGZvcm1hdDogUmVnRXhwKSA9PiB7XG4gIHJldHVybiAodmFsdWU6IHN0cmluZyk6IFZhbGlkYXRpb25SZXN1bHQgPT4ge1xuICAgIGxldCByZXN1bHQgPSBub0Vycm9yO1xuXG4gICAgaWYgKCF2YWx1ZS50cmltKCkubWF0Y2goZm9ybWF0KSkge1xuICAgICAgcmVzdWx0ID0ge1xuICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2VEZWZhdWx0LFxuICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXJyb3JNZXNzYWdlID0gKGVycm9yRnJvbVByb3BzOiBWYWxpZGF0aW9uRXJyb3IsIGVycm9yRnJvbVJlZjogVmFsaWRhdGlvbkVycm9yKSA9PiB7XG4gIC8vIGVycm9yIGluIHByb3BzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB2YWxpZGF0aW9uIGVycm9yXG4gIGlmICh0eXBlb2YgZXJyb3JGcm9tUHJvcHMgPT09ICdzdHJpbmcnICYmIGVycm9yRnJvbVByb3BzLmxlbmd0aCA+IDApIHJldHVybiBlcnJvckZyb21Qcm9wcztcblxuICByZXR1cm4gdHlwZW9mIGVycm9yRnJvbVJlZiA9PT0gJ3N0cmluZycgJiYgZXJyb3JGcm9tUmVmLmxlbmd0aCA+IDAgPyBlcnJvckZyb21SZWYgOiBlcnJvck1lc3NhZ2VEZWZhdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpZWxkSGFzRXJyb3IgPSAoZXJyb3JGcm9tUHJvcHM6IFZhbGlkYXRpb25FcnJvciwgZXJyb3JGcm9tUmVmOiBWYWxpZGF0aW9uRXJyb3IpID0+XG4gIGVycm9yRnJvbVByb3BzICE9PSBmYWxzZSB8fCBlcnJvckZyb21SZWYgIT09IGZhbHNlO1xuXG5leHBvcnQgY29uc3QgZ2V0RmllbGRMZW5ndGhJc1ZhbGlkID0gKHsgbWF4bGVuZ3RoLCBtaW5sZW5ndGgsIHJlcXVpcmVkLCB2YWx1ZSB9OiBWYWxpZGF0aW9uTGVuZ3RoKSA9PiB7XG4gIGNvbnN0IGlzRW1wdHlBbmRVbnJlcXVpcmVkID0gdmFsdWUubGVuZ3RoID09PSAwICYmICFyZXF1aXJlZDtcbiAgY29uc3QgaXNUb29Mb25nID0gbWF4bGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IG1heGxlbmd0aDtcbiAgY29uc3QgaXNUb29TaG9ydCA9ICFpc0VtcHR5QW5kVW5yZXF1aXJlZCAmJiBtaW5sZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgbWlubGVuZ3RoO1xuXG4gIHJldHVybiAhaXNUb29TaG9ydCAmJiAhaXNUb29Mb25nO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1heFJhbmdlSXNWYWxpZCA9ICh7IG1pbiB9OiBQaWNrPFJhbmdlRGF0YSwgJ21pbic+LCB0eXBlPzogJ3ByaWNlJykgPT4ge1xuICByZXR1cm4gKHZhbHVlOiBzdHJpbmcpOiBWYWxpZGF0aW9uUmVzdWx0ID0+IHtcbiAgICBsZXQgbmV3TWF4OiBudW1iZXIgfCBudWxsID0gdHlwZSA9PT0gJ3ByaWNlJyA/IHByaWNlVG9OdW1iZXIodmFsdWUpIDogTnVtYmVyKHZhbHVlKTtcbiAgICBuZXdNYXggPSAhaXNOYU4obmV3TWF4KSA/IG5ld01heCA6IG51bGw7XG4gICAgaWYgKG1pbiAmJiBuZXdNYXgpIHtcbiAgICAgIGlmIChuZXdNYXggPj0gbWluKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1lc3NhZ2U6IGBNdXN0IGJlIGdyZWF0ZXIgdGhhbiBtaW5gLFxuICAgICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5vRXJyb3I7XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1pblJhbmdlSXNWYWxpZCA9ICh7IG1heCB9OiBQaWNrPFJhbmdlRGF0YSwgJ21heCc+LCB0eXBlPzogJ3ByaWNlJykgPT4ge1xuICByZXR1cm4gKHZhbHVlOiBzdHJpbmcpOiBWYWxpZGF0aW9uUmVzdWx0ID0+IHtcbiAgICBsZXQgbmV3TWluOiBudW1iZXIgfCBudWxsID0gdHlwZSA9PT0gJ3ByaWNlJyA/IHByaWNlVG9OdW1iZXIodmFsdWUpIDogTnVtYmVyKHZhbHVlKTtcbiAgICBuZXdNaW4gPSAhaXNOYU4obmV3TWluKSA/IG5ld01pbiA6IG51bGw7XG4gICAgaWYgKG1heCAmJiBuZXdNaW4pIHtcbiAgICAgIGlmIChuZXdNaW4gPD0gbWF4KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1lc3NhZ2U6IGBNdXN0IGJlIGxlc3MgdGhhbiBtYXhgLFxuICAgICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5vRXJyb3I7XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdE9wdGlvbnNGcm9tU3RyaW5ncyA9IChzdHJpbmdzOiBzdHJpbmdbXSkgPT5cbiAgc3RyaW5ncy5tYXAoXG4gICAgKG9wdGlvbikgPT5cbiAgICAgICh7XG4gICAgICAgIGxhYmVsOiBvcHRpb24sXG4gICAgICAgIHZhbHVlOiBvcHRpb24sXG4gICAgICB9IGFzIFNlbGVjdE9wdGlvbilcbiAgKTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZUZpZWxkVmFsaWRhdGlvbiA9ICh7XG4gIGVycm9yLFxuICBlcnJvckZyb21Qcm9wcyxcbiAgbWF4bGVuZ3RoLFxuICBtaW5sZW5ndGgsXG4gIHJlcXVpcmVkID0gZmFsc2UsXG4gIHZhbGlkYXRvcnMsXG4gIHZhbHVlLFxufToge1xuICBlcnJvcjogUmVmPFZhbGlkYXRpb25FcnJvcj47XG4gIGVycm9yRnJvbVByb3BzOiBWYWxpZGF0aW9uRXJyb3I7XG4gIG1heGxlbmd0aD86IG51bWJlcjtcbiAgbWlubGVuZ3RoPzogbnVtYmVyO1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JbXTtcbiAgdmFsdWU6IFJlZjxzdHJpbmc+O1xufSkgPT4ge1xuICAvLyBlcnJvciBpbiBwcm9wcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdmFsaWRhdGlvbiBlcnJvclxuXG4gIGVycm9yLnZhbHVlID0gZXJyb3JGcm9tUHJvcHMgPyBlcnJvckZyb21Qcm9wcyA6IGZhbHNlO1xuXG4gIGlmICghZXJyb3IudmFsdWUgJiYgdmFsaWRhdG9ycykge1xuICAgIGNvbnN0IHZhbGlkYXRpb24gPSB2YWxpZGF0ZVByb3BlcnR5KHZhbHVlLnZhbHVlLCB2YWxpZGF0b3JzKTtcblxuICAgIGlmICghdmFsaWRhdGlvbi52YWxpZCkge1xuICAgICAgZXJyb3IudmFsdWUgPSB2YWxpZGF0aW9uLm1lc3NhZ2U7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFlcnJvci52YWx1ZSAmJiAobWF4bGVuZ3RoIHx8IG1pbmxlbmd0aCkpIHtcbiAgICBjb25zdCBsZW5ndGhWYWxpZGF0aW9uID0gdmFsaWRhdGVMZW5ndGgoe1xuICAgICAgbWF4bGVuZ3RoLFxuICAgICAgbWlubGVuZ3RoLFxuICAgICAgcmVxdWlyZWQsXG4gICAgICB2YWx1ZTogdmFsdWUudmFsdWUsXG4gICAgfSk7XG5cbiAgICBpZiAoIWxlbmd0aFZhbGlkYXRpb24udmFsaWQpIHtcbiAgICAgIGVycm9yLnZhbHVlID0gbGVuZ3RoVmFsaWRhdGlvbi5tZXNzYWdlO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRmllbGRzRnJvbVJlZnMoZmllbGRzOiB7IFtrZXk6IHN0cmluZ106IFJlZjxTdHJpbmdJbnB1dCB8IG51bGw+IH0pIHtcbiAgbGV0IHZhbGlkID0gdHJ1ZTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBmaWVsZHMpIHtcbiAgICBpZiAoZmllbGRzW2tleV0udmFsdWU/LnJlcXVpcmVkKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGZpZWxkc1trZXldLnZhbHVlPy52YWx1ZTtcbiAgICAgIHZhbGlkID0gdmFsaWQgJiYgISF2YWx1ZSAmJiB2YWx1ZS50cmltKCkgIT09ICcnO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yID0gZmllbGRzW2tleV0udmFsdWU/LmVycm9yO1xuICAgIHZhbGlkID0gdmFsaWQgJiYgIWVycm9yO1xuICB9XG5cbiAgcmV0dXJuIHZhbGlkO1xufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVMZW5ndGggPSAoe1xuICBtYXhsZW5ndGgsXG4gIG1pbmxlbmd0aCxcbiAgcmVxdWlyZWQgPSBmYWxzZSxcbiAgdmFsdWUsXG59OiBWYWxpZGF0aW9uTGVuZ3RoKTogVmFsaWRhdGlvblJlc3VsdCA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgIG1lc3NhZ2U6ICcnLFxuICAgIHZhbGlkOiB0cnVlLFxuICB9O1xuXG4gIHJlc3BvbnNlLnZhbGlkID0gZ2V0RmllbGRMZW5ndGhJc1ZhbGlkKHtcbiAgICBtYXhsZW5ndGgsXG4gICAgbWlubGVuZ3RoLFxuICAgIHJlcXVpcmVkLFxuICAgIHZhbHVlLFxuICB9KTtcblxuICBpZiAocmVzcG9uc2UudmFsaWQpIHJldHVybiByZXNwb25zZTtcblxuICByZXNwb25zZS5tZXNzYWdlID0gZXJyb3JNZXNzYWdlRGVmYXVsdDtcblxuICBpZiAobWF4bGVuZ3RoICYmIG1pbmxlbmd0aCkge1xuICAgIHJlc3BvbnNlLm1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgdmFsdWUgYmV0d2VlbiAke21pbmxlbmd0aH0gYW5kICR7bWF4bGVuZ3RofSBjaGFyYWN0ZXJzIGluIGxlbmd0aC5gO1xuICB9IGVsc2UgaWYgKG1heGxlbmd0aCkge1xuICAgIHJlc3BvbnNlLm1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgdmFsdWUgbm8gbW9yZSB0aGFuICR7bWF4bGVuZ3RofSBjaGFyYWN0ZXJzIGluIGxlbmd0aC5gO1xuICB9IGVsc2UgaWYgKG1pbmxlbmd0aCkge1xuICAgIHJlc3BvbnNlLm1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgdmFsdWUgbm8gbGVzcyB0aGFuICR7bWlubGVuZ3RofSBjaGFyYWN0ZXJzIGluIGxlbmd0aC5gO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydHkodmFsdWU6IHN0cmluZywgdmFsaWRhdG9yczogKCh2YWx1ZTogc3RyaW5nKSA9PiBWYWxpZGF0aW9uUmVzdWx0KVtdKTogVmFsaWRhdGlvblJlc3VsdCB7XG4gIGZvciAoY29uc3QgdmFsaWRhdG9yIG9mIHZhbGlkYXRvcnMpIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uID0gdmFsaWRhdG9yKHZhbHVlKTtcbiAgICBpZiAoIXZhbGlkYXRpb24udmFsaWQpIHtcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbWVzc2FnZTogJycsXG4gICAgdmFsaWQ6IHRydWUsXG4gIH07XG59XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgcmVmLCB3YXRjaCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHR5cGUgeyBTZWxlY3RGaWVsZCB9IGZyb20gJ0AvdHlwZXMvRmllbGQnO1xuICBpbXBvcnQgdHlwZSB7IFNlbGVjdE9wdGlvbiwgU2VsZWN0T3B0aW9uR3JvdXAgfSBmcm9tICdAL3R5cGVzL1NlbGVjdCc7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgZ2V0RmllbGRIYXNFcnJvciwgZ2V0RXJyb3JNZXNzYWdlIH0gZnJvbSAnQC91dGlsaXRpZXMvdmFsaWRhdGlvbic7XG5cbiAgaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgU2VsZWN0RmllbGQge1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgc3VwcG9ydGluZ1RleHQ/OiBzdHJpbmc7XG4gIH1cblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBlcnJvcjogZmFsc2UsXG4gICAgaW5wdXRJZDogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiB1bmRlZmluZWQsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIHN1cHBvcnRpbmdUZXh0OiB1bmRlZmluZWQsXG4gICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgY29uc3QgZXJyb3IgPSByZWYocHJvcHMuZXJyb3IpO1xuICBjb25zdCBoYXNGb2N1cyA9IHJlZihmYWxzZSk7XG4gIGNvbnN0IGlucHV0ID0gcmVmPEhUTUxTZWxlY3RFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHJlcXVpcmVkID0gcmVmKHByb3BzLnJlcXVpcmVkKTtcbiAgY29uc3QgdmFsdWUgPSByZWY8c3RyaW5nIHwgdW5kZWZpbmVkPihwcm9wcy52YWx1ZSk7XG5cbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gY29tcHV0ZWQoKCkgPT4gZ2V0RXJyb3JNZXNzYWdlKHByb3BzLmVycm9yLCBlcnJvci52YWx1ZSkpO1xuICBjb25zdCBmb3JtYXR0ZWRMYWJlbCA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5yZXF1aXJlZCA/IGAke3Byb3BzLmxhYmVsfSAqYCA6IHByb3BzLmxhYmVsKSk7XG4gIGNvbnN0IGhhc0Vycm9yID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLnJlcXVpcmVkICYmICF2YWx1ZS52YWx1ZSkgfHwgZ2V0RmllbGRIYXNFcnJvcihlcnJvci52YWx1ZSwgcHJvcHMuZXJyb3IpKTtcbiAgY29uc3QgaGFzTWluaWxhYmVsID0gY29tcHV0ZWQoKCkgPT4gaGFzRm9jdXMudmFsdWUgfHwgIWlzRW1wdHkudmFsdWUpO1xuICBjb25zdCBpc0VtcHR5ID0gY29tcHV0ZWQoKCkgPT4gdmFsdWUudmFsdWUgPT09IHVuZGVmaW5lZCk7XG5cbiAgY29uc3QgZXhwYW5kT3B0aW9ucyA9ICgpID0+IHtcbiAgICBjb25zdCBldmVudCA9IG5ldyBNb3VzZUV2ZW50KCdtb3VzZWRvd24nKTtcbiAgICBpbnB1dD8udmFsdWU/LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gKCkgPT4ge1xuICAgIGhhc0ZvY3VzLnZhbHVlID0gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGb2N1c091dCA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IGZhbHNlO1xuICB9O1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLnZhbHVlLFxuICAgIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUgfHwgbmV3VmFsdWUgIT09IHZhbHVlLnZhbHVlKSB7XG4gICAgICAgIHZhbHVlLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIGRlZmluZUV4cG9zZSh7IGVycm9yLCB2YWx1ZSB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXZcbiAgICA6Y2xhc3M9XCJbXG4gICAgICAndGlkZS1pbnB1dC1zZWxlY3QnLFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sXG4gICAgICBDU1MuR0FQLlFVQVJURVIsXG4gICAgICBkaXNhYmxlZCAmJiAnZGlzYWJsZWQnLFxuICAgICAgaGFzRXJyb3IgJiYgJ2Vycm9yJyxcbiAgICBdXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtaW5wdXQtYm9yZGVyJyxcbiAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICBDU1MuR0FQLkhBTEYsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICAgIHByb3BzLmRpc2FibGVkID8gQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRCA6ICcnLFxuICAgICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgXVwiXG4gICAgICBAY2xpY2s9XCJleHBhbmRPcHRpb25zXCJcbiAgICA+XG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OLCBDU1MuV0lEVEguRlVMTF1cIj5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgICAgaGFzTWluaWxhYmVsID8gWydtaW5pbGFiZWwnLCBDU1MuRk9OVC5TSVpFLlRXRUxWRV0gOiBDU1MuRk9OVC5TSVpFLlNJWFRFRU4sXG4gICAgICAgICAgICBDU1MuUE9TSVRJT04uQUJTT0xVVEUsXG4gICAgICAgICAgICBDU1MuUE9TSVRJT05JTkcuTEVGVCxcbiAgICAgICAgICAgIENTUy5NQVJHSU4uVE9QLkhBTEYsXG4gICAgICAgICAgICBDU1MuTUFSR0lOLkxFRlQuT05FLFxuICAgICAgICAgICAgIWhhc0Vycm9yICYmIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVCxcbiAgICAgICAgICAgIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRUQsXG4gICAgICAgICAgXVwiXG4gICAgICAgICAgOmZvcj1cInByb3BzLmlucHV0SWRcIlxuICAgICAgICAgIHYtaWY9XCJsYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtYXR0ZWRMYWJlbCB9fVxuICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgIDxzZWxlY3RcbiAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBBRERJTkcuQk9UVE9NLkhBTEYsIENTUy5QQURESU5HLlguT05FLCBDU1MuV0lEVEguRlVMTCwgZGlzYWJsZWQgJiYgQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRF1cIlxuICAgICAgICAgIDpkaXNhYmxlZD1cImRpc2FibGVkXCJcbiAgICAgICAgICA6bmFtZT1cIm5hbWVcIlxuICAgICAgICAgIHJlZj1cImlucHV0XCJcbiAgICAgICAgICA6cmVxdWlyZWQ9XCJyZXF1aXJlZFwiXG4gICAgICAgICAgQGZvY3VzPVwiaGFuZGxlRm9jdXNcIlxuICAgICAgICAgIEBmb2N1c291dD1cImhhbmRsZUZvY3VzT3V0XCJcbiAgICAgICAgICA6aWQ9XCJwcm9wcy5pbnB1dElkXCJcbiAgICAgICAgICB2LW1vZGVsPVwidmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwib3B0Z3JvdXAgaW4gcHJvcHMub3B0Z3JvdXBzXCI+XG4gICAgICAgICAgICA8b3B0Z3JvdXBcbiAgICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5XSURUSC5GVUxMLCBDU1MuQkcuU1VSRkFDRS5ERUZBVUxUXVwiXG4gICAgICAgICAgICAgIDprZXk9XCIob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uR3JvdXApLmxhYmVsXCJcbiAgICAgICAgICAgICAgOmxhYmVsPVwiKG9wdGdyb3VwIGFzIFNlbGVjdE9wdGlvbkdyb3VwKS5sYWJlbFwiXG4gICAgICAgICAgICAgIHYtaWY9XCIob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uR3JvdXApLm9wdGlvbnNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5XSURUSC5GVUxMLCBDU1MuQkcuU1VSRkFDRS5ERUZBVUxUXVwiXG4gICAgICAgICAgICAgICAgOmtleT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICAgICAgOnZhbHVlPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICB2LWZvcj1cIm9wdGlvbiBpbiAob3B0Z3JvdXAgYXMgU2VsZWN0T3B0aW9uR3JvdXApLm9wdGlvbnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgPC9vcHRncm91cD5cblxuICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLldJRFRILkZVTEwsIENTUy5CRy5TVVJGQUNFLkRFRkFVTFRdXCJcbiAgICAgICAgICAgICAgOmtleT1cIihvcHRncm91cCBhcyBTZWxlY3RPcHRpb24pLnZhbHVlXCJcbiAgICAgICAgICAgICAgOnNlbGVjdGVkPVwidmFsdWUgPT09IChvcHRncm91cCBhcyBTZWxlY3RPcHRpb24pLnZhbHVlID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgIDp2YWx1ZT1cIihvcHRncm91cCBhcyBTZWxlY3RPcHRpb24pLnZhbHVlXCJcbiAgICAgICAgICAgICAgdi1lbHNlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IChvcHRncm91cCBhcyBTZWxlY3RPcHRpb24pLmxhYmVsIH19XG4gICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8L3RlbXBsYXRlPlxuXG4gICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5XSURUSC5GVUxMLCBDU1MuQkcuU1VSRkFDRS5ERUZBVUxUXVwiXG4gICAgICAgICAgICA6a2V5PVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgIDpzZWxlY3RlZD1cInZhbHVlID09PSBvcHRpb24udmFsdWUgPyB0cnVlIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIDp2YWx1ZT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICB2LWZvcj1cIm9wdGlvbiBpbiBvcHRpb25zXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltDU1MuUE9TSVRJT04uQUJTT0xVVEUsIENTUy5QT1NJVElPTklORy5SSUdIVCwgQ1NTLk1BUkdJTi5SSUdIVC5PTkUsIENTUy5QT0lOVEVSX0VWRU5UUy5PRkZdXCJcbiAgICAgICAgOmljb249XCJJQ09OLkVYUEFORF9NT1JFXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuTUFSR0lOLkxFRlQuT05FXVwiXG4gICAgICB2LWlmPVwicHJvcHMuc3VwcG9ydGluZ1RleHQgfHwgaGFzRXJyb3JcIlxuICAgID5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbXVwiXG4gICAgICAgIDppY29uPVwiSUNPTi5FUlJPUlwiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAgIHYtaWY9XCJoYXNFcnJvclwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRk9OVC5TSVpFLlRXRUxWRSwgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRF1cIj5cbiAgICAgICAge3sgaGFzRXJyb3IgPyBlcnJvck1lc3NhZ2UgOiBwcm9wcy5zdXBwb3J0aW5nVGV4dCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgc2VsZWN0IHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGhlaWdodDogMS4xODc1cmVtO1xuICAgIHRyYW5zaXRpb246IGZvbnQtc2l6ZSB2YXIoLS10aWRlLWFuaW1hdGUpLCB0cmFuc2Zvcm0gdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuXG4gIGxhYmVsOm5vdCgubWluaWxhYmVsKSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgY2FsYyg5IC8gMTYgKiAxcmVtKSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IHZhcigtLXRpZGUtZGlzYWJsZWQpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtc2VsZWN0LmVycm9yIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRpZGUtZXJyb3Itc3VyZmFjZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZXJyb3I6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtc2VsZWN0OmZvY3VzLXdpdGhpbiAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0yKTtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtYm9yZGVyLWhpZ2gpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMSk7XG4gICAgb3V0bGluZTogdmFyKC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoKSBzb2xpZCB2YXIoLS10aWRlLWJvcmRlcik7XG4gICAgb3V0bGluZS1vZmZzZXQ6IGNhbGModmFyKC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoKSAqIC0xKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXNlbGVjdC5lcnJvciB7XG4gICAgY29sb3I6IHZhcigtLXRpZGUtZXJyb3Itb24tc3VyZmFjZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZXJyb3Igb3B0aW9uIHtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1vbi1zdXJmYWNlKTtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgcGFkZGluZy10b3A6IDI3cHg7XG4gIH1cbjwvc3R5bGU+XG4iLCJleHBvcnQgY29uc3QgVEVYVF9JTlBVVF9UWVBFID0ge1xuICBEQVRFOiAnZGF0ZScsXG4gIERBVEVUSU1FX0xPQ0FMOiAnZGF0ZXRpbWUtbG9jYWwnLFxuICBFTUFJTDogJ2VtYWlsJyxcbiAgTU9OVEg6ICdtb250aCcsXG4gIE5VTUJFUjogJ251bWJlcicsXG4gIFBBU1NXT1JEOiAncGFzc3dvcmQnLFxuICBTRUFSQ0g6ICdzZWFyY2gnLFxuICBURUw6ICd0ZWwnLFxuICBURVhUOiAndGV4dCcsXG4gIFRJTUU6ICd0aW1lJyxcbiAgVVJMOiAndXJsJyxcbiAgV0VFSzogJ3dlZWsnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVGV4dElucHV0VHlwZSA9ICh0eXBlb2YgVEVYVF9JTlBVVF9UWVBFKVtrZXlvZiB0eXBlb2YgVEVYVF9JTlBVVF9UWVBFXTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IEZvcm1WYWx1ZVRyYW5zZm9ybWVyIH0gZnJvbSAnQC90eXBlcy9Gb3JtJztcbiAgaW1wb3J0IHR5cGUgeyBJY29uIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHR5cGUgeyBUZXh0SW5wdXRUeXBlIH0gZnJvbSAnQC90eXBlcy9UZXh0SW5wdXQnO1xuICBpbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25FcnJvciwgVmFsaWRhdG9yIH0gZnJvbSAnQC90eXBlcy9WYWxpZGF0aW9uJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFNJWkUgfSBmcm9tICdAL3R5cGVzL1NpemUnO1xuICBpbXBvcnQgeyBURVhUX0lOUFVUX1RZUEUgfSBmcm9tICdAL3R5cGVzL1RleHRJbnB1dCc7XG4gIGltcG9ydCB7IGdldEVycm9yTWVzc2FnZSwgZ2V0RmllbGRIYXNFcnJvciwgaGFuZGxlRmllbGRWYWxpZGF0aW9uIH0gZnJvbSAnQC91dGlsaXRpZXMvdmFsaWRhdGlvbic7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBhdXRvY29tcGxldGU/OiBib29sZWFuO1xuICAgIGRhdGFUcmFjaz86IHN0cmluZztcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgZXJyb3I/OiBWYWxpZGF0aW9uRXJyb3I7XG4gICAgaGFzQ2xlYXI/OiBib29sZWFuO1xuICAgIGljb25MZWFkaW5nPzogSWNvbjtcbiAgICBpbnB1dElkPzogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgbWF4bGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIG1pbmxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgICBzdWZmaXg/OiBzdHJpbmc7XG4gICAgc3VwcG9ydGluZ1RleHQ/OiBzdHJpbmc7XG4gICAgdHJhbnNmb3JtVmFsdWU/OiBGb3JtVmFsdWVUcmFuc2Zvcm1lcjtcbiAgICB0eXBlPzogVGV4dElucHV0VHlwZTtcbiAgICB2YWxpZGF0b3JzPzogVmFsaWRhdG9yW107XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBhdXRvY29tcGxldGU6IGZhbHNlLFxuICAgIGRhdGFUcmFjazogJycsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGVycm9yOiBmYWxzZSxcbiAgICBoYXNDbGVhcjogZmFsc2UsXG4gICAgaWNvbkxlYWRpbmc6IHVuZGVmaW5lZCxcbiAgICBpbnB1dElkOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6IHVuZGVmaW5lZCxcbiAgICBtYXhsZW5ndGg6IHVuZGVmaW5lZCxcbiAgICBtaW5sZW5ndGg6IHVuZGVmaW5lZCxcbiAgICBwcmVmaXg6IHVuZGVmaW5lZCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgc3VmZml4OiB1bmRlZmluZWQsXG4gICAgc3VwcG9ydGluZ1RleHQ6IHVuZGVmaW5lZCxcbiAgICB0cmFuc2Zvcm1WYWx1ZTogdW5kZWZpbmVkLFxuICAgIHR5cGU6IFRFWFRfSU5QVVRfVFlQRS5URVhULFxuICAgIHZhbGlkYXRvcnM6IHVuZGVmaW5lZCxcbiAgICB2YWx1ZTogJycsXG4gIH0pO1xuXG4gIGNvbnN0IGVycm9yID0gcmVmKHByb3BzLmVycm9yKTtcbiAgY29uc3QgaGFzRm9jdXMgPSByZWYoZmFsc2UpO1xuICBjb25zdCBpbnB1dCA9IHJlZjxIVE1MSW5wdXRFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHNob3dQYXNzd29yZCA9IHJlZihmYWxzZSk7XG4gIGNvbnN0IHZhbHVlID0gcmVmKHByb3BzLnZhbHVlKTtcblxuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBjb21wdXRlZCgoKSA9PiBnZXRFcnJvck1lc3NhZ2UocHJvcHMuZXJyb3IsIGVycm9yLnZhbHVlKSk7XG4gIGNvbnN0IGZvcm1hdHRlZExhYmVsID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLnJlcXVpcmVkICYmIHByb3BzLmxhYmVsID8gYCR7cHJvcHMubGFiZWx9ICpgIDogcHJvcHMubGFiZWwpKTtcbiAgY29uc3QgaGFzQ2xlYXIgPSBjb21wdXRlZCgoKSA9PiBwcm9wcy5oYXNDbGVhciAmJiB2YWx1ZS52YWx1ZSk7XG4gIGNvbnN0IGhhc0Vycm9yID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLnJlcXVpcmVkICYmICF2YWx1ZS52YWx1ZSkgfHwgZ2V0RmllbGRIYXNFcnJvcihlcnJvci52YWx1ZSwgcHJvcHMuZXJyb3IpKTtcbiAgY29uc3QgaGFzTWluaWxhYmVsID0gY29tcHV0ZWQoKCkgPT4gaGFzRm9jdXMudmFsdWUgfHwgIWlzRW1wdHkudmFsdWUpO1xuICBjb25zdCBpc0VtcHR5ID0gY29tcHV0ZWQoKCkgPT4gdmFsdWUudmFsdWUgPT09ICcnKTtcbiAgY29uc3QgdHlwZSA9IGNvbXB1dGVkKCgpID0+XG4gICAgcHJvcHMudHlwZSA9PT0gVEVYVF9JTlBVVF9UWVBFLlBBU1NXT1JEICYmIHNob3dQYXNzd29yZC52YWx1ZSA9PT0gdHJ1ZSA/IFRFWFRfSU5QVVRfVFlQRS5URVhUIDogcHJvcHMudHlwZVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUNsZWFyID0gKCkgPT4ge1xuICAgIHZhbHVlLnZhbHVlID0gJyc7XG4gICAgaW5wdXQudmFsdWU/LmZvY3VzKCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRm9jdXMgPSAoKSA9PiB7XG4gICAgaGFzRm9jdXMudmFsdWUgPSB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzT3V0ID0gKCkgPT4ge1xuICAgIGhhc0ZvY3VzLnZhbHVlID0gZmFsc2U7XG4gICAgaGFuZGxlVmFsaWRhdGlvbigpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUlucHV0ID0gKCkgPT4ge1xuICAgIGlmIChwcm9wcy50cmFuc2Zvcm1WYWx1ZSkge1xuICAgICAgY29uc3QgZGlnaXRzID0gdmFsdWUudmFsdWUubWF0Y2goL1xcZC9nKT8uam9pbignJykgfHwgdW5kZWZpbmVkO1xuXG4gICAgICB2YWx1ZS52YWx1ZSA9IGRpZ2l0cyA/IHByb3BzLnRyYW5zZm9ybVZhbHVlKGRpZ2l0cykgOiAnJztcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlVmFsaWRhdGlvbiA9ICgpID0+IHtcbiAgICBoYW5kbGVGaWVsZFZhbGlkYXRpb24oe1xuICAgICAgZXJyb3IsXG4gICAgICBlcnJvckZyb21Qcm9wczogcHJvcHMuZXJyb3IsXG4gICAgICBtYXhsZW5ndGg6IHByb3BzLm1heGxlbmd0aCxcbiAgICAgIG1pbmxlbmd0aDogcHJvcHMubWlubGVuZ3RoLFxuICAgICAgcmVxdWlyZWQ6IHByb3BzLnJlcXVpcmVkLFxuICAgICAgdmFsaWRhdG9yczogcHJvcHMudmFsaWRhdG9ycyxcbiAgICAgIHZhbHVlLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZVZhbHVlID0gKG5ld1ZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICB2YWx1ZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICB9O1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLnZhbHVlLFxuICAgIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUgfHwgbmV3VmFsdWUgIT09IHZhbHVlLnZhbHVlKSB7XG4gICAgICAgIHZhbHVlLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIGRlZmluZUV4cG9zZSh7IGVycm9yLCB1cGRhdGVWYWx1ZSwgdmFsdWUgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiW1xuICAgICAgJ3RpZGUtaW5wdXQtdGV4dCcsXG4gICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTixcbiAgICAgIENTUy5HQVAuUVVBUlRFUixcbiAgICAgIGRpc2FibGVkICYmICdkaXNhYmxlZCcsXG4gICAgICBoYXNFcnJvciAmJiAnZXJyb3InLFxuICAgIF1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS1pbnB1dC1ib3JkZXInLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICBDU1MuR0FQLkhBTEYsXG4gICAgICAgIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuSEFMRixcbiAgICAgICAgaGFzQ2xlYXIgPyBbQ1NTLlBBRERJTkcuUklHSFQuSEFMRiwgQ1NTLlBBRERJTkcuTEVGVC5PTkVdIDogW0NTUy5QQURESU5HLlguT05FXSxcbiAgICAgICAgQ1NTLlBBRERJTkcuWS5IQUxGLFxuICAgICAgICBwcm9wcy5kaXNhYmxlZCA/IENTUy5DVVJTT1IuTk9UX0FMTE9XRUQgOiBDU1MuQ1VSU09SLlRFWFQsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmljb249XCJwcm9wcy5pY29uTGVhZGluZ1wiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAgIHYtaWY9XCJwcm9wcy5pY29uTGVhZGluZ1wiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5XSURUSC5GVUxMXVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgOmNsYXNzPVwiWyd0aWRlLWlucHV0LXRleHQtcHJlZml4JywgIWhhc0Vycm9yICYmIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVCwgaGFzTWluaWxhYmVsID8gJycgOiAnb2Zmc2V0J11cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5wcmVmaXhcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcHJvcHMucHJlZml4IH19XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTiwgQ1NTLldJRFRILkZVTExdXCJcbiAgICAgICAgICBAY2xpY2sucHJldmVudD1cImlucHV0Py5mb2N1cygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgICAgICBoYXNNaW5pbGFiZWwgPyBbJ21pbmlsYWJlbCcsIENTUy5GT05ULlNJWkUuVFdFTFZFXSA6IENTUy5GT05ULlNJWkUuU0lYVEVFTixcbiAgICAgICAgICAgICAgIWhhc0Vycm9yICYmIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVCxcbiAgICAgICAgICAgICAgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCxcbiAgICAgICAgICAgICAgQ1NTLkNVUlNPUi5URVhULFxuICAgICAgICAgICAgXVwiXG4gICAgICAgICAgICA6Zm9yPVwicHJvcHMuaW5wdXRJZFwiXG4gICAgICAgICAgICB2LWlmPVwibGFiZWxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGZvcm1hdHRlZExhYmVsIH19XG4gICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgOmF1dG9jb21wbGV0ZT1cImF1dG9jb21wbGV0ZSA/ICdvbicgOiAnb2ZmJ1wiXG4gICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLldJRFRILkZVTEwsIGRpc2FibGVkICYmIENTUy5DVVJTT1IuTk9UX0FMTE9XRURdXCJcbiAgICAgICAgICAgIDpkYXRhLXRyYWNrPVwicHJvcHMuZGF0YVRyYWNrXCJcbiAgICAgICAgICAgIDpkaXNhYmxlZD1cInByb3BzLmRpc2FibGVkXCJcbiAgICAgICAgICAgIDptYXhsZW5ndGg9XCJwcm9wcy5tYXhsZW5ndGhcIlxuICAgICAgICAgICAgOm1pbmxlbmd0aD1cInByb3BzLm1pbmxlbmd0aFwiXG4gICAgICAgICAgICA6bmFtZT1cInByb3BzLm5hbWVcIlxuICAgICAgICAgICAgcmVmPVwiaW5wdXRcIlxuICAgICAgICAgICAgOnJlcXVpcmVkPVwicHJvcHMucmVxdWlyZWRcIlxuICAgICAgICAgICAgOnR5cGU9XCJ0eXBlXCJcbiAgICAgICAgICAgIEBjaGFuZ2U9XCJoYW5kbGVWYWxpZGF0aW9uXCJcbiAgICAgICAgICAgIEBmb2N1cz1cImhhbmRsZUZvY3VzXCJcbiAgICAgICAgICAgIEBmb2N1c291dD1cImhhbmRsZUZvY3VzT3V0XCJcbiAgICAgICAgICAgIEBpbnB1dD1cImhhbmRsZUlucHV0XCJcbiAgICAgICAgICAgIDppZD1cInByb3BzLmlucHV0SWRcIlxuICAgICAgICAgICAgdi1tb2RlbD1cInZhbHVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgOmNsYXNzPVwiWyd0aWRlLWlucHV0LXRleHQtc3VmZml4JywgIWhhc0Vycm9yICYmIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVCwgaGFzTWluaWxhYmVsID8gJycgOiAnb2Zmc2V0J11cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5zdWZmaXhcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcHJvcHMuc3VmZml4IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBBRERJTkcuWS5IQUxGLCBDU1MuUEFERElORy5GVUxMLkhBTEYsIENTUy5DVVJTT1IuUE9JTlRFUl1cIlxuICAgICAgICA6aWNvbj1cIklDT04uQ0xPU0VcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICBAY2xpY2s9XCJoYW5kbGVDbGVhclwiXG4gICAgICAgIHYtaWY9XCJoYXNDbGVhciAmJiBwcm9wcy50eXBlICE9PSBURVhUX0lOUFVUX1RZUEUuUEFTU1dPUkRcIlxuICAgICAgLz5cblxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltDU1MuUEFERElORy5ZLkhBTEYsIENTUy5QQURESU5HLkZVTEwuSEFMRiwgQ1NTLkNVUlNPUi5QT0lOVEVSXVwiXG4gICAgICAgIDppY29uPVwiSUNPTi5WSVNJQklMSVRZXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgQGNsaWNrPVwic2hvd1Bhc3N3b3JkID0gIXNob3dQYXNzd29yZFwiXG4gICAgICAgIHYtaWY9XCJwcm9wcy50eXBlID09PSBURVhUX0lOUFVUX1RZUEUuUEFTU1dPUkRcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5NQVJHSU4uTEVGVC5PTkVdXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5zdXBwb3J0aW5nVGV4dCB8fCBoYXNFcnJvclwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltdXCJcbiAgICAgICAgOmljb249XCJJQ09OLkVSUk9SXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgdi1pZj1cImhhc0Vycm9yXCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5GT05ULlNJWkUuVFdFTFZFLCBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVEXVwiPlxuICAgICAgICB7eyBoYXNFcnJvciA/IGVycm9yTWVzc2FnZSA6IHByb3BzLnN1cHBvcnRpbmdUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICBsYWJlbCB7XG4gICAgaGVpZ2h0OiAxLjE4NzVyZW07XG4gICAgdHJhbnNpdGlvbjogZm9udC1zaXplIHZhcigtLXRpZGUtYW5pbWF0ZSksIHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgbGFiZWw6bm90KC5taW5pbGFiZWwpLFxuICAudGlkZS1pbnB1dC10ZXh0LXByZWZpeDpub3QoLm9mZnNldCksXG4gIC50aWRlLWlucHV0LXRleHQtc3VmZml4Om5vdCgub2Zmc2V0KSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgY2FsYyg5IC8gMTYgKiAxcmVtKSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0LXByZWZpeCxcbiAgLnRpZGUtaW5wdXQtdGV4dC1zdWZmaXgge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dC5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogdmFyKC0tdGlkZS1kaXNhYmxlZCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0LmVycm9yIHtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1lcnJvci1vbi1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQuZXJyb3IgLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLWJvcmRlcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQuZXJyb3I6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dDpmb2N1cy13aXRoaW4gLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMik7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1zdXJmYWNlLWJvcmRlci1oaWdoKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQgaW5wdXQge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0xKTtcbiAgICBvdXRsaW5lOiB2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpIHNvbGlkIHZhcigtLXRpZGUtYm9yZGVyKTtcbiAgICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpICogLTEpO1xuICAgIGNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtZm9yZWdyb3VuZCk7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgcmVmLCB3YXRjaCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdAL3R5cGVzL1ZhbGlkYXRpb24nO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgU0laRSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG4gIGltcG9ydCB7IGdldEVycm9yTWVzc2FnZSwgZ2V0RmllbGRIYXNFcnJvciwgaGFuZGxlRmllbGRWYWxpZGF0aW9uIH0gZnJvbSAnQC91dGlsaXRpZXMvdmFsaWRhdGlvbic7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBkYXRhVHJhY2s/OiBzdHJpbmc7XG4gICAgZXJyb3I/OiBWYWxpZGF0aW9uRXJyb3I7XG4gICAgaW5wdXRJZD86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBtYXhsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbWlubGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIHJvd3M/OiBudW1iZXI7XG4gICAgc3VwcG9ydGluZ1RleHQ/OiBzdHJpbmc7XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBkYXRhVHJhY2s6ICcnLFxuICAgIGVycm9yOiBmYWxzZSxcbiAgICBpbnB1dElkOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6IHVuZGVmaW5lZCxcbiAgICBtYXhsZW5ndGg6IHVuZGVmaW5lZCxcbiAgICBtaW5sZW5ndGg6IHVuZGVmaW5lZCxcbiAgICBuYW1lOiB1bmRlZmluZWQsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIHJvd3M6IDgsXG4gICAgc3VwcG9ydGluZ1RleHQ6IHVuZGVmaW5lZCxcbiAgICB2YWx1ZTogJycsXG4gIH0pO1xuXG4gIGNvbnN0IGVycm9yID0gcmVmKHByb3BzLmVycm9yKTtcbiAgY29uc3QgaGFzRm9jdXMgPSByZWYoZmFsc2UpO1xuICBjb25zdCBpbnB1dCA9IHJlZjxIVE1MSW5wdXRFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHZhbHVlID0gcmVmKHByb3BzLnZhbHVlKTtcblxuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBjb21wdXRlZCgoKSA9PiBnZXRFcnJvck1lc3NhZ2UocHJvcHMuZXJyb3IsIGVycm9yLnZhbHVlKSk7XG4gIGNvbnN0IGZvcm1hdHRlZExhYmVsID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLnJlcXVpcmVkID8gYCR7cHJvcHMubGFiZWx9ICpgIDogcHJvcHMubGFiZWwpKTtcbiAgY29uc3QgaGFzRXJyb3IgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgJiYgIXZhbHVlLnZhbHVlKSB8fCBnZXRGaWVsZEhhc0Vycm9yKGVycm9yLnZhbHVlLCBwcm9wcy5lcnJvcikpO1xuICBjb25zdCBoYXNNaW5pbGFiZWwgPSBjb21wdXRlZCgoKSA9PiBoYXNGb2N1cy52YWx1ZSB8fCAhaXNFbXB0eS52YWx1ZSk7XG4gIGNvbnN0IGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB2YWx1ZS52YWx1ZSA9PT0gJycpO1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gKCkgPT4ge1xuICAgIGhhc0ZvY3VzLnZhbHVlID0gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGb2N1c091dCA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IGZhbHNlO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVZhbGlkYXRpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIGhhbmRsZUZpZWxkVmFsaWRhdGlvbih7XG4gICAgICBlcnJvcixcbiAgICAgIGVycm9yRnJvbVByb3BzOiBwcm9wcy5lcnJvcixcbiAgICAgIG1heGxlbmd0aDogcHJvcHMubWF4bGVuZ3RoLFxuICAgICAgbWlubGVuZ3RoOiBwcm9wcy5taW5sZW5ndGgsXG4gICAgICB2YWx1ZSxcbiAgICB9KTtcbiAgfTtcblxuICB3YXRjaChcbiAgICAoKSA9PiBwcm9wcy52YWx1ZSxcbiAgICAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICBpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlIHx8IG5ld1ZhbHVlICE9PSB2YWx1ZS52YWx1ZSkge1xuICAgICAgICB2YWx1ZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICBkZWZpbmVFeHBvc2UoeyBlcnJvciwgdmFsdWUgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiWyd0aWRlLWlucHV0LXRleHRhcmVhJywgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTiwgQ1NTLkdBUC5RVUFSVEVSLCBoYXNFcnJvciAmJiAnZXJyb3InXVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLWlucHV0LXRleHRhcmVhLWZpZWxkJyxcbiAgICAgICAgQ1NTLkdBUC5IQUxGLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICAgIENTUy5QQURESU5HLkxFRlQuT05FLFxuICAgICAgICBDU1MuUEFERElORy5UT1AuSEFMRixcbiAgICAgICAgQ1NTLk9WRVJGTE9XLlhZLkhJRERFTixcbiAgICAgIF1cIlxuICAgID5cbiAgICAgIDxsYWJlbFxuICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgaGFzTWluaWxhYmVsID8gWydtaW5pbGFiZWwnLCBDU1MuRk9OVC5TSVpFLlRXRUxWRV0gOiBDU1MuRk9OVC5TSVpFLlNJWFRFRU4sXG4gICAgICAgICAgIWhhc0Vycm9yICYmIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVCxcbiAgICAgICAgICBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVELFxuICAgICAgICAgIENTUy5DVVJTT1IuVEVYVCxcbiAgICAgICAgXVwiXG4gICAgICAgIDpmb3I9XCJwcm9wcy5pbnB1dElkXCJcbiAgICAgICAgcmVmPVwibGFiZWxcIlxuICAgICAgICB2LWlmPVwibGFiZWxcIlxuICAgICAgPlxuICAgICAgICB7eyBmb3JtYXR0ZWRMYWJlbCB9fVxuICAgICAgPC9sYWJlbD5cblxuICAgICAgPHRleHRhcmVhXG4gICAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTF1cIlxuICAgICAgICA6ZGF0YS10cmFjaz1cInByb3BzLmRhdGFUcmFja1wiXG4gICAgICAgIDptYXhsZW5ndGg9XCJwcm9wcy5tYXhsZW5ndGhcIlxuICAgICAgICA6bWlubGVuZ3RoPVwicHJvcHMubWlubGVuZ3RoXCJcbiAgICAgICAgOm5hbWU9XCJwcm9wcy5uYW1lXCJcbiAgICAgICAgcmVmPVwiaW5wdXRcIlxuICAgICAgICA6cmVxdWlyZWQ9XCJwcm9wcy5yZXF1aXJlZFwiXG4gICAgICAgIDpyb3dzPVwicHJvcHMucm93c1wiXG4gICAgICAgIEBjaGFuZ2U9XCJoYW5kbGVWYWxpZGF0aW9uXCJcbiAgICAgICAgQGZvY3VzPVwiaGFuZGxlRm9jdXNcIlxuICAgICAgICBAZm9jdXNvdXQ9XCJoYW5kbGVGb2N1c091dFwiXG4gICAgICAgIDppZD1cInByb3BzLmlucHV0SWRcIlxuICAgICAgICB2LW1vZGVsPVwidmFsdWVcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5NQVJHSU4uTEVGVC5PTkVdXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5zdXBwb3J0aW5nVGV4dCB8fCBoYXNFcnJvclwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDppY29uPVwiSUNPTi5FUlJPUlwiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAgIHYtaWY9XCJoYXNFcnJvclwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRk9OVC5TSVpFLlRXRUxWRSwgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRF1cIj5cbiAgICAgICAge3sgaGFzRXJyb3IgPyBlcnJvck1lc3NhZ2UgOiBwcm9wcy5zdXBwb3J0aW5nVGV4dCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgdGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gIH1cbjwvc3R5bGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIGxhYmVsIHtcbiAgICBoZWlnaHQ6IDEuMTg3NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBmb250LXNpemUgdmFyKC0tdGlkZS1hbmltYXRlKSwgdHJhbnNmb3JtIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cblxuICBsYWJlbDpub3QoLm1pbmlsYWJlbCksXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLXByZWZpeDpub3QoLm9mZnNldCksXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLXN1ZmZpeDpub3QoLm9mZnNldCkge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIGNhbGMoOSAvIDE2ICogMXJlbSkpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEtcHJlZml4LFxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS1zdWZmaXgge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEuZXJyb3Ige1xuICAgIGNvbG9yOiB2YXIoLS10aWRlLWVycm9yLW9uLXN1cmZhY2UpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEuZXJyb3IgLnRpZGUtaW5wdXQtdGV4dGFyZWEtZmllbGQge1xuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLXRpZGUtZXJyb3ItYm9yZGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLXN1cmZhY2UpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEuZXJyb3I6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LXRleHRhcmVhLWZpZWxkIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLWJvcmRlcik7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0YXJlYTpmb2N1cy13aXRoaW4gLnRpZGUtaW5wdXQtdGV4dGFyZWEtZmllbGQge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0yKTtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtYm9yZGVyLWhpZ2gpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEgdGV4dGFyZWEge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS1maWVsZCB7XG4gICAgLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGg6IHZhcigtLXRpZGUtYm9yZGVyLXdpZHRoLTEpO1xuICAgIG91dGxpbmU6IHZhcigtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aCkgc29saWQgdmFyKC0tdGlkZS1ib3JkZXIpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiBjYWxjKHZhcigtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aCkgKiAtMSk7XG4gICAgY29sb3I6IHZhcigtLXRpZGUtc3VyZmFjZS1mb3JlZ3JvdW5kKTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IEVsZW1lbnQgfSBmcm9tICdAL3R5cGVzL0VsZW1lbnQnO1xuICBpbXBvcnQgdHlwZSB7IEljb24gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBFTEVNRU5UIH0gZnJvbSAnQC90eXBlcy9FbGVtZW50JztcbiAgaW1wb3J0IHsgVEFSR0VUIH0gZnJvbSAnQC90eXBlcy9UYXJnZXQnO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgZWxlbWVudD86IEVsZW1lbnQ7XG4gICAgaHJlZj86IHN0cmluZztcbiAgICBpY29uTGVhZGluZz86IEljb247XG4gICAgaWNvblRyYWlsaW5nPzogSWNvbjtcbiAgICBpc05ld1RhYj86IGJvb2xlYW47XG4gICAgbGFiZWw6IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGVsZW1lbnQ6IEVMRU1FTlQuTElOSyxcbiAgICBocmVmOiB1bmRlZmluZWQsXG4gICAgaWNvbkxlYWRpbmc6IHVuZGVmaW5lZCxcbiAgICBpY29uVHJhaWxpbmc6IHVuZGVmaW5lZCxcbiAgICBpc05ld1RhYjogZmFsc2UsXG4gICAgbGFiZWw6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgY29uc3QgaGFzSWNvbiA9IGNvbXB1dGVkKCgpID0+IHByb3BzLmljb25MZWFkaW5nIHx8IHByb3BzLmljb25UcmFpbGluZyk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8Y29tcG9uZW50XG4gICAgOmNsYXNzPVwiW1xuICAgICAgcHJvcHMuZWxlbWVudCA9PT0gRUxFTUVOVC5MSU5LID8gJ3RpZGUtYnV0dG9uLWFzLWxpbmsnIDogJ3RpZGUtbGluaycsXG4gICAgICBoYXNJY29uXG4gICAgICAgID8gW0NTUy5ESVNQTEFZLklOTElORV9GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLkhBTEZdXG4gICAgICAgIDogW0NTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRUQsIENTUy5VTkRFUkxJTkUuT05dLFxuICAgIF1cIlxuICAgIDpocmVmPVwicHJvcHMuaHJlZlwiXG4gICAgOnRhcmdldD1cInByb3BzLmlzTmV3VGFiID8gVEFSR0VULkJMQU5LIDogVEFSR0VULlNFTEZcIlxuICAgIDppcz1cInByb3BzLmVsZW1lbnQgPT09IEVMRU1FTlQuTElOSyA/IEVMRU1FTlQuTElOSyA6IEVMRU1FTlQuQlVUVE9OXCJcbiAgPlxuICAgIDxUaWRlSWNvblxuICAgICAgOmljb249XCJwcm9wcy5pY29uTGVhZGluZ1wiXG4gICAgICB2LWlmPVwicHJvcHMuaWNvbkxlYWRpbmdcIlxuICAgIC8+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCwgQ1NTLlVOREVSTElORS5PTl1cIlxuICAgICAgdi1pZj1cImhhc0ljb25cIlxuICAgID5cbiAgICAgIHt7IHByb3BzLmxhYmVsIH19XG4gICAgPC9kaXY+XG5cbiAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAge3sgcHJvcHMubGFiZWwgfX1cbiAgICA8L3RlbXBsYXRlPlxuXG4gICAgPFRpZGVJY29uXG4gICAgICA6aWNvbj1cInByb3BzLmljb25UcmFpbGluZ1wiXG4gICAgICB2LWlmPVwicHJvcHMuaWNvblRyYWlsaW5nXCJcbiAgICAvPlxuICA8L2NvbXBvbmVudD5cbjwvdGVtcGxhdGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBvbk1vdW50ZWQsIHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGlzT3BlbjogYm9vbGVhbjtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICB3aWR0aD86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IGRlZmluZVByb3BzPFByb3BzPigpO1xuXG4gIGNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0cyhbJ2Nsb3NlJ10pO1xuXG4gIGNvbnN0IGlzT3BlbiA9IHJlZihwcm9wcy5pc09wZW4pO1xuICBjb25zdCBzYXZlZFNjcm9sbFBvc2l0aW9uID0gcmVmPG51bWJlciB8IG51bGw+KG51bGwpOyAvLyBUT0RPOiByZXBsYWNlIGJvZHkgc2Nyb2xsIGxvY2sgd2l0aCBnbG9iYWwgc3RydWN0dXJlP1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlzT3Blbi52YWx1ZSA9IGZhbHNlO1xuXG4gICAgdXBkYXRlTW9kYWxEaXNwbGF5KCk7XG4gICAgZW1pdCgnY2xvc2UnLCBldmVudCk7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlTW9kYWxEaXNwbGF5ID0gKCkgPT4ge1xuICAgIGlmIChpc09wZW4udmFsdWUpIHtcbiAgICAgIHNhdmVkU2Nyb2xsUG9zaXRpb24udmFsdWUgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgIHNhdmVkU2Nyb2xsUG9zaXRpb24udmFsdWUgJiYgd2luZG93LnNjcm9sbFRvKDAsIHNhdmVkU2Nyb2xsUG9zaXRpb24udmFsdWUpO1xuXG4gICAgICBhZGRPcGVuTGlzdGVuZXJzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnJztcblxuICAgICAgcmVtb3ZlT3Blbkxpc3RlbmVycygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgaGFuZGxlQ2xvc2UoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBhZGRPcGVuTGlzdGVuZXJzID0gKCkgPT4ge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlT3Blbkxpc3RlbmVycyA9ICgpID0+IHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd24pO1xuICB9O1xuXG4gIG9uTW91bnRlZCgoKSA9PiB7XG4gICAgdXBkYXRlTW9kYWxEaXNwbGF5KCk7XG4gIH0pO1xuXG4gIHdhdGNoKFxuICAgICgpID0+IHByb3BzLmlzT3BlbixcbiAgICAobmV3VmFsdWUpID0+IHtcbiAgICAgIGlzT3Blbi52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgdXBkYXRlTW9kYWxEaXNwbGF5KCk7XG4gICAgfVxuICApO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPFRlbGVwb3J0IHRvPVwiYm9keVwiPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtbW9kYWwtd3JhcHBlcicsXG4gICAgICAgIENTUy5QT1NJVElPTi5BQlNPTFVURSxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMxLkNFTlRFUixcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLlBPU0lUSU9OSU5HLlRPUCxcbiAgICAgICAgQ1NTLlBPU0lUSU9OSU5HLkxFRlQsXG4gICAgICAgIENTUy5XSURUSC5GVUxMLFxuICAgICAgICBDU1MuSEVJR0hULkZVTEwsXG4gICAgICAgIHByb3BzLmlzT3BlbiA/ICdhY3RpdmUnIDogQ1NTLlBPSU5URVJfRVZFTlRTLk9GRixcbiAgICAgICAgQ1NTLk9WRVJGTE9XLlkuSElEREVOLFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICA6Y2xhc3M9XCJbJ3RpZGUtbW9kYWwtYmcnLCBDU1MuUE9TSVRJT04uQUJTT0xVVEUsIENTUy5XSURUSC5GVUxMLCBDU1MuSEVJR0hULkZVTExdXCJcbiAgICAgICAgOnN0eWxlPVwieyAnLS10aWRlLW1vZGFsLXdpZHRoJzogcHJvcHMud2lkdGggfVwiXG4gICAgICAgIEBjbGljay5zZWxmPVwiaGFuZGxlQ2xvc2VcIlxuICAgICAgLz5cblxuICAgICAgPGRpdlxuICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgJ3RpZGUtbW9kYWwnLFxuICAgICAgICAgIENTUy5CRy5TVVJGQUNFLkRFRkFVTFQsXG4gICAgICAgICAgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5ERUZBVUxULFxuICAgICAgICAgIENTUy5QT1NJVElPTi5BQlNPTFVURSxcbiAgICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICAgIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sXG4gICAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuT05FLFxuICAgICAgICAgIENTUy5PVkVSRkxPVy5YWS5ISURERU4sXG4gICAgICAgICAgQ1NTLlNIQURPVy5CT1RUT00sXG4gICAgICAgIF1cIlxuICAgICAgPlxuICAgICAgICA8aGVhZGVyXG4gICAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgICAgJ3RpZGUtbW9kYWwtaGVhZGVyJyxcbiAgICAgICAgICAgIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgICAgICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICAgICAgQ1NTLlBBRERJTkcuWS5PTkUsXG4gICAgICAgICAgICBDU1MuUEFERElORy5YLlRXTyxcbiAgICAgICAgICAgIENTUy5CT1JERVIuQk9UVE9NLk9ORSxcbiAgICAgICAgICAgIENTUy5CT1JERVIuQ09MT1IuTE9XLFxuICAgICAgICAgIF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5GTEVYLkdST1cuT04sIENTUy5GT05ULlNJWkUuVFdFTlRZLCBDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRF1cIlxuICAgICAgICAgICAgdi1pZj1cInRpdGxlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5QT1NJVElPTi5BQlNPTFVURSwgQ1NTLlBPU0lUSU9OSU5HLlJJR0hULCBDU1MuTUFSR0lOLlJJR0hULlRXT11cIlxuICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ2xvc2VcIlxuICAgICAgICAgICAgdGl0bGU9XCJDbG9zZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRpZGVJY29uIDppY29uPVwiSUNPTi5DTE9TRVwiIC8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgIDxkaXYgOmNsYXNzPVwiWyd0aWRlLW1vZGFsLWNvbnRlbnQnLCBDU1MuUEFERElORy5GVUxMLlRXTywgQ1NTLk9WRVJGTE9XLlkuQVVUT11cIj5cbiAgICAgICAgICA8c2xvdCAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8dGVtcGxhdGUgdi1pZj1cIiRzbG90cy5mb290ZXJcIj5cbiAgICAgICAgICA8Zm9vdGVyXG4gICAgICAgICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICAgICAgICd0aWRlLWJnLXN1cmZhY2UnLFxuICAgICAgICAgICAgICBDU1MuUE9TSVRJT04uU1RJQ0tZLFxuICAgICAgICAgICAgICBDU1MuUE9TSVRJT05JTkcuTEVGVCxcbiAgICAgICAgICAgICAgQ1NTLlBPU0lUSU9OSU5HLkJPVFRPTSxcbiAgICAgICAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgICAgICAgQ1NTLkFYSVMxLkVORCxcbiAgICAgICAgICAgICAgQ1NTLkdBUC5PTkUsXG4gICAgICAgICAgICAgIENTUy5QQURESU5HLlguVFdPLFxuICAgICAgICAgICAgICBDU1MuUEFERElORy5ZLk9ORSxcbiAgICAgICAgICAgICAgQ1NTLlNIQURPVy5UT1AsXG4gICAgICAgICAgICBdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2xvdCBuYW1lPVwiZm9vdGVyXCIgLz5cbiAgICAgICAgICA8L2Zvb3Rlcj5cbiAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L1RlbGVwb3J0PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtbW9kYWwge1xuICAgIHdpZHRoOiB2YXIoLS10aWRlLW1vZGFsLXdpZHRoKTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDJyZW0pO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDJyZW0pO1xuICAgIGJveC1zaGFkb3c6IDBweCAxMHB4IDI1cHggMHB4IHJnYmEoMTgsIDQzLCA1OCwgMC4yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwdmgpO1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB9XG5cbiAgLnRpZGUtbW9kYWwtYmcge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwcHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZHJvcC1maWx0ZXIsIGJhY2tncm91bmQtY29sb3I7XG4gIH1cblxuICAuYWN0aXZlIC50aWRlLW1vZGFsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cblxuICAuYWN0aXZlIC50aWRlLW1vZGFsLWJnIHtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aWRlLXRyYW5zcGFyZW50LTQwMCk7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZUJ1dHRvbkljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVCdXR0b25JY29uLnZ1ZSc7XG4gIGltcG9ydCBUaWRlQnV0dG9uUGFnaW5hdGlvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUJ1dHRvblBhZ2luYXRpb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgUFJJT1JJVFkgfSBmcm9tICdAL3R5cGVzL1ByaW9yaXR5JztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIHBhZ2VDdXJyZW50PzogbnVtYmVyO1xuICAgIHBhZ2VUb3RhbD86IG51bWJlcjtcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIHBhZ2VDdXJyZW50OiAxLFxuICAgIHBhZ2VUb3RhbDogMSxcbiAgfSk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2hhbmdlJ10pO1xuXG4gIGNvbnN0IHBhZ2VDdXJyZW50ID0gcmVmKHByb3BzLnBhZ2VDdXJyZW50KTtcblxuICBjb25zdCBwYWdpbmF0aW9uQnV0dG9ucyA9IGNvbXB1dGVkKCgpID0+IG5ldyBBcnJheShwcm9wcy5wYWdlVG90YWwpLmZpbGwoJycpLm1hcCgoZW1wdHksIGluZGV4KSA9PiBpbmRleCArIDEpKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBwYWdlQ3VycmVudC52YWx1ZSA9IGluZGV4O1xuXG4gICAgZW1pdCgnY2hhbmdlJywgZXZlbnQsIGluZGV4KTtcbiAgfTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxzZWN0aW9uXG4gICAgOmNsYXNzPVwiWyd0aWRlLXBhZ2luYXRpb24nLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzEuQ0VOVEVSLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5XSURUSC5GVUxMXVwiXG4gID5cbiAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgIDpkaXNhYmxlZD1cInBhZ2VDdXJyZW50ID09PSAxXCJcbiAgICAgIDppY29uPVwiSUNPTi5DSEVWUk9OX0xFRlRcIlxuICAgICAgOnByaW9yaXR5PVwiUFJJT1JJVFkuUVVBVEVSTkFSWVwiXG4gICAgICBAY2xpY2s9XCIoZXZlbnQ6IEV2ZW50KSA9PiBoYW5kbGVDbGljayhldmVudCwgcGFnZUN1cnJlbnQgLSAxKVwiXG4gICAgLz5cblxuICAgIDx1bCA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuTElTVF9CVUxMRVRTLk9GRl1cIj5cbiAgICAgIDxsaVxuICAgICAgICA6a2V5PVwicGFnaW5hdGlvbkJ1dHRvblwiXG4gICAgICAgIHYtZm9yPVwicGFnaW5hdGlvbkJ1dHRvbiBpbiBwYWdpbmF0aW9uQnV0dG9uc1wiXG4gICAgICA+XG4gICAgICAgIDxUaWRlQnV0dG9uUGFnaW5hdGlvblxuICAgICAgICAgIDpkaXNhYmxlZD1cInBhZ2VDdXJyZW50ID09PSBwYWdpbmF0aW9uQnV0dG9uXCJcbiAgICAgICAgICA6bGFiZWw9XCJwYWdpbmF0aW9uQnV0dG9uXCJcbiAgICAgICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgICAgICBAY2xpY2s9XCIoZXZlbnQ6IEV2ZW50KSA9PiBoYW5kbGVDbGljayhldmVudCwgcGFnaW5hdGlvbkJ1dHRvbilcIlxuICAgICAgICAvPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuXG4gICAgPFRpZGVCdXR0b25JY29uXG4gICAgICA6ZGlzYWJsZWQ9XCJwYWdlQ3VycmVudCA9PT0gcGFnaW5hdGlvbkJ1dHRvbnNbcGFnaW5hdGlvbkJ1dHRvbnMubGVuZ3RoIC0gMV1cIlxuICAgICAgOmljb249XCJJQ09OLkNIRVZST05fUklHSFRcIlxuICAgICAgOnByaW9yaXR5PVwiUFJJT1JJVFkuUVVBVEVSTkFSWVwiXG4gICAgICBAY2xpY2s9XCIoZXZlbnQ6IEV2ZW50KSA9PiBoYW5kbGVDbGljayhldmVudCwgcGFnZUN1cnJlbnQgKyAxKVwiXG4gICAgLz5cbiAgPC9zZWN0aW9uPlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD48L3N0eWxlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IFRhYiB9IGZyb20gJ0AvdHlwZXMvVGFiJztcblxuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBhY3RpdmVUYWJJbml0aWFsPzogbnVtYmVyO1xuICAgIHRhYnM6IFRhYltdO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgYWN0aXZlVGFiSW5pdGlhbDogMCxcbiAgfSk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2hhbmdlJ10pO1xuXG4gIGNvbnN0IGFjdGl2ZVRhYiA9IHJlZihwcm9wcy5hY3RpdmVUYWJJbml0aWFsKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBhY3RpdmVUYWIudmFsdWUgPSBpbmRleDtcblxuICAgIGVtaXQoJ2NoYW5nZScsIGV2ZW50LCBpbmRleCk7XG4gIH07XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiW1xuICAgICAgJ3RpZGUtdGFicycsXG4gICAgICBDU1MuQkcuU1VSRkFDRS5WQVJJQU5ULFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5HQVAuUVVBUlRFUixcbiAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICBDU1MuUEFERElORy5GVUxMLlFVQVJURVIsXG4gICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgQ1NTLldJRFRILkZVTEwsXG4gICAgXVwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLXRhYnMtdGFiJyxcbiAgICAgICAgaW5kZXggPT09IGFjdGl2ZVRhYlxuICAgICAgICAgID8gW0NTUy5CRy5TVVJGQUNFLkRFRkFVTFQsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuREVGQVVMVCwgQ1NTLlNIQURPVy5CT1RUT01dXG4gICAgICAgICAgOiBbJ2luYWN0aXZlJywgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5UXSxcbiAgICAgICAgQ1NTLkZMRVguR1JPVy5PTixcbiAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuUVVBUlRFUixcbiAgICAgICAgQ1NTLlBBRERJTkcuWS5RVUFSVEVSLFxuICAgICAgICBDU1MuV0lEVEguRlVMTCxcbiAgICAgICAgQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVELFxuICAgICAgICBDU1MuV0hJVEVTUEFDRV9XUkFQLk9GRixcbiAgICAgIF1cIlxuICAgICAgOmRhdGEtdHJhY2s9XCJ0YWIuZGF0YVRyYWNrIHx8IHVuZGVmaW5lZFwiXG4gICAgICA6a2V5PVwidGFiLmxhYmVsXCJcbiAgICAgIEBjbGljaz1cIihldmVudDogRXZlbnQpID0+IGhhbmRsZUNsaWNrKGV2ZW50LCBpbmRleClcIlxuICAgICAgdi1mb3I9XCIodGFiLCBpbmRleCkgaW4gcHJvcHMudGFic1wiXG4gICAgPlxuICAgICAgPHNwYW4gOmNsYXNzPVwiW0NTUy5GT05ULldFSUdIVC5TSVhfSFVORFJFRF1cIj5cbiAgICAgICAge3sgdGFiLmxhYmVsIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVEXVwiXG4gICAgICAgIHYtaWY9XCJ0YWIuY291bnQgJiYgdGFiLmNvdW50ID4gMFwiXG4gICAgICA+XG4gICAgICAgICh7eyB0YWIuY291bnQgfX0pXG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtdGFicyB7XG4gICAgbWF4LXdpZHRoOiAyMy4zcmVtO1xuICB9XG5cbiAgLnRpZGUtdGFicy10YWIge1xuICAgIGZsZXg6IDE7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgLmluYWN0aXZlOm5vdCg6aG92ZXIpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10aWRlLXN1cmZhY2UtdmFyaWFudCk7XG4gIH1cblxuICAuaW5hY3RpdmU6aG92ZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRpZGUtYm9yZGVyKTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IHJlZiB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcblxuICBjb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgICBkaXNhYmxlZDoge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgaXNBY3RpdmU6IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydjaGFuZ2UnXSk7XG5cbiAgY29uc3QgaXNBY3RpdmUgPSByZWYocHJvcHMuaXNBY3RpdmUpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlmICghcHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgIGlzQWN0aXZlLnZhbHVlID0gIWlzQWN0aXZlLnZhbHVlO1xuXG4gICAgICBlbWl0KCdjaGFuZ2UnLCBldmVudCwgaXNBY3RpdmUudmFsdWUpO1xuICAgIH1cbiAgfTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxidXR0b25cbiAgICA6Y2xhc3M9XCJbXG4gICAgICAndGlkZS10b2dnbGUnLFxuICAgICAgcHJvcHMuaXNBY3RpdmUgPyAnYWN0aXZlJyA6ICcnLFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICBDU1MuQk9SREVSLkZVTEwuT05FLFxuICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuRlVMTCxcbiAgICAgIHByb3BzLmlzQWN0aXZlID8gJycgOiBDU1MuQk9SREVSLkNPTE9SLkRFRkFVTFQsXG4gICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgcHJvcHMuaXNBY3RpdmUgPyBDU1MuQkcuU0VDT05EQVJZIDogQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVCxcbiAgICBdXCJcbiAgICA6ZGlzYWJsZWQ9XCJwcm9wcy5kaXNhYmxlZFwiXG4gICAgQGNsaWNrPVwiaGFuZGxlQ2xpY2tcIlxuICAgIGFyaWEtbGFiZWw9XCJUb2dnbGVcIlxuICA+XG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS10b2dnbGUtaW5kaWNhdG9yJyxcbiAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzEuQ0VOVEVSLFxuICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICBDU1MuQk9SREVSLlJBRElVUy5GVUxMLFxuICAgICAgICBwcm9wcy5pc0FjdGl2ZSA/IENTUy5CRy5TVVJGQUNFLkRFRkFVTFQgOiBDU1MuQkcuU0VDT05EQVJZLFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDppY29uPVwiSUNPTi5DSEVDS1wiXG4gICAgICAgIDpzaXplPVwiU0laRS5MQVJHRVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICA8L2J1dHRvbj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLXRvZ2dsZSB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIC50aWRlLXRvZ2dsZTpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC4zMjtcbiAgfVxuXG4gIC50aWRlLXRvZ2dsZS5hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGlkZS1zZWNvbmRhcnkpO1xuICB9XG5cbiAgLnRpZGUtdG9nZ2xlLmFjdGl2ZSAudGlkZS10b2dnbGUtaW5kaWNhdG9yIHtcbiAgICBsZWZ0OiAzNnB4O1xuICB9XG5cbiAgLnRpZGUtdG9nZ2xlLWluZGljYXRvciB7XG4gICAgbGVmdDogNHB4O1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdCwgYm9yZGVyLWNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG48L3N0eWxlPlxuIiwiLyogZXNsaW50LWRpc2FibGUgdnVlL3NvcnQta2V5cyAqL1xuXG5leHBvcnQgY29uc3QgQlJFQUtQT0lOVCA9IHtcbiAgU006ICdzbScsXG4gIE1EOiAnbWQnLFxuICBMRzogJ2xnJyxcbiAgWEw6ICd4bCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgTUVESUEgPSB7XG4gIFNNOiA3NjgsXG4gIE1EOiA5OTIsXG4gIExHOiAxMjMyLFxuICBYTDogMTkyMCxcbn07XG5cbmV4cG9ydCB0eXBlIEJyZWFrcG9pbnQgPSAodHlwZW9mIEJSRUFLUE9JTlQpW2tleW9mIHR5cGVvZiBCUkVBS1BPSU5UXTtcbmV4cG9ydCB0eXBlIE1lZGlhID0gKHR5cGVvZiBNRURJQSlba2V5b2YgdHlwZW9mIE1FRElBXTtcbiIsImltcG9ydCB7IGZvcm1hdE51bWJlciwgZm9ybWF0UGhvbmUsIGZvcm1hdFByaWNlIH0gZnJvbSAnQC91dGlsaXRpZXMvZm9ybWF0JztcblxuZXhwb3J0IHR5cGUgRm9ybWF0dGVkID0ge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bWJlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBGT1JNQVQgPSB7XG4gIE5VTUJFUjogZm9ybWF0TnVtYmVyLFxuICBQSE9ORTogZm9ybWF0UGhvbmUsXG4gIFBSSUNFOiBmb3JtYXRQcmljZSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBGT1JNQVRfUkVHRVggPSB7XG4gIGFscGhhOiAvXlthLXpBLVpdKyQvZyxcbiAgYWxwaGFOdW1iZXJPckVtcHR5OiAvXiR8XlthLXowLTldKyQvaSxcbiAgYWxwaGFTcGFjZTogL15bYS16QS1aIF0rJC9nLFxuICBlbWFpbDpcbiAgICAvXigoW148PigpW1xcXVxcXFwuLDs6XFxzQFwiXSsoXFwuW148PigpW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcXSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC8sXG4gIG51bWJlckZvcm1hdHRlZDogL14kfCg/PS4pXlxcJD8oKFsxLTldWzAtOV17MCwyfSgsWzAtOV17M30pKil8MCk/KFxcLlswLTldezEsMn0pPyQvLFxuICBwaG9uZTogL14oPzpcXGR7M30tXFxkezN9LVxcZHs0fXxcXGR7MX0tXFxkezN9LVxcZHszfS1cXGR7NH0pPyQvLFxuICBwcmljZTogLyg/PS4pXlxcJD8oKFsxLTldWzAtOV17MCwyfSgsWzAtOV17M30pKil8MCk/KFxcLlswLTldezEsMn0pPyQvLFxufTtcbiIsIi8qKlxuICogVGhlc2Ugc2xpZGVzIGFyZSB1c2VkIGluIGJvdGggdGhlIGlubGluZSBkZXRhaWwgcGFnZSBwaG90byBzbGlkZXJcbiAqIGFuZCB0aGUgZnVsbHNjcmVlbiBtZWRpYSBnYWxsZXJ5LlxuICovXG5cbmV4cG9ydCBjb25zdCBNRURJQV9TTElERV9UWVBFUyA9IHtcbiAgSU1BR0U6IHtcbiAgICBGTE9PUlBMQU46ICdmbG9vcnBsYW4nLFxuICAgIElNQUdFOiAnaW1hZ2UnLFxuICB9LFxuICBWSURFTzogJ3ZpZGVvJyxcbiAgVlI6ICd2cicsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBNZWRpYVNsaWRlVHlwZSA9XG4gIHwgKHR5cGVvZiBNRURJQV9TTElERV9UWVBFUy5JTUFHRSlba2V5b2YgdHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLklNQUdFXVxuICB8IHR5cGVvZiBNRURJQV9TTElERV9UWVBFUy5WSURFT1xuICB8IHR5cGVvZiBNRURJQV9TTElERV9UWVBFUy5WUjtcblxuZXhwb3J0IHR5cGUgSW1hZ2VTbGlkZVR5cGUgPSAodHlwZW9mIE1FRElBX1NMSURFX1RZUEVTLklNQUdFKVtrZXlvZiB0eXBlb2YgTUVESUFfU0xJREVfVFlQRVMuSU1BR0VdO1xuXG50eXBlIEltYWdlU2xpZGUgPSB7XG4gIGltYWdlVXJsOiBzdHJpbmc7XG4gIHR5cGU6IEltYWdlU2xpZGVUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgVmlkZW9TbGlkZVR5cGUgPSB0eXBlb2YgTUVESUFfU0xJREVfVFlQRVMuVklERU87XG5cbnR5cGUgVmlkZW9TbGlkZSA9IHtcbiAgaW1hZ2VVcmw6IHN0cmluZztcbiAgdHlwZTogVmlkZW9TbGlkZVR5cGU7XG4gIHZpZGVvVXJsOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBWclNsaWRlVHlwZSA9IHR5cGVvZiBNRURJQV9TTElERV9UWVBFUy5WUjtcblxudHlwZSBWclNsaWRlID0ge1xuICBpbWFnZVVybDogc3RyaW5nO1xuICB0eXBlOiBWclNsaWRlVHlwZTtcbiAgdnJVcmw6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIExpc3RpbmdNZWRpYSA9IEltYWdlU2xpZGUgfCBWaWRlb1NsaWRlIHwgVnJTbGlkZTtcbiIsImltcG9ydCB7IEZPUk1BVF9SRUdFWCB9IGZyb20gJ0AvdHlwZXMvRm9ybWF0dGVkJztcbmltcG9ydCB7IGNoZWNrRm9ybWF0IH0gZnJvbSAnQC91dGlsaXRpZXMvdmFsaWRhdGlvbic7XG5cbmV4cG9ydCBjb25zdCBWQUxJREFUT1IgPSB7XG4gIEFMUEhBX05VTUJFUl9FTVBUWTogY2hlY2tGb3JtYXQoRk9STUFUX1JFR0VYLmFscGhhTnVtYmVyT3JFbXB0eSksXG4gIEFMUEhBX1NQQUNFOiBjaGVja0Zvcm1hdChGT1JNQVRfUkVHRVguYWxwaGFTcGFjZSksXG4gIEVNQUlMOiBjaGVja0Zvcm1hdChGT1JNQVRfUkVHRVguZW1haWwpLFxuICBOVU1CRVI6IGNoZWNrRm9ybWF0KEZPUk1BVF9SRUdFWC5udW1iZXJGb3JtYXR0ZWQpLFxuICBQSE9ORTogY2hlY2tGb3JtYXQoRk9STUFUX1JFR0VYLnBob25lKSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25FcnJvciA9IHN0cmluZyB8IGJvb2xlYW47XG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uUmVzdWx0ID0ge1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHZhbGlkOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkxlbmd0aCA9IHtcbiAgbWF4bGVuZ3RoPzogbnVtYmVyO1xuICBtaW5sZW5ndGg/OiBudW1iZXI7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRvciA9ICh2YWx1ZTogc3RyaW5nKSA9PiBWYWxpZGF0aW9uUmVzdWx0O1xuIl0sIm5hbWVzIjpbIkNTUyIsInV0aWxpdGllcyIsImJyZWFrcG9pbnQiLCJ1dGlsaXR5IiwiT1JJRU5UQVRJT04iLCJTSVpFIiwiZm9ybWF0TnVtYmVyIiwiaW5wdXQiLCJvdXRwdXQiLCJkaWdpdHMiLCJmb3JtYXRQYXNjYWxDYXNlIiwid29yZCIsImZvcm1hdFBob25lIiwiZm9ybWF0UHJpY2UiLCJSRUFMTSIsImlubmVyU1ZHIiwicmVmIiwid2F0Y2giLCJwcm9wcyIsImlkIiwicHJlZml4IiwicmVzdCIsIm5hbWUiLCJyZWFsbUZvbGRlciIsImNvbXBvbmVudFBhdGgiLCJjb21wb25lbnQiLCJkZWZpbmVBc3luY0NvbXBvbmVudCIsIm1hcmtSYXciLCJJQ09OIiwiaXNFeHBhbmRlZCIsImFjY29yZGlvbkJvZHkiLCJ0b2dnbGVJc0V4cGFuZGVkIiwiZWxlbWVudCIsIm9uTW91bnRlZCIsIkVMRU1FTlQiLCJFTEVNRU5UX1RFWFRfQVNfSUNPTiIsIlBSSU9SSVRZIiwiVEFSR0VUIiwiQUxFUlQiLCJpY29uIiwiY29tcHV0ZWQiLCJpbWFnZURlZmF1bHQiLCJ0aWRlSW1hZ2UiLCJzZXRJbWFnZUZyb21EZWZhdWx0Iiwic3JjIiwiY3VycmVudFNvdXJjZSIsIl9fZXhwb3NlIiwiQkFER0UiLCJCQURHRV9QUkVNSVVNIiwiQkFER0VfVFJVU1RFRCIsIlRZUEVfQ0FSRCIsIlBPU0lUSU9OX0NBUkRfSUNPTiIsImdhcCIsImNvbnRlbnRXaWR0aCIsImZyYW1lV2lkdGgiLCJoYXNPdmVyZmxvdyIsImxhc3RQb3NpdGlvbiIsImNvbnRlbnRSZWYiLCJmcmFtZVJlZiIsInNob3dCdXR0b25zIiwiY3VycmVudFNsaWRlIiwibWVhc3VyZUN1cnJlbnRTbGlkZSIsInNsaWRlT2Zmc2V0cyIsInNsaWRlIiwiY2xvc2VzdFNsaWRlT2Zmc2V0IiwicHJldiIsImN1cnIiLCJtZWFzdXJlRG9tIiwiaGFuZGxlU2Nyb2xsIiwic2Nyb2xsVG9TbGlkZSIsInNsaWRlSW5kZXgiLCJzaG93TmV4dFNsaWRlIiwiY29udGVudFJpZ2h0RWRnZSIsImlzRmlyc3RTbGlkZVdpdGhPZmZzZXQiLCJuZXh0U2xpZGUiLCJzaG93UHJldmlvdXNTbGlkZSIsImZpcnN0U2xpZGUiLCJpc0ZpcnN0U2xpZGUiLCJwcmV2aW91c1NsaWRlIiwib25Vbm1vdW50ZWQiLCJvblVwZGF0ZWQiLCJlbWl0IiwiaXNDaGVja2VkIiwiY2hlY2tlZCIsIm5ld1ZhbHVlIiwib2xkVmFsdWUiLCJlcnJvck1lc3NhZ2VEZWZhdWx0Iiwibm9FcnJvciIsImNoZWNrRm9ybWF0IiwiZm9ybWF0IiwidmFsdWUiLCJyZXN1bHQiLCJnZXRFcnJvck1lc3NhZ2UiLCJlcnJvckZyb21Qcm9wcyIsImVycm9yRnJvbVJlZiIsImdldEZpZWxkSGFzRXJyb3IiLCJnZXRGaWVsZExlbmd0aElzVmFsaWQiLCJtYXhsZW5ndGgiLCJtaW5sZW5ndGgiLCJyZXF1aXJlZCIsImlzRW1wdHlBbmRVbnJlcXVpcmVkIiwiaXNUb29Mb25nIiwiaGFuZGxlRmllbGRWYWxpZGF0aW9uIiwiZXJyb3IiLCJ2YWxpZGF0b3JzIiwidmFsaWRhdGlvbiIsInZhbGlkYXRlUHJvcGVydHkiLCJsZW5ndGhWYWxpZGF0aW9uIiwidmFsaWRhdGVMZW5ndGgiLCJyZXNwb25zZSIsInZhbGlkYXRvciIsImhhc0ZvY3VzIiwiZXJyb3JNZXNzYWdlIiwiZm9ybWF0dGVkTGFiZWwiLCJoYXNFcnJvciIsImhhc01pbmlsYWJlbCIsImlzRW1wdHkiLCJleHBhbmRPcHRpb25zIiwiZXZlbnQiLCJfYSIsImhhbmRsZUZvY3VzIiwiaGFuZGxlRm9jdXNPdXQiLCJURVhUX0lOUFVUX1RZUEUiLCJzaG93UGFzc3dvcmQiLCJoYXNDbGVhciIsInR5cGUiLCJoYW5kbGVDbGVhciIsImhhbmRsZVZhbGlkYXRpb24iLCJoYW5kbGVJbnB1dCIsInVwZGF0ZVZhbHVlIiwiaGFzSWNvbiIsImlzT3BlbiIsInNhdmVkU2Nyb2xsUG9zaXRpb24iLCJoYW5kbGVDbG9zZSIsInVwZGF0ZU1vZGFsRGlzcGxheSIsImFkZE9wZW5MaXN0ZW5lcnMiLCJyZW1vdmVPcGVuTGlzdGVuZXJzIiwiaGFuZGxlS2V5RG93biIsInBhZ2VDdXJyZW50IiwicGFnaW5hdGlvbkJ1dHRvbnMiLCJlbXB0eSIsImluZGV4IiwiaGFuZGxlQ2xpY2siLCJhY3RpdmVUYWIiLCJpc0FjdGl2ZSIsIkJSRUFLUE9JTlQiLCJNRURJQSIsIkZPUk1BVCIsIkZPUk1BVF9SRUdFWCIsIk1FRElBX1NMSURFX1RZUEVTIiwiVkFMSURBVE9SIl0sIm1hcHBpbmdzIjoiO0FBSU8sTUFBTUEsSUFBTTtBQUFBLEVBQ2pCLGdCQUFnQixDQUFDQyxHQUFxQkMsTUFDN0JELEVBQVUsSUFBSSxDQUFDRSxNQUFZLEdBQUdELENBQVUsSUFBSUMsQ0FBTyxFQUFFO0FBQUEsRUFFOUQsT0FBTztBQUFBLElBQ0wsR0FBRztBQUFBLE1BQ0QsUUFBUTtBQUFBLE1BQ1IsTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLEdBQUc7QUFBQSxNQUNELFNBQVM7QUFBQSxNQUNULFFBQVE7QUFBQSxJQUNWO0FBQUEsRUFDRjtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ0wsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsS0FBSztBQUFBLElBQ0wsT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQSxFQUNUO0FBQUEsRUFDQSxJQUFJO0FBQUEsSUFDRixTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxT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LElBQ1IsT0FBTztBQUFBLE1BQ0wsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsT0FBTztBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLElBQ1Y7QUFBQSxJQUNBLElBQUk7QUFBQSxFQUNOO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsRUFDUjtBQUFBLEVBQ0EsV0FBVztBQUFBLElBQ1QsU0FBUztBQUFBLEVBQ1g7QUFBQSxFQUNBLGNBQWM7QUFBQSxJQUNaLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDTixRQUFRO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsTUFBTTtBQUFBLE1BQ0osTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLE1BQU07QUFBQSxNQUNKLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxPQUFPO0FBQUEsTUFDTCxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsS0FBSztBQUFBLE1BQ0gsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFBQSxJQUNBLEdBQUc7QUFBQSxNQUNELE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxHQUFHO0FBQUEsTUFDRCxNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCxLQUFLO0FBQUEsSUFDTCxJQUFJO0FBQUEsRUFDTjtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1IsR0FBRztBQUFBLE1BQ0QsTUFBTTtBQUFBLE1BQ04sUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLElBQ1Y7QUFBQSxJQUNBLElBQUk7QUFBQSxNQUNGLE1BQU07QUFBQSxNQUNOLFFBQVE7QUFBQSxJQUNWO0FBQUEsSUFDQSxHQUFHO0FBQUEsTUFDRCxNQUFNO0FBQUEsTUFDTixRQUFRO0FBQUEsSUFDVjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNQLFFBQVE7QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFDQSxNQUFNO0FBQUEsTUFDSixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxNQUFN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LEtBQUssVUFBVSxLQUNuQkEsRUFBSSxLQUFLLFVBQVUsYUFDbkJBLEVBQUksSUFBSSxLQUNSQSxFQUFJLElBQUksTUFDUkEsRUFBSSxJQUFJLFNBQ1JBLEVBQUksSUFBSSxLQUNSQSxFQUFJLElBQUksTUFDUkEsRUFBSSxLQUFLLE1BQU0sTUFDZkEsRUFBSSxLQUFLLEtBQUssSUFDZEEsRUFBSSxLQUFLLEtBQUssS0FDZEEsRUFBSSxLQUFLLE9BQU8sSUFDaEJBLEVBQUksS0FBSyxPQUFPLEtBQ2hCQSxFQUFJLEtBQUssTUFDVEEsRUFBSSxTQUFTLFVBQ2JBLEVBQUksU0FBUyxPQUNiQSxFQUFJLFNBQVMsVUFDYkEsRUFBSSxTQUFTLFFBQ2JBLEVBQUksWUFBWSxLQUNoQkEsRUFBSSxZQUFZLE9BQ2hCQSxFQUFJLFlBQVksUUFDaEJBLEVBQUksWUFBWSxNQUNoQkEsRUFBSSxXQUFXLFlBQ2ZBLEVBQUksV0FBVyxhQUNmQSxFQUFJLE9BQU8sS0FBSyxNQUNoQkEsRUFBSSxPQUFPLEtBQUssS0FDaEJBLEVBQUksT0FBTyxLQUFLLE1BQ2hCQSxFQUFJLE9BQU8sS0FBSyxTQUNoQkEsRUFBSSxPQUFPLEtBQUssS0FDaEJBLEVBQUksT0FBTyxLQUFLLE1BQ2hCQSxFQUFJLE9BQU8sRUFBRSxNQUNiQSxFQUFJLE9BQU8sRUFBRSxLQUNiQSxFQUFJLE9BQU8sRUFBRSxNQUNiQSxFQUFJLE9BQU8sRUFBRSxTQUNiQSxFQUFJLE9BQU8sRUFBRSxLQUNiQSxFQUFJLE9BQU8sRUFBRSxNQUNiQSxFQUFJLE9BQU8sSUFBSSxNQUNmQSxFQUFJLE9BQU8sSUFBSSxLQUNmQSxFQUFJLE9BQU8sSUFBSSxNQUNmQSxFQUFJLE9BQU8sSUFBSSxTQUNmQSxFQUFJLE9BQU8sSUFBSSxLQUNmQSxFQUFJLE9BQU8sSUFBSSxNQUNmQSxFQUFJLE9BQU8sRUFBRSxNQUNiQSxFQUFJLE9BQU8sRUFBRSxLQUNiQSxFQUFJLE9BQU8sRUFBRSxNQUNiQSxFQUFJLE9BQU8sRUFBRSxTQUNiQSxFQUFJLE9BQU8sRUFBRSxLQUNiQSxFQUFJLE9BQU8sRUFBRSxNQUNiQSxFQUFJLE9BQU8sRUFBRSxNQUNiQSxFQUFJLE9BQU8sTUFBTSxNQUNqQkEsRUFBSSxPQUFPLE1BQU0sS0FDakJBLEVBQUksT0FBTyxNQUFNLE1BQ2pCQSxFQUFJLE9BQU8sTUFBTSxTQUNqQkEsRUFBSSxPQUFPLE1BQU0sS0FDakJBLEVBQUksT0FBTyxNQUFNLE1BQ2pCQSxFQUFJLE9BQU8sTUFBTSxNQUNqQkEsRUFBSSxPQUFPLE9BQU8sTUFDbEJBLEVBQUksT0FBTyxPQUFPLEtBQ2xCQSxFQUFJLE9BQU8sT0FBTyxNQUNsQkEsRUFBSSxPQUFPLE9BQU8sU0FDbEJBLEVBQUksT0FBTyxPQUFPLEtBQ2xCQSxFQUFJLE9BQU8sT0FBTyxNQUNsQkEsRUFBSSxPQUFPLEtBQUssTUFDaEJBLEVBQUksT0FBTyxLQUFLLEtBQ2hCQSxFQUFJLE9BQU8sS0FBSyxNQUNoQkEsRUFBSSxPQUFPLEtBQUssU0FDaEJBLEVBQUksT0FBTyxLQUFLLEtBQ2hCQSxFQUFJLE9BQU8sS0FBSyxNQUNoQkEsRUFBSSxPQUFPLEtBQUssTUFDaEJBLEVBQUksT0FBTyxLQUFLLEtBQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLElBQUksS0FDZkEsRUFBSSxPQUFPLElBQUksS0FDZkEsRUFBSSxPQUFPLE1BQU0sS0FDakJBLEVBQUksT0FBTyxNQUFNLEtBQ2pCQSxFQUFJLE9BQU8sT0FBTyxLQUNsQkEsRUFBSSxPQUFPLE9BQU8sS0FDbEJBLEVBQUksT0FBTyxLQUFLLEtBQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLE9BQU8sS0FDbEJBLEVBQUksT0FBTyxPQUFPLE1BQ2xCQSxFQUFJLE9BQU8sT0FBTyxTQUNsQkEsRUFBSSxPQUFPLE9BQU8sTUFDbEJBLEVBQUksUUFBUSxLQUFLLE1BQ2pCQSxFQUFJLFFBQVEsS0FBSyxLQUNqQkEsRUFBSSxRQUFRLEtBQUssTUFDakJBLEVBQUksUUFBUSxLQUFLLFNBQ2pCQSxFQUFJLFFBQVEsS0FBSyxLQUNqQkEsRUFBSSxRQUFRLEtBQUssTUFDakJBLEVBQUksUUFBUSxFQUFFLE1BQ2RBLEVBQUksUUFBUSxFQUFFLEtBQ2RBLEVBQUksUUFBUSxFQUFFLE1BQ2RBLEVBQUksUUFBUSxFQUFFLFNBQ2RBLEVBQUksUUFBUSxFQUFFLEtBQ2RBLEVBQUksUUFBUSxFQUFFLE1BQ2RBLEVBQUksUUFBUSxJQUFJLE1BQ2hCQSxFQUFJLFFBQVEsSUFBSSxLQUNoQkEsRUFBSSxRQUFRLElBQUksTUFDaEJBLEVBQUksUUFBUSxJQUFJLFNBQ2hCQSxFQUFJLFFBQVEsSUFBSSxLQUNoQkEsRUFBSSxRQUFRLElBQUksTUFDaEJBLEVBQUksUUFBUSxFQUFFLE1BQ2RBLEVBQUksUUFBUSxFQUFFLEtBQ2RBLEVBQUksUUFBUSxFQUFFLE1BQ2RBLEVBQUksUUFBUSxFQUFFLFNBQ2RBLEVBQUksUUFBUSxFQUFFLEtBQ2RBLEVBQUksUUFBUSxFQUFFLE1BQ2RBLEVBQUksUUFBUSxNQUFNLE1BQ2xCQSxFQUFJLFFBQVEsTUFBTSxLQUNsQkEsRUFBSSxRQUFRLE1BQU0sTUFDbEJBLEVBQUksUUFBUSxNQUFNLFNBQ2xCQSxFQUFJLFFBQVEsTUFBTSxLQUNsQkEsRUFBSSxRQUFRLE1BQU0sTUFDbEJBLEVBQUksUUFBUSxPQUFPLE1BQ25CQSxFQUFJLFFBQVEsT0FBTyxLQUNuQkEsRUFBSSxRQUFRLE9BQU8sTUFDbkJBLEVBQUksUUFBUSxPQUFPLFNBQ25CQSxFQUFJLFFBQVEsT0FBTyxLQUNuQkEsRUFBSSxRQUFRLE9BQU8sTUFDbkJBLEVBQUksUUFBUSxLQUFLLE1BQ2pCQSxFQUFJLFFBQVEsS0FBSyxLQUNqQkEsRUFBSSxRQUFRLEtBQUssTUFDakJBLEVBQUksUUFBUSxLQUFLLFNBQ2pCQSxFQUFJLFFBQVEsS0FBSyxLQUNqQkEsRUFBSSxRQUFRLEtBQUssTUFDakJBLEVBQUksTUFBTSxVQUNWQSxFQUFJLE1BQU0sTUFDVkEsRUFBSSxNQUFNLE1BQ1ZBLEVBQUksT0FBTyxNQUNYQSxFQUFJLE9BQU8sTUFDWEEsRUFBSSxNQUFNLEVBQUUsUUFDWkEsRUFBSSxZQUNKQSxFQUFJLE9BQU8sYUFDWEEsRUFBSSxPQUFPLFNBQ1hBLEVBQUksT0FBTyxNQUNYQSxFQUFJLEtBQUssS0FBSyxRQUNkQSxFQUFJLEtBQUssS0FBSyxVQUNkQSxFQUFJLEtBQUssS0FBSyxTQUNkQSxFQUFJLEtBQUssS0FBSyxRQUNkQSxFQUFJLEtBQUssS0FBSyxhQUNkQSxFQUFJLEtBQUssS0FBSyxZQUNkQSxFQUFJLEtBQUssT0FBTyxjQUNoQkEsRUFBSSxLQUFLLE9BQU8sY0FDaEJBLEVBQUksS0FBSyxPQUFPLGFBQ2hCQSxFQUFJLEtBQUssT0FBTyxlQUNoQkEsRUFBSSxhQUFhLEtBQ2pCQSxFQUFJLE9BQU8sUUFDWEEsRUFBSSxPQUFPLFNBQ1hBLEVBQUksT0FBTyxPQUNYQSxFQUFJLE9BQU8sWUFDWEEsRUFBSSxlQUFlLElBQ25CQSxFQUFJLGVBQWUsS0FDbkJBLEVBQUksVUFBVSxLQUNkQSxFQUFJLE9BQU8sUUFDWEEsRUFBSSxPQUFPLEtBQ1hBLEVBQUksS0FBSyxJQUNUQSxFQUFJLFdBQVcsT0FDZkEsRUFBSSxNQUFNLEVBQUUsTUFDWkEsRUFBSSxNQUFNLEVBQUUsUUFDWkEsRUFBSSxNQUFNLEVBQUUsT0FDWkEsRUFBSSxlQUFlLE9BQ25CQSxFQUFJLGVBQWUsTUFDbkJBLEVBQUksZUFBZSxPQUNuQkEsRUFBSSxVQUFVLE9BQ2RBLEVBQUksVUFBVSxLQUNkQSxFQUFJLFVBQVUsSUFDZEEsRUFBSSxXQUFXLElBQ2ZBLEVBQUksV0FBVyxLQUNmQSxFQUFJLGdCQUFnQixLQUNwQkEsRUFBSSxTQUFTLEdBQUcsTUFDaEJBLEVBQUksU0FBUyxHQUFHLFFBQ2hCQSxFQUFJLFNBQVMsRUFBRSxNQUNmQSxFQUFJLFNBQVMsRUFBRSxRQUNmQSxFQUFJLFNBQVMsRUFBRSxRQUNmQSxFQUFJLFNBQVMsRUFBRSxNQUNmQSxFQUFJLFNBQVMsRUFBRSxRQUNmQSxFQUFJLFFBQVE7QUNucEJQLE1BQU1JLEtBQWM7QUFBQSxFQUN6QixZQUFZO0FBQUEsRUFDWixVQUFVO0FBQ1o7Ozs7Ozs7Ozs7Ozs7O0lDSGFDLElBQU87QUFBQSxFQUNsQixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQ1QsR0MrQk1DLEtBQWUsQ0FBQ0MsTUFBbUM7QUFDdkQsTUFBSUMsSUFBU0QsS0FBUyxPQUFPQSxLQUFVLFdBQVcsSUFBSSxLQUFLLGFBQWEsRUFBRSxPQUFPQSxDQUFLLElBQUksT0FBT0EsS0FBUyxFQUFFLEdBQ3hHRSxJQUFTRDtBQUVULFNBQUFELEtBQVMsT0FBT0EsS0FBVSxhQUNuQkUsSUFBQUEsRUFBTyxRQUFRLE9BQU8sRUFBRSxHQUM3QixPQUFPQSxDQUFNLElBQ2ZELElBQVMsSUFBSSxLQUFLLGFBQUEsRUFBZSxPQUFPLE9BQU9DLENBQU0sQ0FBQyxJQUU3Q0QsSUFBQSxNQUlOQTtBQUNULEdBRU1FLEtBQW1CLENBQUNILE1BQ2pCQSxLQUFTLE9BQU9BLEtBQVUsV0FDN0JBLEVBQ0csUUFBUSx5QkFBeUIsT0FBTyxFQUN4QyxRQUFRLFdBQVcsR0FBRyxFQUN0QixZQUFBLEVBQ0EsTUFBTSxHQUFHLEVBQ1QsSUFBSSxDQUFDSSxNQUFTQSxFQUFLLE1BQU0sR0FBRyxDQUFDLEVBQUUsWUFBQSxJQUFnQkEsRUFBSyxNQUFNLENBQUMsQ0FBQyxFQUM1RCxLQUFLLEVBQUUsSUFDVkosR0FHQUssS0FBYyxDQUFDTCxNQUFtQztBQUNsRCxNQUFBQyxJQUE4QyxPQUFyQ0QsS0FBUyxPQUFPQSxLQUFVLFdBQWtCQSxJQUFnQkEsS0FBUyxFQUFwQixHQUMxREUsSUFBU0Q7QUFHYixVQUZTQyxJQUFBQSxFQUFPLFFBQVEsT0FBTyxFQUFFLEdBRXpCQSxFQUFPLFFBQVE7QUFBQSxJQUNyQixLQUFLO0FBQ00sTUFBQUQsSUFBQSxHQUFHQyxFQUFPLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSUEsRUFBTyxNQUFNLENBQUMsQ0FBQztBQUNqRDtBQUFBLElBQ0YsS0FBSztBQUNILE1BQUFELElBQVMsR0FBR0MsRUFBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUlBLEVBQU8sTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJQSxFQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZFO0FBQUEsSUFDRixLQUFLO0FBQ00sTUFBQUQsSUFBQSxHQUFHQyxFQUFPLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSUEsRUFBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUlBLEVBQU8sTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJQSxFQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQzdGO0FBQUEsSUFDRjtBQUNXLE1BQUFELElBQUFDO0FBQ1Q7QUFBQSxFQUNKO0FBRU8sU0FBQUQ7QUFDVCxHQUVNSyxLQUFjLENBQUNOLE1BRVosSUFEUUEsSUFBUUQsR0FBYUMsQ0FBSyxJQUFJLE9BQU9BLEtBQVMsR0FBRyxDQUMvQyxJQ3ZGTk8sS0FBUTtBQUFBLEVBQ25CLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFVBQVU7QUFBQSxFQUNWLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLElBQUk7QUFBQSxFQUNKLE1BQU07QUFBQSxFQUNOLE9BQU87QUFDVDs7Ozs7OztpQkNXUUMsSUFBV0M7QUFFakIsV0FBQUM7QUFBQSxNQUNFLE1BQU1DLEVBQU07QUFBQSxNQUNaLFlBQVk7QUFDVixjQUFNQyxJQUFLRCxFQUFNLE1BQ1gsQ0FBQ0UsR0FBUSxHQUFHQyxDQUFJLElBQUlGLEVBQUcsTUFBTSxHQUFHLEdBQ2hDRyxJQUFPWixHQUFpQlcsRUFBSyxTQUFTLElBQUlBLEVBQUssS0FBSyxHQUFHLElBQUlELENBQU0sR0FDakVHLElBQWNULEdBQU1NLEtBQUEsZ0JBQUFBLEVBQVEsYUFBbUMsR0FFL0RJLElBQXdCRCxJQUMxQiw2QkFBNkJBLENBQVcsUUFBUWIsR0FBaUJVLENBQU0sQ0FBQyxHQUFHRSxDQUFJLFNBQy9FLDJCQUEyQkEsQ0FBSSxRQUU3QkcsSUFBWUMsR0FBcUIsTUFBTSxPQUFPRixFQUFjO0FBQ3pELFFBQUFULEVBQUEsUUFBUVksR0FBUUYsQ0FBUztBQUFBLE1BQ3BDO0FBQUEsTUFDQSxFQUFFLFdBQVcsR0FBSztBQUFBLElBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttRUNwQ1RHLElBQU87QUFBQSxFQUNsQixpQkFBaUI7QUFBQSxFQUNqQixLQUFLO0FBQUEsRUFDTCxnQkFBZ0I7QUFBQSxFQUNoQixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixlQUFlO0FBQUEsRUFDZixhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixZQUFZO0FBQUEsRUFDWixLQUFLO0FBQUEsRUFDTCxVQUFVO0FBQUEsRUFDVixnQkFBZ0I7QUFBQSxFQUNoQixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxjQUFjO0FBQUEsRUFDZCxlQUFlO0FBQUEsRUFDZixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxnQkFBZ0I7QUFBQSxFQUNoQixhQUFhO0FBQUEsRUFDYixhQUFhO0FBQUEsRUFDYixVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixpQkFBaUI7QUFBQSxFQUNqQixhQUFhO0FBQUEsRUFDYixlQUFlO0FBQUEsRUFDZixzQkFBc0I7QUFBQSxFQUN0QixPQUFPO0FBQUEsRUFDUCxLQUFLO0FBQUEsRUFDTCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixZQUFZO0FBQUEsRUFDWixNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQUEsRUFDWCxXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixnQkFBZ0I7QUFBQSxFQUNoQixXQUFXO0FBQUEsRUFDWCxnQkFBZ0I7QUFBQSxFQUNoQixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixZQUFZO0FBQUEsRUFDWixlQUFlO0FBQUEsRUFDZixVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixjQUFjO0FBQUEsRUFDZCxXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixpQkFBaUI7QUFBQSxFQUNqQixPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxlQUFlO0FBQUEsRUFDZixRQUFRO0FBQUEsRUFDUixLQUFLO0FBQUEsRUFDTCxXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxrQkFBa0I7QUFBQSxFQUNsQixRQUFRO0FBQUEsRUFDUixNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixZQUFZO0FBQUEsRUFDWixZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxTQUFTO0FBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQ3REUUMsSUFBYWIsRUFBSUUsRUFBTSxpQkFBaUI7QUFFOUMsUUFBSVksSUFBZ0JkO0FBRXBCLFVBQU1lLElBQW1CLE1BQU07QUFDN0IsWUFBTUMsSUFBVUYsRUFBYztBQUVuQixNQUFBRCxFQUFBLFFBQVEsQ0FBQ0EsRUFBVyxPQUUvQkcsRUFBUSxNQUFNLG1CQUFtQkgsRUFBVyxRQUFRLFFBQVE7QUFBQSxJQUFBO0FBRzlELFdBQUFJLEdBQVUsTUFBTTtBQUNkLFlBQU1ELElBQVVGLEVBQWM7QUFFOUIsTUFBQUUsRUFBUSxNQUFNLG1CQUFtQkgsRUFBVyxRQUFRLFFBQVE7QUFBQSxJQUFBLENBQzdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0VDMURVSyxJQUFVO0FBQUEsRUFDckIsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUNSLEdBRWFDLElBQXVCO0FBQUEsRUFDbEMsUUFBUTtBQUFBLEVBQ1IsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUNSLEdDUGFDLElBQVc7QUFBQSxFQUN0QixTQUFTO0FBQUEsRUFDVCxXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixVQUFVO0FBQ1osR0NSYUMsSUFBUztBQUFBLEVBQ3BCLE9BQU87QUFBQSxFQUNQLE1BQU07QUFDUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0hhQyxJQUFRO0FBQUEsRUFDbkIsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsU0FBUztBQUNYOzs7Ozs7OztpQkNvQlFDLElBQU9DLEVBQVMsTUFBTTtBQUMxQixVQUFJRCxJQUFhWCxFQUFLO0FBRXRCLGNBQVFWLEVBQU0sTUFBTTtBQUFBLFFBQ2xCLEtBQUtvQixFQUFNO0FBQ1RDLFVBQUFBLElBQU9YLEVBQUs7QUFDWjtBQUFBLFFBQ0Y7QUFBQSxRQUNBLEtBQUtVLEVBQU07QUFDVEMsVUFBQUEsSUFBT1gsRUFBSztBQUNaO0FBQUEsUUFDRixLQUFLVSxFQUFNO0FBQ1RDLFVBQUFBLElBQU9YLEVBQUs7QUFDWjtBQUFBLFFBQ0YsS0FBS1UsRUFBTTtBQUNUQyxVQUFBQSxJQUFPWCxFQUFLO0FBQ1o7QUFBQSxNQUNKO0FBRU9XLGFBQUFBO0FBQUFBLElBQUEsQ0FDUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4RUN2QktFLEtBQWU7Ozs7Ozs7OztpQkFEZkMsSUFBWTFCLEtBR1oyQixJQUFzQixNQUFNO0FBQzFCLFlBQUFDLElBQU1GLEVBQVUsTUFBTSxZQUN0QkcsSUFBZ0JILEVBQVUsTUFBTSxjQUFjLGNBQWMsa0JBQWtCRSxDQUFHLElBQUk7QUFFM0YsTUFBSUMsSUFDRkEsRUFBYyxTQUFTSixLQUV2QkMsRUFBVSxNQUFNLE1BQU1EO0FBQUEsSUFDeEI7QUFHRixXQUFBSyxFQUFhSixFQUFVLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ25DakJLLEtBQVE7QUFBQSxFQUNuQixhQUFhO0FBQUEsRUFDYixZQUFZO0FBQUEsRUFDWixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQ1gsR0FFYUMsS0FBZ0I7QUFBQSxFQUMzQixTQUFTO0FBQUEsRUFDVCxnQkFBZ0I7QUFDbEIsR0FFYUMsS0FBZ0I7QUFBQSxFQUMzQixVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixTQUFTO0FBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NFQ2hCYUMsS0FBWTtBQUFBLEVBQ3ZCLFlBQVk7QUFBQSxFQUNaLGVBQWU7QUFBQSxFQUNmLFlBQVk7QUFDZCxHQUlhQyxLQUFxQjtBQUFBLEVBQ2hDLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFDUDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzRUNrQlFDLEtBQU07Ozs7Ozs7OztBQVZaLFFBQUlDLElBQWVyQyxLQUNmc0MsSUFBYXRDLEtBQ2J1QyxJQUFjdkMsS0FDZHdDLElBQWV4QztBQUVuQixVQUFNeUMsSUFBYXpDLEtBQ2IwQyxJQUFXMUMsS0FDWDJDLElBQWMzQyxLQUNkNEMsSUFBZTVDLEVBQUksQ0FBQyxHQVVwQjZDLElBQXNCLE1BQU07QUFFMUIsWUFBQUMsSUFBZSxNQUFNLEtBQUtMLEVBQVcsTUFBTSxRQUFRLEVBQUUsSUFBSSxDQUFDTSxNQUFlQSxFQUFNLFVBQVU7QUFFL0YsVUFBSUQsRUFBYSxXQUFXO0FBQUc7QUFHL0IsWUFBTUUsSUFBcUJGLEVBQWEsT0FBTyxDQUFDRyxHQUFNQyxNQUM3QyxLQUFLLElBQUlBLElBQU9SLEVBQVMsTUFBTSxVQUFVLElBQUksS0FBSyxJQUFJTyxJQUFPUCxFQUFTLE1BQU0sVUFBVSxJQUFJUSxJQUFPRCxDQUN6RztBQUdZLE1BQUFMLEVBQUEsUUFBUUUsRUFBYSxRQUFRRSxDQUFrQjtBQUFBLElBQUEsR0FHeERHLElBQWEsTUFBTTtBQUNWLE1BQUFkLEVBQUEsUUFBUUksRUFBVyxNQUFNLGFBQzNCSCxFQUFBLFFBQVFJLEVBQVMsTUFBTSxhQUN0QkgsRUFBQSxRQUFRRixFQUFhLFFBQVFDLEVBQVcsT0FDcERFLEVBQWEsUUFBUUUsRUFBUyxNQUFNLGNBQWNBLEVBQVMsTUFBTSxhQUNqRUMsRUFBWSxRQUFRSixFQUFZLFNBQVMsQ0FBQ3JDLEVBQU0sZUFFNUIyQztJQUFBLEdBSWhCTyxJQUFlLE1BQU07QUFDZCxNQUFBRDtJQUFBLEdBU1BFLElBQWdCLENBQUNDLE1BQXVCO0FBQzVDLE1BQUFaLEVBQVMsTUFBTSxTQUFTO0FBQUEsUUFDdEIsVUFBVTtBQUFBLFFBQ1YsTUFBTUQsRUFBVyxNQUFNLFNBQVNhLENBQVUsRUFBRTtBQUFBLE1BQUEsQ0FDN0M7QUFBQSxJQUFBLEdBR0dDLElBQWdCLE1BQU07QUFDcEJsQixZQUFBQSxJQUFlSSxFQUFXLE1BQU0sYUFDaENlLElBQW1CZCxFQUFTLE1BQU0sYUFBYUEsRUFBUyxNQUFNO0FBRXBFLFVBQUljLElBQW1CbkI7QUFDckIsUUFBQUssRUFBUyxNQUFNLFNBQVM7QUFBQSxVQUN0QixVQUFVO0FBQUEsVUFDVixNQUFNTDtBQUFBQSxRQUFBLENBQ1A7QUFBQSxXQUNJO0FBQ0wsY0FBTW9CLElBQXlCdkQsRUFBTSxXQUFXMEMsRUFBYSxVQUFVLEdBRWpFYyxJQURjRixNQUFxQm5CLElBQ1QsSUFBSW9CLElBQXlCLElBQUliLEVBQWEsUUFBUTtBQUV0RixRQUFBUyxFQUFjSyxDQUFTO0FBQUEsTUFDekI7QUFBQSxJQUFBLEdBR0lDLElBQW9CLE1BQU07QUFDeEIsWUFBQUMsSUFBYTFELEVBQU0sVUFBVSxJQUFJLEdBQ2pDMkQsSUFBZWpCLEVBQWEsUUFBUSxNQUFNZ0IsR0FFMUNFLElBRGdCbEIsRUFBYSxTQUFTZ0IsSUFFeENuQixFQUFXLE1BQU0sU0FBUyxTQUFTLElBQ25Db0IsSUFDQSxJQUNBakIsRUFBYSxRQUFRO0FBRXpCLE1BQUFTLEVBQWNTLENBQWE7QUFBQSxJQUFBO0FBRzdCLFdBQUE3QyxHQUFVLE1BQU07QUFDSCxNQUFBa0MsS0FDSixPQUFBLGlCQUFpQixVQUFVQSxDQUFVO0FBQUEsSUFBQSxDQUM3QyxHQUVEWSxHQUFZLE1BQU07QUFDVCxhQUFBLG9CQUFvQixVQUFVWixDQUFVO0FBQUEsSUFBQSxDQUNoRCxHQUVEYSxHQUFVLE1BQU07QUFDSCxNQUFBYjtJQUFBLENBQ1osR0FFRGxELEVBQU0yQyxHQUFjLE1BQU07QUFDbkIsTUFBQXFCLEVBQUEsVUFBVXJCLEVBQWEsS0FBSztBQUFBLElBQUEsQ0FDbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkMvRktzQixJQUFZMUMsRUFBUyxNQUFNdEIsRUFBTSxXQUFXQSxFQUFNLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQ1QvRGlFLElBQVVuRSxFQUFJRSxFQUFNLE9BQU87QUFFakMsV0FBQUQ7QUFBQSxNQUNFLE1BQU1DLEVBQU07QUFBQSxNQUNaLENBQUNrRSxHQUFVQyxNQUFhO0FBQ3RCLFNBQUlELE1BQWFDLEtBQVlELE1BQWFELEVBQVEsV0FDaERBLEVBQVEsUUFBUUM7QUFBQSxNQUVwQjtBQUFBLElBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NFQ3JCU0UsS0FBc0IsK0JBRXRCQyxLQUFVO0FBQUEsRUFDckIsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUNULEdBRWFDLElBQWMsQ0FBQ0MsTUFDbkIsQ0FBQ0MsTUFBb0M7QUFDMUMsTUFBSUMsSUFBU0o7QUFFYixTQUFLRyxFQUFNLEtBQU8sRUFBQSxNQUFNRCxDQUFNLE1BQ25CRSxJQUFBO0FBQUEsSUFDUCxTQUFTTDtBQUFBLElBQ1QsT0FBTztBQUFBLEVBQUEsSUFJSks7QUFBQSxHQUlFQyxLQUFrQixDQUFDQyxHQUFpQ0MsTUFFM0QsT0FBT0QsS0FBbUIsWUFBWUEsRUFBZSxTQUFTLElBQVVBLElBRXJFLE9BQU9DLEtBQWlCLFlBQVlBLEVBQWEsU0FBUyxJQUFJQSxJQUFlUixJQUd6RVMsS0FBbUIsQ0FBQ0YsR0FBaUNDLE1BQ2hFRCxNQUFtQixNQUFTQyxNQUFpQixJQUVsQ0UsS0FBd0IsQ0FBQyxFQUFFLFdBQUFDLEdBQVcsV0FBQUMsR0FBVyxVQUFBQyxHQUFVLE9BQUFULFFBQThCO0FBQ3BHLFFBQU1VLElBQXVCVixFQUFNLFdBQVcsS0FBSyxDQUFDUyxHQUM5Q0UsSUFBWUosS0FBYVAsRUFBTSxTQUFTTztBQUd2QyxTQUFBLEVBRlksQ0FBQ0csS0FBd0JGLEtBQWFSLEVBQU0sU0FBU1EsTUFFbEQsQ0FBQ0c7QUFDekIsR0F1RGFDLEtBQXdCLENBQUM7QUFBQSxFQUNwQyxPQUFBQztBQUFBLEVBQ0EsZ0JBQUFWO0FBQUEsRUFDQSxXQUFBSTtBQUFBLEVBQ0EsV0FBQUM7QUFBQSxFQUNBLFVBQUFDLElBQVc7QUFBQSxFQUNYLFlBQUFLO0FBQUEsRUFDQSxPQUFBZDtBQUNGLE1BUU07QUFLQSxNQUZFYSxFQUFBLFFBQVFWLEtBQWtDLElBRTVDLENBQUNVLEVBQU0sU0FBU0MsR0FBWTtBQUM5QixVQUFNQyxJQUFhQyxHQUFpQmhCLEVBQU0sT0FBT2MsQ0FBVTtBQUV2RCxJQUFDQyxFQUFXLFVBQ2RGLEVBQU0sUUFBUUUsRUFBVztBQUFBLEVBRTdCO0FBRUEsTUFBSSxDQUFDRixFQUFNLFVBQVVOLEtBQWFDLElBQVk7QUFDNUMsVUFBTVMsSUFBbUJDLEdBQWU7QUFBQSxNQUN0QyxXQUFBWDtBQUFBLE1BQ0EsV0FBQUM7QUFBQSxNQUNBLFVBQUFDO0FBQUEsTUFDQSxPQUFPVCxFQUFNO0FBQUEsSUFBQSxDQUNkO0FBRUcsSUFBQ2lCLEVBQWlCLFVBQ3BCSixFQUFNLFFBQVFJLEVBQWlCO0FBQUEsRUFFbkM7QUFDRixHQWtCYUMsS0FBaUIsQ0FBQztBQUFBLEVBQzdCLFdBQUFYO0FBQUEsRUFDQSxXQUFBQztBQUFBLEVBQ0EsVUFBQUMsSUFBVztBQUFBLEVBQ1gsT0FBQVQ7QUFDRixNQUEwQztBQUN4QyxRQUFNbUIsSUFBVztBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsT0FBTztBQUFBLEVBQUE7QUFVVCxTQVBBQSxFQUFTLFFBQVFiLEdBQXNCO0FBQUEsSUFDckMsV0FBQUM7QUFBQSxJQUNBLFdBQUFDO0FBQUEsSUFDQSxVQUFBQztBQUFBLElBQ0EsT0FBQVQ7QUFBQSxFQUFBLENBQ0QsR0FFR21CLEVBQVMsVUFFYkEsRUFBUyxVQUFVdkIsSUFFZlcsS0FBYUMsSUFDZlcsRUFBUyxVQUFVLGdDQUFnQ1gsQ0FBUyxRQUFRRCxDQUFTLDJCQUNwRUEsSUFDQVksRUFBQSxVQUFVLHFDQUFxQ1osQ0FBUywyQkFDeERDLE1BQ0FXLEVBQUEsVUFBVSxxQ0FBcUNYLENBQVMsNEJBRzVEVztBQUNUO0FBRWdCLFNBQUFILEdBQWlCaEIsR0FBZWMsR0FBdUU7QUFDckgsYUFBV00sS0FBYU4sR0FBWTtBQUM1QixVQUFBQyxJQUFhSyxFQUFVcEIsQ0FBSztBQUM5QixRQUFBLENBQUNlLEVBQVc7QUFDUCxhQUFBQTtBQUFBLEVBRVg7QUFFTyxTQUFBO0FBQUEsSUFDTCxTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUEsRUFBQTtBQUVYOzs7Ozs7Ozs7Ozs7Ozs7O2lCQ25MUUYsSUFBUXZGLEVBQUlFLEVBQU0sS0FBSyxHQUN2QjZGLElBQVcvRixFQUFJLEVBQUssR0FDcEJULElBQVFTLEVBQThCLElBQUksR0FDMUNtRixJQUFXbkYsRUFBSUUsRUFBTSxRQUFRLEdBQzdCd0UsSUFBUTFFLEVBQXdCRSxFQUFNLEtBQUssR0FFM0M4RixJQUFleEUsRUFBUyxNQUFNb0QsR0FBZ0IxRSxFQUFNLE9BQU9xRixFQUFNLEtBQUssQ0FBQyxHQUN2RVUsSUFBaUJ6RSxFQUFTLE1BQU90QixFQUFNLFdBQVcsR0FBR0EsRUFBTSxLQUFLLE9BQU9BLEVBQU0sS0FBTSxHQUNuRmdHLElBQVcxRSxFQUFTLE1BQU90QixFQUFNLFlBQVksQ0FBQ3dFLEVBQU0sU0FBVUssR0FBaUJRLEVBQU0sT0FBT3JGLEVBQU0sS0FBSyxDQUFDLEdBQ3hHaUcsSUFBZTNFLEVBQVMsTUFBTXVFLEVBQVMsU0FBUyxDQUFDSyxFQUFRLEtBQUssR0FDOURBLElBQVU1RSxFQUFTLE1BQU1rRCxFQUFNLFVBQVUsTUFBUyxHQUVsRDJCLElBQWdCLE1BQU07O0FBQ3BCLFlBQUFDLElBQVEsSUFBSSxXQUFXLFdBQVc7QUFDakMsT0FBQUMsSUFBQWhILEtBQUEsZ0JBQUFBLEVBQUEsVUFBQSxRQUFBZ0gsRUFBTyxjQUFjRDtBQUFBLElBQUssR0FHN0JFLElBQWMsTUFBTTtBQUN4QixNQUFBVCxFQUFTLFFBQVE7QUFBQSxJQUFBLEdBR2JVLElBQWlCLE1BQU07QUFDM0IsTUFBQVYsRUFBUyxRQUFRO0FBQUEsSUFBQTtBQUduQixXQUFBOUY7QUFBQSxNQUNFLE1BQU1DLEVBQU07QUFBQSxNQUNaLENBQUNrRSxHQUFVQyxNQUFhO0FBQ3RCLFNBQUlELE1BQWFDLEtBQVlELE1BQWFNLEVBQU0sV0FDOUNBLEVBQU0sUUFBUU47QUFBQSxNQUVsQjtBQUFBLElBQUEsR0FHV3RDLEVBQUEsRUFBRSxPQUFBeUQsR0FBTyxPQUFBYixFQUFBLENBQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzRUM3RGxCZ0MsSUFBa0I7QUFBQSxFQUM3QixNQUFNO0FBQUEsRUFDTixnQkFBZ0I7QUFBQSxFQUNoQixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQ1I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkM2Q1FuQixJQUFRdkYsRUFBSUUsRUFBTSxLQUFLLEdBQ3ZCNkYsSUFBVy9GLEVBQUksRUFBSyxHQUNwQlQsSUFBUVMsRUFBNkIsSUFBSSxHQUN6QzJHLElBQWUzRyxFQUFJLEVBQUssR0FDeEIwRSxJQUFRMUUsRUFBSUUsRUFBTSxLQUFLLEdBRXZCOEYsSUFBZXhFLEVBQVMsTUFBTW9ELEdBQWdCMUUsRUFBTSxPQUFPcUYsRUFBTSxLQUFLLENBQUMsR0FDdkVVLElBQWlCekUsRUFBUyxNQUFPdEIsRUFBTSxZQUFZQSxFQUFNLFFBQVEsR0FBR0EsRUFBTSxLQUFLLE9BQU9BLEVBQU0sS0FBTSxHQUNsRzBHLElBQVdwRixFQUFTLE1BQU10QixFQUFNLFlBQVl3RSxFQUFNLEtBQUssR0FDdkR3QixJQUFXMUUsRUFBUyxNQUFPdEIsRUFBTSxZQUFZLENBQUN3RSxFQUFNLFNBQVVLLEdBQWlCUSxFQUFNLE9BQU9yRixFQUFNLEtBQUssQ0FBQyxHQUN4R2lHLElBQWUzRSxFQUFTLE1BQU11RSxFQUFTLFNBQVMsQ0FBQ0ssRUFBUSxLQUFLLEdBQzlEQSxJQUFVNUUsRUFBUyxNQUFNa0QsRUFBTSxVQUFVLEVBQUUsR0FDM0NtQyxJQUFPckY7QUFBQSxNQUFTLE1BQ3BCdEIsRUFBTSxTQUFTd0csRUFBZ0IsWUFBWUMsRUFBYSxVQUFVLEtBQU9ELEVBQWdCLE9BQU94RyxFQUFNO0FBQUEsSUFBQSxHQUdsRzRHLElBQWMsTUFBTTs7QUFDeEIsTUFBQXBDLEVBQU0sUUFBUSxLQUNkNkIsSUFBQWhILEVBQU0sVUFBTixRQUFBZ0gsRUFBYTtBQUFBLElBQU0sR0FHZkMsSUFBYyxNQUFNO0FBQ3hCLE1BQUFULEVBQVMsUUFBUTtBQUFBLElBQUEsR0FHYlUsSUFBaUIsTUFBTTtBQUMzQixNQUFBVixFQUFTLFFBQVEsSUFDQWdCO0lBQUEsR0FHYkMsSUFBYyxNQUFNOztBQUN4QixVQUFJOUcsRUFBTSxnQkFBZ0I7QUFDbEIsY0FBQVQsTUFBUzhHLElBQUE3QixFQUFNLE1BQU0sTUFBTSxLQUFLLE1BQXZCLGdCQUFBNkIsRUFBMEIsS0FBSyxRQUFPO0FBRXJELFFBQUE3QixFQUFNLFFBQVFqRixJQUFTUyxFQUFNLGVBQWVULENBQU0sSUFBSTtBQUFBLE1BQ3hEO0FBQUEsSUFBQSxHQUdJc0gsSUFBbUIsTUFBTTtBQUNQLE1BQUF6QixHQUFBO0FBQUEsUUFDcEIsT0FBQUM7QUFBQSxRQUNBLGdCQUFnQnJGLEVBQU07QUFBQSxRQUN0QixXQUFXQSxFQUFNO0FBQUEsUUFDakIsV0FBV0EsRUFBTTtBQUFBLFFBQ2pCLFVBQVVBLEVBQU07QUFBQSxRQUNoQixZQUFZQSxFQUFNO0FBQUEsUUFDbEIsT0FBQXdFO0FBQUEsTUFBQSxDQUNEO0FBQUEsSUFBQSxHQUdHdUMsSUFBYyxDQUFDN0MsTUFBcUI7QUFDeEMsTUFBQU0sRUFBTSxRQUFRTjtBQUFBLElBQUE7QUFHaEIsV0FBQW5FO0FBQUEsTUFDRSxNQUFNQyxFQUFNO0FBQUEsTUFDWixDQUFDa0UsR0FBVUMsTUFBYTtBQUN0QixTQUFJRCxNQUFhQyxLQUFZRCxNQUFhTSxFQUFNLFdBQzlDQSxFQUFNLFFBQVFOO0FBQUEsTUFFbEI7QUFBQSxJQUFBLEdBR0Z0QyxFQUFhLEVBQUUsT0FBQXlELEdBQU8sYUFBQTBCLEdBQWEsT0FBQXZDLEVBQU8sQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkNsRnBDYSxJQUFRdkYsRUFBSUUsRUFBTSxLQUFLLEdBQ3ZCNkYsSUFBVy9GLEVBQUksRUFBSyxHQUNwQlQsSUFBUVMsRUFBNkIsSUFBSSxHQUN6QzBFLElBQVExRSxFQUFJRSxFQUFNLEtBQUssR0FFdkI4RixJQUFleEUsRUFBUyxNQUFNb0QsR0FBZ0IxRSxFQUFNLE9BQU9xRixFQUFNLEtBQUssQ0FBQyxHQUN2RVUsSUFBaUJ6RSxFQUFTLE1BQU90QixFQUFNLFdBQVcsR0FBR0EsRUFBTSxLQUFLLE9BQU9BLEVBQU0sS0FBTSxHQUNuRmdHLElBQVcxRSxFQUFTLE1BQU90QixFQUFNLFlBQVksQ0FBQ3dFLEVBQU0sU0FBVUssR0FBaUJRLEVBQU0sT0FBT3JGLEVBQU0sS0FBSyxDQUFDLEdBQ3hHaUcsSUFBZTNFLEVBQVMsTUFBTXVFLEVBQVMsU0FBUyxDQUFDSyxFQUFRLEtBQUssR0FDOURBLElBQVU1RSxFQUFTLE1BQU1rRCxFQUFNLFVBQVUsRUFBRSxHQUUzQzhCLElBQWMsTUFBTTtBQUN4QixNQUFBVCxFQUFTLFFBQVE7QUFBQSxJQUFBLEdBR2JVLElBQWlCLE1BQU07QUFDM0IsTUFBQVYsRUFBUyxRQUFRO0FBQUEsSUFBQSxHQUdiZ0IsSUFBbUIsTUFDaEJ6QixHQUFzQjtBQUFBLE1BQzNCLE9BQUFDO0FBQUEsTUFDQSxnQkFBZ0JyRixFQUFNO0FBQUEsTUFDdEIsV0FBV0EsRUFBTTtBQUFBLE1BQ2pCLFdBQVdBLEVBQU07QUFBQSxNQUNqQixPQUFBd0U7QUFBQSxJQUFBLENBQ0Q7QUFHSCxXQUFBekU7QUFBQSxNQUNFLE1BQU1DLEVBQU07QUFBQSxNQUNaLENBQUNrRSxHQUFVQyxNQUFhO0FBQ3RCLFNBQUlELE1BQWFDLEtBQVlELE1BQWFNLEVBQU0sV0FDOUNBLEVBQU0sUUFBUU47QUFBQSxNQUVsQjtBQUFBLElBQUEsR0FHV3RDLEVBQUEsRUFBRSxPQUFBeUQsR0FBTyxPQUFBYixFQUFBLENBQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQ2hEdkJ3QyxJQUFVMUYsRUFBUyxNQUFNdEIsRUFBTSxlQUFlQSxFQUFNLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJDWmhFaUgsSUFBU25ILEVBQUlFLEVBQU0sTUFBTSxHQUN6QmtILElBQXNCcEgsRUFBbUIsSUFBSSxHQUU3Q3FILElBQWMsQ0FBQ2YsTUFBaUI7QUFDcEMsTUFBQWEsRUFBTyxRQUFRLElBRUlHLEtBQ25CckQsRUFBSyxTQUFTcUMsQ0FBSztBQUFBLElBQUEsR0FHZmdCLElBQXFCLE1BQU07QUFDL0IsTUFBSUgsRUFBTyxTQUNUQyxFQUFvQixRQUFRLE9BQU8sU0FDMUIsU0FBQSxLQUFLLE1BQU0sV0FBVyxVQUMvQkEsRUFBb0IsU0FBUyxPQUFPLFNBQVMsR0FBR0EsRUFBb0IsS0FBSyxHQUV4REcsUUFFUixTQUFBLEtBQUssTUFBTSxXQUFXLElBRVhDO0lBQ3RCLEdBR0lDLElBQWdCLENBQUNuQixNQUF5QjtBQUMxQyxNQUFBQSxFQUFNLFFBQVEsYUFDaEJBLEVBQU0sZ0JBQWdCLEdBQ3RCZSxFQUFZZixDQUFLO0FBQUEsSUFDbkIsR0FHSWlCLElBQW1CLE1BQU07QUFDdEIsYUFBQSxpQkFBaUIsV0FBV0UsQ0FBYTtBQUFBLElBQUEsR0FHNUNELElBQXNCLE1BQU07QUFDekIsYUFBQSxvQkFBb0IsV0FBV0MsQ0FBYTtBQUFBLElBQUE7QUFHckQsV0FBQXhHLEdBQVUsTUFBTTtBQUNLLE1BQUFxRztJQUFBLENBQ3BCLEdBRURySDtBQUFBLE1BQ0UsTUFBTUMsRUFBTTtBQUFBLE1BQ1osQ0FBQ2tFLE1BQWE7QUFDWixRQUFBK0MsRUFBTyxRQUFRL0MsR0FDSWtEO01BQ3JCO0FBQUEsSUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJDNUNJSSxJQUFjMUgsRUFBSUUsRUFBTSxXQUFXLEdBRW5DeUgsSUFBb0JuRyxFQUFTLE1BQU0sSUFBSSxNQUFNdEIsRUFBTSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDMEgsR0FBT0MsTUFBVUEsSUFBUSxDQUFDLENBQUMsR0FFdkdDLElBQWMsQ0FBQ3hCLEdBQWN1QixNQUFrQjtBQUNuRCxNQUFBSCxFQUFZLFFBQVFHLEdBRWY1RCxFQUFBLFVBQVVxQyxHQUFPdUIsQ0FBSztBQUFBLElBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJDVnZCRSxJQUFZL0gsRUFBSUUsRUFBTSxnQkFBZ0IsR0FFdEM0SCxJQUFjLENBQUN4QixHQUFjdUIsTUFBa0I7QUFDbkQsTUFBQUUsRUFBVSxRQUFRRixHQUViNUQsRUFBQSxVQUFVcUMsR0FBT3VCLENBQUs7QUFBQSxJQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJDRHZCRyxJQUFXaEksRUFBSUUsRUFBTSxRQUFRLEdBRTdCNEgsSUFBYyxDQUFDeEIsTUFBaUI7QUFDaEMsTUFBQ3BHLEVBQU0sYUFDQThILEVBQUEsUUFBUSxDQUFDQSxFQUFTLE9BRXRCL0QsRUFBQSxVQUFVcUMsR0FBTzBCLEVBQVMsS0FBSztBQUFBLElBQ3RDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0VDM0JTQyxLQUFhO0FBQUEsRUFDeEIsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUNOLEdBRWFDLEtBQVE7QUFBQSxFQUNuQixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQ04sR0NSYUMsS0FBUztBQUFBLEVBQ3BCLFFBQVE3STtBQUFBLEVBQ1IsT0FBT007QUFBQSxFQUNQLE9BQU9DO0FBQ1QsR0FFYXVJLElBQWU7QUFBQSxFQUMxQixPQUFPO0FBQUEsRUFDUCxvQkFBb0I7QUFBQSxFQUNwQixZQUFZO0FBQUEsRUFDWixPQUNFO0FBQUEsRUFDRixpQkFBaUI7QUFBQSxFQUNqQixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQ1QsR0NoQmFDLEtBQW9CO0FBQUEsRUFDL0IsT0FBTztBQUFBLElBQ0wsV0FBVztBQUFBLElBQ1gsT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUNBLE9BQU87QUFBQSxFQUNQLElBQUk7QUFDTixHQ1RhQyxLQUFZO0FBQUEsRUFDdkIsb0JBQW9COUQsRUFBWTRELEVBQWEsa0JBQWtCO0FBQUEsRUFDL0QsYUFBYTVELEVBQVk0RCxFQUFhLFVBQVU7QUFBQSxFQUNoRCxPQUFPNUQsRUFBWTRELEVBQWEsS0FBSztBQUFBLEVBQ3JDLFFBQVE1RCxFQUFZNEQsRUFBYSxlQUFlO0FBQUEsRUFDaEQsT0FBTzVELEVBQVk0RCxFQUFhLEtBQUs7QUFDdkM7In0=
|