@kontur.candy/tools 2.178.2 → 2.179.0
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/CHANGELOG.md +8 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +1 -1
- package/distr/Common/KCLangRuntimeUtils.js +25 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +2 -2
- package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +41 -21
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +39 -19
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
<a name="2.179.0"></a>
|
|
2
|
+
# [2.179.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.178.2...release/tools/v2.179.0) (2024-04-09)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **Tools:** Исправлена отдача map и unmap файлов ([cbbfd60](https://git.skbkontur.ru/ke/candy-utils/commit/cbbfd60))
|
|
8
|
+
|
|
1
9
|
<a name="2.178.2"></a>
|
|
2
10
|
## [2.178.2](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.178.0...release/tools/v2.178.2) (2024-03-13)
|
|
3
11
|
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL0RyYWZ0QWN0aW9ucy9GaWxlUHJvcGVydGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2ZXJFcnJvcnMgfSBmcm9tIFwiLi4vLi4vQ2FuZHlBcGlDbGllbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlUHJvcGVydGllcyBleHRlbmRzIEVycm9yVXBsb2FkRmlsZXMge1xuICAgIERlbWFuZGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgQWNjb3VudERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgQm9zc05hbWU6IHN0cmluZztcbiAgICBDb3JyZWN0RmlsZU5hbWU6IHN0cmluZztcbiAgICBGb3JtTmFtZTogc3RyaW5nO1xuICAgIElEUG9sOiBzdHJpbmc7XG4gICAgSU5OOiBzdHJpbmc7XG4gICAgSWRGaWxlUHJlZml4OiBzdHJpbmc7XG4gICAgS1BQOiBzdHJpbmc7XG4gICAgTXJpQ29kZTogc3RyaW5nO1xuICAgIFBheWVyTmFtZTogc3RyaW5nO1xuICAgINCY0J3QodCQ0JnQojogc3RyaW5nO1xuICAgIFByb3BlcnRpZXNWZXJzaW9uOiBzdHJpbmc7XG4gICAgVHlwZUluZjogc3RyaW5nO1xuICAgIGRvY0lkOiBzdHJpbmc7XG4gICAgZmlvUG9kcDogc3RyaW5nO1xuICAgIGZ1ZlVyaTogc3RyaW5nO1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGlkUG9sRnJvbUlkRmlsZTogc3RyaW5nO1xuICAgIG1yaUNvZGVQcm92aWRlZEJ5Rm9ybTogc3RyaW5nO1xuICAgIHByUG9kcDogc3RyaW5nO1xuICAgIHNlbmRlcklubjogc3RyaW5nO1xuICAgIHNlbmRlcktwcDogc3RyaW5nO1xuICAgINCS0LXRgNGB0J/RgNC+0LM6IHN0cmluZztcbiAgICDQmNC00KTQsNC50Ls6IHN0cmluZztcbiAgICDQmtC+0LTQndCeOiBzdHJpbmc7XG4gICAgUmVjb3JkQ291bnQ/OiBzdHJpbmc7XG4gICAgSXNMYXN0VmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvclVwbG9hZEZpbGVzIHtcbiAgICBlcnJvckNvZGU/OiBzdHJpbmc7XG4gICAgbWVzc2FnZT86IHN0cmluZztcbiAgICBzeXN0ZW1NZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZEZpbGVQcm9wZXJ0aWVzUmVzcG9uc2UgZXh0ZW5kcyBTZXJ2ZXJFcnJvclJlc3BvbnNlIHtcbiAgICBzb3VyY2VzVG90YWxDb3VudDogbnVtYmVyO1xuICAgIC8qKiDQodC10YDQuNCw0LvQuNC30L7QstCw0L3QvdGL0Lkg0LzQsNGB0YHQuNCyINGB0YHRi9C70L7QuiDQvdCwINC00YDQsNC50LIsINC60L7RgtC+0YDRi9C1INC40YHRgtGA0LXQsdC+0LLQsNC90LjRjyDQvtC/0YDQtdC00LXQu9C40LvQuCDQutCw0Lo6INGE0LDQudC70Ysg0L3QtSDQv9C+INGE0L7RgNC80LDRgtGDICovXG4gICAgaW52YWxpZFNvdXJjZURyaXZlQ29udGVudE5hbWVzOiBzdHJpbmc7XG4gICAgZnVmVXJpPzogc3RyaW5nO1xuICAgIC8qKiDQutC+0Lst0LLQviDQuNC90YHRgtCw0L3RgdC+0LIg0LIg0YDQsNGB0L/QsNGA0YjQtdC90L3Ri9GFINGE0LDQudC70LDRhSAqL1xuICAgIHByZXZEb2NzSW5zdGFuY2VzQ291bnQ/OiBzdHJpbmc7XG4gICAgZ2Z2Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckVycm9yUmVzcG9uc2Uge1xuICAgIHNlcnZlckVycm9yPzogU2VydmVyRXJyb3JzO1xuICAgIG1lc3NhZ2U/
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL0RyYWZ0QWN0aW9ucy9GaWxlUHJvcGVydGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2ZXJFcnJvcnMgfSBmcm9tIFwiLi4vLi4vQ2FuZHlBcGlDbGllbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlUHJvcGVydGllcyBleHRlbmRzIEVycm9yVXBsb2FkRmlsZXMge1xuICAgIERlbWFuZGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgQWNjb3VudERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgQm9zc05hbWU6IHN0cmluZztcbiAgICBDb3JyZWN0RmlsZU5hbWU6IHN0cmluZztcbiAgICBGb3JtTmFtZTogc3RyaW5nO1xuICAgIElEUG9sOiBzdHJpbmc7XG4gICAgSU5OOiBzdHJpbmc7XG4gICAgSWRGaWxlUHJlZml4OiBzdHJpbmc7XG4gICAgS1BQOiBzdHJpbmc7XG4gICAgTXJpQ29kZTogc3RyaW5nO1xuICAgIFBheWVyTmFtZTogc3RyaW5nO1xuICAgINCY0J3QodCQ0JnQojogc3RyaW5nO1xuICAgIFByb3BlcnRpZXNWZXJzaW9uOiBzdHJpbmc7XG4gICAgVHlwZUluZjogc3RyaW5nO1xuICAgIGRvY0lkOiBzdHJpbmc7XG4gICAgZmlvUG9kcDogc3RyaW5nO1xuICAgIGZ1ZlVyaTogc3RyaW5nO1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGlkUG9sRnJvbUlkRmlsZTogc3RyaW5nO1xuICAgIG1yaUNvZGVQcm92aWRlZEJ5Rm9ybTogc3RyaW5nO1xuICAgIHByUG9kcDogc3RyaW5nO1xuICAgIHNlbmRlcklubjogc3RyaW5nO1xuICAgIHNlbmRlcktwcDogc3RyaW5nO1xuICAgINCS0LXRgNGB0J/RgNC+0LM6IHN0cmluZztcbiAgICDQmNC00KTQsNC50Ls6IHN0cmluZztcbiAgICDQmtC+0LTQndCeOiBzdHJpbmc7XG4gICAgUmVjb3JkQ291bnQ/OiBzdHJpbmc7XG4gICAgSXNMYXN0VmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvclVwbG9hZEZpbGVzIHtcbiAgICBlcnJvckNvZGU/OiBzdHJpbmc7XG4gICAgbWVzc2FnZT86IHN0cmluZztcbiAgICBzeXN0ZW1NZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZEZpbGVQcm9wZXJ0aWVzUmVzcG9uc2UgZXh0ZW5kcyBTZXJ2ZXJFcnJvclJlc3BvbnNlIHtcbiAgICBzb3VyY2VzVG90YWxDb3VudDogbnVtYmVyO1xuICAgIC8qKiDQodC10YDQuNCw0LvQuNC30L7QstCw0L3QvdGL0Lkg0LzQsNGB0YHQuNCyINGB0YHRi9C70L7QuiDQvdCwINC00YDQsNC50LIsINC60L7RgtC+0YDRi9C1INC40YHRgtGA0LXQsdC+0LLQsNC90LjRjyDQvtC/0YDQtdC00LXQu9C40LvQuCDQutCw0Lo6INGE0LDQudC70Ysg0L3QtSDQv9C+INGE0L7RgNC80LDRgtGDICovXG4gICAgaW52YWxpZFNvdXJjZURyaXZlQ29udGVudE5hbWVzOiBzdHJpbmc7XG4gICAgZnVmVXJpPzogc3RyaW5nO1xuICAgIC8qKiDQutC+0Lst0LLQviDQuNC90YHRgtCw0L3RgdC+0LIg0LIg0YDQsNGB0L/QsNGA0YjQtdC90L3Ri9GFINGE0LDQudC70LDRhSAqL1xuICAgIHByZXZEb2NzSW5zdGFuY2VzQ291bnQ/OiBzdHJpbmc7XG4gICAgZ2Z2Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckVycm9yUmVzcG9uc2Uge1xuICAgIHNlcnZlckVycm9yPzogU2VydmVyRXJyb3JzO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVXBsb2FkRmlsZVByb3BlcnRpZXMge1xuICAgIGZ1ZlVyaT86IHN0cmluZztcbiAgICBnZnY6IHN0cmluZztcbiAgICBzb3VyY2VzVG90YWxDb3VudDogbnVtYmVyO1xuICAgIHByZXZEb2NzSW5zdGFuY2VzQ291bnQ6IG51bWJlcjtcbiAgICBpbnZhbGlkU291cmNlRHJpdmVDb250ZW50TmFtZXM6IHN0cmluZ1tdO1xuICAgIHNlcnZlckVycm9yPzogU2VydmVyRXJyb3JzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2Vsc1RvUGFydGlhbEZ1ZnNSZXNwb25zZSB7XG4gICAgcGFyc2VkOiBzdHJpbmdbXTtcbiAgICBmYWlsZWQ6IEV4Y2Vsc1RvUGFydGlhbEZ1ZnNGYWlsZWRbXTtcbn1cblxuaW50ZXJmYWNlIEV4Y2Vsc1RvUGFydGlhbEZ1ZnNGYWlsZWQge1xuICAgIGl0ZW0xOiBzdHJpbmc7XG4gICAgaXRlbTI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRGcm9tUGFydGlhbEZ1ZnNCeVBhdGhSZXNwb25zZSB7XG4gICAgdXBkYXRlZEl0ZW1zQ291bnQ6IG51bWJlcjtcbiAgICBhZGRlZEl0ZW1zQ291bnQ6IG51bWJlcjtcbn1cbiJdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -8,6 +8,7 @@ exports.KCLangRuntimeUtils = void 0;
|
|
|
8
8
|
var _big = _interopRequireDefault(require("big.js"));
|
|
9
9
|
var _ValidationHelper = require("../Engine/src/Engine/ValidationHelper");
|
|
10
10
|
var _AutocalcCommonFunctions = require("../Engine/src/Helpers/AutocalcCommonFunctions");
|
|
11
|
+
var _DateHelpers = require("../Engine/src/Helpers/DateHelpers");
|
|
11
12
|
var _TypingUtils = require("./TypingUtils");
|
|
12
13
|
const isBigSource = value => {
|
|
13
14
|
if (typeof value === "number" || typeof value === "string" || value instanceof _big.default) {
|
|
@@ -98,6 +99,17 @@ class KCLangRuntimeUtils {
|
|
|
98
99
|
}
|
|
99
100
|
return undefined;
|
|
100
101
|
}
|
|
102
|
+
getYear(value) {
|
|
103
|
+
var _Date;
|
|
104
|
+
return (_Date = new Date(value)) === null || _Date === void 0 ? void 0 : _Date.getFullYear();
|
|
105
|
+
}
|
|
106
|
+
dateTime(value) {
|
|
107
|
+
const date = (0, _TypingUtils.isNotNullOrEmpty)(value) ? (0, _DateHelpers.convertDate)(value) : undefined;
|
|
108
|
+
if (!date) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
return date;
|
|
112
|
+
}
|
|
101
113
|
sum(left, right) {
|
|
102
114
|
if (!isBigOrNumber(left) && !isBigOrNumber(right)) {
|
|
103
115
|
return undefined;
|
|
@@ -151,6 +163,18 @@ class KCLangRuntimeUtils {
|
|
|
151
163
|
const result = _ValidationHelper.ValidationHelper.isSnils(normalizedSnils);
|
|
152
164
|
return result;
|
|
153
165
|
}
|
|
166
|
+
isRegNumSfr(valueSelector, path) {
|
|
167
|
+
if (valueSelector == undefined) {
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
const value = valueSelector(path);
|
|
171
|
+
const normalizedRegNum = value === null || value === void 0 ? void 0 : value.replace(/[^0-9]/g, "");
|
|
172
|
+
if ((0, _TypingUtils.isNullOrWhiteSpace)(normalizedRegNum)) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
const result = _ValidationHelper.ValidationHelper.isRegNumSfr(normalizedRegNum);
|
|
176
|
+
return result;
|
|
177
|
+
}
|
|
154
178
|
isInn(valueSelector, path) {
|
|
155
179
|
if (valueSelector == undefined) {
|
|
156
180
|
return undefined;
|
|
@@ -239,4 +263,4 @@ class KCLangRuntimeUtils {
|
|
|
239
263
|
}
|
|
240
264
|
exports.KCLangRuntimeUtils = KCLangRuntimeUtils;
|
|
241
265
|
KCLangRuntimeUtils.kcLangUtilsName = "kcLangUtils";
|
|
242
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfVmFsaWRhdGlvbkhlbHBlciIsIl9BdXRvY2FsY0NvbW1vbkZ1bmN0aW9ucyIsIl9UeXBpbmdVdGlscyIsImlzQmlnU291cmNlIiwidmFsdWUiLCJCaWciLCJpc0JpZ09yTnVtYmVyIiwiS0NMYW5nUnVudGltZVV0aWxzIiwiYW5kIiwibGVmdCIsInJpZ2h0IiwidW5kZWZpbmVkIiwiZGl2aXNpb24iLCJ3cmFwRGVjaW1hbE9wZXJhbmQiLCJkaXYiLCJlcSIsImNtcCIsImdlIiwiZ3RlIiwiZ3QiLCJsZSIsImx0ZSIsImx0IiwibWludXMiLCJhcmd1bWVudCIsIm11bCIsIm11bHRpcGx5Iiwibm90Iiwibm90ZXEiLCJvciIsInJvdW5kIiwiZnJhY3Rpb25EaWdpdHMiLCJmbG9vciIsInN1bSIsImFkZCIsImFicyIsInhhYnMiLCJsZW5ndGgiLCJleGlzdHMiLCJ2YWx1ZVNlbGVjdG9yIiwicGF0aCIsImlzU25pbHMiLCJub3JtYWxpemVkU25pbHMiLCJyZXBsYWNlIiwiaXNOdWxsT3JXaGl0ZVNwYWNlIiwicmVzdWx0IiwiVmFsaWRhdGlvbkhlbHBlciIsImlzSW5uIiwiaXNWYWxpZEFjY291bnROdW1iZXIiLCJiaWsiLCJhY2NvdW50IiwiYmlrVmFsdWUiLCJhY2NvdW50VmFsdWUiLCJpc1ZhbGlkTWlyQ2FyZE51bWJlciIsImNvbnZlcnRUb0RlY2ltYWwiLCJjb252ZXJ0VG9TdHJpbmciLCJ0b1N0cmluZyIsInJlZ2V4TWF0Y2giLCJwYXR0ZXJuIiwiUmVnRXhwIiwidGVzdCIsIm9uZW9mIiwidmFsdWVzIiwiaW5kZXhPZiIsInZhbHVlQXNCaWciLCJzb21lIiwiaXRlbSIsInN1YnN0cmluZyIsInN0ciIsInN0YXJ0IiwiZW5kIiwiZGF0ZU5vdyIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJleHBvcnRzIiwia2NMYW5nVXRpbHNOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vQ29tbW9uL0tDTGFuZ1J1bnRpbWVVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmlnLCB7IEJpZ1NvdXJjZSB9IGZyb20gXCJiaWcuanNcIjtcblxuaW1wb3J0IHsgVmFsaWRhdGlvbkhlbHBlciB9IGZyb20gXCIuLi9FbmdpbmUvc3JjL0VuZ2luZS9WYWxpZGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgeyB3cmFwRGVjaW1hbE9wZXJhbmQgfSBmcm9tIFwiLi4vRW5naW5lL3NyYy9IZWxwZXJzL0F1dG9jYWxjQ29tbW9uRnVuY3Rpb25zXCI7XG5cbmltcG9ydCB7IGlzTnVsbE9yV2hpdGVTcGFjZSB9IGZyb20gXCIuL1R5cGluZ1V0aWxzXCI7XG5cbmNvbnN0IGlzQmlnU291cmNlID0gKHZhbHVlOiBCaWdTb3VyY2UpOiBib29sZWFuID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB2YWx1ZSBpbnN0YW5jZW9mIEJpZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgaXNCaWdPck51bWJlciA9ICh2YWx1ZTogQmlnIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCB8IHVua25vd24pID0+XG4gICAgdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHZhbHVlIGluc3RhbmNlb2YgQmlnO1xuXG5leHBvcnQgY2xhc3MgS0NMYW5nUnVudGltZVV0aWxzIHtcbiAgICBwdWJsaWMgc3RhdGljIGtjTGFuZ1V0aWxzTmFtZSA9IFwia2NMYW5nVXRpbHNcIjtcblxuICAgIHB1YmxpYyBhbmQobGVmdDogYm9vbGVhbiB8IHVuZGVmaW5lZCwgcmlnaHQ6IGJvb2xlYW4gfCB1bmRlZmluZWQpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGxlZnQgPT0gdW5kZWZpbmVkIHx8IHJpZ2h0ID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGVmdCAmJiByaWdodDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGl2aXNpb24obGVmdDogQmlnU291cmNlLCByaWdodDogQmlnU291cmNlKTogQmlnIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5kaXYocmlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGVxKGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodHlwZW9mIGxlZnQgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHJpZ2h0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gbGVmdCA9PT0gcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5jbXAocmlnaHQpID09PSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2UobGVmdDogQmlnU291cmNlLCByaWdodDogQmlnU291cmNlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShsZWZ0KSAmJiBpc0JpZ1NvdXJjZShyaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQobGVmdCkuZ3RlKHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGd0KGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UobGVmdCkgJiYgaXNCaWdTb3VyY2UocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpLmd0KHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGxlKGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UobGVmdCkgJiYgaXNCaWdTb3VyY2UocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpLmx0ZShyaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBsdChsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5sdChyaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBtaW51cyhhcmd1bWVudDogQmlnU291cmNlKTogdW5rbm93biB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQoYXJndW1lbnQpLm11bCgtMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbXVsdGlwbHkobGVmdDogQmlnU291cmNlLCByaWdodDogQmlnU291cmNlKTogdW5rbm93biB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShsZWZ0KSAmJiBpc0JpZ1NvdXJjZShyaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQobGVmdCkubXVsKHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBub3QobGVmdD86IGJvb2xlYW4pOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGxlZnQgIT0gdW5kZWZpbmVkID8gIWxlZnQgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG5vdGVxKGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZXEobGVmdCwgcmlnaHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcihsZWZ0OiBib29sZWFuIHwgdW5kZWZpbmVkLCByaWdodDogYm9vbGVhbiB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodHlwZW9mIGxlZnQgPT0gXCJib29sZWFuXCIgfHwgdHlwZW9mIHJpZ2h0ID09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gbGVmdCB8fCByaWdodDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyByb3VuZCh2YWx1ZTogQmlnU291cmNlLCBmcmFjdGlvbkRpZ2l0cz86IG51bWJlcik6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQodmFsdWUpLnJvdW5kKGZyYWN0aW9uRGlnaXRzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBmbG9vcih2YWx1ZTogQmlnU291cmNlKTogQmlnIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGlzQmlnU291cmNlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZCh3cmFwRGVjaW1hbE9wZXJhbmQodmFsdWUpLnJvdW5kKHVuZGVmaW5lZCwgMCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN1bShsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBCaWcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWlzQmlnT3JOdW1iZXIobGVmdCkgJiYgIWlzQmlnT3JOdW1iZXIocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5hZGQocmlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChyaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhYnMoYXJndW1lbnQ6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQoYXJndW1lbnQpLmFicygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHhhYnMoYXJndW1lbnQ6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gd3JhcERlY2ltYWxPcGVyYW5kKGFyZ3VtZW50KTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sdCgwKSA/IG5ldyBCaWcoMCkgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBsZW5ndGgoYXJndW1lbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJndW1lbnQubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGV4aXN0cyh2YWx1ZVNlbGVjdG9yOiAocGF0aDogc3RyaW5nKSA9PiB1bmtub3duLCBwYXRoOiBzdHJpbmcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZhbHVlU2VsZWN0b3IgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVTZWxlY3RvcihwYXRoKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlICE9IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPSBcIlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NuaWxzKHZhbHVlU2VsZWN0b3I6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZVNlbGVjdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlU2VsZWN0b3IocGF0aCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTbmlscyA9IHZhbHVlPy5yZXBsYWNlKC9bXjAtOV0vZywgXCJcIik7XG4gICAgICAgIGlmIChpc051bGxPcldoaXRlU3BhY2Uobm9ybWFsaXplZFNuaWxzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFZhbGlkYXRpb25IZWxwZXIuaXNTbmlscyhub3JtYWxpemVkU25pbHMpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSW5uKHZhbHVlU2VsZWN0b3I6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZVNlbGVjdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlU2VsZWN0b3IocGF0aCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTbmlscyA9IHZhbHVlPy5yZXBsYWNlKC9bXjAtOV0vZywgXCJcIik7XG4gICAgICAgIGlmIChpc051bGxPcldoaXRlU3BhY2Uobm9ybWFsaXplZFNuaWxzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFZhbGlkYXRpb25IZWxwZXIuaXNJbm4obm9ybWFsaXplZFNuaWxzKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1ZhbGlkQWNjb3VudE51bWJlcihcbiAgICAgICAgdmFsdWVTZWxlY3RvcjogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBiaWs6IHN0cmluZyxcbiAgICAgICAgYWNjb3VudDogc3RyaW5nXG4gICAgKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZVNlbGVjdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBiaWtWYWx1ZSA9IHZhbHVlU2VsZWN0b3IoYmlrKTtcbiAgICAgICAgY29uc3QgYWNjb3VudFZhbHVlID0gdmFsdWVTZWxlY3RvcihhY2NvdW50KTtcbiAgICAgICAgaWYgKGlzTnVsbE9yV2hpdGVTcGFjZShiaWtWYWx1ZSkgfHwgaXNOdWxsT3JXaGl0ZVNwYWNlKGFjY291bnRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBWYWxpZGF0aW9uSGVscGVyLmlzVmFsaWRBY2NvdW50TnVtYmVyKGJpa1ZhbHVlLCBhY2NvdW50VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1ZhbGlkTWlyQ2FyZE51bWJlcih2YWx1ZVNlbGVjdG9yOiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWVTZWxlY3RvciA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVNlbGVjdG9yKHBhdGgpO1xuICAgICAgICBpZiAoaXNOdWxsT3JXaGl0ZVNwYWNlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFZhbGlkYXRpb25IZWxwZXIuaXNWYWxpZE1pckNhcmROdW1iZXIodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnZlcnRUb0RlY2ltYWwoYXJndW1lbnQ6IEJpZ1NvdXJjZSB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQoYXJndW1lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb252ZXJ0VG9TdHJpbmcoYXJndW1lbnQ6IEJpZ1NvdXJjZSB8IHVuZGVmaW5lZCB8IG51bGwpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJndW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJndW1lbnQudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhcmd1bWVudCBpbnN0YW5jZW9mIEJpZykge1xuICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdleE1hdGNoKHBhdHRlcm46IHN0cmluZyB8IHVuZGVmaW5lZCwgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAocGF0dGVybiA9PSB1bmRlZmluZWQgfHwgdmFsdWUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4pLnRlc3QodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG9uZW9mKHZhbHVlczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgQmlnPiwgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IEJpZyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWVzID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0JpZ09yTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBc0JpZyA9IG5ldyBCaWcodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlcy5zb21lKGl0ZW0gPT4gaXNCaWdPck51bWJlcihpdGVtKSAmJiB2YWx1ZUFzQmlnLmVxKGl0ZW0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3Vic3RyaW5nKFxuICAgICAgICBzdHI6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgc3RhcnQ6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICAgICAgbGVuZ3RoOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoc3RyID09IHVuZGVmaW5lZCB8fCBzdGFydCA9PSB1bmRlZmluZWQgfHwgbGVuZ3RoID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgbGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiBzdHIuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYXRlTm93KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZyhcInJ1LVJVXCIpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLElBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSx3QkFBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBRUEsTUFBTUksV0FBVyxHQUFJQyxLQUFnQixJQUFjO0VBQy9DLElBQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxLQUFLLEtBQUssUUFBUSxJQUFJQSxLQUFLLFlBQVlDLFlBQUcsRUFBRTtJQUNoRixPQUFPLElBQUk7RUFDZjtFQUNBLE9BQU8sS0FBSztBQUNoQixDQUFDO0FBRUQsTUFBTUMsYUFBYSxHQUFJRixLQUFnRCxJQUNuRSxPQUFPQSxLQUFLLEtBQUssUUFBUSxJQUFJQSxLQUFLLFlBQVlDLFlBQUc7QUFFOUMsTUFBTUUsa0JBQWtCLENBQUM7RUFHckJDLEdBQUdBLENBQUNDLElBQXlCLEVBQUVDLEtBQTBCLEVBQXVCO0lBQ25GLElBQUlELElBQUksSUFBSUUsU0FBUyxJQUFJRCxLQUFLLElBQUlDLFNBQVMsRUFBRTtNQUN6QyxPQUFPQSxTQUFTO0lBQ3BCO0lBQ0EsT0FBT0YsSUFBSSxJQUFJQyxLQUFLO0VBQ3hCO0VBRU9FLFFBQVFBLENBQUNILElBQWUsRUFBRUMsS0FBZ0IsRUFBbUI7SUFDaEUsSUFBSVAsV0FBVyxDQUFDTSxJQUFJLENBQUMsSUFBSU4sV0FBVyxDQUFDTyxLQUFLLENBQUMsRUFBRTtNQUN6QyxPQUFPLElBQUFHLDJDQUFrQixFQUFDSixJQUFJLENB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
|
|
266
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfVmFsaWRhdGlvbkhlbHBlciIsIl9BdXRvY2FsY0NvbW1vbkZ1bmN0aW9ucyIsIl9EYXRlSGVscGVycyIsIl9UeXBpbmdVdGlscyIsImlzQmlnU291cmNlIiwidmFsdWUiLCJCaWciLCJpc0JpZ09yTnVtYmVyIiwiS0NMYW5nUnVudGltZVV0aWxzIiwiYW5kIiwibGVmdCIsInJpZ2h0IiwidW5kZWZpbmVkIiwiZGl2aXNpb24iLCJ3cmFwRGVjaW1hbE9wZXJhbmQiLCJkaXYiLCJlcSIsImNtcCIsImdlIiwiZ3RlIiwiZ3QiLCJsZSIsImx0ZSIsImx0IiwibWludXMiLCJhcmd1bWVudCIsIm11bCIsIm11bHRpcGx5Iiwibm90Iiwibm90ZXEiLCJvciIsInJvdW5kIiwiZnJhY3Rpb25EaWdpdHMiLCJmbG9vciIsImdldFllYXIiLCJfRGF0ZSIsIkRhdGUiLCJnZXRGdWxsWWVhciIsImRhdGVUaW1lIiwiZGF0ZSIsImlzTm90TnVsbE9yRW1wdHkiLCJjb252ZXJ0RGF0ZSIsInN1bSIsImFkZCIsImFicyIsInhhYnMiLCJsZW5ndGgiLCJleGlzdHMiLCJ2YWx1ZVNlbGVjdG9yIiwicGF0aCIsImlzU25pbHMiLCJub3JtYWxpemVkU25pbHMiLCJyZXBsYWNlIiwiaXNOdWxsT3JXaGl0ZVNwYWNlIiwicmVzdWx0IiwiVmFsaWRhdGlvbkhlbHBlciIsImlzUmVnTnVtU2ZyIiwibm9ybWFsaXplZFJlZ051bSIsImlzSW5uIiwiaXNWYWxpZEFjY291bnROdW1iZXIiLCJiaWsiLCJhY2NvdW50IiwiYmlrVmFsdWUiLCJhY2NvdW50VmFsdWUiLCJpc1ZhbGlkTWlyQ2FyZE51bWJlciIsImNvbnZlcnRUb0RlY2ltYWwiLCJjb252ZXJ0VG9TdHJpbmciLCJ0b1N0cmluZyIsInJlZ2V4TWF0Y2giLCJwYXR0ZXJuIiwiUmVnRXhwIiwidGVzdCIsIm9uZW9mIiwidmFsdWVzIiwiaW5kZXhPZiIsInZhbHVlQXNCaWciLCJzb21lIiwiaXRlbSIsInN1YnN0cmluZyIsInN0ciIsInN0YXJ0IiwiZW5kIiwiZGF0ZU5vdyIsInRvTG9jYWxlRGF0ZVN0cmluZyIsImV4cG9ydHMiLCJrY0xhbmdVdGlsc05hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9Db21tb24vS0NMYW5nUnVudGltZVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWcsIHsgQmlnU291cmNlIH0gZnJvbSBcImJpZy5qc1wiO1xuXG5pbXBvcnQgeyBWYWxpZGF0aW9uSGVscGVyIH0gZnJvbSBcIi4uL0VuZ2luZS9zcmMvRW5naW5lL1ZhbGlkYXRpb25IZWxwZXJcIjtcbmltcG9ydCB7IHdyYXBEZWNpbWFsT3BlcmFuZCB9IGZyb20gXCIuLi9FbmdpbmUvc3JjL0hlbHBlcnMvQXV0b2NhbGNDb21tb25GdW5jdGlvbnNcIjtcbmltcG9ydCB7IGNvbnZlcnREYXRlIH0gZnJvbSBcIi4uL0VuZ2luZS9zcmMvSGVscGVycy9EYXRlSGVscGVyc1wiO1xuXG5pbXBvcnQgeyBpc05vdE51bGxPckVtcHR5LCBpc051bGxPcldoaXRlU3BhY2UgfSBmcm9tIFwiLi9UeXBpbmdVdGlsc1wiO1xuXG5jb25zdCBpc0JpZ1NvdXJjZSA9ICh2YWx1ZTogQmlnU291cmNlKTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBCaWcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmNvbnN0IGlzQmlnT3JOdW1iZXIgPSAodmFsdWU6IEJpZyB8IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwgfCB1bmtub3duKSA9PlxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiB8fCB2YWx1ZSBpbnN0YW5jZW9mIEJpZztcblxuZXhwb3J0IGNsYXNzIEtDTGFuZ1J1bnRpbWVVdGlscyB7XG4gICAgcHVibGljIHN0YXRpYyBrY0xhbmdVdGlsc05hbWUgPSBcImtjTGFuZ1V0aWxzXCI7XG5cbiAgICBwdWJsaWMgYW5kKGxlZnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQsIHJpZ2h0OiBib29sZWFuIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChsZWZ0ID09IHVuZGVmaW5lZCB8fCByaWdodCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxlZnQgJiYgcmlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGRpdmlzaW9uKGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShsZWZ0KSAmJiBpc0JpZ1NvdXJjZShyaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQobGVmdCkuZGl2KHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBlcShsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsZWZ0ID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiByaWdodCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShsZWZ0KSAmJiBpc0JpZ1NvdXJjZShyaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQobGVmdCkuY21wKHJpZ2h0KSA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdlKGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UobGVmdCkgJiYgaXNCaWdTb3VyY2UocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpLmd0ZShyaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBndChsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5ndChyaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBsZShsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5sdGUocmlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbHQobGVmdDogQmlnU291cmNlLCByaWdodDogQmlnU291cmNlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShsZWZ0KSAmJiBpc0JpZ1NvdXJjZShyaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQobGVmdCkubHQocmlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWludXMoYXJndW1lbnQ6IEJpZ1NvdXJjZSk6IHVua25vd24ge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UoYXJndW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGFyZ3VtZW50KS5tdWwoLTEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG11bHRpcGx5KGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IHVua25vd24ge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UobGVmdCkgJiYgaXNCaWdTb3VyY2UocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpLm11bChyaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbm90KGxlZnQ/OiBib29sZWFuKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBsZWZ0ICE9IHVuZGVmaW5lZCA/ICFsZWZ0IDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBub3RlcShsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmVxKGxlZnQsIHJpZ2h0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3IobGVmdDogYm9vbGVhbiB8IHVuZGVmaW5lZCwgcmlnaHQ6IGJvb2xlYW4gfCB1bmRlZmluZWQpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsZWZ0ID09IFwiYm9vbGVhblwiIHx8IHR5cGVvZiByaWdodCA9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmV0dXJuIGxlZnQgfHwgcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcm91bmQodmFsdWU6IEJpZ1NvdXJjZSwgZnJhY3Rpb25EaWdpdHM/OiBudW1iZXIpOiBCaWcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKHZhbHVlKS5yb3VuZChmcmFjdGlvbkRpZ2l0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmxvb3IodmFsdWU6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQod3JhcERlY2ltYWxPcGVyYW5kKHZhbHVlKS5yb3VuZCh1bmRlZmluZWQsIDApKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRZZWFyKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpPy5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYXRlVGltZSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBpc05vdE51bGxPckVtcHR5KHZhbHVlKSA/IGNvbnZlcnREYXRlKHZhbHVlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIHN1bShsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBCaWcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWlzQmlnT3JOdW1iZXIobGVmdCkgJiYgIWlzQmlnT3JOdW1iZXIocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5hZGQocmlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChyaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhYnMoYXJndW1lbnQ6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQoYXJndW1lbnQpLmFicygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHhhYnMoYXJndW1lbnQ6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gd3JhcERlY2ltYWxPcGVyYW5kKGFyZ3VtZW50KTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sdCgwKSA/IG5ldyBCaWcoMCkgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBsZW5ndGgoYXJndW1lbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJndW1lbnQubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGV4aXN0cyh2YWx1ZVNlbGVjdG9yOiAocGF0aDogc3RyaW5nKSA9PiB1bmtub3duLCBwYXRoOiBzdHJpbmcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZhbHVlU2VsZWN0b3IgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVTZWxlY3RvcihwYXRoKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlICE9IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPSBcIlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NuaWxzKHZhbHVlU2VsZWN0b3I6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZVNlbGVjdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlU2VsZWN0b3IocGF0aCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTbmlscyA9IHZhbHVlPy5yZXBsYWNlKC9bXjAtOV0vZywgXCJcIik7XG4gICAgICAgIGlmIChpc051bGxPcldoaXRlU3BhY2Uobm9ybWFsaXplZFNuaWxzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFZhbGlkYXRpb25IZWxwZXIuaXNTbmlscyhub3JtYWxpemVkU25pbHMpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUmVnTnVtU2ZyKHZhbHVlU2VsZWN0b3I6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZVNlbGVjdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlU2VsZWN0b3IocGF0aCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRSZWdOdW0gPSB2YWx1ZT8ucmVwbGFjZSgvW14wLTldL2csIFwiXCIpO1xuICAgICAgICBpZiAoaXNOdWxsT3JXaGl0ZVNwYWNlKG5vcm1hbGl6ZWRSZWdOdW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gVmFsaWRhdGlvbkhlbHBlci5pc1JlZ051bVNmcihub3JtYWxpemVkUmVnTnVtKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0lubih2YWx1ZVNlbGVjdG9yOiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWVTZWxlY3RvciA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVNlbGVjdG9yKHBhdGgpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkU25pbHMgPSB2YWx1ZT8ucmVwbGFjZSgvW14wLTldL2csIFwiXCIpO1xuICAgICAgICBpZiAoaXNOdWxsT3JXaGl0ZVNwYWNlKG5vcm1hbGl6ZWRTbmlscykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBWYWxpZGF0aW9uSGVscGVyLmlzSW5uKG5vcm1hbGl6ZWRTbmlscyk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNWYWxpZEFjY291bnROdW1iZXIoXG4gICAgICAgIHZhbHVlU2VsZWN0b3I6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgYmlrOiBzdHJpbmcsXG4gICAgICAgIGFjY291bnQ6IHN0cmluZ1xuICAgICk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWVTZWxlY3RvciA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmlrVmFsdWUgPSB2YWx1ZVNlbGVjdG9yKGJpayk7XG4gICAgICAgIGNvbnN0IGFjY291bnRWYWx1ZSA9IHZhbHVlU2VsZWN0b3IoYWNjb3VudCk7XG4gICAgICAgIGlmIChpc051bGxPcldoaXRlU3BhY2UoYmlrVmFsdWUpIHx8IGlzTnVsbE9yV2hpdGVTcGFjZShhY2NvdW50VmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gVmFsaWRhdGlvbkhlbHBlci5pc1ZhbGlkQWNjb3VudE51bWJlcihiaWtWYWx1ZSwgYWNjb3VudFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNWYWxpZE1pckNhcmROdW1iZXIodmFsdWVTZWxlY3RvcjogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZhbHVlU2VsZWN0b3IgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVTZWxlY3RvcihwYXRoKTtcbiAgICAgICAgaWYgKGlzTnVsbE9yV2hpdGVTcGFjZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBWYWxpZGF0aW9uSGVscGVyLmlzVmFsaWRNaXJDYXJkTnVtYmVyKHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb252ZXJ0VG9EZWNpbWFsKGFyZ3VtZW50OiBCaWdTb3VyY2UgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiBCaWcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGFyZ3VtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29udmVydFRvU3RyaW5nKGFyZ3VtZW50OiBCaWdTb3VyY2UgfCB1bmRlZmluZWQgfCBudWxsKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXJndW1lbnQgaW5zdGFuY2VvZiBCaWcpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmd1bWVudC50b1N0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnZXhNYXRjaChwYXR0ZXJuOiBzdHJpbmcgfCB1bmRlZmluZWQsIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHBhdHRlcm4gPT0gdW5kZWZpbmVkIHx8IHZhbHVlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChwYXR0ZXJuKS50ZXN0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbmVvZih2YWx1ZXM6IEFycmF5PHN0cmluZyB8IG51bWJlciB8IEJpZz4sIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBCaWcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZhbHVlcyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlcy5pbmRleE9mKHZhbHVlKSAhPT0gLTE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNCaWdPck51bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNCaWcgPSBuZXcgQmlnKHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXMuc29tZShpdGVtID0+IGlzQmlnT3JOdW1iZXIoaXRlbSkgJiYgdmFsdWVBc0JpZy5lcShpdGVtKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIHN1YnN0cmluZyhcbiAgICAgICAgc3RyOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICAgIHN0YXJ0OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgICAgIGxlbmd0aDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gICAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHN0ciA9PSB1bmRlZmluZWQgfHwgc3RhcnQgPT0gdW5kZWZpbmVkIHx8IGxlbmd0aCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmQgPSBzdGFydCArIGxlbmd0aDtcblxuICAgICAgICByZXR1cm4gc3RyLnN1YnN0cmluZyhzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGF0ZU5vdygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoXCJydS1SVVwiKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsd0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUVBLE1BQU1LLFdBQVcsR0FBSUMsS0FBZ0IsSUFBYztFQUMvQyxJQUFJLE9BQU9BLEtBQUssS0FBSyxRQUFRLElBQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsSUFBSUEsS0FBSyxZQUFZQyxZQUFHLEVBQUU7SUFDaEYsT0FBTyxJQUFJO0VBQ2Y7RUFDQSxPQUFPLEtBQUs7QUFDaEIsQ0FBQztBQUVELE1BQU1DLGFBQWEsR0FBSUYsS0FBZ0QsSUFDbkUsT0FBT0EsS0FBSyxLQUFLLFFBQVEsSUFBSUEsS0FBSyxZQUFZQyxZQUFHO0FBRTlDLE1BQU1FLGtCQUFrQixDQUFDO0VBR3JCQyxHQUFHQSxDQUFDQyxJQUF5QixFQUFFQyxLQUEwQixFQUF1QjtJQUNuRixJQUFJRCxJQUFJLElBQUlFLFNBQVMsSUFBSUQsS0FBSyxJQUFJQyxTQUFTLEVBQUU7TUFDekMsT0FBT0Es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
|
|
@@ -20,7 +20,7 @@ var _FarmDirectory = require("./Directories/FarmDirectory");
|
|
|
20
20
|
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _class;
|
|
21
21
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
-
let BuildServerBackendResourcesController = (_dec = (0, _Methods.httpGet)("/gfvs", _Results.httpReturn.Json), _dec2 = (0, _Methods.httpGet)("/picklists", _Results.httpReturn.PlainText), _dec3 = (0, _Methods.httpGet)("/picklists/:picklistFilename", _Results.httpReturn.StreamWithMime("application/json"), (0, _Params.httpUrlParam)("picklistFilename", _Params.httpType.String)), _dec4 = (0, _Methods.httpGet)("/converters", _Results.httpReturn.PlainText), _dec5 = (0, _Methods.httpGet)("/converters/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec6 = (0, _Methods.httpGet)("/mergers", _Results.httpReturn.PlainText), _dec7 = (0, _Methods.httpGet)("/mergers/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec8 = (0, _Methods.httpGet)("/schemas", _Results.httpReturn.PlainText), _dec9 = (0, _Methods.httpGet)("/schemas/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec10 = (0, _Methods.httpGet)("/presentations", _Results.httpReturn.PlainText), _dec11 = (0, _Methods.httpGet)("/presentations/:gfv.presentations.json", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec12 = (0, _Methods.httpGet)("/normalize", _Results.httpReturn.PlainText), _dec13 = (0, _Methods.httpGet)("/normalize/:gfv.xml", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec14 = (0, _Methods.httpGet)("/normalize/:gfv.normalize", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec15 = (0, _Methods.httpGet)("/attachmentpaths", _Results.httpReturn.PlainText), _dec16 = (0, _Methods.httpGet)("/attachmentpaths/:gfv.json", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec17 = (0, _Methods.httpGet)("/unmap", _Results.httpReturn.PlainText), _dec18 = (0, _Methods.httpGet)("/unmap/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("
|
|
23
|
+
let BuildServerBackendResourcesController = (_dec = (0, _Methods.httpGet)("/gfvs", _Results.httpReturn.Json), _dec2 = (0, _Methods.httpGet)("/picklists", _Results.httpReturn.PlainText), _dec3 = (0, _Methods.httpGet)("/picklists/:picklistFilename", _Results.httpReturn.StreamWithMime("application/json"), (0, _Params.httpUrlParam)("picklistFilename", _Params.httpType.String)), _dec4 = (0, _Methods.httpGet)("/converters", _Results.httpReturn.PlainText), _dec5 = (0, _Methods.httpGet)("/converters/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec6 = (0, _Methods.httpGet)("/mergers", _Results.httpReturn.PlainText), _dec7 = (0, _Methods.httpGet)("/mergers/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec8 = (0, _Methods.httpGet)("/schemas", _Results.httpReturn.PlainText), _dec9 = (0, _Methods.httpGet)("/schemas/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec10 = (0, _Methods.httpGet)("/presentations", _Results.httpReturn.PlainText), _dec11 = (0, _Methods.httpGet)("/presentations/:gfv.presentations.json", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec12 = (0, _Methods.httpGet)("/normalize", _Results.httpReturn.PlainText), _dec13 = (0, _Methods.httpGet)("/normalize/:gfv.xml", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec14 = (0, _Methods.httpGet)("/normalize/:gfv.normalize", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec15 = (0, _Methods.httpGet)("/attachmentpaths", _Results.httpReturn.PlainText), _dec16 = (0, _Methods.httpGet)("/attachmentpaths/:gfv.json", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec17 = (0, _Methods.httpGet)("/unmap", _Results.httpReturn.PlainText), _dec18 = (0, _Methods.httpGet)("/unmap/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec19 = (0, _Methods.httpGet)("/map", _Results.httpReturn.PlainText), _dec20 = (0, _Methods.httpGet)("/map/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec21 = (0, _Methods.httpGet)("/patch", _Results.httpReturn.PlainText), _dec22 = (0, _Methods.httpGet)("/patch/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), (_class = class BuildServerBackendResourcesController extends _SingletonController.SingletonController {
|
|
24
24
|
constructor(allFarmConfig, flangNormalizationSourcesProvider) {
|
|
25
25
|
super();
|
|
26
26
|
this.generatedServerSideSourcesProvider = void 0;
|
|
@@ -164,4 +164,4 @@ let BuildServerBackendResourcesController = (_dec = (0, _Methods.httpGet)("/gfvs
|
|
|
164
164
|
}
|
|
165
165
|
}, ((0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllGfvs", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "getAllGfvs"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllPicklists", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "getAllPicklists"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getPicklists", [_dec3], Object.getOwnPropertyDescriptor(_class.prototype, "getPicklists"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllConvertersFiles", [_dec4], Object.getOwnPropertyDescriptor(_class.prototype, "getAllConvertersFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getConverterFile", [_dec5], Object.getOwnPropertyDescriptor(_class.prototype, "getConverterFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllMergersFiles", [_dec6], Object.getOwnPropertyDescriptor(_class.prototype, "getAllMergersFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getMergerFile", [_dec7], Object.getOwnPropertyDescriptor(_class.prototype, "getMergerFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllSchemasFiles", [_dec8], Object.getOwnPropertyDescriptor(_class.prototype, "getAllSchemasFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getFormSchemas", [_dec9], Object.getOwnPropertyDescriptor(_class.prototype, "getFormSchemas"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllFormPresentations", [_dec10], Object.getOwnPropertyDescriptor(_class.prototype, "getAllFormPresentations"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getFormPresentations", [_dec11], Object.getOwnPropertyDescriptor(_class.prototype, "getFormPresentations"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllNormalizeFiles", [_dec12], Object.getOwnPropertyDescriptor(_class.prototype, "getAllNormalizeFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getNormalizeFile", [_dec13], Object.getOwnPropertyDescriptor(_class.prototype, "getNormalizeFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getFLangNormalizeFile", [_dec14], Object.getOwnPropertyDescriptor(_class.prototype, "getFLangNormalizeFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllAttachmentPathsFileNames", [_dec15], Object.getOwnPropertyDescriptor(_class.prototype, "getAllAttachmentPathsFileNames"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAttachmentPathFile", [_dec16], Object.getOwnPropertyDescriptor(_class.prototype, "getAttachmentPathFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllUnmapFiles", [_dec17], Object.getOwnPropertyDescriptor(_class.prototype, "getAllUnmapFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getUnmapFile", [_dec18], Object.getOwnPropertyDescriptor(_class.prototype, "getUnmapFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllMapFiles", [_dec19], Object.getOwnPropertyDescriptor(_class.prototype, "getAllMapFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getMapFile", [_dec20], Object.getOwnPropertyDescriptor(_class.prototype, "getMapFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllPatchFiles", [_dec21], Object.getOwnPropertyDescriptor(_class.prototype, "getAllPatchFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getPatchFile", [_dec22], Object.getOwnPropertyDescriptor(_class.prototype, "getPatchFile"), _class.prototype)), _class));
|
|
166
166
|
exports.BuildServerBackendResourcesController = BuildServerBackendResourcesController;
|
|
167
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJyZXF1aXJlIiwicGF0aCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2ZzRXh0cmEiLCJfbG9kYXNoIiwiX01ldGhvZHMiLCJfTm90Rm91bmRXZWJFcnJvciIsIl9QYXJhbXMiLCJfUmVzdWx0cyIsIl9TdHJlYW1SZXN1bHRIYW5kbGVyIiwiX1NpbmdsZXRvbkNvbnRyb2xsZXIiLCJfRmFybURpcmVjdG9yeSIsIl9kZWMiLCJfZGVjMiIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiX2RlYzE0IiwiX2RlYzE1IiwiX2RlYzE2IiwiX2RlYzE3IiwiX2RlYzE4IiwiX2RlYzE5IiwiX2RlYzIwIiwiX2RlYzIxIiwiX2RlYzIyIiwiX2NsYXNzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIiLCJodHRwR2V0IiwiaHR0cFJldHVybiIsIkpzb24iLCJQbGFpblRleHQiLCJTdHJlYW1XaXRoTWltZSIsImh0dHBVcmxQYXJhbSIsImh0dHBUeXBlIiwiU3RyaW5nIiwiU3RyZWFtIiwiU2luZ2xldG9uQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWxsRmFybUNvbmZpZyIsImZsYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlciIsImdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIiLCJhbGxTY2hlbWFzRmlsZXMiLCJyZXNldEFsbFNjaGVtYUZpbGVzRGVib3VuY2VkIiwiYWxsRmFybURpcmVjdG9yaWVzIiwibWFwIiwiaSIsIkZhcm1EaXJlY3RvcnkiLCJmYXJtRGlyZWN0b3J5IiwiZGVib3VuY2UiLCJ1bmRlZmluZWQiLCJnZXRBbGxHZnZzIiwiUHJvbWlzZSIsImFsbCIsIngiLCJmbGF0IiwiZ2V0QWxsUGlja2xpc3RzIiwiam9pbiIsImdldFBpY2tsaXN0cyIsInBpY2tsaXN0RmlsZW5hbWUiLCJhbGxGaWxlUGF0aCIsInBhdGhGaWxlIiwicGF0aEV4aXN0cyIsImNyZWF0ZVJlYWRTdHJlYW0iLCJFcnJvciIsImdldEFsbENvbnZlcnRlcnNGaWxlcyIsImZsYXRNYXAiLCJnZXRBbGxDb252ZXJ0ZXJGaWxlUGF0aHMiLCJiYXNlbmFtZSIsImdldENvbnZlcnRlckZpbGUiLCJmaWxlbmFtZSIsImZpbGVQYXRoIiwiZ2V0Q29udmVydGVyRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJGaWxlU3RyZWFtUmVzdWx0IiwiTm90Rm91bmRXZWJFcnJvciIsImdldEFsbE1lcmdlcnNGaWxlcyIsImdldEFsbE1lcmdlcnNGaWxlUGF0aHMiLCJnZXRNZXJnZXJGaWxlIiwiZ2V0TWVyZ2Vyc0ZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsU2NoZW1hc0ZpbGVzIiwiZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocyIsImdldEZvcm1TY2hlbWFzIiwiZ2V0U2NoZW1hRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxGb3JtUHJlc2VudGF0aW9ucyIsImdldEFsbFByZXNlbnRhdGlvbnNGaWxlTmFtZXMiLCJnZXRGb3JtUHJlc2VudGF0aW9ucyIsImdmdiIsImdldFByZXNlbnRhdGlvbnNGaWxlUGF0aEJ5R2Z2T3JVbmRlZmluZWQiLCJnZXRBbGxOb3JtYWxpemVGaWxlcyIsImZpbGVzIiwiZ2V0QWxsTm9ybWFsaXplRmlsZVBhdGhzIiwiZmxhbmdGaWxlcyIsImdldEFsbE5vcm1hbGl6YXRpb25GaWxlTmFtZXMiLCJnZXROb3JtYWxpemVGaWxlIiwiZ2V0Tm9ybWFsaXplRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRGTGFuZ05vcm1hbGl6ZUZpbGUiLCJTdHJlYW1SZXN1bHQiLCJnZXROb3JtYWxpemF0aW9uRmlsZUNvbnRlbnQiLCJnZXRBbGxBdHRhY2htZW50UGF0aHNGaWxlTmFtZXMiLCJnZXRBbGxBdHRhY2htZW50UGF0aEZpbGVOYW1lcyIsImdldEF0dGFjaG1lbnRQYXRoRmlsZSIsImdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50IiwiZ2V0QWxsVW5tYXBGaWxlcyIsImdldEFsbFVubWFwRmlsZVBhdGhzIiwiZ2V0VW5tYXBGaWxlIiwiZ2V0VW5tYXBGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsImdldEFsbE1hcEZpbGVzIiwiZ2V0QWxsTWFwRmlsZVBhdGhzIiwiZ2V0TWFwRmlsZSIsImdldE1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsUGF0Y2hGaWxlcyIsImdldEFsbFBhdGNoRmlsZVBhdGhzIiwiZ2V0UGF0Y2hGaWxlIiwiZ2V0UGF0Y2hGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IyIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNDb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlYWRTdHJlYW0sIFJlYWRTdHJlYW0gfSBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IF8sIHsgZGVib3VuY2UgfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBGYXJtQ29uZmlnIH0gZnJvbSBcIlRvb2xzL3NyYy9DYW5keUNMSVwiO1xuXG5pbXBvcnQgeyBodHRwR2V0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL01ldGhvZHNcIjtcbmltcG9ydCB7IE5vdEZvdW5kV2ViRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvTm90Rm91bmRXZWJFcnJvclwiO1xuaW1wb3J0IHsgaHR0cFR5cGUsIGh0dHBVcmxQYXJhbSB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9QYXJhbXNcIjtcbmltcG9ydCB7IGh0dHBSZXR1cm4gfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvUmVzdWx0c1wiO1xuaW1wb3J0IHtcbiAgICBGaWxlU3RyZWFtUmVzdWx0LFxuICAgIFN0cmVhbVJlc3VsdCxcbn0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1Jlc3VsdHMvU3RyZWFtUmVzdWx0SGFuZGxlclwiO1xuaW1wb3J0IHsgU2luZ2xldG9uQ29udHJvbGxlciB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvRXhwcmVzc1dyYXBwZXIvU2luZ2xldG9uQ29udHJvbGxlclwiO1xuXG5pbXBvcnQgeyBJR2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlciB9IGZyb20gXCIuL0lHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBGYXJtRGlyZWN0b3J5IH0gZnJvbSBcIi4vRGlyZWN0b3JpZXMvRmFybURpcmVjdG9yeVwiO1xuXG5leHBvcnQgY2xhc3MgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlciBleHRlbmRzIFNpbmdsZXRvbkNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlcjogSUdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXI7XG4gICAgcHJpdmF0ZSBhbGxTY2hlbWFzRmlsZXM6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc2V0QWxsU2NoZW1hRmlsZXNEZWJvdW5jZWQ6ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxGYXJtRGlyZWN0b3JpZXM6IEZhcm1EaXJlY3RvcnlbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbEZhcm1Db25maWc6IEZhcm1Db25maWdbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgYWxsRmFybUNvbmZpZzogRmFybUNvbmZpZ1tdLFxuICAgICAgICBmbGFuZ05vcm1hbGl6YXRpb25Tb3VyY2VzUHJvdmlkZXI6IElHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlciA9IGZsYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlcjtcbiAgICAgICAgdGhpcy5hbGxGYXJtQ29uZmlnID0gYWxsRmFybUNvbmZpZztcbiAgICAgICAgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMgPSBhbGxGYXJtQ29uZmlnLm1hcChpID0+IG5ldyBGYXJtRGlyZWN0b3J5KGkuZmFybURpcmVjdG9yeSkpO1xuICAgICAgICB0aGlzLnJlc2V0QWxsU2NoZW1hRmlsZXNEZWJvdW5jZWQgPSBkZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFsbFNjaGVtYXNGaWxlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSwgNTAwMCk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvZ2Z2c1wiLCBodHRwUmV0dXJuLkpzb24pXG4gICAgcHVibGljIGFzeW5jIGdldEFsbEdmdnMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLm1hcCh4ID0+IHguZ2V0QWxsR2Z2cygpKSkpLmZsYXQoKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9waWNrbGlzdHNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFBpY2tsaXN0cygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLm1hcCh4ID0+IHguZ2V0QWxsUGlja2xpc3RzKCkpKSkuZmxhdCgpLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXG4gICAgICAgIFwiL3BpY2tsaXN0cy86cGlja2xpc3RGaWxlbmFtZVwiLFxuICAgICAgICBodHRwUmV0dXJuLlN0cmVhbVdpdGhNaW1lKFwiYXBwbGljYXRpb24vanNvblwiKSxcbiAgICAgICAgaHR0cFVybFBhcmFtKFwicGlja2xpc3RGaWxlbmFtZVwiLCBodHRwVHlwZS5TdHJpbmcpXG4gICAgKVxuICAgIHB1YmxpYyBhc3luYyBnZXRQaWNrbGlzdHMocGlja2xpc3RGaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxSZWFkU3RyZWFtPiB7XG4gICAgICAgIGNvbnN0IGFsbEZpbGVQYXRoID0gdGhpcy5hbGxGYXJtQ29uZmlnLm1hcChpID0+IHBhdGguam9pbihpLmZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIsIHBpY2tsaXN0RmlsZW5hbWUpKTtcbiAgICAgICAgZm9yIChjb25zdCBwYXRoRmlsZSBvZiBhbGxGaWxlUGF0aCkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aEZpbGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlYWRTdHJlYW0ocGF0aEZpbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IEVycm9yKGBub3QgZm91bmQgcGlja2xpc3RGaWxlbmFtZSAke3BpY2tsaXN0RmlsZW5hbWV9YCk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvY29udmVydGVyc1wiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQ29udmVydGVyc0ZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsQ29udmVydGVyRmlsZVBhdGhzKCkpKSlcbiAgICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvY29udmVydGVycy86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImZpbGVuYW1lXCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldENvbnZlcnRlckZpbGUoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8RmlsZVN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1EaXJlY3Rvcnkgb2YgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYXdhaXQgZmFybURpcmVjdG9yeS5nZXRDb252ZXJ0ZXJGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZVBhdGggIT0gbnVsbCAmJiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgZmFsc2UpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL21lcmdlcnNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE1lcmdlcnNGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbE1lcmdlcnNGaWxlUGF0aHMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9tZXJnZXJzLzpmaWxlbmFtZVwiLCBodHRwUmV0dXJuLlN0cmVhbSwgaHR0cFVybFBhcmFtKFwiZmlsZW5hbWVcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0TWVyZ2VyRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxGaWxlU3RyZWFtUmVzdWx0PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmFybURpcmVjdG9yeSBvZiB0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBhd2FpdCBmYXJtRGlyZWN0b3J5LmdldE1lcmdlcnNGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZVBhdGggIT0gbnVsbCAmJiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgZmFsc2UpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3NjaGVtYXNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFNjaGVtYXNGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBpZiAodGhpcy5hbGxTY2hlbWFzRmlsZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hbGxTY2hlbWFzRmlsZXMgPSAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocygpKSkpXG4gICAgICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXRBbGxTY2hlbWFGaWxlc0RlYm91bmNlZCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxTY2hlbWFzRmlsZXM7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvc2NoZW1hcy86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImZpbGVuYW1lXCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldEZvcm1TY2hlbWFzKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0U2NoZW1hRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9wcmVzZW50YXRpb25zXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0KVxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxGb3JtUHJlc2VudGF0aW9ucygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbFByZXNlbnRhdGlvbnNGaWxlTmFtZXMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9wcmVzZW50YXRpb25zLzpnZnYucHJlc2VudGF0aW9ucy5qc29uXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Rm9ybVByZXNlbnRhdGlvbnMoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0UHJlc2VudGF0aW9uc0ZpbGVQYXRoQnlHZnZPclVuZGVmaW5lZChnZnYpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9ub3JtYWxpemVcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE5vcm1hbGl6ZUZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocygpKSkpLmZsYXQoKTtcbiAgICAgICAgY29uc3QgZmxhbmdGaWxlcyA9IGF3YWl0IHRoaXMuZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlci5nZXRBbGxOb3JtYWxpemF0aW9uRmlsZU5hbWVzKCk7XG4gICAgICAgIHJldHVybiBbLi4uZmlsZXMubWFwKHggPT4gcGF0aC5iYXNlbmFtZSh4KSksIC4uLmZsYW5nRmlsZXNdLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvbm9ybWFsaXplLzpnZnYueG1sXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Tm9ybWFsaXplRmlsZShnZnY6IHN0cmluZyk6IFByb21pc2U8RmlsZVN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1EaXJlY3Rvcnkgb2YgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYXdhaXQgZmFybURpcmVjdG9yeS5nZXROb3JtYWxpemVGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChgJHtnZnZ9LnhtbGApO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9ub3JtYWxpemUvOmdmdi5ub3JtYWxpemVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImdmdlwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRGTGFuZ05vcm1hbGl6ZUZpbGUoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPFN0cmVhbVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gbmV3IFN0cmVhbVJlc3VsdChhd2FpdCB0aGlzLmdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIuZ2V0Tm9ybWFsaXphdGlvbkZpbGVDb250ZW50KGdmdikpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL2F0dGFjaG1lbnRwYXRoc1wiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQXR0YWNobWVudFBhdGhzRmlsZU5hbWVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGZsYW5nRmlsZXMgPSBhd2FpdCB0aGlzLmdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIuZ2V0QWxsQXR0YWNobWVudFBhdGhGaWxlTmFtZXMoKTtcbiAgICAgICAgcmV0dXJuIGZsYW5nRmlsZXMuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9hdHRhY2htZW50cGF0aHMvOmdmdi5qc29uXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QXR0YWNobWVudFBhdGhGaWxlKGdmdjogc3RyaW5nKTogUHJvbWlzZTxTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQoYXdhaXQgdGhpcy5nZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyLmdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50KGdmdikpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3VubWFwXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0KVxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxVbm1hcEZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsVW5tYXBGaWxlUGF0aHMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi91bm1hcC86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImdmdlwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRVbm1hcEZpbGUoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8RmlsZVN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1EaXJlY3Rvcnkgb2YgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYXdhaXQgZmFybURpcmVjdG9yeS5nZXRVbm1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChmaWxlUGF0aCAhPSBudWxsICYmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEZpbGVTdHJlYW1SZXN1bHQoZmlsZVBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kV2ViRXJyb3IoXCJGaWxlIG5vdCBmb3VuZFwiLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvbWFwXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0KVxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxNYXBGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbE1hcEZpbGVQYXRocygpKSkpXG4gICAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgICAubWFwKHggPT4gcGF0aC5iYXNlbmFtZSh4KSlcbiAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL21hcC86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImdmdlwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRNYXBGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0TWFwRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9wYXRjaFwiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsUGF0Y2hGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbFBhdGNoRmlsZVBhdGhzKCkpKSlcbiAgICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvcGF0Y2gvOmZpbGVuYW1lXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0UGF0Y2hGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0UGF0Y2hGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZVBhdGggIT0gbnVsbCAmJiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgZmFsc2UpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxHQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxJQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFHQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsb0JBQUEsR0FBQVQsT0FBQTtBQUlBLElBQUFVLG9CQUFBLEdBQUFWLE9BQUE7QUFHQSxJQUFBVyxjQUFBLEdBQUFYLE9BQUE7QUFBNEQsSUFBQVksSUFBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFB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
|
|
167
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJyZXF1aXJlIiwicGF0aCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2ZzRXh0cmEiLCJfbG9kYXNoIiwiX01ldGhvZHMiLCJfTm90Rm91bmRXZWJFcnJvciIsIl9QYXJhbXMiLCJfUmVzdWx0cyIsIl9TdHJlYW1SZXN1bHRIYW5kbGVyIiwiX1NpbmdsZXRvbkNvbnRyb2xsZXIiLCJfRmFybURpcmVjdG9yeSIsIl9kZWMiLCJfZGVjMiIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiX2RlYzE0IiwiX2RlYzE1IiwiX2RlYzE2IiwiX2RlYzE3IiwiX2RlYzE4IiwiX2RlYzE5IiwiX2RlYzIwIiwiX2RlYzIxIiwiX2RlYzIyIiwiX2NsYXNzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIiLCJodHRwR2V0IiwiaHR0cFJldHVybiIsIkpzb24iLCJQbGFpblRleHQiLCJTdHJlYW1XaXRoTWltZSIsImh0dHBVcmxQYXJhbSIsImh0dHBUeXBlIiwiU3RyaW5nIiwiU3RyZWFtIiwiU2luZ2xldG9uQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWxsRmFybUNvbmZpZyIsImZsYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlciIsImdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIiLCJhbGxTY2hlbWFzRmlsZXMiLCJyZXNldEFsbFNjaGVtYUZpbGVzRGVib3VuY2VkIiwiYWxsRmFybURpcmVjdG9yaWVzIiwibWFwIiwiaSIsIkZhcm1EaXJlY3RvcnkiLCJmYXJtRGlyZWN0b3J5IiwiZGVib3VuY2UiLCJ1bmRlZmluZWQiLCJnZXRBbGxHZnZzIiwiUHJvbWlzZSIsImFsbCIsIngiLCJmbGF0IiwiZ2V0QWxsUGlja2xpc3RzIiwiam9pbiIsImdldFBpY2tsaXN0cyIsInBpY2tsaXN0RmlsZW5hbWUiLCJhbGxGaWxlUGF0aCIsInBhdGhGaWxlIiwicGF0aEV4aXN0cyIsImNyZWF0ZVJlYWRTdHJlYW0iLCJFcnJvciIsImdldEFsbENvbnZlcnRlcnNGaWxlcyIsImZsYXRNYXAiLCJnZXRBbGxDb252ZXJ0ZXJGaWxlUGF0aHMiLCJiYXNlbmFtZSIsImdldENvbnZlcnRlckZpbGUiLCJmaWxlbmFtZSIsImZpbGVQYXRoIiwiZ2V0Q29udmVydGVyRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJGaWxlU3RyZWFtUmVzdWx0IiwiTm90Rm91bmRXZWJFcnJvciIsImdldEFsbE1lcmdlcnNGaWxlcyIsImdldEFsbE1lcmdlcnNGaWxlUGF0aHMiLCJnZXRNZXJnZXJGaWxlIiwiZ2V0TWVyZ2Vyc0ZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsU2NoZW1hc0ZpbGVzIiwiZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocyIsImdldEZvcm1TY2hlbWFzIiwiZ2V0U2NoZW1hRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxGb3JtUHJlc2VudGF0aW9ucyIsImdldEFsbFByZXNlbnRhdGlvbnNGaWxlTmFtZXMiLCJnZXRGb3JtUHJlc2VudGF0aW9ucyIsImdmdiIsImdldFByZXNlbnRhdGlvbnNGaWxlUGF0aEJ5R2Z2T3JVbmRlZmluZWQiLCJnZXRBbGxOb3JtYWxpemVGaWxlcyIsImZpbGVzIiwiZ2V0QWxsTm9ybWFsaXplRmlsZVBhdGhzIiwiZmxhbmdGaWxlcyIsImdldEFsbE5vcm1hbGl6YXRpb25GaWxlTmFtZXMiLCJnZXROb3JtYWxpemVGaWxlIiwiZ2V0Tm9ybWFsaXplRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRGTGFuZ05vcm1hbGl6ZUZpbGUiLCJTdHJlYW1SZXN1bHQiLCJnZXROb3JtYWxpemF0aW9uRmlsZUNvbnRlbnQiLCJnZXRBbGxBdHRhY2htZW50UGF0aHNGaWxlTmFtZXMiLCJnZXRBbGxBdHRhY2htZW50UGF0aEZpbGVOYW1lcyIsImdldEF0dGFjaG1lbnRQYXRoRmlsZSIsImdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50IiwiZ2V0QWxsVW5tYXBGaWxlcyIsImdldEFsbFVubWFwRmlsZVBhdGhzIiwiZ2V0VW5tYXBGaWxlIiwiZ2V0VW5tYXBGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsImdldEFsbE1hcEZpbGVzIiwiZ2V0QWxsTWFwRmlsZVBhdGhzIiwiZ2V0TWFwRmlsZSIsImdldE1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsUGF0Y2hGaWxlcyIsImdldEFsbFBhdGNoRmlsZVBhdGhzIiwiZ2V0UGF0Y2hGaWxlIiwiZ2V0UGF0Y2hGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IyIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNDb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlYWRTdHJlYW0sIFJlYWRTdHJlYW0gfSBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IF8sIHsgZGVib3VuY2UgfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBGYXJtQ29uZmlnIH0gZnJvbSBcIlRvb2xzL3NyYy9DYW5keUNMSVwiO1xuXG5pbXBvcnQgeyBodHRwR2V0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL01ldGhvZHNcIjtcbmltcG9ydCB7IE5vdEZvdW5kV2ViRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvTm90Rm91bmRXZWJFcnJvclwiO1xuaW1wb3J0IHsgaHR0cFR5cGUsIGh0dHBVcmxQYXJhbSB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9QYXJhbXNcIjtcbmltcG9ydCB7IGh0dHBSZXR1cm4gfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvUmVzdWx0c1wiO1xuaW1wb3J0IHtcbiAgICBGaWxlU3RyZWFtUmVzdWx0LFxuICAgIFN0cmVhbVJlc3VsdCxcbn0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1Jlc3VsdHMvU3RyZWFtUmVzdWx0SGFuZGxlclwiO1xuaW1wb3J0IHsgU2luZ2xldG9uQ29udHJvbGxlciB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvRXhwcmVzc1dyYXBwZXIvU2luZ2xldG9uQ29udHJvbGxlclwiO1xuXG5pbXBvcnQgeyBJR2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlciB9IGZyb20gXCIuL0lHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBGYXJtRGlyZWN0b3J5IH0gZnJvbSBcIi4vRGlyZWN0b3JpZXMvRmFybURpcmVjdG9yeVwiO1xuXG5leHBvcnQgY2xhc3MgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlciBleHRlbmRzIFNpbmdsZXRvbkNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlcjogSUdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXI7XG4gICAgcHJpdmF0ZSBhbGxTY2hlbWFzRmlsZXM6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc2V0QWxsU2NoZW1hRmlsZXNEZWJvdW5jZWQ6ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxGYXJtRGlyZWN0b3JpZXM6IEZhcm1EaXJlY3RvcnlbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbEZhcm1Db25maWc6IEZhcm1Db25maWdbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgYWxsRmFybUNvbmZpZzogRmFybUNvbmZpZ1tdLFxuICAgICAgICBmbGFuZ05vcm1hbGl6YXRpb25Tb3VyY2VzUHJvdmlkZXI6IElHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlciA9IGZsYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlcjtcbiAgICAgICAgdGhpcy5hbGxGYXJtQ29uZmlnID0gYWxsRmFybUNvbmZpZztcbiAgICAgICAgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMgPSBhbGxGYXJtQ29uZmlnLm1hcChpID0+IG5ldyBGYXJtRGlyZWN0b3J5KGkuZmFybURpcmVjdG9yeSkpO1xuICAgICAgICB0aGlzLnJlc2V0QWxsU2NoZW1hRmlsZXNEZWJvdW5jZWQgPSBkZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFsbFNjaGVtYXNGaWxlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSwgNTAwMCk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvZ2Z2c1wiLCBodHRwUmV0dXJuLkpzb24pXG4gICAgcHVibGljIGFzeW5jIGdldEFsbEdmdnMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLm1hcCh4ID0+IHguZ2V0QWxsR2Z2cygpKSkpLmZsYXQoKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9waWNrbGlzdHNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFBpY2tsaXN0cygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLm1hcCh4ID0+IHguZ2V0QWxsUGlja2xpc3RzKCkpKSkuZmxhdCgpLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXG4gICAgICAgIFwiL3BpY2tsaXN0cy86cGlja2xpc3RGaWxlbmFtZVwiLFxuICAgICAgICBodHRwUmV0dXJuLlN0cmVhbVdpdGhNaW1lKFwiYXBwbGljYXRpb24vanNvblwiKSxcbiAgICAgICAgaHR0cFVybFBhcmFtKFwicGlja2xpc3RGaWxlbmFtZVwiLCBodHRwVHlwZS5TdHJpbmcpXG4gICAgKVxuICAgIHB1YmxpYyBhc3luYyBnZXRQaWNrbGlzdHMocGlja2xpc3RGaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxSZWFkU3RyZWFtPiB7XG4gICAgICAgIGNvbnN0IGFsbEZpbGVQYXRoID0gdGhpcy5hbGxGYXJtQ29uZmlnLm1hcChpID0+IHBhdGguam9pbihpLmZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIsIHBpY2tsaXN0RmlsZW5hbWUpKTtcbiAgICAgICAgZm9yIChjb25zdCBwYXRoRmlsZSBvZiBhbGxGaWxlUGF0aCkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aEZpbGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlYWRTdHJlYW0ocGF0aEZpbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IEVycm9yKGBub3QgZm91bmQgcGlja2xpc3RGaWxlbmFtZSAke3BpY2tsaXN0RmlsZW5hbWV9YCk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvY29udmVydGVyc1wiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQ29udmVydGVyc0ZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsQ29udmVydGVyRmlsZVBhdGhzKCkpKSlcbiAgICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvY29udmVydGVycy86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImZpbGVuYW1lXCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldENvbnZlcnRlckZpbGUoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8RmlsZVN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1EaXJlY3Rvcnkgb2YgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYXdhaXQgZmFybURpcmVjdG9yeS5nZXRDb252ZXJ0ZXJGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZVBhdGggIT0gbnVsbCAmJiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgZmFsc2UpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL21lcmdlcnNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE1lcmdlcnNGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbE1lcmdlcnNGaWxlUGF0aHMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9tZXJnZXJzLzpmaWxlbmFtZVwiLCBodHRwUmV0dXJuLlN0cmVhbSwgaHR0cFVybFBhcmFtKFwiZmlsZW5hbWVcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0TWVyZ2VyRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxGaWxlU3RyZWFtUmVzdWx0PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmFybURpcmVjdG9yeSBvZiB0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBhd2FpdCBmYXJtRGlyZWN0b3J5LmdldE1lcmdlcnNGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZVBhdGggIT0gbnVsbCAmJiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgZmFsc2UpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3NjaGVtYXNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFNjaGVtYXNGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBpZiAodGhpcy5hbGxTY2hlbWFzRmlsZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hbGxTY2hlbWFzRmlsZXMgPSAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocygpKSkpXG4gICAgICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXRBbGxTY2hlbWFGaWxlc0RlYm91bmNlZCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxTY2hlbWFzRmlsZXM7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvc2NoZW1hcy86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImZpbGVuYW1lXCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldEZvcm1TY2hlbWFzKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0U2NoZW1hRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9wcmVzZW50YXRpb25zXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0KVxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxGb3JtUHJlc2VudGF0aW9ucygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbFByZXNlbnRhdGlvbnNGaWxlTmFtZXMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9wcmVzZW50YXRpb25zLzpnZnYucHJlc2VudGF0aW9ucy5qc29uXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Rm9ybVByZXNlbnRhdGlvbnMoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0UHJlc2VudGF0aW9uc0ZpbGVQYXRoQnlHZnZPclVuZGVmaW5lZChnZnYpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9ub3JtYWxpemVcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE5vcm1hbGl6ZUZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocygpKSkpLmZsYXQoKTtcbiAgICAgICAgY29uc3QgZmxhbmdGaWxlcyA9IGF3YWl0IHRoaXMuZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlci5nZXRBbGxOb3JtYWxpemF0aW9uRmlsZU5hbWVzKCk7XG4gICAgICAgIHJldHVybiBbLi4uZmlsZXMubWFwKHggPT4gcGF0aC5iYXNlbmFtZSh4KSksIC4uLmZsYW5nRmlsZXNdLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvbm9ybWFsaXplLzpnZnYueG1sXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Tm9ybWFsaXplRmlsZShnZnY6IHN0cmluZyk6IFByb21pc2U8RmlsZVN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1EaXJlY3Rvcnkgb2YgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYXdhaXQgZmFybURpcmVjdG9yeS5nZXROb3JtYWxpemVGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChgJHtnZnZ9LnhtbGApO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9ub3JtYWxpemUvOmdmdi5ub3JtYWxpemVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImdmdlwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRGTGFuZ05vcm1hbGl6ZUZpbGUoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPFN0cmVhbVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gbmV3IFN0cmVhbVJlc3VsdChhd2FpdCB0aGlzLmdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIuZ2V0Tm9ybWFsaXphdGlvbkZpbGVDb250ZW50KGdmdikpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL2F0dGFjaG1lbnRwYXRoc1wiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQXR0YWNobWVudFBhdGhzRmlsZU5hbWVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGZsYW5nRmlsZXMgPSBhd2FpdCB0aGlzLmdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIuZ2V0QWxsQXR0YWNobWVudFBhdGhGaWxlTmFtZXMoKTtcbiAgICAgICAgcmV0dXJuIGZsYW5nRmlsZXMuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9hdHRhY2htZW50cGF0aHMvOmdmdi5qc29uXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QXR0YWNobWVudFBhdGhGaWxlKGdmdjogc3RyaW5nKTogUHJvbWlzZTxTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQoYXdhaXQgdGhpcy5nZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyLmdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50KGdmdikpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3VubWFwXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0KVxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxVbm1hcEZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsVW5tYXBGaWxlUGF0aHMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi91bm1hcC86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImZpbGVuYW1lXCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldFVubWFwRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxGaWxlU3RyZWFtUmVzdWx0PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmFybURpcmVjdG9yeSBvZiB0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBhd2FpdCBmYXJtRGlyZWN0b3J5LmdldFVubWFwRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9tYXBcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE1hcEZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsTWFwRmlsZVBhdGhzKCkpKSlcbiAgICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvbWFwLzpmaWxlbmFtZVwiLCBodHRwUmV0dXJuLlN0cmVhbSwgaHR0cFVybFBhcmFtKFwiZmlsZW5hbWVcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0TWFwRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxGaWxlU3RyZWFtUmVzdWx0PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmFybURpcmVjdG9yeSBvZiB0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBhd2FpdCBmYXJtRGlyZWN0b3J5LmdldE1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChmaWxlUGF0aCAhPSBudWxsICYmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEZpbGVTdHJlYW1SZXN1bHQoZmlsZVBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kV2ViRXJyb3IoXCJGaWxlIG5vdCBmb3VuZFwiLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvcGF0Y2hcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFBhdGNoRmlsZXMoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcy5mbGF0TWFwKHggPT4geC5nZXRBbGxQYXRjaEZpbGVQYXRocygpKSkpXG4gICAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgICAubWFwKHggPT4gcGF0aC5iYXNlbmFtZSh4KSlcbiAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3BhdGNoLzpmaWxlbmFtZVwiLCBodHRwUmV0dXJuLlN0cmVhbSwgaHR0cFVybFBhcmFtKFwiZ2Z2XCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldFBhdGNoRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxGaWxlU3RyZWFtUmVzdWx0PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmFybURpcmVjdG9yeSBvZiB0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBhd2FpdCBmYXJtRGlyZWN0b3J5LmdldFBhdGNoRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsR0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsSUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBR0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0saUJBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFFBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLG9CQUFBLEdBQUFULE9BQUE7QUFJQSxJQUFBVSxvQkFBQSxHQUFBVixPQUFBO0FBR0EsSUFBQVcsY0FBQSxHQUFBWCxPQUFBO0FBQTRELElBQUFZLElBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEs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
|
|
@@ -114,4 +114,4 @@ function splitGfv(gfv) {
|
|
|
114
114
|
v: gfvNumber % 100
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfZnNFeHRyYSIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX0ZzVXRpbHMiLCJfQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlciIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5Jbml0Rm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwibG9nZ2VyIiwiZ2Z2cyIsInVuZGVmaW5lZCIsIkludmFsaWRDb21tYW5kTGluZUFyZ3VtZW50c0Vycm9yIiwicmVwb3NpdG9yeVJvb3QiLCJwcm9jZXNzIiwiY3dkIiwidGVtcGxhdGVEaXIiLCJqb2luIiwiX19kaXJuYW1lIiwiYmFzZW5hbWUiLCJub3JtYWxpemUiLCJpc0RpcmVjdG9yeUV4aXN0cyIsIldlbGxLbm93bkRpcmVjdG9yaWVzIiwiRm9ybXNEaXJlY3RvcnkiLCJFcnJvciIsImdmdiIsImdmdkxvZ2dlciIsIndpdGhQcmVmaXgiLCJnIiwiZiIsInNwbGl0R2Z2IiwiZm9ybVBhdGgiLCJ0b1N0cmluZyIsInBhZFN0YXJ0IiwiQ2FuZHlTdWJkaXJlY3RvcnlOYW1lIiwicGF0aEV4aXN0cyIsImVycm9yTWVzc2FnZSIsImVycm9yIiwidGVtcE91dHB1dERpciIsInJtZGlyIiwicmVjdXJzaXZlIiwibG9nIiwiZW5zdXJlRGlyIiwiaGlnaGxhbmRlckZhcm1QYXRoIiwiaGxSbmdQYXRoMSIsImhsUm5nUGF0aDIiLCJyZWxhdGl2ZUZpbGVQYXRoIiwiZ2xvYkFzeW5jIiwidGFyZ2V0UmVsYXRpdmVQYXRoIiwicmVwbGFjZSIsInZlcmJvc2UiLCJzdGF0IiwiaXNEaXJlY3RvcnkiLCJobHJuZyIsImV4aXN0c0hsUm5nUGF0aCIsImNvbnRlbnQiLCJyZWFkRmlsZSIsInRhcmdldENvbnRlbnQiLCJ3cml0ZUZpbGUiLCJpbmNsdWRlcyIsImZvcm1Kc29uUGF0aCIsIkZvcm1Kc29uRmlsZU5hbWUiLCJmb3JtQ29uZmlnIiwicmVhZEZvcm1Db25maWciLCJkZXBlbmRlbmNpZXMiLCJlbmdpbmUiLCJnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiIsImdlbmVyYXRvciIsImdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uIiwid3JpdGVKc29uIiwic3BhY2VzIiwibW92ZURpcmVjdG9yeSIsInNvdXJjZVBhdGgiLCJ0YXJnZXRQYXRoIiwiYmFzZWRpciIsImRpcm5hbWUiLCJwbGF0Zm9ybSIsInJlbmFtZSIsIm1vdmUiLCJnZnZOdW1iZXIiLCJOdW1iZXIiLCJNYXRoIiwiZmxvb3IiLCJ2Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0luaXRGb3JtL1J1bkluaXRGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBlbnN1cmVEaXIsIG1vdmUsIHBhdGhFeGlzdHMsIHJlYWRGaWxlLCByZW5hbWUsIHJtZGlyLCBzdGF0LCB3cml0ZUZpbGUsIHdyaXRlSnNvbiB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiwgZ2V0TGFzdFN0YWJsZUdlbmVyYXRvclZlcnNpb24gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IGdsb2JBc3luYywgaXNEaXJlY3RvcnlFeGlzdHMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Gc1V0aWxzXCI7XG5pbXBvcnQgeyBJbnZhbGlkQ29tbWFuZExpbmVBcmd1bWVudHNFcnJvciB9IGZyb20gXCIuLi8uLi9Db21tb25zL09wdGlvbnMvQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlclwiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuXG5pbXBvcnQgeyBJbml0Rm9ybU9wdGlvbnMgfSBmcm9tIFwiLi9Jbml0Rm9ybU9wdGlvbnNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkluaXRGb3JtKGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsIG9wdGlvbnM6IEluaXRGb3JtT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxvZ2dlciA9IGNvbnRleHQubG9nZ2VyO1xuICAgIGlmIChvcHRpb25zLmdmdnMgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29tbWFuZExpbmVBcmd1bWVudHNFcnJvcihcItCd0LUg0YPQutCw0LfQsNC90LAgR1ZGINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPXCIsIFwiXCIpO1xuICAgIH1cblxuICAgIGxldCByZXBvc2l0b3J5Um9vdCA9IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3QgdGVtcGxhdGVEaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIkVtcHR5Rm9ybVRlbXBsYXRlXCIpO1xuICAgIGlmIChcbiAgICAgICAgcGF0aC5iYXNlbmFtZShwcm9jZXNzLmN3ZCgpKSA9PT0gXCJjYW5keS5mYXJtXCIgfHxcbiAgICAgICAgcGF0aC5iYXNlbmFtZShwcm9jZXNzLmN3ZCgpKSA9PT0gXCJjYW5keS5kaWFkb2MuZmFybVwiIHx8XG4gICAgICAgIHBhdGguYmFzZW5hbWUocHJvY2Vzcy5jd2QoKSkgPT09IFwiY2FuZHkucnBuLmZhcm1cIiB8fFxuICAgICAgICBwYXRoLmJhc2VuYW1lKHByb2Nlc3MuY3dkKCkpID09PSBcIlRlc3RGYXJtXCJcbiAgICApIHtcbiAgICAgICAgcmVwb3NpdG9yeVJvb3QgPSBwYXRoLm5vcm1hbGl6ZShwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIFwiLi5cIikpO1xuICAgIH1cblxuICAgIGlmICghKGF3YWl0IGlzRGlyZWN0b3J5RXhpc3RzKHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybXNEaXJlY3RvcnkpKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwi0KLQtdC60YPRidCw0Y8g0LTQuNGA0LXQutGC0L7RgNC40Y8g0L3QtSDQv9C+0YXQvtC20LAg0L3QsCDQutCw0YLQsNC70L7QsyDRgSDQuNGB0YXQvtC00L3QuNC60LDQvNC4INGE0L7RgNC8XCIpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZ2Z2IG9mIG9wdGlvbnMuZ2Z2cykge1xuICAgICAgICBjb25zdCBnZnZMb2dnZXIgPSBsb2dnZXIud2l0aFByZWZpeChnZnYpO1xuICAgICAgICBjb25zdCB7IGcsIGYgfSA9IHNwbGl0R2Z2KGdmdik7XG4gICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgcmVwb3NpdG9yeVJvb3QsXG4gICAgICAgICAgICBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3Jtc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGcudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGYudG9TdHJpbmcoKS5wYWRTdGFydCgzLCBcIjBcIiksXG4gICAgICAgICAgICBnZnYudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIFdlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZVxuICAgICAgICApO1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmb3JtUGF0aCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBEaXJlY3RvcnkgZm9yICcke2dmdn0nIGFscmVhZHkgZXhpc3RzLmA7XG4gICAgICAgICAgICBnZnZMb2dnZXIuZXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRlbXBPdXRwdXREaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi50bXBcIiwgZ2Z2KTtcbiAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHModGVtcE91dHB1dERpcikpIHtcbiAgICAgICAgICAgIGF3YWl0IHJtZGlyKHRlbXBPdXRwdXREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGdmdkxvZ2dlci5sb2coYENyZWF0aW5nIGRpcmVjdG9yeSB3aXRoIHNvdXJjZXMgZnJvbSB0ZW1wbGF0ZWApO1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIodGVtcE91dHB1dERpcik7XG4gICAgICAgIGNvbnN0IGhpZ2hsYW5kZXJGYXJtUGF0aCA9IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgXCJoaWdobGFuZGVyLmZhcm1cIiwgXCJGb3Jtc1wiLCBnZnYpO1xuICAgICAgICBjb25zdCBobFJuZ1BhdGgxID0gcGF0aC5qb2luKGhpZ2hsYW5kZXJGYXJtUGF0aCwgYCR7Z2Z2fS7RgdGF0LXQvNCwLnJuZy54bWxgKTtcbiAgICAgICAgY29uc3QgaGxSbmdQYXRoMiA9IHBhdGguam9pbihoaWdobGFuZGVyRmFybVBhdGgsIFwiSGlnaGxhbmRlclwiLCBgJHtnZnZ9LtGB0YXQtdC80LAucm5nLnhtbGApO1xuICAgICAgICBmb3IgKGNvbnN0IHJlbGF0aXZlRmlsZVBhdGggb2YgYXdhaXQgZ2xvYkFzeW5jKFwiKiovKlwiLCB7IGN3ZDogdGVtcGxhdGVEaXIgfSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldFJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlRmlsZVBhdGgucmVwbGFjZSgve2dmdn0vZywgZ2Z2KTtcbiAgICAgICAgICAgIGdmdkxvZ2dlci52ZXJib3NlKGBQcm9jZXNzaW5nIHRlbXBsYXRlIHBhdGggJHtyZWxhdGl2ZUZpbGVQYXRofWApO1xuICAgICAgICAgICAgaWYgKChhd2FpdCBzdGF0KHBhdGguam9pbih0ZW1wbGF0ZURpciwgcmVsYXRpdmVGaWxlUGF0aCkpKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCB0YXJnZXRSZWxhdGl2ZVBhdGgpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmhscm5nICYmXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFJlbGF0aXZlUGF0aCA9PT0gYHNjaGVtYXMvJHtnZnZ9LjAucm5nLnhtbGAgJiZcbiAgICAgICAgICAgICAgICAgICAgKChhd2FpdCBwYXRoRXhpc3RzKGhsUm5nUGF0aDEpKSB8fCAoYXdhaXQgcGF0aEV4aXN0cyhobFJuZ1BhdGgyKSkpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0c0hsUm5nUGF0aCA9IChhd2FpdCBwYXRoRXhpc3RzKGhsUm5nUGF0aDEpKSA/IGhsUm5nUGF0aDEgOiBobFJuZ1BhdGgyO1xuICAgICAgICAgICAgICAgICAgICBnZnZMb2dnZXIubG9nKGBDb3B5IHNjaGVtYSBybmcgZmlsZSBmcm9tIGhpZ2hsYW5kZXIuZmFybS5gKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGV4aXN0c0hsUm5nUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0Q29udGVudCA9IGNvbnRlbnQucmVwbGFjZSgve2dmdn0vZywgZ2Z2KTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCB0YXJnZXRSZWxhdGl2ZVBhdGgpLCB0YXJnZXRDb250ZW50LCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRSZWxhdGl2ZVBhdGguaW5jbHVkZXMoXCJoZWxwZXJzL2FkZFByaWwxLnR4dFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy/Qv9GA0Lgg0LrQvtC/0LjRgNC+0LLQsNC90LjQuCBqcyDRhNCw0LnQu9C+0LIgYmFiZWwg0L3QsNGB0L7QstGL0LLQsNC10YIgdXNlIHN0cmljdCwg0L7QsdC+0YjQu9C4INGC0LDQutC40Lwg0L/Rg9GC0LXQvFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKHBhdGguam9pbih0ZW1wbGF0ZURpciwgcmVsYXRpdmVGaWxlUGF0aCksIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHRlbXBPdXRwdXREaXIsIHRhcmdldFJlbGF0aXZlUGF0aC5yZXBsYWNlKFwiLnR4dFwiLCBcIi5qc1wiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInV0Zi04XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUocGF0aC5qb2luKHRlbXBsYXRlRGlyLCByZWxhdGl2ZUZpbGVQYXRoKSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL3tnZnZ9L2csIGdmdik7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUocGF0aC5qb2luKHRlbXBPdXRwdXREaXIsIHRhcmdldFJlbGF0aXZlUGF0aCksIHRhcmdldENvbnRlbnQsIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBnZnZMb2dnZXIudmVyYm9zZShgUHJvY2Vzc2VkIHRlbXBsYXRlIHBhdGggJHtyZWxhdGl2ZUZpbGVQYXRofWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKTtcbiAgICAgICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgZ2Z2TG9nZ2VyKTtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICBlbmdpbmU6IGF3YWl0IGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uKCksXG4gICAgICAgICAgICBnZW5lcmF0b3I6IGF3YWl0IGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uKCksXG4gICAgICAgIH07XG4gICAgICAgIGdmdkxvZ2dlci5sb2coYFNldCBsYXN0IHN0YWJsZSB2ZXJzaW9uICR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfWApO1xuICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgTW92aW5nIHByZXBhcmVkIHNvdXJjZXMgdG8gJyR7cmVwb3NpdG9yeVJvb3R9J2ApO1xuICAgICAgICBhd2FpdCBtb3ZlRGlyZWN0b3J5KHRlbXBPdXRwdXREaXIsIGZvcm1QYXRoKTtcbiAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgRm9ybSBjcmVhdGluZyBjb21wbGV0ZWQuIFBhdGg6ICcke2Zvcm1QYXRofSdgKTtcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1vdmVEaXJlY3Rvcnkoc291cmNlUGF0aDogc3RyaW5nLCB0YXJnZXRQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBiYXNlZGlyID0gcGF0aC5kaXJuYW1lKHRhcmdldFBhdGgpO1xuICAgIGF3YWl0IGVuc3VyZURpcihiYXNlZGlyKTtcbiAgICBpZiAob3MucGxhdGZvcm0oKSAhPT0gXCJ3aW4zMlwiKSB7XG4gICAgICAgIGF3YWl0IHJlbmFtZShzb3VyY2VQYXRoLCB0YXJnZXRQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc291cmNlUGF0aFswXSA9PT0gdGFyZ2V0UGF0aFswXSkge1xuICAgICAgICAgICAgYXdhaXQgcmVuYW1lKHNvdXJjZVBhdGgsIHRhcmdldFBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgbW92ZShzb3VyY2VQYXRoLCB0YXJnZXRQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gc3BsaXRHZnYoZ2Z2OiBzdHJpbmcgfCBudW1iZXIpOiB7IGc6IG51bWJlcjsgZjogbnVtYmVyOyB2OiBudW1iZXIgfSB7XG4gICAgY29uc3QgZ2Z2TnVtYmVyID0gdHlwZW9mIGdmdiA9PT0gXCJzdHJpbmdcIiA/IE51bWJlcihnZnYpIDogZ2Z2O1xuICAgIHJldHVybiB7XG4gICAgICAgIGc6IE1hdGguZmxvb3IoZ2Z2TnVtYmVyIC8gMTAwMDAwKSxcbiAgICAgICAgZjogTWF0aC5mbG9vcigoZ2Z2TnVtYmVyICUgMTAwMDAwKSAvIDEwMCksXG4gICAgICAgIHY6IGdmdk51bWJlciAlIDEwMCxcbiAgICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxFQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxJQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxzQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLDBCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxxQkFBQSxHQUFBUCxPQUFBO0FBQStFLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFWLHdCQUFBYyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFB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
|
|
117
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfZnNFeHRyYSIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX0ZzVXRpbHMiLCJfQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlciIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5Jbml0Rm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwibG9nZ2VyIiwiZ2Z2cyIsInVuZGVmaW5lZCIsIkludmFsaWRDb21tYW5kTGluZUFyZ3VtZW50c0Vycm9yIiwicmVwb3NpdG9yeVJvb3QiLCJwcm9jZXNzIiwiY3dkIiwidGVtcGxhdGVEaXIiLCJqb2luIiwiX19kaXJuYW1lIiwiYmFzZW5hbWUiLCJub3JtYWxpemUiLCJpc0RpcmVjdG9yeUV4aXN0cyIsIldlbGxLbm93bkRpcmVjdG9yaWVzIiwiRm9ybXNEaXJlY3RvcnkiLCJFcnJvciIsImdmdiIsImdmdkxvZ2dlciIsIndpdGhQcmVmaXgiLCJnIiwiZiIsInNwbGl0R2Z2IiwiZm9ybVBhdGgiLCJ0b1N0cmluZyIsInBhZFN0YXJ0IiwiQ2FuZHlTdWJkaXJlY3RvcnlOYW1lIiwicGF0aEV4aXN0cyIsImVycm9yTWVzc2FnZSIsImVycm9yIiwidGVtcE91dHB1dERpciIsInJtZGlyIiwicmVjdXJzaXZlIiwibG9nIiwiZW5zdXJlRGlyIiwiaGlnaGxhbmRlckZhcm1QYXRoIiwiaGxSbmdQYXRoMSIsImhsUm5nUGF0aDIiLCJyZWxhdGl2ZUZpbGVQYXRoIiwiZ2xvYkFzeW5jIiwidGFyZ2V0UmVsYXRpdmVQYXRoIiwicmVwbGFjZSIsInZlcmJvc2UiLCJzdGF0IiwiaXNEaXJlY3RvcnkiLCJobHJuZyIsImV4aXN0c0hsUm5nUGF0aCIsImNvbnRlbnQiLCJyZWFkRmlsZSIsInRhcmdldENvbnRlbnQiLCJ3cml0ZUZpbGUiLCJpbmNsdWRlcyIsImZvcm1Kc29uUGF0aCIsIkZvcm1Kc29uRmlsZU5hbWUiLCJmb3JtQ29uZmlnIiwicmVhZEZvcm1Db25maWciLCJkZXBlbmRlbmNpZXMiLCJlbmdpbmUiLCJnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiIsImdlbmVyYXRvciIsImdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uIiwid3JpdGVKc29uIiwic3BhY2VzIiwibW92ZURpcmVjdG9yeSIsInNvdXJjZVBhdGgiLCJ0YXJnZXRQYXRoIiwiYmFzZWRpciIsImRpcm5hbWUiLCJwbGF0Zm9ybSIsInJlbmFtZSIsIm1vdmUiLCJnZnZOdW1iZXIiLCJOdW1iZXIiLCJNYXRoIiwiZmxvb3IiLCJ2Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0luaXRGb3JtL1J1bkluaXRGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBlbnN1cmVEaXIsIG1vdmUsIHBhdGhFeGlzdHMsIHJlYWRGaWxlLCByZW5hbWUsIHJtZGlyLCBzdGF0LCB3cml0ZUZpbGUsIHdyaXRlSnNvbiB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiwgZ2V0TGFzdFN0YWJsZUdlbmVyYXRvclZlcnNpb24gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IGdsb2JBc3luYywgaXNEaXJlY3RvcnlFeGlzdHMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Gc1V0aWxzXCI7XG5pbXBvcnQgeyBJbnZhbGlkQ29tbWFuZExpbmVBcmd1bWVudHNFcnJvciB9IGZyb20gXCIuLi8uLi9Db21tb25zL09wdGlvbnMvQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlclwiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IEluaXRGb3JtT3B0aW9ucyB9IGZyb20gXCIuL0luaXRGb3JtT3B0aW9uc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuSW5pdEZvcm0oY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCwgb3B0aW9uczogSW5pdEZvcm1PcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbG9nZ2VyID0gY29udGV4dC5sb2dnZXI7XG4gICAgaWYgKG9wdGlvbnMuZ2Z2cyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb21tYW5kTGluZUFyZ3VtZW50c0Vycm9yKFwi0J3QtSDRg9C60LDQt9Cw0L3QsCBHVkYg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y9cIiwgXCJcIik7XG4gICAgfVxuXG4gICAgbGV0IHJlcG9zaXRvcnlSb290ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCB0ZW1wbGF0ZURpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiRW1wdHlGb3JtVGVtcGxhdGVcIik7XG4gICAgaWYgKFxuICAgICAgICBwYXRoLmJhc2VuYW1lKHByb2Nlc3MuY3dkKCkpID09PSBcImNhbmR5LmZhcm1cIiB8fFxuICAgICAgICBwYXRoLmJhc2VuYW1lKHByb2Nlc3MuY3dkKCkpID09PSBcImNhbmR5LmRpYWRvYy5mYXJtXCIgfHxcbiAgICAgICAgcGF0aC5iYXNlbmFtZShwcm9jZXNzLmN3ZCgpKSA9PT0gXCJjYW5keS5ycG4uZmFybVwiIHx8XG4gICAgICAgIHBhdGguYmFzZW5hbWUocHJvY2Vzcy5jd2QoKSkgPT09IFwiVGVzdEZhcm1cIlxuICAgICkge1xuICAgICAgICByZXBvc2l0b3J5Um9vdCA9IHBhdGgubm9ybWFsaXplKHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgXCIuLlwiKSk7XG4gICAgfVxuXG4gICAgaWYgKCEoYXdhaXQgaXNEaXJlY3RvcnlFeGlzdHMocGF0aC5qb2luKHJlcG9zaXRvcnlSb290LCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3Jtc0RpcmVjdG9yeSkpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCLQotC10LrRg9GJ0LDRjyDQtNC40YDQtdC60YLQvtGA0LjRjyDQvdC1INC/0L7RhdC+0LbQsCDQvdCwINC60LDRgtCw0LvQvtCzINGBINC40YHRhdC+0LTQvdC40LrQsNC80Lgg0YTQvtGA0LxcIik7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBnZnYgb2Ygb3B0aW9ucy5nZnZzKSB7XG4gICAgICAgIGNvbnN0IGdmdkxvZ2dlciA9IGxvZ2dlci53aXRoUHJlZml4KGdmdik7XG4gICAgICAgIGNvbnN0IHsgZywgZiB9ID0gc3BsaXRHZnYoZ2Z2KTtcbiAgICAgICAgY29uc3QgZm9ybVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICByZXBvc2l0b3J5Um9vdCxcbiAgICAgICAgICAgIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1zRGlyZWN0b3J5LFxuICAgICAgICAgICAgZy50b1N0cmluZygpLFxuICAgICAgICAgICAgZi50b1N0cmluZygpLnBhZFN0YXJ0KDMsIFwiMFwiKSxcbiAgICAgICAgICAgIGdmdi50b1N0cmluZygpLFxuICAgICAgICAgICAgV2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lXG4gICAgICAgICk7XG4gICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZvcm1QYXRoKSkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYERpcmVjdG9yeSBmb3IgJyR7Z2Z2fScgYWxyZWFkeSBleGlzdHMuYDtcbiAgICAgICAgICAgIGdmdkxvZ2dlci5lcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGVtcE91dHB1dERpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLnRtcFwiLCBnZnYpO1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyh0ZW1wT3V0cHV0RGlyKSkge1xuICAgICAgICAgICAgYXdhaXQgcm1kaXIodGVtcE91dHB1dERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgQ3JlYXRpbmcgZGlyZWN0b3J5IHdpdGggc291cmNlcyBmcm9tIHRlbXBsYXRlYCk7XG4gICAgICAgIGF3YWl0IGVuc3VyZURpcih0ZW1wT3V0cHV0RGlyKTtcbiAgICAgICAgY29uc3QgaGlnaGxhbmRlckZhcm1QYXRoID0gcGF0aC5qb2luKHJlcG9zaXRvcnlSb290LCBcImhpZ2hsYW5kZXIuZmFybVwiLCBcIkZvcm1zXCIsIGdmdik7XG4gICAgICAgIGNvbnN0IGhsUm5nUGF0aDEgPSBwYXRoLmpvaW4oaGlnaGxhbmRlckZhcm1QYXRoLCBgJHtnZnZ9LtGB0YXQtdC80LAucm5nLnhtbGApO1xuICAgICAgICBjb25zdCBobFJuZ1BhdGgyID0gcGF0aC5qb2luKGhpZ2hsYW5kZXJGYXJtUGF0aCwgXCJIaWdobGFuZGVyXCIsIGAke2dmdn0u0YHRhdC10LzQsC5ybmcueG1sYCk7XG4gICAgICAgIGZvciAoY29uc3QgcmVsYXRpdmVGaWxlUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoXCIqKi8qXCIsIHsgY3dkOiB0ZW1wbGF0ZURpciB9KSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0UmVsYXRpdmVQYXRoID0gcmVsYXRpdmVGaWxlUGF0aC5yZXBsYWNlKC97Z2Z2fS9nLCBnZnYpO1xuICAgICAgICAgICAgZ2Z2TG9nZ2VyLnZlcmJvc2UoYFByb2Nlc3NpbmcgdGVtcGxhdGUgcGF0aCAke3JlbGF0aXZlRmlsZVBhdGh9YCk7XG4gICAgICAgICAgICBpZiAoKGF3YWl0IHN0YXQocGF0aC5qb2luKHRlbXBsYXRlRGlyLCByZWxhdGl2ZUZpbGVQYXRoKSkpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5qb2luKHRlbXBPdXRwdXREaXIsIHRhcmdldFJlbGF0aXZlUGF0aCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuaGxybmcgJiZcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UmVsYXRpdmVQYXRoID09PSBgc2NoZW1hcy8ke2dmdn0uMC5ybmcueG1sYCAmJlxuICAgICAgICAgICAgICAgICAgICAoKGF3YWl0IHBhdGhFeGlzdHMoaGxSbmdQYXRoMSkpIHx8IChhd2FpdCBwYXRoRXhpc3RzKGhsUm5nUGF0aDIpKSlcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhpc3RzSGxSbmdQYXRoID0gKGF3YWl0IHBhdGhFeGlzdHMoaGxSbmdQYXRoMSkpID8gaGxSbmdQYXRoMSA6IGhsUm5nUGF0aDI7XG4gICAgICAgICAgICAgICAgICAgIGdmdkxvZ2dlci5sb2coYENvcHkgc2NoZW1hIHJuZyBmaWxlIGZyb20gaGlnaGxhbmRlci5mYXJtLmApO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZXhpc3RzSGxSbmdQYXRoLCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRDb250ZW50ID0gY29udGVudC5yZXBsYWNlKC97Z2Z2fS9nLCBnZnYpO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUocGF0aC5qb2luKHRlbXBPdXRwdXREaXIsIHRhcmdldFJlbGF0aXZlUGF0aCksIHRhcmdldENvbnRlbnQsIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldFJlbGF0aXZlUGF0aC5pbmNsdWRlcyhcImhlbHBlcnMvYWRkUHJpbDEudHh0XCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL9C/0YDQuCDQutC+0L/QuNGA0L7QstCw0L3QuNC4IGpzINGE0LDQudC70L7QsiBiYWJlbCDQvdCw0YHQvtCy0YvQstCw0LXRgiB1c2Ugc3RyaWN0LCDQvtCx0L7RiNC70Lgg0YLQsNC60LjQvCDQv9GD0YLQtdC8XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUocGF0aC5qb2luKHRlbXBsYXRlRGlyLCByZWxhdGl2ZUZpbGVQYXRoKSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4odGVtcE91dHB1dERpciwgdGFyZ2V0UmVsYXRpdmVQYXRoLnJlcGxhY2UoXCIudHh0XCIsIFwiLmpzXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXRmLThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShwYXRoLmpvaW4odGVtcGxhdGVEaXIsIHJlbGF0aXZlRmlsZVBhdGgpLCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0Q29udGVudCA9IGNvbnRlbnQucmVwbGFjZSgve2dmdn0vZywgZ2Z2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShwYXRoLmpvaW4odGVtcE91dHB1dERpciwgdGFyZ2V0UmVsYXRpdmVQYXRoKSwgdGFyZ2V0Q29udGVudCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdmdkxvZ2dlci52ZXJib3NlKGBQcm9jZXNzZWQgdGVtcGxhdGUgcGF0aCAke3JlbGF0aXZlRmlsZVBhdGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKHRlbXBPdXRwdXREaXIsIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpO1xuICAgICAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBnZnZMb2dnZXIpO1xuICAgICAgICBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcyA9IHtcbiAgICAgICAgICAgIGVuZ2luZTogYXdhaXQgZ2V0TGFzdFN0YWJsZUVuZ2luZVZlcnNpb24oKSxcbiAgICAgICAgICAgIGdlbmVyYXRvcjogYXdhaXQgZ2V0TGFzdFN0YWJsZUdlbmVyYXRvclZlcnNpb24oKSxcbiAgICAgICAgfTtcbiAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgU2V0IGxhc3Qgc3RhYmxlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIGF3YWl0IHdyaXRlSnNvbihmb3JtSnNvblBhdGgsIGZvcm1Db25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICAgICAgICBnZnZMb2dnZXIubG9nKGBNb3ZpbmcgcHJlcGFyZWQgc291cmNlcyB0byAnJHtyZXBvc2l0b3J5Um9vdH0nYCk7XG4gICAgICAgIGF3YWl0IG1vdmVEaXJlY3RvcnkodGVtcE91dHB1dERpciwgZm9ybVBhdGgpO1xuICAgICAgICBnZnZMb2dnZXIubG9nKGBGb3JtIGNyZWF0aW5nIGNvbXBsZXRlZC4gUGF0aDogJyR7Zm9ybVBhdGh9J2ApO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbW92ZURpcmVjdG9yeShzb3VyY2VQYXRoOiBzdHJpbmcsIHRhcmdldFBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJhc2VkaXIgPSBwYXRoLmRpcm5hbWUodGFyZ2V0UGF0aCk7XG4gICAgYXdhaXQgZW5zdXJlRGlyKGJhc2VkaXIpO1xuICAgIGlmIChvcy5wbGF0Zm9ybSgpICE9PSBcIndpbjMyXCIpIHtcbiAgICAgICAgYXdhaXQgcmVuYW1lKHNvdXJjZVBhdGgsIHRhcmdldFBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzb3VyY2VQYXRoWzBdID09PSB0YXJnZXRQYXRoWzBdKSB7XG4gICAgICAgICAgICBhd2FpdCByZW5hbWUoc291cmNlUGF0aCwgdGFyZ2V0UGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBtb3ZlKHNvdXJjZVBhdGgsIHRhcmdldFBhdGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBzcGxpdEdmdihnZnY6IHN0cmluZyB8IG51bWJlcik6IHsgZzogbnVtYmVyOyBmOiBudW1iZXI7IHY6IG51bWJlciB9IHtcbiAgICBjb25zdCBnZnZOdW1iZXIgPSB0eXBlb2YgZ2Z2ID09PSBcInN0cmluZ1wiID8gTnVtYmVyKGdmdikgOiBnZnY7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZzogTWF0aC5mbG9vcihnZnZOdW1iZXIgLyAxMDAwMDApLFxuICAgICAgICBmOiBNYXRoLmZsb29yKChnZnZOdW1iZXIgJSAxMDAwMDApIC8gMTAwKSxcbiAgICAgICAgdjogZ2Z2TnVtYmVyICUgMTAwLFxuICAgIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLEVBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLElBQUEsR0FBQUYsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLHNCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxnQkFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sMEJBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLHFCQUFBLEdBQUFQLE9BQUE7QUFBK0UsU0FBQVEseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVYsd0JBQUFjLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTCxHQUFBLFNBQUFNLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFB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
|