@01/env 2.0.4 → 2.1.2
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/env.d.ts +3 -5
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +54 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -923
- package/dist/index.js.map +1 -0
- package/dist/package.json +36 -0
- package/dist/runtime.d.ts +4 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +12 -0
- package/dist/runtime.js.map +1 -0
- package/package.json +10 -19
- package/CHANGELOG.md +0 -55
- package/coverage/clover.xml +0 -31
- package/coverage/coverage-final.json +0 -2
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -79
- package/coverage/lcov-report/env.ts.html +0 -221
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -111
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -170
- package/coverage/lcov.info +0 -59
- package/eslint.json +0 -6
- package/jest.json +0 -23
- package/junit.xml +0 -39
- package/src/env.spec.ts +0 -113
- package/src/env.ts +0 -47
- package/src/index.ts +0 -1
- package/tsconfig.json +0 -33
- package/webpack.config.ts +0 -14
package/dist/index.js
CHANGED
|
@@ -1,925 +1,5 @@
|
|
|
1
|
-
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
-
if(typeof exports === 'object' && typeof module === 'object')
|
|
3
|
-
module.exports = factory();
|
|
4
|
-
else if(typeof define === 'function' && define.amd)
|
|
5
|
-
define([], factory);
|
|
6
|
-
else if(typeof exports === 'object')
|
|
7
|
-
exports["index"] = factory();
|
|
8
|
-
else
|
|
9
|
-
root["index"] = factory();
|
|
10
|
-
})(global, function() {
|
|
11
|
-
return /******/ (function(modules) { // webpackBootstrap
|
|
12
|
-
/******/ // eslint-disable-next-line no-unused-vars
|
|
13
|
-
/******/ function hotDownloadUpdateChunk(chunkId) {
|
|
14
|
-
/******/ var chunk = require("./" + "" + chunkId + "." + hotCurrentHash + ".hot-update.js");
|
|
15
|
-
/******/ hotAddUpdateChunk(chunk.id, chunk.modules);
|
|
16
|
-
/******/ }
|
|
17
|
-
/******/
|
|
18
|
-
/******/ // eslint-disable-next-line no-unused-vars
|
|
19
|
-
/******/ function hotDownloadManifest() {
|
|
20
|
-
/******/ try {
|
|
21
|
-
/******/ var update = require("./" + "" + hotCurrentHash + ".hot-update.json");
|
|
22
|
-
/******/ } catch (e) {
|
|
23
|
-
/******/ return Promise.resolve();
|
|
24
|
-
/******/ }
|
|
25
|
-
/******/ return Promise.resolve(update);
|
|
26
|
-
/******/ }
|
|
27
|
-
/******/
|
|
28
|
-
/******/ //eslint-disable-next-line no-unused-vars
|
|
29
|
-
/******/ function hotDisposeChunk(chunkId) {
|
|
30
|
-
/******/ delete installedChunks[chunkId];
|
|
31
|
-
/******/ }
|
|
32
|
-
/******/
|
|
33
|
-
/******/ var hotApplyOnUpdate = true;
|
|
34
|
-
/******/ // eslint-disable-next-line no-unused-vars
|
|
35
|
-
/******/ var hotCurrentHash = "7c4dbae1ff322189da92";
|
|
36
|
-
/******/ var hotRequestTimeout = 10000;
|
|
37
|
-
/******/ var hotCurrentModuleData = {};
|
|
38
|
-
/******/ var hotCurrentChildModule;
|
|
39
|
-
/******/ // eslint-disable-next-line no-unused-vars
|
|
40
|
-
/******/ var hotCurrentParents = [];
|
|
41
|
-
/******/ // eslint-disable-next-line no-unused-vars
|
|
42
|
-
/******/ var hotCurrentParentsTemp = [];
|
|
43
|
-
/******/
|
|
44
|
-
/******/ // eslint-disable-next-line no-unused-vars
|
|
45
|
-
/******/ function hotCreateRequire(moduleId) {
|
|
46
|
-
/******/ var me = installedModules[moduleId];
|
|
47
|
-
/******/ if (!me) return __webpack_require__;
|
|
48
|
-
/******/ var fn = function(request) {
|
|
49
|
-
/******/ if (me.hot.active) {
|
|
50
|
-
/******/ if (installedModules[request]) {
|
|
51
|
-
/******/ if (installedModules[request].parents.indexOf(moduleId) === -1) {
|
|
52
|
-
/******/ installedModules[request].parents.push(moduleId);
|
|
53
|
-
/******/ }
|
|
54
|
-
/******/ } else {
|
|
55
|
-
/******/ hotCurrentParents = [moduleId];
|
|
56
|
-
/******/ hotCurrentChildModule = request;
|
|
57
|
-
/******/ }
|
|
58
|
-
/******/ if (me.children.indexOf(request) === -1) {
|
|
59
|
-
/******/ me.children.push(request);
|
|
60
|
-
/******/ }
|
|
61
|
-
/******/ } else {
|
|
62
|
-
/******/ console.warn(
|
|
63
|
-
/******/ "[HMR] unexpected require(" +
|
|
64
|
-
/******/ request +
|
|
65
|
-
/******/ ") from disposed module " +
|
|
66
|
-
/******/ moduleId
|
|
67
|
-
/******/ );
|
|
68
|
-
/******/ hotCurrentParents = [];
|
|
69
|
-
/******/ }
|
|
70
|
-
/******/ return __webpack_require__(request);
|
|
71
|
-
/******/ };
|
|
72
|
-
/******/ var ObjectFactory = function ObjectFactory(name) {
|
|
73
|
-
/******/ return {
|
|
74
|
-
/******/ configurable: true,
|
|
75
|
-
/******/ enumerable: true,
|
|
76
|
-
/******/ get: function() {
|
|
77
|
-
/******/ return __webpack_require__[name];
|
|
78
|
-
/******/ },
|
|
79
|
-
/******/ set: function(value) {
|
|
80
|
-
/******/ __webpack_require__[name] = value;
|
|
81
|
-
/******/ }
|
|
82
|
-
/******/ };
|
|
83
|
-
/******/ };
|
|
84
|
-
/******/ for (var name in __webpack_require__) {
|
|
85
|
-
/******/ if (
|
|
86
|
-
/******/ Object.prototype.hasOwnProperty.call(__webpack_require__, name) &&
|
|
87
|
-
/******/ name !== "e" &&
|
|
88
|
-
/******/ name !== "t"
|
|
89
|
-
/******/ ) {
|
|
90
|
-
/******/ Object.defineProperty(fn, name, ObjectFactory(name));
|
|
91
|
-
/******/ }
|
|
92
|
-
/******/ }
|
|
93
|
-
/******/ fn.e = function(chunkId) {
|
|
94
|
-
/******/ if (hotStatus === "ready") hotSetStatus("prepare");
|
|
95
|
-
/******/ hotChunksLoading++;
|
|
96
|
-
/******/ return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {
|
|
97
|
-
/******/ finishChunkLoading();
|
|
98
|
-
/******/ throw err;
|
|
99
|
-
/******/ });
|
|
100
|
-
/******/
|
|
101
|
-
/******/ function finishChunkLoading() {
|
|
102
|
-
/******/ hotChunksLoading--;
|
|
103
|
-
/******/ if (hotStatus === "prepare") {
|
|
104
|
-
/******/ if (!hotWaitingFilesMap[chunkId]) {
|
|
105
|
-
/******/ hotEnsureUpdateChunk(chunkId);
|
|
106
|
-
/******/ }
|
|
107
|
-
/******/ if (hotChunksLoading === 0 && hotWaitingFiles === 0) {
|
|
108
|
-
/******/ hotUpdateDownloaded();
|
|
109
|
-
/******/ }
|
|
110
|
-
/******/ }
|
|
111
|
-
/******/ }
|
|
112
|
-
/******/ };
|
|
113
|
-
/******/ fn.t = function(value, mode) {
|
|
114
|
-
/******/ if (mode & 1) value = fn(value);
|
|
115
|
-
/******/ return __webpack_require__.t(value, mode & ~1);
|
|
116
|
-
/******/ };
|
|
117
|
-
/******/ return fn;
|
|
118
|
-
/******/ }
|
|
119
|
-
/******/
|
|
120
|
-
/******/ // eslint-disable-next-line no-unused-vars
|
|
121
|
-
/******/ function hotCreateModule(moduleId) {
|
|
122
|
-
/******/ var hot = {
|
|
123
|
-
/******/ // private stuff
|
|
124
|
-
/******/ _acceptedDependencies: {},
|
|
125
|
-
/******/ _declinedDependencies: {},
|
|
126
|
-
/******/ _selfAccepted: false,
|
|
127
|
-
/******/ _selfDeclined: false,
|
|
128
|
-
/******/ _selfInvalidated: false,
|
|
129
|
-
/******/ _disposeHandlers: [],
|
|
130
|
-
/******/ _main: hotCurrentChildModule !== moduleId,
|
|
131
|
-
/******/
|
|
132
|
-
/******/ // Module API
|
|
133
|
-
/******/ active: true,
|
|
134
|
-
/******/ accept: function(dep, callback) {
|
|
135
|
-
/******/ if (dep === undefined) hot._selfAccepted = true;
|
|
136
|
-
/******/ else if (typeof dep === "function") hot._selfAccepted = dep;
|
|
137
|
-
/******/ else if (typeof dep === "object")
|
|
138
|
-
/******/ for (var i = 0; i < dep.length; i++)
|
|
139
|
-
/******/ hot._acceptedDependencies[dep[i]] = callback || function() {};
|
|
140
|
-
/******/ else hot._acceptedDependencies[dep] = callback || function() {};
|
|
141
|
-
/******/ },
|
|
142
|
-
/******/ decline: function(dep) {
|
|
143
|
-
/******/ if (dep === undefined) hot._selfDeclined = true;
|
|
144
|
-
/******/ else if (typeof dep === "object")
|
|
145
|
-
/******/ for (var i = 0; i < dep.length; i++)
|
|
146
|
-
/******/ hot._declinedDependencies[dep[i]] = true;
|
|
147
|
-
/******/ else hot._declinedDependencies[dep] = true;
|
|
148
|
-
/******/ },
|
|
149
|
-
/******/ dispose: function(callback) {
|
|
150
|
-
/******/ hot._disposeHandlers.push(callback);
|
|
151
|
-
/******/ },
|
|
152
|
-
/******/ addDisposeHandler: function(callback) {
|
|
153
|
-
/******/ hot._disposeHandlers.push(callback);
|
|
154
|
-
/******/ },
|
|
155
|
-
/******/ removeDisposeHandler: function(callback) {
|
|
156
|
-
/******/ var idx = hot._disposeHandlers.indexOf(callback);
|
|
157
|
-
/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1);
|
|
158
|
-
/******/ },
|
|
159
|
-
/******/ invalidate: function() {
|
|
160
|
-
/******/ this._selfInvalidated = true;
|
|
161
|
-
/******/ switch (hotStatus) {
|
|
162
|
-
/******/ case "idle":
|
|
163
|
-
/******/ hotUpdate = {};
|
|
164
|
-
/******/ hotUpdate[moduleId] = modules[moduleId];
|
|
165
|
-
/******/ hotSetStatus("ready");
|
|
166
|
-
/******/ break;
|
|
167
|
-
/******/ case "ready":
|
|
168
|
-
/******/ hotApplyInvalidatedModule(moduleId);
|
|
169
|
-
/******/ break;
|
|
170
|
-
/******/ case "prepare":
|
|
171
|
-
/******/ case "check":
|
|
172
|
-
/******/ case "dispose":
|
|
173
|
-
/******/ case "apply":
|
|
174
|
-
/******/ (hotQueuedInvalidatedModules =
|
|
175
|
-
/******/ hotQueuedInvalidatedModules || []).push(moduleId);
|
|
176
|
-
/******/ break;
|
|
177
|
-
/******/ default:
|
|
178
|
-
/******/ // ignore requests in error states
|
|
179
|
-
/******/ break;
|
|
180
|
-
/******/ }
|
|
181
|
-
/******/ },
|
|
182
|
-
/******/
|
|
183
|
-
/******/ // Management API
|
|
184
|
-
/******/ check: hotCheck,
|
|
185
|
-
/******/ apply: hotApply,
|
|
186
|
-
/******/ status: function(l) {
|
|
187
|
-
/******/ if (!l) return hotStatus;
|
|
188
|
-
/******/ hotStatusHandlers.push(l);
|
|
189
|
-
/******/ },
|
|
190
|
-
/******/ addStatusHandler: function(l) {
|
|
191
|
-
/******/ hotStatusHandlers.push(l);
|
|
192
|
-
/******/ },
|
|
193
|
-
/******/ removeStatusHandler: function(l) {
|
|
194
|
-
/******/ var idx = hotStatusHandlers.indexOf(l);
|
|
195
|
-
/******/ if (idx >= 0) hotStatusHandlers.splice(idx, 1);
|
|
196
|
-
/******/ },
|
|
197
|
-
/******/
|
|
198
|
-
/******/ //inherit from previous dispose call
|
|
199
|
-
/******/ data: hotCurrentModuleData[moduleId]
|
|
200
|
-
/******/ };
|
|
201
|
-
/******/ hotCurrentChildModule = undefined;
|
|
202
|
-
/******/ return hot;
|
|
203
|
-
/******/ }
|
|
204
|
-
/******/
|
|
205
|
-
/******/ var hotStatusHandlers = [];
|
|
206
|
-
/******/ var hotStatus = "idle";
|
|
207
|
-
/******/
|
|
208
|
-
/******/ function hotSetStatus(newStatus) {
|
|
209
|
-
/******/ hotStatus = newStatus;
|
|
210
|
-
/******/ for (var i = 0; i < hotStatusHandlers.length; i++)
|
|
211
|
-
/******/ hotStatusHandlers[i].call(null, newStatus);
|
|
212
|
-
/******/ }
|
|
213
|
-
/******/
|
|
214
|
-
/******/ // while downloading
|
|
215
|
-
/******/ var hotWaitingFiles = 0;
|
|
216
|
-
/******/ var hotChunksLoading = 0;
|
|
217
|
-
/******/ var hotWaitingFilesMap = {};
|
|
218
|
-
/******/ var hotRequestedFilesMap = {};
|
|
219
|
-
/******/ var hotAvailableFilesMap = {};
|
|
220
|
-
/******/ var hotDeferred;
|
|
221
|
-
/******/
|
|
222
|
-
/******/ // The update info
|
|
223
|
-
/******/ var hotUpdate, hotUpdateNewHash, hotQueuedInvalidatedModules;
|
|
224
|
-
/******/
|
|
225
|
-
/******/ function toModuleId(id) {
|
|
226
|
-
/******/ var isNumber = +id + "" === id;
|
|
227
|
-
/******/ return isNumber ? +id : id;
|
|
228
|
-
/******/ }
|
|
229
|
-
/******/
|
|
230
|
-
/******/ function hotCheck(apply) {
|
|
231
|
-
/******/ if (hotStatus !== "idle") {
|
|
232
|
-
/******/ throw new Error("check() is only allowed in idle status");
|
|
233
|
-
/******/ }
|
|
234
|
-
/******/ hotApplyOnUpdate = apply;
|
|
235
|
-
/******/ hotSetStatus("check");
|
|
236
|
-
/******/ return hotDownloadManifest(hotRequestTimeout).then(function(update) {
|
|
237
|
-
/******/ if (!update) {
|
|
238
|
-
/******/ hotSetStatus(hotApplyInvalidatedModules() ? "ready" : "idle");
|
|
239
|
-
/******/ return null;
|
|
240
|
-
/******/ }
|
|
241
|
-
/******/ hotRequestedFilesMap = {};
|
|
242
|
-
/******/ hotWaitingFilesMap = {};
|
|
243
|
-
/******/ hotAvailableFilesMap = update.c;
|
|
244
|
-
/******/ hotUpdateNewHash = update.h;
|
|
245
|
-
/******/
|
|
246
|
-
/******/ hotSetStatus("prepare");
|
|
247
|
-
/******/ var promise = new Promise(function(resolve, reject) {
|
|
248
|
-
/******/ hotDeferred = {
|
|
249
|
-
/******/ resolve: resolve,
|
|
250
|
-
/******/ reject: reject
|
|
251
|
-
/******/ };
|
|
252
|
-
/******/ });
|
|
253
|
-
/******/ hotUpdate = {};
|
|
254
|
-
/******/ var chunkId = 0;
|
|
255
|
-
/******/ // eslint-disable-next-line no-lone-blocks
|
|
256
|
-
/******/ {
|
|
257
|
-
/******/ hotEnsureUpdateChunk(chunkId);
|
|
258
|
-
/******/ }
|
|
259
|
-
/******/ if (
|
|
260
|
-
/******/ hotStatus === "prepare" &&
|
|
261
|
-
/******/ hotChunksLoading === 0 &&
|
|
262
|
-
/******/ hotWaitingFiles === 0
|
|
263
|
-
/******/ ) {
|
|
264
|
-
/******/ hotUpdateDownloaded();
|
|
265
|
-
/******/ }
|
|
266
|
-
/******/ return promise;
|
|
267
|
-
/******/ });
|
|
268
|
-
/******/ }
|
|
269
|
-
/******/
|
|
270
|
-
/******/ // eslint-disable-next-line no-unused-vars
|
|
271
|
-
/******/ function hotAddUpdateChunk(chunkId, moreModules) {
|
|
272
|
-
/******/ if (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])
|
|
273
|
-
/******/ return;
|
|
274
|
-
/******/ hotRequestedFilesMap[chunkId] = false;
|
|
275
|
-
/******/ for (var moduleId in moreModules) {
|
|
276
|
-
/******/ if (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
|
|
277
|
-
/******/ hotUpdate[moduleId] = moreModules[moduleId];
|
|
278
|
-
/******/ }
|
|
279
|
-
/******/ }
|
|
280
|
-
/******/ if (--hotWaitingFiles === 0 && hotChunksLoading === 0) {
|
|
281
|
-
/******/ hotUpdateDownloaded();
|
|
282
|
-
/******/ }
|
|
283
|
-
/******/ }
|
|
284
|
-
/******/
|
|
285
|
-
/******/ function hotEnsureUpdateChunk(chunkId) {
|
|
286
|
-
/******/ if (!hotAvailableFilesMap[chunkId]) {
|
|
287
|
-
/******/ hotWaitingFilesMap[chunkId] = true;
|
|
288
|
-
/******/ } else {
|
|
289
|
-
/******/ hotRequestedFilesMap[chunkId] = true;
|
|
290
|
-
/******/ hotWaitingFiles++;
|
|
291
|
-
/******/ hotDownloadUpdateChunk(chunkId);
|
|
292
|
-
/******/ }
|
|
293
|
-
/******/ }
|
|
294
|
-
/******/
|
|
295
|
-
/******/ function hotUpdateDownloaded() {
|
|
296
|
-
/******/ hotSetStatus("ready");
|
|
297
|
-
/******/ var deferred = hotDeferred;
|
|
298
|
-
/******/ hotDeferred = null;
|
|
299
|
-
/******/ if (!deferred) return;
|
|
300
|
-
/******/ if (hotApplyOnUpdate) {
|
|
301
|
-
/******/ // Wrap deferred object in Promise to mark it as a well-handled Promise to
|
|
302
|
-
/******/ // avoid triggering uncaught exception warning in Chrome.
|
|
303
|
-
/******/ // See https://bugs.chromium.org/p/chromium/issues/detail?id=465666
|
|
304
|
-
/******/ Promise.resolve()
|
|
305
|
-
/******/ .then(function() {
|
|
306
|
-
/******/ return hotApply(hotApplyOnUpdate);
|
|
307
|
-
/******/ })
|
|
308
|
-
/******/ .then(
|
|
309
|
-
/******/ function(result) {
|
|
310
|
-
/******/ deferred.resolve(result);
|
|
311
|
-
/******/ },
|
|
312
|
-
/******/ function(err) {
|
|
313
|
-
/******/ deferred.reject(err);
|
|
314
|
-
/******/ }
|
|
315
|
-
/******/ );
|
|
316
|
-
/******/ } else {
|
|
317
|
-
/******/ var outdatedModules = [];
|
|
318
|
-
/******/ for (var id in hotUpdate) {
|
|
319
|
-
/******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
|
|
320
|
-
/******/ outdatedModules.push(toModuleId(id));
|
|
321
|
-
/******/ }
|
|
322
|
-
/******/ }
|
|
323
|
-
/******/ deferred.resolve(outdatedModules);
|
|
324
|
-
/******/ }
|
|
325
|
-
/******/ }
|
|
326
|
-
/******/
|
|
327
|
-
/******/ function hotApply(options) {
|
|
328
|
-
/******/ if (hotStatus !== "ready")
|
|
329
|
-
/******/ throw new Error("apply() is only allowed in ready status");
|
|
330
|
-
/******/ options = options || {};
|
|
331
|
-
/******/ return hotApplyInternal(options);
|
|
332
|
-
/******/ }
|
|
333
|
-
/******/
|
|
334
|
-
/******/ function hotApplyInternal(options) {
|
|
335
|
-
/******/ hotApplyInvalidatedModules();
|
|
336
|
-
/******/
|
|
337
|
-
/******/ var cb;
|
|
338
|
-
/******/ var i;
|
|
339
|
-
/******/ var j;
|
|
340
|
-
/******/ var module;
|
|
341
|
-
/******/ var moduleId;
|
|
342
|
-
/******/
|
|
343
|
-
/******/ function getAffectedStuff(updateModuleId) {
|
|
344
|
-
/******/ var outdatedModules = [updateModuleId];
|
|
345
|
-
/******/ var outdatedDependencies = {};
|
|
346
|
-
/******/
|
|
347
|
-
/******/ var queue = outdatedModules.map(function(id) {
|
|
348
|
-
/******/ return {
|
|
349
|
-
/******/ chain: [id],
|
|
350
|
-
/******/ id: id
|
|
351
|
-
/******/ };
|
|
352
|
-
/******/ });
|
|
353
|
-
/******/ while (queue.length > 0) {
|
|
354
|
-
/******/ var queueItem = queue.pop();
|
|
355
|
-
/******/ var moduleId = queueItem.id;
|
|
356
|
-
/******/ var chain = queueItem.chain;
|
|
357
|
-
/******/ module = installedModules[moduleId];
|
|
358
|
-
/******/ if (
|
|
359
|
-
/******/ !module ||
|
|
360
|
-
/******/ (module.hot._selfAccepted && !module.hot._selfInvalidated)
|
|
361
|
-
/******/ )
|
|
362
|
-
/******/ continue;
|
|
363
|
-
/******/ if (module.hot._selfDeclined) {
|
|
364
|
-
/******/ return {
|
|
365
|
-
/******/ type: "self-declined",
|
|
366
|
-
/******/ chain: chain,
|
|
367
|
-
/******/ moduleId: moduleId
|
|
368
|
-
/******/ };
|
|
369
|
-
/******/ }
|
|
370
|
-
/******/ if (module.hot._main) {
|
|
371
|
-
/******/ return {
|
|
372
|
-
/******/ type: "unaccepted",
|
|
373
|
-
/******/ chain: chain,
|
|
374
|
-
/******/ moduleId: moduleId
|
|
375
|
-
/******/ };
|
|
376
|
-
/******/ }
|
|
377
|
-
/******/ for (var i = 0; i < module.parents.length; i++) {
|
|
378
|
-
/******/ var parentId = module.parents[i];
|
|
379
|
-
/******/ var parent = installedModules[parentId];
|
|
380
|
-
/******/ if (!parent) continue;
|
|
381
|
-
/******/ if (parent.hot._declinedDependencies[moduleId]) {
|
|
382
|
-
/******/ return {
|
|
383
|
-
/******/ type: "declined",
|
|
384
|
-
/******/ chain: chain.concat([parentId]),
|
|
385
|
-
/******/ moduleId: moduleId,
|
|
386
|
-
/******/ parentId: parentId
|
|
387
|
-
/******/ };
|
|
388
|
-
/******/ }
|
|
389
|
-
/******/ if (outdatedModules.indexOf(parentId) !== -1) continue;
|
|
390
|
-
/******/ if (parent.hot._acceptedDependencies[moduleId]) {
|
|
391
|
-
/******/ if (!outdatedDependencies[parentId])
|
|
392
|
-
/******/ outdatedDependencies[parentId] = [];
|
|
393
|
-
/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]);
|
|
394
|
-
/******/ continue;
|
|
395
|
-
/******/ }
|
|
396
|
-
/******/ delete outdatedDependencies[parentId];
|
|
397
|
-
/******/ outdatedModules.push(parentId);
|
|
398
|
-
/******/ queue.push({
|
|
399
|
-
/******/ chain: chain.concat([parentId]),
|
|
400
|
-
/******/ id: parentId
|
|
401
|
-
/******/ });
|
|
402
|
-
/******/ }
|
|
403
|
-
/******/ }
|
|
404
|
-
/******/
|
|
405
|
-
/******/ return {
|
|
406
|
-
/******/ type: "accepted",
|
|
407
|
-
/******/ moduleId: updateModuleId,
|
|
408
|
-
/******/ outdatedModules: outdatedModules,
|
|
409
|
-
/******/ outdatedDependencies: outdatedDependencies
|
|
410
|
-
/******/ };
|
|
411
|
-
/******/ }
|
|
412
|
-
/******/
|
|
413
|
-
/******/ function addAllToSet(a, b) {
|
|
414
|
-
/******/ for (var i = 0; i < b.length; i++) {
|
|
415
|
-
/******/ var item = b[i];
|
|
416
|
-
/******/ if (a.indexOf(item) === -1) a.push(item);
|
|
417
|
-
/******/ }
|
|
418
|
-
/******/ }
|
|
419
|
-
/******/
|
|
420
|
-
/******/ // at begin all updates modules are outdated
|
|
421
|
-
/******/ // the "outdated" status can propagate to parents if they don't accept the children
|
|
422
|
-
/******/ var outdatedDependencies = {};
|
|
423
|
-
/******/ var outdatedModules = [];
|
|
424
|
-
/******/ var appliedUpdate = {};
|
|
425
|
-
/******/
|
|
426
|
-
/******/ var warnUnexpectedRequire = function warnUnexpectedRequire() {
|
|
427
|
-
/******/ console.warn(
|
|
428
|
-
/******/ "[HMR] unexpected require(" + result.moduleId + ") to disposed module"
|
|
429
|
-
/******/ );
|
|
430
|
-
/******/ };
|
|
431
|
-
/******/
|
|
432
|
-
/******/ for (var id in hotUpdate) {
|
|
433
|
-
/******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
|
|
434
|
-
/******/ moduleId = toModuleId(id);
|
|
435
|
-
/******/ /** @type {TODO} */
|
|
436
|
-
/******/ var result;
|
|
437
|
-
/******/ if (hotUpdate[id]) {
|
|
438
|
-
/******/ result = getAffectedStuff(moduleId);
|
|
439
|
-
/******/ } else {
|
|
440
|
-
/******/ result = {
|
|
441
|
-
/******/ type: "disposed",
|
|
442
|
-
/******/ moduleId: id
|
|
443
|
-
/******/ };
|
|
444
|
-
/******/ }
|
|
445
|
-
/******/ /** @type {Error|false} */
|
|
446
|
-
/******/ var abortError = false;
|
|
447
|
-
/******/ var doApply = false;
|
|
448
|
-
/******/ var doDispose = false;
|
|
449
|
-
/******/ var chainInfo = "";
|
|
450
|
-
/******/ if (result.chain) {
|
|
451
|
-
/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> ");
|
|
452
|
-
/******/ }
|
|
453
|
-
/******/ switch (result.type) {
|
|
454
|
-
/******/ case "self-declined":
|
|
455
|
-
/******/ if (options.onDeclined) options.onDeclined(result);
|
|
456
|
-
/******/ if (!options.ignoreDeclined)
|
|
457
|
-
/******/ abortError = new Error(
|
|
458
|
-
/******/ "Aborted because of self decline: " +
|
|
459
|
-
/******/ result.moduleId +
|
|
460
|
-
/******/ chainInfo
|
|
461
|
-
/******/ );
|
|
462
|
-
/******/ break;
|
|
463
|
-
/******/ case "declined":
|
|
464
|
-
/******/ if (options.onDeclined) options.onDeclined(result);
|
|
465
|
-
/******/ if (!options.ignoreDeclined)
|
|
466
|
-
/******/ abortError = new Error(
|
|
467
|
-
/******/ "Aborted because of declined dependency: " +
|
|
468
|
-
/******/ result.moduleId +
|
|
469
|
-
/******/ " in " +
|
|
470
|
-
/******/ result.parentId +
|
|
471
|
-
/******/ chainInfo
|
|
472
|
-
/******/ );
|
|
473
|
-
/******/ break;
|
|
474
|
-
/******/ case "unaccepted":
|
|
475
|
-
/******/ if (options.onUnaccepted) options.onUnaccepted(result);
|
|
476
|
-
/******/ if (!options.ignoreUnaccepted)
|
|
477
|
-
/******/ abortError = new Error(
|
|
478
|
-
/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo
|
|
479
|
-
/******/ );
|
|
480
|
-
/******/ break;
|
|
481
|
-
/******/ case "accepted":
|
|
482
|
-
/******/ if (options.onAccepted) options.onAccepted(result);
|
|
483
|
-
/******/ doApply = true;
|
|
484
|
-
/******/ break;
|
|
485
|
-
/******/ case "disposed":
|
|
486
|
-
/******/ if (options.onDisposed) options.onDisposed(result);
|
|
487
|
-
/******/ doDispose = true;
|
|
488
|
-
/******/ break;
|
|
489
|
-
/******/ default:
|
|
490
|
-
/******/ throw new Error("Unexception type " + result.type);
|
|
491
|
-
/******/ }
|
|
492
|
-
/******/ if (abortError) {
|
|
493
|
-
/******/ hotSetStatus("abort");
|
|
494
|
-
/******/ return Promise.reject(abortError);
|
|
495
|
-
/******/ }
|
|
496
|
-
/******/ if (doApply) {
|
|
497
|
-
/******/ appliedUpdate[moduleId] = hotUpdate[moduleId];
|
|
498
|
-
/******/ addAllToSet(outdatedModules, result.outdatedModules);
|
|
499
|
-
/******/ for (moduleId in result.outdatedDependencies) {
|
|
500
|
-
/******/ if (
|
|
501
|
-
/******/ Object.prototype.hasOwnProperty.call(
|
|
502
|
-
/******/ result.outdatedDependencies,
|
|
503
|
-
/******/ moduleId
|
|
504
|
-
/******/ )
|
|
505
|
-
/******/ ) {
|
|
506
|
-
/******/ if (!outdatedDependencies[moduleId])
|
|
507
|
-
/******/ outdatedDependencies[moduleId] = [];
|
|
508
|
-
/******/ addAllToSet(
|
|
509
|
-
/******/ outdatedDependencies[moduleId],
|
|
510
|
-
/******/ result.outdatedDependencies[moduleId]
|
|
511
|
-
/******/ );
|
|
512
|
-
/******/ }
|
|
513
|
-
/******/ }
|
|
514
|
-
/******/ }
|
|
515
|
-
/******/ if (doDispose) {
|
|
516
|
-
/******/ addAllToSet(outdatedModules, [result.moduleId]);
|
|
517
|
-
/******/ appliedUpdate[moduleId] = warnUnexpectedRequire;
|
|
518
|
-
/******/ }
|
|
519
|
-
/******/ }
|
|
520
|
-
/******/ }
|
|
521
|
-
/******/
|
|
522
|
-
/******/ // Store self accepted outdated modules to require them later by the module system
|
|
523
|
-
/******/ var outdatedSelfAcceptedModules = [];
|
|
524
|
-
/******/ for (i = 0; i < outdatedModules.length; i++) {
|
|
525
|
-
/******/ moduleId = outdatedModules[i];
|
|
526
|
-
/******/ if (
|
|
527
|
-
/******/ installedModules[moduleId] &&
|
|
528
|
-
/******/ installedModules[moduleId].hot._selfAccepted &&
|
|
529
|
-
/******/ // removed self-accepted modules should not be required
|
|
530
|
-
/******/ appliedUpdate[moduleId] !== warnUnexpectedRequire &&
|
|
531
|
-
/******/ // when called invalidate self-accepting is not possible
|
|
532
|
-
/******/ !installedModules[moduleId].hot._selfInvalidated
|
|
533
|
-
/******/ ) {
|
|
534
|
-
/******/ outdatedSelfAcceptedModules.push({
|
|
535
|
-
/******/ module: moduleId,
|
|
536
|
-
/******/ parents: installedModules[moduleId].parents.slice(),
|
|
537
|
-
/******/ errorHandler: installedModules[moduleId].hot._selfAccepted
|
|
538
|
-
/******/ });
|
|
539
|
-
/******/ }
|
|
540
|
-
/******/ }
|
|
541
|
-
/******/
|
|
542
|
-
/******/ // Now in "dispose" phase
|
|
543
|
-
/******/ hotSetStatus("dispose");
|
|
544
|
-
/******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) {
|
|
545
|
-
/******/ if (hotAvailableFilesMap[chunkId] === false) {
|
|
546
|
-
/******/ hotDisposeChunk(chunkId);
|
|
547
|
-
/******/ }
|
|
548
|
-
/******/ });
|
|
549
|
-
/******/
|
|
550
|
-
/******/ var idx;
|
|
551
|
-
/******/ var queue = outdatedModules.slice();
|
|
552
|
-
/******/ while (queue.length > 0) {
|
|
553
|
-
/******/ moduleId = queue.pop();
|
|
554
|
-
/******/ module = installedModules[moduleId];
|
|
555
|
-
/******/ if (!module) continue;
|
|
556
|
-
/******/
|
|
557
|
-
/******/ var data = {};
|
|
558
|
-
/******/
|
|
559
|
-
/******/ // Call dispose handlers
|
|
560
|
-
/******/ var disposeHandlers = module.hot._disposeHandlers;
|
|
561
|
-
/******/ for (j = 0; j < disposeHandlers.length; j++) {
|
|
562
|
-
/******/ cb = disposeHandlers[j];
|
|
563
|
-
/******/ cb(data);
|
|
564
|
-
/******/ }
|
|
565
|
-
/******/ hotCurrentModuleData[moduleId] = data;
|
|
566
|
-
/******/
|
|
567
|
-
/******/ // disable module (this disables requires from this module)
|
|
568
|
-
/******/ module.hot.active = false;
|
|
569
|
-
/******/
|
|
570
|
-
/******/ // remove module from cache
|
|
571
|
-
/******/ delete installedModules[moduleId];
|
|
572
|
-
/******/
|
|
573
|
-
/******/ // when disposing there is no need to call dispose handler
|
|
574
|
-
/******/ delete outdatedDependencies[moduleId];
|
|
575
|
-
/******/
|
|
576
|
-
/******/ // remove "parents" references from all children
|
|
577
|
-
/******/ for (j = 0; j < module.children.length; j++) {
|
|
578
|
-
/******/ var child = installedModules[module.children[j]];
|
|
579
|
-
/******/ if (!child) continue;
|
|
580
|
-
/******/ idx = child.parents.indexOf(moduleId);
|
|
581
|
-
/******/ if (idx >= 0) {
|
|
582
|
-
/******/ child.parents.splice(idx, 1);
|
|
583
|
-
/******/ }
|
|
584
|
-
/******/ }
|
|
585
|
-
/******/ }
|
|
586
|
-
/******/
|
|
587
|
-
/******/ // remove outdated dependency from module children
|
|
588
|
-
/******/ var dependency;
|
|
589
|
-
/******/ var moduleOutdatedDependencies;
|
|
590
|
-
/******/ for (moduleId in outdatedDependencies) {
|
|
591
|
-
/******/ if (
|
|
592
|
-
/******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)
|
|
593
|
-
/******/ ) {
|
|
594
|
-
/******/ module = installedModules[moduleId];
|
|
595
|
-
/******/ if (module) {
|
|
596
|
-
/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
|
|
597
|
-
/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) {
|
|
598
|
-
/******/ dependency = moduleOutdatedDependencies[j];
|
|
599
|
-
/******/ idx = module.children.indexOf(dependency);
|
|
600
|
-
/******/ if (idx >= 0) module.children.splice(idx, 1);
|
|
601
|
-
/******/ }
|
|
602
|
-
/******/ }
|
|
603
|
-
/******/ }
|
|
604
|
-
/******/ }
|
|
605
|
-
/******/
|
|
606
|
-
/******/ // Now in "apply" phase
|
|
607
|
-
/******/ hotSetStatus("apply");
|
|
608
|
-
/******/
|
|
609
|
-
/******/ if (hotUpdateNewHash !== undefined) {
|
|
610
|
-
/******/ hotCurrentHash = hotUpdateNewHash;
|
|
611
|
-
/******/ hotUpdateNewHash = undefined;
|
|
612
|
-
/******/ }
|
|
613
|
-
/******/ hotUpdate = undefined;
|
|
614
|
-
/******/
|
|
615
|
-
/******/ // insert new code
|
|
616
|
-
/******/ for (moduleId in appliedUpdate) {
|
|
617
|
-
/******/ if (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {
|
|
618
|
-
/******/ modules[moduleId] = appliedUpdate[moduleId];
|
|
619
|
-
/******/ }
|
|
620
|
-
/******/ }
|
|
621
|
-
/******/
|
|
622
|
-
/******/ // call accept handlers
|
|
623
|
-
/******/ var error = null;
|
|
624
|
-
/******/ for (moduleId in outdatedDependencies) {
|
|
625
|
-
/******/ if (
|
|
626
|
-
/******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)
|
|
627
|
-
/******/ ) {
|
|
628
|
-
/******/ module = installedModules[moduleId];
|
|
629
|
-
/******/ if (module) {
|
|
630
|
-
/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
|
|
631
|
-
/******/ var callbacks = [];
|
|
632
|
-
/******/ for (i = 0; i < moduleOutdatedDependencies.length; i++) {
|
|
633
|
-
/******/ dependency = moduleOutdatedDependencies[i];
|
|
634
|
-
/******/ cb = module.hot._acceptedDependencies[dependency];
|
|
635
|
-
/******/ if (cb) {
|
|
636
|
-
/******/ if (callbacks.indexOf(cb) !== -1) continue;
|
|
637
|
-
/******/ callbacks.push(cb);
|
|
638
|
-
/******/ }
|
|
639
|
-
/******/ }
|
|
640
|
-
/******/ for (i = 0; i < callbacks.length; i++) {
|
|
641
|
-
/******/ cb = callbacks[i];
|
|
642
|
-
/******/ try {
|
|
643
|
-
/******/ cb(moduleOutdatedDependencies);
|
|
644
|
-
/******/ } catch (err) {
|
|
645
|
-
/******/ if (options.onErrored) {
|
|
646
|
-
/******/ options.onErrored({
|
|
647
|
-
/******/ type: "accept-errored",
|
|
648
|
-
/******/ moduleId: moduleId,
|
|
649
|
-
/******/ dependencyId: moduleOutdatedDependencies[i],
|
|
650
|
-
/******/ error: err
|
|
651
|
-
/******/ });
|
|
652
|
-
/******/ }
|
|
653
|
-
/******/ if (!options.ignoreErrored) {
|
|
654
|
-
/******/ if (!error) error = err;
|
|
655
|
-
/******/ }
|
|
656
|
-
/******/ }
|
|
657
|
-
/******/ }
|
|
658
|
-
/******/ }
|
|
659
|
-
/******/ }
|
|
660
|
-
/******/ }
|
|
661
|
-
/******/
|
|
662
|
-
/******/ // Load self accepted modules
|
|
663
|
-
/******/ for (i = 0; i < outdatedSelfAcceptedModules.length; i++) {
|
|
664
|
-
/******/ var item = outdatedSelfAcceptedModules[i];
|
|
665
|
-
/******/ moduleId = item.module;
|
|
666
|
-
/******/ hotCurrentParents = item.parents;
|
|
667
|
-
/******/ hotCurrentChildModule = moduleId;
|
|
668
|
-
/******/ try {
|
|
669
|
-
/******/ __webpack_require__(moduleId);
|
|
670
|
-
/******/ } catch (err) {
|
|
671
|
-
/******/ if (typeof item.errorHandler === "function") {
|
|
672
|
-
/******/ try {
|
|
673
|
-
/******/ item.errorHandler(err);
|
|
674
|
-
/******/ } catch (err2) {
|
|
675
|
-
/******/ if (options.onErrored) {
|
|
676
|
-
/******/ options.onErrored({
|
|
677
|
-
/******/ type: "self-accept-error-handler-errored",
|
|
678
|
-
/******/ moduleId: moduleId,
|
|
679
|
-
/******/ error: err2,
|
|
680
|
-
/******/ originalError: err
|
|
681
|
-
/******/ });
|
|
682
|
-
/******/ }
|
|
683
|
-
/******/ if (!options.ignoreErrored) {
|
|
684
|
-
/******/ if (!error) error = err2;
|
|
685
|
-
/******/ }
|
|
686
|
-
/******/ if (!error) error = err;
|
|
687
|
-
/******/ }
|
|
688
|
-
/******/ } else {
|
|
689
|
-
/******/ if (options.onErrored) {
|
|
690
|
-
/******/ options.onErrored({
|
|
691
|
-
/******/ type: "self-accept-errored",
|
|
692
|
-
/******/ moduleId: moduleId,
|
|
693
|
-
/******/ error: err
|
|
694
|
-
/******/ });
|
|
695
|
-
/******/ }
|
|
696
|
-
/******/ if (!options.ignoreErrored) {
|
|
697
|
-
/******/ if (!error) error = err;
|
|
698
|
-
/******/ }
|
|
699
|
-
/******/ }
|
|
700
|
-
/******/ }
|
|
701
|
-
/******/ }
|
|
702
|
-
/******/
|
|
703
|
-
/******/ // handle errors in accept handlers and self accepted module load
|
|
704
|
-
/******/ if (error) {
|
|
705
|
-
/******/ hotSetStatus("fail");
|
|
706
|
-
/******/ return Promise.reject(error);
|
|
707
|
-
/******/ }
|
|
708
|
-
/******/
|
|
709
|
-
/******/ if (hotQueuedInvalidatedModules) {
|
|
710
|
-
/******/ return hotApplyInternal(options).then(function(list) {
|
|
711
|
-
/******/ outdatedModules.forEach(function(moduleId) {
|
|
712
|
-
/******/ if (list.indexOf(moduleId) < 0) list.push(moduleId);
|
|
713
|
-
/******/ });
|
|
714
|
-
/******/ return list;
|
|
715
|
-
/******/ });
|
|
716
|
-
/******/ }
|
|
717
|
-
/******/
|
|
718
|
-
/******/ hotSetStatus("idle");
|
|
719
|
-
/******/ return new Promise(function(resolve) {
|
|
720
|
-
/******/ resolve(outdatedModules);
|
|
721
|
-
/******/ });
|
|
722
|
-
/******/ }
|
|
723
|
-
/******/
|
|
724
|
-
/******/ function hotApplyInvalidatedModules() {
|
|
725
|
-
/******/ if (hotQueuedInvalidatedModules) {
|
|
726
|
-
/******/ if (!hotUpdate) hotUpdate = {};
|
|
727
|
-
/******/ hotQueuedInvalidatedModules.forEach(hotApplyInvalidatedModule);
|
|
728
|
-
/******/ hotQueuedInvalidatedModules = undefined;
|
|
729
|
-
/******/ return true;
|
|
730
|
-
/******/ }
|
|
731
|
-
/******/ }
|
|
732
|
-
/******/
|
|
733
|
-
/******/ function hotApplyInvalidatedModule(moduleId) {
|
|
734
|
-
/******/ if (!Object.prototype.hasOwnProperty.call(hotUpdate, moduleId))
|
|
735
|
-
/******/ hotUpdate[moduleId] = modules[moduleId];
|
|
736
|
-
/******/ }
|
|
737
|
-
/******/
|
|
738
|
-
/******/ // The module cache
|
|
739
|
-
/******/ var installedModules = {};
|
|
740
|
-
/******/
|
|
741
|
-
/******/ // The require function
|
|
742
|
-
/******/ function __webpack_require__(moduleId) {
|
|
743
|
-
/******/
|
|
744
|
-
/******/ // Check if module is in cache
|
|
745
|
-
/******/ if(installedModules[moduleId]) {
|
|
746
|
-
/******/ return installedModules[moduleId].exports;
|
|
747
|
-
/******/ }
|
|
748
|
-
/******/ // Create a new module (and put it into the cache)
|
|
749
|
-
/******/ var module = installedModules[moduleId] = {
|
|
750
|
-
/******/ i: moduleId,
|
|
751
|
-
/******/ l: false,
|
|
752
|
-
/******/ exports: {},
|
|
753
|
-
/******/ hot: hotCreateModule(moduleId),
|
|
754
|
-
/******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),
|
|
755
|
-
/******/ children: []
|
|
756
|
-
/******/ };
|
|
757
|
-
/******/
|
|
758
|
-
/******/ // Execute the module function
|
|
759
|
-
/******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
|
|
760
|
-
/******/
|
|
761
|
-
/******/ // Flag the module as loaded
|
|
762
|
-
/******/ module.l = true;
|
|
763
|
-
/******/
|
|
764
|
-
/******/ // Return the exports of the module
|
|
765
|
-
/******/ return module.exports;
|
|
766
|
-
/******/ }
|
|
767
|
-
/******/
|
|
768
|
-
/******/
|
|
769
|
-
/******/ // expose the modules object (__webpack_modules__)
|
|
770
|
-
/******/ __webpack_require__.m = modules;
|
|
771
|
-
/******/
|
|
772
|
-
/******/ // expose the module cache
|
|
773
|
-
/******/ __webpack_require__.c = installedModules;
|
|
774
|
-
/******/
|
|
775
|
-
/******/ // define getter function for harmony exports
|
|
776
|
-
/******/ __webpack_require__.d = function(exports, name, getter) {
|
|
777
|
-
/******/ if(!__webpack_require__.o(exports, name)) {
|
|
778
|
-
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
|
779
|
-
/******/ }
|
|
780
|
-
/******/ };
|
|
781
|
-
/******/
|
|
782
|
-
/******/ // define __esModule on exports
|
|
783
|
-
/******/ __webpack_require__.r = function(exports) {
|
|
784
|
-
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
785
|
-
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
786
|
-
/******/ }
|
|
787
|
-
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
788
|
-
/******/ };
|
|
789
|
-
/******/
|
|
790
|
-
/******/ // create a fake namespace object
|
|
791
|
-
/******/ // mode & 1: value is a module id, require it
|
|
792
|
-
/******/ // mode & 2: merge all properties of value into the ns
|
|
793
|
-
/******/ // mode & 4: return value when already ns object
|
|
794
|
-
/******/ // mode & 8|1: behave like require
|
|
795
|
-
/******/ __webpack_require__.t = function(value, mode) {
|
|
796
|
-
/******/ if(mode & 1) value = __webpack_require__(value);
|
|
797
|
-
/******/ if(mode & 8) return value;
|
|
798
|
-
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
|
799
|
-
/******/ var ns = Object.create(null);
|
|
800
|
-
/******/ __webpack_require__.r(ns);
|
|
801
|
-
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
|
802
|
-
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
|
803
|
-
/******/ return ns;
|
|
804
|
-
/******/ };
|
|
805
|
-
/******/
|
|
806
|
-
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
807
|
-
/******/ __webpack_require__.n = function(module) {
|
|
808
|
-
/******/ var getter = module && module.__esModule ?
|
|
809
|
-
/******/ function getDefault() { return module['default']; } :
|
|
810
|
-
/******/ function getModuleExports() { return module; };
|
|
811
|
-
/******/ __webpack_require__.d(getter, 'a', getter);
|
|
812
|
-
/******/ return getter;
|
|
813
|
-
/******/ };
|
|
814
|
-
/******/
|
|
815
|
-
/******/ // Object.prototype.hasOwnProperty.call
|
|
816
|
-
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
|
817
|
-
/******/
|
|
818
|
-
/******/ // __webpack_public_path__
|
|
819
|
-
/******/ __webpack_require__.p = "";
|
|
820
|
-
/******/
|
|
821
|
-
/******/ // __webpack_hash__
|
|
822
|
-
/******/ __webpack_require__.h = function() { return hotCurrentHash; };
|
|
823
|
-
/******/
|
|
824
|
-
/******/
|
|
825
|
-
/******/ // Load entry module and return exports
|
|
826
|
-
/******/ return hotCreateRequire(0)(__webpack_require__.s = 0);
|
|
827
|
-
/******/ })
|
|
828
|
-
/************************************************************************/
|
|
829
|
-
/******/ ({
|
|
830
|
-
|
|
831
|
-
/***/ "../../node_modules/webpack-inject-plugin/dist/webpack-inject-plugin.loader.js?id=webpack-inject-module-1!./":
|
|
832
|
-
/***/ (function(module, exports) {
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
global.libraries = global.libraries || {}
|
|
836
|
-
global.libraries["@01/env"] = { name:"@01/env", version:"2.0.3-build[115]", buildEnv:"production" }
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
/***/ }),
|
|
840
|
-
|
|
841
|
-
/***/ "./src/env.ts":
|
|
842
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
843
|
-
|
|
844
1
|
"use strict";
|
|
845
|
-
|
|
846
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
*/
|
|
851
|
-
//tslint:disable-next-line
|
|
852
|
-
exports.isBrowser = new Function("try {return this===window;}catch(e){ return false;}")();
|
|
853
|
-
//tslint:disable-next-line
|
|
854
|
-
exports.isWorker = new Function("try {return this===self && typeof importScripts !== 'undefined';}catch(e){return false;}")();
|
|
855
|
-
//tslint:disable-next-line
|
|
856
|
-
exports.isNode = typeof global !== "undefined" &&
|
|
857
|
-
typeof process !== "undefined" &&
|
|
858
|
-
typeof process.stdout !== "undefined";
|
|
859
|
-
const U = undefined;
|
|
860
|
-
function env(name, defaultValue = U) {
|
|
861
|
-
const envValue = process.env[name];
|
|
862
|
-
return envValue || defaultValue;
|
|
863
|
-
}
|
|
864
|
-
exports.env = env;
|
|
865
|
-
function envInt(name, defaultValue = U) {
|
|
866
|
-
const envValue = process.env[name];
|
|
867
|
-
return envValue ? parseInt(envValue) : defaultValue;
|
|
868
|
-
}
|
|
869
|
-
exports.envInt = envInt;
|
|
870
|
-
function envFloat(name, defaultValue = U) {
|
|
871
|
-
const envValue = process.env[name];
|
|
872
|
-
return envValue ? parseFloat(envValue) : defaultValue;
|
|
873
|
-
}
|
|
874
|
-
exports.envFloat = envFloat;
|
|
875
|
-
function envBoolean(name, defaultValue = U) {
|
|
876
|
-
const envValue = process.env[name];
|
|
877
|
-
return envValue ? envValue === "true" : defaultValue;
|
|
878
|
-
}
|
|
879
|
-
exports.envBoolean = envBoolean;
|
|
880
|
-
function envJson(name, defaultValue = U) {
|
|
881
|
-
const envValue = process.env[name];
|
|
882
|
-
if (envValue) {
|
|
883
|
-
try {
|
|
884
|
-
return JSON.parse(envValue);
|
|
885
|
-
}
|
|
886
|
-
catch (e) { }
|
|
887
|
-
}
|
|
888
|
-
return defaultValue;
|
|
889
|
-
}
|
|
890
|
-
exports.envJson = envJson;
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
/***/ }),
|
|
894
|
-
|
|
895
|
-
/***/ "./src/index.ts":
|
|
896
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
897
|
-
|
|
898
|
-
"use strict";
|
|
899
|
-
|
|
900
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
901
|
-
const tslib_1 = __webpack_require__("tslib");
|
|
902
|
-
tslib_1.__exportStar(__webpack_require__("./src/env.ts"), exports);
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
/***/ }),
|
|
906
|
-
|
|
907
|
-
/***/ 0:
|
|
908
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
909
|
-
|
|
910
|
-
__webpack_require__("../../node_modules/webpack-inject-plugin/dist/webpack-inject-plugin.loader.js?id=webpack-inject-module-1!./");
|
|
911
|
-
module.exports = __webpack_require__("./src/index.ts");
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
/***/ }),
|
|
915
|
-
|
|
916
|
-
/***/ "tslib":
|
|
917
|
-
/***/ (function(module, exports) {
|
|
918
|
-
|
|
919
|
-
module.exports = require("tslib");
|
|
920
|
-
|
|
921
|
-
/***/ })
|
|
922
|
-
|
|
923
|
-
/******/ });
|
|
924
|
-
});
|
|
925
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL2NpcmNsZWNpL3JlcG8vcGFja2FnZXMvZW52L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIi9ob21lL2NpcmNsZWNpL3JlcG8vcGFja2FnZXMvZW52L3dlYnBhY2svYm9vdHN0cmFwIiwiL2hvbWUvY2lyY2xlY2kvcmVwby9wYWNrYWdlcy9lbnYvKHdlYnBhY2spLWluamVjdC1wbHVnaW4vZGlzdC93ZWJwYWNrLWluamVjdC1wbHVnaW4ubG9hZGVyLmpzIiwiL2hvbWUvY2lyY2xlY2kvcmVwby9wYWNrYWdlcy9lbnYvc3JjL2Vudi50cyIsIi9ob21lL2NpcmNsZWNpL3JlcG8vcGFja2FnZXMvZW52L3NyYy9pbmRleC50cyIsIi9ob21lL2NpcmNsZWNpL3JlcG8vcGFja2FnZXMvZW52L2V4dGVybmFsJTIwJTIydHNsaWIlMjIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87UUNWQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0EsSUFBSTtRQUNKO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0EsTUFBTTtRQUNOO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLEtBQUs7UUFDTDtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLE1BQU07UUFDTjtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtR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O1FBQ0E7UUFDQTtRQUNBLE1BQU07UUFDTjtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0EsZ0JBQWdCLFlBQVk7UUFDNUI7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7UUFDQSxjQUFjLDRCQUE0QjtRQUMxQztRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLE1BQU07UUFDTjtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLElBQUk7O1FBRUo7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBOztRQUVBO1FBQ0E7UUFDQSxlQUFlLDRCQUE0QjtRQUMzQztRQUNBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBLGVBQWUsNEJBQTRCO1FBQzNDO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSxpQkFBaUIsdUNBQXVDO1FBQ3hEO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7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O0lBQ25DLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztBQUN0RCxDQUFDO0FBSEQsd0JBR0M7QUFFRCxTQUFnQixRQUFRLENBQVEsSUFBWSxFQUFFLGVBQWtCLENBQU07SUFDcEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7QUFDeEQsQ0FBQztBQUhELDRCQUdDO0FBQ0QsU0FBZ0IsVUFBVSxDQUFRLElBQVksRUFBRSxlQUFrQixDQUFNO0lBQ3RFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztBQUN2RCxDQUFDO0FBSEQsZ0NBR0M7QUFDRCxTQUFnQixPQUFPLENBQVEsSUFBWSxFQUFFLGVBQWtCLENBQU07SUFDbkUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxJQUFJLFFBQVEsRUFBRTtRQUNaLElBQUk7WUFDRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDN0I7UUFBQyxPQUFPLENBQUMsRUFBRSxHQUFFO0tBQ2Y7SUFDRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBUkQsMEJBUUM7Ozs7Ozs7Ozs7OztBQzlDRCxtRUFBc0I7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDQXRCLGtDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiaW5kZXhcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiaW5kZXhcIl0gPSBmYWN0b3J5KCk7XG59KShnbG9iYWwsIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsIiBcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuIFx0ZnVuY3Rpb24gaG90RG93bmxvYWRVcGRhdGVDaHVuayhjaHVua0lkKSB7XG4gXHRcdHZhciBjaHVuayA9IHJlcXVpcmUoXCIuL1wiICsgXCJcIiArIGNodW5rSWQgKyBcIi5cIiArIGhvdEN1cnJlbnRIYXNoICsgXCIuaG90LXVwZGF0ZS5qc1wiKTtcbiBcdFx0aG90QWRkVXBkYXRlQ2h1bmsoY2h1bmsuaWQsIGNodW5rLm1vZHVsZXMpO1xuIFx0fVxuXG4gXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiBcdGZ1bmN0aW9uIGhvdERvd25sb2FkTWFuaWZlc3QoKSB7XG4gXHRcdHRyeSB7XG4gXHRcdFx0dmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIuL1wiICsgXCJcIiArIGhvdEN1cnJlbnRIYXNoICsgXCIuaG90LXVwZGF0ZS5qc29uXCIpO1xuIFx0XHR9IGNhdGNoIChlKSB7XG4gXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuIFx0XHR9XG4gXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodXBkYXRlKTtcbiBcdH1cblxuIFx0Ly9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiBcdGZ1bmN0aW9uIGhvdERpc3Bvc2VDaHVuayhjaHVua0lkKSB7XG4gXHRcdGRlbGV0ZSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF07XG4gXHR9XG5cbiBcdHZhciBob3RBcHBseU9uVXBkYXRlID0gdHJ1ZTtcbiBcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuIFx0dmFyIGhvdEN1cnJlbnRIYXNoID0gXCI3YzRkYmFlMWZmMzIyMTg5ZGE5MlwiO1xuIFx0dmFyIGhvdFJlcXVlc3RUaW1lb3V0ID0gMTAwMDA7XG4gXHR2YXIgaG90Q3VycmVudE1vZHVsZURhdGEgPSB7fTtcbiBcdHZhciBob3RDdXJyZW50Q2hpbGRNb2R1bGU7XG4gXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiBcdHZhciBob3RDdXJyZW50UGFyZW50cyA9IFtdO1xuIFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gXHR2YXIgaG90Q3VycmVudFBhcmVudHNUZW1wID0gW107XG5cbiBcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuIFx0ZnVuY3Rpb24gaG90Q3JlYXRlUmVxdWlyZShtb2R1bGVJZCkge1xuIFx0XHR2YXIgbWUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXTtcbiBcdFx0aWYgKCFtZSkgcmV0dXJuIF9fd2VicGFja19yZXF1aXJlX187XG4gXHRcdHZhciBmbiA9IGZ1bmN0aW9uKHJlcXVlc3QpIHtcbiBcdFx0XHRpZiAobWUuaG90LmFjdGl2ZSkge1xuIFx0XHRcdFx0aWYgKGluc3RhbGxlZE1vZHVsZXNbcmVxdWVzdF0pIHtcbiBcdFx0XHRcdFx0aWYgKGluc3RhbGxlZE1vZHVsZXNbcmVxdWVzdF0ucGFyZW50cy5pbmRleE9mKG1vZHVsZUlkKSA9PT0gLTEpIHtcbiBcdFx0XHRcdFx0XHRpbnN0YWxsZWRNb2R1bGVzW3JlcXVlc3RdLnBhcmVudHMucHVzaChtb2R1bGVJZCk7XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdH0gZWxzZSB7XG4gXHRcdFx0XHRcdGhvdEN1cnJlbnRQYXJlbnRzID0gW21vZHVsZUlkXTtcbiBcdFx0XHRcdFx0aG90Q3VycmVudENoaWxkTW9kdWxlID0gcmVxdWVzdDtcbiBcdFx0XHRcdH1cbiBcdFx0XHRcdGlmIChtZS5jaGlsZHJlbi5pbmRleE9mKHJlcXVlc3QpID09PSAtMSkge1xuIFx0XHRcdFx0XHRtZS5jaGlsZHJlbi5wdXNoKHJlcXVlc3QpO1xuIFx0XHRcdFx0fVxuIFx0XHRcdH0gZWxzZSB7XG4gXHRcdFx0XHRjb25zb2xlLndhcm4oXG4gXHRcdFx0XHRcdFwiW0hNUl0gdW5leHBlY3RlZCByZXF1aXJlKFwiICtcbiBcdFx0XHRcdFx0XHRyZXF1ZXN0ICtcbiBcdFx0XHRcdFx0XHRcIikgZnJvbSBkaXNwb3NlZCBtb2R1bGUgXCIgK1xuIFx0XHRcdFx0XHRcdG1vZHVsZUlkXG4gXHRcdFx0XHQpO1xuIFx0XHRcdFx0aG90Q3VycmVudFBhcmVudHMgPSBbXTtcbiBcdFx0XHR9XG4gXHRcdFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18ocmVxdWVzdCk7XG4gXHRcdH07XG4gXHRcdHZhciBPYmplY3RGYWN0b3J5ID0gZnVuY3Rpb24gT2JqZWN0RmFjdG9yeShuYW1lKSB7XG4gXHRcdFx0cmV0dXJuIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuIFx0XHRcdFx0XHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfX1tuYW1lXTtcbiBcdFx0XHRcdH0sXG4gXHRcdFx0XHRzZXQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gXHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX19bbmFtZV0gPSB2YWx1ZTtcbiBcdFx0XHRcdH1cbiBcdFx0XHR9O1xuIFx0XHR9O1xuIFx0XHRmb3IgKHZhciBuYW1lIGluIF9fd2VicGFja19yZXF1aXJlX18pIHtcbiBcdFx0XHRpZiAoXG4gXHRcdFx0XHRPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX193ZWJwYWNrX3JlcXVpcmVfXywgbmFtZSkgJiZcbiBcdFx0XHRcdG5hbWUgIT09IFwiZVwiICYmXG4gXHRcdFx0XHRuYW1lICE9PSBcInRcIlxuIFx0XHRcdCkge1xuIFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGZuLCBuYW1lLCBPYmplY3RGYWN0b3J5KG5hbWUpKTtcbiBcdFx0XHR9XG4gXHRcdH1cbiBcdFx0Zm4uZSA9IGZ1bmN0aW9uKGNodW5rSWQpIHtcbiBcdFx0XHRpZiAoaG90U3RhdHVzID09PSBcInJlYWR5XCIpIGhvdFNldFN0YXR1cyhcInByZXBhcmVcIik7XG4gXHRcdFx0aG90Q2h1bmtzTG9hZGluZysrO1xuIFx0XHRcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmUoY2h1bmtJZCkudGhlbihmaW5pc2hDaHVua0xvYWRpbmcsIGZ1bmN0aW9uKGVycikge1xuIFx0XHRcdFx0ZmluaXNoQ2h1bmtMb2FkaW5nKCk7XG4gXHRcdFx0XHR0aHJvdyBlcnI7XG4gXHRcdFx0fSk7XG5cbiBcdFx0XHRmdW5jdGlvbiBmaW5pc2hDaHVua0xvYWRpbmcoKSB7XG4gXHRcdFx0XHRob3RDaHVua3NMb2FkaW5nLS07XG4gXHRcdFx0XHRpZiAoaG90U3RhdHVzID09PSBcInByZXBhcmVcIikge1xuIFx0XHRcdFx0XHRpZiAoIWhvdFdhaXRpbmdGaWxlc01hcFtjaHVua0lkXSkge1xuIFx0XHRcdFx0XHRcdGhvdEVuc3VyZVVwZGF0ZUNodW5rKGNodW5rSWQpO1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdGlmIChob3RDaHVua3NMb2FkaW5nID09PSAwICYmIGhvdFdhaXRpbmdGaWxlcyA9PT0gMCkge1xuIFx0XHRcdFx0XHRcdGhvdFVwZGF0ZURvd25sb2FkZWQoKTtcbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0fVxuIFx0XHRcdH1cbiBcdFx0fTtcbiBcdFx0Zm4udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdFx0aWYgKG1vZGUgJiAxKSB2YWx1ZSA9IGZuKHZhbHVlKTtcbiBcdFx0XHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy50KHZhbHVlLCBtb2RlICYgfjEpO1xuIFx0XHR9O1xuIFx0XHRyZXR1cm4gZm47XG4gXHR9XG5cbiBcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuIFx0ZnVuY3Rpb24gaG90Q3JlYXRlTW9kdWxlKG1vZHVsZUlkKSB7XG4gXHRcdHZhciBob3QgPSB7XG4gXHRcdFx0Ly8gcHJpdmF0ZSBzdHVmZlxuIFx0XHRcdF9hY2NlcHRlZERlcGVuZGVuY2llczoge30sXG4gXHRcdFx0X2RlY2xpbmVkRGVwZW5kZW5jaWVzOiB7fSxcbiBcdFx0XHRfc2VsZkFjY2VwdGVkOiBmYWxzZSxcbiBcdFx0XHRfc2VsZkRlY2xpbmVkOiBmYWxzZSxcbiBcdFx0XHRfc2VsZkludmFsaWRhdGVkOiBmYWxzZSxcbiBcdFx0XHRfZGlzcG9zZUhhbmRsZXJzOiBbXSxcbiBcdFx0XHRfbWFpbjogaG90Q3VycmVudENoaWxkTW9kdWxlICE9PSBtb2R1bGVJZCxcblxuIFx0XHRcdC8vIE1vZHVsZSBBUElcbiBcdFx0XHRhY3RpdmU6IHRydWUsXG4gXHRcdFx0YWNjZXB0OiBmdW5jdGlvbihkZXAsIGNhbGxiYWNrKSB7XG4gXHRcdFx0XHRpZiAoZGVwID09PSB1bmRlZmluZWQpIGhvdC5fc2VsZkFjY2VwdGVkID0gdHJ1ZTtcbiBcdFx0XHRcdGVsc2UgaWYgKHR5cGVvZiBkZXAgPT09IFwiZnVuY3Rpb25cIikgaG90Ll9zZWxmQWNjZXB0ZWQgPSBkZXA7XG4gXHRcdFx0XHRlbHNlIGlmICh0eXBlb2YgZGVwID09PSBcIm9iamVjdFwiKVxuIFx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGRlcC5sZW5ndGg7IGkrKylcbiBcdFx0XHRcdFx0XHRob3QuX2FjY2VwdGVkRGVwZW5kZW5jaWVzW2RlcFtpXV0gPSBjYWxsYmFjayB8fCBmdW5jdGlvbigpIHt9O1xuIFx0XHRcdFx0ZWxzZSBob3QuX2FjY2VwdGVkRGVwZW5kZW5jaWVzW2RlcF0gPSBjYWxsYmFjayB8fCBmdW5jdGlvbigpIHt9O1xuIFx0XHRcdH0sXG4gXHRcdFx0ZGVjbGluZTogZnVuY3Rpb24oZGVwKSB7XG4gXHRcdFx0XHRpZiAoZGVwID09PSB1bmRlZmluZWQpIGhvdC5fc2VsZkRlY2xpbmVkID0gdHJ1ZTtcbiBcdFx0XHRcdGVsc2UgaWYgKHR5cGVvZiBkZXAgPT09IFwib2JqZWN0XCIpXG4gXHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgZGVwLmxlbmd0aDsgaSsrKVxuIFx0XHRcdFx0XHRcdGhvdC5fZGVjbGluZWREZXBlbmRlbmNpZXNbZGVwW2ldXSA9IHRydWU7XG4gXHRcdFx0XHRlbHNlIGhvdC5fZGVjbGluZWREZXBlbmRlbmNpZXNbZGVwXSA9IHRydWU7XG4gXHRcdFx0fSxcbiBcdFx0XHRkaXNwb3NlOiBmdW5jdGlvbihjYWxsYmFjaykge1xuIFx0XHRcdFx0aG90Ll9kaXNwb3NlSGFuZGxlcnMucHVzaChjYWxsYmFjayk7XG4gXHRcdFx0fSxcbiBcdFx0XHRhZGREaXNwb3NlSGFuZGxlcjogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiBcdFx0XHRcdGhvdC5fZGlzcG9zZUhhbmRsZXJzLnB1c2goY2FsbGJhY2spO1xuIFx0XHRcdH0sXG4gXHRcdFx0cmVtb3ZlRGlzcG9zZUhhbmRsZXI6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gXHRcdFx0XHR2YXIgaWR4ID0gaG90Ll9kaXNwb3NlSGFuZGxlcnMuaW5kZXhPZihjYWxsYmFjayk7XG4gXHRcdFx0XHRpZiAoaWR4ID49IDApIGhvdC5fZGlzcG9zZUhhbmRsZXJzLnNwbGljZShpZHgsIDEpO1xuIFx0XHRcdH0sXG4gXHRcdFx0aW52YWxpZGF0ZTogZnVuY3Rpb24oKSB7XG4gXHRcdFx0XHR0aGlzLl9zZWxmSW52YWxpZGF0ZWQgPSB0cnVlO1xuIFx0XHRcdFx0c3dpdGNoIChob3RTdGF0dXMpIHtcbiBcdFx0XHRcdFx0Y2FzZSBcImlkbGVcIjpcbiBcdFx0XHRcdFx0XHRob3RVcGRhdGUgPSB7fTtcbiBcdFx0XHRcdFx0XHRob3RVcGRhdGVbbW9kdWxlSWRdID0gbW9kdWxlc1ttb2R1bGVJZF07XG4gXHRcdFx0XHRcdFx0aG90U2V0U3RhdHVzKFwicmVhZHlcIik7XG4gXHRcdFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0XHRcdGNhc2UgXCJyZWFkeVwiOlxuIFx0XHRcdFx0XHRcdGhvdEFwcGx5SW52YWxpZGF0ZWRNb2R1bGUobW9kdWxlSWQpO1xuIFx0XHRcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdFx0XHRjYXNlIFwicHJlcGFyZVwiOlxuIFx0XHRcdFx0XHRjYXNlIFwiY2hlY2tcIjpcbiBcdFx0XHRcdFx0Y2FzZSBcImRpc3Bvc2VcIjpcbiBcdFx0XHRcdFx0Y2FzZSBcImFwcGx5XCI6XG4gXHRcdFx0XHRcdFx0KGhvdFF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcyA9XG4gXHRcdFx0XHRcdFx0XHRob3RRdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMgfHwgW10pLnB1c2gobW9kdWxlSWQpO1xuIFx0XHRcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdFx0XHRkZWZhdWx0OlxuIFx0XHRcdFx0XHRcdC8vIGlnbm9yZSByZXF1ZXN0cyBpbiBlcnJvciBzdGF0ZXNcbiBcdFx0XHRcdFx0XHRicmVhaztcbiBcdFx0XHRcdH1cbiBcdFx0XHR9LFxuXG4gXHRcdFx0Ly8gTWFuYWdlbWVudCBBUElcbiBcdFx0XHRjaGVjazogaG90Q2hlY2ssXG4gXHRcdFx0YXBwbHk6IGhvdEFwcGx5LFxuIFx0XHRcdHN0YXR1czogZnVuY3Rpb24obCkge1xuIFx0XHRcdFx0aWYgKCFsKSByZXR1cm4gaG90U3RhdHVzO1xuIFx0XHRcdFx0aG90U3RhdHVzSGFuZGxlcnMucHVzaChsKTtcbiBcdFx0XHR9LFxuIFx0XHRcdGFkZFN0YXR1c0hhbmRsZXI6IGZ1bmN0aW9uKGwpIHtcbiBcdFx0XHRcdGhvdFN0YXR1c0hhbmRsZXJzLnB1c2gobCk7XG4gXHRcdFx0fSxcbiBcdFx0XHRyZW1vdmVTdGF0dXNIYW5kbGVyOiBmdW5jdGlvbihsKSB7XG4gXHRcdFx0XHR2YXIgaWR4ID0gaG90U3RhdHVzSGFuZGxlcnMuaW5kZXhPZihsKTtcbiBcdFx0XHRcdGlmIChpZHggPj0gMCkgaG90U3RhdHVzSGFuZGxlcnMuc3BsaWNlKGlkeCwgMSk7XG4gXHRcdFx0fSxcblxuIFx0XHRcdC8vaW5oZXJpdCBmcm9tIHByZXZpb3VzIGRpc3Bvc2UgY2FsbFxuIFx0XHRcdGRhdGE6IGhvdEN1cnJlbnRNb2R1bGVEYXRhW21vZHVsZUlkXVxuIFx0XHR9O1xuIFx0XHRob3RDdXJyZW50Q2hpbGRNb2R1bGUgPSB1bmRlZmluZWQ7XG4gXHRcdHJldHVybiBob3Q7XG4gXHR9XG5cbiBcdHZhciBob3RTdGF0dXNIYW5kbGVycyA9IFtdO1xuIFx0dmFyIGhvdFN0YXR1cyA9IFwiaWRsZVwiO1xuXG4gXHRmdW5jdGlvbiBob3RTZXRTdGF0dXMobmV3U3RhdHVzKSB7XG4gXHRcdGhvdFN0YXR1cyA9IG5ld1N0YXR1cztcbiBcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBob3RTdGF0dXNIYW5kbGVycy5sZW5ndGg7IGkrKylcbiBcdFx0XHRob3RTdGF0dXNIYW5kbGVyc1tpXS5jYWxsKG51bGwsIG5ld1N0YXR1cyk7XG4gXHR9XG5cbiBcdC8vIHdoaWxlIGRvd25sb2FkaW5nXG4gXHR2YXIgaG90V2FpdGluZ0ZpbGVzID0gMDtcbiBcdHZhciBob3RDaHVua3NMb2FkaW5nID0gMDtcbiBcdHZhciBob3RXYWl0aW5nRmlsZXNNYXAgPSB7fTtcbiBcdHZhciBob3RSZXF1ZXN0ZWRGaWxlc01hcCA9IHt9O1xuIFx0dmFyIGhvdEF2YWlsYWJsZUZpbGVzTWFwID0ge307XG4gXHR2YXIgaG90RGVmZXJyZWQ7XG5cbiBcdC8vIFRoZSB1cGRhdGUgaW5mb1xuIFx0dmFyIGhvdFVwZGF0ZSwgaG90VXBkYXRlTmV3SGFzaCwgaG90UXVldWVkSW52YWxpZGF0ZWRNb2R1bGVzO1xuXG4gXHRmdW5jdGlvbiB0b01vZHVsZUlkKGlkKSB7XG4gXHRcdHZhciBpc051bWJlciA9ICtpZCArIFwiXCIgPT09IGlkO1xuIFx0XHRyZXR1cm4gaXNOdW1iZXIgPyAraWQgOiBpZDtcbiBcdH1cblxuIFx0ZnVuY3Rpb24gaG90Q2hlY2soYXBwbHkpIHtcbiBcdFx0aWYgKGhvdFN0YXR1cyAhPT0gXCJpZGxlXCIpIHtcbiBcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJjaGVjaygpIGlzIG9ubHkgYWxsb3dlZCBpbiBpZGxlIHN0YXR1c1wiKTtcbiBcdFx0fVxuIFx0XHRob3RBcHBseU9uVXBkYXRlID0gYXBwbHk7XG4gXHRcdGhvdFNldFN0YXR1cyhcImNoZWNrXCIpO1xuIFx0XHRyZXR1cm4gaG90RG93bmxvYWRNYW5pZmVzdChob3RSZXF1ZXN0VGltZW91dCkudGhlbihmdW5jdGlvbih1cGRhdGUpIHtcbiBcdFx0XHRpZiAoIXVwZGF0ZSkge1xuIFx0XHRcdFx0aG90U2V0U3RhdHVzKGhvdEFwcGx5SW52YWxpZGF0ZWRNb2R1bGVzKCkgPyBcInJlYWR5XCIgOiBcImlkbGVcIik7XG4gXHRcdFx0XHRyZXR1cm4gbnVsbDtcbiBcdFx0XHR9XG4gXHRcdFx0aG90UmVxdWVzdGVkRmlsZXNNYXAgPSB7fTtcbiBcdFx0XHRob3RXYWl0aW5nRmlsZXNNYXAgPSB7fTtcbiBcdFx0XHRob3RBdmFpbGFibGVGaWxlc01hcCA9IHVwZGF0ZS5jO1xuIFx0XHRcdGhvdFVwZGF0ZU5ld0hhc2ggPSB1cGRhdGUuaDtcblxuIFx0XHRcdGhvdFNldFN0YXR1cyhcInByZXBhcmVcIik7XG4gXHRcdFx0dmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiBcdFx0XHRcdGhvdERlZmVycmVkID0ge1xuIFx0XHRcdFx0XHRyZXNvbHZlOiByZXNvbHZlLFxuIFx0XHRcdFx0XHRyZWplY3Q6IHJlamVjdFxuIFx0XHRcdFx0fTtcbiBcdFx0XHR9KTtcbiBcdFx0XHRob3RVcGRhdGUgPSB7fTtcbiBcdFx0XHR2YXIgY2h1bmtJZCA9IDA7XG4gXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvbmUtYmxvY2tzXG4gXHRcdFx0e1xuIFx0XHRcdFx0aG90RW5zdXJlVXBkYXRlQ2h1bmsoY2h1bmtJZCk7XG4gXHRcdFx0fVxuIFx0XHRcdGlmIChcbiBcdFx0XHRcdGhvdFN0YXR1cyA9PT0gXCJwcmVwYXJlXCIgJiZcbiBcdFx0XHRcdGhvdENodW5rc0xvYWRpbmcgPT09IDAgJiZcbiBcdFx0XHRcdGhvdFdhaXRpbmdGaWxlcyA9PT0gMFxuIFx0XHRcdCkge1xuIFx0XHRcdFx0aG90VXBkYXRlRG93bmxvYWRlZCgpO1xuIFx0XHRcdH1cbiBcdFx0XHRyZXR1cm4gcHJvbWlzZTtcbiBcdFx0fSk7XG4gXHR9XG5cbiBcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuIFx0ZnVuY3Rpb24gaG90QWRkVXBkYXRlQ2h1bmsoY2h1bmtJZCwgbW9yZU1vZHVsZXMpIHtcbiBcdFx0aWYgKCFob3RBdmFpbGFibGVGaWxlc01hcFtjaHVua0lkXSB8fCAhaG90UmVxdWVzdGVkRmlsZXNNYXBbY2h1bmtJZF0pXG4gXHRcdFx0cmV0dXJuO1xuIFx0XHRob3RSZXF1ZXN0ZWRGaWxlc01hcFtjaHVua0lkXSA9IGZhbHNlO1xuIFx0XHRmb3IgKHZhciBtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuIFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuIFx0XHRcdFx0aG90VXBkYXRlW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcbiBcdFx0XHR9XG4gXHRcdH1cbiBcdFx0aWYgKC0taG90V2FpdGluZ0ZpbGVzID09PSAwICYmIGhvdENodW5rc0xvYWRpbmcgPT09IDApIHtcbiBcdFx0XHRob3RVcGRhdGVEb3dubG9hZGVkKCk7XG4gXHRcdH1cbiBcdH1cblxuIFx0ZnVuY3Rpb24gaG90RW5zdXJlVXBkYXRlQ2h1bmsoY2h1bmtJZCkge1xuIFx0XHRpZiAoIWhvdEF2YWlsYWJsZUZpbGVzTWFwW2NodW5rSWRdKSB7XG4gXHRcdFx0aG90V2FpdGluZ0ZpbGVzTWFwW2NodW5rSWRdID0gdHJ1ZTtcbiBcdFx0fSBlbHNlIHtcbiBcdFx0XHRob3RSZXF1ZXN0ZWRGaWxlc01hcFtjaHVua0lkXSA9IHRydWU7XG4gXHRcdFx0aG90V2FpdGluZ0ZpbGVzKys7XG4gXHRcdFx0aG90RG93bmxvYWRVcGRhdGVDaHVuayhjaHVua0lkKTtcbiBcdFx0fVxuIFx0fVxuXG4gXHRmdW5jdGlvbiBob3RVcGRhdGVEb3dubG9hZGVkKCkge1xuIFx0XHRob3RTZXRTdGF0dXMoXCJyZWFkeVwiKTtcbiBcdFx0dmFyIGRlZmVycmVkID0gaG90RGVmZXJyZWQ7XG4gXHRcdGhvdERlZmVycmVkID0gbnVsbDtcbiBcdFx0aWYgKCFkZWZlcnJlZCkgcmV0dXJuO1xuIFx0XHRpZiAoaG90QXBwbHlPblVwZGF0ZSkge1xuIFx0XHRcdC8vIFdyYXAgZGVmZXJyZWQgb2JqZWN0IGluIFByb21pc2UgdG8gbWFyayBpdCBhcyBhIHdlbGwtaGFuZGxlZCBQcm9taXNlIHRvXG4gXHRcdFx0Ly8gYXZvaWQgdHJpZ2dlcmluZyB1bmNhdWdodCBleGNlcHRpb24gd2FybmluZyBpbiBDaHJvbWUuXG4gXHRcdFx0Ly8gU2VlIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTQ2NTY2NlxuIFx0XHRcdFByb21pc2UucmVzb2x2ZSgpXG4gXHRcdFx0XHQudGhlbihmdW5jdGlvbigpIHtcbiBcdFx0XHRcdFx0cmV0dXJuIGhvdEFwcGx5KGhvdEFwcGx5T25VcGRhdGUpO1xuIFx0XHRcdFx0fSlcbiBcdFx0XHRcdC50aGVuKFxuIFx0XHRcdFx0XHRmdW5jdGlvbihyZXN1bHQpIHtcbiBcdFx0XHRcdFx0XHRkZWZlcnJlZC5yZXNvbHZlKHJlc3VsdCk7XG4gXHRcdFx0XHRcdH0sXG4gXHRcdFx0XHRcdGZ1bmN0aW9uKGVycikge1xuIFx0XHRcdFx0XHRcdGRlZmVycmVkLnJlamVjdChlcnIpO1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHQpO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbXTtcbiBcdFx0XHRmb3IgKHZhciBpZCBpbiBob3RVcGRhdGUpIHtcbiBcdFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaG90VXBkYXRlLCBpZCkpIHtcbiBcdFx0XHRcdFx0b3V0ZGF0ZWRNb2R1bGVzLnB1c2godG9Nb2R1bGVJZChpZCkpO1xuIFx0XHRcdFx0fVxuIFx0XHRcdH1cbiBcdFx0XHRkZWZlcnJlZC5yZXNvbHZlKG91dGRhdGVkTW9kdWxlcyk7XG4gXHRcdH1cbiBcdH1cblxuIFx0ZnVuY3Rpb24gaG90QXBwbHkob3B0aW9ucykge1xuIFx0XHRpZiAoaG90U3RhdHVzICE9PSBcInJlYWR5XCIpXG4gXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiYXBwbHkoKSBpcyBvbmx5IGFsbG93ZWQgaW4gcmVhZHkgc3RhdHVzXCIpO1xuIFx0XHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiBcdFx0cmV0dXJuIGhvdEFwcGx5SW50ZXJuYWwob3B0aW9ucyk7XG4gXHR9XG5cbiBcdGZ1bmN0aW9uIGhvdEFwcGx5SW50ZXJuYWwob3B0aW9ucykge1xuIFx0XHRob3RBcHBseUludmFsaWRhdGVkTW9kdWxlcygpO1xuXG4gXHRcdHZhciBjYjtcbiBcdFx0dmFyIGk7XG4gXHRcdHZhciBqO1xuIFx0XHR2YXIgbW9kdWxlO1xuIFx0XHR2YXIgbW9kdWxlSWQ7XG5cbiBcdFx0ZnVuY3Rpb24gZ2V0QWZmZWN0ZWRTdHVmZih1cGRhdGVNb2R1bGVJZCkge1xuIFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbdXBkYXRlTW9kdWxlSWRdO1xuIFx0XHRcdHZhciBvdXRkYXRlZERlcGVuZGVuY2llcyA9IHt9O1xuXG4gXHRcdFx0dmFyIHF1ZXVlID0gb3V0ZGF0ZWRNb2R1bGVzLm1hcChmdW5jdGlvbihpZCkge1xuIFx0XHRcdFx0cmV0dXJuIHtcbiBcdFx0XHRcdFx0Y2hhaW46IFtpZF0sXG4gXHRcdFx0XHRcdGlkOiBpZFxuIFx0XHRcdFx0fTtcbiBcdFx0XHR9KTtcbiBcdFx0XHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuIFx0XHRcdFx0dmFyIHF1ZXVlSXRlbSA9IHF1ZXVlLnBvcCgpO1xuIFx0XHRcdFx0dmFyIG1vZHVsZUlkID0gcXVldWVJdGVtLmlkO1xuIFx0XHRcdFx0dmFyIGNoYWluID0gcXVldWVJdGVtLmNoYWluO1xuIFx0XHRcdFx0bW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF07XG4gXHRcdFx0XHRpZiAoXG4gXHRcdFx0XHRcdCFtb2R1bGUgfHxcbiBcdFx0XHRcdFx0KG1vZHVsZS5ob3QuX3NlbGZBY2NlcHRlZCAmJiAhbW9kdWxlLmhvdC5fc2VsZkludmFsaWRhdGVkKVxuIFx0XHRcdFx0KVxuIFx0XHRcdFx0XHRjb250aW51ZTtcbiBcdFx0XHRcdGlmIChtb2R1bGUuaG90Ll9zZWxmRGVjbGluZWQpIHtcbiBcdFx0XHRcdFx0cmV0dXJuIHtcbiBcdFx0XHRcdFx0XHR0eXBlOiBcInNlbGYtZGVjbGluZWRcIixcbiBcdFx0XHRcdFx0XHRjaGFpbjogY2hhaW4sXG4gXHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkXG4gXHRcdFx0XHRcdH07XG4gXHRcdFx0XHR9XG4gXHRcdFx0XHRpZiAobW9kdWxlLmhvdC5fbWFpbikge1xuIFx0XHRcdFx0XHRyZXR1cm4ge1xuIFx0XHRcdFx0XHRcdHR5cGU6IFwidW5hY2NlcHRlZFwiLFxuIFx0XHRcdFx0XHRcdGNoYWluOiBjaGFpbixcbiBcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWRcbiBcdFx0XHRcdFx0fTtcbiBcdFx0XHRcdH1cbiBcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbW9kdWxlLnBhcmVudHMubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHRcdFx0dmFyIHBhcmVudElkID0gbW9kdWxlLnBhcmVudHNbaV07XG4gXHRcdFx0XHRcdHZhciBwYXJlbnQgPSBpbnN0YWxsZWRNb2R1bGVzW3BhcmVudElkXTtcbiBcdFx0XHRcdFx0aWYgKCFwYXJlbnQpIGNvbnRpbnVlO1xuIFx0XHRcdFx0XHRpZiAocGFyZW50LmhvdC5fZGVjbGluZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0XHRcdFx0cmV0dXJuIHtcbiBcdFx0XHRcdFx0XHRcdHR5cGU6IFwiZGVjbGluZWRcIixcbiBcdFx0XHRcdFx0XHRcdGNoYWluOiBjaGFpbi5jb25jYXQoW3BhcmVudElkXSksXG4gXHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG4gXHRcdFx0XHRcdFx0XHRwYXJlbnRJZDogcGFyZW50SWRcbiBcdFx0XHRcdFx0XHR9O1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdGlmIChvdXRkYXRlZE1vZHVsZXMuaW5kZXhPZihwYXJlbnRJZCkgIT09IC0xKSBjb250aW51ZTtcbiBcdFx0XHRcdFx0aWYgKHBhcmVudC5ob3QuX2FjY2VwdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSkge1xuIFx0XHRcdFx0XHRcdGlmICghb3V0ZGF0ZWREZXBlbmRlbmNpZXNbcGFyZW50SWRdKVxuIFx0XHRcdFx0XHRcdFx0b3V0ZGF0ZWREZXBlbmRlbmNpZXNbcGFyZW50SWRdID0gW107XG4gXHRcdFx0XHRcdFx0YWRkQWxsVG9TZXQob3V0ZGF0ZWREZXBlbmRlbmNpZXNbcGFyZW50SWRdLCBbbW9kdWxlSWRdKTtcbiBcdFx0XHRcdFx0XHRjb250aW51ZTtcbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0XHRkZWxldGUgb3V0ZGF0ZWREZXBlbmRlbmNpZXNbcGFyZW50SWRdO1xuIFx0XHRcdFx0XHRvdXRkYXRlZE1vZHVsZXMucHVzaChwYXJlbnRJZCk7XG4gXHRcdFx0XHRcdHF1ZXVlLnB1c2goe1xuIFx0XHRcdFx0XHRcdGNoYWluOiBjaGFpbi5jb25jYXQoW3BhcmVudElkXSksXG4gXHRcdFx0XHRcdFx0aWQ6IHBhcmVudElkXG4gXHRcdFx0XHRcdH0pO1xuIFx0XHRcdFx0fVxuIFx0XHRcdH1cblxuIFx0XHRcdHJldHVybiB7XG4gXHRcdFx0XHR0eXBlOiBcImFjY2VwdGVkXCIsXG4gXHRcdFx0XHRtb2R1bGVJZDogdXBkYXRlTW9kdWxlSWQsXG4gXHRcdFx0XHRvdXRkYXRlZE1vZHVsZXM6IG91dGRhdGVkTW9kdWxlcyxcbiBcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzOiBvdXRkYXRlZERlcGVuZGVuY2llc1xuIFx0XHRcdH07XG4gXHRcdH1cblxuIFx0XHRmdW5jdGlvbiBhZGRBbGxUb1NldChhLCBiKSB7XG4gXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBiLmxlbmd0aDsgaSsrKSB7XG4gXHRcdFx0XHR2YXIgaXRlbSA9IGJbaV07XG4gXHRcdFx0XHRpZiAoYS5pbmRleE9mKGl0ZW0pID09PSAtMSkgYS5wdXNoKGl0ZW0pO1xuIFx0XHRcdH1cbiBcdFx0fVxuXG4gXHRcdC8vIGF0IGJlZ2luIGFsbCB1cGRhdGVzIG1vZHVsZXMgYXJlIG91dGRhdGVkXG4gXHRcdC8vIHRoZSBcIm91dGRhdGVkXCIgc3RhdHVzIGNhbiBwcm9wYWdhdGUgdG8gcGFyZW50cyBpZiB0aGV5IGRvbid0IGFjY2VwdCB0aGUgY2hpbGRyZW5cbiBcdFx0dmFyIG91dGRhdGVkRGVwZW5kZW5jaWVzID0ge307XG4gXHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbXTtcbiBcdFx0dmFyIGFwcGxpZWRVcGRhdGUgPSB7fTtcblxuIFx0XHR2YXIgd2FyblVuZXhwZWN0ZWRSZXF1aXJlID0gZnVuY3Rpb24gd2FyblVuZXhwZWN0ZWRSZXF1aXJlKCkge1xuIFx0XHRcdGNvbnNvbGUud2FybihcbiBcdFx0XHRcdFwiW0hNUl0gdW5leHBlY3RlZCByZXF1aXJlKFwiICsgcmVzdWx0Lm1vZHVsZUlkICsgXCIpIHRvIGRpc3Bvc2VkIG1vZHVsZVwiXG4gXHRcdFx0KTtcbiBcdFx0fTtcblxuIFx0XHRmb3IgKHZhciBpZCBpbiBob3RVcGRhdGUpIHtcbiBcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGhvdFVwZGF0ZSwgaWQpKSB7XG4gXHRcdFx0XHRtb2R1bGVJZCA9IHRvTW9kdWxlSWQoaWQpO1xuIFx0XHRcdFx0LyoqIEB0eXBlIHtUT0RPfSAqL1xuIFx0XHRcdFx0dmFyIHJlc3VsdDtcbiBcdFx0XHRcdGlmIChob3RVcGRhdGVbaWRdKSB7XG4gXHRcdFx0XHRcdHJlc3VsdCA9IGdldEFmZmVjdGVkU3R1ZmYobW9kdWxlSWQpO1xuIFx0XHRcdFx0fSBlbHNlIHtcbiBcdFx0XHRcdFx0cmVzdWx0ID0ge1xuIFx0XHRcdFx0XHRcdHR5cGU6IFwiZGlzcG9zZWRcIixcbiBcdFx0XHRcdFx0XHRtb2R1bGVJZDogaWRcbiBcdFx0XHRcdFx0fTtcbiBcdFx0XHRcdH1cbiBcdFx0XHRcdC8qKiBAdHlwZSB7RXJyb3J8ZmFsc2V9ICovXG4gXHRcdFx0XHR2YXIgYWJvcnRFcnJvciA9IGZhbHNlO1xuIFx0XHRcdFx0dmFyIGRvQXBwbHkgPSBmYWxzZTtcbiBcdFx0XHRcdHZhciBkb0Rpc3Bvc2UgPSBmYWxzZTtcbiBcdFx0XHRcdHZhciBjaGFpbkluZm8gPSBcIlwiO1xuIFx0XHRcdFx0aWYgKHJlc3VsdC5jaGFpbikge1xuIFx0XHRcdFx0XHRjaGFpbkluZm8gPSBcIlxcblVwZGF0ZSBwcm9wYWdhdGlvbjogXCIgKyByZXN1bHQuY2hhaW4uam9pbihcIiAtPiBcIik7XG4gXHRcdFx0XHR9XG4gXHRcdFx0XHRzd2l0Y2ggKHJlc3VsdC50eXBlKSB7XG4gXHRcdFx0XHRcdGNhc2UgXCJzZWxmLWRlY2xpbmVkXCI6XG4gXHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25EZWNsaW5lZCkgb3B0aW9ucy5vbkRlY2xpbmVkKHJlc3VsdCk7XG4gXHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZURlY2xpbmVkKVxuIFx0XHRcdFx0XHRcdFx0YWJvcnRFcnJvciA9IG5ldyBFcnJvcihcbiBcdFx0XHRcdFx0XHRcdFx0XCJBYm9ydGVkIGJlY2F1c2Ugb2Ygc2VsZiBkZWNsaW5lOiBcIiArXG4gXHRcdFx0XHRcdFx0XHRcdFx0cmVzdWx0Lm1vZHVsZUlkICtcbiBcdFx0XHRcdFx0XHRcdFx0XHRjaGFpbkluZm9cbiBcdFx0XHRcdFx0XHRcdCk7XG4gXHRcdFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0XHRcdGNhc2UgXCJkZWNsaW5lZFwiOlxuIFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRGVjbGluZWQpIG9wdGlvbnMub25EZWNsaW5lZChyZXN1bHQpO1xuIFx0XHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVEZWNsaW5lZClcbiBcdFx0XHRcdFx0XHRcdGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXG4gXHRcdFx0XHRcdFx0XHRcdFwiQWJvcnRlZCBiZWNhdXNlIG9mIGRlY2xpbmVkIGRlcGVuZGVuY3k6IFwiICtcbiBcdFx0XHRcdFx0XHRcdFx0XHRyZXN1bHQubW9kdWxlSWQgK1xuIFx0XHRcdFx0XHRcdFx0XHRcdFwiIGluIFwiICtcbiBcdFx0XHRcdFx0XHRcdFx0XHRyZXN1bHQucGFyZW50SWQgK1xuIFx0XHRcdFx0XHRcdFx0XHRcdGNoYWluSW5mb1xuIFx0XHRcdFx0XHRcdFx0KTtcbiBcdFx0XHRcdFx0XHRicmVhaztcbiBcdFx0XHRcdFx0Y2FzZSBcInVuYWNjZXB0ZWRcIjpcbiBcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vblVuYWNjZXB0ZWQpIG9wdGlvbnMub25VbmFjY2VwdGVkKHJlc3VsdCk7XG4gXHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZVVuYWNjZXB0ZWQpXG4gXHRcdFx0XHRcdFx0XHRhYm9ydEVycm9yID0gbmV3IEVycm9yKFxuIFx0XHRcdFx0XHRcdFx0XHRcIkFib3J0ZWQgYmVjYXVzZSBcIiArIG1vZHVsZUlkICsgXCIgaXMgbm90IGFjY2VwdGVkXCIgKyBjaGFpbkluZm9cbiBcdFx0XHRcdFx0XHRcdCk7XG4gXHRcdFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0XHRcdGNhc2UgXCJhY2NlcHRlZFwiOlxuIFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uQWNjZXB0ZWQpIG9wdGlvbnMub25BY2NlcHRlZChyZXN1bHQpO1xuIFx0XHRcdFx0XHRcdGRvQXBwbHkgPSB0cnVlO1xuIFx0XHRcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdFx0XHRjYXNlIFwiZGlzcG9zZWRcIjpcbiBcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkRpc3Bvc2VkKSBvcHRpb25zLm9uRGlzcG9zZWQocmVzdWx0KTtcbiBcdFx0XHRcdFx0XHRkb0Rpc3Bvc2UgPSB0cnVlO1xuIFx0XHRcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdFx0XHRkZWZhdWx0OlxuIFx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIlVuZXhjZXB0aW9uIHR5cGUgXCIgKyByZXN1bHQudHlwZSk7XG4gXHRcdFx0XHR9XG4gXHRcdFx0XHRpZiAoYWJvcnRFcnJvcikge1xuIFx0XHRcdFx0XHRob3RTZXRTdGF0dXMoXCJhYm9ydFwiKTtcbiBcdFx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KGFib3J0RXJyb3IpO1xuIFx0XHRcdFx0fVxuIFx0XHRcdFx0aWYgKGRvQXBwbHkpIHtcbiBcdFx0XHRcdFx0YXBwbGllZFVwZGF0ZVttb2R1bGVJZF0gPSBob3RVcGRhdGVbbW9kdWxlSWRdO1xuIFx0XHRcdFx0XHRhZGRBbGxUb1NldChvdXRkYXRlZE1vZHVsZXMsIHJlc3VsdC5vdXRkYXRlZE1vZHVsZXMpO1xuIFx0XHRcdFx0XHRmb3IgKG1vZHVsZUlkIGluIHJlc3VsdC5vdXRkYXRlZERlcGVuZGVuY2llcykge1xuIFx0XHRcdFx0XHRcdGlmIChcbiBcdFx0XHRcdFx0XHRcdE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChcbiBcdFx0XHRcdFx0XHRcdFx0cmVzdWx0Lm91dGRhdGVkRGVwZW5kZW5jaWVzLFxuIFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZFxuIFx0XHRcdFx0XHRcdFx0KVxuIFx0XHRcdFx0XHRcdCkge1xuIFx0XHRcdFx0XHRcdFx0aWYgKCFvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0pXG4gXHRcdFx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSA9IFtdO1xuIFx0XHRcdFx0XHRcdFx0YWRkQWxsVG9TZXQoXG4gXHRcdFx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSxcbiBcdFx0XHRcdFx0XHRcdFx0cmVzdWx0Lm91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXVxuIFx0XHRcdFx0XHRcdFx0KTtcbiBcdFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdH1cbiBcdFx0XHRcdGlmIChkb0Rpc3Bvc2UpIHtcbiBcdFx0XHRcdFx0YWRkQWxsVG9TZXQob3V0ZGF0ZWRNb2R1bGVzLCBbcmVzdWx0Lm1vZHVsZUlkXSk7XG4gXHRcdFx0XHRcdGFwcGxpZWRVcGRhdGVbbW9kdWxlSWRdID0gd2FyblVuZXhwZWN0ZWRSZXF1aXJlO1xuIFx0XHRcdFx0fVxuIFx0XHRcdH1cbiBcdFx0fVxuXG4gXHRcdC8vIFN0b3JlIHNlbGYgYWNjZXB0ZWQgb3V0ZGF0ZWQgbW9kdWxlcyB0byByZXF1aXJlIHRoZW0gbGF0ZXIgYnkgdGhlIG1vZHVsZSBzeXN0ZW1cbiBcdFx0dmFyIG91dGRhdGVkU2VsZkFjY2VwdGVkTW9kdWxlcyA9IFtdO1xuIFx0XHRmb3IgKGkgPSAwOyBpIDwgb3V0ZGF0ZWRNb2R1bGVzLmxlbmd0aDsgaSsrKSB7XG4gXHRcdFx0bW9kdWxlSWQgPSBvdXRkYXRlZE1vZHVsZXNbaV07XG4gXHRcdFx0aWYgKFxuIFx0XHRcdFx0aW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gJiZcbiBcdFx0XHRcdGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmhvdC5fc2VsZkFjY2VwdGVkICYmXG4gXHRcdFx0XHQvLyByZW1vdmVkIHNlbGYtYWNjZXB0ZWQgbW9kdWxlcyBzaG91bGQgbm90IGJlIHJlcXVpcmVkXG4gXHRcdFx0XHRhcHBsaWVkVXBkYXRlW21vZHVsZUlkXSAhPT0gd2FyblVuZXhwZWN0ZWRSZXF1aXJlICYmXG4gXHRcdFx0XHQvLyB3aGVuIGNhbGxlZCBpbnZhbGlkYXRlIHNlbGYtYWNjZXB0aW5nIGlzIG5vdCBwb3NzaWJsZVxuIFx0XHRcdFx0IWluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmhvdC5fc2VsZkludmFsaWRhdGVkXG4gXHRcdFx0KSB7XG4gXHRcdFx0XHRvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXMucHVzaCh7XG4gXHRcdFx0XHRcdG1vZHVsZTogbW9kdWxlSWQsXG4gXHRcdFx0XHRcdHBhcmVudHM6IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLnBhcmVudHMuc2xpY2UoKSxcbiBcdFx0XHRcdFx0ZXJyb3JIYW5kbGVyOiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5ob3QuX3NlbGZBY2NlcHRlZFxuIFx0XHRcdFx0fSk7XG4gXHRcdFx0fVxuIFx0XHR9XG5cbiBcdFx0Ly8gTm93IGluIFwiZGlzcG9zZVwiIHBoYXNlXG4gXHRcdGhvdFNldFN0YXR1cyhcImRpc3Bvc2VcIik7XG4gXHRcdE9iamVjdC5rZXlzKGhvdEF2YWlsYWJsZUZpbGVzTWFwKS5mb3JFYWNoKGZ1bmN0aW9uKGNodW5rSWQpIHtcbiBcdFx0XHRpZiAoaG90QXZhaWxhYmxlRmlsZXNNYXBbY2h1bmtJZF0gPT09IGZhbHNlKSB7XG4gXHRcdFx0XHRob3REaXNwb3NlQ2h1bmsoY2h1bmtJZCk7XG4gXHRcdFx0fVxuIFx0XHR9KTtcblxuIFx0XHR2YXIgaWR4O1xuIFx0XHR2YXIgcXVldWUgPSBvdXRkYXRlZE1vZHVsZXMuc2xpY2UoKTtcbiBcdFx0d2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbiBcdFx0XHRtb2R1bGVJZCA9IHF1ZXVlLnBvcCgpO1xuIFx0XHRcdG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdO1xuIFx0XHRcdGlmICghbW9kdWxlKSBjb250aW51ZTtcblxuIFx0XHRcdHZhciBkYXRhID0ge307XG5cbiBcdFx0XHQvLyBDYWxsIGRpc3Bvc2UgaGFuZGxlcnNcbiBcdFx0XHR2YXIgZGlzcG9zZUhhbmRsZXJzID0gbW9kdWxlLmhvdC5fZGlzcG9zZUhhbmRsZXJzO1xuIFx0XHRcdGZvciAoaiA9IDA7IGogPCBkaXNwb3NlSGFuZGxlcnMubGVuZ3RoOyBqKyspIHtcbiBcdFx0XHRcdGNiID0gZGlzcG9zZUhhbmRsZXJzW2pdO1xuIFx0XHRcdFx0Y2IoZGF0YSk7XG4gXHRcdFx0fVxuIFx0XHRcdGhvdEN1cnJlbnRNb2R1bGVEYXRhW21vZHVsZUlkXSA9IGRhdGE7XG5cbiBcdFx0XHQvLyBkaXNhYmxlIG1vZHVsZSAodGhpcyBkaXNhYmxlcyByZXF1aXJlcyBmcm9tIHRoaXMgbW9kdWxlKVxuIFx0XHRcdG1vZHVsZS5ob3QuYWN0aXZlID0gZmFsc2U7XG5cbiBcdFx0XHQvLyByZW1vdmUgbW9kdWxlIGZyb20gY2FjaGVcbiBcdFx0XHRkZWxldGUgaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF07XG5cbiBcdFx0XHQvLyB3aGVuIGRpc3Bvc2luZyB0aGVyZSBpcyBubyBuZWVkIHRvIGNhbGwgZGlzcG9zZSBoYW5kbGVyXG4gXHRcdFx0ZGVsZXRlIG91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXTtcblxuIFx0XHRcdC8vIHJlbW92ZSBcInBhcmVudHNcIiByZWZlcmVuY2VzIGZyb20gYWxsIGNoaWxkcmVuXG4gXHRcdFx0Zm9yIChqID0gMDsgaiA8IG1vZHVsZS5jaGlsZHJlbi5sZW5ndGg7IGorKykge1xuIFx0XHRcdFx0dmFyIGNoaWxkID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGUuY2hpbGRyZW5bal1dO1xuIFx0XHRcdFx0aWYgKCFjaGlsZCkgY29udGludWU7XG4gXHRcdFx0XHRpZHggPSBjaGlsZC5wYXJlbnRzLmluZGV4T2YobW9kdWxlSWQpO1xuIFx0XHRcdFx0aWYgKGlkeCA+PSAwKSB7XG4gXHRcdFx0XHRcdGNoaWxkLnBhcmVudHMuc3BsaWNlKGlkeCwgMSk7XG4gXHRcdFx0XHR9XG4gXHRcdFx0fVxuIFx0XHR9XG5cbiBcdFx0Ly8gcmVtb3ZlIG91dGRhdGVkIGRlcGVuZGVuY3kgZnJvbSBtb2R1bGUgY2hpbGRyZW5cbiBcdFx0dmFyIGRlcGVuZGVuY3k7XG4gXHRcdHZhciBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcztcbiBcdFx0Zm9yIChtb2R1bGVJZCBpbiBvdXRkYXRlZERlcGVuZGVuY2llcykge1xuIFx0XHRcdGlmIChcbiBcdFx0XHRcdE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvdXRkYXRlZERlcGVuZGVuY2llcywgbW9kdWxlSWQpXG4gXHRcdFx0KSB7XG4gXHRcdFx0XHRtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXTtcbiBcdFx0XHRcdGlmIChtb2R1bGUpIHtcbiBcdFx0XHRcdFx0bW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXMgPSBvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF07XG4gXHRcdFx0XHRcdGZvciAoaiA9IDA7IGogPCBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcy5sZW5ndGg7IGorKykge1xuIFx0XHRcdFx0XHRcdGRlcGVuZGVuY3kgPSBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llc1tqXTtcbiBcdFx0XHRcdFx0XHRpZHggPSBtb2R1bGUuY2hpbGRyZW4uaW5kZXhPZihkZXBlbmRlbmN5KTtcbiBcdFx0XHRcdFx0XHRpZiAoaWR4ID49IDApIG1vZHVsZS5jaGlsZHJlbi5zcGxpY2UoaWR4LCAxKTtcbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0fVxuIFx0XHRcdH1cbiBcdFx0fVxuXG4gXHRcdC8vIE5vdyBpbiBcImFwcGx5XCIgcGhhc2VcbiBcdFx0aG90U2V0U3RhdHVzKFwiYXBwbHlcIik7XG5cbiBcdFx0aWYgKGhvdFVwZGF0ZU5ld0hhc2ggIT09IHVuZGVmaW5lZCkge1xuIFx0XHRcdGhvdEN1cnJlbnRIYXNoID0gaG90VXBkYXRlTmV3SGFzaDtcbiBcdFx0XHRob3RVcGRhdGVOZXdIYXNoID0gdW5kZWZpbmVkO1xuIFx0XHR9XG4gXHRcdGhvdFVwZGF0ZSA9IHVuZGVmaW5lZDtcblxuIFx0XHQvLyBpbnNlcnQgbmV3IGNvZGVcbiBcdFx0Zm9yIChtb2R1bGVJZCBpbiBhcHBsaWVkVXBkYXRlKSB7XG4gXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcHBsaWVkVXBkYXRlLCBtb2R1bGVJZCkpIHtcbiBcdFx0XHRcdG1vZHVsZXNbbW9kdWxlSWRdID0gYXBwbGllZFVwZGF0ZVttb2R1bGVJZF07XG4gXHRcdFx0fVxuIFx0XHR9XG5cbiBcdFx0Ly8gY2FsbCBhY2NlcHQgaGFuZGxlcnNcbiBcdFx0dmFyIGVycm9yID0gbnVsbDtcbiBcdFx0Zm9yIChtb2R1bGVJZCBpbiBvdXRkYXRlZERlcGVuZGVuY2llcykge1xuIFx0XHRcdGlmIChcbiBcdFx0XHRcdE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvdXRkYXRlZERlcGVuZGVuY2llcywgbW9kdWxlSWQpXG4gXHRcdFx0KSB7XG4gXHRcdFx0XHRtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXTtcbiBcdFx0XHRcdGlmIChtb2R1bGUpIHtcbiBcdFx0XHRcdFx0bW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXMgPSBvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF07XG4gXHRcdFx0XHRcdHZhciBjYWxsYmFja3MgPSBbXTtcbiBcdFx0XHRcdFx0Zm9yIChpID0gMDsgaSA8IG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzLmxlbmd0aDsgaSsrKSB7XG4gXHRcdFx0XHRcdFx0ZGVwZW5kZW5jeSA9IG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzW2ldO1xuIFx0XHRcdFx0XHRcdGNiID0gbW9kdWxlLmhvdC5fYWNjZXB0ZWREZXBlbmRlbmNpZXNbZGVwZW5kZW5jeV07XG4gXHRcdFx0XHRcdFx0aWYgKGNiKSB7XG4gXHRcdFx0XHRcdFx0XHRpZiAoY2FsbGJhY2tzLmluZGV4T2YoY2IpICE9PSAtMSkgY29udGludWU7XG4gXHRcdFx0XHRcdFx0XHRjYWxsYmFja3MucHVzaChjYik7XG4gXHRcdFx0XHRcdFx0fVxuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdGZvciAoaSA9IDA7IGkgPCBjYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHRcdFx0XHRjYiA9IGNhbGxiYWNrc1tpXTtcbiBcdFx0XHRcdFx0XHR0cnkge1xuIFx0XHRcdFx0XHRcdFx0Y2IobW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXMpO1xuIFx0XHRcdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuIFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25FcnJvcmVkKSB7XG4gXHRcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25FcnJvcmVkKHtcbiBcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcImFjY2VwdC1lcnJvcmVkXCIsXG4gXHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuIFx0XHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY3lJZDogbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXNbaV0sXG4gXHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3I6IGVyclxuIFx0XHRcdFx0XHRcdFx0XHR9KTtcbiBcdFx0XHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVFcnJvcmVkKSB7XG4gXHRcdFx0XHRcdFx0XHRcdGlmICghZXJyb3IpIGVycm9yID0gZXJyO1xuIFx0XHRcdFx0XHRcdFx0fVxuIFx0XHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0fVxuIFx0XHRcdFx0fVxuIFx0XHRcdH1cbiBcdFx0fVxuXG4gXHRcdC8vIExvYWQgc2VsZiBhY2NlcHRlZCBtb2R1bGVzXG4gXHRcdGZvciAoaSA9IDA7IGkgPCBvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHR2YXIgaXRlbSA9IG91dGRhdGVkU2VsZkFjY2VwdGVkTW9kdWxlc1tpXTtcbiBcdFx0XHRtb2R1bGVJZCA9IGl0ZW0ubW9kdWxlO1xuIFx0XHRcdGhvdEN1cnJlbnRQYXJlbnRzID0gaXRlbS5wYXJlbnRzO1xuIFx0XHRcdGhvdEN1cnJlbnRDaGlsZE1vZHVsZSA9IG1vZHVsZUlkO1xuIFx0XHRcdHRyeSB7XG4gXHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKTtcbiBcdFx0XHR9IGNhdGNoIChlcnIpIHtcbiBcdFx0XHRcdGlmICh0eXBlb2YgaXRlbS5lcnJvckhhbmRsZXIgPT09IFwiZnVuY3Rpb25cIikge1xuIFx0XHRcdFx0XHR0cnkge1xuIFx0XHRcdFx0XHRcdGl0ZW0uZXJyb3JIYW5kbGVyKGVycik7XG4gXHRcdFx0XHRcdH0gY2F0Y2ggKGVycjIpIHtcbiBcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkVycm9yZWQpIHtcbiBcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25FcnJvcmVkKHtcbiBcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJzZWxmLWFjY2VwdC1lcnJvci1oYW5kbGVyLWVycm9yZWRcIixcbiBcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuIFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyMixcbiBcdFx0XHRcdFx0XHRcdFx0b3JpZ2luYWxFcnJvcjogZXJyXG4gXHRcdFx0XHRcdFx0XHR9KTtcbiBcdFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcbiBcdFx0XHRcdFx0XHRcdGlmICghZXJyb3IpIGVycm9yID0gZXJyMjtcbiBcdFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdFx0aWYgKCFlcnJvcikgZXJyb3IgPSBlcnI7XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdH0gZWxzZSB7XG4gXHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuIFx0XHRcdFx0XHRcdG9wdGlvbnMub25FcnJvcmVkKHtcbiBcdFx0XHRcdFx0XHRcdHR5cGU6IFwic2VsZi1hY2NlcHQtZXJyb3JlZFwiLFxuIFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuIFx0XHRcdFx0XHRcdFx0ZXJyb3I6IGVyclxuIFx0XHRcdFx0XHRcdH0pO1xuIFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVFcnJvcmVkKSB7XG4gXHRcdFx0XHRcdFx0aWYgKCFlcnJvcikgZXJyb3IgPSBlcnI7XG4gXHRcdFx0XHRcdH1cbiBcdFx0XHRcdH1cbiBcdFx0XHR9XG4gXHRcdH1cblxuIFx0XHQvLyBoYW5kbGUgZXJyb3JzIGluIGFjY2VwdCBoYW5kbGVycyBhbmQgc2VsZiBhY2NlcHRlZCBtb2R1bGUgbG9hZFxuIFx0XHRpZiAoZXJyb3IpIHtcbiBcdFx0XHRob3RTZXRTdGF0dXMoXCJmYWlsXCIpO1xuIFx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gXHRcdH1cblxuIFx0XHRpZiAoaG90UXVldWVkSW52YWxpZGF0ZWRNb2R1bGVzKSB7XG4gXHRcdFx0cmV0dXJuIGhvdEFwcGx5SW50ZXJuYWwob3B0aW9ucykudGhlbihmdW5jdGlvbihsaXN0KSB7XG4gXHRcdFx0XHRvdXRkYXRlZE1vZHVsZXMuZm9yRWFjaChmdW5jdGlvbihtb2R1bGVJZCkge1xuIFx0XHRcdFx0XHRpZiAobGlzdC5pbmRleE9mKG1vZHVsZUlkKSA8IDApIGxpc3QucHVzaChtb2R1bGVJZCk7XG4gXHRcdFx0XHR9KTtcbiBcdFx0XHRcdHJldHVybiBsaXN0O1xuIFx0XHRcdH0pO1xuIFx0XHR9XG5cbiBcdFx0aG90U2V0U3RhdHVzKFwiaWRsZVwiKTtcbiBcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHtcbiBcdFx0XHRyZXNvbHZlKG91dGRhdGVkTW9kdWxlcyk7XG4gXHRcdH0pO1xuIFx0fVxuXG4gXHRmdW5jdGlvbiBob3RBcHBseUludmFsaWRhdGVkTW9kdWxlcygpIHtcbiBcdFx0aWYgKGhvdFF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcykge1xuIFx0XHRcdGlmICghaG90VXBkYXRlKSBob3RVcGRhdGUgPSB7fTtcbiBcdFx0XHRob3RRdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMuZm9yRWFjaChob3RBcHBseUludmFsaWRhdGVkTW9kdWxlKTtcbiBcdFx0XHRob3RRdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMgPSB1bmRlZmluZWQ7XG4gXHRcdFx0cmV0dXJuIHRydWU7XG4gXHRcdH1cbiBcdH1cblxuIFx0ZnVuY3Rpb24gaG90QXBwbHlJbnZhbGlkYXRlZE1vZHVsZShtb2R1bGVJZCkge1xuIFx0XHRpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChob3RVcGRhdGUsIG1vZHVsZUlkKSlcbiBcdFx0XHRob3RVcGRhdGVbbW9kdWxlSWRdID0gbW9kdWxlc1ttb2R1bGVJZF07XG4gXHR9XG5cbiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9LFxuIFx0XHRcdGhvdDogaG90Q3JlYXRlTW9kdWxlKG1vZHVsZUlkKSxcbiBcdFx0XHRwYXJlbnRzOiAoaG90Q3VycmVudFBhcmVudHNUZW1wID0gaG90Q3VycmVudFBhcmVudHMsIGhvdEN1cnJlbnRQYXJlbnRzID0gW10sIGhvdEN1cnJlbnRQYXJlbnRzVGVtcCksXG4gXHRcdFx0Y2hpbGRyZW46IFtdXG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIGhvdENyZWF0ZVJlcXVpcmUobW9kdWxlSWQpKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBfX3dlYnBhY2tfaGFzaF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmggPSBmdW5jdGlvbigpIHsgcmV0dXJuIGhvdEN1cnJlbnRIYXNoOyB9O1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIGhvdENyZWF0ZVJlcXVpcmUoMCkoX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMCk7XG4iLCJcbiAgZ2xvYmFsLmxpYnJhcmllcyA9IGdsb2JhbC5saWJyYXJpZXMgfHwge31cbiAgZ2xvYmFsLmxpYnJhcmllc1tcIkAwMS9lbnZcIl0gPSB7IG5hbWU6XCJAMDEvZW52XCIsIHZlcnNpb246XCIyLjAuMy1idWlsZFsxMTVdXCIsIGJ1aWxkRW52OlwicHJvZHVjdGlvblwiIH1cbiAgIiwiLyoqXG4gKiBDcmVhdGVkIGJ5IG4udmluYXlha2FuIG9uIDA2LjA2LjE3LlxuICovXG4vL3RzbGludDpkaXNhYmxlLW5leHQtbGluZVxuZXhwb3J0IGNvbnN0IGlzQnJvd3NlciA9IG5ldyBGdW5jdGlvbihcbiAgXCJ0cnkge3JldHVybiB0aGlzPT09d2luZG93O31jYXRjaChlKXsgcmV0dXJuIGZhbHNlO31cIlxuKSgpO1xuLy90c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbmV4cG9ydCBjb25zdCBpc1dvcmtlciA9IG5ldyBGdW5jdGlvbihcbiAgXCJ0cnkge3JldHVybiB0aGlzPT09c2VsZiAmJiB0eXBlb2YgaW1wb3J0U2NyaXB0cyAhPT0gJ3VuZGVmaW5lZCc7fWNhdGNoKGUpe3JldHVybiBmYWxzZTt9XCJcbikoKTtcbi8vdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG5leHBvcnQgY29uc3QgaXNOb2RlID1cbiAgdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICB0eXBlb2YgcHJvY2Vzcy5zdGRvdXQgIT09IFwidW5kZWZpbmVkXCI7XG5cbmNvbnN0IFUgPSB1bmRlZmluZWQgYXMgdW5rbm93bjtcbnR5cGUgVSA9IHVuZGVmaW5lZDtcblxuZXhwb3J0IGZ1bmN0aW9uIGVudjxUID0gVT4obmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQgPSBVIGFzIFQpIHtcbiAgY29uc3QgZW52VmFsdWUgPSBwcm9jZXNzLmVudltuYW1lXTtcbiAgcmV0dXJuIGVudlZhbHVlIHx8IGRlZmF1bHRWYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVudkludDxUID0gVT4obmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQgPSBVIGFzIFQpIHtcbiAgY29uc3QgZW52VmFsdWUgPSBwcm9jZXNzLmVudltuYW1lXTtcbiAgcmV0dXJuIGVudlZhbHVlID8gcGFyc2VJbnQoZW52VmFsdWUpIDogZGVmYXVsdFZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW52RmxvYXQ8VCA9IFU+KG5hbWU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBUID0gVSBhcyBUKSB7XG4gIGNvbnN0IGVudlZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV07XG4gIHJldHVybiBlbnZWYWx1ZSA/IHBhcnNlRmxvYXQoZW52VmFsdWUpIDogZGVmYXVsdFZhbHVlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGVudkJvb2xlYW48VCA9IFU+KG5hbWU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBUID0gVSBhcyBUKSB7XG4gIGNvbnN0IGVudlZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV07XG4gIHJldHVybiBlbnZWYWx1ZSA/IGVudlZhbHVlID09PSBcInRydWVcIiA6IGRlZmF1bHRWYWx1ZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBlbnZKc29uPFQgPSBVPihuYW1lOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogVCA9IFUgYXMgVCk6IGFueSB7XG4gIGNvbnN0IGVudlZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV07XG4gIGlmIChlbnZWYWx1ZSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShlbnZWYWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfVxuICByZXR1cm4gZGVmYXVsdFZhbHVlO1xufVxuIiwiZXhwb3J0ICogZnJvbSBcIi4vZW52XCI7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJ0c2xpYlwiKTsiXSwic291cmNlUm9vdCI6IiJ9
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./env"), exports);
|
|
5
|
+
//# sourceMappingURL=index.js.map
|