clientnode 4.0.1435 → 4.0.1437
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/Lock.js +83 -94
- package/dist/Logger.js +163 -715
- package/dist/Semaphore.js +46 -81
- package/dist/array.js +337 -568
- package/dist/cli.js +37 -71
- package/dist/constants.js +110 -209
- package/dist/context.js +25 -229
- package/dist/cookie.js +48 -226
- package/dist/data-transfer.js +166 -725
- package/dist/datetime.js +241 -1059
- package/dist/domNode.js +277 -441
- package/dist/expression/evaluators.js +234 -1112
- package/dist/expression/helper.js +82 -135
- package/dist/expression/index.js +10 -1245
- package/dist/expression/indicator-functions.js +21 -239
- package/dist/expression/type.js +4 -34
- package/dist/filesystem.js +323 -309
- package/dist/function.js +51 -125
- package/dist/index.js +26 -2709
- package/dist/indicators.js +68 -440
- package/dist/module.js +78 -164
- package/dist/number.js +25 -423
- package/dist/object.js +771 -852
- package/dist/process.js +39 -245
- package/dist/property-types.js +96 -157
- package/dist/scope.js +56 -1825
- package/dist/string.js +603 -909
- package/dist/test-helper.js +171 -541
- package/dist/type.js +8 -37
- package/dist/utility.js +91 -336
- package/package.json +2 -2
- package/dist/Lock.d.ts +0 -39
- package/dist/Logger.d.ts +0 -102
- package/dist/Semaphore.d.ts +0 -29
- package/dist/array.d.ts +0 -150
- package/dist/bundle/Lock.js +0 -111
- package/dist/bundle/Logger.js +0 -705
- package/dist/bundle/Semaphore.js +0 -100
- package/dist/bundle/array.js +0 -648
- package/dist/bundle/cli.js +0 -85
- package/dist/bundle/constants.js +0 -225
- package/dist/bundle/context.js +0 -243
- package/dist/bundle/cookie.js +0 -262
- package/dist/bundle/data-transfer.js +0 -741
- package/dist/bundle/datetime.js +0 -1064
- package/dist/bundle/domNode.js +0 -471
- package/dist/bundle/expression/evaluators.js +0 -1115
- package/dist/bundle/expression/helper.js +0 -106
- package/dist/bundle/expression/index.js +0 -1223
- package/dist/bundle/expression/indicator-functions.js +0 -235
- package/dist/bundle/expression/type.js +0 -50
- package/dist/bundle/filesystem.js +0 -374
- package/dist/bundle/function.js +0 -105
- package/dist/bundle/index.js +0 -2686
- package/dist/bundle/indicators.js +0 -459
- package/dist/bundle/module.js +0 -180
- package/dist/bundle/number.js +0 -425
- package/dist/bundle/object.js +0 -1004
- package/dist/bundle/process.js +0 -275
- package/dist/bundle/property-types.js +0 -167
- package/dist/bundle/scope.js +0 -1808
- package/dist/bundle/string.js +0 -1095
- package/dist/bundle/test-helper.js +0 -690
- package/dist/bundle/type.js +0 -50
- package/dist/bundle/utility.js +0 -362
- package/dist/cli.d.ts +0 -31
- package/dist/compatible/Lock.js +0 -111
- package/dist/compatible/Logger.js +0 -705
- package/dist/compatible/Semaphore.js +0 -100
- package/dist/compatible/array.js +0 -648
- package/dist/compatible/cli.js +0 -85
- package/dist/compatible/constants.js +0 -225
- package/dist/compatible/context.js +0 -243
- package/dist/compatible/cookie.js +0 -262
- package/dist/compatible/data-transfer.js +0 -741
- package/dist/compatible/datetime.js +0 -1064
- package/dist/compatible/domNode.js +0 -471
- package/dist/compatible/expression/evaluators.js +0 -1115
- package/dist/compatible/expression/helper.js +0 -106
- package/dist/compatible/expression/index.js +0 -1223
- package/dist/compatible/expression/indicator-functions.js +0 -235
- package/dist/compatible/expression/type.js +0 -50
- package/dist/compatible/filesystem.js +0 -374
- package/dist/compatible/function.js +0 -105
- package/dist/compatible/index.js +0 -2686
- package/dist/compatible/indicators.js +0 -459
- package/dist/compatible/module.js +0 -180
- package/dist/compatible/number.js +0 -425
- package/dist/compatible/object.js +0 -1004
- package/dist/compatible/process.js +0 -275
- package/dist/compatible/property-types.js +0 -167
- package/dist/compatible/scope.js +0 -1808
- package/dist/compatible/string.js +0 -1095
- package/dist/compatible/test-helper.js +0 -690
- package/dist/compatible/type.js +0 -50
- package/dist/compatible/utility.js +0 -362
- package/dist/constants.d.ts +0 -99
- package/dist/context.d.ts +0 -8
- package/dist/cookie.d.ts +0 -31
- package/dist/data-transfer.d.ts +0 -45
- package/dist/datetime.d.ts +0 -37
- package/dist/domNode.d.ts +0 -82
- package/dist/expression/evaluators.d.ts +0 -55
- package/dist/expression/helper.d.ts +0 -4
- package/dist/expression/index.d.ts +0 -7
- package/dist/expression/indicator-functions.d.ts +0 -14
- package/dist/expression/type.d.ts +0 -70
- package/dist/filesystem.d.ts +0 -143
- package/dist/function.d.ts +0 -20
- package/dist/index.d.ts +0 -23
- package/dist/indicators.d.ts +0 -68
- package/dist/module.d.ts +0 -8
- package/dist/number.d.ts +0 -35
- package/dist/object.d.ts +0 -231
- package/dist/process.d.ts +0 -22
- package/dist/property-types.d.ts +0 -460
- package/dist/scope.d.ts +0 -44
- package/dist/string.d.ts +0 -312
- package/dist/test/Lock.d.ts +0 -1
- package/dist/test/Logger.d.ts +0 -1
- package/dist/test/Semaphore.d.ts +0 -1
- package/dist/test/array.d.ts +0 -1
- package/dist/test/cookie.d.ts +0 -1
- package/dist/test/data-transfer.d.ts +0 -1
- package/dist/test/datetime.d.ts +0 -1
- package/dist/test/domNode.d.ts +0 -1
- package/dist/test/expression/evaluators.d.ts +0 -1
- package/dist/test/expression/helper.d.ts +0 -1
- package/dist/test/expression/indicator-functions.d.ts +0 -1
- package/dist/test/filesystem.d.ts +0 -1
- package/dist/test/function.d.ts +0 -1
- package/dist/test/indicators.d.ts +0 -1
- package/dist/test/number.d.ts +0 -1
- package/dist/test/object.d.ts +0 -1
- package/dist/test/process.d.ts +0 -1
- package/dist/test/property-types.d.ts +0 -1
- package/dist/test/scope.d.ts +0 -1
- package/dist/test/string.d.ts +0 -1
- package/dist/test/utility.d.ts +0 -1
- package/dist/test-helper.d.ts +0 -143
- package/dist/type.d.ts +0 -230
- package/dist/utility.d.ts +0 -44
package/dist/module.js
CHANGED
|
@@ -1,34 +1,9 @@
|
|
|
1
|
-
'use strict';if(typeof module!=='undefined'&&module!==null&&eval('typeof require')!=='undefined'&&eval('require')!==null&&'main'in eval('require')&&eval('typeof require.main')!=='undefined'&&eval('require.main')!==null){var ORIGINAL_MAIN_MODULE=module;if(module!==eval('require.main')&&'paths'in module&&'paths'in eval('require.main')&&typeof __dirname!=='undefined'&&__dirname!==null)module.paths=eval('require.main.paths').concat(module.paths.filter(function(path){return eval('require.main.paths').includes(path)}))};if(typeof window==='undefined'||window===null)var window=(typeof global==='undefined'||global===null)?{}:global;(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 {
|
|
7
|
-
var a = factory();
|
|
8
|
-
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
|
|
9
|
-
}
|
|
10
|
-
})(this, function() {
|
|
11
|
-
return /******/ (function() { // webpackBootstrap
|
|
12
|
-
/******/ var __webpack_modules__ = ({
|
|
13
|
-
|
|
14
|
-
/***/ 2:
|
|
15
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
16
|
-
|
|
17
|
-
"use strict";
|
|
18
|
-
__webpack_require__.r(__webpack_exports__);
|
|
19
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
20
|
-
/* harmony export */ clearRequireCache: function() { return /* binding */ clearRequireCache; },
|
|
21
|
-
/* harmony export */ currentRequire: function() { return /* binding */ currentRequire; },
|
|
22
|
-
/* harmony export */ determineGlobalContext: function() { return /* binding */ determineGlobalContext; },
|
|
23
|
-
/* harmony export */ isImportSyntaxSupported: function() { return /* binding */ isImportSyntaxSupported; },
|
|
24
|
-
/* harmony export */ isolatedRequire: function() { return /* binding */ isolatedRequire; },
|
|
25
|
-
/* harmony export */ optionalImport: function() { return /* binding */ optionalImport; },
|
|
26
|
-
/* harmony export */ optionalRequire: function() { return /* binding */ optionalRequire; }
|
|
27
|
-
/* harmony export */ });
|
|
28
|
-
/* module decorator */ module = __webpack_require__.hmd(module);
|
|
29
1
|
// #!/usr/bin/env babel-node
|
|
30
2
|
// -*- coding: utf-8 -*-
|
|
31
|
-
/** @module module
|
|
3
|
+
/** @module module */
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
/* !
|
|
32
7
|
region header
|
|
33
8
|
[Project page](https://torben.website/clientnode)
|
|
34
9
|
|
|
@@ -41,140 +16,79 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
41
16
|
naming 3.0 unported license.
|
|
42
17
|
See https://creativecommons.org/licenses/by/3.0/deed.de
|
|
43
18
|
endregion
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
e.code = 'MODULE_NOT_FOUND';
|
|
58
|
-
throw e;
|
|
59
|
-
}
|
|
60
|
-
webpackEmptyContext.keys = function() { return []; };
|
|
61
|
-
webpackEmptyContext.resolve = webpackEmptyContext;
|
|
62
|
-
webpackEmptyContext.id = 6;
|
|
63
|
-
module.exports = webpackEmptyContext;
|
|
19
|
+
*/
|
|
20
|
+
export const determineGlobalContext = () => {
|
|
21
|
+
if (typeof globalThis === 'undefined') {
|
|
22
|
+
if (typeof window === 'undefined') {
|
|
23
|
+
if (typeof global === 'undefined') return typeof module === 'undefined' ? {} : module;
|
|
24
|
+
if (Object.prototype.hasOwnProperty.call(global, 'window')) return global.window;
|
|
25
|
+
return global;
|
|
26
|
+
}
|
|
27
|
+
return window;
|
|
28
|
+
}
|
|
29
|
+
return globalThis;
|
|
30
|
+
};
|
|
31
|
+
const globalContext = determineGlobalContext();
|
|
64
32
|
|
|
65
|
-
|
|
33
|
+
// Make preprocessed require function available at runtime.
|
|
34
|
+
export const currentRequire = typeof globalContext.require === 'undefined' ? null : globalContext.require;
|
|
35
|
+
export const optionalRequire = id => {
|
|
36
|
+
try {
|
|
37
|
+
return currentRequire ? currentRequire(id) : null;
|
|
38
|
+
} catch {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
export const clearRequireCache = (cache = currentRequire?.cache || require.cache) => {
|
|
43
|
+
const backup = {};
|
|
44
|
+
for (const [key, module] of Object.entries(cache)) {
|
|
45
|
+
backup[key] = module;
|
|
46
|
+
delete cache[key];
|
|
47
|
+
}
|
|
48
|
+
return backup;
|
|
49
|
+
};
|
|
50
|
+
const restoreRequireCache = (cache = currentRequire?.cache || require.cache, backup) => {
|
|
51
|
+
clearRequireCache();
|
|
52
|
+
for (const [key, module] of Object.entries(backup)) cache[key] = module;
|
|
53
|
+
};
|
|
54
|
+
export const isolatedRequire = (path, requireFunction = currentRequire || require) => {
|
|
55
|
+
const backup = clearRequireCache(requireFunction.cache);
|
|
56
|
+
try {
|
|
57
|
+
return requireFunction(path);
|
|
58
|
+
// eslint-disable-next-line no-useless-catch
|
|
59
|
+
} catch (error) {
|
|
60
|
+
throw error;
|
|
61
|
+
} finally {
|
|
62
|
+
restoreRequireCache(requireFunction.cache, backup);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
/******/ // expose the module cache
|
|
97
|
-
/******/ __webpack_require__.c = __webpack_module_cache__;
|
|
98
|
-
/******/
|
|
99
|
-
/************************************************************************/
|
|
100
|
-
/******/ /* webpack/runtime/define property getters */
|
|
101
|
-
/******/ !function() {
|
|
102
|
-
/******/ // define getter/value functions for harmony exports
|
|
103
|
-
/******/ __webpack_require__.d = function(exports, definition) {
|
|
104
|
-
/******/ if(Array.isArray(definition)) {
|
|
105
|
-
/******/ var i = 0;
|
|
106
|
-
/******/ while(i < definition.length) {
|
|
107
|
-
/******/ var key = definition[i++];
|
|
108
|
-
/******/ var binding = definition[i++];
|
|
109
|
-
/******/ if(!__webpack_require__.o(exports, key)) {
|
|
110
|
-
/******/ if(binding === 0) {
|
|
111
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
|
|
112
|
-
/******/ } else {
|
|
113
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
|
|
114
|
-
/******/ }
|
|
115
|
-
/******/ } else if(binding === 0) { i++; }
|
|
116
|
-
/******/ }
|
|
117
|
-
/******/ } else {
|
|
118
|
-
/******/ for(var key in definition) {
|
|
119
|
-
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
120
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
121
|
-
/******/ }
|
|
122
|
-
/******/ }
|
|
123
|
-
/******/ }
|
|
124
|
-
/******/ };
|
|
125
|
-
/******/ }();
|
|
126
|
-
/******/
|
|
127
|
-
/******/ /* webpack/runtime/global */
|
|
128
|
-
/******/ !function() {
|
|
129
|
-
/******/ __webpack_require__.g = (function() {
|
|
130
|
-
/******/ if (typeof globalThis === 'object') return globalThis;
|
|
131
|
-
/******/ try {
|
|
132
|
-
/******/ return this || new Function('return this')();
|
|
133
|
-
/******/ } catch (e) {
|
|
134
|
-
/******/ if (typeof window === 'object') return window;
|
|
135
|
-
/******/ }
|
|
136
|
-
/******/ })();
|
|
137
|
-
/******/ }();
|
|
138
|
-
/******/
|
|
139
|
-
/******/ /* webpack/runtime/harmony module decorator */
|
|
140
|
-
/******/ !function() {
|
|
141
|
-
/******/ __webpack_require__.hmd = function(module) {
|
|
142
|
-
/******/ module = Object.create(module);
|
|
143
|
-
/******/ if (!module.children) module.children = [];
|
|
144
|
-
/******/ Object.defineProperty(module, 'exports', {
|
|
145
|
-
/******/ enumerable: true,
|
|
146
|
-
/******/ set: function() {
|
|
147
|
-
/******/ throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);
|
|
148
|
-
/******/ }
|
|
149
|
-
/******/ });
|
|
150
|
-
/******/ return module;
|
|
151
|
-
/******/ };
|
|
152
|
-
/******/ }();
|
|
153
|
-
/******/
|
|
154
|
-
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
155
|
-
/******/ !function() {
|
|
156
|
-
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
|
|
157
|
-
/******/ }();
|
|
158
|
-
/******/
|
|
159
|
-
/******/ /* webpack/runtime/make namespace object */
|
|
160
|
-
/******/ !function() {
|
|
161
|
-
/******/ // define __esModule on exports
|
|
162
|
-
/******/ __webpack_require__.r = function(exports) {
|
|
163
|
-
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
164
|
-
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
165
|
-
/******/ }
|
|
166
|
-
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
167
|
-
/******/ };
|
|
168
|
-
/******/ }();
|
|
169
|
-
/******/
|
|
170
|
-
/************************************************************************/
|
|
171
|
-
/******/
|
|
172
|
-
/******/ // module cache are used so entry inlining is disabled
|
|
173
|
-
/******/ // startup
|
|
174
|
-
/******/ // Load entry module and return exports
|
|
175
|
-
/******/ var __webpack_exports__ = __webpack_require__(2);
|
|
176
|
-
/******/
|
|
177
|
-
/******/ return __webpack_exports__;
|
|
178
|
-
/******/ })()
|
|
179
|
-
;
|
|
180
|
-
});
|
|
66
|
+
// Make preprocessed import function available at runtime.
|
|
67
|
+
export const isImportSyntaxSupported = () => {
|
|
68
|
+
try {
|
|
69
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
70
|
+
new Function('import("data:text/javascript,")');
|
|
71
|
+
return true;
|
|
72
|
+
} catch {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
export const optionalImport = async (id, options = {}) => {
|
|
77
|
+
try {
|
|
78
|
+
return isImportSyntaxSupported() ?
|
|
79
|
+
/*
|
|
80
|
+
eslint-disable
|
|
81
|
+
@typescript-eslint/no-implied-eval,
|
|
82
|
+
@typescript-eslint/no-unsafe-call
|
|
83
|
+
*/
|
|
84
|
+
await new Function('options', `return import('${id}', options)`)(options) : await Promise.resolve(null);
|
|
85
|
+
/*
|
|
86
|
+
eslint-enable
|
|
87
|
+
@typescript-eslint/no-implied-eval,
|
|
88
|
+
@typescript-eslint/no-unsafe-call
|
|
89
|
+
*/
|
|
90
|
+
} catch {
|
|
91
|
+
return await Promise.resolve(null);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjIS91c3IvYmluL2VudiBiYWJlbC1ub2RlXG4vLyAtKi0gY29kaW5nOiB1dGYtOCAtKi1cbi8qKiBAbW9kdWxlIG1vZHVsZSAqL1xuJ3VzZSBzdHJpY3QnXG4vKiAhXG4gICAgcmVnaW9uIGhlYWRlclxuICAgIFtQcm9qZWN0IHBhZ2VdKGh0dHBzOi8vdG9yYmVuLndlYnNpdGUvY2xpZW50bm9kZSlcblxuICAgIENvcHlyaWdodCBUb3JiZW4gU2lja2VydCAoaW5mb1tcIn5hdH5cIl10b3JiZW4ud2Vic2l0ZSkgMTYuMTIuMjAxMlxuXG4gICAgTGljZW5zZVxuICAgIC0tLS0tLS1cblxuICAgIFRoaXMgbGlicmFyeSB3cml0dGVuIGJ5IFRvcmJlbiBTaWNrZXJ0IHN0YW5kcyB1bmRlciBhIGNyZWF0aXZlIGNvbW1vbnNcbiAgICBuYW1pbmcgMy4wIHVucG9ydGVkIGxpY2Vuc2UuXG4gICAgU2VlIGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvZGVlZC5kZVxuICAgIGVuZHJlZ2lvblxuKi9cbmltcG9ydCB0eXBlIHtGaXJzdFBhcmFtZXRlcn0gZnJvbSAnLi90eXBlJ1xuXG5leHBvcnQgY29uc3QgZGV0ZXJtaW5lR2xvYmFsQ29udGV4dCA9ICgpOiBQYXJ0aWFsPHR5cGVvZiBnbG9iYWxUaGlzPiA9PiB7XG4gICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZ2xvYmFsID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICByZXR1cm4gKCh0eXBlb2YgbW9kdWxlID09PSAndW5kZWZpbmVkJykgPyB7fSA6IG1vZHVsZSkgYXNcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIGdsb2JhbFRoaXNcblxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChnbG9iYWwsICd3aW5kb3cnKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2xvYmFsLndpbmRvd1xuXG4gICAgICAgICAgICByZXR1cm4gZ2xvYmFsXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2luZG93XG4gICAgfVxuXG4gICAgcmV0dXJuIGdsb2JhbFRoaXNcbn1cbmNvbnN0IGdsb2JhbENvbnRleHQgPSBkZXRlcm1pbmVHbG9iYWxDb250ZXh0KClcblxuLy8gTWFrZSBwcmVwcm9jZXNzZWQgcmVxdWlyZSBmdW5jdGlvbiBhdmFpbGFibGUgYXQgcnVudGltZS5cbmV4cG9ydCBjb25zdCBjdXJyZW50UmVxdWlyZTogbnVsbCB8IHR5cGVvZiByZXF1aXJlID1cbiAgICB0eXBlb2YgZ2xvYmFsQ29udGV4dC5yZXF1aXJlID09PSAndW5kZWZpbmVkJyA/XG4gICAgICAgIG51bGwgOlxuICAgICAgICBnbG9iYWxDb250ZXh0LnJlcXVpcmUgYXMgbnVsbCB8IHR5cGVvZiByZXF1aXJlXG5leHBvcnQgY29uc3Qgb3B0aW9uYWxSZXF1aXJlID0gPFQgPSB1bmtub3duPihpZDogc3RyaW5nKTogbnVsbCB8IFQgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50UmVxdWlyZSA/IGN1cnJlbnRSZXF1aXJlKGlkKSBhcyBUIDogbnVsbFxuICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgIH1cbn1cbmV4cG9ydCBjb25zdCBjbGVhclJlcXVpcmVDYWNoZSA9IChcbiAgICBjYWNoZTogdHlwZW9mIHJlcXVpcmUuY2FjaGUgPSBjdXJyZW50UmVxdWlyZT8uY2FjaGUgfHwgcmVxdWlyZS5jYWNoZVxuKTogdHlwZW9mIHJlcXVpcmUuY2FjaGUgPT4ge1xuICAgIGNvbnN0IGJhY2t1cDogdHlwZW9mIHJlcXVpcmUuY2FjaGUgPSB7fVxuICAgIGZvciAoY29uc3QgW2tleSwgbW9kdWxlXSBvZiBPYmplY3QuZW50cmllcyhjYWNoZSkpIHtcbiAgICAgICAgYmFja3VwW2tleV0gPSBtb2R1bGVcbiAgICAgICAgZGVsZXRlIGNhY2hlW2tleV1cbiAgICB9XG5cbiAgICByZXR1cm4gYmFja3VwXG59XG5jb25zdCByZXN0b3JlUmVxdWlyZUNhY2hlID0gKFxuICAgIGNhY2hlOiB0eXBlb2YgcmVxdWlyZS5jYWNoZSA9IGN1cnJlbnRSZXF1aXJlPy5jYWNoZSB8fCByZXF1aXJlLmNhY2hlLFxuICAgIGJhY2t1cDogdHlwZW9mIHJlcXVpcmUuY2FjaGVcbikgPT4ge1xuICAgIGNsZWFyUmVxdWlyZUNhY2hlKClcblxuICAgIGZvciAoY29uc3QgW2tleSwgbW9kdWxlXSBvZiBPYmplY3QuZW50cmllcyhiYWNrdXApKVxuICAgICAgICBjYWNoZVtrZXldID0gbW9kdWxlXG59XG5leHBvcnQgY29uc3QgaXNvbGF0ZWRSZXF1aXJlID0gKFxuICAgIHBhdGg6IEZpcnN0UGFyYW1ldGVyPHR5cGVvZiByZXF1aXJlPixcbiAgICByZXF1aXJlRnVuY3Rpb246IHR5cGVvZiByZXF1aXJlID0gY3VycmVudFJlcXVpcmUgfHwgcmVxdWlyZVxuKTogUmV0dXJuVHlwZTx0eXBlb2YgcmVxdWlyZT4gPT4ge1xuICAgIGNvbnN0IGJhY2t1cCA9IGNsZWFyUmVxdWlyZUNhY2hlKHJlcXVpcmVGdW5jdGlvbi5jYWNoZSlcblxuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlRnVuY3Rpb24ocGF0aCBhcyB1bmtub3duIGFzIHN0cmluZykgYXNcbiAgICAgICAgICAgIFJldHVyblR5cGU8dHlwZW9mIHJlcXVpcmU+XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNhdGNoXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICB9IGZpbmFsbHkge1xuICAgICAgICByZXN0b3JlUmVxdWlyZUNhY2hlKHJlcXVpcmVGdW5jdGlvbi5jYWNoZSwgYmFja3VwKVxuICAgIH1cbn1cblxuLy8gTWFrZSBwcmVwcm9jZXNzZWQgaW1wb3J0IGZ1bmN0aW9uIGF2YWlsYWJsZSBhdCBydW50aW1lLlxuZXhwb3J0IGNvbnN0IGlzSW1wb3J0U3ludGF4U3VwcG9ydGVkID0gKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW1wbGllZC1ldmFsXG4gICAgICAgIG5ldyBGdW5jdGlvbignaW1wb3J0KFwiZGF0YTp0ZXh0L2phdmFzY3JpcHQsXCIpJylcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxufVxuZXhwb3J0IGNvbnN0IG9wdGlvbmFsSW1wb3J0ID0gYXN5bmMgPFQgPSB1bmtub3duPihcbiAgICBpZDogc3RyaW5nLCBvcHRpb25zID0ge31cbik6IFByb21pc2U8bnVsbCB8IFQ+ID0+IHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gaXNJbXBvcnRTeW50YXhTdXBwb3J0ZWQoKSA/XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgIGVzbGludC1kaXNhYmxlXG4gICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLWltcGxpZWQtZXZhbCxcbiAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcbiAgICAgICAgICAgICovXG4gICAgICAgICAgICBhd2FpdCAoKG5ldyBGdW5jdGlvbihcbiAgICAgICAgICAgICAgICAnb3B0aW9ucycsIGByZXR1cm4gaW1wb3J0KCcke2lkfScsIG9wdGlvbnMpYFxuICAgICAgICAgICAgKSkob3B0aW9ucykgYXMgUHJvbWlzZTxUPikgOlxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKG51bGwpXG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgIGVzbGludC1lbmFibGVcbiAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW1wbGllZC1ldmFsLFxuICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbFxuICAgICAgICAgICAgKi9cbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IFByb21pc2UucmVzb2x2ZShudWxsKVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsWUFBWTs7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0EsT0FBTyxNQUFNLHNCQUFzQixHQUFHLE1BQWtDO0VBQ3BFLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxFQUFFO0lBQ25DLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO01BQy9CLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUM3QixPQUFTLE9BQU8sTUFBTSxLQUFLLFdBQVcsR0FBSSxDQUFDLENBQUMsR0FBRyxNQUFNO01BR3pELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFDdEQsT0FBTyxNQUFNLENBQUMsTUFBTTtNQUV4QixPQUFPLE1BQU07SUFDakI7SUFFQSxPQUFPLE1BQU07RUFDakI7RUFFQSxPQUFPLFVBQVU7QUFDckIsQ0FBQztBQUNELE1BQU0sYUFBYSxHQUFHLHNCQUFzQixDQUFDLENBQUM7O0FBRTlDO0FBQ0EsT0FBTyxNQUFNLGNBQXFDLEdBQzlDLE9BQU8sYUFBYSxDQUFDLE9BQU8sS0FBSyxXQUFXLEdBQ3hDLElBQUksR0FDSixhQUFhLENBQUMsT0FBZ0M7QUFDdEQsT0FBTyxNQUFNLGVBQWUsR0FBaUIsRUFBVSxJQUFlO0VBQ2xFLElBQUk7SUFDQSxPQUFPLGNBQWMsR0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLEdBQVEsSUFBSTtFQUMxRCxDQUFDLENBQUMsTUFBTTtJQUNKLE9BQU8sSUFBSTtFQUNmO0FBQ0osQ0FBQztBQUNELE9BQU8sTUFBTSxpQkFBaUIsR0FBRyxDQUM3QixLQUEyQixHQUFHLGNBQWMsRUFBRSxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssS0FDN0M7RUFDdkIsTUFBTSxNQUE0QixHQUFHLENBQUMsQ0FBQztFQUN2QyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtJQUMvQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTTtJQUNwQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUM7RUFDckI7RUFFQSxPQUFPLE1BQU07QUFDakIsQ0FBQztBQUNELE1BQU0sbUJBQW1CLEdBQUcsQ0FDeEIsS0FBMkIsR0FBRyxjQUFjLEVBQUUsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQ3BFLE1BQTRCLEtBQzNCO0VBQ0QsaUJBQWlCLENBQUMsQ0FBQztFQUVuQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFDOUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU07QUFDM0IsQ0FBQztBQUNELE9BQU8sTUFBTSxlQUFlLEdBQUcsQ0FDM0IsSUFBb0MsRUFDcEMsZUFBK0IsR0FBRyxjQUFjLElBQUksT0FBTyxLQUM5QjtFQUM3QixNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0VBRXZELElBQUk7SUFDQSxPQUFPLGVBQWUsQ0FBQyxJQUF5QixDQUFDO0lBRWpEO0VBQ0osQ0FBQyxDQUFDLE9BQU8sS0FBSyxFQUFFO0lBQ1osTUFBTSxLQUFLO0VBQ2YsQ0FBQyxTQUFTO0lBQ04sbUJBQW1CLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7RUFDdEQ7QUFDSixDQUFDOztBQUVEO0FBQ0EsT0FBTyxNQUFNLHVCQUF1QixHQUFHLE1BQU07RUFDekMsSUFBSTtJQUNBO0lBQ0EsSUFBSSxRQUFRLENBQUMsaUNBQWlDLENBQUM7SUFDL0MsT0FBTyxJQUFJO0VBQ2YsQ0FBQyxDQUFDLE1BQU07SUFDSixPQUFPLEtBQUs7RUFDaEI7QUFDSixDQUFDO0FBQ0QsT0FBTyxNQUFNLGNBQWMsR0FBRyxPQUMxQixFQUFVLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUNKO0VBQ3BCLElBQUk7SUFDQSxPQUFPLHVCQUF1QixDQUFDLENBQUM7SUFDNUI7QUFDWjtBQUNBO0FBQ0E7QUFDQTtJQUNZLE1BQVEsSUFBSSxRQUFRLENBQ2hCLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxhQUNuQyxDQUFDLENBQUUsT0FBTyxDQUFnQixHQUMxQixNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzNCO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7RUFDSSxDQUFDLENBQUMsTUFBTTtJQUNKLE9BQU8sTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztFQUN0QztBQUNKLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|