tide-design-system 2.0.5 → 2.0.7
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/dist/{IconAccountBalance-8d60a762.js → IconAccountBalance-06eb652e.js} +2 -2
- package/dist/{IconAdd-41987be0.js → IconAdd-55ceca8d.js} +2 -2
- package/dist/{IconAi-54c9f1f9.js → IconAi-fb273c7b.js} +2 -2
- package/dist/{IconAlignSpace-0dbce580.js → IconAlignSpace-9a4e57ef.js} +2 -2
- package/dist/{IconApplePay-0aac1e20.js → IconApplePay-4891e912.js} +2 -2
- package/dist/{IconArrowBack-942e8c4c.js → IconArrowBack-da935079.js} +2 -2
- package/dist/{IconArrowForward-4b5bcc17.js → IconArrowForward-3636bb09.js} +2 -2
- package/dist/{IconArrowRight-143abfe9.js → IconArrowRight-9aa4ad3c.js} +2 -2
- package/dist/{IconAssignment-28546363.js → IconAssignment-235293cf.js} +2 -2
- package/dist/{IconAwardStar-e260b61a.js → IconAwardStar-d8e874b8.js} +2 -2
- package/dist/{IconBookmark-2df361a1.js → IconBookmark-579af717.js} +2 -2
- package/dist/{IconCalendarMonth-1331bb2e.js → IconCalendarMonth-134fc1b7.js} +2 -2
- package/dist/{IconCall-bfb28d23.js → IconCall-89643189.js} +2 -2
- package/dist/{IconCheck-4f7c55bb.js → IconCheck-4cd8cfb3.js} +2 -2
- package/dist/{IconChevronLeft-111444b3.js → IconChevronLeft-e08cba3c.js} +2 -2
- package/dist/{IconChevronRight-f3e73764.js → IconChevronRight-a083acd4.js} +2 -2
- package/dist/{IconClear-7f6472ed.js → IconClear-fe4a746a.js} +2 -2
- package/dist/{IconClose-fe46270f.js → IconClose-5f428000.js} +2 -2
- package/dist/{IconCycle-1c670925.js → IconCycle-d0a27f53.js} +2 -2
- package/dist/{IconDelete-40861e3a.js → IconDelete-2f3e7f08.js} +2 -2
- package/dist/{IconDiamond-92bc3c14.js → IconDiamond-eec6dd38.js} +2 -2
- package/dist/{IconEdit-2ce79ec9.js → IconEdit-6de14bc7.js} +2 -2
- package/dist/{IconError-9d150afa.js → IconError-d0375661.js} +2 -2
- package/dist/{IconExpandContent-4611f59a.js → IconExpandContent-d19db336.js} +2 -2
- package/dist/{IconExpandLess-97dbbba2.js → IconExpandLess-2f67af25.js} +2 -2
- package/dist/{IconExpandMore-74cf7746.js → IconExpandMore-da40cea8.js} +2 -2
- package/dist/{IconFacebook-5177a43e.js → IconFacebook-9f2904bb.js} +2 -2
- package/dist/{IconFavorite-b8b2232b.js → IconFavorite-42adc438.js} +2 -2
- package/dist/{IconFavoriteFilled-a03c18b0.js → IconFavoriteFilled-0c034bb0.js} +2 -2
- package/dist/{IconFormatBold-fe01c0d0.js → IconFormatBold-25479a8d.js} +2 -2
- package/dist/{IconFormatItalic-2b3d0f32.js → IconFormatItalic-4900d91e.js} +2 -2
- package/dist/{IconFormatListBulleted-9f4f5f29.js → IconFormatListBulleted-0ab8ec7f.js} +2 -2
- package/dist/{IconForum-ad13c05f.js → IconForum-3d5a7675.js} +2 -2
- package/dist/{IconGoogle-1661c713.js → IconGoogle-bbc6e150.js} +2 -2
- package/dist/{IconGooglePay-c55f25e8.js → IconGooglePay-adeae60c.js} +2 -2
- package/dist/{IconGrid-1a6868d2.js → IconGrid-c538878f.js} +2 -2
- package/dist/{IconHelp-1d25fcc1.js → IconHelp-3b881a9b.js} +2 -2
- package/dist/{IconInfo-25020d15.js → IconInfo-4a163f85.js} +2 -2
- package/dist/{IconInsertText-a93ea55d.js → IconInsertText-1b1fe79c.js} +2 -2
- package/dist/{IconInstagram-393a91c5.js → IconInstagram-c70e56ba.js} +2 -2
- package/dist/{IconIosShare-10a2497c.js → IconIosShare-0af57d94.js} +2 -2
- package/dist/{IconLayout-b486c56c.js → IconLayout-39860564.js} +2 -2
- package/dist/{IconLinkedIn-ed3a304e.js → IconLinkedIn-c91068df.js} +2 -2
- package/dist/{IconLocalShipping-21673087.js → IconLocalShipping-67dcfdd7.js} +2 -2
- package/dist/{IconLock-c7d18ae6.js → IconLock-706a2485.js} +2 -2
- package/dist/{IconMail-3a6fb81c.js → IconMail-5daaba91.js} +2 -2
- package/dist/{IconMenu-27e0ea03.js → IconMenu-f93848c2.js} +2 -2
- package/dist/{IconMoreHoriz-97b1974a.js → IconMoreHoriz-c7b18bef.js} +2 -2
- package/dist/{IconNotifications-11566098.js → IconNotifications-9612e653.js} +2 -2
- package/dist/{IconOpenInNew-e89309cc.js → IconOpenInNew-1a365551.js} +2 -2
- package/dist/{IconPalette-7b39c00b.js → IconPalette-cd9b0a55.js} +2 -2
- package/dist/{IconPaypal-581e5de8.js → IconPaypal-f2b65986.js} +2 -2
- package/dist/{IconPerson-7b5fc958.js → IconPerson-cca15a20.js} +2 -2
- package/dist/{IconPhotoCamera-dd25e6de.js → IconPhotoCamera-db1a2525.js} +2 -2
- package/dist/{IconPinterest-f8569b8c.js → IconPinterest-f1f45db9.js} +2 -2
- package/dist/{IconPlayArrow-a7538942.js → IconPlayArrow-07887739.js} +2 -2
- package/dist/{IconRemove-c19ef592.js → IconRemove-b2783b95.js} +2 -2
- package/dist/{IconRoundedCorners-501a2efe.js → IconRoundedCorners-cd483708.js} +2 -2
- package/dist/{IconSearch-c2acd4ec.js → IconSearch-8ec692de.js} +2 -2
- package/dist/{IconSell-8a47939b.js → IconSell-ac2caa92.js} +2 -2
- package/dist/{IconShare-a8e26193.js → IconShare-18403586.js} +2 -2
- package/dist/{IconShoppingCart-78a14827.js → IconShoppingCart-725478d8.js} +2 -2
- package/dist/{IconSms-3a93e423.js → IconSms-0d712802.js} +2 -2
- package/dist/{IconStar-8c8f1bb4.js → IconStar-a87d7afd.js} +2 -2
- package/dist/{IconSwapVert-066694ed.js → IconSwapVert-da402a5a.js} +2 -2
- package/dist/{IconThreeDRotation-7823ddb5.js → IconThreeDRotation-255a2fdd.js} +2 -2
- package/dist/{IconTune-43f405a5.js → IconTune-7514244c.js} +2 -2
- package/dist/{IconTwitter-2bc0ee2b.js → IconTwitter-2117705e.js} +2 -2
- package/dist/{IconVideocam-7deb4ac7.js → IconVideocam-9b0daa99.js} +2 -2
- package/dist/{IconViewInAr-bf12af3e.js → IconViewInAr-3a507ad4.js} +2 -2
- package/dist/{IconVisibility-f6ca5bb6.js → IconVisibility-862dfc95.js} +2 -2
- package/dist/{IconWarning-7a1f76a9.js → IconWarning-e6564830.js} +2 -2
- package/dist/{IconYoutube-6e789d14.js → IconYoutube-46a81634.js} +2 -2
- package/dist/css/grid-layout.css +64 -0
- package/dist/css/main.css +1 -1
- package/dist/css/storybook.css +4 -0
- package/dist/css/utilities.css +3 -0
- package/dist/index-164651b2.js +2081 -0
- package/dist/style.css +1 -1
- package/dist/tide-design-system.js +1 -1
- package/dist/types/Orientation.ts +6 -0
- package/dist/types/Styles.ts +4 -0
- package/package.json +1 -3
- package/dist/css/page-layout.css +0 -53
- package/dist/index-1042d93b.js +0 -2055
package/dist/index-1042d93b.js
DELETED
|
@@ -1,2055 +0,0 @@
|
|
|
1
|
-
import { openBlock as l, createElementBlock as r, normalizeClass as i, unref as t, defineComponent as v, ref as A, watch as Q, defineAsyncComponent as ue, markRaw as Re, createBlock as S, resolveDynamicComponent as z, createCommentVNode as N, toDisplayString as L, onMounted as ee, createElementVNode as c, createVNode as G, renderSlot as X, withCtx as Z, computed as F, Fragment as $, renderList as j, createTextVNode as ce, onUnmounted as Oe, onUpdated as Ae, normalizeStyle as J, onBeforeUnmount as Ne, getCurrentInstance as te, withDirectives as se, vModelSelect as Le, withModifiers as Ee, vModelDynamic as pe, vModelText as ve, Teleport as Fe, Transition as _e, vShow as De } from "vue";
|
|
2
|
-
const e = {
|
|
3
|
-
ALIGN: {
|
|
4
|
-
X: {
|
|
5
|
-
CENTER: "tide-text-center",
|
|
6
|
-
LEFT: "tide-text-left",
|
|
7
|
-
RIGHT: "tide-text-right"
|
|
8
|
-
},
|
|
9
|
-
Y: {
|
|
10
|
-
MIDDLE: "tide-align-middle"
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
AXIS1: {
|
|
14
|
-
AROUND: "tide-axis1-around",
|
|
15
|
-
BETWEEN: "tide-axis1-between",
|
|
16
|
-
CENTER: "tide-axis1-center",
|
|
17
|
-
END: "tide-axis1-end",
|
|
18
|
-
START: "tide-axis1-start"
|
|
19
|
-
},
|
|
20
|
-
AXIS2: {
|
|
21
|
-
AROUND: "tide-axis2-around",
|
|
22
|
-
CENTER: "tide-axis2-center",
|
|
23
|
-
END: "tide-axis2-end",
|
|
24
|
-
START: "tide-axis2-start"
|
|
25
|
-
},
|
|
26
|
-
BG: {
|
|
27
|
-
ERROR: "tide-bg-error",
|
|
28
|
-
INFO: "tide-bg-info",
|
|
29
|
-
PRIMARY: "tide-bg-primary",
|
|
30
|
-
SECONDARY: "tide-bg-secondary",
|
|
31
|
-
SUCCESS: "tide-bg-success",
|
|
32
|
-
SURFACE: {
|
|
33
|
-
ACCENT: "tide-bg-surface-accent",
|
|
34
|
-
ACCENT_VARIANT: "tide-bg-surface-accent-variant",
|
|
35
|
-
BRAND: "tide-bg-surface-brand",
|
|
36
|
-
DEFAULT: "tide-bg-surface",
|
|
37
|
-
ERROR: "tide-bg-surface-error",
|
|
38
|
-
FLOATING: "tide-bg-surface-floating",
|
|
39
|
-
GRADIENT: "tide-bg-surface-gradient",
|
|
40
|
-
INFO: "tide-bg-surface-info",
|
|
41
|
-
SUCCESS: "tide-bg-surface-success",
|
|
42
|
-
VARIANT: "tide-bg-surface-variant",
|
|
43
|
-
WARNING: "tide-bg-surface-warning"
|
|
44
|
-
},
|
|
45
|
-
WARNING: "tide-bg-warning"
|
|
46
|
-
},
|
|
47
|
-
BORDER: {
|
|
48
|
-
BOTTOM: {
|
|
49
|
-
ONE: "tide-border-bottom-1",
|
|
50
|
-
TWO: "tide-border-bottom-2"
|
|
51
|
-
},
|
|
52
|
-
COLOR: {
|
|
53
|
-
DEFAULT: "tide-border",
|
|
54
|
-
FLOATING: "tide-border-floating",
|
|
55
|
-
HIGH: "tide-border-high",
|
|
56
|
-
LOW: "tide-border-low",
|
|
57
|
-
PRIMARY: "tide-border-primary"
|
|
58
|
-
},
|
|
59
|
-
FULL: {
|
|
60
|
-
ONE: "tide-border-1",
|
|
61
|
-
TWO: "tide-border-2"
|
|
62
|
-
},
|
|
63
|
-
LEFT: {
|
|
64
|
-
ONE: "tide-border-left-1",
|
|
65
|
-
TWO: "tide-border-left-2"
|
|
66
|
-
},
|
|
67
|
-
RADIUS: {
|
|
68
|
-
FULL: "tide-radius-full",
|
|
69
|
-
HALF: "tide-radius-1/2",
|
|
70
|
-
ONE: "tide-radius-1",
|
|
71
|
-
QUARTER: "tide-radius-1/4"
|
|
72
|
-
},
|
|
73
|
-
RIGHT: {
|
|
74
|
-
ONE: "tide-border-right-1",
|
|
75
|
-
TWO: "tide-border-right-2"
|
|
76
|
-
},
|
|
77
|
-
TOP: {
|
|
78
|
-
ONE: "tide-border-top-1",
|
|
79
|
-
TWO: "tide-border-top-2"
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
BOX_SIZING: {
|
|
83
|
-
BORDER_BOX: "tide-box-border",
|
|
84
|
-
CONTENT_BOX: "tide-box-content"
|
|
85
|
-
},
|
|
86
|
-
BREAK_WORD: {
|
|
87
|
-
ON: "tide-break-word"
|
|
88
|
-
},
|
|
89
|
-
CURSOR: {
|
|
90
|
-
NOT_ALLOWED: "tide-cursor-not-allowed",
|
|
91
|
-
POINTER: "tide-cursor-pointer",
|
|
92
|
-
TEXT: "tide-cursor-text"
|
|
93
|
-
},
|
|
94
|
-
DISPLAY: {
|
|
95
|
-
BLOCK: "tide-display-block",
|
|
96
|
-
CONTENTS: "tide-contents",
|
|
97
|
-
FLEX: "tide-display-flex",
|
|
98
|
-
GRID: "tide-display-grid",
|
|
99
|
-
INITIAL: "initial",
|
|
100
|
-
INLINE: "tide-display-inline",
|
|
101
|
-
INLINE_BLOCK: "tide-display-inline-block",
|
|
102
|
-
INLINE_FLEX: "tide-display-inline-flex",
|
|
103
|
-
NONE: "tide-display-none"
|
|
104
|
-
},
|
|
105
|
-
FLEX: {
|
|
106
|
-
DIRECTION: {
|
|
107
|
-
COLUMN: "tide-flex-column",
|
|
108
|
-
COLUMN_REVERSE: "tide-flex-column-reverse",
|
|
109
|
-
ROW: "tide-flex-row",
|
|
110
|
-
ROW_REVERSE: "tide-row-reverse"
|
|
111
|
-
},
|
|
112
|
-
GROW: {
|
|
113
|
-
OFF: "tide-grow-none",
|
|
114
|
-
ON: "tide-grow"
|
|
115
|
-
},
|
|
116
|
-
SHRINK: {
|
|
117
|
-
OFF: "tide-shrink-none",
|
|
118
|
-
ON: "tide-shrink"
|
|
119
|
-
},
|
|
120
|
-
WRAP: "tide-flex-wrap"
|
|
121
|
-
},
|
|
122
|
-
FONT: {
|
|
123
|
-
COLOR: {
|
|
124
|
-
PRIMARY: "tide-font-on-primary",
|
|
125
|
-
SECONDARY: "tide-font-on-secondary",
|
|
126
|
-
SURFACE: {
|
|
127
|
-
BRAND: "tide-font-on-surface-brand",
|
|
128
|
-
DEFAULT: "tide-font-on-surface",
|
|
129
|
-
INVERSE: "tide-font-on-surface-inverse",
|
|
130
|
-
VARIANT: "tide-font-on-surface-variant",
|
|
131
|
-
VARIANT_INVERSE: "tide-font-on-surface-variant-inverse"
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
SIZE: {
|
|
135
|
-
FOURTEEN: "tide-font-14",
|
|
136
|
-
SIXTEEN: "tide-font-16",
|
|
137
|
-
THIRTY_TWO: "tide-font-32",
|
|
138
|
-
TWELVE: "tide-font-12",
|
|
139
|
-
TWENTY: "tide-font-20",
|
|
140
|
-
TWENTY_FOUR: "tide-font-24"
|
|
141
|
-
},
|
|
142
|
-
WEIGHT: {
|
|
143
|
-
FIVE_HUNDRED: "tide-font-500",
|
|
144
|
-
FOUR_HUNDRED: "tide-font-400",
|
|
145
|
-
SEVEN_HUNDRED: "tide-font-700",
|
|
146
|
-
SIX_HUNDRED: "tide-font-600"
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
GAP: {
|
|
150
|
-
FOUR: "tide-gap-4",
|
|
151
|
-
HALF: "tide-gap-1/2",
|
|
152
|
-
ONE: "tide-gap-1",
|
|
153
|
-
QUARTER: "tide-gap-1/4",
|
|
154
|
-
TWO: "tide-gap-2"
|
|
155
|
-
},
|
|
156
|
-
HEIGHT: {
|
|
157
|
-
FULL: "tide-height-full"
|
|
158
|
-
},
|
|
159
|
-
LIST_BULLETS: {
|
|
160
|
-
OFF: "tide-list-none"
|
|
161
|
-
},
|
|
162
|
-
MARGIN: {
|
|
163
|
-
BOTTOM: {
|
|
164
|
-
FOUR: "tide-margin-bottom-4",
|
|
165
|
-
HALF: "tide-margin-bottom-1/2",
|
|
166
|
-
ONE: "tide-margin-bottom-1",
|
|
167
|
-
QUARTER: "tide-margin-bottom-1/4",
|
|
168
|
-
TWO: "tide-margin-bottom-2"
|
|
169
|
-
},
|
|
170
|
-
FULL: {
|
|
171
|
-
FOUR: "tide-margin-4",
|
|
172
|
-
HALF: "tide-margin-1/2",
|
|
173
|
-
ONE: "tide-margin-1",
|
|
174
|
-
QUARTER: "tide-margin-1/4",
|
|
175
|
-
TWO: "tide-margin-2"
|
|
176
|
-
},
|
|
177
|
-
LEFT: {
|
|
178
|
-
AUTO: "tide-margin-left-auto",
|
|
179
|
-
FOUR: "tide-margin-left-4",
|
|
180
|
-
HALF: "tide-margin-left-1/2",
|
|
181
|
-
ONE: "tide-margin-left-1",
|
|
182
|
-
QUARTER: "tide-margin-left-1/4",
|
|
183
|
-
TWO: "tide-margin-left-2"
|
|
184
|
-
},
|
|
185
|
-
RIGHT: {
|
|
186
|
-
AUTO: "tide-margin-right-auto",
|
|
187
|
-
FOUR: "tide-margin-right-4",
|
|
188
|
-
HALF: "tide-margin-right-1/2",
|
|
189
|
-
ONE: "tide-margin-right-1",
|
|
190
|
-
QUARTER: "tide-margin-right-1/4",
|
|
191
|
-
TWO: "tide-margin-right-2"
|
|
192
|
-
},
|
|
193
|
-
TOP: {
|
|
194
|
-
FOUR: "tide-margin-top-4",
|
|
195
|
-
HALF: "tide-margin-top-1/2",
|
|
196
|
-
ONE: "tide-margin-top-1",
|
|
197
|
-
QUARTER: "tide-margin-top-1/4",
|
|
198
|
-
TWO: "tide-margin-top-2"
|
|
199
|
-
},
|
|
200
|
-
X: {
|
|
201
|
-
AUTO: "tide-margin-x-auto",
|
|
202
|
-
FOUR: "tide-margin-x-4",
|
|
203
|
-
HALF: "tide-margin-x-1/2",
|
|
204
|
-
ONE: "tide-margin-x-1",
|
|
205
|
-
QUARTER: "tide-margin-x-1/4",
|
|
206
|
-
TWO: "tide-margin-x-2"
|
|
207
|
-
},
|
|
208
|
-
Y: {
|
|
209
|
-
FOUR: "tide-margin-y-4",
|
|
210
|
-
HALF: "tide-margin-y-1/2",
|
|
211
|
-
ONE: "tide-margin-y-1",
|
|
212
|
-
QUARTER: "tide-margin-y-1/4",
|
|
213
|
-
TWO: "tide-margin-y-2"
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
OBJECT: {
|
|
217
|
-
CENTER: "tide-object-center",
|
|
218
|
-
CONTAIN: "tide-object-contain",
|
|
219
|
-
COVER: "tide-object-cover",
|
|
220
|
-
SCALE_DOWN: "tide-object-scale-down"
|
|
221
|
-
},
|
|
222
|
-
OVERFLOW: {
|
|
223
|
-
X: {
|
|
224
|
-
AUTO: "tide-x-auto",
|
|
225
|
-
HIDDEN: "tide-x-hidden",
|
|
226
|
-
SCROLL: "tide-x-scroll"
|
|
227
|
-
},
|
|
228
|
-
XY: {
|
|
229
|
-
AUTO: "tide-xy-auto",
|
|
230
|
-
HIDDEN: "tide-xy-hidden"
|
|
231
|
-
},
|
|
232
|
-
Y: {
|
|
233
|
-
AUTO: "tide-y-auto",
|
|
234
|
-
HIDDEN: "tide-y-hidden"
|
|
235
|
-
}
|
|
236
|
-
},
|
|
237
|
-
PADDING: {
|
|
238
|
-
BOTTOM: {
|
|
239
|
-
FOUR: "tide-padding-bottom-4",
|
|
240
|
-
HALF: "tide-padding-bottom-1/2",
|
|
241
|
-
ONE: "tide-padding-bottom-1",
|
|
242
|
-
QUARTER: "tide-padding-bottom-1/4",
|
|
243
|
-
TWO: "tide-padding-bottom-2"
|
|
244
|
-
},
|
|
245
|
-
FULL: {
|
|
246
|
-
FOUR: "tide-padding-4",
|
|
247
|
-
HALF: "tide-padding-1/2",
|
|
248
|
-
ONE: "tide-padding-1",
|
|
249
|
-
QUARTER: "tide-padding-1/4",
|
|
250
|
-
TWO: "tide-padding-2"
|
|
251
|
-
},
|
|
252
|
-
LEFT: {
|
|
253
|
-
FOUR: "tide-padding-left-4",
|
|
254
|
-
HALF: "tide-padding-left-1/2",
|
|
255
|
-
ONE: "tide-padding-left-1",
|
|
256
|
-
QUARTER: "tide-padding-left-1/4",
|
|
257
|
-
TWO: "tide-padding-left-2"
|
|
258
|
-
},
|
|
259
|
-
RIGHT: {
|
|
260
|
-
FOUR: "tide-padding-right-4",
|
|
261
|
-
HALF: "tide-padding-right-1/2",
|
|
262
|
-
ONE: "tide-padding-right-1",
|
|
263
|
-
QUARTER: "tide-padding-right-1/4",
|
|
264
|
-
TWO: "tide-padding-right-2"
|
|
265
|
-
},
|
|
266
|
-
TOP: {
|
|
267
|
-
FOUR: "tide-padding-top-4",
|
|
268
|
-
HALF: "tide-padding-top-1/2",
|
|
269
|
-
ONE: "tide-padding-top-1",
|
|
270
|
-
QUARTER: "tide-padding-top-1/4",
|
|
271
|
-
TWO: "tide-padding-top-2"
|
|
272
|
-
},
|
|
273
|
-
X: {
|
|
274
|
-
FOUR: "tide-padding-x-4",
|
|
275
|
-
HALF: "tide-padding-x-1/2",
|
|
276
|
-
ONE: "tide-padding-x-1",
|
|
277
|
-
QUARTER: "tide-padding-x-1/4",
|
|
278
|
-
TWO: "tide-padding-x-2"
|
|
279
|
-
},
|
|
280
|
-
Y: {
|
|
281
|
-
FOUR: "tide-padding-y-4",
|
|
282
|
-
HALF: "tide-padding-y-1/2",
|
|
283
|
-
ONE: "tide-padding-y-1",
|
|
284
|
-
QUARTER: "tide-padding-y-1/4",
|
|
285
|
-
TWO: "tide-padding-y-2"
|
|
286
|
-
}
|
|
287
|
-
},
|
|
288
|
-
POINTER_EVENTS: {
|
|
289
|
-
OFF: "tide-pointer-events-none",
|
|
290
|
-
ON: "tide-pointer-events"
|
|
291
|
-
},
|
|
292
|
-
POSITION: {
|
|
293
|
-
ABSOLUTE: "tide-position-absolute",
|
|
294
|
-
FIXED: "tide-position-fixed",
|
|
295
|
-
RELATIVE: "tide-position-relative",
|
|
296
|
-
STICKY: "tide-sticky"
|
|
297
|
-
},
|
|
298
|
-
POSITIONING: {
|
|
299
|
-
BOTTOM_0: "tide-bottom-0",
|
|
300
|
-
LEFT_0: "tide-left-0",
|
|
301
|
-
RIGHT_0: "tide-right-0",
|
|
302
|
-
TOP_0: "tide-top-0"
|
|
303
|
-
},
|
|
304
|
-
SCROLLBAR: {
|
|
305
|
-
OFF: "tide-scrollbar-none"
|
|
306
|
-
},
|
|
307
|
-
SHADOW: {
|
|
308
|
-
BOTTOM: "tide-shadow-bottom",
|
|
309
|
-
TOP: "tide-shadow-top"
|
|
310
|
-
},
|
|
311
|
-
SNAP: {
|
|
312
|
-
ON: "tide-snap"
|
|
313
|
-
},
|
|
314
|
-
SNAP_ALIGN: {
|
|
315
|
-
START: "tide-snap-start"
|
|
316
|
-
},
|
|
317
|
-
TEXT_TRANSFORM: {
|
|
318
|
-
LOWER: "tide-text-transform-lower",
|
|
319
|
-
NONE: "tide-text-transform-none",
|
|
320
|
-
UPPER: "tide-text-transform-upper"
|
|
321
|
-
},
|
|
322
|
-
UNDERLINE: {
|
|
323
|
-
HOVER: "tide-underline-hover",
|
|
324
|
-
OFF: "tide-underline-none",
|
|
325
|
-
ON: "tide-underline"
|
|
326
|
-
},
|
|
327
|
-
VISIBILITY: {
|
|
328
|
-
OFF: "tide-visible-none",
|
|
329
|
-
ON: "tide-visible"
|
|
330
|
-
},
|
|
331
|
-
WHITESPACE_WRAP: {
|
|
332
|
-
OFF: "tide-whitespace-nowrap"
|
|
333
|
-
},
|
|
334
|
-
WIDTH: {
|
|
335
|
-
FULL: "tide-width-full",
|
|
336
|
-
MAX_FULL: "tide-max-width-full"
|
|
337
|
-
}
|
|
338
|
-
};
|
|
339
|
-
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.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_0, e.POSITIONING.RIGHT_0, e.POSITIONING.BOTTOM_0, e.POSITIONING.LEFT_0, e.BOX_SIZING.BORDER_BOX, e.BOX_SIZING.CONTENT_BOX, e.MARGIN.FULL.ONE, e.MARGIN.FULL.HALF, e.MARGIN.FULL.QUARTER, e.MARGIN.FULL.TWO, e.MARGIN.FULL.FOUR, e.MARGIN.Y.ONE, e.MARGIN.Y.HALF, e.MARGIN.Y.QUARTER, e.MARGIN.Y.TWO, e.MARGIN.Y.FOUR, e.MARGIN.TOP.ONE, e.MARGIN.TOP.HALF, e.MARGIN.TOP.QUARTER, e.MARGIN.TOP.TWO, e.MARGIN.TOP.FOUR, 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.ONE, e.MARGIN.RIGHT.HALF, e.MARGIN.RIGHT.QUARTER, e.MARGIN.RIGHT.TWO, e.MARGIN.RIGHT.FOUR, e.MARGIN.RIGHT.AUTO, e.MARGIN.BOTTOM.ONE, e.MARGIN.BOTTOM.HALF, e.MARGIN.BOTTOM.QUARTER, e.MARGIN.BOTTOM.TWO, e.MARGIN.BOTTOM.FOUR, 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.ONE, e.PADDING.FULL.HALF, e.PADDING.FULL.QUARTER, e.PADDING.FULL.TWO, e.PADDING.FULL.FOUR, e.PADDING.Y.ONE, e.PADDING.Y.HALF, e.PADDING.Y.QUARTER, e.PADDING.Y.TWO, e.PADDING.Y.FOUR, e.PADDING.TOP.ONE, e.PADDING.TOP.HALF, e.PADDING.TOP.QUARTER, e.PADDING.TOP.TWO, e.PADDING.TOP.FOUR, e.PADDING.X.ONE, e.PADDING.X.HALF, e.PADDING.X.QUARTER, e.PADDING.X.TWO, e.PADDING.X.FOUR, e.PADDING.RIGHT.ONE, e.PADDING.RIGHT.HALF, e.PADDING.RIGHT.QUARTER, e.PADDING.RIGHT.TWO, e.PADDING.RIGHT.FOUR, e.PADDING.BOTTOM.ONE, e.PADDING.BOTTOM.HALF, e.PADDING.BOTTOM.QUARTER, e.PADDING.BOTTOM.TWO, e.PADDING.BOTTOM.FOUR, 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.FULL, e.HEIGHT.FULL, e.ALIGN.Y.MIDDLE, e.BREAK_WORD, e.CURSOR.NOT_ALLOWED, e.CURSOR.POINTER, 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, e.UNDERLINE.HOVER, e.UNDERLINE.OFF, 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;
|
|
340
|
-
const de = {
|
|
341
|
-
__name: "TideDivider",
|
|
342
|
-
setup(n) {
|
|
343
|
-
return (s, a) => (l(), r("div", {
|
|
344
|
-
class: i([t(e).BORDER.COLOR.LOW, t(e).MARGIN.Y.HALF, t(e).BORDER.BOTTOM.ONE])
|
|
345
|
-
}, null, 2));
|
|
346
|
-
}
|
|
347
|
-
}, Se = (n, s) => {
|
|
348
|
-
const a = n[s];
|
|
349
|
-
return a ? typeof a == "function" ? a() : Promise.resolve(a) : new Promise((o, d) => {
|
|
350
|
-
(typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(d.bind(null, new Error("Unknown variable dynamic import: " + s)));
|
|
351
|
-
});
|
|
352
|
-
}, y = {
|
|
353
|
-
LARGE: "large",
|
|
354
|
-
SMALL: "small"
|
|
355
|
-
}, fe = (n) => n && typeof n == "string" ? n.replace(/([a-z]{1})([A-Z]{1})/g, "$1 $2").replace(/[\s_-]/g, " ").toLowerCase().split(" ").map((s) => s.slice(0, 1).toUpperCase() + s.slice(1)).join("") : n, Ue = ["data-icon"], me = /* @__PURE__ */ v({
|
|
356
|
-
__name: "TideIcon",
|
|
357
|
-
props: {
|
|
358
|
-
icon: {},
|
|
359
|
-
size: { default: y.SMALL }
|
|
360
|
-
},
|
|
361
|
-
setup(n) {
|
|
362
|
-
const s = n, a = A();
|
|
363
|
-
return Q(
|
|
364
|
-
() => s.icon,
|
|
365
|
-
() => {
|
|
366
|
-
const o = s.icon, d = fe(o), T = ue(() => Se(/* @__PURE__ */ Object.assign({ "../assets/svg/icons/IconAccountBalance.vue": () => import("./IconAccountBalance-8d60a762.js"), "../assets/svg/icons/IconAdd.vue": () => import("./IconAdd-41987be0.js"), "../assets/svg/icons/IconAi.vue": () => import("./IconAi-54c9f1f9.js"), "../assets/svg/icons/IconAlignSpace.vue": () => import("./IconAlignSpace-0dbce580.js"), "../assets/svg/icons/IconApplePay.vue": () => import("./IconApplePay-0aac1e20.js"), "../assets/svg/icons/IconArrowBack.vue": () => import("./IconArrowBack-942e8c4c.js"), "../assets/svg/icons/IconArrowForward.vue": () => import("./IconArrowForward-4b5bcc17.js"), "../assets/svg/icons/IconArrowRight.vue": () => import("./IconArrowRight-143abfe9.js"), "../assets/svg/icons/IconAssignment.vue": () => import("./IconAssignment-28546363.js"), "../assets/svg/icons/IconAwardStar.vue": () => import("./IconAwardStar-e260b61a.js"), "../assets/svg/icons/IconBookmark.vue": () => import("./IconBookmark-2df361a1.js"), "../assets/svg/icons/IconCalendarMonth.vue": () => import("./IconCalendarMonth-1331bb2e.js"), "../assets/svg/icons/IconCall.vue": () => import("./IconCall-bfb28d23.js"), "../assets/svg/icons/IconCheck.vue": () => import("./IconCheck-4f7c55bb.js"), "../assets/svg/icons/IconChevronLeft.vue": () => import("./IconChevronLeft-111444b3.js"), "../assets/svg/icons/IconChevronRight.vue": () => import("./IconChevronRight-f3e73764.js"), "../assets/svg/icons/IconClear.vue": () => import("./IconClear-7f6472ed.js"), "../assets/svg/icons/IconClose.vue": () => import("./IconClose-fe46270f.js"), "../assets/svg/icons/IconCycle.vue": () => import("./IconCycle-1c670925.js"), "../assets/svg/icons/IconDelete.vue": () => import("./IconDelete-40861e3a.js"), "../assets/svg/icons/IconDiamond.vue": () => import("./IconDiamond-92bc3c14.js"), "../assets/svg/icons/IconEdit.vue": () => import("./IconEdit-2ce79ec9.js"), "../assets/svg/icons/IconError.vue": () => import("./IconError-9d150afa.js"), "../assets/svg/icons/IconExpandContent.vue": () => import("./IconExpandContent-4611f59a.js"), "../assets/svg/icons/IconExpandLess.vue": () => import("./IconExpandLess-97dbbba2.js"), "../assets/svg/icons/IconExpandMore.vue": () => import("./IconExpandMore-74cf7746.js"), "../assets/svg/icons/IconFacebook.vue": () => import("./IconFacebook-5177a43e.js"), "../assets/svg/icons/IconFavorite.vue": () => import("./IconFavorite-b8b2232b.js"), "../assets/svg/icons/IconFavoriteFilled.vue": () => import("./IconFavoriteFilled-a03c18b0.js"), "../assets/svg/icons/IconFormatBold.vue": () => import("./IconFormatBold-fe01c0d0.js"), "../assets/svg/icons/IconFormatItalic.vue": () => import("./IconFormatItalic-2b3d0f32.js"), "../assets/svg/icons/IconFormatListBulleted.vue": () => import("./IconFormatListBulleted-9f4f5f29.js"), "../assets/svg/icons/IconForum.vue": () => import("./IconForum-ad13c05f.js"), "../assets/svg/icons/IconGoogle.vue": () => import("./IconGoogle-1661c713.js"), "../assets/svg/icons/IconGooglePay.vue": () => import("./IconGooglePay-c55f25e8.js"), "../assets/svg/icons/IconGrid.vue": () => import("./IconGrid-1a6868d2.js"), "../assets/svg/icons/IconHelp.vue": () => import("./IconHelp-1d25fcc1.js"), "../assets/svg/icons/IconInfo.vue": () => import("./IconInfo-25020d15.js"), "../assets/svg/icons/IconInsertText.vue": () => import("./IconInsertText-a93ea55d.js"), "../assets/svg/icons/IconInstagram.vue": () => import("./IconInstagram-393a91c5.js"), "../assets/svg/icons/IconIosShare.vue": () => import("./IconIosShare-10a2497c.js"), "../assets/svg/icons/IconLayout.vue": () => import("./IconLayout-b486c56c.js"), "../assets/svg/icons/IconLinkedIn.vue": () => import("./IconLinkedIn-ed3a304e.js"), "../assets/svg/icons/IconLocalShipping.vue": () => import("./IconLocalShipping-21673087.js"), "../assets/svg/icons/IconLock.vue": () => import("./IconLock-c7d18ae6.js"), "../assets/svg/icons/IconMail.vue": () => import("./IconMail-3a6fb81c.js"), "../assets/svg/icons/IconMenu.vue": () => import("./IconMenu-27e0ea03.js"), "../assets/svg/icons/IconMoreHoriz.vue": () => import("./IconMoreHoriz-97b1974a.js"), "../assets/svg/icons/IconNotifications.vue": () => import("./IconNotifications-11566098.js"), "../assets/svg/icons/IconOpenInNew.vue": () => import("./IconOpenInNew-e89309cc.js"), "../assets/svg/icons/IconPalette.vue": () => import("./IconPalette-7b39c00b.js"), "../assets/svg/icons/IconPaypal.vue": () => import("./IconPaypal-581e5de8.js"), "../assets/svg/icons/IconPerson.vue": () => import("./IconPerson-7b5fc958.js"), "../assets/svg/icons/IconPhotoCamera.vue": () => import("./IconPhotoCamera-dd25e6de.js"), "../assets/svg/icons/IconPinterest.vue": () => import("./IconPinterest-f8569b8c.js"), "../assets/svg/icons/IconPlayArrow.vue": () => import("./IconPlayArrow-a7538942.js"), "../assets/svg/icons/IconRemove.vue": () => import("./IconRemove-c19ef592.js"), "../assets/svg/icons/IconRoundedCorners.vue": () => import("./IconRoundedCorners-501a2efe.js"), "../assets/svg/icons/IconSearch.vue": () => import("./IconSearch-c2acd4ec.js"), "../assets/svg/icons/IconSell.vue": () => import("./IconSell-8a47939b.js"), "../assets/svg/icons/IconShare.vue": () => import("./IconShare-a8e26193.js"), "../assets/svg/icons/IconShoppingCart.vue": () => import("./IconShoppingCart-78a14827.js"), "../assets/svg/icons/IconSms.vue": () => import("./IconSms-3a93e423.js"), "../assets/svg/icons/IconStar.vue": () => import("./IconStar-8c8f1bb4.js"), "../assets/svg/icons/IconSwapVert.vue": () => import("./IconSwapVert-066694ed.js"), "../assets/svg/icons/IconThreeDRotation.vue": () => import("./IconThreeDRotation-7823ddb5.js"), "../assets/svg/icons/IconTune.vue": () => import("./IconTune-43f405a5.js"), "../assets/svg/icons/IconTwitter.vue": () => import("./IconTwitter-2bc0ee2b.js"), "../assets/svg/icons/IconVideocam.vue": () => import("./IconVideocam-7deb4ac7.js"), "../assets/svg/icons/IconViewInAr.vue": () => import("./IconViewInAr-bf12af3e.js"), "../assets/svg/icons/IconVisibility.vue": () => import("./IconVisibility-f6ca5bb6.js"), "../assets/svg/icons/IconWarning.vue": () => import("./IconWarning-7a1f76a9.js"), "../assets/svg/icons/IconYoutube.vue": () => import("./IconYoutube-6e789d14.js") }), `../assets/svg/icons/Icon${d}.vue`));
|
|
367
|
-
a.value = Re(T);
|
|
368
|
-
},
|
|
369
|
-
{ immediate: !0 }
|
|
370
|
-
), (o, d) => (l(), r("div", {
|
|
371
|
-
class: i(["tide-icon", s.size])
|
|
372
|
-
}, [
|
|
373
|
-
(l(), r("svg", {
|
|
374
|
-
class: i([t(e).DISPLAY.BLOCK]),
|
|
375
|
-
"data-icon": o.icon,
|
|
376
|
-
fill: "currentColor",
|
|
377
|
-
viewBox: "0 0 24 24",
|
|
378
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
379
|
-
}, [
|
|
380
|
-
a.value ? (l(), S(z(a.value), { key: 0 })) : N("", !0)
|
|
381
|
-
], 10, Ue))
|
|
382
|
-
], 2));
|
|
383
|
-
}
|
|
384
|
-
});
|
|
385
|
-
const C = (n, s) => {
|
|
386
|
-
const a = n.__vccOpts || n;
|
|
387
|
-
for (const [o, d] of s)
|
|
388
|
-
a[o] = d;
|
|
389
|
-
return a;
|
|
390
|
-
}, U = /* @__PURE__ */ C(me, [["__scopeId", "data-v-30daad21"]]), ge = /* @__PURE__ */ v({
|
|
391
|
-
__name: "TideIndicator",
|
|
392
|
-
props: {
|
|
393
|
-
label: { default: void 0 }
|
|
394
|
-
},
|
|
395
|
-
setup(n) {
|
|
396
|
-
const s = n;
|
|
397
|
-
return (a, o) => (l(), r("div", {
|
|
398
|
-
class: i([
|
|
399
|
-
s.label ? "tide-indicator-label" : "tide-indicator",
|
|
400
|
-
"border-white",
|
|
401
|
-
t(e).BG.SURFACE.ACCENT,
|
|
402
|
-
t(e).BORDER.FULL.ONE,
|
|
403
|
-
t(e).BORDER.RADIUS.FULL,
|
|
404
|
-
s.label ? [t(e).POSITION.RELATIVE, t(e).FONT.SIZE.TWELVE, t(e).FONT.WEIGHT.SEVEN_HUNDRED, t(e).FONT.COLOR.SURFACE.DEFAULT] : []
|
|
405
|
-
])
|
|
406
|
-
}, [
|
|
407
|
-
s.label ? (l(), r("div", {
|
|
408
|
-
key: 0,
|
|
409
|
-
class: i([
|
|
410
|
-
t(e).POSITION.ABSOLUTE,
|
|
411
|
-
t(e).POSITIONING.TOP_0,
|
|
412
|
-
t(e).DISPLAY.FLEX,
|
|
413
|
-
t(e).AXIS1.CENTER,
|
|
414
|
-
t(e).AXIS2.CENTER,
|
|
415
|
-
t(e).WIDTH.FULL,
|
|
416
|
-
t(e).HEIGHT.FULL
|
|
417
|
-
])
|
|
418
|
-
}, L(s.label), 3)) : N("", !0)
|
|
419
|
-
], 2));
|
|
420
|
-
}
|
|
421
|
-
});
|
|
422
|
-
const Ce = /* @__PURE__ */ C(ge, [["__scopeId", "data-v-b3905972"]]), _ = {
|
|
423
|
-
ACCOUNT_BALANCE: "account-balance",
|
|
424
|
-
ADD: "add",
|
|
425
|
-
AI: "ai",
|
|
426
|
-
ALIGN_SPACE: "align-space",
|
|
427
|
-
APPLE_PAY: "apple-pay",
|
|
428
|
-
ARROW_BACK: "arrow-back",
|
|
429
|
-
ARROW_FORWARD: "arrow-forward",
|
|
430
|
-
ARROW_RIGHT: "arrow-right",
|
|
431
|
-
ASSIGNMENT: "assignment",
|
|
432
|
-
AWARD_STAR: "award-star",
|
|
433
|
-
BOOKMARK: "bookmark",
|
|
434
|
-
CALENDAR_MONTH: "calendar-month",
|
|
435
|
-
CALL: "call",
|
|
436
|
-
CHECK: "check",
|
|
437
|
-
CHEVRON_LEFT: "chevron-left",
|
|
438
|
-
CHEVRON_RIGHT: "chevron-right",
|
|
439
|
-
CLEAR: "clear",
|
|
440
|
-
CLOSE: "close",
|
|
441
|
-
CYCLE: "cycle",
|
|
442
|
-
DELETE: "delete",
|
|
443
|
-
DIAMOND: "diamond",
|
|
444
|
-
EDIT: "edit",
|
|
445
|
-
ERROR: "error",
|
|
446
|
-
EXPAND_CONTENT: "expand-content",
|
|
447
|
-
EXPAND_LESS: "expand-less",
|
|
448
|
-
EXPAND_MORE: "expand-more",
|
|
449
|
-
FACEBOOK: "facebook",
|
|
450
|
-
FAVORITE: "favorite",
|
|
451
|
-
FAVORITE_FILLED: "favorite-filled",
|
|
452
|
-
FORMAT_BOLD: "format-bold",
|
|
453
|
-
FORMAT_ITALIC: "format-italic",
|
|
454
|
-
FORMAT_LIST_BULLETED: "format-list-bulleted",
|
|
455
|
-
FORUM: "forum",
|
|
456
|
-
GOOGLE: "google",
|
|
457
|
-
GOOGLE_PAY: "google-pay",
|
|
458
|
-
GRID: "grid",
|
|
459
|
-
HELP: "help",
|
|
460
|
-
INFO: "info",
|
|
461
|
-
INSERT_TEXT: "insert-text",
|
|
462
|
-
INSTAGRAM: "instagram",
|
|
463
|
-
IOS_SHARE: "ios-share",
|
|
464
|
-
LAYOUT: "layout",
|
|
465
|
-
LINKED_IN: "linked in",
|
|
466
|
-
LOCAL_SHIPPING: "local-shipping",
|
|
467
|
-
LOCK: "lock",
|
|
468
|
-
MAIL: "mail",
|
|
469
|
-
MENU: "menu",
|
|
470
|
-
MORE_HORIZ: "more-horiz",
|
|
471
|
-
NOTIFICATIONS: "notifications",
|
|
472
|
-
OPEN_IN_NEW: "open-in-new",
|
|
473
|
-
PALETTE: "palette",
|
|
474
|
-
PAYPAL: "paypal",
|
|
475
|
-
PERSON: "person",
|
|
476
|
-
PHOTO_CAMERA: "photo-camera",
|
|
477
|
-
PINTEREST: "pinterest",
|
|
478
|
-
PLAY_ARROW: "play-arrow",
|
|
479
|
-
REMOVE: "remove",
|
|
480
|
-
ROUNDED_CORNERS: "rounded-corners",
|
|
481
|
-
SEARCH: "search",
|
|
482
|
-
SELL: "sell",
|
|
483
|
-
SHARE: "share",
|
|
484
|
-
SHOPPING_CART: "shopping-cart",
|
|
485
|
-
SMS: "sms",
|
|
486
|
-
STAR: "star",
|
|
487
|
-
SWAP_VERT: "swap-vert",
|
|
488
|
-
THREE_D_ROTATION: "three-d-rotation",
|
|
489
|
-
TUNE: "tune",
|
|
490
|
-
TWITTER: "twitter",
|
|
491
|
-
VIDEOCAM: "videocam",
|
|
492
|
-
VIEW_IN_AR: "view-in-ar",
|
|
493
|
-
VISIBILITY: "visibility",
|
|
494
|
-
WARNING: "warning",
|
|
495
|
-
YOUTUBE: "youtube"
|
|
496
|
-
}, Pe = { class: "tide-accordion-item" }, Ge = /* @__PURE__ */ v({
|
|
497
|
-
__name: "TideAccordionItem",
|
|
498
|
-
props: {
|
|
499
|
-
hasBottomDivider: {
|
|
500
|
-
default: !1,
|
|
501
|
-
required: !1,
|
|
502
|
-
type: Boolean
|
|
503
|
-
},
|
|
504
|
-
hasTopDivider: {
|
|
505
|
-
default: !1,
|
|
506
|
-
required: !1,
|
|
507
|
-
type: Boolean
|
|
508
|
-
},
|
|
509
|
-
isActive: {
|
|
510
|
-
default: !1,
|
|
511
|
-
required: !1,
|
|
512
|
-
type: Boolean
|
|
513
|
-
},
|
|
514
|
-
isExpandedInitial: {
|
|
515
|
-
default: !1,
|
|
516
|
-
required: !1,
|
|
517
|
-
type: Boolean
|
|
518
|
-
},
|
|
519
|
-
isOptional: {
|
|
520
|
-
default: !1,
|
|
521
|
-
required: !1,
|
|
522
|
-
type: Boolean
|
|
523
|
-
},
|
|
524
|
-
label: {
|
|
525
|
-
default: "",
|
|
526
|
-
required: !0,
|
|
527
|
-
type: String
|
|
528
|
-
}
|
|
529
|
-
},
|
|
530
|
-
setup(n) {
|
|
531
|
-
const s = n, a = A(s.isExpandedInitial);
|
|
532
|
-
let o = A();
|
|
533
|
-
const d = () => {
|
|
534
|
-
const T = o.value;
|
|
535
|
-
a.value = !a.value, T.style.gridTemplateRows = a.value ? "1fr" : "0fr";
|
|
536
|
-
};
|
|
537
|
-
return ee(() => {
|
|
538
|
-
const T = o.value;
|
|
539
|
-
T.style.gridTemplateRows = a.value ? "1fr" : "0fr";
|
|
540
|
-
}), (T, I) => (l(), r("div", Pe, [
|
|
541
|
-
s.hasTopDivider ? (l(), S(de, { key: 0 })) : N("", !0),
|
|
542
|
-
c("div", {
|
|
543
|
-
class: i(["tide-accordion-head", t(e).DISPLAY.FLEX, t(e).AXIS1.BETWEEN, t(e).PADDING.Y.HALF, t(e).CURSOR.POINTER]),
|
|
544
|
-
onClick: d
|
|
545
|
-
}, [
|
|
546
|
-
c("div", {
|
|
547
|
-
class: i([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.HALF, t(e).FONT.WEIGHT.SEVEN_HUNDRED])
|
|
548
|
-
}, [
|
|
549
|
-
c("span", null, L(s.label), 1),
|
|
550
|
-
s.isOptional ? (l(), r("span", {
|
|
551
|
-
key: 0,
|
|
552
|
-
class: i([t(e).FONT.COLOR.SURFACE.VARIANT])
|
|
553
|
-
}, " (optional) ", 2)) : N("", !0),
|
|
554
|
-
s.isActive ? (l(), S(Ce, { key: 1 })) : N("", !0)
|
|
555
|
-
], 2),
|
|
556
|
-
G(U, {
|
|
557
|
-
icon: a.value ? t(_).EXPAND_LESS : t(_).EXPAND_MORE
|
|
558
|
-
}, null, 8, ["icon"])
|
|
559
|
-
], 2),
|
|
560
|
-
c("div", {
|
|
561
|
-
class: i(["tide-accordion-body", t(e).DISPLAY.GRID]),
|
|
562
|
-
ref_key: "accordionBody",
|
|
563
|
-
ref: o
|
|
564
|
-
}, [
|
|
565
|
-
c("div", {
|
|
566
|
-
class: i([t(e).OVERFLOW.Y.HIDDEN])
|
|
567
|
-
}, [
|
|
568
|
-
c("div", {
|
|
569
|
-
class: i([t(e).MARGIN.Y.ONE, t(e).FONT.WEIGHT.FOUR_HUNDRED, t(e).FONT.COLOR.SURFACE.DEFAULT])
|
|
570
|
-
}, [
|
|
571
|
-
X(T.$slots, "default", {}, void 0, !0)
|
|
572
|
-
], 2)
|
|
573
|
-
], 2)
|
|
574
|
-
], 2),
|
|
575
|
-
s.hasBottomDivider ? (l(), S(de, { key: 1 })) : N("", !0)
|
|
576
|
-
]));
|
|
577
|
-
}
|
|
578
|
-
});
|
|
579
|
-
const Dt = /* @__PURE__ */ C(Ge, [["__scopeId", "data-v-ad283103"]]), D = {
|
|
580
|
-
BUTTON: "button",
|
|
581
|
-
LINK: "a"
|
|
582
|
-
}, x = {
|
|
583
|
-
BUTTON: "button",
|
|
584
|
-
DIV: "div",
|
|
585
|
-
LINK: "a"
|
|
586
|
-
}, w = {
|
|
587
|
-
PRIMARY: "primary",
|
|
588
|
-
SECONDARY: "secondary",
|
|
589
|
-
TERTIARY: "tertiary",
|
|
590
|
-
QUATERNARY: "quaternary",
|
|
591
|
-
FLOATING: "floating"
|
|
592
|
-
}, W = {
|
|
593
|
-
BLANK: "_blank",
|
|
594
|
-
SELF: void 0
|
|
595
|
-
}, q = /* @__PURE__ */ v({
|
|
596
|
-
__name: "TideButtonIcon",
|
|
597
|
-
props: {
|
|
598
|
-
disabled: { type: Boolean, default: !1 },
|
|
599
|
-
element: { default: D.BUTTON },
|
|
600
|
-
href: { default: void 0 },
|
|
601
|
-
icon: { default: void 0 },
|
|
602
|
-
isNewTab: { type: Boolean, default: !1 },
|
|
603
|
-
priority: { default: w.PRIMARY }
|
|
604
|
-
},
|
|
605
|
-
setup(n) {
|
|
606
|
-
const s = n;
|
|
607
|
-
return (a, o) => (l(), S(z(s.element === t(D).LINK ? "a" : "button"), {
|
|
608
|
-
"aria-label": s.icon,
|
|
609
|
-
class: i([
|
|
610
|
-
s.element === t(D).LINK ? "tide-link-as-button-icon" : "tide-button-icon",
|
|
611
|
-
s.priority && s.priority,
|
|
612
|
-
[t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).BORDER.RADIUS.FULL, t(e).PADDING.FULL.HALF],
|
|
613
|
-
s.element === t(D).LINK ? [t(e).UNDERLINE.OFF] : ""
|
|
614
|
-
]),
|
|
615
|
-
disabled: s.element === t(D).BUTTON && s.disabled,
|
|
616
|
-
href: s.element === t(D).LINK && s.href ? s.href : void 0,
|
|
617
|
-
target: s.element === t(D).LINK && s.isNewTab ? t(W).BLANK : t(W).SELF
|
|
618
|
-
}, {
|
|
619
|
-
default: Z(() => [
|
|
620
|
-
s.icon ? (l(), S(U, {
|
|
621
|
-
key: 0,
|
|
622
|
-
icon: s.icon,
|
|
623
|
-
size: t(y).LARGE
|
|
624
|
-
}, null, 8, ["icon", "size"])) : N("", !0)
|
|
625
|
-
]),
|
|
626
|
-
_: 1
|
|
627
|
-
}, 8, ["aria-label", "class", "disabled", "href", "target"]));
|
|
628
|
-
}
|
|
629
|
-
}), H = {
|
|
630
|
-
ERROR: "error",
|
|
631
|
-
INFO: "info",
|
|
632
|
-
SUCCESS: "success",
|
|
633
|
-
WARNING: "warning"
|
|
634
|
-
}, he = /* @__PURE__ */ v({
|
|
635
|
-
__name: "TideAlert",
|
|
636
|
-
props: {
|
|
637
|
-
heading: { default: void 0 },
|
|
638
|
-
isToast: { type: Boolean, default: !1 },
|
|
639
|
-
type: { default: H.INFO }
|
|
640
|
-
},
|
|
641
|
-
setup(n) {
|
|
642
|
-
const s = n, a = F(() => {
|
|
643
|
-
let o = _.VIEW_IN_AR;
|
|
644
|
-
switch (s.type) {
|
|
645
|
-
case H.ERROR:
|
|
646
|
-
o = _.ERROR;
|
|
647
|
-
break;
|
|
648
|
-
default:
|
|
649
|
-
case H.INFO:
|
|
650
|
-
o = _.INFO;
|
|
651
|
-
break;
|
|
652
|
-
case H.SUCCESS:
|
|
653
|
-
o = _.CHECK;
|
|
654
|
-
break;
|
|
655
|
-
case H.WARNING:
|
|
656
|
-
o = _.WARNING;
|
|
657
|
-
break;
|
|
658
|
-
}
|
|
659
|
-
return o;
|
|
660
|
-
});
|
|
661
|
-
return (o, d) => (l(), r("div", {
|
|
662
|
-
class: i([
|
|
663
|
-
s.type,
|
|
664
|
-
"tide-alert",
|
|
665
|
-
t(e).DISPLAY.GRID,
|
|
666
|
-
t(e).BORDER.RADIUS.HALF,
|
|
667
|
-
t(e).PADDING.FULL.ONE,
|
|
668
|
-
s.type === t(H).ERROR && t(e).BG.SURFACE.ERROR,
|
|
669
|
-
s.type === t(H).INFO && t(e).BG.SURFACE.INFO,
|
|
670
|
-
s.type === t(H).SUCCESS && t(e).BG.SURFACE.SUCCESS,
|
|
671
|
-
s.type === t(H).WARNING && t(e).BG.SURFACE.WARNING,
|
|
672
|
-
s.isToast ? t(e).SHADOW.BOTTOM : ""
|
|
673
|
-
])
|
|
674
|
-
}, [
|
|
675
|
-
c("div", {
|
|
676
|
-
class: i(["tide-alert-icon", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER])
|
|
677
|
-
}, [
|
|
678
|
-
G(U, {
|
|
679
|
-
class: i([
|
|
680
|
-
s.type,
|
|
681
|
-
t(e).BORDER.RADIUS.FULL,
|
|
682
|
-
t(e).PADDING.FULL.HALF,
|
|
683
|
-
t(e).FONT.COLOR.SURFACE.INVERSE,
|
|
684
|
-
s.type === t(H).ERROR && t(e).BG.ERROR,
|
|
685
|
-
s.type === t(H).INFO && t(e).BG.INFO,
|
|
686
|
-
s.type === t(H).SUCCESS && t(e).BG.SUCCESS,
|
|
687
|
-
s.type === t(H).WARNING && t(e).BG.WARNING
|
|
688
|
-
]),
|
|
689
|
-
icon: a.value
|
|
690
|
-
}, null, 8, ["class", "icon"])
|
|
691
|
-
], 2),
|
|
692
|
-
c("div", {
|
|
693
|
-
class: i(["tide-alert-heading", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER])
|
|
694
|
-
}, [
|
|
695
|
-
c("h2", {
|
|
696
|
-
class: i([t(e).FONT.SIZE.SIXTEEN, t(e).FONT.WEIGHT.SIX_HUNDRED, t(e).FONT.COLOR.SURFACE.DEFAULT])
|
|
697
|
-
}, L(s.heading), 3)
|
|
698
|
-
], 2),
|
|
699
|
-
G(q, {
|
|
700
|
-
class: i(["tide-alert-close", t(e).AXIS2.CENTER, t(e).FONT.COLOR.SURFACE.DEFAULT]),
|
|
701
|
-
icon: t(_).CLOSE,
|
|
702
|
-
priority: t(w).QUATERNARY,
|
|
703
|
-
"aria-label": "Close alert"
|
|
704
|
-
}, null, 8, ["class", "icon", "priority"]),
|
|
705
|
-
c("div", {
|
|
706
|
-
class: i(["tide-alert-body", t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).FONT.COLOR.SURFACE.VARIANT])
|
|
707
|
-
}, [
|
|
708
|
-
X(o.$slots, "default", {}, void 0, !0)
|
|
709
|
-
], 2)
|
|
710
|
-
], 2));
|
|
711
|
-
}
|
|
712
|
-
});
|
|
713
|
-
const St = /* @__PURE__ */ C(he, [["__scopeId", "data-v-279a5605"]]), ft = /* @__PURE__ */ v({
|
|
714
|
-
__name: "TideBadge",
|
|
715
|
-
props: {
|
|
716
|
-
label: {}
|
|
717
|
-
},
|
|
718
|
-
setup(n) {
|
|
719
|
-
const s = n;
|
|
720
|
-
return (a, o) => (l(), r("div", {
|
|
721
|
-
class: i([
|
|
722
|
-
"tide-badge",
|
|
723
|
-
t(e).FONT.COLOR.SURFACE.DEFAULT,
|
|
724
|
-
t(e).BG.SURFACE.FLOATING,
|
|
725
|
-
t(e).DISPLAY.INLINE_FLEX,
|
|
726
|
-
t(e).AXIS2.CENTER,
|
|
727
|
-
t(e).GAP.QUARTER,
|
|
728
|
-
t(e).BORDER.RADIUS.QUARTER,
|
|
729
|
-
t(e).PADDING.Y.QUARTER,
|
|
730
|
-
t(e).PADDING.X.HALF,
|
|
731
|
-
t(e).FONT.SIZE.FOURTEEN
|
|
732
|
-
])
|
|
733
|
-
}, L(s.label), 3));
|
|
734
|
-
}
|
|
735
|
-
}), Ut = /* @__PURE__ */ v({
|
|
736
|
-
__name: "TideBadgePremium",
|
|
737
|
-
props: {
|
|
738
|
-
label: {}
|
|
739
|
-
},
|
|
740
|
-
setup(n) {
|
|
741
|
-
const s = n;
|
|
742
|
-
return (a, o) => (l(), r("div", {
|
|
743
|
-
class: i([
|
|
744
|
-
"tide-badge",
|
|
745
|
-
t(e).FONT.COLOR.SURFACE.DEFAULT,
|
|
746
|
-
t(e).BG.SURFACE.VARIANT,
|
|
747
|
-
t(e).DISPLAY.INLINE_FLEX,
|
|
748
|
-
t(e).GAP.QUARTER,
|
|
749
|
-
t(e).BORDER.RADIUS.QUARTER,
|
|
750
|
-
t(e).PADDING.Y.QUARTER,
|
|
751
|
-
t(e).PADDING.X.HALF,
|
|
752
|
-
t(e).FONT.SIZE.TWELVE
|
|
753
|
-
])
|
|
754
|
-
}, L(s.label), 3));
|
|
755
|
-
}
|
|
756
|
-
}), mt = {
|
|
757
|
-
JUST_LISTED: "Just listed",
|
|
758
|
-
NATIONWIDE: "Nationwide",
|
|
759
|
-
REDUCED: "Reduced",
|
|
760
|
-
UPDATED: "Updated"
|
|
761
|
-
}, gt = {
|
|
762
|
-
PREMIUM: "Premium",
|
|
763
|
-
PREMIUM_SELECT: "Premium SELECT"
|
|
764
|
-
}, be = {
|
|
765
|
-
YEARS_10: "10",
|
|
766
|
-
YEARS_15: "15",
|
|
767
|
-
YEARS_5: "5"
|
|
768
|
-
}, He = {
|
|
769
|
-
class: /* @__PURE__ */ i([])
|
|
770
|
-
}, Ct = /* @__PURE__ */ v({
|
|
771
|
-
__name: "TideBadgeTrustedPartner",
|
|
772
|
-
props: {
|
|
773
|
-
years: { default: be.YEARS_5 }
|
|
774
|
-
},
|
|
775
|
-
setup(n) {
|
|
776
|
-
const s = n;
|
|
777
|
-
return (a, o) => (l(), r("div", {
|
|
778
|
-
class: i([
|
|
779
|
-
"tide-badge-trusted-partner",
|
|
780
|
-
t(e).FONT.COLOR.SURFACE.BRAND,
|
|
781
|
-
t(e).DISPLAY.INLINE_FLEX,
|
|
782
|
-
t(e).AXIS2.CENTER,
|
|
783
|
-
t(e).GAP.QUARTER,
|
|
784
|
-
t(e).PADDING.Y.QUARTER,
|
|
785
|
-
t(e).PADDING.X.HALF,
|
|
786
|
-
t(e).FONT.SIZE.FOURTEEN
|
|
787
|
-
])
|
|
788
|
-
}, [
|
|
789
|
-
G(U, {
|
|
790
|
-
icon: t(_).VIEW_IN_AR
|
|
791
|
-
}, null, 8, ["icon"]),
|
|
792
|
-
c("div", He, [
|
|
793
|
-
c("span", null, L(s.years) + " year trusted partner", 1)
|
|
794
|
-
])
|
|
795
|
-
], 2));
|
|
796
|
-
}
|
|
797
|
-
}), ye = ["data-track", "href"], Be = ["data-track"], Xe = { key: 0 }, Pt = /* @__PURE__ */ v({
|
|
798
|
-
__name: "TideBreadCrumbs",
|
|
799
|
-
props: {
|
|
800
|
-
breadCrumbs: {
|
|
801
|
-
default: void 0,
|
|
802
|
-
required: !0,
|
|
803
|
-
type: Object
|
|
804
|
-
}
|
|
805
|
-
},
|
|
806
|
-
setup(n) {
|
|
807
|
-
const s = n;
|
|
808
|
-
return (a, o) => (l(), r("ul", {
|
|
809
|
-
class: i(["tide-bread-crumbs", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).LIST_BULLETS.OFF])
|
|
810
|
-
}, [
|
|
811
|
-
(l(!0), r($, null, j(s.breadCrumbs, (d, T) => (l(), r($, {
|
|
812
|
-
key: d.label
|
|
813
|
-
}, [
|
|
814
|
-
c("li", {
|
|
815
|
-
class: i([t(e).FONT.SIZE.FOURTEEN])
|
|
816
|
-
}, [
|
|
817
|
-
d.url ? (l(), r("a", {
|
|
818
|
-
key: 0,
|
|
819
|
-
class: i([t(e).FONT.WEIGHT.SEVEN_HUNDRED, t(e).FONT.COLOR.SURFACE.DEFAULT]),
|
|
820
|
-
"data-track": d.dataTrack || void 0,
|
|
821
|
-
href: d.url
|
|
822
|
-
}, L(d.label), 11, ye)) : (l(), r("span", {
|
|
823
|
-
key: 1,
|
|
824
|
-
class: i([t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).FONT.COLOR.SURFACE.VARIANT]),
|
|
825
|
-
"data-track": d.dataTrack || void 0
|
|
826
|
-
}, L(d.label), 11, Be))
|
|
827
|
-
], 2),
|
|
828
|
-
s.breadCrumbs && T < s.breadCrumbs.length - 1 ? (l(), r("li", Xe, [
|
|
829
|
-
G(U, {
|
|
830
|
-
icon: t(_).ARROW_RIGHT,
|
|
831
|
-
size: t(y).SMALL
|
|
832
|
-
}, null, 8, ["icon", "size"])
|
|
833
|
-
])) : N("", !0)
|
|
834
|
-
], 64))), 128))
|
|
835
|
-
], 2));
|
|
836
|
-
}
|
|
837
|
-
}), Gt = /* @__PURE__ */ v({
|
|
838
|
-
__name: "TideButton",
|
|
839
|
-
props: {
|
|
840
|
-
disabled: { type: Boolean, default: !1 },
|
|
841
|
-
element: { default: D.BUTTON },
|
|
842
|
-
href: { default: void 0 },
|
|
843
|
-
iconLeading: { default: void 0 },
|
|
844
|
-
iconTrailing: { default: void 0 },
|
|
845
|
-
isNewTab: { type: Boolean, default: !1 },
|
|
846
|
-
label: { default: void 0 },
|
|
847
|
-
priority: { default: w.PRIMARY }
|
|
848
|
-
},
|
|
849
|
-
setup(n) {
|
|
850
|
-
const s = n;
|
|
851
|
-
return (a, o) => (l(), S(z(s.element === t(D).LINK ? t(D).LINK : t(D).BUTTON), {
|
|
852
|
-
class: i([
|
|
853
|
-
s.element === t(D).LINK ? "tide-link-as-button" : "tide-button",
|
|
854
|
-
s.priority && s.priority,
|
|
855
|
-
s.element === t(D).LINK ? [t(e).DISPLAY.INLINE_FLEX] : [t(e).DISPLAY.FLEX],
|
|
856
|
-
[t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).GAP.HALF, t(e).BORDER.RADIUS.HALF],
|
|
857
|
-
s.element === t(D).LINK ? t(e).UNDERLINE.OFF : "",
|
|
858
|
-
t(e).PADDING.Y.ONE,
|
|
859
|
-
t(e).PADDING.X.TWO,
|
|
860
|
-
t(e).FONT.WEIGHT.SIX_HUNDRED
|
|
861
|
-
]),
|
|
862
|
-
disabled: s.element === t(D).BUTTON && s.disabled,
|
|
863
|
-
href: s.element === t(D).LINK && s.href ? s.href : void 0,
|
|
864
|
-
target: s.element === t(D).LINK && s.isNewTab ? t(W).BLANK : t(W).SELF
|
|
865
|
-
}, {
|
|
866
|
-
default: Z(() => [
|
|
867
|
-
s.iconLeading ? (l(), S(U, {
|
|
868
|
-
key: 0,
|
|
869
|
-
icon: s.iconLeading,
|
|
870
|
-
size: t(y).LARGE
|
|
871
|
-
}, null, 8, ["icon", "size"])) : N("", !0),
|
|
872
|
-
ce(" " + L(s.label) + " ", 1),
|
|
873
|
-
s.iconTrailing ? (l(), S(U, {
|
|
874
|
-
key: 1,
|
|
875
|
-
icon: s.iconTrailing,
|
|
876
|
-
size: t(y).LARGE
|
|
877
|
-
}, null, 8, ["icon", "size"])) : N("", !0)
|
|
878
|
-
]),
|
|
879
|
-
_: 1
|
|
880
|
-
}, 8, ["class", "disabled", "href", "target"]));
|
|
881
|
-
}
|
|
882
|
-
}), We = /* @__PURE__ */ v({
|
|
883
|
-
__name: "TideButtonPagination",
|
|
884
|
-
props: {
|
|
885
|
-
disabled: { type: Boolean, default: !1 },
|
|
886
|
-
element: { default: x.BUTTON },
|
|
887
|
-
href: { default: void 0 },
|
|
888
|
-
label: { default: void 0 }
|
|
889
|
-
},
|
|
890
|
-
setup(n) {
|
|
891
|
-
const s = n;
|
|
892
|
-
return (a, o) => (l(), S(z(
|
|
893
|
-
s.element === t(x).LINK ? "a" : s.element === t(x).BUTTON ? "button" : "div"
|
|
894
|
-
), {
|
|
895
|
-
class: i([
|
|
896
|
-
s.element === t(x).LINK ? "tide-link-as-button-icon" : "tide-button-icon",
|
|
897
|
-
[t(e).DISPLAY.INLINE_BLOCK, t(e).BORDER.RADIUS.FULL, t(e).PADDING.FULL.HALF],
|
|
898
|
-
s.element === t(x).LINK ? [t(e).UNDERLINE.OFF] : "",
|
|
899
|
-
s.element === t(x).DIV ? [t(e).CURSOR.POINTER] : "",
|
|
900
|
-
[t(e).FONT.WEIGHT.SEVEN_HUNDRED]
|
|
901
|
-
]),
|
|
902
|
-
disabled: s.element === t(x).BUTTON && s.disabled,
|
|
903
|
-
href: s.element === t(x).LINK && s.href ? s.href : void 0
|
|
904
|
-
}, {
|
|
905
|
-
default: Z(() => [
|
|
906
|
-
c("span", {
|
|
907
|
-
class: i(["label", t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER])
|
|
908
|
-
}, L(s.label), 3)
|
|
909
|
-
]),
|
|
910
|
-
_: 1
|
|
911
|
-
}, 8, ["class", "disabled", "href"]));
|
|
912
|
-
}
|
|
913
|
-
});
|
|
914
|
-
const Me = /* @__PURE__ */ C(We, [["__scopeId", "data-v-0710b4ab"]]), ht = /* @__PURE__ */ v({
|
|
915
|
-
__name: "TideCard",
|
|
916
|
-
setup(n) {
|
|
917
|
-
return (s, a) => (l(), r("div", {
|
|
918
|
-
class: i([
|
|
919
|
-
"tide-card",
|
|
920
|
-
t(e).HEIGHT.FULL,
|
|
921
|
-
t(e).BORDER.RADIUS.HALF,
|
|
922
|
-
t(e).BG.SURFACE.DEFAULT,
|
|
923
|
-
t(e).SHADOW.BOTTOM,
|
|
924
|
-
t(e).FONT.COLOR.SURFACE.DEFAULT,
|
|
925
|
-
t(e).SNAP_ALIGN.START
|
|
926
|
-
])
|
|
927
|
-
}, [
|
|
928
|
-
X(s.$slots, "default")
|
|
929
|
-
], 2));
|
|
930
|
-
}
|
|
931
|
-
}), re = 16, bt = /* @__PURE__ */ v({
|
|
932
|
-
__name: "TideCarousel",
|
|
933
|
-
props: {
|
|
934
|
-
isTouchscreen: { type: Boolean },
|
|
935
|
-
offsetX: { default: 0 }
|
|
936
|
-
},
|
|
937
|
-
emits: ["change"],
|
|
938
|
-
setup(n, { emit: s }) {
|
|
939
|
-
const a = n;
|
|
940
|
-
let o = A(), d = A(), T = A(), I = A();
|
|
941
|
-
const E = A(), O = A(), p = A(), u = A(0), g = () => {
|
|
942
|
-
const R = Array.from(E.value.children).map((P) => P.offsetLeft);
|
|
943
|
-
if (R.length === 0)
|
|
944
|
-
return;
|
|
945
|
-
const f = R.reduce((P, V) => Math.abs(V - O.value.scrollLeft) < Math.abs(P - O.value.scrollLeft) ? V : P);
|
|
946
|
-
u.value = R.indexOf(f);
|
|
947
|
-
}, h = () => {
|
|
948
|
-
o.value = E.value.scrollWidth, d.value = O.value.clientWidth, T.value = o.value > d.value, I.value = O.value.scrollWidth - O.value.clientWidth, p.value = T.value && !a.isTouchscreen, g();
|
|
949
|
-
}, M = () => {
|
|
950
|
-
h();
|
|
951
|
-
}, Y = (R) => {
|
|
952
|
-
O.value.scrollTo({
|
|
953
|
-
behavior: "smooth",
|
|
954
|
-
left: E.value.children[R].offsetLeft
|
|
955
|
-
});
|
|
956
|
-
}, k = () => {
|
|
957
|
-
const R = E.value.scrollWidth, f = O.value.scrollLeft + O.value.clientWidth;
|
|
958
|
-
if (f > R)
|
|
959
|
-
O.value.scrollTo({
|
|
960
|
-
behavior: "smooth",
|
|
961
|
-
left: R
|
|
962
|
-
});
|
|
963
|
-
else {
|
|
964
|
-
const P = a.offsetX && u.value === 0, ae = f === R ? 0 : P ? 2 : u.value + 1;
|
|
965
|
-
Y(ae);
|
|
966
|
-
}
|
|
967
|
-
}, b = () => {
|
|
968
|
-
const R = a.offsetX ? 1 : 0, f = u.value - 1 === R, V = u.value <= R ? E.value.children.length - 1 : f ? 0 : u.value - 1;
|
|
969
|
-
Y(V);
|
|
970
|
-
};
|
|
971
|
-
return window.addEventListener("resize", h), ee(() => {
|
|
972
|
-
h();
|
|
973
|
-
}), Oe(() => {
|
|
974
|
-
window.removeEventListener("resize", h);
|
|
975
|
-
}), Ae(() => {
|
|
976
|
-
h();
|
|
977
|
-
}), Q(u, () => {
|
|
978
|
-
s("change", u.value);
|
|
979
|
-
}), (R, f) => (l(), r("section", {
|
|
980
|
-
class: i(["tide-carousel", t(e).POSITION.RELATIVE, t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).WIDTH.FULL]),
|
|
981
|
-
ref: "carouselRef"
|
|
982
|
-
}, [
|
|
983
|
-
c("div", {
|
|
984
|
-
class: i([t(e).SCROLLBAR.OFF, t(e).SNAP.ON, t(e).OVERFLOW.X.SCROLL]),
|
|
985
|
-
ref_key: "frameRef",
|
|
986
|
-
ref: O,
|
|
987
|
-
onScroll: M
|
|
988
|
-
}, [
|
|
989
|
-
c("ul", {
|
|
990
|
-
class: i([a.isTouchscreen ? [t(e).OVERFLOW.X.AUTO] : "", t(e).DISPLAY.FLEX, t(e).GAP.ONE, t(e).LIST_BULLETS.OFF]),
|
|
991
|
-
ref_key: "contentRef",
|
|
992
|
-
ref: E
|
|
993
|
-
}, [
|
|
994
|
-
a.offsetX ? (l(), r("li", {
|
|
995
|
-
key: 0,
|
|
996
|
-
class: i([t(e).FLEX.SHRINK.OFF, t(e).SNAP_ALIGN.START]),
|
|
997
|
-
style: J({ width: `${a.offsetX - re}px` })
|
|
998
|
-
}, null, 6)) : N("", !0),
|
|
999
|
-
X(R.$slots, "default"),
|
|
1000
|
-
a.offsetX ? (l(), r("li", {
|
|
1001
|
-
key: 1,
|
|
1002
|
-
class: i([t(e).FLEX.SHRINK.OFF, t(e).SNAP_ALIGN.START]),
|
|
1003
|
-
style: J({ width: `${a.offsetX - re}px` })
|
|
1004
|
-
}, null, 6)) : N("", !0)
|
|
1005
|
-
], 2)
|
|
1006
|
-
], 34),
|
|
1007
|
-
p.value ? (l(), r("div", {
|
|
1008
|
-
key: 0,
|
|
1009
|
-
class: i([
|
|
1010
|
-
t(e).POSITION.ABSOLUTE,
|
|
1011
|
-
t(e).DISPLAY.FLEX,
|
|
1012
|
-
t(e).AXIS1.BETWEEN,
|
|
1013
|
-
t(e).AXIS2.CENTER,
|
|
1014
|
-
t(e).WIDTH.FULL,
|
|
1015
|
-
t(e).HEIGHT.FULL,
|
|
1016
|
-
t(e).POINTER_EVENTS.OFF
|
|
1017
|
-
])
|
|
1018
|
-
}, [
|
|
1019
|
-
G(q, {
|
|
1020
|
-
class: i([t(e).MARGIN.LEFT.ONE, t(e).POINTER_EVENTS.ON]),
|
|
1021
|
-
icon: t(_).CHEVRON_LEFT,
|
|
1022
|
-
priority: t(w).QUATERNARY,
|
|
1023
|
-
onClick: b
|
|
1024
|
-
}, null, 8, ["class", "icon", "priority"]),
|
|
1025
|
-
G(q, {
|
|
1026
|
-
class: i([t(e).MARGIN.RIGHT.ONE, t(e).POINTER_EVENTS.ON]),
|
|
1027
|
-
icon: t(_).CHEVRON_RIGHT,
|
|
1028
|
-
priority: t(w).QUATERNARY,
|
|
1029
|
-
onClick: k
|
|
1030
|
-
}, null, 8, ["class", "icon", "priority"])
|
|
1031
|
-
], 2)) : N("", !0)
|
|
1032
|
-
], 2));
|
|
1033
|
-
}
|
|
1034
|
-
}), Ye = ["href", "target"], ke = /* @__PURE__ */ v({
|
|
1035
|
-
__name: "TideChipAction",
|
|
1036
|
-
props: {
|
|
1037
|
-
href: {},
|
|
1038
|
-
isNewTab: { type: Boolean, default: !1 },
|
|
1039
|
-
label: {}
|
|
1040
|
-
},
|
|
1041
|
-
setup(n) {
|
|
1042
|
-
const s = n;
|
|
1043
|
-
return (a, o) => (l(), r("a", {
|
|
1044
|
-
class: i([
|
|
1045
|
-
"tide-chip-action",
|
|
1046
|
-
t(e).AXIS2.CENTER,
|
|
1047
|
-
t(e).GAP.HALF,
|
|
1048
|
-
t(e).BORDER.FULL.ONE,
|
|
1049
|
-
t(e).BORDER.RADIUS.FULL,
|
|
1050
|
-
t(e).PADDING.X.ONE,
|
|
1051
|
-
t(e).PADDING.Y.HALF,
|
|
1052
|
-
t(e).BG.SURFACE.DEFAULT,
|
|
1053
|
-
t(e).FONT.SIZE.FOURTEEN,
|
|
1054
|
-
t(e).FONT.WEIGHT.FIVE_HUNDRED,
|
|
1055
|
-
t(e).FONT.COLOR.SURFACE.DEFAULT,
|
|
1056
|
-
t(e).UNDERLINE.OFF
|
|
1057
|
-
]),
|
|
1058
|
-
href: s.href,
|
|
1059
|
-
target: s.isNewTab ? t(W).BLANK : t(W).SELF
|
|
1060
|
-
}, [
|
|
1061
|
-
G(U, {
|
|
1062
|
-
icon: t(_).SEARCH
|
|
1063
|
-
}, null, 8, ["icon"]),
|
|
1064
|
-
c("span", null, L(s.label), 1)
|
|
1065
|
-
], 10, Ye));
|
|
1066
|
-
}
|
|
1067
|
-
});
|
|
1068
|
-
const Ht = /* @__PURE__ */ C(ke, [["__scopeId", "data-v-99f83e8d"]]), Ve = /* @__PURE__ */ v({
|
|
1069
|
-
__name: "TideChipFilter",
|
|
1070
|
-
props: {
|
|
1071
|
-
isActive: { type: Boolean },
|
|
1072
|
-
label: {}
|
|
1073
|
-
},
|
|
1074
|
-
setup(n) {
|
|
1075
|
-
const s = n;
|
|
1076
|
-
return (a, o) => (l(), r("button", {
|
|
1077
|
-
class: i([
|
|
1078
|
-
"tide-chip-filter",
|
|
1079
|
-
s.isActive ? [t(e).BG.SECONDARY, t(e).FONT.COLOR.SECONDARY] : [t(e).BG.SURFACE.VARIANT, t(e).FONT.COLOR.SURFACE.DEFAULT],
|
|
1080
|
-
t(e).DISPLAY.FLEX,
|
|
1081
|
-
t(e).AXIS2.CENTER,
|
|
1082
|
-
t(e).GAP.HALF,
|
|
1083
|
-
t(e).BORDER.FULL.ONE,
|
|
1084
|
-
t(e).BORDER.RADIUS.FULL,
|
|
1085
|
-
t(e).PADDING.X.ONE,
|
|
1086
|
-
t(e).PADDING.Y.HALF,
|
|
1087
|
-
t(e).FONT.SIZE.FOURTEEN,
|
|
1088
|
-
t(e).FONT.WEIGHT.FIVE_HUNDRED,
|
|
1089
|
-
s.isActive ? "active" : ""
|
|
1090
|
-
])
|
|
1091
|
-
}, [
|
|
1092
|
-
X(a.$slots, "default", {}, void 0, !0),
|
|
1093
|
-
c("div", {
|
|
1094
|
-
class: i([t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).GAP.HALF])
|
|
1095
|
-
}, [
|
|
1096
|
-
c("span", {
|
|
1097
|
-
class: i([s.isActive ? "" : "icon-spacing", t(e).FONT.WEIGHT.FIVE_HUNDRED, t(e).WHITESPACE_WRAP.OFF])
|
|
1098
|
-
}, L(s.label), 3)
|
|
1099
|
-
], 2)
|
|
1100
|
-
], 2));
|
|
1101
|
-
}
|
|
1102
|
-
});
|
|
1103
|
-
const yt = /* @__PURE__ */ C(Ve, [["__scopeId", "data-v-c07faf14"]]), xe = /* @__PURE__ */ v({
|
|
1104
|
-
__name: "TideChipInput",
|
|
1105
|
-
props: {
|
|
1106
|
-
label: {}
|
|
1107
|
-
},
|
|
1108
|
-
setup(n) {
|
|
1109
|
-
const s = n;
|
|
1110
|
-
return (a, o) => (l(), r("button", {
|
|
1111
|
-
class: i([
|
|
1112
|
-
"tide-chip-input",
|
|
1113
|
-
t(e).BG.SURFACE.VARIANT,
|
|
1114
|
-
t(e).FONT.COLOR.SURFACE,
|
|
1115
|
-
t(e).DISPLAY.FLEX,
|
|
1116
|
-
t(e).AXIS2.CENTER,
|
|
1117
|
-
t(e).GAP.HALF,
|
|
1118
|
-
t(e).BORDER.FULL.ONE,
|
|
1119
|
-
t(e).BORDER.RADIUS.FULL,
|
|
1120
|
-
t(e).PADDING.X.ONE,
|
|
1121
|
-
t(e).PADDING.Y.HALF,
|
|
1122
|
-
t(e).FONT.SIZE.FOURTEEN,
|
|
1123
|
-
t(e).FONT.WEIGHT.FIVE_HUNDRED
|
|
1124
|
-
])
|
|
1125
|
-
}, [
|
|
1126
|
-
c("span", null, L(s.label), 1),
|
|
1127
|
-
G(U, {
|
|
1128
|
-
icon: t(_).CLOSE
|
|
1129
|
-
}, null, 8, ["icon"])
|
|
1130
|
-
], 2));
|
|
1131
|
-
}
|
|
1132
|
-
});
|
|
1133
|
-
const Bt = /* @__PURE__ */ C(xe, [["__scopeId", "data-v-62b9f1c0"]]), we = { class: "tide-columns" }, $e = { class: "tide-columns-column" }, Qe = { class: "tide-columns-column" }, Ke = { class: "tide-columns-column" }, qe = { class: "tide-columns-column" }, ze = /* @__PURE__ */ v({
|
|
1134
|
-
__name: "TideColumns",
|
|
1135
|
-
props: {
|
|
1136
|
-
heading: { default: "" }
|
|
1137
|
-
},
|
|
1138
|
-
setup(n) {
|
|
1139
|
-
const s = n;
|
|
1140
|
-
return (a, o) => (l(), r("section", we, [
|
|
1141
|
-
c("h2", {
|
|
1142
|
-
class: i([t(e).MARGIN.BOTTOM.HALF, t(e).FONT.SIZE.SIXTEEN])
|
|
1143
|
-
}, L(s.heading), 3),
|
|
1144
|
-
c("ul", {
|
|
1145
|
-
class: i([t(e).DISPLAY.FLEX, t(e).FLEX.WRAP, t(e).GAP.TWO, t(e).LIST_BULLETS.OFF])
|
|
1146
|
-
}, [
|
|
1147
|
-
c("li", $e, [
|
|
1148
|
-
X(a.$slots, "section1", {}, void 0, !0)
|
|
1149
|
-
]),
|
|
1150
|
-
c("li", Qe, [
|
|
1151
|
-
X(a.$slots, "section2", {}, void 0, !0)
|
|
1152
|
-
]),
|
|
1153
|
-
c("li", Ke, [
|
|
1154
|
-
X(a.$slots, "section3", {}, void 0, !0)
|
|
1155
|
-
]),
|
|
1156
|
-
c("li", qe, [
|
|
1157
|
-
X(a.$slots, "section4", {}, void 0, !0)
|
|
1158
|
-
])
|
|
1159
|
-
], 2)
|
|
1160
|
-
]));
|
|
1161
|
-
}
|
|
1162
|
-
});
|
|
1163
|
-
const Xt = /* @__PURE__ */ C(ze, [["__scopeId", "data-v-14ad0455"]]), Ze = ["alt", "src"], Wt = /* @__PURE__ */ v({
|
|
1164
|
-
__name: "TideImage",
|
|
1165
|
-
props: {
|
|
1166
|
-
alt: { default: "" },
|
|
1167
|
-
cdn: { default: void 0 },
|
|
1168
|
-
isLazy: { type: Boolean, default: !0 },
|
|
1169
|
-
offset: { default: 0 },
|
|
1170
|
-
src: { default: void 0 }
|
|
1171
|
-
},
|
|
1172
|
-
setup(n, { expose: s }) {
|
|
1173
|
-
const a = n, o = A(), d = `${a.cdn}/image-coming-soon-512.png`, T = () => {
|
|
1174
|
-
if (a.src) {
|
|
1175
|
-
const p = new Image();
|
|
1176
|
-
p.onload = E, p.onerror = I, p.src = a.src;
|
|
1177
|
-
}
|
|
1178
|
-
}, I = () => {
|
|
1179
|
-
o.value.src = d;
|
|
1180
|
-
}, E = () => {
|
|
1181
|
-
o.value.src = a.src;
|
|
1182
|
-
};
|
|
1183
|
-
s(o.value);
|
|
1184
|
-
const O = new IntersectionObserver((p, u) => {
|
|
1185
|
-
p.forEach(
|
|
1186
|
-
(g) => {
|
|
1187
|
-
g.isIntersecting && (T(), u.unobserve(g.target));
|
|
1188
|
-
},
|
|
1189
|
-
{
|
|
1190
|
-
rootMargin: `${a.offset}px`
|
|
1191
|
-
}
|
|
1192
|
-
);
|
|
1193
|
-
});
|
|
1194
|
-
return ee(() => {
|
|
1195
|
-
a.isLazy ? O.observe(o.value) : T();
|
|
1196
|
-
}), Ne(() => {
|
|
1197
|
-
O.unobserve(o.value);
|
|
1198
|
-
}), (p, u) => (l(), r("img", {
|
|
1199
|
-
alt: p.alt,
|
|
1200
|
-
class: i(["tide-image", t(e).OBJECT.CENTER, t(e).OBJECT.COVER]),
|
|
1201
|
-
ref_key: "tideImage",
|
|
1202
|
-
ref: o,
|
|
1203
|
-
src: p.isLazy && p.src ? p.src : d
|
|
1204
|
-
}, null, 10, Ze));
|
|
1205
|
-
}
|
|
1206
|
-
}), je = ["checked", "id"], Je = ["for"], et = /* @__PURE__ */ v({
|
|
1207
|
-
__name: "TideInputRadio",
|
|
1208
|
-
props: {
|
|
1209
|
-
checked: { type: Boolean, default: !1 },
|
|
1210
|
-
dataTrack: { default: "" },
|
|
1211
|
-
disabled: { type: Boolean, default: !1 },
|
|
1212
|
-
inputId: { default: void 0 },
|
|
1213
|
-
label: { default: void 0 },
|
|
1214
|
-
name: {}
|
|
1215
|
-
},
|
|
1216
|
-
setup(n) {
|
|
1217
|
-
const s = n, a = A(s.checked), o = F(() => {
|
|
1218
|
-
var d;
|
|
1219
|
-
return s.inputId ? s.inputId : `text-input-${((d = te()) == null ? void 0 : d.uid) || ""}`;
|
|
1220
|
-
});
|
|
1221
|
-
return Q(s, (d, T) => {
|
|
1222
|
-
(d.checked !== T.checked || d.checked !== a.value) && (a.value = s.checked);
|
|
1223
|
-
}), (d, T) => (l(), r("div", {
|
|
1224
|
-
class: i(["tide-input-radio", t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.HALF, s.disabled && "disabled"])
|
|
1225
|
-
}, [
|
|
1226
|
-
c("input", {
|
|
1227
|
-
checked: a.value,
|
|
1228
|
-
class: i([t(e).DISPLAY.NONE]),
|
|
1229
|
-
id: o.value,
|
|
1230
|
-
name: "",
|
|
1231
|
-
type: "radio",
|
|
1232
|
-
value: ""
|
|
1233
|
-
}, null, 10, je),
|
|
1234
|
-
c("div", {
|
|
1235
|
-
class: i([
|
|
1236
|
-
"tide-input-radio-custom",
|
|
1237
|
-
t(e).POSITION.RELATIVE,
|
|
1238
|
-
t(e).DISPLAY.FLEX,
|
|
1239
|
-
t(e).AXIS1.CENTER,
|
|
1240
|
-
t(e).AXIS2.CENTER,
|
|
1241
|
-
t(e).BORDER.FULL.ONE,
|
|
1242
|
-
a.value ? t(e).BORDER.COLOR.HIGH : t(e).BORDER.COLOR.DEFAULT,
|
|
1243
|
-
t(e).BORDER.RADIUS.FULL,
|
|
1244
|
-
a.value && "checked"
|
|
1245
|
-
])
|
|
1246
|
-
}, [
|
|
1247
|
-
c("div", {
|
|
1248
|
-
class: i(["tide-input-radio-check", t(e).BORDER.RADIUS.FULL, s.checked && t(e).BG.SECONDARY])
|
|
1249
|
-
}, null, 2)
|
|
1250
|
-
], 2),
|
|
1251
|
-
c("label", {
|
|
1252
|
-
class: i(t(e).FONT.WEIGHT.FOUR_HUNDRED),
|
|
1253
|
-
for: o.value
|
|
1254
|
-
}, L(s.label), 11, Je)
|
|
1255
|
-
], 2));
|
|
1256
|
-
}
|
|
1257
|
-
});
|
|
1258
|
-
const Mt = /* @__PURE__ */ C(et, [["__scopeId", "data-v-c820007d"]]), Te = "Please enter a valid value.", oe = (n, s) => typeof n == "string" && n.length > 0 ? n : typeof s == "string" && s.length > 0 ? s : Te, ne = (n, s) => n !== !1 || s !== !1, tt = ({ maxlength: n, minlength: s, value: a }) => {
|
|
1259
|
-
const o = n && a.length > n, d = s && a.length < s;
|
|
1260
|
-
return !o && !d;
|
|
1261
|
-
}, Ie = ({
|
|
1262
|
-
error: n,
|
|
1263
|
-
errorFromProps: s,
|
|
1264
|
-
maxlength: a,
|
|
1265
|
-
minlength: o,
|
|
1266
|
-
validators: d,
|
|
1267
|
-
value: T
|
|
1268
|
-
}) => {
|
|
1269
|
-
if (n.value = s || !1, !n.value && d) {
|
|
1270
|
-
const I = at(T.value, d);
|
|
1271
|
-
I.valid || (n.value = I.message);
|
|
1272
|
-
}
|
|
1273
|
-
if (!n.value && (a || o)) {
|
|
1274
|
-
const I = st({
|
|
1275
|
-
maxlength: a,
|
|
1276
|
-
minlength: o,
|
|
1277
|
-
value: T.value
|
|
1278
|
-
});
|
|
1279
|
-
I.valid || (n.value = I.message);
|
|
1280
|
-
}
|
|
1281
|
-
}, st = ({ maxlength: n, minlength: s, value: a }) => {
|
|
1282
|
-
const o = {
|
|
1283
|
-
message: "",
|
|
1284
|
-
valid: !0
|
|
1285
|
-
};
|
|
1286
|
-
return o.valid = tt({
|
|
1287
|
-
maxlength: n,
|
|
1288
|
-
minlength: s,
|
|
1289
|
-
value: a
|
|
1290
|
-
}), o.valid || (o.message = Te, n && s ? o.message = `Please enter a value between ${s} and ${n} characters in length.` : n ? o.message = `Please enter a value no more than ${n} characters in length.` : s && (o.message = `Please enter a value no less than ${s} characters in length.`)), o;
|
|
1291
|
-
};
|
|
1292
|
-
function at(n, s) {
|
|
1293
|
-
for (const a of s) {
|
|
1294
|
-
const o = a(n);
|
|
1295
|
-
if (!o.valid)
|
|
1296
|
-
return o;
|
|
1297
|
-
}
|
|
1298
|
-
return {
|
|
1299
|
-
message: "",
|
|
1300
|
-
valid: !0
|
|
1301
|
-
};
|
|
1302
|
-
}
|
|
1303
|
-
const it = ["for"], ot = ["disabled", "name", "required", "id"], nt = ["selected", "value"], lt = /* @__PURE__ */ v({
|
|
1304
|
-
__name: "TideInputSelect",
|
|
1305
|
-
props: {
|
|
1306
|
-
inputId: { default: void 0 },
|
|
1307
|
-
supportingText: { default: void 0 },
|
|
1308
|
-
options: {},
|
|
1309
|
-
disabled: { type: Boolean, default: !1 },
|
|
1310
|
-
error: { type: [String, Boolean], default: !1 },
|
|
1311
|
-
label: { default: void 0 },
|
|
1312
|
-
name: {},
|
|
1313
|
-
required: { type: Boolean, default: !1 },
|
|
1314
|
-
value: { default: "" }
|
|
1315
|
-
},
|
|
1316
|
-
setup(n, { expose: s }) {
|
|
1317
|
-
const a = n, o = A(a.error), d = A(!1), T = A(null), I = A(a.required), E = A(a.value), O = F(() => oe(a.error, o.value)), p = F(() => a.required ? `${a.label} *` : a.label), u = F(() => a.required && !E.value || ne(o.value, a.error)), g = F(() => d.value || !h.value), h = F(() => E.value === ""), M = F(() => {
|
|
1318
|
-
var R;
|
|
1319
|
-
return a.inputId ? a.inputId : `text-input-${((R = te()) == null ? void 0 : R.uid) || ""}`;
|
|
1320
|
-
}), Y = () => {
|
|
1321
|
-
var f;
|
|
1322
|
-
const R = new MouseEvent("mousedown");
|
|
1323
|
-
(f = T == null ? void 0 : T.value) == null || f.dispatchEvent(R);
|
|
1324
|
-
}, k = () => {
|
|
1325
|
-
d.value = !0;
|
|
1326
|
-
}, b = () => {
|
|
1327
|
-
d.value = !1;
|
|
1328
|
-
};
|
|
1329
|
-
return Q(a, (R, f) => {
|
|
1330
|
-
(R.value !== f.value || R.value !== E.value) && (E.value = a.value);
|
|
1331
|
-
}), s({ error: o, value: E }), (R, f) => (l(), r("div", {
|
|
1332
|
-
class: i([
|
|
1333
|
-
"tide-input-select",
|
|
1334
|
-
t(e).DISPLAY.FLEX,
|
|
1335
|
-
t(e).FLEX.DIRECTION.COLUMN,
|
|
1336
|
-
t(e).GAP.QUARTER,
|
|
1337
|
-
R.disabled && "disabled",
|
|
1338
|
-
u.value && "error"
|
|
1339
|
-
])
|
|
1340
|
-
}, [
|
|
1341
|
-
c("div", {
|
|
1342
|
-
class: i([
|
|
1343
|
-
"tide-input-border",
|
|
1344
|
-
t(e).POSITION.RELATIVE,
|
|
1345
|
-
t(e).DISPLAY.FLEX,
|
|
1346
|
-
t(e).AXIS2.CENTER,
|
|
1347
|
-
t(e).GAP.HALF,
|
|
1348
|
-
t(e).BORDER.RADIUS.HALF,
|
|
1349
|
-
a.disabled ? t(e).CURSOR.NOT_ALLOWED : "",
|
|
1350
|
-
t(e).OVERFLOW.XY.HIDDEN
|
|
1351
|
-
]),
|
|
1352
|
-
onClick: Y
|
|
1353
|
-
}, [
|
|
1354
|
-
c("div", {
|
|
1355
|
-
class: i([t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).WIDTH.FULL])
|
|
1356
|
-
}, [
|
|
1357
|
-
R.label ? (l(), r("label", {
|
|
1358
|
-
key: 0,
|
|
1359
|
-
class: i([
|
|
1360
|
-
g.value ? ["minilabel", t(e).FONT.SIZE.TWELVE] : t(e).FONT.SIZE.SIXTEEN,
|
|
1361
|
-
t(e).POSITION.ABSOLUTE,
|
|
1362
|
-
t(e).POSITIONING.LEFT_0,
|
|
1363
|
-
t(e).MARGIN.TOP.HALF,
|
|
1364
|
-
t(e).MARGIN.LEFT.ONE,
|
|
1365
|
-
!u.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1366
|
-
t(e).FONT.WEIGHT.FIVE_HUNDRED
|
|
1367
|
-
]),
|
|
1368
|
-
for: M.value
|
|
1369
|
-
}, L(p.value), 11, it)) : N("", !0),
|
|
1370
|
-
se(c("select", {
|
|
1371
|
-
class: i([t(e).PADDING.BOTTOM.HALF, t(e).PADDING.X.ONE, t(e).WIDTH.FULL, R.disabled && t(e).CURSOR.NOT_ALLOWED]),
|
|
1372
|
-
disabled: R.disabled,
|
|
1373
|
-
name: R.name,
|
|
1374
|
-
ref_key: "input",
|
|
1375
|
-
ref: T,
|
|
1376
|
-
required: I.value,
|
|
1377
|
-
onFocus: k,
|
|
1378
|
-
onFocusout: b,
|
|
1379
|
-
id: M.value,
|
|
1380
|
-
"onUpdate:modelValue": f[0] || (f[0] = (P) => E.value = P)
|
|
1381
|
-
}, [
|
|
1382
|
-
(l(!0), r($, null, j(R.options, (P) => (l(), r("option", {
|
|
1383
|
-
class: i([t(e).WIDTH.FULL, t(e).BG.SURFACE.DEFAULT]),
|
|
1384
|
-
key: P.value,
|
|
1385
|
-
selected: E.value === P.value ? !0 : void 0,
|
|
1386
|
-
value: P.value
|
|
1387
|
-
}, L(P.label), 11, nt))), 128))
|
|
1388
|
-
], 42, ot), [
|
|
1389
|
-
[Le, E.value]
|
|
1390
|
-
])
|
|
1391
|
-
], 2),
|
|
1392
|
-
G(U, {
|
|
1393
|
-
class: i([t(e).POSITION.ABSOLUTE, t(e).POSITIONING.RIGHT_0, t(e).MARGIN.RIGHT.ONE, t(e).POINTER_EVENTS.OFF]),
|
|
1394
|
-
icon: t(_).EXPAND_MORE,
|
|
1395
|
-
size: t(y).SMALL
|
|
1396
|
-
}, null, 8, ["class", "icon", "size"])
|
|
1397
|
-
], 2),
|
|
1398
|
-
a.supportingText || u.value ? (l(), r("div", {
|
|
1399
|
-
key: 0,
|
|
1400
|
-
class: i([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).MARGIN.LEFT.ONE])
|
|
1401
|
-
}, [
|
|
1402
|
-
u.value ? (l(), S(U, {
|
|
1403
|
-
key: 0,
|
|
1404
|
-
class: i([]),
|
|
1405
|
-
icon: t(_).ERROR,
|
|
1406
|
-
size: t(y).SMALL
|
|
1407
|
-
}, null, 8, ["icon", "size"])) : N("", !0),
|
|
1408
|
-
c("div", {
|
|
1409
|
-
class: i([t(e).FONT.SIZE.TWELVE, t(e).FONT.WEIGHT.FIVE_HUNDRED])
|
|
1410
|
-
}, L(u.value ? O.value : a.supportingText), 3)
|
|
1411
|
-
], 2)) : N("", !0)
|
|
1412
|
-
], 2));
|
|
1413
|
-
}
|
|
1414
|
-
});
|
|
1415
|
-
const Yt = /* @__PURE__ */ C(lt, [["__scopeId", "data-v-c500c562"]]), K = {
|
|
1416
|
-
DATE: "date",
|
|
1417
|
-
DATETIME_LOCAL: "datetime-local",
|
|
1418
|
-
EMAIL: "email",
|
|
1419
|
-
MONTH: "month",
|
|
1420
|
-
NUMBER: "number",
|
|
1421
|
-
PASSWORD: "password",
|
|
1422
|
-
SEARCH: "search",
|
|
1423
|
-
TEL: "tel",
|
|
1424
|
-
TEXT: "text",
|
|
1425
|
-
TIME: "time",
|
|
1426
|
-
URL: "url",
|
|
1427
|
-
WEEK: "week"
|
|
1428
|
-
}, dt = ["for"], rt = ["autocomplete", "data-track", "disabled", "maxlength", "minlength", "name", "required", "type", "id"], ct = /* @__PURE__ */ v({
|
|
1429
|
-
__name: "TideInputText",
|
|
1430
|
-
props: {
|
|
1431
|
-
autocomplete: { type: Boolean, default: !1 },
|
|
1432
|
-
dataTrack: { default: "" },
|
|
1433
|
-
disabled: { type: Boolean, default: !1 },
|
|
1434
|
-
error: { type: [String, Boolean], default: !1 },
|
|
1435
|
-
hasClear: { type: Boolean, default: !1 },
|
|
1436
|
-
iconLeading: { default: void 0 },
|
|
1437
|
-
inputId: { default: void 0 },
|
|
1438
|
-
label: { default: void 0 },
|
|
1439
|
-
maxlength: { default: void 0 },
|
|
1440
|
-
minlength: { default: void 0 },
|
|
1441
|
-
name: {},
|
|
1442
|
-
prefix: { default: void 0 },
|
|
1443
|
-
required: { type: Boolean, default: !1 },
|
|
1444
|
-
suffix: { default: void 0 },
|
|
1445
|
-
supportingText: { default: void 0 },
|
|
1446
|
-
transformValue: { type: Function, default: void 0 },
|
|
1447
|
-
type: { default: K.TEXT },
|
|
1448
|
-
validators: { default: void 0 },
|
|
1449
|
-
value: { default: "" }
|
|
1450
|
-
},
|
|
1451
|
-
setup(n, { expose: s }) {
|
|
1452
|
-
const a = n, o = A(a.error), d = A(!1), T = A(null), I = A(!1), E = A(a.value), O = F(() => oe(a.error, o.value)), p = F(() => a.required && a.label ? `${a.label} *` : a.label), u = F(() => a.hasClear && E.value), g = F(() => a.required && !E.value || ne(o.value, a.error)), h = F(() => d.value || !M.value), M = F(() => E.value === ""), Y = F(
|
|
1453
|
-
() => a.type === K.PASSWORD && I.value === !0 ? K.TEXT : a.type
|
|
1454
|
-
), k = F(() => {
|
|
1455
|
-
var m;
|
|
1456
|
-
return a.inputId ? a.inputId : `text-input-${((m = te()) == null ? void 0 : m.uid) || ""}`;
|
|
1457
|
-
}), b = () => {
|
|
1458
|
-
var m;
|
|
1459
|
-
E.value = "", (m = T.value) == null || m.focus();
|
|
1460
|
-
}, R = () => {
|
|
1461
|
-
d.value = !0;
|
|
1462
|
-
}, f = () => {
|
|
1463
|
-
d.value = !1, V();
|
|
1464
|
-
}, P = () => {
|
|
1465
|
-
var m;
|
|
1466
|
-
if (a.transformValue) {
|
|
1467
|
-
const B = ((m = E.value.match(/\d/g)) == null ? void 0 : m.join("")) || void 0;
|
|
1468
|
-
E.value = B ? a.transformValue(B) : "";
|
|
1469
|
-
}
|
|
1470
|
-
}, V = () => {
|
|
1471
|
-
Ie({
|
|
1472
|
-
error: o,
|
|
1473
|
-
errorFromProps: a.error,
|
|
1474
|
-
maxlength: a.maxlength,
|
|
1475
|
-
minlength: a.minlength,
|
|
1476
|
-
validators: a.validators,
|
|
1477
|
-
value: E
|
|
1478
|
-
});
|
|
1479
|
-
}, ae = (m) => {
|
|
1480
|
-
E.value = m;
|
|
1481
|
-
};
|
|
1482
|
-
return Q(
|
|
1483
|
-
a,
|
|
1484
|
-
(m, B) => {
|
|
1485
|
-
(m.value !== B.value || m.value !== E.value) && (E.value = a.value);
|
|
1486
|
-
},
|
|
1487
|
-
{ deep: !0 }
|
|
1488
|
-
), s({ error: o, updateValue: ae, value: E }), (m, B) => (l(), r("div", {
|
|
1489
|
-
class: i([
|
|
1490
|
-
"tide-input-text",
|
|
1491
|
-
t(e).DISPLAY.FLEX,
|
|
1492
|
-
t(e).FLEX.DIRECTION.COLUMN,
|
|
1493
|
-
t(e).GAP.QUARTER,
|
|
1494
|
-
m.disabled && "disabled",
|
|
1495
|
-
g.value && "error"
|
|
1496
|
-
])
|
|
1497
|
-
}, [
|
|
1498
|
-
c("div", {
|
|
1499
|
-
class: i([
|
|
1500
|
-
"tide-input-border",
|
|
1501
|
-
t(e).DISPLAY.FLEX,
|
|
1502
|
-
t(e).AXIS2.CENTER,
|
|
1503
|
-
t(e).GAP.HALF,
|
|
1504
|
-
t(e).POSITION.RELATIVE,
|
|
1505
|
-
t(e).BORDER.RADIUS.HALF,
|
|
1506
|
-
u.value ? [t(e).PADDING.RIGHT.HALF, t(e).PADDING.LEFT.ONE] : [t(e).PADDING.X.ONE],
|
|
1507
|
-
t(e).PADDING.Y.HALF,
|
|
1508
|
-
a.disabled ? t(e).CURSOR.NOT_ALLOWED : t(e).CURSOR.TEXT
|
|
1509
|
-
])
|
|
1510
|
-
}, [
|
|
1511
|
-
a.iconLeading ? (l(), S(U, {
|
|
1512
|
-
key: 0,
|
|
1513
|
-
icon: a.iconLeading,
|
|
1514
|
-
size: t(y).SMALL
|
|
1515
|
-
}, null, 8, ["icon", "size"])) : N("", !0),
|
|
1516
|
-
c("div", {
|
|
1517
|
-
class: i([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).WIDTH.FULL])
|
|
1518
|
-
}, [
|
|
1519
|
-
a.prefix ? (l(), r("div", {
|
|
1520
|
-
key: 0,
|
|
1521
|
-
class: i(["tide-input-text-prefix", !g.value && t(e).FONT.COLOR.SURFACE.VARIANT, h.value ? "" : "offset"])
|
|
1522
|
-
}, L(a.prefix), 3)) : N("", !0),
|
|
1523
|
-
c("div", {
|
|
1524
|
-
class: i([t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).WIDTH.FULL]),
|
|
1525
|
-
onClick: B[1] || (B[1] = Ee((ie) => {
|
|
1526
|
-
var le;
|
|
1527
|
-
return (le = T.value) == null ? void 0 : le.focus();
|
|
1528
|
-
}, ["prevent"]))
|
|
1529
|
-
}, [
|
|
1530
|
-
m.label ? (l(), r("label", {
|
|
1531
|
-
key: 0,
|
|
1532
|
-
class: i([
|
|
1533
|
-
h.value ? ["minilabel", t(e).FONT.SIZE.TWELVE] : t(e).FONT.SIZE.SIXTEEN,
|
|
1534
|
-
!g.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1535
|
-
t(e).FONT.WEIGHT.FIVE_HUNDRED,
|
|
1536
|
-
t(e).CURSOR.TEXT
|
|
1537
|
-
]),
|
|
1538
|
-
for: k.value
|
|
1539
|
-
}, L(p.value), 11, dt)) : N("", !0),
|
|
1540
|
-
se(c("input", {
|
|
1541
|
-
autocomplete: m.autocomplete ? "on" : "off",
|
|
1542
|
-
class: i([t(e).WIDTH.FULL, m.disabled && t(e).CURSOR.NOT_ALLOWED]),
|
|
1543
|
-
"data-track": a.dataTrack,
|
|
1544
|
-
disabled: a.disabled,
|
|
1545
|
-
maxlength: a.maxlength,
|
|
1546
|
-
minlength: a.minlength,
|
|
1547
|
-
name: a.name,
|
|
1548
|
-
ref_key: "input",
|
|
1549
|
-
ref: T,
|
|
1550
|
-
required: a.required,
|
|
1551
|
-
type: Y.value,
|
|
1552
|
-
onChange: V,
|
|
1553
|
-
onFocus: R,
|
|
1554
|
-
onFocusout: f,
|
|
1555
|
-
onInput: P,
|
|
1556
|
-
id: k.value,
|
|
1557
|
-
"onUpdate:modelValue": B[0] || (B[0] = (ie) => E.value = ie)
|
|
1558
|
-
}, null, 42, rt), [
|
|
1559
|
-
[pe, E.value]
|
|
1560
|
-
])
|
|
1561
|
-
], 2),
|
|
1562
|
-
a.suffix ? (l(), r("div", {
|
|
1563
|
-
key: 1,
|
|
1564
|
-
class: i(["tide-input-text-suffix", !g.value && t(e).FONT.COLOR.SURFACE.VARIANT, h.value ? "" : "offset"])
|
|
1565
|
-
}, L(a.suffix), 3)) : N("", !0)
|
|
1566
|
-
], 2),
|
|
1567
|
-
u.value && a.type !== t(K).PASSWORD ? (l(), S(U, {
|
|
1568
|
-
key: 1,
|
|
1569
|
-
class: i([t(e).PADDING.Y.HALF, t(e).PADDING.FULL.HALF, t(e).CURSOR.POINTER]),
|
|
1570
|
-
icon: t(_).CLOSE,
|
|
1571
|
-
size: t(y).SMALL,
|
|
1572
|
-
onClick: b
|
|
1573
|
-
}, null, 8, ["class", "icon", "size"])) : N("", !0),
|
|
1574
|
-
a.type === t(K).PASSWORD ? (l(), S(U, {
|
|
1575
|
-
key: 2,
|
|
1576
|
-
class: i([t(e).PADDING.Y.HALF, t(e).PADDING.FULL.HALF, t(e).CURSOR.POINTER]),
|
|
1577
|
-
icon: t(_).VISIBILITY,
|
|
1578
|
-
size: t(y).SMALL,
|
|
1579
|
-
onClick: B[2] || (B[2] = (ie) => I.value = !I.value)
|
|
1580
|
-
}, null, 8, ["class", "icon", "size"])) : N("", !0)
|
|
1581
|
-
], 2),
|
|
1582
|
-
a.supportingText || g.value ? (l(), r("div", {
|
|
1583
|
-
key: 0,
|
|
1584
|
-
class: i([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).MARGIN.LEFT.ONE])
|
|
1585
|
-
}, [
|
|
1586
|
-
g.value ? (l(), S(U, {
|
|
1587
|
-
key: 0,
|
|
1588
|
-
class: i([]),
|
|
1589
|
-
icon: t(_).ERROR,
|
|
1590
|
-
size: t(y).SMALL
|
|
1591
|
-
}, null, 8, ["icon", "size"])) : N("", !0),
|
|
1592
|
-
c("div", {
|
|
1593
|
-
class: i([t(e).FONT.SIZE.TWELVE, t(e).FONT.WEIGHT.FIVE_HUNDRED])
|
|
1594
|
-
}, L(g.value ? O.value : a.supportingText), 3)
|
|
1595
|
-
], 2)) : N("", !0)
|
|
1596
|
-
], 2));
|
|
1597
|
-
}
|
|
1598
|
-
});
|
|
1599
|
-
const kt = /* @__PURE__ */ C(ct, [["__scopeId", "data-v-b8328f68"]]), Et = ["for"], Tt = ["data-track", "maxlength", "minlength", "name", "required", "rows", "id"], It = /* @__PURE__ */ v({
|
|
1600
|
-
__name: "TideInputTextarea",
|
|
1601
|
-
props: {
|
|
1602
|
-
dataTrack: { default: "" },
|
|
1603
|
-
error: { type: [String, Boolean], default: !1 },
|
|
1604
|
-
inputId: { default: void 0 },
|
|
1605
|
-
label: { default: void 0 },
|
|
1606
|
-
maxlength: { default: void 0 },
|
|
1607
|
-
minlength: { default: void 0 },
|
|
1608
|
-
name: { default: void 0 },
|
|
1609
|
-
required: { type: Boolean, default: !1 },
|
|
1610
|
-
rows: { default: 8 },
|
|
1611
|
-
supportingText: { default: void 0 },
|
|
1612
|
-
value: { default: "" }
|
|
1613
|
-
},
|
|
1614
|
-
setup(n, { expose: s }) {
|
|
1615
|
-
const a = n, o = A(a.error), d = A(!1), T = A(null), I = A(a.value), E = F(() => oe(a.error, o.value)), O = F(() => a.required ? `${a.label} *` : a.label), p = F(() => a.required && !I.value || ne(o.value, a.error)), u = F(() => d.value || !g.value), g = F(() => I.value === ""), h = F(() => {
|
|
1616
|
-
var b;
|
|
1617
|
-
return a.inputId ? a.inputId : `text-input-${((b = te()) == null ? void 0 : b.uid) || ""}`;
|
|
1618
|
-
}), M = () => {
|
|
1619
|
-
d.value = !0;
|
|
1620
|
-
}, Y = () => {
|
|
1621
|
-
d.value = !1;
|
|
1622
|
-
}, k = () => Ie({
|
|
1623
|
-
error: o,
|
|
1624
|
-
errorFromProps: a.error,
|
|
1625
|
-
maxlength: a.maxlength,
|
|
1626
|
-
minlength: a.minlength,
|
|
1627
|
-
value: I
|
|
1628
|
-
});
|
|
1629
|
-
return Q(a, (b, R) => {
|
|
1630
|
-
(b.value !== R.value || b.value !== I.value) && (I.value = a.value);
|
|
1631
|
-
}), s({ error: o, value: I }), (b, R) => (l(), r("div", {
|
|
1632
|
-
class: i(["tide-input-textarea", t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).GAP.QUARTER, p.value && "error"])
|
|
1633
|
-
}, [
|
|
1634
|
-
c("div", {
|
|
1635
|
-
class: i([
|
|
1636
|
-
"tide-input-textarea-field",
|
|
1637
|
-
t(e).GAP.HALF,
|
|
1638
|
-
t(e).POSITION.RELATIVE,
|
|
1639
|
-
t(e).BORDER.RADIUS.HALF,
|
|
1640
|
-
t(e).PADDING.LEFT.ONE,
|
|
1641
|
-
t(e).PADDING.TOP.HALF,
|
|
1642
|
-
t(e).OVERFLOW.XY.HIDDEN
|
|
1643
|
-
])
|
|
1644
|
-
}, [
|
|
1645
|
-
b.label ? (l(), r("label", {
|
|
1646
|
-
key: 0,
|
|
1647
|
-
class: i([
|
|
1648
|
-
u.value ? ["minilabel", t(e).FONT.SIZE.TWELVE] : t(e).FONT.SIZE.SIXTEEN,
|
|
1649
|
-
!p.value && t(e).FONT.COLOR.SURFACE.VARIANT,
|
|
1650
|
-
t(e).FONT.WEIGHT.FIVE_HUNDRED,
|
|
1651
|
-
t(e).CURSOR.TEXT
|
|
1652
|
-
]),
|
|
1653
|
-
for: h.value,
|
|
1654
|
-
ref: "label"
|
|
1655
|
-
}, L(O.value), 11, Et)) : N("", !0),
|
|
1656
|
-
se(c("textarea", {
|
|
1657
|
-
class: i([t(e).WIDTH.FULL]),
|
|
1658
|
-
"data-track": a.dataTrack,
|
|
1659
|
-
maxlength: a.maxlength,
|
|
1660
|
-
minlength: a.minlength,
|
|
1661
|
-
name: a.name,
|
|
1662
|
-
ref_key: "input",
|
|
1663
|
-
ref: T,
|
|
1664
|
-
required: a.required,
|
|
1665
|
-
rows: a.rows,
|
|
1666
|
-
onChange: k,
|
|
1667
|
-
onFocus: M,
|
|
1668
|
-
onFocusout: Y,
|
|
1669
|
-
id: h.value,
|
|
1670
|
-
"onUpdate:modelValue": R[0] || (R[0] = (f) => I.value = f)
|
|
1671
|
-
}, null, 42, Tt), [
|
|
1672
|
-
[ve, I.value]
|
|
1673
|
-
])
|
|
1674
|
-
], 2),
|
|
1675
|
-
a.supportingText || p.value ? (l(), r("div", {
|
|
1676
|
-
key: 0,
|
|
1677
|
-
class: i([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).MARGIN.LEFT.ONE])
|
|
1678
|
-
}, [
|
|
1679
|
-
p.value ? (l(), S(U, {
|
|
1680
|
-
key: 0,
|
|
1681
|
-
icon: t(_).ERROR,
|
|
1682
|
-
size: t(y).SMALL
|
|
1683
|
-
}, null, 8, ["icon", "size"])) : N("", !0),
|
|
1684
|
-
c("div", {
|
|
1685
|
-
class: i([t(e).FONT.SIZE.TWELVE, t(e).FONT.WEIGHT.FIVE_HUNDRED])
|
|
1686
|
-
}, L(p.value ? E.value : a.supportingText), 3)
|
|
1687
|
-
], 2)) : N("", !0)
|
|
1688
|
-
], 2));
|
|
1689
|
-
}
|
|
1690
|
-
});
|
|
1691
|
-
const Vt = /* @__PURE__ */ C(It, [["__scopeId", "data-v-022c8af4"]]), xt = /* @__PURE__ */ v({
|
|
1692
|
-
__name: "TideLink",
|
|
1693
|
-
props: {
|
|
1694
|
-
element: { default: D.LINK },
|
|
1695
|
-
href: { default: void 0 },
|
|
1696
|
-
iconLeading: { default: void 0 },
|
|
1697
|
-
iconTrailing: { default: void 0 },
|
|
1698
|
-
isNewTab: { type: Boolean, default: !1 },
|
|
1699
|
-
label: { default: void 0 }
|
|
1700
|
-
},
|
|
1701
|
-
setup(n) {
|
|
1702
|
-
const s = n, a = F(() => s.iconLeading || s.iconTrailing);
|
|
1703
|
-
return (o, d) => (l(), S(z(s.element === t(D).LINK ? t(D).LINK : t(D).BUTTON), {
|
|
1704
|
-
class: i([
|
|
1705
|
-
s.element === t(D).LINK ? "tide-button-as-link" : "tide-link",
|
|
1706
|
-
a.value ? [t(e).DISPLAY.INLINE_FLEX, t(e).AXIS2.CENTER, t(e).GAP.HALF] : [t(e).FONT.WEIGHT.SEVEN_HUNDRED, t(e).UNDERLINE.ON]
|
|
1707
|
-
]),
|
|
1708
|
-
href: s.href,
|
|
1709
|
-
target: s.isNewTab ? t(W).BLANK : t(W).SELF
|
|
1710
|
-
}, {
|
|
1711
|
-
default: Z(() => [
|
|
1712
|
-
s.iconLeading ? (l(), S(U, {
|
|
1713
|
-
key: 0,
|
|
1714
|
-
icon: s.iconLeading
|
|
1715
|
-
}, null, 8, ["icon"])) : N("", !0),
|
|
1716
|
-
a.value ? (l(), r("div", {
|
|
1717
|
-
key: 1,
|
|
1718
|
-
class: i([t(e).FONT.WEIGHT.SEVEN_HUNDRED, t(e).UNDERLINE.ON])
|
|
1719
|
-
}, L(s.label), 3)) : (l(), r($, { key: 2 }, [
|
|
1720
|
-
ce(L(s.label), 1)
|
|
1721
|
-
], 64)),
|
|
1722
|
-
s.iconTrailing ? (l(), S(U, {
|
|
1723
|
-
key: 3,
|
|
1724
|
-
icon: s.iconTrailing
|
|
1725
|
-
}, null, 8, ["icon"])) : N("", !0)
|
|
1726
|
-
]),
|
|
1727
|
-
_: 1
|
|
1728
|
-
}, 8, ["class", "href", "target"]));
|
|
1729
|
-
}
|
|
1730
|
-
}), ut = ["onClick"], Rt = /* @__PURE__ */ v({
|
|
1731
|
-
__name: "TideModal",
|
|
1732
|
-
props: {
|
|
1733
|
-
isOpen: { type: Boolean },
|
|
1734
|
-
modalStyle: {},
|
|
1735
|
-
style: {},
|
|
1736
|
-
title: {},
|
|
1737
|
-
width: {}
|
|
1738
|
-
},
|
|
1739
|
-
emits: ["close"],
|
|
1740
|
-
setup(n, { emit: s }) {
|
|
1741
|
-
const a = n, o = A(a.isOpen), d = A(null), T = (u) => {
|
|
1742
|
-
o.value = !1, I(), s("close", u);
|
|
1743
|
-
}, I = () => {
|
|
1744
|
-
o.value ? (d.value = window.scrollY, document.body.style.overflow = "hidden", d.value && window.scrollTo(0, d.value), O()) : (document.body.style.overflow = "", p());
|
|
1745
|
-
}, E = (u) => {
|
|
1746
|
-
u.key === "Escape" && (u.stopPropagation(), T(u));
|
|
1747
|
-
}, O = () => {
|
|
1748
|
-
window.addEventListener("keydown", E);
|
|
1749
|
-
}, p = () => {
|
|
1750
|
-
window.removeEventListener("keydown", E);
|
|
1751
|
-
};
|
|
1752
|
-
return ee(() => {
|
|
1753
|
-
I();
|
|
1754
|
-
}), Q(a, (u) => {
|
|
1755
|
-
o.value = u.isOpen, I();
|
|
1756
|
-
}), (u, g) => (l(), S(Fe, { to: "body" }, [
|
|
1757
|
-
G(_e, null, {
|
|
1758
|
-
default: Z(() => [
|
|
1759
|
-
se(c("div", {
|
|
1760
|
-
class: i([
|
|
1761
|
-
"tide-modal-wrapper",
|
|
1762
|
-
t(e).POSITION.ABSOLUTE,
|
|
1763
|
-
t(e).DISPLAY.FLEX,
|
|
1764
|
-
t(e).AXIS1.CENTER,
|
|
1765
|
-
t(e).AXIS2.CENTER,
|
|
1766
|
-
t(e).POSITIONING.TOP_0,
|
|
1767
|
-
t(e).POSITIONING.LEFT_0,
|
|
1768
|
-
t(e).WIDTH.FULL,
|
|
1769
|
-
t(e).HEIGHT.FULL
|
|
1770
|
-
])
|
|
1771
|
-
}, [
|
|
1772
|
-
c("div", {
|
|
1773
|
-
class: i(["tide-modal-bg", t(e).POSITION.ABSOLUTE, t(e).WIDTH.FULL, t(e).HEIGHT.FULL]),
|
|
1774
|
-
style: J({ "--tide-modal-width": a.width, ...u.style }),
|
|
1775
|
-
onClick: Ee(T, ["self"])
|
|
1776
|
-
}, null, 14, ut),
|
|
1777
|
-
c("div", {
|
|
1778
|
-
class: i([
|
|
1779
|
-
"tide-modal",
|
|
1780
|
-
t(e).BG.SURFACE.FLOATING,
|
|
1781
|
-
t(e).FONT.COLOR.SURFACE.DEFAULT,
|
|
1782
|
-
t(e).POSITION.ABSOLUTE,
|
|
1783
|
-
t(e).DISPLAY.FLEX,
|
|
1784
|
-
t(e).FLEX.DIRECTION.COLUMN,
|
|
1785
|
-
t(e).BORDER.RADIUS.HALF,
|
|
1786
|
-
t(e).OVERFLOW.XY.HIDDEN
|
|
1787
|
-
]),
|
|
1788
|
-
style: J({ ...u.modalStyle })
|
|
1789
|
-
}, [
|
|
1790
|
-
c("header", {
|
|
1791
|
-
class: i(["modal-header", t(e).POSITION.RELATIVE, t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).PADDING.X.TWO])
|
|
1792
|
-
}, [
|
|
1793
|
-
u.title ? (l(), r("div", {
|
|
1794
|
-
key: 0,
|
|
1795
|
-
class: i([t(e).FLEX.GROW.ON, t(e).FONT.SIZE.TWENTY, t(e).ALIGN.X.CENTER, t(e).FONT.WEIGHT.SEVEN_HUNDRED])
|
|
1796
|
-
}, L(u.title), 3)) : N("", !0),
|
|
1797
|
-
c("button", {
|
|
1798
|
-
class: i([t(e).POSITION.ABSOLUTE, t(e).POSITIONING.RIGHT_0, t(e).MARGIN.RIGHT.TWO]),
|
|
1799
|
-
onClick: T,
|
|
1800
|
-
title: "Close"
|
|
1801
|
-
}, [
|
|
1802
|
-
G(U, {
|
|
1803
|
-
icon: t(_).CLOSE
|
|
1804
|
-
}, null, 8, ["icon"])
|
|
1805
|
-
], 2)
|
|
1806
|
-
], 2),
|
|
1807
|
-
c("div", {
|
|
1808
|
-
class: i(["model-content", t(e).OVERFLOW.Y.AUTO])
|
|
1809
|
-
}, [
|
|
1810
|
-
X(u.$slots, "default", {}, void 0, !0)
|
|
1811
|
-
], 2),
|
|
1812
|
-
u.$slots.footer ? (l(), r("footer", {
|
|
1813
|
-
key: 0,
|
|
1814
|
-
class: i([
|
|
1815
|
-
"tide-bg-surface",
|
|
1816
|
-
t(e).POSITION.STICKY,
|
|
1817
|
-
t(e).POSITIONING.LEFT_0,
|
|
1818
|
-
t(e).POSITIONING.BOTTOM_0,
|
|
1819
|
-
t(e).DISPLAY.FLEX,
|
|
1820
|
-
t(e).AXIS1.END,
|
|
1821
|
-
t(e).GAP.ONE,
|
|
1822
|
-
t(e).PADDING.X.TWO,
|
|
1823
|
-
t(e).PADDING.Y.HALF
|
|
1824
|
-
])
|
|
1825
|
-
}, [
|
|
1826
|
-
X(u.$slots, "footer", {}, void 0, !0)
|
|
1827
|
-
], 2)) : N("", !0)
|
|
1828
|
-
], 6)
|
|
1829
|
-
], 2), [
|
|
1830
|
-
[De, o.value]
|
|
1831
|
-
])
|
|
1832
|
-
]),
|
|
1833
|
-
_: 3
|
|
1834
|
-
})
|
|
1835
|
-
]));
|
|
1836
|
-
}
|
|
1837
|
-
});
|
|
1838
|
-
const wt = /* @__PURE__ */ C(Rt, [["__scopeId", "data-v-44481316"]]), $t = /* @__PURE__ */ v({
|
|
1839
|
-
__name: "TidePagination",
|
|
1840
|
-
props: {
|
|
1841
|
-
pageCurrent: { default: 1 },
|
|
1842
|
-
pageTotal: { default: 1 }
|
|
1843
|
-
},
|
|
1844
|
-
emits: ["change"],
|
|
1845
|
-
setup(n, { emit: s }) {
|
|
1846
|
-
const a = n, o = A(a.pageCurrent), d = F(() => new Array(a.pageTotal).fill("").map((I, E) => E + 1)), T = (I, E) => {
|
|
1847
|
-
o.value = E, s("change", I, E);
|
|
1848
|
-
};
|
|
1849
|
-
return (I, E) => (l(), r("section", {
|
|
1850
|
-
class: i(["tide-pagination", t(e).DISPLAY.FLEX, t(e).AXIS1.CENTER, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).WIDTH.FULL])
|
|
1851
|
-
}, [
|
|
1852
|
-
G(q, {
|
|
1853
|
-
disabled: o.value === 1,
|
|
1854
|
-
icon: t(_).CHEVRON_LEFT,
|
|
1855
|
-
priority: t(w).QUATERNARY,
|
|
1856
|
-
onClick: E[0] || (E[0] = (O) => T(O, o.value - 1))
|
|
1857
|
-
}, null, 8, ["disabled", "icon", "priority"]),
|
|
1858
|
-
c("ul", {
|
|
1859
|
-
class: i([t(e).DISPLAY.FLEX, t(e).AXIS2.CENTER, t(e).GAP.QUARTER, t(e).LIST_BULLETS.OFF])
|
|
1860
|
-
}, [
|
|
1861
|
-
(l(!0), r($, null, j(d.value, (O) => (l(), r("li", { key: O }, [
|
|
1862
|
-
G(Me, {
|
|
1863
|
-
disabled: o.value === O,
|
|
1864
|
-
label: O,
|
|
1865
|
-
priority: t(w).QUATERNARY,
|
|
1866
|
-
onClick: (p) => T(p, O)
|
|
1867
|
-
}, null, 8, ["disabled", "label", "priority", "onClick"])
|
|
1868
|
-
]))), 128))
|
|
1869
|
-
], 2),
|
|
1870
|
-
G(q, {
|
|
1871
|
-
disabled: o.value === d.value[d.value.length - 1],
|
|
1872
|
-
icon: t(_).CHEVRON_RIGHT,
|
|
1873
|
-
priority: t(w).QUATERNARY,
|
|
1874
|
-
onClick: E[1] || (E[1] = (O) => T(O, o.value + 1))
|
|
1875
|
-
}, null, 8, ["disabled", "icon", "priority"])
|
|
1876
|
-
], 2));
|
|
1877
|
-
}
|
|
1878
|
-
}), Ot = { class: "tide-seo-links" }, At = ["href", "target"], Nt = /* @__PURE__ */ v({
|
|
1879
|
-
__name: "TideSeoLinks",
|
|
1880
|
-
props: {
|
|
1881
|
-
heading: { default: "" },
|
|
1882
|
-
links: {}
|
|
1883
|
-
},
|
|
1884
|
-
setup(n) {
|
|
1885
|
-
const s = n;
|
|
1886
|
-
return (a, o) => (l(), r("section", Ot, [
|
|
1887
|
-
c("h2", {
|
|
1888
|
-
class: i([t(e).MARGIN.BOTTOM.HALF, t(e).FONT.SIZE.SIXTEEN])
|
|
1889
|
-
}, L(s.heading), 3),
|
|
1890
|
-
c("ul", {
|
|
1891
|
-
class: i([t(e).DISPLAY.FLEX, t(e).FLEX.WRAP, t(e).GAP.TWO, t(e).LIST_BULLETS.OFF])
|
|
1892
|
-
}, [
|
|
1893
|
-
(l(!0), r($, null, j(s.links, (d) => (l(), r("li", {
|
|
1894
|
-
class: i(["tide-seo-link", t(e).DISPLAY.FLEX, t(e).FLEX.DIRECTION.COLUMN, t(e).GAP.QUARTER, t(e).FONT.SIZE.FOURTEEN]),
|
|
1895
|
-
key: d.label
|
|
1896
|
-
}, [
|
|
1897
|
-
c("a", {
|
|
1898
|
-
class: i([t(e).UNDERLINE.OFF]),
|
|
1899
|
-
href: d.url,
|
|
1900
|
-
target: d.isNewTab ? t(W).BLANK : t(W).SELF
|
|
1901
|
-
}, L(d.label), 11, At)
|
|
1902
|
-
], 2))), 128))
|
|
1903
|
-
], 2)
|
|
1904
|
-
]));
|
|
1905
|
-
}
|
|
1906
|
-
});
|
|
1907
|
-
const Qt = /* @__PURE__ */ C(Nt, [["__scopeId", "data-v-d62373f1"]]), Lt = ["data-track", "onClick"], pt = /* @__PURE__ */ v({
|
|
1908
|
-
__name: "TideTabs",
|
|
1909
|
-
props: {
|
|
1910
|
-
activeTabInitial: { default: 0 },
|
|
1911
|
-
tabs: {}
|
|
1912
|
-
},
|
|
1913
|
-
emits: ["change"],
|
|
1914
|
-
setup(n, { emit: s }) {
|
|
1915
|
-
const a = n, o = A(a.activeTabInitial), d = (T, I) => {
|
|
1916
|
-
o.value = I, s("change", T, I);
|
|
1917
|
-
};
|
|
1918
|
-
return (T, I) => (l(), r("div", {
|
|
1919
|
-
class: i([
|
|
1920
|
-
"tide-tabs",
|
|
1921
|
-
t(e).BG.SURFACE.VARIANT,
|
|
1922
|
-
t(e).DISPLAY.FLEX,
|
|
1923
|
-
t(e).GAP.QUARTER,
|
|
1924
|
-
t(e).BORDER.RADIUS.HALF,
|
|
1925
|
-
t(e).PADDING.FULL.QUARTER,
|
|
1926
|
-
t(e).OVERFLOW.XY.HIDDEN,
|
|
1927
|
-
t(e).WIDTH.FULL
|
|
1928
|
-
])
|
|
1929
|
-
}, [
|
|
1930
|
-
(l(!0), r($, null, j(a.tabs, (E, O) => (l(), r("button", {
|
|
1931
|
-
class: i([
|
|
1932
|
-
"tide-tabs-tab",
|
|
1933
|
-
O === o.value ? [t(e).BG.SURFACE.DEFAULT, t(e).FONT.COLOR.SURFACE.DEFAULT, t(e).SHADOW.BOTTOM] : ["inactive", t(e).FONT.COLOR.SURFACE.VARIANT],
|
|
1934
|
-
t(e).FLEX.GROW.ON,
|
|
1935
|
-
t(e).BORDER.RADIUS.QUARTER,
|
|
1936
|
-
t(e).PADDING.Y.QUARTER,
|
|
1937
|
-
t(e).WIDTH.FULL,
|
|
1938
|
-
t(e).FONT.WEIGHT.SIX_HUNDRED,
|
|
1939
|
-
t(e).WHITESPACE_WRAP.OFF
|
|
1940
|
-
]),
|
|
1941
|
-
"data-track": E.dataTrack || void 0,
|
|
1942
|
-
key: E.label,
|
|
1943
|
-
onClick: (p) => d(p, O)
|
|
1944
|
-
}, [
|
|
1945
|
-
c("span", {
|
|
1946
|
-
class: i([t(e).FONT.WEIGHT.SIX_HUNDRED])
|
|
1947
|
-
}, L(E.label), 3),
|
|
1948
|
-
E.count && E.count > 0 ? (l(), r("span", {
|
|
1949
|
-
key: 0,
|
|
1950
|
-
class: i([t(e).FONT.WEIGHT.SIX_HUNDRED])
|
|
1951
|
-
}, " (" + L(E.count) + ") ", 3)) : N("", !0)
|
|
1952
|
-
], 10, Lt))), 128))
|
|
1953
|
-
], 2));
|
|
1954
|
-
}
|
|
1955
|
-
});
|
|
1956
|
-
const Kt = /* @__PURE__ */ C(pt, [["__scopeId", "data-v-894fc638"]]), vt = ["disabled"], Ft = /* @__PURE__ */ v({
|
|
1957
|
-
__name: "TideToggle",
|
|
1958
|
-
props: {
|
|
1959
|
-
disabled: {
|
|
1960
|
-
default: !1,
|
|
1961
|
-
required: !1,
|
|
1962
|
-
type: Boolean
|
|
1963
|
-
},
|
|
1964
|
-
isActive: {
|
|
1965
|
-
required: !0,
|
|
1966
|
-
type: Boolean
|
|
1967
|
-
}
|
|
1968
|
-
},
|
|
1969
|
-
emits: ["change"],
|
|
1970
|
-
setup(n, { emit: s }) {
|
|
1971
|
-
const a = n, o = A(a.isActive), d = (T) => {
|
|
1972
|
-
a.disabled || (o.value = !o.value, s("change", T, o.value));
|
|
1973
|
-
};
|
|
1974
|
-
return (T, I) => (l(), r("button", {
|
|
1975
|
-
class: i([
|
|
1976
|
-
"tide-toggle",
|
|
1977
|
-
t(e).DISPLAY.FLEX,
|
|
1978
|
-
t(e).AXIS2.CENTER,
|
|
1979
|
-
t(e).BORDER.RADIUS.FULL,
|
|
1980
|
-
t(e).OVERFLOW.XY.HIDDEN,
|
|
1981
|
-
a.isActive ? t(e).BG.SECONDARY : t(e).BG.SURFACE.VARIANT
|
|
1982
|
-
]),
|
|
1983
|
-
disabled: a.disabled,
|
|
1984
|
-
onClick: d,
|
|
1985
|
-
"aria-label": "Toggle"
|
|
1986
|
-
}, [
|
|
1987
|
-
c("div", {
|
|
1988
|
-
class: i([
|
|
1989
|
-
"tide-toggle-indicator",
|
|
1990
|
-
t(e).BG.SURFACE.DEFAULT,
|
|
1991
|
-
a.isActive ? "active" : "",
|
|
1992
|
-
t(e).POSITION.RELATIVE,
|
|
1993
|
-
t(e).BORDER.RADIUS.FULL,
|
|
1994
|
-
t(e).SHADOW.BOTTOM
|
|
1995
|
-
])
|
|
1996
|
-
}, null, 2)
|
|
1997
|
-
], 10, vt));
|
|
1998
|
-
}
|
|
1999
|
-
});
|
|
2000
|
-
const qt = /* @__PURE__ */ C(Ft, [["__scopeId", "data-v-2c5da028"]]), zt = {
|
|
2001
|
-
AERO: "aero",
|
|
2002
|
-
ATV: "atv",
|
|
2003
|
-
BOATMART: "boatmart",
|
|
2004
|
-
CYCLE: "cycle",
|
|
2005
|
-
EQUIP: "equip",
|
|
2006
|
-
PWC: "pwc",
|
|
2007
|
-
RV: "rv",
|
|
2008
|
-
SNOW: "snow",
|
|
2009
|
-
TRUCK: "truck"
|
|
2010
|
-
};
|
|
2011
|
-
export {
|
|
2012
|
-
H as A,
|
|
2013
|
-
mt as B,
|
|
2014
|
-
e as C,
|
|
2015
|
-
xt as D,
|
|
2016
|
-
D as E,
|
|
2017
|
-
wt as F,
|
|
2018
|
-
$t as G,
|
|
2019
|
-
Qt as H,
|
|
2020
|
-
_ as I,
|
|
2021
|
-
Kt as J,
|
|
2022
|
-
qt as K,
|
|
2023
|
-
w as P,
|
|
2024
|
-
zt as R,
|
|
2025
|
-
y as S,
|
|
2026
|
-
W as T,
|
|
2027
|
-
C as _,
|
|
2028
|
-
gt as a,
|
|
2029
|
-
be as b,
|
|
2030
|
-
x as c,
|
|
2031
|
-
Dt as d,
|
|
2032
|
-
St as e,
|
|
2033
|
-
ft as f,
|
|
2034
|
-
Ut as g,
|
|
2035
|
-
Ct as h,
|
|
2036
|
-
Pt as i,
|
|
2037
|
-
Gt as j,
|
|
2038
|
-
q as k,
|
|
2039
|
-
Me as l,
|
|
2040
|
-
ht as m,
|
|
2041
|
-
bt as n,
|
|
2042
|
-
Ht as o,
|
|
2043
|
-
yt as p,
|
|
2044
|
-
Bt as q,
|
|
2045
|
-
Xt as r,
|
|
2046
|
-
de as s,
|
|
2047
|
-
U as t,
|
|
2048
|
-
Wt as u,
|
|
2049
|
-
Ce as v,
|
|
2050
|
-
Mt as w,
|
|
2051
|
-
Yt as x,
|
|
2052
|
-
kt as y,
|
|
2053
|
-
Vt as z
|
|
2054
|
-
};
|
|
2055
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtMTA0MmQ5M2IuanMiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy9TdHlsZXMudHMiLCIuLi9zcmMvdHlwZXMvU2l6ZS50cyIsIi4uL3NyYy91dGlsaXRpZXMvZm9ybWF0LnRzIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUljb24udnVlIiwiLi4vc3JjL3R5cGVzL0ljb24udHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlQWNjb3JkaW9uSXRlbS52dWUiLCIuLi9zcmMvdHlwZXMvRWxlbWVudC50cyIsIi4uL3NyYy90eXBlcy9Qcmlvcml0eS50cyIsIi4uL3NyYy90eXBlcy9UYXJnZXQudHMiLCIuLi9zcmMvdHlwZXMvQWxlcnQudHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlQWxlcnQudnVlIiwiLi4vc3JjL3R5cGVzL0JhZGdlLnRzIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUNhcm91c2VsLnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbWFnZS52dWUiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSW5wdXRSYWRpby52dWUiLCIuLi9zcmMvdXRpbGl0aWVzL3ZhbGlkYXRpb24udHMiLCIuLi9zcmMvY29tcG9uZW50cy9UaWRlSW5wdXRTZWxlY3QudnVlIiwiLi4vc3JjL3R5cGVzL1RleHRJbnB1dC50cyIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVJbnB1dFRleHQudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUlucHV0VGV4dGFyZWEudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZUxpbmsudnVlIiwiLi4vc3JjL2NvbXBvbmVudHMvVGlkZU1vZGFsLnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVQYWdpbmF0aW9uLnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVUYWJzLnZ1ZSIsIi4uL3NyYy9jb21wb25lbnRzL1RpZGVUb2dnbGUudnVlIiwiLi4vc3JjL3R5cGVzL1JlYWxtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBDU1MgPSB7XG4gIEFMSUdOOiB7XG4gICAgWDoge1xuICAgICAgQ0VOVEVSOiAndGlkZS10ZXh0LWNlbnRlcicsXG4gICAgICBMRUZUOiAndGlkZS10ZXh0LWxlZnQnLFxuICAgICAgUklHSFQ6ICd0aWRlLXRleHQtcmlnaHQnLFxuICAgIH0sXG4gICAgWToge1xuICAgICAgTUlERExFOiAndGlkZS1hbGlnbi1taWRkbGUnLFxuICAgIH0sXG4gIH0sXG4gIEFYSVMxOiB7XG4gICAgQVJPVU5EOiAndGlkZS1heGlzMS1hcm91bmQnLFxuICAgIEJFVFdFRU46ICd0aWRlLWF4aXMxLWJldHdlZW4nLFxuICAgIENFTlRFUjogJ3RpZGUtYXhpczEtY2VudGVyJyxcbiAgICBFTkQ6ICd0aWRlLWF4aXMxLWVuZCcsXG4gICAgU1RBUlQ6ICd0aWRlLWF4aXMxLXN0YXJ0JyxcbiAgfSxcbiAgQVhJUzI6IHtcbiAgICBBUk9VTkQ6ICd0aWRlLWF4aXMyLWFyb3VuZCcsXG4gICAgQ0VOVEVSOiAndGlkZS1heGlzMi1jZW50ZXInLFxuICAgIEVORDogJ3RpZGUtYXhpczItZW5kJyxcbiAgICBTVEFSVDogJ3RpZGUtYXhpczItc3RhcnQnLFxuICB9LFxuICBCRzoge1xuICAgIEVSUk9SOiAndGlkZS1iZy1lcnJvcicsXG4gICAgSU5GTzogJ3RpZGUtYmctaW5mbycsXG4gICAgUFJJTUFSWTogJ3RpZGUtYmctcHJpbWFyeScsXG4gICAgU0VDT05EQVJZOiAndGlkZS1iZy1zZWNvbmRhcnknLFxuICAgIFNVQ0NFU1M6ICd0aWRlLWJnLXN1Y2Nlc3MnLFxuICAgIFNVUkZBQ0U6IHtcbiAgICAgIEFDQ0VOVDogJ3RpZGUtYmctc3VyZmFjZS1hY2NlbnQnLFxuICAgICAgQUNDRU5UX1ZBUklBTlQ6ICd0aWRlLWJnLXN1cmZhY2UtYWNjZW50LXZhcmlhbnQnLFxuICAgICAgQlJBTkQ6ICd0aWRlLWJnLXN1cmZhY2UtYnJhbmQnLFxuICAgICAgREVGQVVMVDogJ3RpZGUtYmctc3VyZmFjZScsXG4gICAgICBFUlJPUjogJ3RpZGUtYmctc3VyZmFjZS1lcnJvcicsXG4gICAgICBGTE9BVElORzogJ3RpZGUtYmctc3VyZmFjZS1mbG9hdGluZycsXG4gICAgICBHUkFESUVOVDogJ3RpZGUtYmctc3VyZmFjZS1ncmFkaWVudCcsXG4gICAgICBJTkZPOiAndGlkZS1iZy1zdXJmYWNlLWluZm8nLFxuICAgICAgU1VDQ0VTUzogJ3RpZGUtYmctc3VyZmFjZS1zdWNjZXNzJyxcbiAgICAgIFZBUklBTlQ6ICd0aWRlLWJnLXN1cmZhY2UtdmFyaWFudCcsXG4gICAgICBXQVJOSU5HOiAndGlkZS1iZy1zdXJmYWNlLXdhcm5pbmcnLFxuICAgIH0sXG4gICAgV0FSTklORzogJ3RpZGUtYmctd2FybmluZycsXG4gIH0sXG4gIEJPUkRFUjoge1xuICAgIEJPVFRPTToge1xuICAgICAgT05FOiAndGlkZS1ib3JkZXItYm90dG9tLTEnLFxuICAgICAgVFdPOiAndGlkZS1ib3JkZXItYm90dG9tLTInLFxuICAgIH0sXG4gICAgQ09MT1I6IHtcbiAgICAgIERFRkFVTFQ6ICd0aWRlLWJvcmRlcicsXG4gICAgICBGTE9BVElORzogJ3RpZGUtYm9yZGVyLWZsb2F0aW5nJyxcbiAgICAgIEhJR0g6ICd0aWRlLWJvcmRlci1oaWdoJyxcbiAgICAgIExPVzogJ3RpZGUtYm9yZGVyLWxvdycsXG4gICAgICBQUklNQVJZOiAndGlkZS1ib3JkZXItcHJpbWFyeScsXG4gICAgfSxcbiAgICBGVUxMOiB7XG4gICAgICBPTkU6ICd0aWRlLWJvcmRlci0xJyxcbiAgICAgIFRXTzogJ3RpZGUtYm9yZGVyLTInLFxuICAgIH0sXG4gICAgTEVGVDoge1xuICAgICAgT05FOiAndGlkZS1ib3JkZXItbGVmdC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtYm9yZGVyLWxlZnQtMicsXG4gICAgfSxcbiAgICBSQURJVVM6IHtcbiAgICAgIEZVTEw6ICd0aWRlLXJhZGl1cy1mdWxsJyxcbiAgICAgIEhBTEY6ICd0aWRlLXJhZGl1cy0xLzInLFxuICAgICAgT05FOiAndGlkZS1yYWRpdXMtMScsXG4gICAgICBRVUFSVEVSOiAndGlkZS1yYWRpdXMtMS80JyxcbiAgICB9LFxuICAgIFJJR0hUOiB7XG4gICAgICBPTkU6ICd0aWRlLWJvcmRlci1yaWdodC0xJyxcbiAgICAgIFRXTzogJ3RpZGUtYm9yZGVyLXJpZ2h0LTInLFxuICAgIH0sXG4gICAgVE9QOiB7XG4gICAgICBPTkU6ICd0aWRlLWJvcmRlci10b3AtMScsXG4gICAgICBUV086ICd0aWRlLWJvcmRlci10b3AtMicsXG4gICAgfSxcbiAgfSxcbiAgQk9YX1NJWklORzoge1xuICAgIEJPUkRFUl9CT1g6ICd0aWRlLWJveC1ib3JkZXInLFxuICAgIENPTlRFTlRfQk9YOiAndGlkZS1ib3gtY29udGVudCcsXG4gIH0sXG4gIEJSRUFLX1dPUkQ6IHtcbiAgICBPTjogJ3RpZGUtYnJlYWstd29yZCcsXG4gIH0sXG4gIENVUlNPUjoge1xuICAgIE5PVF9BTExPV0VEOiAndGlkZS1jdXJzb3Itbm90LWFsbG93ZWQnLFxuICAgIFBPSU5URVI6ICd0aWRlLWN1cnNvci1wb2ludGVyJyxcbiAgICBURVhUOiAndGlkZS1jdXJzb3ItdGV4dCcsXG4gIH0sXG4gIERJU1BMQVk6IHtcbiAgICBCTE9DSzogJ3RpZGUtZGlzcGxheS1ibG9jaycsXG4gICAgQ09OVEVOVFM6ICd0aWRlLWNvbnRlbnRzJyxcbiAgICBGTEVYOiAndGlkZS1kaXNwbGF5LWZsZXgnLFxuICAgIEdSSUQ6ICd0aWRlLWRpc3BsYXktZ3JpZCcsXG4gICAgSU5JVElBTDogJ2luaXRpYWwnLFxuICAgIElOTElORTogJ3RpZGUtZGlzcGxheS1pbmxpbmUnLFxuICAgIElOTElORV9CTE9DSzogJ3RpZGUtZGlzcGxheS1pbmxpbmUtYmxvY2snLFxuICAgIElOTElORV9GTEVYOiAndGlkZS1kaXNwbGF5LWlubGluZS1mbGV4JyxcbiAgICBOT05FOiAndGlkZS1kaXNwbGF5LW5vbmUnLFxuICB9LFxuICBGTEVYOiB7XG4gICAgRElSRUNUSU9OOiB7XG4gICAgICBDT0xVTU46ICd0aWRlLWZsZXgtY29sdW1uJyxcbiAgICAgIENPTFVNTl9SRVZFUlNFOiAndGlkZS1mbGV4LWNvbHVtbi1yZXZlcnNlJyxcbiAgICAgIFJPVzogJ3RpZGUtZmxleC1yb3cnLFxuICAgICAgUk9XX1JFVkVSU0U6ICd0aWRlLXJvdy1yZXZlcnNlJyxcbiAgICB9LFxuICAgIEdST1c6IHtcbiAgICAgIE9GRjogJ3RpZGUtZ3Jvdy1ub25lJyxcbiAgICAgIE9OOiAndGlkZS1ncm93JyxcbiAgICB9LFxuICAgIFNIUklOSzoge1xuICAgICAgT0ZGOiAndGlkZS1zaHJpbmstbm9uZScsXG4gICAgICBPTjogJ3RpZGUtc2hyaW5rJyxcbiAgICB9LFxuICAgIFdSQVA6ICd0aWRlLWZsZXgtd3JhcCcsXG4gIH0sXG4gIEZPTlQ6IHtcbiAgICBDT0xPUjoge1xuICAgICAgUFJJTUFSWTogJ3RpZGUtZm9udC1vbi1wcmltYXJ5JyxcbiAgICAgIFNFQ09OREFSWTogJ3RpZGUtZm9udC1vbi1zZWNvbmRhcnknLFxuICAgICAgU1VSRkFDRToge1xuICAgICAgICBCUkFORDogJ3RpZGUtZm9udC1vbi1zdXJmYWNlLWJyYW5kJyxcbiAgICAgICAgREVGQVVMVDogJ3RpZGUtZm9udC1vbi1zdXJmYWNlJyxcbiAgICAgICAgSU5WRVJTRTogJ3RpZGUtZm9udC1vbi1zdXJmYWNlLWludmVyc2UnLFxuICAgICAgICBWQVJJQU5UOiAndGlkZS1mb250LW9uLXN1cmZhY2UtdmFyaWFudCcsXG4gICAgICAgIFZBUklBTlRfSU5WRVJTRTogJ3RpZGUtZm9udC1vbi1zdXJmYWNlLXZhcmlhbnQtaW52ZXJzZScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgU0laRToge1xuICAgICAgRk9VUlRFRU46ICd0aWRlLWZvbnQtMTQnLFxuICAgICAgU0lYVEVFTjogJ3RpZGUtZm9udC0xNicsXG4gICAgICBUSElSVFlfVFdPOiAndGlkZS1mb250LTMyJyxcbiAgICAgIFRXRUxWRTogJ3RpZGUtZm9udC0xMicsXG4gICAgICBUV0VOVFk6ICd0aWRlLWZvbnQtMjAnLFxuICAgICAgVFdFTlRZX0ZPVVI6ICd0aWRlLWZvbnQtMjQnLFxuICAgIH0sXG4gICAgV0VJR0hUOiB7XG4gICAgICBGSVZFX0hVTkRSRUQ6ICd0aWRlLWZvbnQtNTAwJyxcbiAgICAgIEZPVVJfSFVORFJFRDogJ3RpZGUtZm9udC00MDAnLFxuICAgICAgU0VWRU5fSFVORFJFRDogJ3RpZGUtZm9udC03MDAnLFxuICAgICAgU0lYX0hVTkRSRUQ6ICd0aWRlLWZvbnQtNjAwJyxcbiAgICB9LFxuICB9LFxuICBHQVA6IHtcbiAgICBGT1VSOiAndGlkZS1nYXAtNCcsXG4gICAgSEFMRjogJ3RpZGUtZ2FwLTEvMicsXG4gICAgT05FOiAndGlkZS1nYXAtMScsXG4gICAgUVVBUlRFUjogJ3RpZGUtZ2FwLTEvNCcsXG4gICAgVFdPOiAndGlkZS1nYXAtMicsXG4gIH0sXG4gIEhFSUdIVDoge1xuICAgIEZVTEw6ICd0aWRlLWhlaWdodC1mdWxsJyxcbiAgfSxcbiAgTElTVF9CVUxMRVRTOiB7XG4gICAgT0ZGOiAndGlkZS1saXN0LW5vbmUnLFxuICB9LFxuICBNQVJHSU46IHtcbiAgICBCT1RUT006IHtcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi1ib3R0b20tNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tYm90dG9tLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi1ib3R0b20tMScsXG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4tYm90dG9tLTEvNCcsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi1ib3R0b20tMicsXG4gICAgfSxcbiAgICBGVUxMOiB7XG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4tNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtbWFyZ2luLTEnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLTEvNCcsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi0yJyxcbiAgICB9LFxuICAgIExFRlQ6IHtcbiAgICAgIEFVVE86ICd0aWRlLW1hcmdpbi1sZWZ0LWF1dG8nLFxuICAgICAgRk9VUjogJ3RpZGUtbWFyZ2luLWxlZnQtNCcsXG4gICAgICBIQUxGOiAndGlkZS1tYXJnaW4tbGVmdC0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tbGVmdC0xJyxcbiAgICAgIFFVQVJURVI6ICd0aWRlLW1hcmdpbi1sZWZ0LTEvNCcsXG4gICAgICBUV086ICd0aWRlLW1hcmdpbi1sZWZ0LTInLFxuICAgIH0sXG4gICAgUklHSFQ6IHtcbiAgICAgIEFVVE86ICd0aWRlLW1hcmdpbi1yaWdodC1hdXRvJyxcbiAgICAgIEZPVVI6ICd0aWRlLW1hcmdpbi1yaWdodC00JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi1yaWdodC0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tcmlnaHQtMScsXG4gICAgICBRVUFSVEVSOiAndGlkZS1tYXJnaW4tcmlnaHQtMS80JyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLXJpZ2h0LTInLFxuICAgIH0sXG4gICAgVE9QOiB7XG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4tdG9wLTQnLFxuICAgICAgSEFMRjogJ3RpZGUtbWFyZ2luLXRvcC0xLzInLFxuICAgICAgT05FOiAndGlkZS1tYXJnaW4tdG9wLTEnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLXRvcC0xLzQnLFxuICAgICAgVFdPOiAndGlkZS1tYXJnaW4tdG9wLTInLFxuICAgIH0sXG4gICAgWDoge1xuICAgICAgQVVUTzogJ3RpZGUtbWFyZ2luLXgtYXV0bycsXG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4teC00JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi14LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi14LTEnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLXgtMS80JyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLXgtMicsXG4gICAgfSxcbiAgICBZOiB7XG4gICAgICBGT1VSOiAndGlkZS1tYXJnaW4teS00JyxcbiAgICAgIEhBTEY6ICd0aWRlLW1hcmdpbi15LTEvMicsXG4gICAgICBPTkU6ICd0aWRlLW1hcmdpbi15LTEnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtbWFyZ2luLXktMS80JyxcbiAgICAgIFRXTzogJ3RpZGUtbWFyZ2luLXktMicsXG4gICAgfSxcbiAgfSxcbiAgT0JKRUNUOiB7XG4gICAgQ0VOVEVSOiAndGlkZS1vYmplY3QtY2VudGVyJyxcbiAgICBDT05UQUlOOiAndGlkZS1vYmplY3QtY29udGFpbicsXG4gICAgQ09WRVI6ICd0aWRlLW9iamVjdC1jb3ZlcicsXG4gICAgU0NBTEVfRE9XTjogJ3RpZGUtb2JqZWN0LXNjYWxlLWRvd24nLFxuICB9LFxuICBPVkVSRkxPVzoge1xuICAgIFg6IHtcbiAgICAgIEFVVE86ICd0aWRlLXgtYXV0bycsXG4gICAgICBISURERU46ICd0aWRlLXgtaGlkZGVuJyxcbiAgICAgIFNDUk9MTDogJ3RpZGUteC1zY3JvbGwnLFxuICAgIH0sXG4gICAgWFk6IHtcbiAgICAgIEFVVE86ICd0aWRlLXh5LWF1dG8nLFxuICAgICAgSElEREVOOiAndGlkZS14eS1oaWRkZW4nLFxuICAgIH0sXG4gICAgWToge1xuICAgICAgQVVUTzogJ3RpZGUteS1hdXRvJyxcbiAgICAgIEhJRERFTjogJ3RpZGUteS1oaWRkZW4nLFxuICAgIH0sXG4gIH0sXG4gIFBBRERJTkc6IHtcbiAgICBCT1RUT006IHtcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmctYm90dG9tLTQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy1ib3R0b20tMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy1ib3R0b20tMScsXG4gICAgICBRVUFSVEVSOiAndGlkZS1wYWRkaW5nLWJvdHRvbS0xLzQnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLWJvdHRvbS0yJyxcbiAgICB9LFxuICAgIEZVTEw6IHtcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmctNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmctMScsXG4gICAgICBRVUFSVEVSOiAndGlkZS1wYWRkaW5nLTEvNCcsXG4gICAgICBUV086ICd0aWRlLXBhZGRpbmctMicsXG4gICAgfSxcbiAgICBMRUZUOiB7XG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLWxlZnQtNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLWxlZnQtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy1sZWZ0LTEnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy1sZWZ0LTEvNCcsXG4gICAgICBUV086ICd0aWRlLXBhZGRpbmctbGVmdC0yJyxcbiAgICB9LFxuICAgIFJJR0hUOiB7XG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLXJpZ2h0LTQnLFxuICAgICAgSEFMRjogJ3RpZGUtcGFkZGluZy1yaWdodC0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLXJpZ2h0LTEnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy1yaWdodC0xLzQnLFxuICAgICAgVFdPOiAndGlkZS1wYWRkaW5nLXJpZ2h0LTInLFxuICAgIH0sXG4gICAgVE9QOiB7XG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLXRvcC00JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmctdG9wLTEvMicsXG4gICAgICBPTkU6ICd0aWRlLXBhZGRpbmctdG9wLTEnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy10b3AtMS80JyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy10b3AtMicsXG4gICAgfSxcbiAgICBYOiB7XG4gICAgICBGT1VSOiAndGlkZS1wYWRkaW5nLXgtNCcsXG4gICAgICBIQUxGOiAndGlkZS1wYWRkaW5nLXgtMS8yJyxcbiAgICAgIE9ORTogJ3RpZGUtcGFkZGluZy14LTEnLFxuICAgICAgUVVBUlRFUjogJ3RpZGUtcGFkZGluZy14LTEvNCcsXG4gICAgICBUV086ICd0aWRlLXBhZGRpbmcteC0yJyxcbiAgICB9LFxuICAgIFk6IHtcbiAgICAgIEZPVVI6ICd0aWRlLXBhZGRpbmcteS00JyxcbiAgICAgIEhBTEY6ICd0aWRlLXBhZGRpbmcteS0xLzInLFxuICAgICAgT05FOiAndGlkZS1wYWRkaW5nLXktMScsXG4gICAgICBRVUFSVEVSOiAndGlkZS1wYWRkaW5nLXktMS80JyxcbiAgICAgIFRXTzogJ3RpZGUtcGFkZGluZy15LTInLFxuICAgIH0sXG4gIH0sXG4gIFBPSU5URVJfRVZFTlRTOiB7XG4gICAgT0ZGOiAndGlkZS1wb2ludGVyLWV2ZW50cy1ub25lJyxcbiAgICBPTjogJ3RpZGUtcG9pbnRlci1ldmVudHMnLFxuICB9LFxuICBQT1NJVElPTjoge1xuICAgIEFCU09MVVRFOiAndGlkZS1wb3NpdGlvbi1hYnNvbHV0ZScsXG4gICAgRklYRUQ6ICd0aWRlLXBvc2l0aW9uLWZpeGVkJyxcbiAgICBSRUxBVElWRTogJ3RpZGUtcG9zaXRpb24tcmVsYXRpdmUnLFxuICAgIFNUSUNLWTogJ3RpZGUtc3RpY2t5JyxcbiAgfSxcbiAgUE9TSVRJT05JTkc6IHtcbiAgICBCT1RUT01fMDogJ3RpZGUtYm90dG9tLTAnLFxuICAgIExFRlRfMDogJ3RpZGUtbGVmdC0wJyxcbiAgICBSSUdIVF8wOiAndGlkZS1yaWdodC0wJyxcbiAgICBUT1BfMDogJ3RpZGUtdG9wLTAnLFxuICB9LFxuICBTQ1JPTExCQVI6IHtcbiAgICBPRkY6ICd0aWRlLXNjcm9sbGJhci1ub25lJyxcbiAgfSxcbiAgU0hBRE9XOiB7XG4gICAgQk9UVE9NOiAndGlkZS1zaGFkb3ctYm90dG9tJyxcbiAgICBUT1A6ICd0aWRlLXNoYWRvdy10b3AnLFxuICB9LFxuICBTTkFQOiB7XG4gICAgT046ICd0aWRlLXNuYXAnLFxuICB9LFxuICBTTkFQX0FMSUdOOiB7XG4gICAgU1RBUlQ6ICd0aWRlLXNuYXAtc3RhcnQnLFxuICB9LFxuICBURVhUX1RSQU5TRk9STToge1xuICAgIExPV0VSOiAndGlkZS10ZXh0LXRyYW5zZm9ybS1sb3dlcicsXG4gICAgTk9ORTogJ3RpZGUtdGV4dC10cmFuc2Zvcm0tbm9uZScsXG4gICAgVVBQRVI6ICd0aWRlLXRleHQtdHJhbnNmb3JtLXVwcGVyJyxcbiAgfSxcbiAgVU5ERVJMSU5FOiB7XG4gICAgSE9WRVI6ICd0aWRlLXVuZGVybGluZS1ob3ZlcicsXG4gICAgT0ZGOiAndGlkZS11bmRlcmxpbmUtbm9uZScsXG4gICAgT046ICd0aWRlLXVuZGVybGluZScsXG4gIH0sXG4gIFZJU0lCSUxJVFk6IHtcbiAgICBPRkY6ICd0aWRlLXZpc2libGUtbm9uZScsXG4gICAgT046ICd0aWRlLXZpc2libGUnLFxuICB9LFxuICBXSElURVNQQUNFX1dSQVA6IHtcbiAgICBPRkY6ICd0aWRlLXdoaXRlc3BhY2Utbm93cmFwJyxcbiAgfSxcbiAgV0lEVEg6IHtcbiAgICBGVUxMOiAndGlkZS13aWR0aC1mdWxsJyxcbiAgICBNQVhfRlVMTDogJ3RpZGUtbWF4LXdpZHRoLWZ1bGwnLFxuICB9LFxufTtcblxuZXhwb3J0IHR5cGUgQ3NzVXRpbGl0eSA9ICh0eXBlb2YgQ1NTKVtrZXlvZiB0eXBlb2YgQ1NTXTtcblxuZXhwb3J0IGNvbnN0IGNzc1NvcnRPcmRlciA9IFtcbiAgQ1NTLkRJU1BMQVkuQkxPQ0ssXG4gIENTUy5ESVNQTEFZLkNPTlRFTlRTLFxuICBDU1MuRElTUExBWS5GTEVYLFxuICBDU1MuRElTUExBWS5HUklELFxuICBDU1MuRElTUExBWS5OT05FLFxuICBDU1MuRElTUExBWS5JTklUSUFMLFxuICBDU1MuRElTUExBWS5JTkxJTkUsXG4gIENTUy5ESVNQTEFZLklOTElORV9CTE9DSyxcbiAgQ1NTLkRJU1BMQVkuSU5MSU5FX0ZMRVgsXG4gIENTUy5BWElTMS5BUk9VTkQsXG4gIENTUy5BWElTMS5CRVRXRUVOLFxuICBDU1MuQVhJUzEuQ0VOVEVSLFxuICBDU1MuQVhJUzEuRU5ELFxuICBDU1MuQVhJUzEuU1RBUlQsXG4gIENTUy5BWElTMi5BUk9VTkQsXG4gIENTUy5BWElTMi5DRU5URVIsXG4gIENTUy5BWElTMi5FTkQsXG4gIENTUy5BWElTMi5TVEFSVCxcbiAgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTixcbiAgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTl9SRVZFUlNFLFxuICBDU1MuRkxFWC5ESVJFQ1RJT04uUk9XLFxuICBDU1MuRkxFWC5ESVJFQ1RJT04uUk9XX1JFVkVSU0UsXG4gIENTUy5HQVAuT05FLFxuICBDU1MuR0FQLkhBTEYsXG4gIENTUy5HQVAuUVVBUlRFUixcbiAgQ1NTLkdBUC5UV08sXG4gIENTUy5HQVAuRk9VUixcbiAgQ1NTLkZMRVguR1JPVy5PTixcbiAgQ1NTLkZMRVguR1JPVy5PRkYsXG4gIENTUy5GTEVYLlNIUklOSy5PTixcbiAgQ1NTLkZMRVguU0hSSU5LLk9GRixcbiAgQ1NTLkZMRVguV1JBUCxcbiAgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLFxuICBDU1MuUE9TSVRJT04uRklYRUQsXG4gIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgQ1NTLlBPU0lUSU9OLlNUSUNLWSxcbiAgQ1NTLlBPU0lUSU9OSU5HLlRPUF8wLFxuICBDU1MuUE9TSVRJT05JTkcuUklHSFRfMCxcbiAgQ1NTLlBPU0lUSU9OSU5HLkJPVFRPTV8wLFxuICBDU1MuUE9TSVRJT05JTkcuTEVGVF8wLFxuICBDU1MuQk9YX1NJWklORy5CT1JERVJfQk9YLFxuICBDU1MuQk9YX1NJWklORy5DT05URU5UX0JPWCxcbiAgQ1NTLk1BUkdJTi5GVUxMLk9ORSxcbiAgQ1NTLk1BUkdJTi5GVUxMLkhBTEYsXG4gIENTUy5NQVJHSU4uRlVMTC5RVUFSVEVSLFxuICBDU1MuTUFSR0lOLkZVTEwuVFdPLFxuICBDU1MuTUFSR0lOLkZVTEwuRk9VUixcbiAgQ1NTLk1BUkdJTi5ZLk9ORSxcbiAgQ1NTLk1BUkdJTi5ZLkhBTEYsXG4gIENTUy5NQVJHSU4uWS5RVUFSVEVSLFxuICBDU1MuTUFSR0lOLlkuVFdPLFxuICBDU1MuTUFSR0lOLlkuRk9VUixcbiAgQ1NTLk1BUkdJTi5UT1AuT05FLFxuICBDU1MuTUFSR0lOLlRPUC5IQUxGLFxuICBDU1MuTUFSR0lOLlRPUC5RVUFSVEVSLFxuICBDU1MuTUFSR0lOLlRPUC5UV08sXG4gIENTUy5NQVJHSU4uVE9QLkZPVVIsXG4gIENTUy5NQVJHSU4uWC5PTkUsXG4gIENTUy5NQVJHSU4uWC5IQUxGLFxuICBDU1MuTUFSR0lOLlguUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5YLlRXTyxcbiAgQ1NTLk1BUkdJTi5YLkZPVVIsXG4gIENTUy5NQVJHSU4uWC5BVVRPLFxuICBDU1MuTUFSR0lOLlJJR0hULk9ORSxcbiAgQ1NTLk1BUkdJTi5SSUdIVC5IQUxGLFxuICBDU1MuTUFSR0lOLlJJR0hULlFVQVJURVIsXG4gIENTUy5NQVJHSU4uUklHSFQuVFdPLFxuICBDU1MuTUFSR0lOLlJJR0hULkZPVVIsXG4gIENTUy5NQVJHSU4uUklHSFQuQVVUTyxcbiAgQ1NTLk1BUkdJTi5CT1RUT00uT05FLFxuICBDU1MuTUFSR0lOLkJPVFRPTS5IQUxGLFxuICBDU1MuTUFSR0lOLkJPVFRPTS5RVUFSVEVSLFxuICBDU1MuTUFSR0lOLkJPVFRPTS5UV08sXG4gIENTUy5NQVJHSU4uQk9UVE9NLkZPVVIsXG4gIENTUy5NQVJHSU4uTEVGVC5PTkUsXG4gIENTUy5NQVJHSU4uTEVGVC5IQUxGLFxuICBDU1MuTUFSR0lOLkxFRlQuUVVBUlRFUixcbiAgQ1NTLk1BUkdJTi5MRUZULlRXTyxcbiAgQ1NTLk1BUkdJTi5MRUZULkZPVVIsXG4gIENTUy5NQVJHSU4uTEVGVC5BVVRPLFxuICBDU1MuQk9SREVSLkZVTEwuT05FLFxuICBDU1MuQk9SREVSLkZVTEwuVFdPLFxuICBDU1MuQk9SREVSLlRPUC5PTkUsXG4gIENTUy5CT1JERVIuVE9QLlRXTyxcbiAgQ1NTLkJPUkRFUi5SSUdIVC5PTkUsXG4gIENTUy5CT1JERVIuUklHSFQuVFdPLFxuICBDU1MuQk9SREVSLkJPVFRPTS5PTkUsXG4gIENTUy5CT1JERVIuQk9UVE9NLlRXTyxcbiAgQ1NTLkJPUkRFUi5MRUZULk9ORSxcbiAgQ1NTLkJPUkRFUi5MRUZULlRXTyxcbiAgQ1NTLkJPUkRFUi5SQURJVVMuT05FLFxuICBDU1MuQk9SREVSLlJBRElVUy5IQUxGLFxuICBDU1MuQk9SREVSLlJBRElVUy5RVUFSVEVSLFxuICBDU1MuQk9SREVSLlJBRElVUy5GVUxMLFxuICBDU1MuUEFERElORy5GVUxMLk9ORSxcbiAgQ1NTLlBBRERJTkcuRlVMTC5IQUxGLFxuICBDU1MuUEFERElORy5GVUxMLlFVQVJURVIsXG4gIENTUy5QQURESU5HLkZVTEwuVFdPLFxuICBDU1MuUEFERElORy5GVUxMLkZPVVIsXG4gIENTUy5QQURESU5HLlkuT05FLFxuICBDU1MuUEFERElORy5ZLkhBTEYsXG4gIENTUy5QQURESU5HLlkuUVVBUlRFUixcbiAgQ1NTLlBBRERJTkcuWS5UV08sXG4gIENTUy5QQURESU5HLlkuRk9VUixcbiAgQ1NTLlBBRERJTkcuVE9QLk9ORSxcbiAgQ1NTLlBBRERJTkcuVE9QLkhBTEYsXG4gIENTUy5QQURESU5HLlRPUC5RVUFSVEVSLFxuICBDU1MuUEFERElORy5UT1AuVFdPLFxuICBDU1MuUEFERElORy5UT1AuRk9VUixcbiAgQ1NTLlBBRERJTkcuWC5PTkUsXG4gIENTUy5QQURESU5HLlguSEFMRixcbiAgQ1NTLlBBRERJTkcuWC5RVUFSVEVSLFxuICBDU1MuUEFERElORy5YLlRXTyxcbiAgQ1NTLlBBRERJTkcuWC5GT1VSLFxuICBDU1MuUEFERElORy5SSUdIVC5PTkUsXG4gIENTUy5QQURESU5HLlJJR0hULkhBTEYsXG4gIENTUy5QQURESU5HLlJJR0hULlFVQVJURVIsXG4gIENTUy5QQURESU5HLlJJR0hULlRXTyxcbiAgQ1NTLlBBRERJTkcuUklHSFQuRk9VUixcbiAgQ1NTLlBBRERJTkcuQk9UVE9NLk9ORSxcbiAgQ1NTLlBBRERJTkcuQk9UVE9NLkhBTEYsXG4gIENTUy5QQURESU5HLkJPVFRPTS5RVUFSVEVSLFxuICBDU1MuUEFERElORy5CT1RUT00uVFdPLFxuICBDU1MuUEFERElORy5CT1RUT00uRk9VUixcbiAgQ1NTLlBBRERJTkcuTEVGVC5PTkUsXG4gIENTUy5QQURESU5HLkxFRlQuSEFMRixcbiAgQ1NTLlBBRERJTkcuTEVGVC5RVUFSVEVSLFxuICBDU1MuUEFERElORy5MRUZULlRXTyxcbiAgQ1NTLlBBRERJTkcuTEVGVC5GT1VSLFxuICBDU1MuV0lEVEguTUFYX0ZVTEwsXG4gIENTUy5XSURUSC5GVUxMLFxuICBDU1MuSEVJR0hULkZVTEwsXG4gIENTUy5BTElHTi5ZLk1JRERMRSxcbiAgQ1NTLkJSRUFLX1dPUkQsXG4gIENTUy5DVVJTT1IuTk9UX0FMTE9XRUQsXG4gIENTUy5DVVJTT1IuUE9JTlRFUixcbiAgQ1NTLkZPTlQuU0laRS5UV0VMVkUsXG4gIENTUy5GT05ULlNJWkUuRk9VUlRFRU4sXG4gIENTUy5GT05ULlNJWkUuU0lYVEVFTixcbiAgQ1NTLkZPTlQuU0laRS5UV0VOVFksXG4gIENTUy5GT05ULlNJWkUuVFdFTlRZX0ZPVVIsXG4gIENTUy5GT05ULlNJWkUuVEhJUlRZX1RXTyxcbiAgQ1NTLkZPTlQuV0VJR0hULkZPVVJfSFVORFJFRCxcbiAgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCxcbiAgQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVELFxuICBDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRCxcbiAgQ1NTLkxJU1RfQlVMTEVUUy5PRkYsXG4gIENTUy5PQkpFQ1QuQ0VOVEVSLFxuICBDU1MuT0JKRUNULkNPTlRBSU4sXG4gIENTUy5PQkpFQ1QuQ09WRVIsXG4gIENTUy5PQkpFQ1QuU0NBTEVfRE9XTixcbiAgQ1NTLlBPSU5URVJfRVZFTlRTLk9OLFxuICBDU1MuUE9JTlRFUl9FVkVOVFMuT0ZGLFxuICBDU1MuU0NST0xMQkFSLk9GRixcbiAgQ1NTLlNIQURPVy5CT1RUT00sXG4gIENTUy5TSEFET1cuVE9QLFxuICBDU1MuU05BUC5PTixcbiAgQ1NTLlNOQVBfQUxJR04uU1RBUlQsXG4gIENTUy5BTElHTi5YLkxFRlQsXG4gIENTUy5BTElHTi5YLkNFTlRFUixcbiAgQ1NTLkFMSUdOLlguUklHSFQsXG4gIENTUy5URVhUX1RSQU5TRk9STS5MT1dFUixcbiAgQ1NTLlRFWFRfVFJBTlNGT1JNLk5PTkUsXG4gIENTUy5URVhUX1RSQU5TRk9STS5VUFBFUixcbiAgQ1NTLlVOREVSTElORSxcbiAgQ1NTLlVOREVSTElORS5IT1ZFUixcbiAgQ1NTLlVOREVSTElORS5PRkYsXG4gIENTUy5WSVNJQklMSVRZLk9OLFxuICBDU1MuVklTSUJJTElUWS5PRkYsXG4gIENTUy5XSElURVNQQUNFX1dSQVAuT0ZGLFxuICBDU1MuT1ZFUkZMT1cuWFkuQVVUTyxcbiAgQ1NTLk9WRVJGTE9XLlhZLkhJRERFTixcbiAgQ1NTLk9WRVJGTE9XLlguQVVUTyxcbiAgQ1NTLk9WRVJGTE9XLlguSElEREVOLFxuICBDU1MuT1ZFUkZMT1cuWC5TQ1JPTEwsXG4gIENTUy5PVkVSRkxPVy5ZLkFVVE8sXG4gIENTUy5PVkVSRkxPVy5ZLkhJRERFTixcbl07XG4iLCJleHBvcnQgY29uc3QgU0laRSA9IHtcbiAgTEFSR0U6ICdsYXJnZScsXG4gIFNNQUxMOiAnc21hbGwnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgU2l6ZSA9ICh0eXBlb2YgU0laRSlba2V5b2YgdHlwZW9mIFNJWkVdO1xuIiwiY29uc3QgY2FwaXRhbGl6ZUZpcnN0ID0gKHN0cmluZzogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBzdHJpbmcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XG59O1xuXG5jb25zdCBmb3JtYXRDYW1lbENhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgPyBpbnB1dFxuICAgICAgICAucmVwbGFjZSgvXltcXHNfLV0vLCAnJylcbiAgICAgICAgLnJlcGxhY2UoLyhbYS16XXsxfSkoW0EtWl17MX0pL2csICckMSAkMicpXG4gICAgICAgIC5yZXBsYWNlKC9bXFxzXy1dL2csICcgJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnNwbGl0KCcgJylcbiAgICAgICAgLm1hcCgod29yZCwgaW5kZXgpID0+IChpbmRleCA9PT0gMCA/IHdvcmQgOiB3b3JkLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpKSlcbiAgICAgICAgLmpvaW4oJycpXG4gICAgOiBpbnB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdEtlYmFiQ2FzZSA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZydcbiAgICA/IGlucHV0XG4gICAgICAgIC5yZXBsYWNlKC8oW2Etel17MX0pKFtBLVpdezF9KS9nLCAnJDEgJDInKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAucmVwbGFjZSgvW1xcc18tXS9nLCAnLScpXG4gICAgOiBpbnB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdExhYmVsID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgbGFiZWxNYXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgZmFsc2U6ICdObycsXG4gICAgdHJ1ZTogJ1llcycsXG4gIH07XG4gIHJldHVybiBPYmplY3QuaGFzT3duKGxhYmVsTWFwLCB2YWx1ZSkgPyBsYWJlbE1hcFt2YWx1ZV0gOiB2YWx1ZTtcbn07XG5cbmNvbnN0IGZvcm1hdE51bWJlciA9IChpbnB1dDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgbGV0IG91dHB1dCA9IGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicgPyBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKS5mb3JtYXQoaW5wdXQpIDogU3RyaW5nKGlucHV0IHx8ICcnKTtcbiAgbGV0IGRpZ2l0cyA9IG91dHB1dDtcblxuICBpZiAoaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgIGRpZ2l0cyA9IGRpZ2l0cy5yZXBsYWNlKC9cXEQvZywgJycpO1xuICAgIGlmIChOdW1iZXIoZGlnaXRzKSkge1xuICAgICAgb3V0cHV0ID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0KE51bWJlcihkaWdpdHMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0ID0gJzAnO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXQ7XG59O1xuXG5jb25zdCBmb3JtYXRQYXNjYWxDYXNlID0gKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJ1xuICAgID8gaW5wdXRcbiAgICAgICAgLnJlcGxhY2UoLyhbYS16XXsxfSkoW0EtWl17MX0pL2csICckMSAkMicpXG4gICAgICAgIC5yZXBsYWNlKC9bXFxzXy1dL2csICcgJylcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnNwbGl0KCcgJylcbiAgICAgICAgLm1hcCgod29yZCkgPT4gd29yZC5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKSlcbiAgICAgICAgLmpvaW4oJycpXG4gICAgOiBpbnB1dDtcbn07XG5cbmNvbnN0IGZvcm1hdFBob25lID0gKGlucHV0OiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBsZXQgb3V0cHV0ID0gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJyA/IFN0cmluZyhpbnB1dCkgOiBTdHJpbmcoaW5wdXQgfHwgJycpO1xuICBsZXQgZGlnaXRzID0gb3V0cHV0O1xuICBkaWdpdHMgPSBkaWdpdHMucmVwbGFjZSgvXFxEL2csICcnKTtcblxuICBzd2l0Y2ggKGRpZ2l0cy5sZW5ndGgpIHtcbiAgICBjYXNlIDc6XG4gICAgICBvdXRwdXQgPSBgJHtkaWdpdHMuc2xpY2UoMCwgMyl9LSR7ZGlnaXRzLnNsaWNlKDMpfWA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDEwOlxuICAgICAgb3V0cHV0ID0gYCR7ZGlnaXRzLnNsaWNlKDAsIDMpfS0ke2RpZ2l0cy5zbGljZSgzLCA2KX0tJHtkaWdpdHMuc2xpY2UoNil9YDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTE6XG4gICAgICBvdXRwdXQgPSBgJHtkaWdpdHMuc2xpY2UoMCwgMSl9LSR7ZGlnaXRzLnNsaWNlKDEsIDQpfS0ke2RpZ2l0cy5zbGljZSg0LCA3KX0tJHtkaWdpdHMuc2xpY2UoNyl9YDtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBvdXRwdXQgPSBkaWdpdHM7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHJldHVybiBvdXRwdXQ7XG59O1xuXG5jb25zdCBmb3JtYXRQcmljZSA9IChpbnB1dDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgb3V0cHV0ID0gaW5wdXQgPyBmb3JtYXROdW1iZXIoaW5wdXQpIDogU3RyaW5nKGlucHV0IHx8ICcwJyk7XG4gIHJldHVybiBgJCR7b3V0cHV0fWA7XG59O1xuXG5jb25zdCBmb3JtYXRRdW90ZXMgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICBpZiAodmFsdWUuc3RhcnRzV2l0aCgnXCInKSAmJiB2YWx1ZS5lbmRzV2l0aCgnXCInKSkge1xuICAgIHJldHVybiB2YWx1ZS5zbGljZSgxLCAtMSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5jb25zdCBmb3JtYXRTZW50ZW5jZUNhc2UgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGxldCBzZW50ZW5jZUNhc2UgPSBpbnB1dDtcblxuICBpZiAoaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGxvd2VyQ2FzZSA9IGlucHV0XG4gICAgICAucmVwbGFjZSgvKFthLXpdezF9KShbQS1aXXsxfSkvZywgJyQxICQyJylcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvW1xcc18tXS9nLCAnICcpO1xuXG4gICAgc2VudGVuY2VDYXNlID0gbG93ZXJDYXNlLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBsb3dlckNhc2Uuc2xpY2UoMSk7XG4gIH1cblxuICByZXR1cm4gc2VudGVuY2VDYXNlO1xufTtcblxuY29uc3QgZm9ybWF0U25ha2VDYXNlID0gKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJ1xuICAgID8gaW5wdXRcbiAgICAgICAgLnJlcGxhY2UoLyhbYS16XXsxfSkoW0EtWl17MX0pL2csICckMSAkMicpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgIC5yZXBsYWNlKC9bXFxzXy1dL2csICdfJylcbiAgICA6IGlucHV0O1xufTtcblxuY29uc3QgZm9ybWF0VGl0bGVDYXNlID0gKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJ1xuICAgID8gaW5wdXRcbiAgICAgICAgLnJlcGxhY2UoLyhbYS16XXsxfSkoW0EtWl17MX0pL2csICckMSAkMicpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgIC5yZXBsYWNlKC9bXFxzXy1dL2csICcgJylcbiAgICAgICAgLnNwbGl0KCcgJylcbiAgICAgICAgLm1hcCgod29yZCkgPT4gd29yZC5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKSlcbiAgICAgICAgLmpvaW4oJyAnKVxuICAgIDogaW5wdXQ7XG59O1xuXG5jb25zdCBmb3JtYXRVcmxGcm9tUm9vdCA9ICh1cmw6IHN0cmluZykgPT4ge1xuICBjb25zdCB1cmxGb3JtYXR0ZWQgPSB1cmwuc3BsaXQoJy5jb20vJyk7XG5cbiAgcmV0dXJuIHVybEZvcm1hdHRlZC5sZW5ndGggPiAxID8gYC8ke3VybEZvcm1hdHRlZFsxXX1gIDogdXJsO1xufTtcblxuY29uc3QgZm9ybWF0V2VpZ2h0ID0gKGlucHV0OiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBvdXRwdXQgPSBpbnB1dCA/IGZvcm1hdE51bWJlcihpbnB1dCkgOiBTdHJpbmcoaW5wdXQgfHwgJzAnKTtcbiAgcmV0dXJuIGAke291dHB1dH0gbGJzYDtcbn07XG5cbmNvbnN0IGdldEFydGljbGUgPSAobm91bjogc3RyaW5nLCBpc1BsdXJhbCA9IGZhbHNlLCBpc0RlZmluaXRlID0gZmFsc2UpID0+IHtcbiAgY29uc3Qgdm93ZWxzID0gWydhJywgJ2UnLCAnaScsICdvJywgJ3UnXTtcbiAgY29uc3QgaXNWb3dlbExlYWRpbmcgPSB2b3dlbHMuaW5jbHVkZXMobm91bi5jaGFyQXQoMCkpO1xuXG4gIHJldHVybiBpc0RlZmluaXRlID8gJ3RoZScgOiBpc1BsdXJhbCA/ICdzb21lJyA6IGlzVm93ZWxMZWFkaW5nID8gJ2FuJyA6ICdhJztcbn07XG5cbmNvbnN0IHByaWNlVG9OdW1iZXIgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICBpZiAoTnVtYmVyLmlzTmFOKE51bWJlcih2YWx1ZSkpKSB7XG4gICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKCckJywgJycpO1xuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XG4gIH1cbiAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCk7XG59O1xuXG5jb25zdCB1bmZvcm1hdFByaWNlID0gKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBvdXRwdXQgPSBpbnB1dC5yZXBsYWNlKC9cXCQvZywgJycpLnJlcGxhY2UoLywvZywgJycpO1xuICByZXR1cm4gYCR7b3V0cHV0fWA7XG59O1xuXG5leHBvcnQge1xuICBjYXBpdGFsaXplRmlyc3QsXG4gIGZvcm1hdENhbWVsQ2FzZSxcbiAgZm9ybWF0S2ViYWJDYXNlLFxuICBmb3JtYXRMYWJlbCxcbiAgZm9ybWF0TnVtYmVyLFxuICBmb3JtYXRQYXNjYWxDYXNlLFxuICBmb3JtYXRQaG9uZSxcbiAgZm9ybWF0UHJpY2UsXG4gIGZvcm1hdFF1b3RlcyxcbiAgZm9ybWF0U2VudGVuY2VDYXNlLFxuICBmb3JtYXRTbmFrZUNhc2UsXG4gIGZvcm1hdFRpdGxlQ2FzZSxcbiAgZm9ybWF0VXJsRnJvbVJvb3QsXG4gIGZvcm1hdFdlaWdodCxcbiAgZ2V0QXJ0aWNsZSxcbiAgcHJpY2VUb051bWJlcixcbiAgdW5mb3JtYXRQcmljZSxcbn07XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBkZWZpbmVBc3luY0NvbXBvbmVudCwgbWFya1JhdywgcmVmLCB3YXRjaCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHR5cGUgeyBDb21wb25lbnQgfSBmcm9tICd2dWUnO1xuICBpbXBvcnQgdHlwZSB7IEljb24gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgdHlwZSB7IFNpemUgfSBmcm9tICdAL3R5cGVzL1NpemUnO1xuXG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgU0laRSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG4gIGltcG9ydCB7IGZvcm1hdFBhc2NhbENhc2UgfSBmcm9tICdAL3V0aWxpdGllcy9mb3JtYXQnO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgaWNvbjogSWNvbjtcbiAgICBzaXplPzogU2l6ZTtcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIHNpemU6IFNJWkUuU01BTEwsXG4gIH0pO1xuXG4gIGNvbnN0IGlubmVyU1ZHID0gcmVmPENvbXBvbmVudD4oKTtcblxuICB3YXRjaChcbiAgICAoKSA9PiBwcm9wcy5pY29uLFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gcHJvcHMuaWNvbiBhcyB1bmtub3duIGFzIHN0cmluZztcbiAgICAgIGNvbnN0IG5hbWUgPSBmb3JtYXRQYXNjYWxDYXNlKGlkKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGRlZmluZUFzeW5jQ29tcG9uZW50KCgpID0+IGltcG9ydChgLi4vYXNzZXRzL3N2Zy9pY29ucy9JY29uJHtuYW1lfS52dWVgKSk7XG5cbiAgICAgIGlubmVyU1ZHLnZhbHVlID0gbWFya1Jhdyhjb21wb25lbnQpO1xuICAgIH0sXG4gICAgeyBpbW1lZGlhdGU6IHRydWUgfVxuICApO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtaWNvbicsIHByb3BzLnNpemVdXCI+XG4gICAgPHN2Z1xuICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkJMT0NLXVwiXG4gICAgICA6ZGF0YS1pY29uPVwiaWNvblwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPENvbXBvbmVudFxuICAgICAgICA6aXM9XCJpbm5lclNWR1wiXG4gICAgICAgIHYtaWY9XCJpbm5lclNWR1wiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIC50aWRlLWljb24gc3ZnIHtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICB9XG5cbiAgLnRpZGUtaWNvbi5zbWFsbCBzdmcge1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgIGhlaWdodDogMS4yNXJlbTtcbiAgfVxuPC9zdHlsZT5cbiIsImV4cG9ydCBjb25zdCBJQ09OID0ge1xuICBBQ0NPVU5UX0JBTEFOQ0U6ICdhY2NvdW50LWJhbGFuY2UnLFxuICBBREQ6ICdhZGQnLFxuICBBSTogJ2FpJyxcbiAgQUxJR05fU1BBQ0U6ICdhbGlnbi1zcGFjZScsXG4gIEFQUExFX1BBWTogJ2FwcGxlLXBheScsXG4gIEFSUk9XX0JBQ0s6ICdhcnJvdy1iYWNrJyxcbiAgQVJST1dfRk9SV0FSRDogJ2Fycm93LWZvcndhcmQnLFxuICBBUlJPV19SSUdIVDogJ2Fycm93LXJpZ2h0JyxcbiAgQVNTSUdOTUVOVDogJ2Fzc2lnbm1lbnQnLFxuICBBV0FSRF9TVEFSOiAnYXdhcmQtc3RhcicsXG4gIEJPT0tNQVJLOiAnYm9va21hcmsnLFxuICBDQUxFTkRBUl9NT05USDogJ2NhbGVuZGFyLW1vbnRoJyxcbiAgQ0FMTDogJ2NhbGwnLFxuICBDSEVDSzogJ2NoZWNrJyxcbiAgQ0hFVlJPTl9MRUZUOiAnY2hldnJvbi1sZWZ0JyxcbiAgQ0hFVlJPTl9SSUdIVDogJ2NoZXZyb24tcmlnaHQnLFxuICBDTEVBUjogJ2NsZWFyJyxcbiAgQ0xPU0U6ICdjbG9zZScsXG4gIENZQ0xFOiAnY3ljbGUnLFxuICBERUxFVEU6ICdkZWxldGUnLFxuICBESUFNT05EOiAnZGlhbW9uZCcsXG4gIEVESVQ6ICdlZGl0JyxcbiAgRVJST1I6ICdlcnJvcicsXG4gIEVYUEFORF9DT05URU5UOiAnZXhwYW5kLWNvbnRlbnQnLFxuICBFWFBBTkRfTEVTUzogJ2V4cGFuZC1sZXNzJyxcbiAgRVhQQU5EX01PUkU6ICdleHBhbmQtbW9yZScsXG4gIEZBQ0VCT09LOiAnZmFjZWJvb2snLFxuICBGQVZPUklURTogJ2Zhdm9yaXRlJyxcbiAgRkFWT1JJVEVfRklMTEVEOiAnZmF2b3JpdGUtZmlsbGVkJyxcbiAgRk9STUFUX0JPTEQ6ICdmb3JtYXQtYm9sZCcsXG4gIEZPUk1BVF9JVEFMSUM6ICdmb3JtYXQtaXRhbGljJyxcbiAgRk9STUFUX0xJU1RfQlVMTEVURUQ6ICdmb3JtYXQtbGlzdC1idWxsZXRlZCcsXG4gIEZPUlVNOiAnZm9ydW0nLFxuICBHT09HTEU6ICdnb29nbGUnLFxuICBHT09HTEVfUEFZOiAnZ29vZ2xlLXBheScsXG4gIEdSSUQ6ICdncmlkJyxcbiAgSEVMUDogJ2hlbHAnLFxuICBJTkZPOiAnaW5mbycsXG4gIElOU0VSVF9URVhUOiAnaW5zZXJ0LXRleHQnLFxuICBJTlNUQUdSQU06ICdpbnN0YWdyYW0nLFxuICBJT1NfU0hBUkU6ICdpb3Mtc2hhcmUnLFxuICBMQVlPVVQ6ICdsYXlvdXQnLFxuICBMSU5LRURfSU46ICdsaW5rZWQgaW4nLFxuICBMT0NBTF9TSElQUElORzogJ2xvY2FsLXNoaXBwaW5nJyxcbiAgTE9DSzogJ2xvY2snLFxuICBNQUlMOiAnbWFpbCcsXG4gIE1FTlU6ICdtZW51JyxcbiAgTU9SRV9IT1JJWjogJ21vcmUtaG9yaXonLFxuICBOT1RJRklDQVRJT05TOiAnbm90aWZpY2F0aW9ucycsXG4gIE9QRU5fSU5fTkVXOiAnb3Blbi1pbi1uZXcnLFxuICBQQUxFVFRFOiAncGFsZXR0ZScsXG4gIFBBWVBBTDogJ3BheXBhbCcsXG4gIFBFUlNPTjogJ3BlcnNvbicsXG4gIFBIT1RPX0NBTUVSQTogJ3Bob3RvLWNhbWVyYScsXG4gIFBJTlRFUkVTVDogJ3BpbnRlcmVzdCcsXG4gIFBMQVlfQVJST1c6ICdwbGF5LWFycm93JyxcbiAgUkVNT1ZFOiAncmVtb3ZlJyxcbiAgUk9VTkRFRF9DT1JORVJTOiAncm91bmRlZC1jb3JuZXJzJyxcbiAgU0VBUkNIOiAnc2VhcmNoJyxcbiAgU0VMTDogJ3NlbGwnLFxuICBTSEFSRTogJ3NoYXJlJyxcbiAgU0hPUFBJTkdfQ0FSVDogJ3Nob3BwaW5nLWNhcnQnLFxuICBTTVM6ICdzbXMnLFxuICBTVEFSOiAnc3RhcicsXG4gIFNXQVBfVkVSVDogJ3N3YXAtdmVydCcsXG4gIFRIUkVFX0RfUk9UQVRJT046ICd0aHJlZS1kLXJvdGF0aW9uJyxcbiAgVFVORTogJ3R1bmUnLFxuICBUV0lUVEVSOiAndHdpdHRlcicsXG4gIFZJREVPQ0FNOiAndmlkZW9jYW0nLFxuICBWSUVXX0lOX0FSOiAndmlldy1pbi1hcicsXG4gIFZJU0lCSUxJVFk6ICd2aXNpYmlsaXR5JyxcbiAgV0FSTklORzogJ3dhcm5pbmcnLFxuICBZT1VUVUJFOiAneW91dHViZScsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBJY29uID0gKHR5cGVvZiBJQ09OKVtrZXlvZiB0eXBlb2YgSUNPTl07XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBvbk1vdW50ZWQsIHJlZiB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IFRpZGVEaXZpZGVyIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlRGl2aWRlci52dWUnO1xuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCBUaWRlSW5kaWNhdG9yIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSW5kaWNhdG9yLnZ1ZSc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG5cbiAgY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wcyh7XG4gICAgaGFzQm90dG9tRGl2aWRlcjoge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgaGFzVG9wRGl2aWRlcjoge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAgaXNBY3RpdmU6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIGlzRXhwYW5kZWRJbml0aWFsOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBpc09wdGlvbmFsOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBsYWJlbDoge1xuICAgICAgZGVmYXVsdDogJycsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBpc0V4cGFuZGVkID0gcmVmKHByb3BzLmlzRXhwYW5kZWRJbml0aWFsKTtcblxuICBsZXQgYWNjb3JkaW9uQm9keSA9IHJlZigpO1xuXG4gIGNvbnN0IHRvZ2dsZUlzRXhwYW5kZWQgPSAoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFjY29yZGlvbkJvZHkudmFsdWUgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpc0V4cGFuZGVkLnZhbHVlID0gIWlzRXhwYW5kZWQudmFsdWU7XG5cbiAgICBlbGVtZW50LnN0eWxlLmdyaWRUZW1wbGF0ZVJvd3MgPSBpc0V4cGFuZGVkLnZhbHVlID8gJzFmcicgOiAnMGZyJztcbiAgfTtcblxuICBvbk1vdW50ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhY2NvcmRpb25Cb2R5LnZhbHVlIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgZWxlbWVudC5zdHlsZS5ncmlkVGVtcGxhdGVSb3dzID0gaXNFeHBhbmRlZC52YWx1ZSA/ICcxZnInIDogJzBmcic7XG4gIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInRpZGUtYWNjb3JkaW9uLWl0ZW1cIj5cbiAgICA8VGlkZURpdmlkZXIgdi1pZj1cInByb3BzLmhhc1RvcERpdmlkZXJcIiAvPlxuXG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiWyd0aWRlLWFjY29yZGlvbi1oZWFkJywgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMxLkJFVFdFRU4sIENTUy5QQURESU5HLlkuSEFMRiwgQ1NTLkNVUlNPUi5QT0lOVEVSXVwiXG4gICAgICBAY2xpY2s9XCJ0b2dnbGVJc0V4cGFuZGVkXCJcbiAgICA+XG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLkhBTEYsIENTUy5GT05ULldFSUdIVC5TRVZFTl9IVU5EUkVEXVwiPlxuICAgICAgICA8c3Bhbj57eyBwcm9wcy5sYWJlbCB9fTwvc3Bhbj5cblxuICAgICAgICA8c3BhblxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlRdXCJcbiAgICAgICAgICB2LWlmPVwicHJvcHMuaXNPcHRpb25hbFwiXG4gICAgICAgID5cbiAgICAgICAgICAob3B0aW9uYWwpXG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8VGlkZUluZGljYXRvciB2LWlmPVwicHJvcHMuaXNBY3RpdmVcIiAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxUaWRlSWNvbiA6aWNvbj1cImlzRXhwYW5kZWQgPyBJQ09OLkVYUEFORF9MRVNTIDogSUNPTi5FWFBBTkRfTU9SRVwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbJ3RpZGUtYWNjb3JkaW9uLWJvZHknLCBDU1MuRElTUExBWS5HUklEXVwiXG4gICAgICByZWY9XCJhY2NvcmRpb25Cb2R5XCJcbiAgICA+XG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuT1ZFUkZMT1cuWS5ISURERU5dXCI+XG4gICAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5NQVJHSU4uWS5PTkUsIENTUy5GT05ULldFSUdIVC5GT1VSX0hVTkRSRUQsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuREVGQVVMVF1cIj5cbiAgICAgICAgICA8c2xvdCAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPFRpZGVEaXZpZGVyIHYtaWY9XCJwcm9wcy5oYXNCb3R0b21EaXZpZGVyXCIgLz5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS1hY2NvcmRpb24tYm9keSB7XG4gICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cbjwvc3R5bGU+XG4iLCJleHBvcnQgY29uc3QgRUxFTUVOVCA9IHtcbiAgQlVUVE9OOiAnYnV0dG9uJyxcbiAgTElOSzogJ2EnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEVMRU1FTlRfVEVYVF9BU19JQ09OID0ge1xuICBCVVRUT046ICdidXR0b24nLFxuICBESVY6ICdkaXYnLFxuICBMSU5LOiAnYScsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBFbGVtZW50ID0gKHR5cGVvZiBFTEVNRU5UKVtrZXlvZiB0eXBlb2YgRUxFTUVOVF07XG5leHBvcnQgdHlwZSBFbGVtZW50VGV4dEFzSWNvbiA9ICh0eXBlb2YgRUxFTUVOVF9URVhUX0FTX0lDT04pW2tleW9mIHR5cGVvZiBFTEVNRU5UX1RFWFRfQVNfSUNPTl07XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSB2dWUvc29ydC1rZXlzICovXG5cbmV4cG9ydCBjb25zdCBQUklPUklUWSA9IHtcbiAgUFJJTUFSWTogJ3ByaW1hcnknLFxuICBTRUNPTkRBUlk6ICdzZWNvbmRhcnknLFxuICBURVJUSUFSWTogJ3RlcnRpYXJ5JyxcbiAgUVVBVEVSTkFSWTogJ3F1YXRlcm5hcnknLFxuICBGTE9BVElORzogJ2Zsb2F0aW5nJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFByaW9yaXR5ID0gKHR5cGVvZiBQUklPUklUWSlba2V5b2YgdHlwZW9mIFBSSU9SSVRZXTtcbiIsImV4cG9ydCBjb25zdCBUQVJHRVQgPSB7XG4gIEJMQU5LOiAnX2JsYW5rJyxcbiAgU0VMRjogdW5kZWZpbmVkLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVGFyZ2V0ID0gKHR5cGVvZiBUQVJHRVQpW2tleW9mIHR5cGVvZiBUQVJHRVRdO1xuIiwiZXhwb3J0IGNvbnN0IEFMRVJUID0ge1xuICBFUlJPUjogJ2Vycm9yJyxcbiAgSU5GTzogJ2luZm8nLFxuICBTVUNDRVNTOiAnc3VjY2VzcycsXG4gIFdBUk5JTkc6ICd3YXJuaW5nJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEFsZXJ0ID0gKHR5cGVvZiBBTEVSVClba2V5b2YgdHlwZW9mIEFMRVJUXTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IEFsZXJ0IH0gZnJvbSAnQC90eXBlcy9BbGVydCc7XG4gIGltcG9ydCB0eXBlIHsgSWNvbiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgVGlkZUJ1dHRvbkljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVCdXR0b25JY29uLnZ1ZSc7XG4gIGltcG9ydCB7IEFMRVJUIH0gZnJvbSAnQC90eXBlcy9BbGVydCc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFBSSU9SSVRZIH0gZnJvbSAnQC90eXBlcy9Qcmlvcml0eSc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBoZWFkaW5nPzogc3RyaW5nO1xuICAgIGlzVG9hc3Q/OiBib29sZWFuO1xuICAgIHR5cGU/OiBBbGVydDtcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGhlYWRpbmc6IHVuZGVmaW5lZCxcbiAgICBpc1RvYXN0OiBmYWxzZSxcbiAgICB0eXBlOiBBTEVSVC5JTkZPLFxuICB9KTtcblxuICBjb25zdCBpY29uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGxldCBpY29uOiBJY29uID0gSUNPTi5WSUVXX0lOX0FSO1xuXG4gICAgc3dpdGNoIChwcm9wcy50eXBlKSB7XG4gICAgICBjYXNlIEFMRVJULkVSUk9SOlxuICAgICAgICBpY29uID0gSUNPTi5FUlJPUjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSBBTEVSVC5JTkZPOlxuICAgICAgICBpY29uID0gSUNPTi5JTkZPO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQUxFUlQuU1VDQ0VTUzpcbiAgICAgICAgaWNvbiA9IElDT04uQ0hFQ0s7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBBTEVSVC5XQVJOSU5HOlxuICAgICAgICBpY29uID0gSUNPTi5XQVJOSU5HO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gaWNvbjtcbiAgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiW1xuICAgICAgcHJvcHMudHlwZSxcbiAgICAgICd0aWRlLWFsZXJ0JyxcbiAgICAgIENTUy5ESVNQTEFZLkdSSUQsXG4gICAgICBDU1MuQk9SREVSLlJBRElVUy5IQUxGLFxuICAgICAgQ1NTLlBBRERJTkcuRlVMTC5PTkUsXG4gICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5FUlJPUiAmJiBDU1MuQkcuU1VSRkFDRS5FUlJPUixcbiAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULklORk8gJiYgQ1NTLkJHLlNVUkZBQ0UuSU5GTyxcbiAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULlNVQ0NFU1MgJiYgQ1NTLkJHLlNVUkZBQ0UuU1VDQ0VTUyxcbiAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULldBUk5JTkcgJiYgQ1NTLkJHLlNVUkZBQ0UuV0FSTklORyxcbiAgICAgIHByb3BzLmlzVG9hc3QgPyBDU1MuU0hBRE9XLkJPVFRPTSA6ICcnLFxuICAgIF1cIlxuICA+XG4gICAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtYWxlcnQtaWNvbicsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVJdXCI+XG4gICAgICA8VGlkZUljb25cbiAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgIHByb3BzLnR5cGUsXG4gICAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuRlVMTCxcbiAgICAgICAgICBDU1MuUEFERElORy5GVUxMLkhBTEYsXG4gICAgICAgICAgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5JTlZFUlNFLFxuICAgICAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULkVSUk9SICYmIENTUy5CRy5FUlJPUixcbiAgICAgICAgICBwcm9wcy50eXBlID09PSBBTEVSVC5JTkZPICYmIENTUy5CRy5JTkZPLFxuICAgICAgICAgIHByb3BzLnR5cGUgPT09IEFMRVJULlNVQ0NFU1MgJiYgQ1NTLkJHLlNVQ0NFU1MsXG4gICAgICAgICAgcHJvcHMudHlwZSA9PT0gQUxFUlQuV0FSTklORyAmJiBDU1MuQkcuV0FSTklORyxcbiAgICAgICAgXVwiXG4gICAgICAgIDppY29uPVwiaWNvblwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtYWxlcnQtaGVhZGluZycsIENTUy5ESVNQTEFZLkZMRVgsIENTUy5BWElTMi5DRU5URVJdXCI+XG4gICAgICA8aDIgOmNsYXNzPVwiW0NTUy5GT05ULlNJWkUuU0lYVEVFTiwgQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVELCBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLkRFRkFVTFRdXCI+XG4gICAgICAgIHt7IHByb3BzLmhlYWRpbmcgfX1cbiAgICAgIDwvaDI+XG4gICAgPC9kaXY+XG5cbiAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgIDpjbGFzcz1cIlsndGlkZS1hbGVydC1jbG9zZScsIENTUy5BWElTMi5DRU5URVIsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuREVGQVVMVF1cIlxuICAgICAgOmljb249XCJJQ09OLkNMT1NFXCJcbiAgICAgIDpwcmlvcml0eT1cIlBSSU9SSVRZLlFVQVRFUk5BUllcIlxuICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIGFsZXJ0XCJcbiAgICAvPlxuXG4gICAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtYWxlcnQtYm9keScsIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRUQsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVF1cIj5cbiAgICAgIDxzbG90IC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtYWxlcnQge1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAnaWNvbiBoZWFkaW5nIGNsb3NlJ1xuICAgICAgJy4gYm9keSAuJztcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gICAgZ3JpZC1jb2x1bW4tZ2FwOiAwLjVyZW07XG4gICAgbWF4LXdpZHRoOiA0MHJlbTtcbiAgfVxuXG4gIC50aWRlLWFsZXJ0LWljb24ge1xuICAgIGdyaWQtYXJlYTogaWNvbjtcbiAgfVxuXG4gIC50aWRlLWFsZXJ0LWhlYWRpbmcge1xuICAgIGdyaWQtYXJlYTogaGVhZGluZztcbiAgfVxuXG4gIC50aWRlLWFsZXJ0LWNsb3NlIHtcbiAgICBncmlkLWFyZWE6IGNsb3NlO1xuICB9XG5cbiAgLnRpZGUtYWxlcnQtYm9keSB7XG4gICAgZ3JpZC1hcmVhOiBib2R5O1xuICB9XG48L3N0eWxlPlxuIiwiZXhwb3J0IGNvbnN0IEJBREdFID0ge1xuICBKVVNUX0xJU1RFRDogJ0p1c3QgbGlzdGVkJyxcbiAgTkFUSU9OV0lERTogJ05hdGlvbndpZGUnLFxuICBSRURVQ0VEOiAnUmVkdWNlZCcsXG4gIFVQREFURUQ6ICdVcGRhdGVkJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBCQURHRV9QUkVNSVVNID0ge1xuICBQUkVNSVVNOiAnUHJlbWl1bScsXG4gIFBSRU1JVU1fU0VMRUNUOiAnUHJlbWl1bSBTRUxFQ1QnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IEJBREdFX1RSVVNURUQgPSB7XG4gIFlFQVJTXzEwOiAnMTAnLFxuICBZRUFSU18xNTogJzE1JyxcbiAgWUVBUlNfNTogJzUnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQmFkZ2UgPSAodHlwZW9mIEJBREdFKVtrZXlvZiB0eXBlb2YgQkFER0VdO1xuZXhwb3J0IHR5cGUgQmFkZ2VQcmVtaXVtID0gKHR5cGVvZiBCQURHRV9QUkVNSVVNKVtrZXlvZiB0eXBlb2YgQkFER0VfUFJFTUlVTV07XG5leHBvcnQgdHlwZSBCYWRnZVRydXN0ZWRZZWFycyA9ICh0eXBlb2YgQkFER0VfVFJVU1RFRClba2V5b2YgdHlwZW9mIEJBREdFX1RSVVNURURdO1xuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgb25Nb3VudGVkLCBvblVubW91bnRlZCwgb25VcGRhdGVkLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZUJ1dHRvbkljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVCdXR0b25JY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFBSSU9SSVRZIH0gZnJvbSAnQC90eXBlcy9Qcmlvcml0eSc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBpc1RvdWNoc2NyZWVuPzogYm9vbGVhbjtcbiAgICBvZmZzZXRYPzogbnVtYmVyO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgb2Zmc2V0WDogMCxcbiAgfSk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2hhbmdlJ10pO1xuXG4gIGxldCBjb250ZW50V2lkdGggPSByZWYoKTtcbiAgbGV0IGZyYW1lV2lkdGggPSByZWYoKTtcbiAgbGV0IGhhc092ZXJmbG93ID0gcmVmKCk7XG4gIGxldCBsYXN0UG9zaXRpb24gPSByZWYoKTtcblxuICBjb25zdCBjb250ZW50UmVmID0gcmVmKCk7XG4gIGNvbnN0IGZyYW1lUmVmID0gcmVmKCk7XG4gIGNvbnN0IHNob3dCdXR0b25zID0gcmVmKCk7XG4gIGNvbnN0IGN1cnJlbnRTbGlkZSA9IHJlZigwKTtcblxuICBjb25zdCBnYXAgPSAxNjtcblxuICAvKipcbiAgICogTWVhc3VyZSB0aGUgY3VycmVudCBzbGlkZSBiYXNlZCBvbiB0aGUgc2Nyb2xsXG4gICAqIHBvc2l0aW9uIG9mIHRoZSBmcmFtZS4gVGhlIGN1cnJlbnQgc2xpZGUgaXNcbiAgICogdGhlIHNsaWRlIHRoYXQgaXMgY2xvc2VzdCB0byB0aGUgbGVmdCBlZGdlIG9mXG4gICAqIHRoZSBmcmFtZS5cbiAgICovXG4gIGNvbnN0IG1lYXN1cmVDdXJyZW50U2xpZGUgPSAoKSA9PiB7XG4gICAgLy8gZ2V0IGxlZnQgb2Zmc2V0cyBvZiBlYWNoIHNsaWRlXG4gICAgY29uc3Qgc2xpZGVPZmZzZXRzID0gQXJyYXkuZnJvbShjb250ZW50UmVmLnZhbHVlLmNoaWxkcmVuKS5tYXAoKHNsaWRlOiBhbnkpID0+IHNsaWRlLm9mZnNldExlZnQpO1xuXG4gICAgaWYgKHNsaWRlT2Zmc2V0cy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIC8vIGdldCB2YWx1ZSBjbG9zZXN0IHRvIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uXG4gICAgY29uc3QgY2xvc2VzdFNsaWRlT2Zmc2V0ID0gc2xpZGVPZmZzZXRzLnJlZHVjZSgocHJldiwgY3VycikgPT4ge1xuICAgICAgcmV0dXJuIE1hdGguYWJzKGN1cnIgLSBmcmFtZVJlZi52YWx1ZS5zY3JvbGxMZWZ0KSA8IE1hdGguYWJzKHByZXYgLSBmcmFtZVJlZi52YWx1ZS5zY3JvbGxMZWZ0KSA/IGN1cnIgOiBwcmV2O1xuICAgIH0pO1xuXG4gICAgLy8gc2V0IGN1cnJlbnQgc2xpZGUgdG8gaW5kZXggb2YgY2xvc2VzdCBzbGlkZVxuICAgIGN1cnJlbnRTbGlkZS52YWx1ZSA9IHNsaWRlT2Zmc2V0cy5pbmRleE9mKGNsb3Nlc3RTbGlkZU9mZnNldCk7XG4gIH07XG5cbiAgY29uc3QgbWVhc3VyZURvbSA9ICgpID0+IHtcbiAgICBjb250ZW50V2lkdGgudmFsdWUgPSBjb250ZW50UmVmLnZhbHVlLnNjcm9sbFdpZHRoO1xuICAgIGZyYW1lV2lkdGgudmFsdWUgPSBmcmFtZVJlZi52YWx1ZS5jbGllbnRXaWR0aDtcbiAgICBoYXNPdmVyZmxvdy52YWx1ZSA9IGNvbnRlbnRXaWR0aC52YWx1ZSA+IGZyYW1lV2lkdGgudmFsdWU7XG4gICAgbGFzdFBvc2l0aW9uLnZhbHVlID0gZnJhbWVSZWYudmFsdWUuc2Nyb2xsV2lkdGggLSBmcmFtZVJlZi52YWx1ZS5jbGllbnRXaWR0aDtcbiAgICBzaG93QnV0dG9ucy52YWx1ZSA9IGhhc092ZXJmbG93LnZhbHVlICYmICFwcm9wcy5pc1RvdWNoc2NyZWVuO1xuXG4gICAgbWVhc3VyZUN1cnJlbnRTbGlkZSgpO1xuICB9O1xuXG4gIC8vIFRPRE86IGRlYm91bmNlIHRoaXNcbiAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgIG1lYXN1cmVEb20oKTtcbiAgfTtcblxuICAvKipcbiAgICogU2Nyb2xscyB0byB0aGUgc2xpZGUgYXQgdGhlIGdpdmVuIGluZGV4LCBvclxuICAgKiB0byB0aGUgZmlyc3Qgb3IgbGFzdCBzbGlkZSBpZiB0aGUgZ2l2ZW4gaW5kZXhcbiAgICogaXMgb3V0IG9mIGJvdW5kcy5cbiAgICogQHBhcmFtIHNsaWRlSW5kZXggVGhlIGluZGV4IG9mIHRoZSBzbGlkZSB0byBzY3JvbGwgdG9cbiAgICovXG4gIGNvbnN0IHNjcm9sbFRvU2xpZGUgPSAoc2xpZGVJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgZnJhbWVSZWYudmFsdWUuc2Nyb2xsVG8oe1xuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgbGVmdDogY29udGVudFJlZi52YWx1ZS5jaGlsZHJlbltzbGlkZUluZGV4XS5vZmZzZXRMZWZ0LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHNob3dOZXh0U2xpZGUgPSAoKSA9PiB7XG4gICAgY29uc3QgY29udGVudFdpZHRoID0gY29udGVudFJlZi52YWx1ZS5zY3JvbGxXaWR0aDtcbiAgICBjb25zdCBjb250ZW50UmlnaHRFZGdlID0gZnJhbWVSZWYudmFsdWUuc2Nyb2xsTGVmdCArIGZyYW1lUmVmLnZhbHVlLmNsaWVudFdpZHRoO1xuXG4gICAgaWYgKGNvbnRlbnRSaWdodEVkZ2UgPiBjb250ZW50V2lkdGgpIHtcbiAgICAgIGZyYW1lUmVmLnZhbHVlLnNjcm9sbFRvKHtcbiAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICBsZWZ0OiBjb250ZW50V2lkdGgsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXNGaXJzdFNsaWRlV2l0aE9mZnNldCA9IHByb3BzLm9mZnNldFggJiYgY3VycmVudFNsaWRlLnZhbHVlID09PSAwO1xuICAgICAgY29uc3QgaXNMYXN0U2xpZGUgPSBjb250ZW50UmlnaHRFZGdlID09PSBjb250ZW50V2lkdGg7XG4gICAgICBjb25zdCBuZXh0U2xpZGUgPSBpc0xhc3RTbGlkZSA/IDAgOiBpc0ZpcnN0U2xpZGVXaXRoT2Zmc2V0ID8gMiA6IGN1cnJlbnRTbGlkZS52YWx1ZSArIDE7XG5cbiAgICAgIHNjcm9sbFRvU2xpZGUobmV4dFNsaWRlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2hvd1ByZXZpb3VzU2xpZGUgPSAoKSA9PiB7XG4gICAgY29uc3QgZmlyc3RTbGlkZSA9IHByb3BzLm9mZnNldFggPyAxIDogMDtcbiAgICBjb25zdCBpc0ZpcnN0U2xpZGUgPSBjdXJyZW50U2xpZGUudmFsdWUgLSAxID09PSBmaXJzdFNsaWRlO1xuICAgIGNvbnN0IGlzU2Vjb25kU2xpZGUgPSBjdXJyZW50U2xpZGUudmFsdWUgPD0gZmlyc3RTbGlkZTtcbiAgICBjb25zdCBwcmV2aW91c1NsaWRlID0gaXNTZWNvbmRTbGlkZVxuICAgICAgPyBjb250ZW50UmVmLnZhbHVlLmNoaWxkcmVuLmxlbmd0aCAtIDFcbiAgICAgIDogaXNGaXJzdFNsaWRlXG4gICAgICA/IDBcbiAgICAgIDogY3VycmVudFNsaWRlLnZhbHVlIC0gMTtcblxuICAgIHNjcm9sbFRvU2xpZGUocHJldmlvdXNTbGlkZSk7XG4gIH07XG5cbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG1lYXN1cmVEb20pO1xuXG4gIG9uTW91bnRlZCgoKSA9PiB7XG4gICAgbWVhc3VyZURvbSgpO1xuICB9KTtcblxuICBvblVubW91bnRlZCgoKSA9PiB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG1lYXN1cmVEb20pO1xuICB9KTtcblxuICBvblVwZGF0ZWQoKCkgPT4ge1xuICAgIG1lYXN1cmVEb20oKTtcbiAgfSk7XG5cbiAgd2F0Y2goY3VycmVudFNsaWRlLCAoKSA9PiB7XG4gICAgZW1pdCgnY2hhbmdlJywgY3VycmVudFNsaWRlLnZhbHVlKTtcbiAgfSk7XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8c2VjdGlvblxuICAgIDpjbGFzcz1cIlsndGlkZS1jYXJvdXNlbCcsIENTUy5QT1NJVElPTi5SRUxBVElWRSwgQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLldJRFRILkZVTExdXCJcbiAgICByZWY9XCJjYXJvdXNlbFJlZlwiXG4gID5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbQ1NTLlNDUk9MTEJBUi5PRkYsIENTUy5TTkFQLk9OLCBDU1MuT1ZFUkZMT1cuWC5TQ1JPTExdXCJcbiAgICAgIHJlZj1cImZyYW1lUmVmXCJcbiAgICAgIEBzY3JvbGw9XCJoYW5kbGVTY3JvbGxcIlxuICAgID5cbiAgICAgIDx1bFxuICAgICAgICA6Y2xhc3M9XCJbcHJvcHMuaXNUb3VjaHNjcmVlbiA/IFtDU1MuT1ZFUkZMT1cuWC5BVVRPXSA6ICcnLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuR0FQLk9ORSwgQ1NTLkxJU1RfQlVMTEVUUy5PRkZdXCJcbiAgICAgICAgcmVmPVwiY29udGVudFJlZlwiXG4gICAgICA+XG4gICAgICAgIDxsaVxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuRkxFWC5TSFJJTksuT0ZGLCBDU1MuU05BUF9BTElHTi5TVEFSVF1cIlxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGAke3Byb3BzLm9mZnNldFggLSBnYXB9cHhgIH1cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5vZmZzZXRYXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8c2xvdCAvPlxuXG4gICAgICAgIDxsaVxuICAgICAgICAgIDpjbGFzcz1cIltDU1MuRkxFWC5TSFJJTksuT0ZGLCBDU1MuU05BUF9BTElHTi5TVEFSVF1cIlxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGAke3Byb3BzLm9mZnNldFggLSBnYXB9cHhgIH1cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5vZmZzZXRYXCJcbiAgICAgICAgLz5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgIENTUy5QT1NJVElPTi5BQlNPTFVURSxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMxLkJFVFdFRU4sXG4gICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgIENTUy5XSURUSC5GVUxMLFxuICAgICAgICBDU1MuSEVJR0hULkZVTEwsXG4gICAgICAgIENTUy5QT0lOVEVSX0VWRU5UUy5PRkYsXG4gICAgICBdXCJcbiAgICAgIHYtaWY9XCJzaG93QnV0dG9uc1wiXG4gICAgPlxuICAgICAgPFRpZGVCdXR0b25JY29uXG4gICAgICAgIDpjbGFzcz1cIltDU1MuTUFSR0lOLkxFRlQuT05FLCBDU1MuUE9JTlRFUl9FVkVOVFMuT05dXCJcbiAgICAgICAgOmljb249XCJJQ09OLkNIRVZST05fTEVGVFwiXG4gICAgICAgIDpwcmlvcml0eT1cIlBSSU9SSVRZLlFVQVRFUk5BUllcIlxuICAgICAgICBAY2xpY2s9XCJzaG93UHJldmlvdXNTbGlkZVwiXG4gICAgICAvPlxuXG4gICAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgICAgOmNsYXNzPVwiW0NTUy5NQVJHSU4uUklHSFQuT05FLCBDU1MuUE9JTlRFUl9FVkVOVFMuT05dXCJcbiAgICAgICAgOmljb249XCJJQ09OLkNIRVZST05fUklHSFRcIlxuICAgICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgICAgQGNsaWNrPVwic2hvd05leHRTbGlkZVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG48L3RlbXBsYXRlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgb25Nb3VudGVkLCBvbkJlZm9yZVVubW91bnQsIHJlZiB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuXG4gIHR5cGUgUHJvcHMgPSB7XG4gICAgYWx0Pzogc3RyaW5nO1xuICAgIGNkbj86IHN0cmluZztcbiAgICBpc0xhenk/OiBib29sZWFuO1xuICAgIG9mZnNldD86IG51bWJlcjtcbiAgICBzcmM/OiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBhbHQ6ICcnLFxuICAgIGNkbjogdW5kZWZpbmVkLFxuICAgIGlzTGF6eTogdHJ1ZSxcbiAgICBvZmZzZXQ6IDAsXG4gICAgc3JjOiB1bmRlZmluZWQsXG4gIH0pO1xuXG4gIGNvbnN0IHRpZGVJbWFnZSA9IHJlZigpO1xuXG4gIGNvbnN0IGltYWdlRGVmYXVsdCA9IGAke3Byb3BzLmNkbn0vaW1hZ2UtY29taW5nLXNvb24tNTEyLnBuZ2A7XG5cbiAgY29uc3QgbG9hZEltYWdlID0gKCkgPT4ge1xuICAgIGlmIChwcm9wcy5zcmMpIHtcbiAgICAgIGNvbnN0IGltYWdlTG9hZGVyID0gbmV3IEltYWdlKCk7XG5cbiAgICAgIGltYWdlTG9hZGVyLm9ubG9hZCA9IHNldEltYWdlRnJvbVNyYztcbiAgICAgIGltYWdlTG9hZGVyLm9uZXJyb3IgPSBzZXRJbWFnZUZyb21EZWZhdWx0O1xuICAgICAgaW1hZ2VMb2FkZXIuc3JjID0gcHJvcHMuc3JjO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzZXRJbWFnZUZyb21EZWZhdWx0ID0gKCkgPT4ge1xuICAgIHRpZGVJbWFnZS52YWx1ZS5zcmMgPSBpbWFnZURlZmF1bHQ7XG4gIH07XG5cbiAgY29uc3Qgc2V0SW1hZ2VGcm9tU3JjID0gKCkgPT4ge1xuICAgIHRpZGVJbWFnZS52YWx1ZS5zcmMgPSBwcm9wcy5zcmM7XG4gIH07XG5cbiAgZGVmaW5lRXhwb3NlKHRpZGVJbWFnZS52YWx1ZSk7XG5cbiAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMsIG9ic2VydmVyKSA9PiB7XG4gICAgZW50cmllcy5mb3JFYWNoKFxuICAgICAgKGVudHJ5KSA9PiB7XG4gICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgIGxvYWRJbWFnZSgpO1xuICAgICAgICAgIG9ic2VydmVyLnVub2JzZXJ2ZShlbnRyeS50YXJnZXQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByb290TWFyZ2luOiBgJHtwcm9wcy5vZmZzZXR9cHhgLFxuICAgICAgfVxuICAgICk7XG4gIH0pO1xuXG4gIG9uTW91bnRlZCgoKSA9PiB7XG4gICAgaWYgKHByb3BzLmlzTGF6eSkge1xuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0aWRlSW1hZ2UudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2FkSW1hZ2UoKTtcbiAgICB9XG4gIH0pO1xuXG4gIG9uQmVmb3JlVW5tb3VudCgoKSA9PiB7XG4gICAgb2JzZXJ2ZXIudW5vYnNlcnZlKHRpZGVJbWFnZS52YWx1ZSk7XG4gIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGltZ1xuICAgIDphbHQ9XCJhbHRcIlxuICAgIDpjbGFzcz1cIlsndGlkZS1pbWFnZScsIENTUy5PQkpFQ1QuQ0VOVEVSLCBDU1MuT0JKRUNULkNPVkVSXVwiXG4gICAgcmVmPVwidGlkZUltYWdlXCJcbiAgICA6c3JjPVwiaXNMYXp5ICYmIHNyYyA/IHNyYyA6IGltYWdlRGVmYXVsdFwiXG4gIC8+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgZ2V0Q3VycmVudEluc3RhbmNlLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBjaGVja2VkPzogYm9vbGVhbjtcbiAgICBkYXRhVHJhY2s/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBjaGVja2VkOiBmYWxzZSxcbiAgICBkYXRhVHJhY2s6ICcnLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBpbnB1dElkOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgY29uc3QgY2hlY2tlZCA9IHJlZihwcm9wcy5jaGVja2VkKTtcblxuICBjb25zdCB1bmlxdWVJZCA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5pbnB1dElkID8gcHJvcHMuaW5wdXRJZCA6IGB0ZXh0LWlucHV0LSR7Z2V0Q3VycmVudEluc3RhbmNlKCk/LnVpZCB8fCAnJ31gKSk7XG5cbiAgd2F0Y2gocHJvcHMsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICBpZiAobmV3VmFsdWUuY2hlY2tlZCAhPT0gb2xkVmFsdWUuY2hlY2tlZCB8fCBuZXdWYWx1ZS5jaGVja2VkICE9PSBjaGVja2VkLnZhbHVlKSB7XG4gICAgICBjaGVja2VkLnZhbHVlID0gcHJvcHMuY2hlY2tlZDtcbiAgICB9XG4gIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtaW5wdXQtcmFkaW8nLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLkhBTEYsIHByb3BzLmRpc2FibGVkICYmICdkaXNhYmxlZCddXCI+XG4gICAgPGlucHV0XG4gICAgICA6Y2hlY2tlZD1cImNoZWNrZWRcIlxuICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLk5PTkVdXCJcbiAgICAgIDppZD1cInVuaXF1ZUlkXCJcbiAgICAgIG5hbWU9XCJcIlxuICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgIHZhbHVlPVwiXCJcbiAgICAvPlxuXG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS1pbnB1dC1yYWRpby1jdXN0b20nLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5ESVNQTEFZLkZMRVgsXG4gICAgICAgIENTUy5BWElTMS5DRU5URVIsXG4gICAgICAgIENTUy5BWElTMi5DRU5URVIsXG4gICAgICAgIENTUy5CT1JERVIuRlVMTC5PTkUsXG4gICAgICAgIGNoZWNrZWQgPyBDU1MuQk9SREVSLkNPTE9SLkhJR0ggOiBDU1MuQk9SREVSLkNPTE9SLkRFRkFVTFQsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkZVTEwsXG4gICAgICAgIGNoZWNrZWQgJiYgJ2NoZWNrZWQnLFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPGRpdiA6Y2xhc3M9XCJbJ3RpZGUtaW5wdXQtcmFkaW8tY2hlY2snLCBDU1MuQk9SREVSLlJBRElVUy5GVUxMLCBwcm9wcy5jaGVja2VkICYmIENTUy5CRy5TRUNPTkRBUlldXCIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxsYWJlbFxuICAgICAgOmNsYXNzPVwiQ1NTLkZPTlQuV0VJR0hULkZPVVJfSFVORFJFRFwiXG4gICAgICA6Zm9yPVwidW5pcXVlSWRcIlxuICAgID5cbiAgICAgIHt7IHByb3BzLmxhYmVsIH19XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS1pbnB1dC1yYWRpby5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogdmFyKC0tdGlkZS1kaXNhYmxlZCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1yYWRpby1jdXN0b20ge1xuICAgIHdpZHRoOiB2YXIoLS10aWRlLWZvbnQtMjgpO1xuICAgIGhlaWdodDogdmFyKC0tdGlkZS1mb250LTI4KTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXJhZGlvLWNoZWNrIHtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gIH1cbjwvc3R5bGU+XG4iLCJpbXBvcnQgdHlwZSB7IFJlZiB9IGZyb20gJ3Z1ZSc7XG5cbmltcG9ydCB0eXBlIHsgUmFuZ2VEYXRhIH0gZnJvbSAnQC90eXBlcy9GYWNldFJhbmdlJztcbmltcG9ydCB0eXBlIHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnQC90eXBlcy9TZWxlY3QnO1xuaW1wb3J0IHR5cGUgeyBTdHJpbmdJbnB1dCB9IGZyb20gJ0AvdHlwZXMvRm9ybSc7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25FcnJvciwgVmFsaWRhdGlvbkxlbmd0aCwgVmFsaWRhdGlvblJlc3VsdCwgVmFsaWRhdG9yIH0gZnJvbSAnQC90eXBlcy9WYWxpZGF0aW9uJztcblxuaW1wb3J0IHsgcHJpY2VUb051bWJlciB9IGZyb20gJ0AvdXRpbGl0aWVzL2Zvcm1hdCc7XG5cbmV4cG9ydCBjb25zdCBlcnJvck1lc3NhZ2VEZWZhdWx0ID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHZhbHVlLic7XG5cbmV4cG9ydCBjb25zdCBub0Vycm9yID0ge1xuICBtZXNzYWdlOiAnJyxcbiAgdmFsaWQ6IHRydWUsXG59IGFzIFJlYWRvbmx5PFZhbGlkYXRpb25SZXN1bHQ+O1xuXG5leHBvcnQgY29uc3QgY2hlY2tGb3JtYXQgPSAoZm9ybWF0OiBSZWdFeHApID0+IHtcbiAgcmV0dXJuICh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdGlvblJlc3VsdCA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IG5vRXJyb3I7XG5cbiAgICBpZiAoIXZhbHVlLnRyaW0oKS5tYXRjaChmb3JtYXQpKSB7XG4gICAgICByZXN1bHQgPSB7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZURlZmF1bHQsXG4gICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFcnJvck1lc3NhZ2UgPSAoZXJyb3JGcm9tUHJvcHM6IFZhbGlkYXRpb25FcnJvciwgZXJyb3JGcm9tUmVmOiBWYWxpZGF0aW9uRXJyb3IpID0+IHtcbiAgLy8gZXJyb3IgaW4gcHJvcHMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHZhbGlkYXRpb24gZXJyb3JcbiAgaWYgKHR5cGVvZiBlcnJvckZyb21Qcm9wcyA9PT0gJ3N0cmluZycgJiYgZXJyb3JGcm9tUHJvcHMubGVuZ3RoID4gMCkgcmV0dXJuIGVycm9yRnJvbVByb3BzO1xuXG4gIHJldHVybiB0eXBlb2YgZXJyb3JGcm9tUmVmID09PSAnc3RyaW5nJyAmJiBlcnJvckZyb21SZWYubGVuZ3RoID4gMCA/IGVycm9yRnJvbVJlZiA6IGVycm9yTWVzc2FnZURlZmF1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmllbGRIYXNFcnJvciA9IChlcnJvckZyb21Qcm9wczogVmFsaWRhdGlvbkVycm9yLCBlcnJvckZyb21SZWY6IFZhbGlkYXRpb25FcnJvcikgPT5cbiAgZXJyb3JGcm9tUHJvcHMgIT09IGZhbHNlIHx8IGVycm9yRnJvbVJlZiAhPT0gZmFsc2U7XG5cbmV4cG9ydCBjb25zdCBnZXRGaWVsZExlbmd0aElzVmFsaWQgPSAoeyBtYXhsZW5ndGgsIG1pbmxlbmd0aCwgdmFsdWUgfTogVmFsaWRhdGlvbkxlbmd0aCkgPT4ge1xuICBjb25zdCB0b29TaG9ydCA9IG1heGxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiBtYXhsZW5ndGg7XG4gIGNvbnN0IHRvb0xvbmcgPSBtaW5sZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgbWlubGVuZ3RoO1xuXG4gIHJldHVybiAhdG9vU2hvcnQgJiYgIXRvb0xvbmc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWF4UmFuZ2VJc1ZhbGlkID0gKHsgbWluIH06IFBpY2s8UmFuZ2VEYXRhLCAnbWluJz4sIHR5cGU/OiAncHJpY2UnKSA9PiB7XG4gIHJldHVybiAodmFsdWU6IHN0cmluZyk6IFZhbGlkYXRpb25SZXN1bHQgPT4ge1xuICAgIGxldCBuZXdNYXg6IG51bWJlciB8IG51bGwgPSB0eXBlID09PSAncHJpY2UnID8gcHJpY2VUb051bWJlcih2YWx1ZSkgOiBOdW1iZXIodmFsdWUpO1xuICAgIG5ld01heCA9ICFpc05hTihuZXdNYXgpID8gbmV3TWF4IDogbnVsbDtcbiAgICBpZiAobWluICYmIG5ld01heCkge1xuICAgICAgaWYgKG5ld01heCA+PSBtaW4pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbWVzc2FnZTogYE11c3QgYmUgZ3JlYXRlciB0aGFuIG1pbmAsXG4gICAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbm9FcnJvcjtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWluUmFuZ2VJc1ZhbGlkID0gKHsgbWF4IH06IFBpY2s8UmFuZ2VEYXRhLCAnbWF4Jz4sIHR5cGU/OiAncHJpY2UnKSA9PiB7XG4gIHJldHVybiAodmFsdWU6IHN0cmluZyk6IFZhbGlkYXRpb25SZXN1bHQgPT4ge1xuICAgIGxldCBuZXdNaW46IG51bWJlciB8IG51bGwgPSB0eXBlID09PSAncHJpY2UnID8gcHJpY2VUb051bWJlcih2YWx1ZSkgOiBOdW1iZXIodmFsdWUpO1xuICAgIG5ld01pbiA9ICFpc05hTihuZXdNaW4pID8gbmV3TWluIDogbnVsbDtcbiAgICBpZiAobWF4ICYmIG5ld01pbikge1xuICAgICAgaWYgKG5ld01pbiA8PSBtYXgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbWVzc2FnZTogYE11c3QgYmUgbGVzcyB0aGFuIG1heGAsXG4gICAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbm9FcnJvcjtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0T3B0aW9uc0Zyb21TdHJpbmdzID0gKHN0cmluZ3M6IHN0cmluZ1tdKSA9PlxuICBzdHJpbmdzLm1hcChcbiAgICAob3B0aW9uKSA9PlxuICAgICAgKHtcbiAgICAgICAgbGFiZWw6IG9wdGlvbixcbiAgICAgICAgdmFsdWU6IG9wdGlvbixcbiAgICAgIH0gYXMgU2VsZWN0T3B0aW9uKVxuICApO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlRmllbGRWYWxpZGF0aW9uID0gKHtcbiAgZXJyb3IsXG4gIGVycm9yRnJvbVByb3BzLFxuICBtYXhsZW5ndGgsXG4gIG1pbmxlbmd0aCxcbiAgdmFsaWRhdG9ycyxcbiAgdmFsdWUsXG59OiB7XG4gIGVycm9yOiBSZWY8VmFsaWRhdGlvbkVycm9yPjtcbiAgZXJyb3JGcm9tUHJvcHM6IFZhbGlkYXRpb25FcnJvcjtcbiAgbWF4bGVuZ3RoPzogbnVtYmVyO1xuICBtaW5sZW5ndGg/OiBudW1iZXI7XG4gIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JbXTtcbiAgdmFsdWU6IFJlZjxzdHJpbmc+O1xufSkgPT4ge1xuICAvLyBlcnJvciBpbiBwcm9wcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdmFsaWRhdGlvbiBlcnJvclxuXG4gIGVycm9yLnZhbHVlID0gZXJyb3JGcm9tUHJvcHMgPyBlcnJvckZyb21Qcm9wcyA6IGZhbHNlO1xuXG4gIGlmICghZXJyb3IudmFsdWUgJiYgdmFsaWRhdG9ycykge1xuICAgIGNvbnN0IHZhbGlkYXRpb24gPSB2YWxpZGF0ZVByb3BlcnR5KHZhbHVlLnZhbHVlLCB2YWxpZGF0b3JzKTtcblxuICAgIGlmICghdmFsaWRhdGlvbi52YWxpZCkge1xuICAgICAgZXJyb3IudmFsdWUgPSB2YWxpZGF0aW9uLm1lc3NhZ2U7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFlcnJvci52YWx1ZSAmJiAobWF4bGVuZ3RoIHx8IG1pbmxlbmd0aCkpIHtcbiAgICBjb25zdCBsZW5ndGh2YWxpZGF0aW9uID0gdmFsaWRhdGVMZW5ndGgoe1xuICAgICAgbWF4bGVuZ3RoLFxuICAgICAgbWlubGVuZ3RoLFxuICAgICAgdmFsdWU6IHZhbHVlLnZhbHVlLFxuICAgIH0pO1xuXG4gICAgaWYgKCFsZW5ndGh2YWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgICBlcnJvci52YWx1ZSA9IGxlbmd0aHZhbGlkYXRpb24ubWVzc2FnZTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUZpZWxkc0Zyb21SZWZzKGZpZWxkczogeyBba2V5OiBzdHJpbmddOiBSZWY8U3RyaW5nSW5wdXQgfCBudWxsPiB9KSB7XG4gIGxldCB2YWxpZCA9IHRydWU7XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gZmllbGRzKSB7XG4gICAgaWYgKGZpZWxkc1trZXldLnZhbHVlPy5yZXF1aXJlZCkge1xuICAgICAgY29uc3QgdmFsdWUgPSBmaWVsZHNba2V5XS52YWx1ZT8udmFsdWU7XG4gICAgICB2YWxpZCA9IHZhbGlkICYmICEhdmFsdWUgJiYgdmFsdWUudHJpbSgpICE9PSAnJztcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvciA9IGZpZWxkc1trZXldLnZhbHVlPy5lcnJvcjtcbiAgICB2YWxpZCA9IHZhbGlkICYmICFlcnJvcjtcbiAgfVxuXG4gIHJldHVybiB2YWxpZDtcbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTGVuZ3RoID0gKHsgbWF4bGVuZ3RoLCBtaW5sZW5ndGgsIHZhbHVlIH06IFZhbGlkYXRpb25MZW5ndGgpOiBWYWxpZGF0aW9uUmVzdWx0ID0+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgbWVzc2FnZTogJycsXG4gICAgdmFsaWQ6IHRydWUsXG4gIH07XG5cbiAgcmVzcG9uc2UudmFsaWQgPSBnZXRGaWVsZExlbmd0aElzVmFsaWQoe1xuICAgIG1heGxlbmd0aCxcbiAgICBtaW5sZW5ndGgsXG4gICAgdmFsdWUsXG4gIH0pO1xuXG4gIGlmIChyZXNwb25zZS52YWxpZCkgcmV0dXJuIHJlc3BvbnNlO1xuXG4gIHJlc3BvbnNlLm1lc3NhZ2UgPSBlcnJvck1lc3NhZ2VEZWZhdWx0O1xuXG4gIGlmIChtYXhsZW5ndGggJiYgbWlubGVuZ3RoKSB7XG4gICAgcmVzcG9uc2UubWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSB2YWx1ZSBiZXR3ZWVuICR7bWlubGVuZ3RofSBhbmQgJHttYXhsZW5ndGh9IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLmA7XG4gIH0gZWxzZSBpZiAobWF4bGVuZ3RoKSB7XG4gICAgcmVzcG9uc2UubWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSB2YWx1ZSBubyBtb3JlIHRoYW4gJHttYXhsZW5ndGh9IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLmA7XG4gIH0gZWxzZSBpZiAobWlubGVuZ3RoKSB7XG4gICAgcmVzcG9uc2UubWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSB2YWx1ZSBubyBsZXNzIHRoYW4gJHttaW5sZW5ndGh9IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLmA7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0eSh2YWx1ZTogc3RyaW5nLCB2YWxpZGF0b3JzOiAoKHZhbHVlOiBzdHJpbmcpID0+IFZhbGlkYXRpb25SZXN1bHQpW10pOiBWYWxpZGF0aW9uUmVzdWx0IHtcbiAgZm9yIChjb25zdCB2YWxpZGF0b3Igb2YgdmFsaWRhdG9ycykge1xuICAgIGNvbnN0IHZhbGlkYXRpb24gPSB2YWxpZGF0b3IodmFsdWUpO1xuICAgIGlmICghdmFsaWRhdGlvbi52YWxpZCkge1xuICAgICAgcmV0dXJuIHZhbGlkYXRpb247XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtZXNzYWdlOiAnJyxcbiAgICB2YWxpZDogdHJ1ZSxcbiAgfTtcbn1cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGdldEN1cnJlbnRJbnN0YW5jZSwgY29tcHV0ZWQsIHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgU2VsZWN0RmllbGQgfSBmcm9tICdAL3R5cGVzL0ZpZWxkJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgSUNPTiB9IGZyb20gJ0AvdHlwZXMvSWNvbic7XG4gIGltcG9ydCB7IFNJWkUgfSBmcm9tICdAL3R5cGVzL1NpemUnO1xuICBpbXBvcnQgeyBnZXRGaWVsZEhhc0Vycm9yLCBnZXRFcnJvck1lc3NhZ2UgfSBmcm9tICdAL3V0aWxpdGllcy92YWxpZGF0aW9uJztcblxuICBpbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBTZWxlY3RGaWVsZCB7XG4gICAgaW5wdXRJZD86IHN0cmluZztcbiAgICBzdXBwb3J0aW5nVGV4dD86IHN0cmluZztcbiAgfVxuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGVycm9yOiBmYWxzZSxcbiAgICBpbnB1dElkOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6IHVuZGVmaW5lZCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgc3VwcG9ydGluZ1RleHQ6IHVuZGVmaW5lZCxcbiAgICB2YWx1ZTogJycsXG4gIH0pO1xuXG4gIGNvbnN0IGVycm9yID0gcmVmKHByb3BzLmVycm9yKTtcbiAgY29uc3QgaGFzRm9jdXMgPSByZWYoZmFsc2UpO1xuICBjb25zdCBpbnB1dCA9IHJlZjxIVE1MU2VsZWN0RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCByZXF1aXJlZCA9IHJlZihwcm9wcy5yZXF1aXJlZCk7XG4gIGNvbnN0IHZhbHVlID0gcmVmKHByb3BzLnZhbHVlKTtcblxuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBjb21wdXRlZCgoKSA9PiBnZXRFcnJvck1lc3NhZ2UocHJvcHMuZXJyb3IsIGVycm9yLnZhbHVlKSk7XG4gIGNvbnN0IGZvcm1hdHRlZExhYmVsID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLnJlcXVpcmVkID8gYCR7cHJvcHMubGFiZWx9ICpgIDogcHJvcHMubGFiZWwpKTtcbiAgY29uc3QgaGFzRXJyb3IgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgJiYgIXZhbHVlLnZhbHVlKSB8fCBnZXRGaWVsZEhhc0Vycm9yKGVycm9yLnZhbHVlLCBwcm9wcy5lcnJvcikpO1xuICBjb25zdCBoYXNNaW5pbGFiZWwgPSBjb21wdXRlZCgoKSA9PiBoYXNGb2N1cy52YWx1ZSB8fCAhaXNFbXB0eS52YWx1ZSk7XG4gIGNvbnN0IGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB2YWx1ZS52YWx1ZSA9PT0gJycpO1xuXG4gIGNvbnN0IHVuaXF1ZUlkID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLmlucHV0SWQgPyBwcm9wcy5pbnB1dElkIDogYHRleHQtaW5wdXQtJHtnZXRDdXJyZW50SW5zdGFuY2UoKT8udWlkIHx8ICcnfWApKTtcblxuICBjb25zdCBleHBhbmRPcHRpb25zID0gKCkgPT4ge1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ21vdXNlZG93bicpO1xuICAgIGlucHV0Py52YWx1ZT8uZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRm9jdXMgPSAoKSA9PiB7XG4gICAgaGFzRm9jdXMudmFsdWUgPSB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzT3V0ID0gKCkgPT4ge1xuICAgIGhhc0ZvY3VzLnZhbHVlID0gZmFsc2U7XG4gIH07XG5cbiAgd2F0Y2gocHJvcHMsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICBpZiAobmV3VmFsdWUudmFsdWUgIT09IG9sZFZhbHVlLnZhbHVlIHx8IG5ld1ZhbHVlLnZhbHVlICE9PSB2YWx1ZS52YWx1ZSkge1xuICAgICAgdmFsdWUudmFsdWUgPSBwcm9wcy52YWx1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGRlZmluZUV4cG9zZSh7IGVycm9yLCB2YWx1ZSB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXZcbiAgICA6Y2xhc3M9XCJbXG4gICAgICAndGlkZS1pbnB1dC1zZWxlY3QnLFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sXG4gICAgICBDU1MuR0FQLlFVQVJURVIsXG4gICAgICBkaXNhYmxlZCAmJiAnZGlzYWJsZWQnLFxuICAgICAgaGFzRXJyb3IgJiYgJ2Vycm9yJyxcbiAgICBdXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtaW5wdXQtYm9yZGVyJyxcbiAgICAgICAgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLFxuICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICBDU1MuQVhJUzIuQ0VOVEVSLFxuICAgICAgICBDU1MuR0FQLkhBTEYsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICAgIHByb3BzLmRpc2FibGVkID8gQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRCA6ICcnLFxuICAgICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgXVwiXG4gICAgICBAY2xpY2s9XCJleHBhbmRPcHRpb25zXCJcbiAgICA+XG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OLCBDU1MuV0lEVEguRlVMTF1cIj5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgICAgaGFzTWluaWxhYmVsID8gWydtaW5pbGFiZWwnLCBDU1MuRk9OVC5TSVpFLlRXRUxWRV0gOiBDU1MuRk9OVC5TSVpFLlNJWFRFRU4sXG4gICAgICAgICAgICBDU1MuUE9TSVRJT04uQUJTT0xVVEUsXG4gICAgICAgICAgICBDU1MuUE9TSVRJT05JTkcuTEVGVF8wLFxuICAgICAgICAgICAgQ1NTLk1BUkdJTi5UT1AuSEFMRixcbiAgICAgICAgICAgIENTUy5NQVJHSU4uTEVGVC5PTkUsXG4gICAgICAgICAgICAhaGFzRXJyb3IgJiYgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5ULFxuICAgICAgICAgICAgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRCxcbiAgICAgICAgICBdXCJcbiAgICAgICAgICA6Zm9yPVwidW5pcXVlSWRcIlxuICAgICAgICAgIHYtaWY9XCJsYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmb3JtYXR0ZWRMYWJlbCB9fVxuICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgIDxzZWxlY3RcbiAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBBRERJTkcuQk9UVE9NLkhBTEYsIENTUy5QQURESU5HLlguT05FLCBDU1MuV0lEVEguRlVMTCwgZGlzYWJsZWQgJiYgQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRF1cIlxuICAgICAgICAgIDpkaXNhYmxlZD1cImRpc2FibGVkXCJcbiAgICAgICAgICA6bmFtZT1cIm5hbWVcIlxuICAgICAgICAgIHJlZj1cImlucHV0XCJcbiAgICAgICAgICA6cmVxdWlyZWQ9XCJyZXF1aXJlZFwiXG4gICAgICAgICAgQGZvY3VzPVwiaGFuZGxlRm9jdXNcIlxuICAgICAgICAgIEBmb2N1c291dD1cImhhbmRsZUZvY3VzT3V0XCJcbiAgICAgICAgICA6aWQ9XCJ1bmlxdWVJZFwiXG4gICAgICAgICAgdi1tb2RlbD1cInZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTCwgQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVF1cIlxuICAgICAgICAgICAgOmtleT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICA6c2VsZWN0ZWQ9XCJ2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICA6dmFsdWU9XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgdi1mb3I9XCJvcHRpb24gaW4gb3B0aW9uc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBPU0lUSU9OLkFCU09MVVRFLCBDU1MuUE9TSVRJT05JTkcuUklHSFRfMCwgQ1NTLk1BUkdJTi5SSUdIVC5PTkUsIENTUy5QT0lOVEVSX0VWRU5UUy5PRkZdXCJcbiAgICAgICAgOmljb249XCJJQ09OLkVYUEFORF9NT1JFXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuTUFSR0lOLkxFRlQuT05FXVwiXG4gICAgICB2LWlmPVwicHJvcHMuc3VwcG9ydGluZ1RleHQgfHwgaGFzRXJyb3JcIlxuICAgID5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbXVwiXG4gICAgICAgIDppY29uPVwiSUNPTi5FUlJPUlwiXG4gICAgICAgIDpzaXplPVwiU0laRS5TTUFMTFwiXG4gICAgICAgIHYtaWY9XCJoYXNFcnJvclwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IDpjbGFzcz1cIltDU1MuRk9OVC5TSVpFLlRXRUxWRSwgQ1NTLkZPTlQuV0VJR0hULkZJVkVfSFVORFJFRF1cIj5cbiAgICAgICAge3sgaGFzRXJyb3IgPyBlcnJvck1lc3NhZ2UgOiBwcm9wcy5zdXBwb3J0aW5nVGV4dCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgc2VsZWN0IHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgbGFiZWwge1xuICAgIGhlaWdodDogMS4xODc1cmVtO1xuICAgIHRyYW5zaXRpb246IGZvbnQtc2l6ZSB2YXIoLS10aWRlLWFuaW1hdGUpLCB0cmFuc2Zvcm0gdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuXG4gIGxhYmVsOm5vdCgubWluaWxhYmVsKSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgY2FsYyg5IC8gMTYgKiAxcmVtKSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IHZhcigtLXRpZGUtZGlzYWJsZWQpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtc2VsZWN0LmVycm9yIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRpZGUtZXJyb3Itc3VyZmFjZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZXJyb3I6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtc2VsZWN0OmZvY3VzLXdpdGhpbiAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0yKTtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtYm9yZGVyLWhpZ2gpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMSk7XG4gICAgb3V0bGluZTogdmFyKC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoKSBzb2xpZCB2YXIoLS10aWRlLWJvcmRlcik7XG4gICAgb3V0bGluZS1vZmZzZXQ6IGNhbGModmFyKC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoKSAqIC0xKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXNlbGVjdC5lcnJvciB7XG4gICAgY29sb3I6IHZhcigtLXRpZGUtZXJyb3Itb24tc3VyZmFjZSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC1zZWxlY3QuZXJyb3Igb3B0aW9uIHtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1vbi1zdXJmYWNlKTtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgcGFkZGluZy10b3A6IDI3cHg7XG4gIH1cbjwvc3R5bGU+XG4iLCJleHBvcnQgY29uc3QgVEVYVF9JTlBVVF9UWVBFID0ge1xuICBEQVRFOiAnZGF0ZScsXG4gIERBVEVUSU1FX0xPQ0FMOiAnZGF0ZXRpbWUtbG9jYWwnLFxuICBFTUFJTDogJ2VtYWlsJyxcbiAgTU9OVEg6ICdtb250aCcsXG4gIE5VTUJFUjogJ251bWJlcicsXG4gIFBBU1NXT1JEOiAncGFzc3dvcmQnLFxuICBTRUFSQ0g6ICdzZWFyY2gnLFxuICBURUw6ICd0ZWwnLFxuICBURVhUOiAndGV4dCcsXG4gIFRJTUU6ICd0aW1lJyxcbiAgVVJMOiAndXJsJyxcbiAgV0VFSzogJ3dlZWsnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVGV4dElucHV0VHlwZSA9ICh0eXBlb2YgVEVYVF9JTlBVVF9UWVBFKVtrZXlvZiB0eXBlb2YgVEVYVF9JTlBVVF9UWVBFXTtcbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IGNvbXB1dGVkLCBnZXRDdXJyZW50SW5zdGFuY2UsIHJlZiwgd2F0Y2ggfSBmcm9tICd2dWUnO1xuXG4gIGltcG9ydCB0eXBlIHsgRm9ybVZhbHVlVHJhbnNmb3JtZXIgfSBmcm9tICdAL3R5cGVzL0Zvcm0nO1xuICBpbXBvcnQgdHlwZSB7IEljb24gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgdHlwZSB7IFRleHRJbnB1dFR5cGUgfSBmcm9tICdAL3R5cGVzL1RleHRJbnB1dCc7XG4gIGltcG9ydCB0eXBlIHsgVmFsaWRhdGlvbkVycm9yLCBWYWxpZGF0b3IgfSBmcm9tICdAL3R5cGVzL1ZhbGlkYXRpb24nO1xuXG4gIGltcG9ydCBUaWRlSWNvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUljb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgU0laRSB9IGZyb20gJ0AvdHlwZXMvU2l6ZSc7XG4gIGltcG9ydCB7IFRFWFRfSU5QVVRfVFlQRSB9IGZyb20gJ0AvdHlwZXMvVGV4dElucHV0JztcbiAgaW1wb3J0IHsgZ2V0RXJyb3JNZXNzYWdlLCBnZXRGaWVsZEhhc0Vycm9yLCBoYW5kbGVGaWVsZFZhbGlkYXRpb24gfSBmcm9tICdAL3V0aWxpdGllcy92YWxpZGF0aW9uJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGF1dG9jb21wbGV0ZT86IGJvb2xlYW47XG4gICAgZGF0YVRyYWNrPzogc3RyaW5nO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBlcnJvcj86IFZhbGlkYXRpb25FcnJvcjtcbiAgICBoYXNDbGVhcj86IGJvb2xlYW47XG4gICAgaWNvbkxlYWRpbmc/OiBJY29uO1xuICAgIGlucHV0SWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBtYXhsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbWlubGVuZ3RoPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIHN1ZmZpeD86IHN0cmluZztcbiAgICBzdXBwb3J0aW5nVGV4dD86IHN0cmluZztcbiAgICB0cmFuc2Zvcm1WYWx1ZT86IEZvcm1WYWx1ZVRyYW5zZm9ybWVyO1xuICAgIHR5cGU/OiBUZXh0SW5wdXRUeXBlO1xuICAgIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JbXTtcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGF1dG9jb21wbGV0ZTogZmFsc2UsXG4gICAgZGF0YVRyYWNrOiAnJyxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgZXJyb3I6IGZhbHNlLFxuICAgIGhhc0NsZWFyOiBmYWxzZSxcbiAgICBpY29uTGVhZGluZzogdW5kZWZpbmVkLFxuICAgIGlucHV0SWQ6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogdW5kZWZpbmVkLFxuICAgIG1heGxlbmd0aDogdW5kZWZpbmVkLFxuICAgIG1pbmxlbmd0aDogdW5kZWZpbmVkLFxuICAgIHByZWZpeDogdW5kZWZpbmVkLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBzdWZmaXg6IHVuZGVmaW5lZCxcbiAgICBzdXBwb3J0aW5nVGV4dDogdW5kZWZpbmVkLFxuICAgIHRyYW5zZm9ybVZhbHVlOiB1bmRlZmluZWQsXG4gICAgdHlwZTogVEVYVF9JTlBVVF9UWVBFLlRFWFQsXG4gICAgdmFsaWRhdG9yczogdW5kZWZpbmVkLFxuICAgIHZhbHVlOiAnJyxcbiAgfSk7XG5cbiAgY29uc3QgZXJyb3IgPSByZWYocHJvcHMuZXJyb3IpO1xuICBjb25zdCBoYXNGb2N1cyA9IHJlZihmYWxzZSk7XG4gIGNvbnN0IGlucHV0ID0gcmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3Qgc2hvd1Bhc3N3b3JkID0gcmVmKGZhbHNlKTtcbiAgY29uc3QgdmFsdWUgPSByZWYocHJvcHMudmFsdWUpO1xuXG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGNvbXB1dGVkKCgpID0+IGdldEVycm9yTWVzc2FnZShwcm9wcy5lcnJvciwgZXJyb3IudmFsdWUpKTtcbiAgY29uc3QgZm9ybWF0dGVkTGFiZWwgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgJiYgcHJvcHMubGFiZWwgPyBgJHtwcm9wcy5sYWJlbH0gKmAgOiBwcm9wcy5sYWJlbCkpO1xuICBjb25zdCBoYXNDbGVhciA9IGNvbXB1dGVkKCgpID0+IHByb3BzLmhhc0NsZWFyICYmIHZhbHVlLnZhbHVlKTtcbiAgY29uc3QgaGFzRXJyb3IgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgJiYgIXZhbHVlLnZhbHVlKSB8fCBnZXRGaWVsZEhhc0Vycm9yKGVycm9yLnZhbHVlLCBwcm9wcy5lcnJvcikpO1xuICBjb25zdCBoYXNNaW5pbGFiZWwgPSBjb21wdXRlZCgoKSA9PiBoYXNGb2N1cy52YWx1ZSB8fCAhaXNFbXB0eS52YWx1ZSk7XG4gIGNvbnN0IGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB2YWx1ZS52YWx1ZSA9PT0gJycpO1xuICBjb25zdCB0eXBlID0gY29tcHV0ZWQoKCkgPT5cbiAgICBwcm9wcy50eXBlID09PSBURVhUX0lOUFVUX1RZUEUuUEFTU1dPUkQgJiYgc2hvd1Bhc3N3b3JkLnZhbHVlID09PSB0cnVlID8gVEVYVF9JTlBVVF9UWVBFLlRFWFQgOiBwcm9wcy50eXBlXG4gICk7XG4gIGNvbnN0IHVuaXF1ZUlkID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLmlucHV0SWQgPyBwcm9wcy5pbnB1dElkIDogYHRleHQtaW5wdXQtJHtnZXRDdXJyZW50SW5zdGFuY2UoKT8udWlkIHx8ICcnfWApKTtcblxuICBjb25zdCBoYW5kbGVDbGVhciA9ICgpID0+IHtcbiAgICB2YWx1ZS52YWx1ZSA9ICcnO1xuICAgIGlucHV0LnZhbHVlPy5mb2N1cygpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gKCkgPT4ge1xuICAgIGhhc0ZvY3VzLnZhbHVlID0gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGb2N1c091dCA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IGZhbHNlO1xuICAgIGhhbmRsZVZhbGlkYXRpb24oKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVJbnB1dCA9ICgpID0+IHtcbiAgICBpZiAocHJvcHMudHJhbnNmb3JtVmFsdWUpIHtcbiAgICAgIGNvbnN0IGRpZ2l0cyA9IHZhbHVlLnZhbHVlLm1hdGNoKC9cXGQvZyk/LmpvaW4oJycpIHx8IHVuZGVmaW5lZDtcblxuICAgICAgdmFsdWUudmFsdWUgPSBkaWdpdHMgPyBwcm9wcy50cmFuc2Zvcm1WYWx1ZShkaWdpdHMpIDogJyc7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVZhbGlkYXRpb24gPSAoKSA9PiB7XG4gICAgaGFuZGxlRmllbGRWYWxpZGF0aW9uKHtcbiAgICAgIGVycm9yLFxuICAgICAgZXJyb3JGcm9tUHJvcHM6IHByb3BzLmVycm9yLFxuICAgICAgbWF4bGVuZ3RoOiBwcm9wcy5tYXhsZW5ndGgsXG4gICAgICBtaW5sZW5ndGg6IHByb3BzLm1pbmxlbmd0aCxcbiAgICAgIHZhbGlkYXRvcnM6IHByb3BzLnZhbGlkYXRvcnMsXG4gICAgICB2YWx1ZSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGVWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgdmFsdWUudmFsdWUgPSBuZXdWYWx1ZTtcbiAgfTtcblxuICB3YXRjaChcbiAgICBwcm9wcyxcbiAgICAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICBpZiAobmV3VmFsdWUudmFsdWUgIT09IG9sZFZhbHVlLnZhbHVlIHx8IG5ld1ZhbHVlLnZhbHVlICE9PSB2YWx1ZS52YWx1ZSkge1xuICAgICAgICB2YWx1ZS52YWx1ZSA9IHByb3BzLnZhbHVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgeyBkZWVwOiB0cnVlIH1cbiAgKTtcblxuICBkZWZpbmVFeHBvc2UoeyBlcnJvciwgdXBkYXRlVmFsdWUsIHZhbHVlIH0pO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdlxuICAgIDpjbGFzcz1cIltcbiAgICAgICd0aWRlLWlucHV0LXRleHQnLFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sXG4gICAgICBDU1MuR0FQLlFVQVJURVIsXG4gICAgICBkaXNhYmxlZCAmJiAnZGlzYWJsZWQnLFxuICAgICAgaGFzRXJyb3IgJiYgJ2Vycm9yJyxcbiAgICBdXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtaW5wdXQtYm9yZGVyJyxcbiAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgQ1NTLkdBUC5IQUxGLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICAgIGhhc0NsZWFyID8gW0NTUy5QQURESU5HLlJJR0hULkhBTEYsIENTUy5QQURESU5HLkxFRlQuT05FXSA6IFtDU1MuUEFERElORy5YLk9ORV0sXG4gICAgICAgIENTUy5QQURESU5HLlkuSEFMRixcbiAgICAgICAgcHJvcHMuZGlzYWJsZWQgPyBDU1MuQ1VSU09SLk5PVF9BTExPV0VEIDogQ1NTLkNVUlNPUi5URVhULFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDppY29uPVwicHJvcHMuaWNvbkxlYWRpbmdcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICB2LWlmPVwicHJvcHMuaWNvbkxlYWRpbmdcIlxuICAgICAgLz5cblxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuV0lEVEguRlVMTF1cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIDpjbGFzcz1cIlsndGlkZS1pbnB1dC10ZXh0LXByZWZpeCcsICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsIGhhc01pbmlsYWJlbCA/ICcnIDogJ29mZnNldCddXCJcbiAgICAgICAgICB2LWlmPVwicHJvcHMucHJlZml4XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHByb3BzLnByZWZpeCB9fVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgOmNsYXNzPVwiW0NTUy5ESVNQTEFZLkZMRVgsIENTUy5GTEVYLkRJUkVDVElPTi5DT0xVTU4sIENTUy5XSURUSC5GVUxMXVwiXG4gICAgICAgICAgQGNsaWNrLnByZXZlbnQ9XCJpbnB1dD8uZm9jdXMoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICAgICAgaGFzTWluaWxhYmVsID8gWydtaW5pbGFiZWwnLCBDU1MuRk9OVC5TSVpFLlRXRUxWRV0gOiBDU1MuRk9OVC5TSVpFLlNJWFRFRU4sXG4gICAgICAgICAgICAgICFoYXNFcnJvciAmJiBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLlZBUklBTlQsXG4gICAgICAgICAgICAgIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRUQsXG4gICAgICAgICAgICAgIENTUy5DVVJTT1IuVEVYVCxcbiAgICAgICAgICAgIF1cIlxuICAgICAgICAgICAgOmZvcj1cInVuaXF1ZUlkXCJcbiAgICAgICAgICAgIHYtaWY9XCJsYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZm9ybWF0dGVkTGFiZWwgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICA6YXV0b2NvbXBsZXRlPVwiYXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTCwgZGlzYWJsZWQgJiYgQ1NTLkNVUlNPUi5OT1RfQUxMT1dFRF1cIlxuICAgICAgICAgICAgOmRhdGEtdHJhY2s9XCJwcm9wcy5kYXRhVHJhY2tcIlxuICAgICAgICAgICAgOmRpc2FibGVkPVwicHJvcHMuZGlzYWJsZWRcIlxuICAgICAgICAgICAgOm1heGxlbmd0aD1cInByb3BzLm1heGxlbmd0aFwiXG4gICAgICAgICAgICA6bWlubGVuZ3RoPVwicHJvcHMubWlubGVuZ3RoXCJcbiAgICAgICAgICAgIDpuYW1lPVwicHJvcHMubmFtZVwiXG4gICAgICAgICAgICByZWY9XCJpbnB1dFwiXG4gICAgICAgICAgICA6cmVxdWlyZWQ9XCJwcm9wcy5yZXF1aXJlZFwiXG4gICAgICAgICAgICA6dHlwZT1cInR5cGVcIlxuICAgICAgICAgICAgQGNoYW5nZT1cImhhbmRsZVZhbGlkYXRpb25cIlxuICAgICAgICAgICAgQGZvY3VzPVwiaGFuZGxlRm9jdXNcIlxuICAgICAgICAgICAgQGZvY3Vzb3V0PVwiaGFuZGxlRm9jdXNPdXRcIlxuICAgICAgICAgICAgQGlucHV0PVwiaGFuZGxlSW5wdXRcIlxuICAgICAgICAgICAgOmlkPVwidW5pcXVlSWRcIlxuICAgICAgICAgICAgdi1tb2RlbD1cInZhbHVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgOmNsYXNzPVwiWyd0aWRlLWlucHV0LXRleHQtc3VmZml4JywgIWhhc0Vycm9yICYmIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuVkFSSUFOVCwgaGFzTWluaWxhYmVsID8gJycgOiAnb2Zmc2V0J11cIlxuICAgICAgICAgIHYtaWY9XCJwcm9wcy5zdWZmaXhcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcHJvcHMuc3VmZml4IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBBRERJTkcuWS5IQUxGLCBDU1MuUEFERElORy5GVUxMLkhBTEYsIENTUy5DVVJTT1IuUE9JTlRFUl1cIlxuICAgICAgICA6aWNvbj1cIklDT04uQ0xPU0VcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICBAY2xpY2s9XCJoYW5kbGVDbGVhclwiXG4gICAgICAgIHYtaWY9XCJoYXNDbGVhciAmJiBwcm9wcy50eXBlICE9PSBURVhUX0lOUFVUX1RZUEUuUEFTU1dPUkRcIlxuICAgICAgLz5cblxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltDU1MuUEFERElORy5ZLkhBTEYsIENTUy5QQURESU5HLkZVTEwuSEFMRiwgQ1NTLkNVUlNPUi5QT0lOVEVSXVwiXG4gICAgICAgIDppY29uPVwiSUNPTi5WSVNJQklMSVRZXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgQGNsaWNrPVwic2hvd1Bhc3N3b3JkID0gIXNob3dQYXNzd29yZFwiXG4gICAgICAgIHYtaWY9XCJwcm9wcy50eXBlID09PSBURVhUX0lOUFVUX1RZUEUuUEFTU1dPUkRcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5NQVJHSU4uTEVGVC5PTkVdXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5zdXBwb3J0aW5nVGV4dCB8fCBoYXNFcnJvclwiXG4gICAgPlxuICAgICAgPFRpZGVJY29uXG4gICAgICAgIDpjbGFzcz1cIltdXCJcbiAgICAgICAgOmljb249XCJJQ09OLkVSUk9SXCJcbiAgICAgICAgOnNpemU9XCJTSVpFLlNNQUxMXCJcbiAgICAgICAgdi1pZj1cImhhc0Vycm9yXCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXYgOmNsYXNzPVwiW0NTUy5GT05ULlNJWkUuVFdFTFZFLCBDU1MuRk9OVC5XRUlHSFQuRklWRV9IVU5EUkVEXVwiPlxuICAgICAgICB7eyBoYXNFcnJvciA/IGVycm9yTWVzc2FnZSA6IHByb3BzLnN1cHBvcnRpbmdUZXh0IH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICBsYWJlbCB7XG4gICAgaGVpZ2h0OiAxLjE4NzVyZW07XG4gICAgdHJhbnNpdGlvbjogZm9udC1zaXplIHZhcigtLXRpZGUtYW5pbWF0ZSksIHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgbGFiZWw6bm90KC5taW5pbGFiZWwpLFxuICAudGlkZS1pbnB1dC10ZXh0LXByZWZpeDpub3QoLm9mZnNldCksXG4gIC50aWRlLWlucHV0LXRleHQtc3VmZml4Om5vdCgub2Zmc2V0KSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgY2FsYyg5IC8gMTYgKiAxcmVtKSk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0LXByZWZpeCxcbiAgLnRpZGUtaW5wdXQtdGV4dC1zdWZmaXgge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dC5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogdmFyKC0tdGlkZS1kaXNhYmxlZCk7XG4gIH1cblxuICAudGlkZS1pbnB1dC10ZXh0LmVycm9yIHtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1lcnJvci1vbi1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQuZXJyb3IgLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLWJvcmRlcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQuZXJyb3I6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LWJvcmRlciB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dDpmb2N1cy13aXRoaW4gLnRpZGUtaW5wdXQtYm9yZGVyIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMik7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1zdXJmYWNlLWJvcmRlci1oaWdoKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHQgaW5wdXQge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAudGlkZS1pbnB1dC1ib3JkZXIge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0xKTtcbiAgICBvdXRsaW5lOiB2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpIHNvbGlkIHZhcigtLXRpZGUtYm9yZGVyKTtcbiAgICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpICogLTEpO1xuICAgIGNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtZm9yZWdyb3VuZCk7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgZ2V0Q3VycmVudEluc3RhbmNlLCByZWYsIHdhdGNoIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ0AvdHlwZXMvVmFsaWRhdGlvbic7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuICBpbXBvcnQgeyBTSVpFIH0gZnJvbSAnQC90eXBlcy9TaXplJztcbiAgaW1wb3J0IHsgZ2V0RXJyb3JNZXNzYWdlLCBnZXRGaWVsZEhhc0Vycm9yLCBoYW5kbGVGaWVsZFZhbGlkYXRpb24gfSBmcm9tICdAL3V0aWxpdGllcy92YWxpZGF0aW9uJztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGRhdGFUcmFjaz86IHN0cmluZztcbiAgICBlcnJvcj86IFZhbGlkYXRpb25FcnJvcjtcbiAgICBpbnB1dElkPzogc3RyaW5nO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIG1heGxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBtaW5sZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICByZXF1aXJlZD86IGJvb2xlYW47XG4gICAgcm93cz86IG51bWJlcjtcbiAgICBzdXBwb3J0aW5nVGV4dD86IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIGRhdGFUcmFjazogJycsXG4gICAgZXJyb3I6IGZhbHNlLFxuICAgIGlucHV0SWQ6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogdW5kZWZpbmVkLFxuICAgIG1heGxlbmd0aDogdW5kZWZpbmVkLFxuICAgIG1pbmxlbmd0aDogdW5kZWZpbmVkLFxuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgcm93czogOCxcbiAgICBzdXBwb3J0aW5nVGV4dDogdW5kZWZpbmVkLFxuICAgIHZhbHVlOiAnJyxcbiAgfSk7XG5cbiAgY29uc3QgZXJyb3IgPSByZWYocHJvcHMuZXJyb3IpO1xuICBjb25zdCBoYXNGb2N1cyA9IHJlZihmYWxzZSk7XG4gIGNvbnN0IGlucHV0ID0gcmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgdmFsdWUgPSByZWYocHJvcHMudmFsdWUpO1xuXG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGNvbXB1dGVkKCgpID0+IGdldEVycm9yTWVzc2FnZShwcm9wcy5lcnJvciwgZXJyb3IudmFsdWUpKTtcbiAgY29uc3QgZm9ybWF0dGVkTGFiZWwgPSBjb21wdXRlZCgoKSA9PiAocHJvcHMucmVxdWlyZWQgPyBgJHtwcm9wcy5sYWJlbH0gKmAgOiBwcm9wcy5sYWJlbCkpO1xuICBjb25zdCBoYXNFcnJvciA9IGNvbXB1dGVkKCgpID0+IChwcm9wcy5yZXF1aXJlZCAmJiAhdmFsdWUudmFsdWUpIHx8IGdldEZpZWxkSGFzRXJyb3IoZXJyb3IudmFsdWUsIHByb3BzLmVycm9yKSk7XG4gIGNvbnN0IGhhc01pbmlsYWJlbCA9IGNvbXB1dGVkKCgpID0+IGhhc0ZvY3VzLnZhbHVlIHx8ICFpc0VtcHR5LnZhbHVlKTtcbiAgY29uc3QgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHZhbHVlLnZhbHVlID09PSAnJyk7XG4gIGNvbnN0IHVuaXF1ZUlkID0gY29tcHV0ZWQoKCkgPT4gKHByb3BzLmlucHV0SWQgPyBwcm9wcy5pbnB1dElkIDogYHRleHQtaW5wdXQtJHtnZXRDdXJyZW50SW5zdGFuY2UoKT8udWlkIHx8ICcnfWApKTtcblxuICBjb25zdCBoYW5kbGVGb2N1cyA9ICgpID0+IHtcbiAgICBoYXNGb2N1cy52YWx1ZSA9IHRydWU7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRm9jdXNPdXQgPSAoKSA9PiB7XG4gICAgaGFzRm9jdXMudmFsdWUgPSBmYWxzZTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVWYWxpZGF0aW9uID0gKCkgPT4ge1xuICAgIHJldHVybiBoYW5kbGVGaWVsZFZhbGlkYXRpb24oe1xuICAgICAgZXJyb3IsXG4gICAgICBlcnJvckZyb21Qcm9wczogcHJvcHMuZXJyb3IsXG4gICAgICBtYXhsZW5ndGg6IHByb3BzLm1heGxlbmd0aCxcbiAgICAgIG1pbmxlbmd0aDogcHJvcHMubWlubGVuZ3RoLFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gIH07XG5cbiAgd2F0Y2gocHJvcHMsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICBpZiAobmV3VmFsdWUudmFsdWUgIT09IG9sZFZhbHVlLnZhbHVlIHx8IG5ld1ZhbHVlLnZhbHVlICE9PSB2YWx1ZS52YWx1ZSkge1xuICAgICAgdmFsdWUudmFsdWUgPSBwcm9wcy52YWx1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGRlZmluZUV4cG9zZSh7IGVycm9yLCB2YWx1ZSB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXZcbiAgICA6Y2xhc3M9XCJbJ3RpZGUtaW5wdXQtdGV4dGFyZWEnLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuRkxFWC5ESVJFQ1RJT04uQ09MVU1OLCBDU1MuR0FQLlFVQVJURVIsIGhhc0Vycm9yICYmICdlcnJvciddXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgJ3RpZGUtaW5wdXQtdGV4dGFyZWEtZmllbGQnLFxuICAgICAgICBDU1MuR0FQLkhBTEYsXG4gICAgICAgIENTUy5QT1NJVElPTi5SRUxBVElWRSxcbiAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuSEFMRixcbiAgICAgICAgQ1NTLlBBRERJTkcuTEVGVC5PTkUsXG4gICAgICAgIENTUy5QQURESU5HLlRPUC5IQUxGLFxuICAgICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgXVwiXG4gICAgPlxuICAgICAgPGxhYmVsXG4gICAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgICBoYXNNaW5pbGFiZWwgPyBbJ21pbmlsYWJlbCcsIENTUy5GT05ULlNJWkUuVFdFTFZFXSA6IENTUy5GT05ULlNJWkUuU0lYVEVFTixcbiAgICAgICAgICAhaGFzRXJyb3IgJiYgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5ULFxuICAgICAgICAgIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRUQsXG4gICAgICAgICAgQ1NTLkNVUlNPUi5URVhULFxuICAgICAgICBdXCJcbiAgICAgICAgOmZvcj1cInVuaXF1ZUlkXCJcbiAgICAgICAgcmVmPVwibGFiZWxcIlxuICAgICAgICB2LWlmPVwibGFiZWxcIlxuICAgICAgPlxuICAgICAgICB7eyBmb3JtYXR0ZWRMYWJlbCB9fVxuICAgICAgPC9sYWJlbD5cblxuICAgICAgPHRleHRhcmVhXG4gICAgICAgIDpjbGFzcz1cIltDU1MuV0lEVEguRlVMTF1cIlxuICAgICAgICA6ZGF0YS10cmFjaz1cInByb3BzLmRhdGFUcmFja1wiXG4gICAgICAgIDptYXhsZW5ndGg9XCJwcm9wcy5tYXhsZW5ndGhcIlxuICAgICAgICA6bWlubGVuZ3RoPVwicHJvcHMubWlubGVuZ3RoXCJcbiAgICAgICAgOm5hbWU9XCJwcm9wcy5uYW1lXCJcbiAgICAgICAgcmVmPVwiaW5wdXRcIlxuICAgICAgICA6cmVxdWlyZWQ9XCJwcm9wcy5yZXF1aXJlZFwiXG4gICAgICAgIDpyb3dzPVwicHJvcHMucm93c1wiXG4gICAgICAgIEBjaGFuZ2U9XCJoYW5kbGVWYWxpZGF0aW9uXCJcbiAgICAgICAgQGZvY3VzPVwiaGFuZGxlRm9jdXNcIlxuICAgICAgICBAZm9jdXNvdXQ9XCJoYW5kbGVGb2N1c091dFwiXG4gICAgICAgIDppZD1cInVuaXF1ZUlkXCJcbiAgICAgICAgdi1tb2RlbD1cInZhbHVlXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuTUFSR0lOLkxFRlQuT05FXVwiXG4gICAgICB2LWlmPVwicHJvcHMuc3VwcG9ydGluZ1RleHQgfHwgaGFzRXJyb3JcIlxuICAgID5cbiAgICAgIDxUaWRlSWNvblxuICAgICAgICA6aWNvbj1cIklDT04uRVJST1JcIlxuICAgICAgICA6c2l6ZT1cIlNJWkUuU01BTExcIlxuICAgICAgICB2LWlmPVwiaGFzRXJyb3JcIlxuICAgICAgLz5cblxuICAgICAgPGRpdiA6Y2xhc3M9XCJbQ1NTLkZPTlQuU0laRS5UV0VMVkUsIENTUy5GT05ULldFSUdIVC5GSVZFX0hVTkRSRURdXCI+XG4gICAgICAgIHt7IGhhc0Vycm9yID8gZXJyb3JNZXNzYWdlIDogcHJvcHMuc3VwcG9ydGluZ1RleHQgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4gIHRleHRhcmVhIHtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICB9XG48L3N0eWxlPlxuXG48c3R5bGUgc2NvcGVkPlxuICBsYWJlbCB7XG4gICAgaGVpZ2h0OiAxLjE4NzVyZW07XG4gICAgdHJhbnNpdGlvbjogZm9udC1zaXplIHZhcigtLXRpZGUtYW5pbWF0ZSksIHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgbGFiZWw6bm90KC5taW5pbGFiZWwpLFxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS1wcmVmaXg6bm90KC5vZmZzZXQpLFxuICAudGlkZS1pbnB1dC10ZXh0YXJlYS1zdWZmaXg6bm90KC5vZmZzZXQpIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCBjYWxjKDkgLyAxNiAqIDFyZW0pKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLXByZWZpeCxcbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEtc3VmZml4IHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLmVycm9yIHtcbiAgICBjb2xvcjogdmFyKC0tdGlkZS1lcnJvci1vbi1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLmVycm9yIC50aWRlLWlucHV0LXRleHRhcmVhLWZpZWxkIHtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS10aWRlLWVycm9yLWJvcmRlcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1zdXJmYWNlKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhLmVycm9yOmZvY3VzLXdpdGhpbiAudGlkZS1pbnB1dC10ZXh0YXJlYS1maWVsZCB7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1lcnJvci1ib3JkZXIpO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWE6Zm9jdXMtd2l0aGluIC50aWRlLWlucHV0LXRleHRhcmVhLWZpZWxkIHtcbiAgICAtLXRpZGUtaW5wdXQtb3V0bGluZS13aWR0aDogdmFyKC0tdGlkZS1ib3JkZXItd2lkdGgtMik7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tdGlkZS1zdXJmYWNlLWJvcmRlci1oaWdoKTtcbiAgfVxuXG4gIC50aWRlLWlucHV0LXRleHRhcmVhIHRleHRhcmVhIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgLnRpZGUtaW5wdXQtdGV4dGFyZWEtZmllbGQge1xuICAgIC0tdGlkZS1pbnB1dC1vdXRsaW5lLXdpZHRoOiB2YXIoLS10aWRlLWJvcmRlci13aWR0aC0xKTtcbiAgICBvdXRsaW5lOiB2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpIHNvbGlkIHZhcigtLXRpZGUtYm9yZGVyKTtcbiAgICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoLS10aWRlLWlucHV0LW91dGxpbmUtd2lkdGgpICogLTEpO1xuICAgIGNvbG9yOiB2YXIoLS10aWRlLXN1cmZhY2UtZm9yZWdyb3VuZCk7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHR5cGUgeyBFbGVtZW50IH0gZnJvbSAnQC90eXBlcy9FbGVtZW50JztcbiAgaW1wb3J0IHR5cGUgeyBJY29uIH0gZnJvbSAnQC90eXBlcy9JY29uJztcblxuICBpbXBvcnQgVGlkZUljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVJY29uLnZ1ZSc7XG4gIGltcG9ydCB7IENTUyB9IGZyb20gJ0AvdHlwZXMvU3R5bGVzJztcbiAgaW1wb3J0IHsgRUxFTUVOVCB9IGZyb20gJ0AvdHlwZXMvRWxlbWVudCc7XG4gIGltcG9ydCB7IFRBUkdFVCB9IGZyb20gJ0AvdHlwZXMvVGFyZ2V0JztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIGVsZW1lbnQ/OiBFbGVtZW50O1xuICAgIGhyZWY/OiBzdHJpbmc7XG4gICAgaWNvbkxlYWRpbmc/OiBJY29uO1xuICAgIGljb25UcmFpbGluZz86IEljb247XG4gICAgaXNOZXdUYWI/OiBib29sZWFuO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgcHJvcHMgPSB3aXRoRGVmYXVsdHMoZGVmaW5lUHJvcHM8UHJvcHM+KCksIHtcbiAgICBlbGVtZW50OiBFTEVNRU5ULkxJTkssXG4gICAgaHJlZjogdW5kZWZpbmVkLFxuICAgIGljb25MZWFkaW5nOiB1bmRlZmluZWQsXG4gICAgaWNvblRyYWlsaW5nOiB1bmRlZmluZWQsXG4gICAgaXNOZXdUYWI6IGZhbHNlLFxuICAgIGxhYmVsOiB1bmRlZmluZWQsXG4gIH0pO1xuXG4gIGNvbnN0IGhhc0ljb24gPSBjb21wdXRlZCgoKSA9PiBwcm9wcy5pY29uTGVhZGluZyB8fCBwcm9wcy5pY29uVHJhaWxpbmcpO1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGNvbXBvbmVudFxuICAgIDpjbGFzcz1cIltcbiAgICAgIHByb3BzLmVsZW1lbnQgPT09IEVMRU1FTlQuTElOSyA/ICd0aWRlLWJ1dHRvbi1hcy1saW5rJyA6ICd0aWRlLWxpbmsnLFxuICAgICAgaGFzSWNvblxuICAgICAgICA/IFtDU1MuRElTUExBWS5JTkxJTkVfRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5IQUxGXVxuICAgICAgICA6IFtDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRCwgQ1NTLlVOREVSTElORS5PTl0sXG4gICAgXVwiXG4gICAgOmhyZWY9XCJwcm9wcy5ocmVmXCJcbiAgICA6dGFyZ2V0PVwicHJvcHMuaXNOZXdUYWIgPyBUQVJHRVQuQkxBTksgOiBUQVJHRVQuU0VMRlwiXG4gICAgOmlzPVwicHJvcHMuZWxlbWVudCA9PT0gRUxFTUVOVC5MSU5LID8gRUxFTUVOVC5MSU5LIDogRUxFTUVOVC5CVVRUT05cIlxuICA+XG4gICAgPFRpZGVJY29uXG4gICAgICA6aWNvbj1cInByb3BzLmljb25MZWFkaW5nXCJcbiAgICAgIHYtaWY9XCJwcm9wcy5pY29uTGVhZGluZ1wiXG4gICAgLz5cblxuICAgIDxkaXZcbiAgICAgIDpjbGFzcz1cIltDU1MuRk9OVC5XRUlHSFQuU0VWRU5fSFVORFJFRCwgQ1NTLlVOREVSTElORS5PTl1cIlxuICAgICAgdi1pZj1cImhhc0ljb25cIlxuICAgID5cbiAgICAgIHt7IHByb3BzLmxhYmVsIH19XG4gICAgPC9kaXY+XG5cbiAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAge3sgcHJvcHMubGFiZWwgfX1cbiAgICA8L3RlbXBsYXRlPlxuXG4gICAgPFRpZGVJY29uXG4gICAgICA6aWNvbj1cInByb3BzLmljb25UcmFpbGluZ1wiXG4gICAgICB2LWlmPVwicHJvcHMuaWNvblRyYWlsaW5nXCJcbiAgICAvPlxuICA8L2NvbXBvbmVudD5cbjwvdGVtcGxhdGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBvbk1vdW50ZWQsIHJlZiwgd2F0Y2gsIHR5cGUgQ1NTUHJvcGVydGllcyB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IFRpZGVJY29uIGZyb20gJ0AvY29tcG9uZW50cy9UaWRlSWNvbi52dWUnO1xuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG4gIGltcG9ydCB7IElDT04gfSBmcm9tICdAL3R5cGVzL0ljb24nO1xuXG4gIC8vIFRPRE86IHJlcGxhY2UgYm9keSBzY3JvbGwgbG9jayB3aXRoIGEgZ2xvYmFsIG1peGluXG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBpc09wZW46IGJvb2xlYW47XG4gICAgbW9kYWxTdHlsZT86IENTU1Byb3BlcnRpZXM7XG4gICAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHM8UHJvcHM+KCk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2xvc2UnXSk7XG5cbiAgY29uc3QgaXNPcGVuID0gcmVmKHByb3BzLmlzT3Blbik7XG4gIGNvbnN0IHNhdmVkU2Nyb2xsUG9zaXRpb24gPSByZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgaXNPcGVuLnZhbHVlID0gZmFsc2U7XG5cbiAgICB1cGRhdGVNb2RhbERpc3BsYXkoKTtcbiAgICBlbWl0KCdjbG9zZScsIGV2ZW50KTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGVNb2RhbERpc3BsYXkgPSAoKSA9PiB7XG4gICAgaWYgKGlzT3Blbi52YWx1ZSkge1xuICAgICAgc2F2ZWRTY3JvbGxQb3NpdGlvbi52YWx1ZSA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgc2F2ZWRTY3JvbGxQb3NpdGlvbi52YWx1ZSAmJiB3aW5kb3cuc2Nyb2xsVG8oMCwgc2F2ZWRTY3JvbGxQb3NpdGlvbi52YWx1ZSk7XG5cbiAgICAgIGFkZE9wZW5MaXN0ZW5lcnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnO1xuXG4gICAgICByZW1vdmVPcGVuTGlzdGVuZXJzKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBoYW5kbGVDbG9zZShldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFkZE9wZW5MaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTtcbiAgfTtcblxuICBjb25zdCByZW1vdmVPcGVuTGlzdGVuZXJzID0gKCkgPT4ge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7XG4gIH07XG5cbiAgb25Nb3VudGVkKCgpID0+IHtcbiAgICB1cGRhdGVNb2RhbERpc3BsYXkoKTtcbiAgfSk7XG5cbiAgd2F0Y2gocHJvcHMsIChuZXdWYWx1ZSkgPT4ge1xuICAgIGlzT3Blbi52YWx1ZSA9IG5ld1ZhbHVlLmlzT3BlbjtcblxuICAgIHVwZGF0ZU1vZGFsRGlzcGxheSgpO1xuICB9KTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxUZWxlcG9ydCB0bz1cImJvZHlcIj5cbiAgICA8VHJhbnNpdGlvbj5cbiAgICAgIDxkaXZcbiAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgICd0aWRlLW1vZGFsLXdyYXBwZXInLFxuICAgICAgICAgIENTUy5QT1NJVElPTi5BQlNPTFVURSxcbiAgICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICAgIENTUy5BWElTMS5DRU5URVIsXG4gICAgICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgICAgICBDU1MuUE9TSVRJT05JTkcuVE9QXzAsXG4gICAgICAgICAgQ1NTLlBPU0lUSU9OSU5HLkxFRlRfMCxcbiAgICAgICAgICBDU1MuV0lEVEguRlVMTCxcbiAgICAgICAgICBDU1MuSEVJR0hULkZVTEwsXG4gICAgICAgIF1cIlxuICAgICAgICB2LXNob3c9XCJpc09wZW5cIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgOmNsYXNzPVwiWyd0aWRlLW1vZGFsLWJnJywgQ1NTLlBPU0lUSU9OLkFCU09MVVRFLCBDU1MuV0lEVEguRlVMTCwgQ1NTLkhFSUdIVC5GVUxMXVwiXG4gICAgICAgICAgOnN0eWxlPVwieyAnLS10aWRlLW1vZGFsLXdpZHRoJzogcHJvcHMud2lkdGgsIC4uLnN0eWxlIH1cIlxuICAgICAgICAgIEBjbGljay5zZWxmPVwiaGFuZGxlQ2xvc2VcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgICAgJ3RpZGUtbW9kYWwnLFxuICAgICAgICAgICAgQ1NTLkJHLlNVUkZBQ0UuRkxPQVRJTkcsXG4gICAgICAgICAgICBDU1MuRk9OVC5DT0xPUi5TVVJGQUNFLkRFRkFVTFQsXG4gICAgICAgICAgICBDU1MuUE9TSVRJT04uQUJTT0xVVEUsXG4gICAgICAgICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgICAgICAgQ1NTLkZMRVguRElSRUNUSU9OLkNPTFVNTixcbiAgICAgICAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICAgICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgICAgIF1cIlxuICAgICAgICAgIDpzdHlsZT1cInsgLi4ubW9kYWxTdHlsZSB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgIDpjbGFzcz1cIlsnbW9kYWwtaGVhZGVyJywgQ1NTLlBPU0lUSU9OLlJFTEFUSVZFLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuUEFERElORy5YLlRXT11cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgOmNsYXNzPVwiW0NTUy5GTEVYLkdST1cuT04sIENTUy5GT05ULlNJWkUuVFdFTlRZLCBDU1MuQUxJR04uWC5DRU5URVIsIENTUy5GT05ULldFSUdIVC5TRVZFTl9IVU5EUkVEXVwiXG4gICAgICAgICAgICAgIHYtaWY9XCJ0aXRsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICA6Y2xhc3M9XCJbQ1NTLlBPU0lUSU9OLkFCU09MVVRFLCBDU1MuUE9TSVRJT05JTkcuUklHSFRfMCwgQ1NTLk1BUkdJTi5SSUdIVC5UV09dXCJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ2xvc2VcIlxuICAgICAgICAgICAgICB0aXRsZT1cIkNsb3NlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFRpZGVJY29uIDppY29uPVwiSUNPTi5DTE9TRVwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgIDxkaXYgOmNsYXNzPVwiWydtb2RlbC1jb250ZW50JywgQ1NTLk9WRVJGTE9XLlkuQVVUT11cIj5cbiAgICAgICAgICAgIDxzbG90IC8+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cIiRzbG90cy5mb290ZXJcIj5cbiAgICAgICAgICAgIDxmb290ZXJcbiAgICAgICAgICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAgICAgICAgICd0aWRlLWJnLXN1cmZhY2UnLFxuICAgICAgICAgICAgICAgIENTUy5QT1NJVElPTi5TVElDS1ksXG4gICAgICAgICAgICAgICAgQ1NTLlBPU0lUSU9OSU5HLkxFRlRfMCxcbiAgICAgICAgICAgICAgICBDU1MuUE9TSVRJT05JTkcuQk9UVE9NXzAsXG4gICAgICAgICAgICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgICAgICAgICAgICBDU1MuQVhJUzEuRU5ELFxuICAgICAgICAgICAgICAgIENTUy5HQVAuT05FLFxuICAgICAgICAgICAgICAgIENTUy5QQURESU5HLlguVFdPLFxuICAgICAgICAgICAgICAgIENTUy5QQURESU5HLlkuSEFMRixcbiAgICAgICAgICAgICAgXVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJmb290ZXJcIiAvPlxuICAgICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L1RyYW5zaXRpb24+XG4gIDwvVGVsZXBvcnQ+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XG4gIC50aWRlLW1vZGFsLWJnIHtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZHJvcC1maWx0ZXIgMC4zcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG4gIH1cblxuICAudGlkZS1tb2RhbCB7XG4gICAgd2lkdGg6IHZhcigtLXRpZGUtbW9kYWwtd2lkdGgpO1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMnJlbSk7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMnJlbSk7XG4gICAgYm94LXNoYWRvdzogMHB4IDEwcHggMjVweCAwcHggcmdiYSgxOCwgNDMsIDU4LCAwLjIpO1xuICAgIGFuaW1hdGlvbjogbW9kYWxPcGVuIDMwMG1zIGVhc2U7XG4gIH1cblxuICAubW9kYWwtaGVhZGVyIHtcbiAgICBtaW4taGVpZ2h0OiA1cmVtO1xuICB9XG5cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAycmVtIDFmciAycmVtO1xuXG4gICAgJjpkZWVwKD4gKikge1xuICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgfVxuICB9XG5cbiAgLnYtZW50ZXItZnJvbSxcbiAgLnYtbGVhdmUtdG8ge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwcHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG5cbiAgICAmIC50aWRlLW1vZGFsIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDB2aCk7XG4gICAgfVxuICB9XG5cbiAgLnYtZW50ZXItYWN0aXZlLFxuICAudi1sZWF2ZS1hY3RpdmUge1xuICAgIHRyYW5zaXRpb246IGJhY2tkcm9wLWZpbHRlciB2YXIoLS10aWRlLWFuaW1hdGUpLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG5cbiAgICAmIC50aWRlLW1vZGFsIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICAgIH1cbiAgfVxuXG4gIC52LWVudGVyLXRvLFxuICAudi1sZWF2ZS1mcm9tIHtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG5cbiAgICAmIC50aWRlLW1vZGFsIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IGxhbmc9XCJ0c1wiIHNldHVwPlxuICBpbXBvcnQgeyBjb21wdXRlZCwgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgVGlkZUJ1dHRvbkljb24gZnJvbSAnQC9jb21wb25lbnRzL1RpZGVCdXR0b25JY29uLnZ1ZSc7XG4gIGltcG9ydCBUaWRlQnV0dG9uUGFnaW5hdGlvbiBmcm9tICdAL2NvbXBvbmVudHMvVGlkZUJ1dHRvblBhZ2luYXRpb24udnVlJztcbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuICBpbXBvcnQgeyBJQ09OIH0gZnJvbSAnQC90eXBlcy9JY29uJztcbiAgaW1wb3J0IHsgUFJJT1JJVFkgfSBmcm9tICdAL3R5cGVzL1ByaW9yaXR5JztcblxuICB0eXBlIFByb3BzID0ge1xuICAgIHBhZ2VDdXJyZW50PzogbnVtYmVyO1xuICAgIHBhZ2VUb3RhbD86IG51bWJlcjtcbiAgfTtcblxuICBjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cyhkZWZpbmVQcm9wczxQcm9wcz4oKSwge1xuICAgIHBhZ2VDdXJyZW50OiAxLFxuICAgIHBhZ2VUb3RhbDogMSxcbiAgfSk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2hhbmdlJ10pO1xuXG4gIGNvbnN0IHBhZ2VDdXJyZW50ID0gcmVmKHByb3BzLnBhZ2VDdXJyZW50KTtcblxuICBjb25zdCBwYWdpbmF0aW9uQnV0dG9ucyA9IGNvbXB1dGVkKCgpID0+IG5ldyBBcnJheShwcm9wcy5wYWdlVG90YWwpLmZpbGwoJycpLm1hcCgoZW1wdHksIGluZGV4KSA9PiBpbmRleCArIDEpKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBwYWdlQ3VycmVudC52YWx1ZSA9IGluZGV4O1xuXG4gICAgZW1pdCgnY2hhbmdlJywgZXZlbnQsIGluZGV4KTtcbiAgfTtcbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxzZWN0aW9uXG4gICAgOmNsYXNzPVwiWyd0aWRlLXBhZ2luYXRpb24nLCBDU1MuRElTUExBWS5GTEVYLCBDU1MuQVhJUzEuQ0VOVEVSLCBDU1MuQVhJUzIuQ0VOVEVSLCBDU1MuR0FQLlFVQVJURVIsIENTUy5XSURUSC5GVUxMXVwiXG4gID5cbiAgICA8VGlkZUJ1dHRvbkljb25cbiAgICAgIDpkaXNhYmxlZD1cInBhZ2VDdXJyZW50ID09PSAxXCJcbiAgICAgIDppY29uPVwiSUNPTi5DSEVWUk9OX0xFRlRcIlxuICAgICAgOnByaW9yaXR5PVwiUFJJT1JJVFkuUVVBVEVSTkFSWVwiXG4gICAgICBAY2xpY2s9XCIoZXZlbnQ6IEV2ZW50KSA9PiBoYW5kbGVDbGljayhldmVudCwgcGFnZUN1cnJlbnQgLSAxKVwiXG4gICAgLz5cblxuICAgIDx1bCA6Y2xhc3M9XCJbQ1NTLkRJU1BMQVkuRkxFWCwgQ1NTLkFYSVMyLkNFTlRFUiwgQ1NTLkdBUC5RVUFSVEVSLCBDU1MuTElTVF9CVUxMRVRTLk9GRl1cIj5cbiAgICAgIDxsaVxuICAgICAgICA6a2V5PVwicGFnaW5hdGlvbkJ1dHRvblwiXG4gICAgICAgIHYtZm9yPVwicGFnaW5hdGlvbkJ1dHRvbiBpbiBwYWdpbmF0aW9uQnV0dG9uc1wiXG4gICAgICA+XG4gICAgICAgIDxUaWRlQnV0dG9uUGFnaW5hdGlvblxuICAgICAgICAgIDpkaXNhYmxlZD1cInBhZ2VDdXJyZW50ID09PSBwYWdpbmF0aW9uQnV0dG9uXCJcbiAgICAgICAgICA6bGFiZWw9XCJwYWdpbmF0aW9uQnV0dG9uXCJcbiAgICAgICAgICA6cHJpb3JpdHk9XCJQUklPUklUWS5RVUFURVJOQVJZXCJcbiAgICAgICAgICBAY2xpY2s9XCIoZXZlbnQ6IEV2ZW50KSA9PiBoYW5kbGVDbGljayhldmVudCwgcGFnaW5hdGlvbkJ1dHRvbilcIlxuICAgICAgICAvPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuXG4gICAgPFRpZGVCdXR0b25JY29uXG4gICAgICA6ZGlzYWJsZWQ9XCJwYWdlQ3VycmVudCA9PT0gcGFnaW5hdGlvbkJ1dHRvbnNbcGFnaW5hdGlvbkJ1dHRvbnMubGVuZ3RoIC0gMV1cIlxuICAgICAgOmljb249XCJJQ09OLkNIRVZST05fUklHSFRcIlxuICAgICAgOnByaW9yaXR5PVwiUFJJT1JJVFkuUVVBVEVSTkFSWVwiXG4gICAgICBAY2xpY2s9XCIoZXZlbnQ6IEV2ZW50KSA9PiBoYW5kbGVDbGljayhldmVudCwgcGFnZUN1cnJlbnQgKyAxKVwiXG4gICAgLz5cbiAgPC9zZWN0aW9uPlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD48L3N0eWxlPlxuIiwiPHNjcmlwdCBsYW5nPVwidHNcIiBzZXR1cD5cbiAgaW1wb3J0IHsgcmVmIH0gZnJvbSAndnVlJztcblxuICBpbXBvcnQgdHlwZSB7IFRhYiB9IGZyb20gJ0AvdHlwZXMvVGFiJztcblxuICBpbXBvcnQgeyBDU1MgfSBmcm9tICdAL3R5cGVzL1N0eWxlcyc7XG5cbiAgdHlwZSBQcm9wcyA9IHtcbiAgICBhY3RpdmVUYWJJbml0aWFsPzogbnVtYmVyO1xuICAgIHRhYnM6IFRhYltdO1xuICB9O1xuXG4gIGNvbnN0IHByb3BzID0gd2l0aERlZmF1bHRzKGRlZmluZVByb3BzPFByb3BzPigpLCB7XG4gICAgYWN0aXZlVGFiSW5pdGlhbDogMCxcbiAgfSk7XG5cbiAgY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsnY2hhbmdlJ10pO1xuXG4gIGNvbnN0IGFjdGl2ZVRhYiA9IHJlZihwcm9wcy5hY3RpdmVUYWJJbml0aWFsKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBhY3RpdmVUYWIudmFsdWUgPSBpbmRleDtcblxuICAgIGVtaXQoJ2NoYW5nZScsIGV2ZW50LCBpbmRleCk7XG4gIH07XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2XG4gICAgOmNsYXNzPVwiW1xuICAgICAgJ3RpZGUtdGFicycsXG4gICAgICBDU1MuQkcuU1VSRkFDRS5WQVJJQU5ULFxuICAgICAgQ1NTLkRJU1BMQVkuRkxFWCxcbiAgICAgIENTUy5HQVAuUVVBUlRFUixcbiAgICAgIENTUy5CT1JERVIuUkFESVVTLkhBTEYsXG4gICAgICBDU1MuUEFERElORy5GVUxMLlFVQVJURVIsXG4gICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgQ1NTLldJRFRILkZVTEwsXG4gICAgXVwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICA6Y2xhc3M9XCJbXG4gICAgICAgICd0aWRlLXRhYnMtdGFiJyxcbiAgICAgICAgaW5kZXggPT09IGFjdGl2ZVRhYlxuICAgICAgICAgID8gW0NTUy5CRy5TVVJGQUNFLkRFRkFVTFQsIENTUy5GT05ULkNPTE9SLlNVUkZBQ0UuREVGQVVMVCwgQ1NTLlNIQURPVy5CT1RUT01dXG4gICAgICAgICAgOiBbJ2luYWN0aXZlJywgQ1NTLkZPTlQuQ09MT1IuU1VSRkFDRS5WQVJJQU5UXSxcbiAgICAgICAgQ1NTLkZMRVguR1JPVy5PTixcbiAgICAgICAgQ1NTLkJPUkRFUi5SQURJVVMuUVVBUlRFUixcbiAgICAgICAgQ1NTLlBBRERJTkcuWS5RVUFSVEVSLFxuICAgICAgICBDU1MuV0lEVEguRlVMTCxcbiAgICAgICAgQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVELFxuICAgICAgICBDU1MuV0hJVEVTUEFDRV9XUkFQLk9GRixcbiAgICAgIF1cIlxuICAgICAgOmRhdGEtdHJhY2s9XCJ0YWIuZGF0YVRyYWNrIHx8IHVuZGVmaW5lZFwiXG4gICAgICA6a2V5PVwidGFiLmxhYmVsXCJcbiAgICAgIEBjbGljaz1cIihldmVudDogRXZlbnQpID0+IGhhbmRsZUNsaWNrKGV2ZW50LCBpbmRleClcIlxuICAgICAgdi1mb3I9XCIodGFiLCBpbmRleCkgaW4gcHJvcHMudGFic1wiXG4gICAgPlxuICAgICAgPHNwYW4gOmNsYXNzPVwiW0NTUy5GT05ULldFSUdIVC5TSVhfSFVORFJFRF1cIj5cbiAgICAgICAge3sgdGFiLmxhYmVsIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICA6Y2xhc3M9XCJbQ1NTLkZPTlQuV0VJR0hULlNJWF9IVU5EUkVEXVwiXG4gICAgICAgIHYtaWY9XCJ0YWIuY291bnQgJiYgdGFiLmNvdW50ID4gMFwiXG4gICAgICA+XG4gICAgICAgICh7eyB0YWIuY291bnQgfX0pXG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbiAgLnRpZGUtdGFicyB7XG4gICAgbWF4LXdpZHRoOiAyMy4zcmVtO1xuICB9XG5cbiAgLnRpZGUtdGFicy10YWIge1xuICAgIGZsZXg6IDE7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10aWRlLWFuaW1hdGUpO1xuICB9XG5cbiAgLmluYWN0aXZlOm5vdCg6aG92ZXIpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10aWRlLXN1cmZhY2UtdmFyaWFudCk7XG4gIH1cblxuICAuaW5hY3RpdmU6aG92ZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRpZGUtYm9yZGVyKTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgbGFuZz1cInRzXCIgc2V0dXA+XG4gIGltcG9ydCB7IHJlZiB9IGZyb20gJ3Z1ZSc7XG5cbiAgaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQC90eXBlcy9TdHlsZXMnO1xuXG4gIGNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoe1xuICAgIGRpc2FibGVkOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICBpc0FjdGl2ZToge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0cyhbJ2NoYW5nZSddKTtcblxuICBjb25zdCBpc0FjdGl2ZSA9IHJlZihwcm9wcy5pc0FjdGl2ZSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgaWYgKCFwcm9wcy5kaXNhYmxlZCkge1xuICAgICAgaXNBY3RpdmUudmFsdWUgPSAhaXNBY3RpdmUudmFsdWU7XG5cbiAgICAgIGVtaXQoJ2NoYW5nZScsIGV2ZW50LCBpc0FjdGl2ZS52YWx1ZSk7XG4gICAgfVxuICB9O1xuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGJ1dHRvblxuICAgIDpjbGFzcz1cIltcbiAgICAgICd0aWRlLXRvZ2dsZScsXG4gICAgICBDU1MuRElTUExBWS5GTEVYLFxuICAgICAgQ1NTLkFYSVMyLkNFTlRFUixcbiAgICAgIENTUy5CT1JERVIuUkFESVVTLkZVTEwsXG4gICAgICBDU1MuT1ZFUkZMT1cuWFkuSElEREVOLFxuICAgICAgcHJvcHMuaXNBY3RpdmUgPyBDU1MuQkcuU0VDT05EQVJZIDogQ1NTLkJHLlNVUkZBQ0UuVkFSSUFOVCxcbiAgICBdXCJcbiAgICA6ZGlzYWJsZWQ9XCJwcm9wcy5kaXNhYmxlZFwiXG4gICAgQGNsaWNrPVwiaGFuZGxlQ2xpY2tcIlxuICAgIGFyaWEtbGFiZWw9XCJUb2dnbGVcIlxuICA+XG4gICAgPGRpdlxuICAgICAgOmNsYXNzPVwiW1xuICAgICAgICAndGlkZS10b2dnbGUtaW5kaWNhdG9yJyxcbiAgICAgICAgQ1NTLkJHLlNVUkZBQ0UuREVGQVVMVCxcbiAgICAgICAgcHJvcHMuaXNBY3RpdmUgPyAnYWN0aXZlJyA6ICcnLFxuICAgICAgICBDU1MuUE9TSVRJT04uUkVMQVRJVkUsXG4gICAgICAgIENTUy5CT1JERVIuUkFESVVTLkZVTEwsXG4gICAgICAgIENTUy5TSEFET1cuQk9UVE9NLFxuICAgICAgXVwiXG4gICAgLz5cbiAgPC9idXR0b24+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuICAudGlkZS10b2dnbGUge1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRpZGUtYW5pbWF0ZSk7XG4gIH1cblxuICAudGlkZS10b2dnbGU6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMzI7XG4gIH1cblxuICAudGlkZS10b2dnbGUtaW5kaWNhdG9yIHtcbiAgICBsZWZ0OiA0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHRyYW5zaXRpb246IGxlZnQgdmFyKC0tdGlkZS1hbmltYXRlKTtcbiAgfVxuXG4gIC5hY3RpdmUge1xuICAgIGxlZnQ6IDM2cHg7XG4gIH1cbjwvc3R5bGU+XG4iLCJleHBvcnQgY29uc3QgUkVBTE0gPSB7XG4gIEFFUk86ICdhZXJvJyxcbiAgQVRWOiAnYXR2JyxcbiAgQk9BVE1BUlQ6ICdib2F0bWFydCcsXG4gIENZQ0xFOiAnY3ljbGUnLFxuICBFUVVJUDogJ2VxdWlwJyxcbiAgUFdDOiAncHdjJyxcbiAgUlY6ICdydicsXG4gIFNOT1c6ICdzbm93JyxcbiAgVFJVQ0s6ICd0cnVjaycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBSZWFsbSA9ICh0eXBlb2YgUkVBTE0pW2tleW9mIHR5cGVvZiBSRUFMTV07XG4iXSwibmFtZXMiOlsiQ1NTIiwiU0laRSIsImZvcm1hdFBhc2NhbENhc2UiLCJpbnB1dCIsIndvcmQiLCJpbm5lclNWRyIsInJlZiIsIndhdGNoIiwicHJvcHMiLCJpZCIsIm5hbWUiLCJjb21wb25lbnQiLCJkZWZpbmVBc3luY0NvbXBvbmVudCIsIl9fdmFyaWFibGVEeW5hbWljSW1wb3J0UnVudGltZUhlbHBlciIsIm1hcmtSYXciLCJJQ09OIiwiaXNFeHBhbmRlZCIsImFjY29yZGlvbkJvZHkiLCJ0b2dnbGVJc0V4cGFuZGVkIiwiZWxlbWVudCIsIm9uTW91bnRlZCIsIkVMRU1FTlQiLCJFTEVNRU5UX1RFWFRfQVNfSUNPTiIsIlBSSU9SSVRZIiwiVEFSR0VUIiwiQUxFUlQiLCJpY29uIiwiY29tcHV0ZWQiLCJCQURHRSIsIkJBREdFX1BSRU1JVU0iLCJCQURHRV9UUlVTVEVEIiwiZ2FwIiwiY29udGVudFdpZHRoIiwiZnJhbWVXaWR0aCIsImhhc092ZXJmbG93IiwibGFzdFBvc2l0aW9uIiwiY29udGVudFJlZiIsImZyYW1lUmVmIiwic2hvd0J1dHRvbnMiLCJjdXJyZW50U2xpZGUiLCJtZWFzdXJlQ3VycmVudFNsaWRlIiwic2xpZGVPZmZzZXRzIiwic2xpZGUiLCJjbG9zZXN0U2xpZGVPZmZzZXQiLCJwcmV2IiwiY3VyciIsIm1lYXN1cmVEb20iLCJoYW5kbGVTY3JvbGwiLCJzY3JvbGxUb1NsaWRlIiwic2xpZGVJbmRleCIsInNob3dOZXh0U2xpZGUiLCJjb250ZW50UmlnaHRFZGdlIiwiaXNGaXJzdFNsaWRlV2l0aE9mZnNldCIsIm5leHRTbGlkZSIsInNob3dQcmV2aW91c1NsaWRlIiwiZmlyc3RTbGlkZSIsImlzRmlyc3RTbGlkZSIsInByZXZpb3VzU2xpZGUiLCJvblVubW91bnRlZCIsIm9uVXBkYXRlZCIsImVtaXQiLCJ0aWRlSW1hZ2UiLCJpbWFnZURlZmF1bHQiLCJsb2FkSW1hZ2UiLCJpbWFnZUxvYWRlciIsInNldEltYWdlRnJvbVNyYyIsInNldEltYWdlRnJvbURlZmF1bHQiLCJfX2V4cG9zZSIsIm9ic2VydmVyIiwiZW50cmllcyIsImVudHJ5Iiwib25CZWZvcmVVbm1vdW50IiwiY2hlY2tlZCIsInVuaXF1ZUlkIiwiX2EiLCJnZXRDdXJyZW50SW5zdGFuY2UiLCJuZXdWYWx1ZSIsIm9sZFZhbHVlIiwiZXJyb3JNZXNzYWdlRGVmYXVsdCIsImdldEVycm9yTWVzc2FnZSIsImVycm9yRnJvbVByb3BzIiwiZXJyb3JGcm9tUmVmIiwiZ2V0RmllbGRIYXNFcnJvciIsImdldEZpZWxkTGVuZ3RoSXNWYWxpZCIsIm1heGxlbmd0aCIsIm1pbmxlbmd0aCIsInZhbHVlIiwidG9vU2hvcnQiLCJ0b29Mb25nIiwiaGFuZGxlRmllbGRWYWxpZGF0aW9uIiwiZXJyb3IiLCJ2YWxpZGF0b3JzIiwidmFsaWRhdGlvbiIsInZhbGlkYXRlUHJvcGVydHkiLCJsZW5ndGh2YWxpZGF0aW9uIiwidmFsaWRhdGVMZW5ndGgiLCJyZXNwb25zZSIsInZhbGlkYXRvciIsImhhc0ZvY3VzIiwicmVxdWlyZWQiLCJlcnJvck1lc3NhZ2UiLCJmb3JtYXR0ZWRMYWJlbCIsImhhc0Vycm9yIiwiaGFzTWluaWxhYmVsIiwiaXNFbXB0eSIsImV4cGFuZE9wdGlvbnMiLCJldmVudCIsImhhbmRsZUZvY3VzIiwiaGFuZGxlRm9jdXNPdXQiLCJURVhUX0lOUFVUX1RZUEUiLCJzaG93UGFzc3dvcmQiLCJoYXNDbGVhciIsInR5cGUiLCJoYW5kbGVDbGVhciIsImhhbmRsZVZhbGlkYXRpb24iLCJoYW5kbGVJbnB1dCIsImRpZ2l0cyIsInVwZGF0ZVZhbHVlIiwiaGFzSWNvbiIsImlzT3BlbiIsInNhdmVkU2Nyb2xsUG9zaXRpb24iLCJoYW5kbGVDbG9zZSIsInVwZGF0ZU1vZGFsRGlzcGxheSIsImFkZE9wZW5MaXN0ZW5lcnMiLCJyZW1vdmVPcGVuTGlzdGVuZXJzIiwiaGFuZGxlS2V5RG93biIsInBhZ2VDdXJyZW50IiwicGFnaW5hdGlvbkJ1dHRvbnMiLCJlbXB0eSIsImluZGV4IiwiaGFuZGxlQ2xpY2siLCJhY3RpdmVUYWIiLCJpc0FjdGl2ZSIsIlJFQUxNIl0sIm1hcHBpbmdzIjoiO0FBQU8sTUFBTUEsSUFBTTtBQUFBLEVBQ2pCLE9BQU87QUFBQSxJQUNMLEdBQUc7QUFBQSxNQUNELFFBQVE7QUFBQSxNQUNSLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxJQUNUO0FBQUEsSUFDQSxHQUFHO0FBQUEsTUFDRCxRQUFRO0FBQUEsSUFDVjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE9BQU87QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQSxFQUNUO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTCxRQUFRO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixLQUFLO0FBQUEsSUFDTCxPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsSUFBSTtBQUFBLElBQ0YsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLE1BQ1AsUUFBUTtBQUFBLE1BQ1IsZ0JBQWdCO0FBQUEsTUFDaEIsT0FBTztBQUFBLE1BQ1AsU0FBUztBQUFBLE1BQ1QsT0FBTztBQUFBLE1BQ1AsVUFBVTtBQUFBLE1BQ1YsVUFBVTtBQUFBLE1BQ1YsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLFNBQVM7QUFBQSxFQUNYO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDTixRQUFRO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsT0FBTztBQUFBLE1BQ0wsU0FBUztBQUFBLE1BQ1QsVUFBVTtBQUFBLE1BQ1YsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLE1BQU07QUFBQSxNQUNKLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxNQUFNO0FBQUEsTUFDSixLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsUUFBUTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLE9BQU87QUFBQSxNQUNMLEtBQUs7QUFBQSxNQUNMLEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxLQUFLO0FBQUEsTUFDSCxLQUFLO0FBQUEsTUFDTCxLQUFLO0FBQUEsSUFDUDtBQUFBLEVBQ0Y7QUFBQSxFQUNBLFlBQVk7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxFQUNmO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDVixJQUFJO0FBQUEsRUFDTjtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ04sYUFBYTtBQUFBLElBQ2IsU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLEVBQ1I7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNQLE9BQU87QUFBQSxJQUNQLFVBQVU7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxJQUNiLE1BQU07QUFBQSxFQUNSO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDSixXQUFXO0FBQUEsTUFDVCxRQUFRO0FBQUEsTUFDUixnQkFBZ0I7QUFBQSxNQUNoQixLQUFLO0FBQUEsTUFDTCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsTUFBTTtBQUFBLE1BQ0osS0FBSztBQUFBLE1BQ0wsSUFBSTtBQUFBLElBQ047QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLElBQUk7QUFBQSxJQUNOO0FBQUEsSUFDQSxNQUFNO0FBQUEsRUFDUjtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0osT0FBTztBQUFBLE1BQ0wsU0FBUztBQUFBLE1BQ1QsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLFFBQ1AsT0FBTztBQUFBLFFBQ1AsU0FBUztBQUFBLFFBQ1QsU0FBUztBQUFBLFFBQ1QsU0FBUztBQUFBLFFBQ1QsaUJBQWlCO0FBQUEsTUFDbkI7QUFBQSxJQUNGO0FBQUEsSUFDQSxNQUFNO0FBQUEsTUFDSixVQUFVO0FBQUEsTUFDVixTQUFTO0FBQUEsTUFDVCxZQUFZO0FBQUEsTUFDWixRQUFRO0FBQUEsTUFDUixRQUFRO0FBQUEsTUFDUixhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsUUFBUTtBQUFBLE1BQ04sY0FBYztBQUFBLE1BQ2QsY0FBYztBQUFBLE1BQ2QsZUFBZTtBQUFBLE1BQ2YsYUFBYTtBQUFBLElBQ2Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxLQUFLO0FBQUEsSUFDSCxNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixLQUFLO0FBQUEsSUFDTCxTQUFTO0FBQUEsSUFDVCxLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ04sTUFBTTtBQUFBLEVBQ1I7QUFBQSxFQUNBLGNBQWM7QUFBQSxJQUNaLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDTixRQUFRO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxTQUFTO0FBQUEsTUFDVCxLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsTUFBTTtBQUFBLE1BQ0osTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsU0FBUztBQUFBLE1BQ1QsS0FBSztBQUFBLElBQ1A7QUFBQSxJQUNBLE1BQU07QUFBQSxNQUNKLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLFNBQVM7QUFBQSxNQUNULEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxPQUFPO0FBQUEsTUFDTCxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxTQUFTO0FBQUEsTUFDVCxLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsS0FBSztBQUFBLE1BQ0gsTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsU0FBUztBQUFBLE1BQ1QsS0FBSztBQUFBLElBQ1A7QUFBQSxJQUNBLEdBQUc7QUFBQSxNQUNELE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLFNBQVM7QUFBQSxNQUNULEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxHQUFHO0FBQUEsTUFDRCxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxTQUFTO0FBQUEsTUFDVCxLQUFLO0FBQUEsSUFDUDtBQUFBLEVBQ0Y7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQSxVQUFVO0FBQUEsSUFDUixHQUFHO0FBQUEsTUFDRCxNQUFNO0FBQUEsTUFDTixRQUFRO0FBQUEsTUFDUixRQUFRO0FBQUEsSUFDVjtBQUFBLElBQ0EsSUFBSTtBQUFBLE1BQ0YsTUFBTTtBQUFBLE1BQ04sUUFBUTtBQUFBLElBQ1Y7QUFBQSxJQUNBLEdBQUc7QUFBQSxNQUNELE1BQU07QUFBQSxNQUNOLFFBQVE7QUFBQSxJQUNWO0FBQUEsRUFDRjtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsUUFBUTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsU0FBUztBQUFBLE1BQ1QsS0FBSztBQUFBLElBQ1A7QUFBQSxJQUNBLE1BQU07QUFBQSxNQUNKLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLFNBQVM7QUFBQSxNQUNULEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxNQUFNO0FBQUEsTUFDSixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixLQUFLO0FBQUEsTUFDTCxTQUFTO0FBQUEsTUFDVCxLQUFLO0FBQUEsSUFDUDtBQUFBLElBQ0EsT0FBTztBQUFBLE1BQ0wsTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsU0FBUztBQUFBLE1BQ1QsS0FBSztBQUFBLElBQ1A7QUFBQSxJQUNBLEtBQUs7QUFBQSxNQUNILE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLFNBQVM7QUFBQSxNQUNULEtBQUs7QUFBQSxJQUNQO0FBQUEsSUFDQSxHQUFHO0FBQUEsTUFDRCxNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFD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QSxFQUFJLE9BQU8sSUFBSSxLQUNmQSxFQUFJLE9BQU8sSUFBSSxNQUNmQSxFQUFJLE9BQU8sSUFBSSxTQUNmQSxFQUFJLE9BQU8sSUFBSSxLQUNmQSxFQUFJLE9BQU8sSUFBSSxNQUNmQSxFQUFJLE9BQU8sRUFBRSxLQUNiQSxFQUFJLE9BQU8sRUFBRSxNQUNiQSxFQUFJLE9BQU8sRUFBRSxTQUNiQSxFQUFJLE9BQU8sRUFBRSxLQUNiQSxFQUFJLE9BQU8sRUFBRSxNQUNiQSxFQUFJLE9BQU8sRUFBRSxNQUNiQSxFQUFJLE9BQU8sTUFBTSxLQUNqQkEsRUFBSSxPQUFPLE1BQU0sTUFDakJBLEVBQUksT0FBTyxNQUFNLFNBQ2pCQSxFQUFJLE9BQU8sTUFBTSxLQUNqQkEsRUFBSSxPQUFPLE1BQU0sTUFDakJBLEVBQUksT0FBTyxNQUFNLE1BQ2pCQSxFQUFJLE9BQU8sT0FBTyxLQUNsQkEsRUFBSSxPQUFPLE9BQU8sTUFDbEJBLEVBQUksT0FBTyxPQUFPLFNBQ2xCQSxFQUFJLE9BQU8sT0FBTyxLQUNsQkEsRUFBSSxPQUFPLE9BQU8sTUFDbEJBLEVBQUksT0FBTyxLQUFLLEtBQ2hCQSxFQUFJLE9BQU8sS0FBSyxNQUNoQkEsRUFBSSxPQUFPLEtBQUssU0FDaEJBLEVBQUksT0FBTyxLQUFLLEtBQ2hCQSxFQUFJLE9BQU8sS0FBSyxNQUNoQkEsRUFBSSxPQUFPLEtBQUssTUFDaEJBLEVBQUksT0FBTyxLQUFLLEtBQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLElBQUksS0FDZkEsRUFBSSxPQUFPLElBQUksS0FDZkEsRUFBSSxPQUFPLE1BQU0sS0FDakJBLEVBQUksT0FBTyxNQUFNLEtBQ2pCQSxFQUFJLE9BQU8sT0FBTyxLQUNsQkEsRUFBSSxPQUFPLE9BQU8sS0FDbEJBLEVBQUksT0FBTyxLQUFLLEtBQ2hCQSxFQUFJLE9BQU8sS0FBSyxLQUNoQkEsRUFBSSxPQUFPLE9BQU8sS0FDbEJBLEVBQUksT0FBTyxPQUFPLE1BQ2xCQSxFQUFJLE9BQU8sT0FBTyxTQUNsQkEsRUFBSSxPQUFPLE9BQU8sTUFDbEJBLEVBQUksUUFBUSxLQUFLLEtBQ2pCQSxFQUFJLFFBQVEsS0FBSyxNQUNqQkEsRUFBSSxRQUFRLEtBQUssU0FDakJBLEVBQUksUUFBUSxLQUFLLEtBQ2pCQSxFQUFJLFFBQVEsS0FBSyxNQUNqQkEsRUFBSSxRQUFRLEVBQUUsS0FDZEEsRUFBSSxRQUFRLEVBQUUsTUFDZEEsRUFBSSxRQUFRLEVBQUUsU0FDZEEsRUFBSSxRQUFRLEVBQUUsS0FDZEEsRUFBSSxRQUFRLEVBQUUsTUFDZEEsRUFBSSxRQUFRLElBQUksS0FDaEJBLEVBQUksUUFBUSxJQUFJLE1BQ2hCQSxFQUFJLFFBQVEsSUFBSSxTQUNoQkEsRUFBSSxRQUFRLElBQUksS0FDaEJBLEVBQUksUUFBUSxJQUFJLE1BQ2hCQSxFQUFJLFFBQVEsRUFBRSxLQUNkQSxFQUFJLFFBQVEsRUFBRSxNQUNkQSxFQUFJLFFBQVEsRUFBRSxTQUNkQSxFQUFJLFFBQVEsRUFBRSxLQUNkQSxFQUFJLFFBQVEsRUFBRSxNQUNkQSxFQUFJLFFBQVEsTUFBTSxLQUNsQkEsRUFBSSxRQUFRLE1BQU0sTUFDbEJBLEVBQUksUUFBUSxNQUFNLFNBQ2xCQSxFQUFJLFFBQVEsTUFBTSxLQUNsQkEsRUFBSSxRQUFRLE1BQU0sTUFDbEJBLEVBQUksUUFBUSxPQUFPLEtBQ25CQSxFQUFJLFFBQVEsT0FBTyxNQUNuQkEsRUFBSSxRQUFRLE9BQU8sU0FDbkJBLEVBQUksUUFBUSxPQUFPLEtBQ25CQSxFQUFJLFFBQVEsT0FBTyxNQUNuQkEsRUFBSSxRQUFRLEtBQUssS0FDakJBLEVBQUksUUFBUSxLQUFLLE1BQ2pCQSxFQUFJLFFBQVEsS0FBSyxTQUNqQkEsRUFBSSxRQUFRLEtBQUssS0FDakJBLEVBQUksUUFBUSxLQUFLLE1BQ2pCQSxFQUFJLE1BQU0sVUFDVkEsRUFBSSxNQUFNLE1BQ1ZBLEVBQUksT0FBTyxNQUNYQSxFQUFJLE1BQU0sRUFBRSxRQUNaQSxFQUFJLFlBQ0pBLEVBQUksT0FBTyxhQUNYQSxFQUFJLE9BQU8sU0FDWEEsRUFBSSxLQUFLLEtBQUss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QSxHQUFBLDZDQUFBLE1BQUEsT0FBQSxpQ0FBQSxHQUFBLDBDQUFBLE1BQUEsT0FBQSw4QkFBQSxHQUFBLDBDQUFBLE1BQUEsT0FBQSw4QkFBQSxHQUFBLHdDQUFBLE1BQUEsT0FBQSw0QkFBQSxHQUFBLHdDQUFBLE1BQUEsT0FBQSw0QkFBQSxHQUFBLDhDQUFBLE1BQUEsT0FBQSxrQ0FBQSxHQUFBLDBDQUFBLE1BQUEsT0FBQSw4QkFBQSxHQUFBLDRDQUFBLE1BQUEsT0FBQSxnQ0FBQSxHQUFBLGtEQUFBLE1BQUEsT0FBQSxzQ0FBQSxHQUFBLHFDQUFBLE1BQUEsT0FBQSx5QkFBQSxHQUFBLHNDQUFBLE1BQUEsT0FBQSwwQkFBQSxHQUFBLHlDQUFBLE1BQUEsT0FBQSw2QkFBQSxHQUFBLG9DQUFBLE1BQUEsT0FBQSx3QkFBQSxHQUFBLG9DQUFBLE1BQUEsT0FBQSx3QkFBQSxHQUFBLG9DQUFBLE1BQUEsT0FBQSx3QkFBQSxHQUFBLDBDQUFBLE1BQUEsT0FBQSw4QkFBQSxHQUFBLHlDQUFBLE1BQUEsT0FBQSw2QkFBQSxHQUFBLHdDQUFBLE1BQUEsT0FBQSw0QkFBQSxHQUFBLHNDQUFBLE1BQUEsT0FBQSwwQkFBQSxHQUFBLHdDQUFBLE1BQUEsT0FBQSw0QkFBQSxHQUFBLDZDQUFBLE1BQUEsT0FBQSxpQ0FBQSxHQUFBLG9DQUFBLE1BQUEsT0FBQSx3QkFBQSxHQUFBLG9DQUFBLE1BQUEsT0FBQSx3QkFBQSxHQUFBLG9DQUFBLE1BQUEsT0FBQSx3QkFBQSxHQUFBLHlDQUFBLE1BQUEsT0FBQSw2QkFBQSxHQUFBLDZDQUFBLE1BQUEsT0FBQSxpQ0FBQSxHQUFBLHlDQUFBLE1BQUEsT0FBQSw2QkFBQSxHQUFBLHVDQUFBLE1BQUEsT0FBQSwyQkFBQSxHQUFBLHNDQUFBLE1BQUEsT0FBQSwwQkFBQSxHQUFBLHNDQUFBLE1BQUEsT0FBQSwwQkFBQSxHQUFBLDJDQUFBLE1BQUEsT0FBQSwrQkFBQSxHQUFBLHlDQUFBLE1BQUEsT0FBQSw2QkFBQSxHQUFBLHlDQUFBLE1BQUEsT0FBQSw2QkFBQSxHQUFBLHND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
|