clientnode 4.0.1458 → 4.0.1460

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.
Files changed (142) hide show
  1. package/dist/Lock.js +83 -69
  2. package/dist/Logger.js +163 -798
  3. package/dist/Semaphore.js +46 -56
  4. package/dist/array.js +337 -668
  5. package/dist/cli.js +37 -45
  6. package/dist/constants.js +110 -198
  7. package/dist/context.js +25 -301
  8. package/dist/cookie.js +48 -302
  9. package/dist/data-transfer.js +166 -817
  10. package/dist/datetime.js +241 -1149
  11. package/dist/domNode.js +277 -532
  12. package/dist/expression/evaluators.js +234 -1231
  13. package/dist/expression/helper.js +82 -102
  14. package/dist/expression/index.js +10 -1383
  15. package/dist/expression/indicator-functions.js +21 -316
  16. package/dist/expression/type.js +5 -1
  17. package/dist/filesystem.js +324 -385
  18. package/dist/function.js +51 -93
  19. package/dist/index.js +26 -3274
  20. package/dist/indicators.js +68 -519
  21. package/dist/module.js +99 -233
  22. package/dist/number.js +25 -498
  23. package/dist/object.js +791 -958
  24. package/dist/process.js +38 -298
  25. package/dist/property-types.js +96 -17
  26. package/dist/scope.js +56 -2134
  27. package/dist/string.js +603 -1030
  28. package/dist/test-helper.js +171 -639
  29. package/dist/type.js +9 -4
  30. package/dist/utility.js +91 -408
  31. package/package.json +2 -2
  32. package/dist/Lock.d.ts +0 -39
  33. package/dist/Logger.d.ts +0 -102
  34. package/dist/Semaphore.d.ts +0 -29
  35. package/dist/array.d.ts +0 -150
  36. package/dist/bundle/Lock.js +0 -86
  37. package/dist/bundle/Logger.js +0 -820
  38. package/dist/bundle/Semaphore.js +0 -75
  39. package/dist/bundle/array.js +0 -783
  40. package/dist/bundle/cli.js +0 -59
  41. package/dist/bundle/constants.js +0 -214
  42. package/dist/bundle/context.js +0 -316
  43. package/dist/bundle/cookie.js +0 -338
  44. package/dist/bundle/data-transfer.js +0 -867
  45. package/dist/bundle/datetime.js +0 -1190
  46. package/dist/bundle/domNode.js +0 -586
  47. package/dist/bundle/expression/evaluators.js +0 -1270
  48. package/dist/bundle/expression/helper.js +0 -117
  49. package/dist/bundle/expression/index.js +0 -1399
  50. package/dist/bundle/expression/indicator-functions.js +0 -332
  51. package/dist/bundle/expression/type.js +0 -16
  52. package/dist/bundle/filesystem.js +0 -472
  53. package/dist/bundle/function.js +0 -117
  54. package/dist/bundle/index.js +0 -3291
  55. package/dist/bundle/indicators.js +0 -572
  56. package/dist/bundle/module.js +0 -250
  57. package/dist/bundle/number.js +0 -534
  58. package/dist/bundle/object.js +0 -1146
  59. package/dist/bundle/process.js +0 -328
  60. package/dist/bundle/property-types.js +0 -36
  61. package/dist/bundle/scope.js +0 -2163
  62. package/dist/bundle/string.js +0 -1252
  63. package/dist/bundle/test-helper.js +0 -808
  64. package/dist/bundle/type.js +0 -16
  65. package/dist/bundle/utility.js +0 -456
  66. package/dist/cli.d.ts +0 -31
  67. package/dist/compatible/Lock.js +0 -86
  68. package/dist/compatible/Logger.js +0 -820
  69. package/dist/compatible/Semaphore.js +0 -75
  70. package/dist/compatible/array.js +0 -783
  71. package/dist/compatible/cli.js +0 -59
  72. package/dist/compatible/constants.js +0 -214
  73. package/dist/compatible/context.js +0 -316
  74. package/dist/compatible/cookie.js +0 -338
  75. package/dist/compatible/data-transfer.js +0 -867
  76. package/dist/compatible/datetime.js +0 -1190
  77. package/dist/compatible/domNode.js +0 -586
  78. package/dist/compatible/expression/evaluators.js +0 -1270
  79. package/dist/compatible/expression/helper.js +0 -117
  80. package/dist/compatible/expression/index.js +0 -1399
  81. package/dist/compatible/expression/indicator-functions.js +0 -332
  82. package/dist/compatible/expression/type.js +0 -16
  83. package/dist/compatible/filesystem.js +0 -472
  84. package/dist/compatible/function.js +0 -117
  85. package/dist/compatible/index.js +0 -3291
  86. package/dist/compatible/indicators.js +0 -572
  87. package/dist/compatible/module.js +0 -250
  88. package/dist/compatible/number.js +0 -534
  89. package/dist/compatible/object.js +0 -1146
  90. package/dist/compatible/process.js +0 -328
  91. package/dist/compatible/property-types.js +0 -36
  92. package/dist/compatible/scope.js +0 -2163
  93. package/dist/compatible/string.js +0 -1252
  94. package/dist/compatible/test-helper.js +0 -808
  95. package/dist/compatible/type.js +0 -16
  96. package/dist/compatible/utility.js +0 -456
  97. package/dist/constants.d.ts +0 -99
  98. package/dist/context.d.ts +0 -8
  99. package/dist/cookie.d.ts +0 -31
  100. package/dist/data-transfer.d.ts +0 -45
  101. package/dist/datetime.d.ts +0 -37
  102. package/dist/domNode.d.ts +0 -82
  103. package/dist/expression/evaluators.d.ts +0 -55
  104. package/dist/expression/helper.d.ts +0 -4
  105. package/dist/expression/index.d.ts +0 -7
  106. package/dist/expression/indicator-functions.d.ts +0 -14
  107. package/dist/expression/type.d.ts +0 -70
  108. package/dist/filesystem.d.ts +0 -143
  109. package/dist/function.d.ts +0 -20
  110. package/dist/index.d.ts +0 -23
  111. package/dist/indicators.d.ts +0 -68
  112. package/dist/module.d.ts +0 -8
  113. package/dist/number.d.ts +0 -35
  114. package/dist/object.d.ts +0 -231
  115. package/dist/process.d.ts +0 -22
  116. package/dist/property-types.d.ts +0 -460
  117. package/dist/scope.d.ts +0 -44
  118. package/dist/string.d.ts +0 -312
  119. package/dist/test/Lock.d.ts +0 -1
  120. package/dist/test/Logger.d.ts +0 -1
  121. package/dist/test/Semaphore.d.ts +0 -1
  122. package/dist/test/array.d.ts +0 -1
  123. package/dist/test/cookie.d.ts +0 -1
  124. package/dist/test/data-transfer.d.ts +0 -1
  125. package/dist/test/datetime.d.ts +0 -1
  126. package/dist/test/domNode.d.ts +0 -1
  127. package/dist/test/expression/evaluators.d.ts +0 -1
  128. package/dist/test/expression/helper.d.ts +0 -1
  129. package/dist/test/expression/indicator-functions.d.ts +0 -1
  130. package/dist/test/filesystem.d.ts +0 -1
  131. package/dist/test/function.d.ts +0 -1
  132. package/dist/test/indicators.d.ts +0 -1
  133. package/dist/test/number.d.ts +0 -1
  134. package/dist/test/object.d.ts +0 -1
  135. package/dist/test/process.d.ts +0 -1
  136. package/dist/test/property-types.d.ts +0 -1
  137. package/dist/test/scope.d.ts +0 -1
  138. package/dist/test/string.d.ts +0 -1
  139. package/dist/test/utility.d.ts +0 -1
  140. package/dist/test-helper.d.ts +0 -143
  141. package/dist/type.d.ts +0 -230
  142. package/dist/utility.d.ts +0 -44
@@ -1,83 +1,7 @@
1
- if(typeof window==='undefined'||window===null)var window=(typeof global==='undefined'||global===null)?{}:global;import * as __WEBPACK_EXTERNAL_MODULE_core_js_modules_es_array_includes_js_66c3fd7d__ from "core-js/modules/es.array.includes.js";
2
- /******/ var __webpack_modules__ = ([
3
- /* 0 */
4
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5
-
6
- var x = function(y) {
7
- var x = {}; __webpack_require__.d(x, y); return x
8
- }
9
- var y = function(x) { return function() { return x; }; }
10
- module.exports = x({ });
11
-
12
- /***/ })
13
- /******/ ]);
14
- /************************************************************************/
15
- /******/ // The module cache
16
- /******/ var __webpack_module_cache__ = {};
17
- /******/
18
- /******/ // The require function
19
- /******/ function __webpack_require__(moduleId) {
20
- /******/ // Check if module is in cache
21
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
22
- /******/ if (cachedModule !== undefined) {
23
- /******/ return cachedModule.exports;
24
- /******/ }
25
- /******/ // Create a new module (and put it into the cache)
26
- /******/ var module = __webpack_module_cache__[moduleId] = {
27
- /******/ // no module.id needed
28
- /******/ // no module.loaded needed
29
- /******/ exports: {}
30
- /******/ };
31
- /******/
32
- /******/ // Execute the module function
33
- /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
34
- /******/
35
- /******/ // Return the exports of the module
36
- /******/ return module.exports;
37
- /******/ }
38
- /******/
39
- /************************************************************************/
40
- /******/ /* webpack/runtime/define property getters */
41
- /******/ !function() {
42
- /******/ // define getter/value functions for harmony exports
43
- /******/ __webpack_require__.d = function(exports, definition) {
44
- /******/ if(Array.isArray(definition)) {
45
- /******/ var i = 0;
46
- /******/ while(i < definition.length) {
47
- /******/ var key = definition[i++];
48
- /******/ var binding = definition[i++];
49
- /******/ if(!__webpack_require__.o(exports, key)) {
50
- /******/ if(binding === 0) {
51
- /******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
52
- /******/ } else {
53
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
54
- /******/ }
55
- /******/ } else if(binding === 0) { i++; }
56
- /******/ }
57
- /******/ } else {
58
- /******/ for(var key in definition) {
59
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
60
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
61
- /******/ }
62
- /******/ }
63
- /******/ }
64
- /******/ };
65
- /******/ }();
66
- /******/
67
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
68
- /******/ !function() {
69
- /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
70
- /******/ }();
71
- /******/
72
- /************************************************************************/
73
- var __webpack_exports__ = {};
74
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
75
- /* harmony export */ b: function() { return /* binding */ viewArrayAsScope; },
76
- /* harmony export */ x: function() { return /* binding */ _viewObjectAsScope; }
77
- /* harmony export */ });
78
- /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
79
1
  // #!/usr/bin/env babel-node
80
2
  // -*- coding: utf-8 -*-
3
+ 'use strict';
4
+
81
5
  /* !
82
6
  region header
83
7
  [Project page](https://torben.website/clientnode)
@@ -91,27 +15,83 @@ var __webpack_exports__ = {};
91
15
  naming 3.0 unported license.
92
16
  See https://creativecommons.org/licenses/by/3.0/deed.de
93
17
  endregion
94
- */function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t.return||t.return()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}var viewArrayAsScope=function viewArrayAsScope(data,childrenPropertyNames,propertyReferenceKeys){return new Proxy(data,{ownKeys:function ownKeys(target){return Reflect.ownKeys(target)},get:function get(target,name){var _iterator=_createForOfIteratorHelper(target),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var element=_step.value;var _iterator2=_createForOfIteratorHelper(propertyReferenceKeys),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var key=_step2.value;if(element[key]===name){// NOTE: Type[keyof Type]
95
- // NOTE: ScopeType[keyof ScopeType]
96
- // type ScopeValueType = object
97
- /*
98
- eslint-disable
99
- @typescript-eslint/no-unnecessary-type-arguments
100
- */return _viewObjectAsScope(element,childrenPropertyNames,propertyReferenceKeys);/*
101
- eslint-enable
102
- @typescript-eslint/no-unnecessary-type-arguments
103
- */}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}}}catch(err){_iterator.e(err)}finally{_iterator.f()}return undefined},set:function set(target,name,value){var index=0;var _iterator3=_createForOfIteratorHelper(target),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var item=_step3.value;var _iterator4=_createForOfIteratorHelper(propertyReferenceKeys),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var key=_step4.value;if(item[key]===name){target[index]=value;return true}}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}index+=1}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}return false}})};var _viewObjectAsScope=function viewObjectAsScope(data,childrenPropertyNames,propertyReferenceKeys){if(childrenPropertyNames===void 0){childrenPropertyNames=["children"]}if(propertyReferenceKeys===void 0){propertyReferenceKeys=["name"]}return new Proxy(data,{ownKeys:function ownKeys(target){return Reflect.ownKeys(target)},get:function get(target,name){var value=target[name];if(Object.prototype.hasOwnProperty.call(target,name)){if(childrenPropertyNames.includes(name)&&Array.isArray(value)){// NOTE: Type[keyof Type]
104
- // NOTE: ScopeType[keyof ScopeType]
105
- return viewArrayAsScope(value,childrenPropertyNames,propertyReferenceKeys)}if(value!==null&&_typeof(value)==="object"){// NOTE: Type[keyof Type]
106
- // NOTE: ScopeType[keyof ScopeType]
107
- // type ScopeValueType = object
108
- /*
109
- eslint-disable
110
- @typescript-eslint/no-unnecessary-type-arguments
111
- */return _viewObjectAsScope(value,childrenPropertyNames,propertyReferenceKeys);/*
112
- eslint-enable
113
- @typescript-eslint/no-unnecessary-type-arguments
114
- */}return value}return undefined},set:function set(target,name,value){if(Object.prototype.hasOwnProperty.call(target,name))if(Object.prototype.hasOwnProperty.call(target,name)){target[name]=value;return true}return false}})};
115
- var __webpack_exports__viewArrayAsScope = __webpack_exports__.b;
116
- var __webpack_exports__viewObjectAsScope = __webpack_exports__.x;
117
- export { __webpack_exports__viewArrayAsScope as viewArrayAsScope, __webpack_exports__viewObjectAsScope as viewObjectAsScope };
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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