clientnode 4.0.1436 → 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
|
@@ -1,115 +1,7 @@
|
|
|
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(require("core-js/modules/es.array.includes.js"));
|
|
4
|
-
else if(typeof define === 'function' && define.amd)
|
|
5
|
-
define(["core-js/modules/es.array.includes.js"], factory);
|
|
6
|
-
else {
|
|
7
|
-
var a = typeof exports === 'object' ? factory(require("core-js/modules/es.array.includes.js")) : factory(root["core-js/modules/es.array.includes.js"]);
|
|
8
|
-
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
|
|
9
|
-
}
|
|
10
|
-
})(this, function(__WEBPACK_EXTERNAL_MODULE__0__) {
|
|
11
|
-
return /******/ (function() { // webpackBootstrap
|
|
12
|
-
/******/ "use strict";
|
|
13
|
-
/******/ var __webpack_modules__ = ([
|
|
14
|
-
/* 0 */
|
|
15
|
-
/***/ (function(module) {
|
|
16
|
-
|
|
17
|
-
module.exports = __WEBPACK_EXTERNAL_MODULE__0__;
|
|
18
|
-
|
|
19
|
-
/***/ })
|
|
20
|
-
/******/ ]);
|
|
21
|
-
/************************************************************************/
|
|
22
|
-
/******/ // The module cache
|
|
23
|
-
/******/ var __webpack_module_cache__ = {};
|
|
24
|
-
/******/
|
|
25
|
-
/******/ // The require function
|
|
26
|
-
/******/ function __webpack_require__(moduleId) {
|
|
27
|
-
/******/ // Check if module is in cache
|
|
28
|
-
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
29
|
-
/******/ if (cachedModule !== undefined) {
|
|
30
|
-
/******/ return cachedModule.exports;
|
|
31
|
-
/******/ }
|
|
32
|
-
/******/ // Create a new module (and put it into the cache)
|
|
33
|
-
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
34
|
-
/******/ // no module.id needed
|
|
35
|
-
/******/ // no module.loaded needed
|
|
36
|
-
/******/ exports: {}
|
|
37
|
-
/******/ };
|
|
38
|
-
/******/
|
|
39
|
-
/******/ // Execute the module function
|
|
40
|
-
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
41
|
-
/******/
|
|
42
|
-
/******/ // Return the exports of the module
|
|
43
|
-
/******/ return module.exports;
|
|
44
|
-
/******/ }
|
|
45
|
-
/******/
|
|
46
|
-
/************************************************************************/
|
|
47
|
-
/******/ /* webpack/runtime/compat get default export */
|
|
48
|
-
/******/ !function() {
|
|
49
|
-
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
50
|
-
/******/ __webpack_require__.n = function(module) {
|
|
51
|
-
/******/ var getter = module && module.__esModule ?
|
|
52
|
-
/******/ function() { return module['default']; } :
|
|
53
|
-
/******/ function() { return module; };
|
|
54
|
-
/******/ __webpack_require__.d(getter, { a: getter });
|
|
55
|
-
/******/ return getter;
|
|
56
|
-
/******/ };
|
|
57
|
-
/******/ }();
|
|
58
|
-
/******/
|
|
59
|
-
/******/ /* webpack/runtime/define property getters */
|
|
60
|
-
/******/ !function() {
|
|
61
|
-
/******/ // define getter/value functions for harmony exports
|
|
62
|
-
/******/ __webpack_require__.d = function(exports, definition) {
|
|
63
|
-
/******/ if(Array.isArray(definition)) {
|
|
64
|
-
/******/ var i = 0;
|
|
65
|
-
/******/ while(i < definition.length) {
|
|
66
|
-
/******/ var key = definition[i++];
|
|
67
|
-
/******/ var binding = definition[i++];
|
|
68
|
-
/******/ if(!__webpack_require__.o(exports, key)) {
|
|
69
|
-
/******/ if(binding === 0) {
|
|
70
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
|
|
71
|
-
/******/ } else {
|
|
72
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
|
|
73
|
-
/******/ }
|
|
74
|
-
/******/ } else if(binding === 0) { i++; }
|
|
75
|
-
/******/ }
|
|
76
|
-
/******/ } else {
|
|
77
|
-
/******/ for(var key in definition) {
|
|
78
|
-
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
79
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
80
|
-
/******/ }
|
|
81
|
-
/******/ }
|
|
82
|
-
/******/ }
|
|
83
|
-
/******/ };
|
|
84
|
-
/******/ }();
|
|
85
|
-
/******/
|
|
86
|
-
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
87
|
-
/******/ !function() {
|
|
88
|
-
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
|
|
89
|
-
/******/ }();
|
|
90
|
-
/******/
|
|
91
|
-
/******/ /* webpack/runtime/make namespace object */
|
|
92
|
-
/******/ !function() {
|
|
93
|
-
/******/ // define __esModule on exports
|
|
94
|
-
/******/ __webpack_require__.r = function(exports) {
|
|
95
|
-
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
96
|
-
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
97
|
-
/******/ }
|
|
98
|
-
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
99
|
-
/******/ };
|
|
100
|
-
/******/ }();
|
|
101
|
-
/******/
|
|
102
|
-
/************************************************************************/
|
|
103
|
-
var __webpack_exports__ = {};
|
|
104
|
-
__webpack_require__.r(__webpack_exports__);
|
|
105
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
106
|
-
/* harmony export */ viewArrayAsScope: function() { return /* binding */ viewArrayAsScope; },
|
|
107
|
-
/* harmony export */ viewObjectAsScope: function() { return /* binding */ _viewObjectAsScope; }
|
|
108
|
-
/* harmony export */ });
|
|
109
|
-
/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
|
|
110
|
-
/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
111
1
|
// #!/usr/bin/env babel-node
|
|
112
2
|
// -*- coding: utf-8 -*-
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
113
5
|
/* !
|
|
114
6
|
region header
|
|
115
7
|
[Project page](https://torben.website/clientnode)
|
|
@@ -123,28 +15,83 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
123
15
|
naming 3.0 unported license.
|
|
124
16
|
See https://creativecommons.org/licenses/by/3.0/deed.de
|
|
125
17
|
endregion
|
|
126
|
-
*/
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
// NOTE: ScopeType[keyof ScopeType]
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
;
|
|
150
|
-
}
|
|
18
|
+
*/
|
|
19
|
+
import "core-js/modules/es.array.includes.js";
|
|
20
|
+
export const viewArrayAsScope = (data, childrenPropertyNames, propertyReferenceKeys) => new Proxy(data, {
|
|
21
|
+
ownKeys(target) {
|
|
22
|
+
return Reflect.ownKeys(target);
|
|
23
|
+
},
|
|
24
|
+
get(target, name) {
|
|
25
|
+
for (const element of target) for (const key of propertyReferenceKeys) if (element[key] === name) {
|
|
26
|
+
// NOTE: Type[keyof Type]
|
|
27
|
+
|
|
28
|
+
// NOTE: ScopeType[keyof ScopeType]
|
|
29
|
+
// type ScopeValueType = object
|
|
30
|
+
|
|
31
|
+
/*
|
|
32
|
+
eslint-disable
|
|
33
|
+
@typescript-eslint/no-unnecessary-type-arguments
|
|
34
|
+
*/
|
|
35
|
+
return viewObjectAsScope(element, childrenPropertyNames, propertyReferenceKeys);
|
|
36
|
+
/*
|
|
37
|
+
eslint-enable
|
|
38
|
+
@typescript-eslint/no-unnecessary-type-arguments
|
|
39
|
+
*/
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
},
|
|
43
|
+
set(target, name, value) {
|
|
44
|
+
let index = 0;
|
|
45
|
+
for (const item of target) {
|
|
46
|
+
for (const key of propertyReferenceKeys) if (item[key] === name) {
|
|
47
|
+
target[index] = value;
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
index += 1;
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
export const viewObjectAsScope = (data, childrenPropertyNames = ['children'], propertyReferenceKeys = ['name']) => new Proxy(data, {
|
|
56
|
+
ownKeys(target) {
|
|
57
|
+
return Reflect.ownKeys(target);
|
|
58
|
+
},
|
|
59
|
+
get(target, name) {
|
|
60
|
+
const value = target[name];
|
|
61
|
+
if (Object.prototype.hasOwnProperty.call(target, name)) {
|
|
62
|
+
if (childrenPropertyNames.includes(name) && Array.isArray(value)) {
|
|
63
|
+
// NOTE: Type[keyof Type]
|
|
64
|
+
|
|
65
|
+
// NOTE: ScopeType[keyof ScopeType]
|
|
66
|
+
|
|
67
|
+
return viewArrayAsScope(value, childrenPropertyNames, propertyReferenceKeys);
|
|
68
|
+
}
|
|
69
|
+
if (value !== null && typeof value === 'object') {
|
|
70
|
+
// NOTE: Type[keyof Type]
|
|
71
|
+
|
|
72
|
+
// NOTE: ScopeType[keyof ScopeType]
|
|
73
|
+
// type ScopeValueType = object
|
|
74
|
+
|
|
75
|
+
/*
|
|
76
|
+
eslint-disable
|
|
77
|
+
@typescript-eslint/no-unnecessary-type-arguments
|
|
78
|
+
*/
|
|
79
|
+
return viewObjectAsScope(value, childrenPropertyNames, propertyReferenceKeys);
|
|
80
|
+
/*
|
|
81
|
+
eslint-enable
|
|
82
|
+
@typescript-eslint/no-unnecessary-type-arguments
|
|
83
|
+
*/
|
|
84
|
+
}
|
|
85
|
+
return value;
|
|
86
|
+
}
|
|
87
|
+
return undefined;
|
|
88
|
+
},
|
|
89
|
+
set(target, name, value) {
|
|
90
|
+
if (Object.prototype.hasOwnProperty.call(target, name)) if (Object.prototype.hasOwnProperty.call(target, name)) {
|
|
91
|
+
target[name] = value;
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cHJlc3Npb24vaGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vICMhL3Vzci9iaW4vZW52IGJhYmVsLW5vZGVcbi8vIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLVxuJ3VzZSBzdHJpY3QnXG4vKiAhXG4gICAgcmVnaW9uIGhlYWRlclxuICAgIFtQcm9qZWN0IHBhZ2VdKGh0dHBzOi8vdG9yYmVuLndlYnNpdGUvY2xpZW50bm9kZSlcblxuICAgIENvcHlyaWdodCBUb3JiZW4gU2lja2VydCAoaW5mb1tcIn5hdH5cIl10b3JiZW4ud2Vic2l0ZSkgMTYuMTIuMjAxMlxuXG4gICAgTGljZW5zZVxuICAgIC0tLS0tLS1cblxuICAgIFRoaXMgbGlicmFyeSB3cml0dGVuIGJ5IFRvcmJlbiBTaWNrZXJ0IHN0YW5kcyB1bmRlciBhIGNyZWF0aXZlIGNvbW1vbnNcbiAgICBuYW1pbmcgMy4wIHVucG9ydGVkIGxpY2Vuc2UuXG4gICAgU2VlIGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvZGVlZC5kZVxuICAgIGVuZHJlZ2lvblxuKi9cbmltcG9ydCB0eXBlIHtNYXBwaW5nfSBmcm9tICcuLi8nXG5cbmltcG9ydCB0eXBlIHtCYXNpY1Njb3BlVHlwZX0gZnJvbSAnLi90eXBlJ1xuXG5leHBvcnQgY29uc3Qgdmlld0FycmF5QXNTY29wZSA9IDxcbiAgICBUeXBlIGV4dGVuZHMgQXJyYXk8TWFwcGluZzx1bmtub3duPj4sIFNjb3BlVHlwZSBleHRlbmRzIEJhc2ljU2NvcGVUeXBlXG4+KFxuICAgICAgICBkYXRhOiBUeXBlLFxuICAgICAgICBjaGlsZHJlblByb3BlcnR5TmFtZXM6IEFycmF5PHN0cmluZz4sXG4gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlS2V5czogQXJyYXk8c3RyaW5nPlxuICAgICk6IFNjb3BlVHlwZSA9PlxuICAgIG5ldyBQcm94eShkYXRhLCB7XG4gICAgICAgIG93bktleXModGFyZ2V0OiBUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldClcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KHRhcmdldDogVHlwZSwgbmFtZTogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGFyZ2V0KVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHByb3BlcnR5UmVmZXJlbmNlS2V5cylcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRba2V5IGFzIHVua25vd24gYXMgc3RyaW5nXSA9PT0gbmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogVHlwZVtrZXlvZiBUeXBlXVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBWYWx1ZVR5cGUgPSBNYXBwaW5nPHVua25vd24+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBTY29wZVR5cGVba2V5b2YgU2NvcGVUeXBlXVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZSBTY29wZVZhbHVlVHlwZSA9IG9iamVjdFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzbGludC1kaXNhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtYXJndW1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpZXdPYmplY3RBc1Njb3BlPFZhbHVlVHlwZT4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblByb3BlcnR5TmFtZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlSZWZlcmVuY2VLZXlzXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzbGludC1lbmFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1hcmd1bWVudHNcbiAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9LFxuICAgICAgICBzZXQodGFyZ2V0OiBUeXBlLCBuYW1lOiBzdHJpbmcgfCBzeW1ib2wsIHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgcHJvcGVydHlSZWZlcmVuY2VLZXlzKVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVtrZXkgYXMgdW5rbm93biBhcyBrZXlvZiB0eXBlb2YgaXRlbV0gPT09IG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICh0YXJnZXRbaW5kZXhdIGFzIHVua25vd24pID0gdmFsdWVcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDFcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICB9KSBhcyB1bmtub3duIGFzIFNjb3BlVHlwZVxuXG5leHBvcnQgY29uc3Qgdmlld09iamVjdEFzU2NvcGUgPSA8XG4gICAgVHlwZSBleHRlbmRzIE1hcHBpbmc8dW5rbm93bj4sXG4gICAgU2NvcGVUeXBlIGV4dGVuZHMgQmFzaWNTY29wZVR5cGUgPSBCYXNpY1Njb3BlVHlwZVxuPihcbiAgICAgICAgZGF0YTogVHlwZSxcbiAgICAgICAgY2hpbGRyZW5Qcm9wZXJ0eU5hbWVzID0gWydjaGlsZHJlbiddLFxuICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZUtleXMgPSBbJ25hbWUnXVxuICAgICk6IFNjb3BlVHlwZSA9PlxuICAgIG5ldyBQcm94eShkYXRhLCB7XG4gICAgICAgIG93bktleXModGFyZ2V0OiBUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldClcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KHRhcmdldDogVHlwZSwgbmFtZTogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRhcmdldFtuYW1lIGFzIGtleW9mIFR5cGVdXG5cbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBuYW1lKSkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5Qcm9wZXJ0eU5hbWVzLmluY2x1ZGVzKG5hbWUgYXMgc3RyaW5nKSAmJlxuICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBUeXBlW2tleW9mIFR5cGVdXG4gICAgICAgICAgICAgICAgICAgIHR5cGUgVmFsdWVUeXBlID0gQXJyYXk8TWFwcGluZzx1bmtub3duPj5cbiAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogU2NvcGVUeXBlW2tleW9mIFNjb3BlVHlwZV1cbiAgICAgICAgICAgICAgICAgICAgdHlwZSBTY29wZVZhbHVlVHlwZSA9IEFycmF5PEJhc2ljU2NvcGVUeXBlPlxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2aWV3QXJyYXlBc1Njb3BlPFZhbHVlVHlwZSwgU2NvcGVWYWx1ZVR5cGU+KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblByb3BlcnR5TmFtZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZUtleXNcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IFR5cGVba2V5b2YgVHlwZV1cbiAgICAgICAgICAgICAgICAgICAgdHlwZSBWYWx1ZVR5cGUgPSBNYXBwaW5nPHVua25vd24+XG4gICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IFNjb3BlVHlwZVtrZXlvZiBTY29wZVR5cGVdXG4gICAgICAgICAgICAgICAgICAgIC8vIHR5cGUgU2NvcGVWYWx1ZVR5cGUgPSBvYmplY3RcblxuICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgZXNsaW50LWRpc2FibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLWFyZ3VtZW50c1xuICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlld09iamVjdEFzU2NvcGU8VmFsdWVUeXBlPihcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGFzIFZhbHVlVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuUHJvcGVydHlOYW1lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UmVmZXJlbmNlS2V5c1xuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICBlc2xpbnQtZW5hYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1hcmd1bWVudHNcbiAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9LFxuICAgICAgICBzZXQodGFyZ2V0OiBUeXBlLCBuYW1lOiBzdHJpbmcgfCBzeW1ib2wsIHZhbHVlOiBUeXBlW2tleW9mIFR5cGVdKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwgbmFtZSkpXG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0YXJnZXQsIG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtuYW1lIGFzIGtleW9mIFR5cGVdID0gdmFsdWVcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICB9KSBhcyB1bmtub3duIGFzIFNjb3BlVHlwZVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsWUFBWTs7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYkE7QUFrQkEsT0FBTyxNQUFNLGdCQUFnQixHQUFHLENBR3hCLElBQVUsRUFDVixxQkFBb0MsRUFDcEMscUJBQW9DLEtBRXhDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtFQUNaLE9BQU8sQ0FBQyxNQUFZLEVBQUU7SUFDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztF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
|