@kontur.candy/tools 2.191.1 → 2.193.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/README.md +5 -1
- package/distr/Common/CandyApiClient/CandyApiClient.js +4 -1
- package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -1
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +4 -1
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -1
- package/distr/Common/CandyApiClient/ICandyApiClient.js +1 -1
- package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -1
- package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +8 -2
- package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js.map +1 -1
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +1 -1
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js.map +1 -1
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolveInnerPathRequest.js +6 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolveInnerPathRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolvePathResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolvePathResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +1 -1
- package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js.map +1 -1
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js +3 -3
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +11 -2
- package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js +24 -0
- package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +3 -3
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +4 -16
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +3 -8
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js.map +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +1 -21
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js.map +1 -1
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +2 -2
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js.map +1 -1
- package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js +2 -15
- package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js.map +1 -1
- package/distr/Tools/src/CandyCLI.js +5 -1
- package/distr/Tools/src/CandyCLI.js.map +1 -1
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +5 -2
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js.map +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 +128 -100
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +80 -52
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/package.json +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.LICENSE.txt +0 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +0 -3328
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js.map +0 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +0 -6517
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js.map +0 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +0 -222
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js.map +0 -1
package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js
CHANGED
|
@@ -208,26 +208,6 @@ class FarmDirectory {
|
|
|
208
208
|
}
|
|
209
209
|
return undefined;
|
|
210
210
|
}
|
|
211
|
-
async getAllPresentationsFileNames() {
|
|
212
|
-
const result = [];
|
|
213
|
-
for (const gfvInfo of await this.enumerateAllGfvs()) {
|
|
214
|
-
if (await (0, _fsExtra.pathExists)(_path.default.join(gfvInfo.formPath, "presentations.json"))) {
|
|
215
|
-
result.push(`${gfvInfo.gfv}.presentations.json`);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
return result;
|
|
219
|
-
}
|
|
220
|
-
async getPresentationsFilePathByGfvOrUndefined(gfv) {
|
|
221
|
-
for (const gfvInfo of await this.enumerateAllGfvs()) {
|
|
222
|
-
if (gfvInfo.gfv === gfv) {
|
|
223
|
-
const filePath = _path.default.join(gfvInfo.formPath, "presentations.json");
|
|
224
|
-
if (await (0, _fsExtra.pathExists)(filePath)) {
|
|
225
|
-
return filePath;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
return undefined;
|
|
230
|
-
}
|
|
231
211
|
}
|
|
232
212
|
exports.FarmDirectory = FarmDirectory;
|
|
233
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzIiwiX2ZzRXh0cmEiLCJfcExpbWl0IiwiX0Zvcm1HbG9ic1V0aWxzIiwiX0ZzVXRpbHMiLCJfVHlwaW5nVXRpbHMiLCJfRXh0cmFjdEdmdnNGcm9tRmlsZU5hbWUiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGYXJtRGlyZWN0b3J5IiwiY29uc3RydWN0b3IiLCJmYXJtRGlyZWN0b3J5IiwiZ2Z2VG9QYXRoTWFwIiwiYWxsR2Z2SW5mb3MiLCJlbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQiLCJ1cGRhdGVHZnZEaXJlY3Rvcmllc0xpbWl0IiwicExpbWl0IiwidW5kZWZpbmVkIiwidXBkYXRlR2Z2RGlyZWN0b3JpZXMiLCJzZXRUaW1lb3V0IiwiRm9ybUdsb2JzIiwiZW51bWVyYXRlRm9ybXNJblJlcG9zaXRvcnkiLCJwYXRoIiwiam9pbiIsIk1hcCIsIm1hcCIsIngiLCJnZnYiLCJmb3JtUGF0aCIsImdldEFsbFBpY2tsaXN0cyIsImdsb2JBc3luYyIsImN3ZCIsImdldEZvcm1EaXJlY3RvcnkiLCJlbnVtZXJhdGVBbGxHZnZzIiwiX3RoaXMkYWxsR2Z2SW5mb3MiLCJyZWplY3QiLCJnZXRHZnZUb1BhdGhNYXAiLCJfdGhpcyRnZnZUb1BhdGhNYXAiLCJnZXRBbGxHZnZzIiwiZm9ybUdmdlBhdGhzIiwiZ2V0QWxsR2Z2V2l0aExvY2F0aW9ucyIsImdldEZvcm1Kc29uUGF0aCIsIl90aGlzJGdmdlRvUGF0aE1hcDIiLCJmb3JtRGlyUGF0aCIsImdldCIsImV4aXN0c1N5bmMiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJnZXRBbGxDb252ZXJ0ZXJGaWxlUGF0aHMiLCJyZXN1bHQiLCJnZnZJbmZvIiwicHVzaCIsImdldENvbnZlcnRlckZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZmlsZW5hbWUiLCJleHRyYWN0R2Z2c0Zyb21GaWxlTmFtZSIsImZpbGVQYXRoIiwicGF0aEV4aXN0cyIsImdldEFsbFNjaGVtYXNGaWxlUGF0aHMiLCJnZXRTY2hlbWFGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsImdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocyIsImdldE5vcm1hbGl6ZUZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsVW5tYXBGaWxlUGF0aHMiLCJnZXRVbm1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsTWFwRmlsZVBhdGhzIiwiZ2V0TWFwRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxQYXRjaEZpbGVQYXRocyIsImdldFBhdGNoRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxNZXJnZXJzRmlsZVBhdGhzIiwiZ2V0TWVyZ2Vyc0ZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsUHJlc2VudGF0aW9uc0ZpbGVOYW1lcyIsImdldFByZXNlbnRhdGlvbnNGaWxlUGF0aEJ5R2Z2T3JVbmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL0Zhcm1EaXJlY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwiZnNcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHBMaW1pdCBmcm9tIFwicC1saW1pdFwiO1xuXG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgZ2xvYkFzeW5jIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRnNVdGlsc1wiO1xuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL0NvbW1vbi9UeXBpbmdVdGlsc1wiO1xuaW1wb3J0IHsgZXh0cmFjdEdmdnNGcm9tRmlsZU5hbWUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9ucy9FeHRyYWN0R2Z2c0Zyb21GaWxlTmFtZVwiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5pbXBvcnQgeyBGb3JtTG9jYXRpb25JbmZvIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRm9ybUxvY2F0aW9uSW5mb1wiO1xuXG5leHBvcnQgY2xhc3MgRmFybURpcmVjdG9yeSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBnZnZUb1BhdGhNYXA6IHVuZGVmaW5lZCB8IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJpdmF0ZSBhbGxHZnZJbmZvcz86IEFycmF5PHsgZ2Z2OiBzdHJpbmc7IGZvcm1QYXRoOiBzdHJpbmc7IGZvcm1SZWxhdGl2ZVBhdGg6IHN0cmluZyB9PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVuc3VyZUdmdkRpcmVjdG9yaWVzVXBkYXRlZDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmYXJtRGlyZWN0b3J5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5ID0gZmFybURpcmVjdG9yeTtcbiAgICAgICAgY29uc3QgdXBkYXRlR2Z2RGlyZWN0b3JpZXNMaW1pdCA9IHBMaW1pdCgxKTtcbiAgICAgICAgdGhpcy5lbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5hbGxHZnZJbmZvcyA9PSB1bmRlZmluZWQgfHwgdGhpcy5nZnZUb1BhdGhNYXAgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdXBkYXRlR2Z2RGlyZWN0b3JpZXNMaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFsbEdmdkluZm9zID09IHVuZGVmaW5lZCB8fCB0aGlzLmdmdlRvUGF0aE1hcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlR2Z2RGlyZWN0b3JpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgICAgICAgICAgIHVwZGF0ZUdmdkRpcmVjdG9yaWVzTGltaXQoKCkgPT4gdGhpcy51cGRhdGVHZnZEaXJlY3RvcmllcygpKTtcbiAgICAgICAgfSwgNjAwMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgdXBkYXRlR2Z2RGlyZWN0b3JpZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuYWxsR2Z2SW5mb3MgPSBhd2FpdCBGb3JtR2xvYnMuZW51bWVyYXRlRm9ybXNJblJlcG9zaXRvcnkocGF0aC5qb2luKHRoaXMuZmFybURpcmVjdG9yeSwgXCIuLlwiKSk7XG4gICAgICAgIHRoaXMuZ2Z2VG9QYXRoTWFwID0gbmV3IE1hcCh0aGlzLmFsbEdmdkluZm9zLm1hcCh4ID0+IFt4LmdmdiwgeC5mb3JtUGF0aF0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsUGlja2xpc3RzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdsb2JBc3luYyhcIipcIiwgeyBjd2Q6IHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIpIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRGb3JtRGlyZWN0b3J5KCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdsb2JBc3luYyhcIipcIiwgeyBjd2Q6IHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIpIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgZW51bWVyYXRlQWxsR2Z2cygpOiBQcm9taXNlPEFycmF5PHsgZ2Z2OiBzdHJpbmc7IGZvcm1QYXRoOiBzdHJpbmc7IGZvcm1SZWxhdGl2ZVBhdGg6IHN0cmluZyB9Pj4ge1xuICAgICAgICBhd2FpdCB0aGlzLmVuc3VyZUdmdkRpcmVjdG9yaWVzVXBkYXRlZCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxHZnZJbmZvcyA/PyByZWplY3QoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldEdmdlRvUGF0aE1hcCgpOiBQcm9taXNlPE1hcDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2Z2VG9QYXRoTWFwID8/IHJlamVjdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxHZnZzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgZm9ybUdmdlBhdGhzID0gYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCk7XG4gICAgICAgIHJldHVybiBmb3JtR2Z2UGF0aHMubWFwKHggPT4geC5nZnYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxHZnZXaXRoTG9jYXRpb25zKCk6IFByb21pc2U8Rm9ybUxvY2F0aW9uSW5mb1tdPiB7XG4gICAgICAgIGNvbnN0IGZvcm1HZnZQYXRocyA9IGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpO1xuICAgICAgICByZXR1cm4gZm9ybUdmdlBhdGhzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRGb3JtSnNvblBhdGgoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmVuc3VyZUdmdkRpcmVjdG9yaWVzVXBkYXRlZCgpO1xuICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9ICh0aGlzLmdmdlRvUGF0aE1hcCA/PyByZWplY3QoKSkuZ2V0KGdmdik7XG4gICAgICAgIGlmIChmb3JtRGlyUGF0aCAhPSB1bmRlZmluZWQgJiYgZXhpc3RzU3luYyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGguam9pbihmb3JtRGlyUGF0aCwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQ29udmVydGVyRmlsZVBhdGhzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uKGF3YWl0IGdsb2JBc3luYyhcImNvbnZlcnRlcnMvKlwiLCB7IGN3ZDogZ2Z2SW5mby5mb3JtUGF0aCB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldENvbnZlcnRlckZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCBnZnZUb1BhdGhNYXAgPSBhd2FpdCB0aGlzLmdldEdmdlRvUGF0aE1hcCgpO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdiBvZiBleHRyYWN0R2Z2c0Zyb21GaWxlTmFtZShmaWxlbmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gZ2Z2VG9QYXRoTWFwLmdldChnZnYpO1xuICAgICAgICAgICAgaWYgKGZvcm1QYXRoID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZm9ybVBhdGgsIFwiY29udmVydGVyc1wiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJzY2hlbWFzLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRTY2hlbWFGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihnZnZJbmZvLmZvcm1QYXRoLCBcInNjaGVtYXNcIiwgZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJub3JtYWxpemUvKlwiLCB7IGN3ZDogZ2Z2SW5mby5mb3JtUGF0aCB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldE5vcm1hbGl6ZUZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwibm9ybWFsaXplXCIsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxVbm1hcEZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJ1bm1hcC8qXCIsIHsgY3dkOiBnZnZJbmZvLmZvcm1QYXRoIH0pKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0VW5tYXBGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihnZnZJbmZvLmZvcm1QYXRoLCBcInVubWFwXCIsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxNYXBGaWxlUGF0aHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi4oYXdhaXQgZ2xvYkFzeW5jKFwibWFwLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRNYXBGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihnZnZJbmZvLmZvcm1QYXRoLCBcIm1hcFwiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsUGF0Y2hGaWxlUGF0aHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi4oYXdhaXQgZ2xvYkFzeW5jKFwicGF0Y2gvKlwiLCB7IGN3ZDogZ2Z2SW5mby5mb3JtUGF0aCB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFBhdGNoRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZ2Z2SW5mby5mb3JtUGF0aCwgXCJwYXRjaFwiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsTWVyZ2Vyc0ZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJtZXJnZXJzLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRNZXJnZXJzRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZ2Z2SW5mby5mb3JtUGF0aCwgXCJtZXJnZXJzXCIsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxQcmVzZW50YXRpb25zRmlsZU5hbWVzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwicHJlc2VudGF0aW9ucy5qc29uXCIpKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGAke2dmdkluZm8uZ2Z2fS5wcmVzZW50YXRpb25zLmpzb25gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRQcmVzZW50YXRpb25zRmlsZVBhdGhCeUdmdk9yVW5kZWZpbmVkKGdmdjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBpZiAoZ2Z2SW5mby5nZnYgPT09IGdmdikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwicHJlc2VudGF0aW9ucy5qc29uXCIpO1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1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
|
|
213
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzIiwiX2ZzRXh0cmEiLCJfcExpbWl0IiwiX0Zvcm1HbG9ic1V0aWxzIiwiX0ZzVXRpbHMiLCJfVHlwaW5nVXRpbHMiLCJfRXh0cmFjdEdmdnNGcm9tRmlsZU5hbWUiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGYXJtRGlyZWN0b3J5IiwiY29uc3RydWN0b3IiLCJmYXJtRGlyZWN0b3J5IiwiZ2Z2VG9QYXRoTWFwIiwiYWxsR2Z2SW5mb3MiLCJlbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQiLCJ1cGRhdGVHZnZEaXJlY3Rvcmllc0xpbWl0IiwicExpbWl0IiwidW5kZWZpbmVkIiwidXBkYXRlR2Z2RGlyZWN0b3JpZXMiLCJzZXRUaW1lb3V0IiwiRm9ybUdsb2JzIiwiZW51bWVyYXRlRm9ybXNJblJlcG9zaXRvcnkiLCJwYXRoIiwiam9pbiIsIk1hcCIsIm1hcCIsIngiLCJnZnYiLCJmb3JtUGF0aCIsImdldEFsbFBpY2tsaXN0cyIsImdsb2JBc3luYyIsImN3ZCIsImdldEZvcm1EaXJlY3RvcnkiLCJlbnVtZXJhdGVBbGxHZnZzIiwiX3RoaXMkYWxsR2Z2SW5mb3MiLCJyZWplY3QiLCJnZXRHZnZUb1BhdGhNYXAiLCJfdGhpcyRnZnZUb1BhdGhNYXAiLCJnZXRBbGxHZnZzIiwiZm9ybUdmdlBhdGhzIiwiZ2V0QWxsR2Z2V2l0aExvY2F0aW9ucyIsImdldEZvcm1Kc29uUGF0aCIsIl90aGlzJGdmdlRvUGF0aE1hcDIiLCJmb3JtRGlyUGF0aCIsImdldCIsImV4aXN0c1N5bmMiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJnZXRBbGxDb252ZXJ0ZXJGaWxlUGF0aHMiLCJyZXN1bHQiLCJnZnZJbmZvIiwicHVzaCIsImdldENvbnZlcnRlckZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZmlsZW5hbWUiLCJleHRyYWN0R2Z2c0Zyb21GaWxlTmFtZSIsImZpbGVQYXRoIiwicGF0aEV4aXN0cyIsImdldEFsbFNjaGVtYXNGaWxlUGF0aHMiLCJnZXRTY2hlbWFGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsImdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocyIsImdldE5vcm1hbGl6ZUZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsVW5tYXBGaWxlUGF0aHMiLCJnZXRVbm1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsTWFwRmlsZVBhdGhzIiwiZ2V0TWFwRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxQYXRjaEZpbGVQYXRocyIsImdldFBhdGNoRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxNZXJnZXJzRmlsZVBhdGhzIiwiZ2V0TWVyZ2Vyc0ZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EaXJlY3Rvcmllcy9GYXJtRGlyZWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSBcImZzXCI7XG5cbmltcG9ydCB7IHBhdGhFeGlzdHMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBwTGltaXQgZnJvbSBcInAtbGltaXRcIjtcblxuaW1wb3J0IHsgRm9ybUdsb2JzIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHNcIjtcbmltcG9ydCB7IGdsb2JBc3luYyB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb25zL0ZzVXRpbHNcIjtcbmltcG9ydCB7IHJlamVjdCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9Db21tb24vVHlwaW5nVXRpbHNcIjtcbmltcG9ydCB7IGV4dHJhY3RHZnZzRnJvbUZpbGVOYW1lIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbnMvRXh0cmFjdEdmdnNGcm9tRmlsZU5hbWVcIjtcbmltcG9ydCB7IFdlbGxLbm93bkRpcmVjdG9yaWVzIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL0NvbW1vbi9XZWxsS25vd25EaXJlY3Rvcmllc1wiO1xuaW1wb3J0IHsgRm9ybUxvY2F0aW9uSW5mbyB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb25zL0Zvcm1Mb2NhdGlvbkluZm9cIjtcblxuZXhwb3J0IGNsYXNzIEZhcm1EaXJlY3Rvcnkge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFybURpcmVjdG9yeTogc3RyaW5nO1xuICAgIHByaXZhdGUgZ2Z2VG9QYXRoTWFwOiB1bmRlZmluZWQgfCBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHByaXZhdGUgYWxsR2Z2SW5mb3M/OiBBcnJheTx7IGdmdjogc3RyaW5nOyBmb3JtUGF0aDogc3RyaW5nOyBmb3JtUmVsYXRpdmVQYXRoOiBzdHJpbmcgfT47XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQ6ICgpID0+IFByb21pc2U8dm9pZD47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZmFybURpcmVjdG9yeTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZmFybURpcmVjdG9yeSA9IGZhcm1EaXJlY3Rvcnk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZUdmdkRpcmVjdG9yaWVzTGltaXQgPSBwTGltaXQoMSk7XG4gICAgICAgIHRoaXMuZW5zdXJlR2Z2RGlyZWN0b3JpZXNVcGRhdGVkID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsR2Z2SW5mb3MgPT0gdW5kZWZpbmVkIHx8IHRoaXMuZ2Z2VG9QYXRoTWFwID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHVwZGF0ZUdmdkRpcmVjdG9yaWVzTGltaXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hbGxHZnZJbmZvcyA9PSB1bmRlZmluZWQgfHwgdGhpcy5nZnZUb1BhdGhNYXAgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUdmdkRpcmVjdG9yaWVzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXG4gICAgICAgICAgICB1cGRhdGVHZnZEaXJlY3Rvcmllc0xpbWl0KCgpID0+IHRoaXMudXBkYXRlR2Z2RGlyZWN0b3JpZXMoKSk7XG4gICAgICAgIH0sIDYwMDAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHVwZGF0ZUdmdkRpcmVjdG9yaWVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmFsbEdmdkluZm9zID0gYXdhaXQgRm9ybUdsb2JzLmVudW1lcmF0ZUZvcm1zSW5SZXBvc2l0b3J5KHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwiLi5cIikpO1xuICAgICAgICB0aGlzLmdmdlRvUGF0aE1hcCA9IG5ldyBNYXAodGhpcy5hbGxHZnZJbmZvcy5tYXAoeCA9PiBbeC5nZnYsIHguZm9ybVBhdGhdKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFBpY2tsaXN0cygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCBnbG9iQXN5bmMoXCIqXCIsIHsgY3dkOiBwYXRoLmpvaW4odGhpcy5mYXJtRGlyZWN0b3J5LCBcInBpY2tsaXN0c1wiKSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Rm9ybURpcmVjdG9yeSgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCBnbG9iQXN5bmMoXCIqXCIsIHsgY3dkOiBwYXRoLmpvaW4odGhpcy5mYXJtRGlyZWN0b3J5LCBcInBpY2tsaXN0c1wiKSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGVudW1lcmF0ZUFsbEdmdnMoKTogUHJvbWlzZTxBcnJheTx7IGdmdjogc3RyaW5nOyBmb3JtUGF0aDogc3RyaW5nOyBmb3JtUmVsYXRpdmVQYXRoOiBzdHJpbmcgfT4+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsR2Z2SW5mb3MgPz8gcmVqZWN0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRHZnZUb1BhdGhNYXAoKTogUHJvbWlzZTxNYXA8c3RyaW5nLCBzdHJpbmc+PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZW5zdXJlR2Z2RGlyZWN0b3JpZXNVcGRhdGVkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmdmdlRvUGF0aE1hcCA/PyByZWplY3QoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsR2Z2cygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IGZvcm1HZnZQYXRocyA9IGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpO1xuICAgICAgICByZXR1cm4gZm9ybUdmdlBhdGhzLm1hcCh4ID0+IHguZ2Z2KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsR2Z2V2l0aExvY2F0aW9ucygpOiBQcm9taXNlPEZvcm1Mb2NhdGlvbkluZm9bXT4ge1xuICAgICAgICBjb25zdCBmb3JtR2Z2UGF0aHMgPSBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKTtcbiAgICAgICAgcmV0dXJuIGZvcm1HZnZQYXRocztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Rm9ybUpzb25QYXRoKGdmdjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbnN1cmVHZnZEaXJlY3Rvcmllc1VwZGF0ZWQoKTtcbiAgICAgICAgY29uc3QgZm9ybURpclBhdGggPSAodGhpcy5nZnZUb1BhdGhNYXAgPz8gcmVqZWN0KCkpLmdldChnZnYpO1xuICAgICAgICBpZiAoZm9ybURpclBhdGggIT0gdW5kZWZpbmVkICYmIGV4aXN0c1N5bmMocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbENvbnZlcnRlckZpbGVQYXRocygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLihhd2FpdCBnbG9iQXN5bmMoXCJjb252ZXJ0ZXJzLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRDb252ZXJ0ZXJGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3QgZ2Z2VG9QYXRoTWFwID0gYXdhaXQgdGhpcy5nZXRHZnZUb1BhdGhNYXAoKTtcbiAgICAgICAgZm9yIChjb25zdCBnZnYgb2YgZXh0cmFjdEdmdnNGcm9tRmlsZU5hbWUoZmlsZW5hbWUpKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtUGF0aCA9IGdmdlRvUGF0aE1hcC5nZXQoZ2Z2KTtcbiAgICAgICAgICAgIGlmIChmb3JtUGF0aCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGZvcm1QYXRoLCBcImNvbnZlcnRlcnNcIiwgZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFNjaGVtYXNGaWxlUGF0aHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi4oYXdhaXQgZ2xvYkFzeW5jKFwic2NoZW1hcy8qXCIsIHsgY3dkOiBnZnZJbmZvLmZvcm1QYXRoIH0pKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0U2NoZW1hRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZ2Z2SW5mby5mb3JtUGF0aCwgXCJzY2hlbWFzXCIsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxOb3JtYWxpemVGaWxlUGF0aHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi4oYXdhaXQgZ2xvYkFzeW5jKFwibm9ybWFsaXplLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXROb3JtYWxpemVGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihnZnZJbmZvLmZvcm1QYXRoLCBcIm5vcm1hbGl6ZVwiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsVW5tYXBGaWxlUGF0aHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi4oYXdhaXQgZ2xvYkFzeW5jKFwidW5tYXAvKlwiLCB7IGN3ZDogZ2Z2SW5mby5mb3JtUGF0aCB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFVubWFwRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZ2Z2SW5mby5mb3JtUGF0aCwgXCJ1bm1hcFwiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsTWFwRmlsZVBhdGhzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uKGF3YWl0IGdsb2JBc3luYyhcIm1hcC8qXCIsIHsgY3dkOiBnZnZJbmZvLmZvcm1QYXRoIH0pKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0TWFwRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZ2Z2SW5mby5mb3JtUGF0aCwgXCJtYXBcIiwgZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFBhdGNoRmlsZVBhdGhzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZ2Z2SW5mbyBvZiBhd2FpdCB0aGlzLmVudW1lcmF0ZUFsbEdmdnMoKSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uKGF3YWl0IGdsb2JBc3luYyhcInBhdGNoLypcIiwgeyBjd2Q6IGdmdkluZm8uZm9ybVBhdGggfSkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRQYXRjaEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwicGF0Y2hcIiwgZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE1lcmdlcnNGaWxlUGF0aHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBnZnZJbmZvIG9mIGF3YWl0IHRoaXMuZW51bWVyYXRlQWxsR2Z2cygpKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi4oYXdhaXQgZ2xvYkFzeW5jKFwibWVyZ2Vycy8qXCIsIHsgY3dkOiBnZnZJbmZvLmZvcm1QYXRoIH0pKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0TWVyZ2Vyc0ZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGdmdkluZm8gb2YgYXdhaXQgdGhpcy5lbnVtZXJhdGVBbGxHZnZzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGdmdkluZm8uZm9ybVBhdGgsIFwibWVyZ2Vyc1wiLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FarmDirectory.js","names":["_path","_interopRequireDefault","require","_fs","_fsExtra","_pLimit","_FormGlobsUtils","_FsUtils","_TypingUtils","_ExtractGfvsFromFileName","_WellKnownDirectories","FarmDirectory","constructor","farmDirectory","gfvToPathMap","allGfvInfos","ensureGfvDirectoriesUpdated","updateGfvDirectoriesLimit","pLimit","undefined","updateGfvDirectories","setTimeout","FormGlobs","enumerateFormsInRepository","path","join","Map","map","x","gfv","formPath","getAllPicklists","globAsync","cwd","getFormDirectory","enumerateAllGfvs","_this$allGfvInfos","reject","getGfvToPathMap","_this$gfvToPathMap","getAllGfvs","formGfvPaths","getAllGfvWithLocations","getFormJsonPath","_this$gfvToPathMap2","formDirPath","get","existsSync","WellKnownDirectories","FormJsonFileName","getAllConverterFilePaths","result","gfvInfo","push","getConverterFilePathByFileNameOrUndefined","filename","extractGfvsFromFileName","filePath","pathExists","getAllSchemasFilePaths","getSchemaFilePathByFileNameOrUndefined","getAllNormalizeFilePaths","getNormalizeFilePathByFileNameOrUndefined","getAllUnmapFilePaths","getUnmapFilePathByFileNameOrUndefined","getAllMapFilePaths","getMapFilePathByFileNameOrUndefined","getAllPatchFilePaths","getPatchFilePathByFileNameOrUndefined","getAllMergersFilePaths","getMergersFilePathByFileNameOrUndefined","getAllPresentationsFileNames","getPresentationsFilePathByGfvOrUndefined","exports"],"sources":["../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.ts"],"sourcesContent":["import path from \"path\";\nimport { existsSync } from \"fs\";\n\nimport { pathExists } from \"fs-extra\";\nimport pLimit from \"p-limit\";\n\nimport { FormGlobs } from \"../../../../Commons/FormGlobsUtils\";\nimport { globAsync } from \"../../../../Commons/FsUtils\";\nimport { reject } from \"../../../../../../Common/TypingUtils\";\nimport { extractGfvsFromFileName } from \"../../../../Commons/ExtractGfvsFromFileName\";\nimport { WellKnownDirectories } from \"../../../../../../Common/WellKnownDirectories\";\nimport { FormLocationInfo } from \"../../../../Commons/FormLocationInfo\";\n\nexport class FarmDirectory {\n private readonly farmDirectory: string;\n private gfvToPathMap: undefined | Map<string, string>;\n private allGfvInfos?: Array<{ gfv: string; formPath: string; formRelativePath: string }>;\n private readonly ensureGfvDirectoriesUpdated: () => Promise<void>;\n\n public constructor(farmDirectory: string) {\n this.farmDirectory = farmDirectory;\n const updateGfvDirectoriesLimit = pLimit(1);\n this.ensureGfvDirectoriesUpdated = async () => {\n if (this.allGfvInfos == undefined || this.gfvToPathMap == undefined) {\n await updateGfvDirectoriesLimit(async () => {\n if (this.allGfvInfos == undefined || this.gfvToPathMap == undefined) {\n await this.updateGfvDirectories();\n }\n });\n }\n };\n setTimeout(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n updateGfvDirectoriesLimit(() => this.updateGfvDirectories());\n }, 60000);\n }\n\n private async updateGfvDirectories(): Promise<void> {\n this.allGfvInfos = await FormGlobs.enumerateFormsInRepository(path.join(this.farmDirectory, \"..\"));\n this.gfvToPathMap = new Map(this.allGfvInfos.map(x => [x.gfv, x.formPath]));\n }\n\n public async getAllPicklists(): Promise<string[]> {\n return await globAsync(\"*\", { cwd: path.join(this.farmDirectory, \"picklists\") });\n }\n\n public async getFormDirectory(): Promise<string[]> {\n return await globAsync(\"*\", { cwd: path.join(this.farmDirectory, \"picklists\") });\n }\n\n private async enumerateAllGfvs(): Promise<Array<{ gfv: string; formPath: string; formRelativePath: string }>> {\n await this.ensureGfvDirectoriesUpdated();\n return this.allGfvInfos ?? reject();\n }\n\n private async getGfvToPathMap(): Promise<Map<string, string>> {\n await this.ensureGfvDirectoriesUpdated();\n return this.gfvToPathMap ?? reject();\n }\n\n public async getAllGfvs(): Promise<string[]> {\n const formGfvPaths = await this.enumerateAllGfvs();\n return formGfvPaths.map(x => x.gfv);\n }\n\n public async getAllGfvWithLocations(): Promise<FormLocationInfo[]> {\n const formGfvPaths = await this.enumerateAllGfvs();\n return formGfvPaths;\n }\n\n public async getFormJsonPath(gfv: string): Promise<string | undefined> {\n await this.ensureGfvDirectoriesUpdated();\n const formDirPath = (this.gfvToPathMap ?? reject()).get(gfv);\n if (formDirPath != undefined && existsSync(path.join(formDirPath, WellKnownDirectories.FormJsonFileName))) {\n return path.join(formDirPath, WellKnownDirectories.FormJsonFileName);\n }\n return undefined;\n }\n\n public async getAllConverterFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"converters/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getConverterFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n const gfvToPathMap = await this.getGfvToPathMap();\n for (const gfv of extractGfvsFromFileName(filename)) {\n const formPath = gfvToPathMap.get(gfv);\n if (formPath == undefined) {\n continue;\n }\n const filePath = path.join(formPath, \"converters\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllSchemasFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"schemas/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getSchemaFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"schemas\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllNormalizeFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"normalize/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getNormalizeFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"normalize\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllUnmapFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"unmap/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getUnmapFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"unmap\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllMapFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"map/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getMapFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"map\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllPatchFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"patch/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getPatchFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"patch\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllMergersFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"mergers/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getMergersFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"mergers\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllPresentationsFileNames(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n if (await pathExists(path.join(gfvInfo.formPath, \"presentations.json\"))) {\n result.push(`${gfvInfo.gfv}.presentations.json`);\n }\n }\n return result;\n }\n\n public async getPresentationsFilePathByGfvOrUndefined(gfv: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n if (gfvInfo.gfv === gfv) {\n const filePath = path.join(gfvInfo.formPath, \"presentations.json\");\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n }\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FarmDirectory.js","names":["_path","_interopRequireDefault","require","_fs","_fsExtra","_pLimit","_FormGlobsUtils","_FsUtils","_TypingUtils","_ExtractGfvsFromFileName","_WellKnownDirectories","FarmDirectory","constructor","farmDirectory","gfvToPathMap","allGfvInfos","ensureGfvDirectoriesUpdated","updateGfvDirectoriesLimit","pLimit","undefined","updateGfvDirectories","setTimeout","FormGlobs","enumerateFormsInRepository","path","join","Map","map","x","gfv","formPath","getAllPicklists","globAsync","cwd","getFormDirectory","enumerateAllGfvs","_this$allGfvInfos","reject","getGfvToPathMap","_this$gfvToPathMap","getAllGfvs","formGfvPaths","getAllGfvWithLocations","getFormJsonPath","_this$gfvToPathMap2","formDirPath","get","existsSync","WellKnownDirectories","FormJsonFileName","getAllConverterFilePaths","result","gfvInfo","push","getConverterFilePathByFileNameOrUndefined","filename","extractGfvsFromFileName","filePath","pathExists","getAllSchemasFilePaths","getSchemaFilePathByFileNameOrUndefined","getAllNormalizeFilePaths","getNormalizeFilePathByFileNameOrUndefined","getAllUnmapFilePaths","getUnmapFilePathByFileNameOrUndefined","getAllMapFilePaths","getMapFilePathByFileNameOrUndefined","getAllPatchFilePaths","getPatchFilePathByFileNameOrUndefined","getAllMergersFilePaths","getMergersFilePathByFileNameOrUndefined","exports"],"sources":["../../../../../../../src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.ts"],"sourcesContent":["import path from \"path\";\nimport { existsSync } from \"fs\";\n\nimport { pathExists } from \"fs-extra\";\nimport pLimit from \"p-limit\";\n\nimport { FormGlobs } from \"../../../../Commons/FormGlobsUtils\";\nimport { globAsync } from \"../../../../Commons/FsUtils\";\nimport { reject } from \"../../../../../../Common/TypingUtils\";\nimport { extractGfvsFromFileName } from \"../../../../Commons/ExtractGfvsFromFileName\";\nimport { WellKnownDirectories } from \"../../../../../../Common/WellKnownDirectories\";\nimport { FormLocationInfo } from \"../../../../Commons/FormLocationInfo\";\n\nexport class FarmDirectory {\n private readonly farmDirectory: string;\n private gfvToPathMap: undefined | Map<string, string>;\n private allGfvInfos?: Array<{ gfv: string; formPath: string; formRelativePath: string }>;\n private readonly ensureGfvDirectoriesUpdated: () => Promise<void>;\n\n public constructor(farmDirectory: string) {\n this.farmDirectory = farmDirectory;\n const updateGfvDirectoriesLimit = pLimit(1);\n this.ensureGfvDirectoriesUpdated = async () => {\n if (this.allGfvInfos == undefined || this.gfvToPathMap == undefined) {\n await updateGfvDirectoriesLimit(async () => {\n if (this.allGfvInfos == undefined || this.gfvToPathMap == undefined) {\n await this.updateGfvDirectories();\n }\n });\n }\n };\n setTimeout(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n updateGfvDirectoriesLimit(() => this.updateGfvDirectories());\n }, 60000);\n }\n\n private async updateGfvDirectories(): Promise<void> {\n this.allGfvInfos = await FormGlobs.enumerateFormsInRepository(path.join(this.farmDirectory, \"..\"));\n this.gfvToPathMap = new Map(this.allGfvInfos.map(x => [x.gfv, x.formPath]));\n }\n\n public async getAllPicklists(): Promise<string[]> {\n return await globAsync(\"*\", { cwd: path.join(this.farmDirectory, \"picklists\") });\n }\n\n public async getFormDirectory(): Promise<string[]> {\n return await globAsync(\"*\", { cwd: path.join(this.farmDirectory, \"picklists\") });\n }\n\n private async enumerateAllGfvs(): Promise<Array<{ gfv: string; formPath: string; formRelativePath: string }>> {\n await this.ensureGfvDirectoriesUpdated();\n return this.allGfvInfos ?? reject();\n }\n\n private async getGfvToPathMap(): Promise<Map<string, string>> {\n await this.ensureGfvDirectoriesUpdated();\n return this.gfvToPathMap ?? reject();\n }\n\n public async getAllGfvs(): Promise<string[]> {\n const formGfvPaths = await this.enumerateAllGfvs();\n return formGfvPaths.map(x => x.gfv);\n }\n\n public async getAllGfvWithLocations(): Promise<FormLocationInfo[]> {\n const formGfvPaths = await this.enumerateAllGfvs();\n return formGfvPaths;\n }\n\n public async getFormJsonPath(gfv: string): Promise<string | undefined> {\n await this.ensureGfvDirectoriesUpdated();\n const formDirPath = (this.gfvToPathMap ?? reject()).get(gfv);\n if (formDirPath != undefined && existsSync(path.join(formDirPath, WellKnownDirectories.FormJsonFileName))) {\n return path.join(formDirPath, WellKnownDirectories.FormJsonFileName);\n }\n return undefined;\n }\n\n public async getAllConverterFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"converters/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getConverterFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n const gfvToPathMap = await this.getGfvToPathMap();\n for (const gfv of extractGfvsFromFileName(filename)) {\n const formPath = gfvToPathMap.get(gfv);\n if (formPath == undefined) {\n continue;\n }\n const filePath = path.join(formPath, \"converters\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllSchemasFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"schemas/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getSchemaFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"schemas\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllNormalizeFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"normalize/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getNormalizeFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"normalize\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllUnmapFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"unmap/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getUnmapFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"unmap\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllMapFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"map/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getMapFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"map\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllPatchFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"patch/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getPatchFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"patch\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n\n public async getAllMergersFilePaths(): Promise<string[]> {\n const result = [];\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n result.push(...(await globAsync(\"mergers/*\", { cwd: gfvInfo.formPath })));\n }\n return result;\n }\n\n public async getMergersFilePathByFileNameOrUndefined(filename: string): Promise<string | undefined> {\n for (const gfvInfo of await this.enumerateAllGfvs()) {\n const filePath = path.join(gfvInfo.formPath, \"mergers\", filename);\n if (await pathExists(filePath)) {\n return filePath;\n }\n }\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -68,7 +68,7 @@ async function runDevBuild(context, options, engineDirectory, resourcesDirectory
|
|
|
68
68
|
skipCodeReformatting: options.skipGeneratedCodeReformatting,
|
|
69
69
|
resourcesHash: fi.dependenciesHash
|
|
70
70
|
});
|
|
71
|
-
}).attach(async fi => _Observe.Observe.files(_path.default.join(formDirPath, "form"), "**/*")).do(fi => (0, _CompileForm.compileForm)(fi.formName,
|
|
71
|
+
}).attach(async fi => _Observe.Observe.files(_path.default.join(formDirPath, "form"), "**/*")).do(fi => (0, _CompileForm.compileForm)(fi.formName, formDirPath, resourcesDirectory, fi.dependenciesHash, options.buildDebugOnly, undefined, false)).do(fi => (0, _WriteFLangNormalizationFiles.writeFLangNormalizationFiles)(fi.formName, farmDirectory, formDirPath, resourcesDirectory)).do(fi => (0, _WriteAttachmentPathFiles.writeAttachmentPathFiles)(fi.formName, farmDirectory, formDirPath, resourcesDirectory)).do(fi => (0, _WriteFormMeta.writeFormMeta)(resourcesDirectory, gfv, fi.engineSource, fi.dependenciesHash, fi.themes)).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "schemas"), rngSchemaMask).do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("SCHEMAS"), x, _path.default.join(resourcesDirectory, "schemas")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "converters"), "*").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("CONVERTERS"), x, _path.default.join(resourcesDirectory, "converters")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "mergers"), "*").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("MERGERS"), x, _path.default.join(resourcesDirectory, "mergers")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "normalize"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("NORMALIZE"), x, _path.default.join(resourcesDirectory, "normalize")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "patch"), "*.xslt").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("PATCH"), x, _path.default.join(resourcesDirectory, "patch")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "map"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("MAP"), x, _path.default.join(resourcesDirectory, "map")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "unmap"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("UNMAP"), x, _path.default.join(resourcesDirectory, "unmap"))));
|
|
72
72
|
});
|
|
73
73
|
if (devBuildOptions.watch) {
|
|
74
74
|
const stopObserve1 = await buildEngineChain.observe();
|
|
@@ -103,4 +103,4 @@ async function runDevBuild(context, options, engineDirectory, resourcesDirectory
|
|
|
103
103
|
console.log(`${_chalk.default.greenBright("Build success")} Total time: ${(0, _TimingUtils.printTime)(totalTime)}`);
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NoYWxrIiwiX0J1aWxkQ2xpZW50SnNUYXNrIiwiX0J1aWxkTG9jYWxFbmdpbmVUYXNrIiwiX0VuZ2luZVN0cnVjdHVyZVV0aWxzIiwiX0NvbXBpbGVGb3JtIiwiX0dlbmVyYXRlRm9ybSIsIl9Xcml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIiwiX0ZTVGFzayIsIl9BY3F1aXJlRm9ybUdlbmVyYXRvciIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX1dyaXRlRm9ybU1ldGEiLCJfRm9ybUdsb2JzVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiX09ic2VydmUiLCJfVGltaW5nVXRpbHMiLCJfV3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwiX2dldFJuZ1NjaGVtYUZpbGVuYW1lIiwiX0Zvcm1QYXRoVXRpbHMiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJydW5EZXZCdWlsZCIsImNvbnRleHQiLCJvcHRpb25zIiwiZW5naW5lRGlyZWN0b3J5IiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsImhsRmFybURpcmVjdG9yeVBhdGgiLCJkZXZCdWlsZE9wdGlvbnMiLCJlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayIsImNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrIiwiYnVpbGRFbmdpbmVDaGFpbiIsImNoYWluV2l0aCIsInAiLCJCdWlsZExvY2FsRW5naW5lVGFzayIsImJ1aWxkRGVidWdPbmx5IiwiY2xpZW50V2VicGFja0NvbmZpZ1Rhc2siLCJjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzayIsImJ1aWxkQ2xpZW50SnNDaGFpbiIsIkJ1aWxkQ2xpZW50SnNUYXNrIiwic3RhdGljUmVzb3VyY2VzQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZXMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImRvIiwieCIsIkZTVGFzayIsImNvcHlSZWN1cnNpdmVseSIsImdldExvZ2dlciIsIndpdGhQcmVmaXgiLCJwaWNrTGlzdHNDaGFpbiIsImxvZ2dlciIsInJlcG9zaXRvcnlSb290IiwiRm9ybUdsb2JzIiwiZW5zdXJlRWFjaEdsb2JSZXNvbHZlc0ludG9FeGlzdGluZ0Zvcm0iLCJmb3JtR2xvYnMiLCJmb3JtSW5mb3MiLCJyZXNvbHZlR2Z2R2xvYnMiLCJyZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbiIsImVtcHR5IiwiYnVpbGRGb3Jtc0NoYWluIiwiZml4ZWRGb3JtRGlyZWN0b3JpZXMiLCJtYXAiLCJyZWxhdGl2ZSIsImZvcm1QYXRoIiwic3BsaXRUb1BhcmFsbGVsQ2hhaW5zIiwiZm9ybVJlbGF0aXZlUGF0aCIsImdmdiIsImV4dHJhY3RHZnZGcm9tRm9ybVBhdGgiLCJmb3JtRGlyUGF0aCIsImZvcm1TY2hlbWFzRGlyUGF0aCIsInJuZ1NjaGVtYU1hc2siLCJnZXRSbmdTY2hlbWFGaWxlbmFtZSIsImZpbGUiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJ0cmFuc2Zvcm0iLCJmb3JtSnNvbkZpbGUiLCJyZXNvbHZlRm9ybUluZm8iLCJnZW5lcmF0b3JTb3VyY2UiLCJyZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UiLCJlbmdpbmVTb3VyY2UiLCJyZXNvbHZlTG9jYWxFbmdpbmVTb3VyY2UiLCJhdHRhY2giLCJmaSIsImdlbmVyYXRvckZhY3RvcnkiLCJ1bmRlZmluZWQiLCJ5IiwiZ2VuZXJhdG9yIiwiZ2V0R2VuZXJhdG9yU291cmNlS2V5IiwiZm9ybVNvdXJjZXNQYXRoIiwiZGVwZW5kZW5jaWVzSGFzaCIsImdldEFsbERlcGVuZGVuY2llc0hhc2giLCJza2lwR2VuZXJhdGlvbiIsImdlbmVyYXRlRm9ybSIsInNraXBDb2RlUmVmb3JtYXR0aW5nIiwic2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmciLCJyZXNvdXJjZXNIYXNoIiwiY29tcGlsZUZvcm0iLCJmb3JtTmFtZSIsInRoZW1lcyIsIndyaXRlRkxhbmdOb3JtYWxpemF0aW9uRmlsZXMiLCJ3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMiLCJ3cml0ZUZvcm1NZXRhIiwid2F0Y2giLCJzdG9wT2JzZXJ2ZTEiLCJvYnNlcnZlIiwic3RvcE9ic2VydmUyIiwic3RvcE9ic2VydmUzIiwic3RvcE9ic2VydmU0Iiwic3RvcE9ic2VydmU1Iiwic3RvcE9ic2VydmU2Iiwid2FpdEZvckV4aXQiLCJzdGFydERhdGUiLCJEYXRlIiwibm93IiwiUHJvbWlzZSIsImFsbCIsImN1cnJlbnRWYWx1ZSIsImUiLCJjb250aW51ZU9uRXJyb3IiLCJlcnJvciIsInRvdGFsVGltZSIsImNvbnNvbGUiLCJsb2ciLCJjaGFsayIsImdyZWVuQnJpZ2h0IiwicHJpbnRUaW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0RldkJ1aWxkL1J1bkRldkJ1aWxkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcblxuaW1wb3J0IHsgQnVpbGRDbGllbnRKc1Rhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9DbGllbnRKUy9CdWlsZENsaWVudEpzVGFza1wiO1xuaW1wb3J0IHsgQnVpbGRMb2NhbEVuZ2luZVRhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9FbmdpbmUvQnVpbGRMb2NhbEVuZ2luZVRhc2tcIjtcbmltcG9ydCB7IGNyZWF0ZUNsaWVudFdlYnBhY2tDb25maWdUYXNrLCBjcmVhdGVFbmdpbmVXZWJwYWNrQ29uZmlnVGFzayB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0VuZ2luZVN0cnVjdHVyZVV0aWxzXCI7XG5pbXBvcnQgeyBjb21waWxlRm9ybSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vQ29tcGlsZUZvcm1cIjtcbmltcG9ydCB7IGdlbmVyYXRlRm9ybSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vR2VuZXJhdGVGb3JtXCI7XG5pbXBvcnQgeyB3cml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Xcml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzXCI7XG5pbXBvcnQgeyBGU1Rhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9GU1Rhc2tcIjtcbmltcG9ydCB7IGdlbmVyYXRvckZhY3RvcnksIGdldEdlbmVyYXRvclNvdXJjZUtleSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0dlbmVyYXRvci9BY3F1aXJlRm9ybUdlbmVyYXRvclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUxvY2FsRW5naW5lU291cmNlLCByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlc29sdmVGb3JtSW5mbyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgd3JpdGVGb3JtTWV0YSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1dyaXRlRm9ybU1ldGFcIjtcbmltcG9ydCB7IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9ybUdsb2JzIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHNcIjtcbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvU3RhdGljTG9nZ2VyXCI7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL09ic2VydmVcIjtcbmltcG9ydCB7IHByaW50VGltZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1RpbWluZ1V0aWxzXCI7XG5pbXBvcnQgeyB3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL1dyaXRlQXR0YWNobWVudFBhdGhGaWxlc1wiO1xuaW1wb3J0IHsgQ2hhaW5hYmxlVmFsdWVQcm9kdWNlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBFbXB0eVByb2R1Y2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL0VtcHR5UHJvZHVjZXJcIjtcbmltcG9ydCB7IGdldFJuZ1NjaGVtYUZpbGVuYW1lIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbi9nZXRSbmdTY2hlbWFGaWxlbmFtZVwiO1xuaW1wb3J0IHsgZXh0cmFjdEdmdkZyb21Gb3JtUGF0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vRm9ybVBhdGhVdGlsc1wiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IERldmVsb3BtZW50QnVpbGRPcHRpb25zIH0gZnJvbSBcIi4vRGV2QnVpbGRPcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5EZXZCdWlsZChcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IERldmVsb3BtZW50QnVpbGRPcHRpb25zLFxuICAgIGVuZ2luZURpcmVjdG9yeTogc3RyaW5nLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRldkJ1aWxkT3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayA9IGF3YWl0IGNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrKGVuZ2luZURpcmVjdG9yeSk7XG4gICAgY29uc3QgYnVpbGRFbmdpbmVDaGFpbiA9IGVuZ2luZVdlYnBhY2tDb25maWdUYXNrLmNoYWluV2l0aChcbiAgICAgICAgcCA9PiBuZXcgQnVpbGRMb2NhbEVuZ2luZVRhc2socCwgcmVzb3VyY2VzRGlyZWN0b3J5LCBvcHRpb25zLmJ1aWxkRGVidWdPbmx5KVxuICAgICk7XG5cbiAgICBjb25zdCBjbGllbnRXZWJwYWNrQ29uZmlnVGFzayA9IGF3YWl0IGNyZWF0ZUNsaWVudFdlYnBhY2tDb25maWdUYXNrKGVuZ2luZURpcmVjdG9yeSk7XG4gICAgY29uc3QgYnVpbGRDbGllbnRKc0NoYWluID0gY2xpZW50V2VicGFja0NvbmZpZ1Rhc2suY2hhaW5XaXRoKHAgPT4gbmV3IEJ1aWxkQ2xpZW50SnNUYXNrKHAsIHJlc291cmNlc0RpcmVjdG9yeSkpO1xuXG4gICAgY29uc3Qgc3RhdGljUmVzb3VyY2VzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKFxuICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCJTdGF0aWNGaWxlc0ZvclJlc291cmNlc0RpclwiKSxcbiAgICAgICAgXCIqLmpzXCJcbiAgICApLmRvKHggPT5cbiAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiU1RBVElDU1wiKSwgeCwgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwdWJsaWNcIiwgXCJzY3JpcHRzXCIpKVxuICAgICk7XG5cbiAgICBjb25zdCBwaWNrTGlzdHNDaGFpbiA9IE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIpLCBcIiouanNvblwiKS5kbyh4ID0+XG4gICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChcIlBJQ0tMSVNUU1wiKSwgeCwgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwaWNrbGlzdHNcIikpXG4gICAgKTtcblxuICAgIGNvbnN0IHJlcG9zaXRvcnlSb290ID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiLi5cIik7XG4gICAgYXdhaXQgRm9ybUdsb2JzLmVuc3VyZUVhY2hHbG9iUmVzb2x2ZXNJbnRvRXhpc3RpbmdGb3JtKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KTtcbiAgICBjb25zdCBmb3JtSW5mb3MgPSBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZUdmdkdsb2JzKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KTtcblxuICAgIC8qKiDQmtC+0L3QstC10YDRgtC10YDRiyDQvtC/0LjRgdC4INC00LvRjyDRhNC+0YDQvCwg0LrQvtGC0L7RgNGL0LUg0L/QvtC60LAg0L3QtSDRgNC10LDQu9C40LfQvtCy0LDQvdGLINC90LAg0LrQtdC90LTQuCwg0YHQsNC80LAg0LzQtdGF0LDQvdC40LrQsCDQvtC/0LjRgdC4INC/0LXRgNC10L3QtdGB0LXQvdCwINCyINGE0L7RgNC80Ysg0LIg0LrQtdC90LTQuCDQsNC/0LgsINC/0L7RjdGC0L7QvNGDINC+0L3QuCDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0LIgY2FuZHkucmVzb3VyY2VzXG4gICAgICogINCg0LXQsNC70LjQt9GD0LXRgtGB0Y8g0YLQvtC70YzQutC+INC/0YDQuCDQvtCx0YnQtdC8INCx0LjQu9C00LUg0YTQvtGA0Lw6IGNhbmR5IGJ1aWxkICpcbiAgICAgKiAqL1xuICAgIGxldCByZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbjogQ2hhaW5hYmxlVmFsdWVQcm9kdWNlcjxzdHJpbmc+IHwgRW1wdHlQcm9kdWNlciA9IE9ic2VydmUuZW1wdHkoKTtcbiAgICBpZiAob3B0aW9ucy5mb3JtR2xvYnNbMF0gPT09IFwiKlwiKSB7XG4gICAgICAgIHJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluID0gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJleHRlcm5hbENvbnZlcnRlcnNcIiksIFwiKi54c2x0XCIpLmRvKFxuICAgICAgICAgICAgeCA9PlxuICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJFWFRFUk5BTC1DT05WRVJURVJTXCIpLFxuICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVpbGRGb3Jtc0NoYWluID0gT2JzZXJ2ZS5maXhlZEZvcm1EaXJlY3RvcmllcyhcbiAgICAgICAgZm9ybUluZm9zLm1hcCh4ID0+IHBhdGgucmVsYXRpdmUocmVwb3NpdG9yeVJvb3QsIHguZm9ybVBhdGgpKVxuICAgICkuc3BsaXRUb1BhcmFsbGVsQ2hhaW5zKFxuICAgICAgICB4ID0+IHgsXG4gICAgICAgIHggPT4geCxcbiAgICAgICAgYXN5bmMgZm9ybVJlbGF0aXZlUGF0aCA9PiB7XG4gICAgICAgICAgICBjb25zdCBnZnYgPSBleHRyYWN0R2Z2RnJvbUZvcm1QYXRoKGZvcm1SZWxhdGl2ZVBhdGgpO1xuICAgICAgICAgICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1SZWxhdGl2ZVBhdGgpO1xuICAgICAgICAgICAgY29uc3QgZm9ybVNjaGVtYXNEaXJQYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcInNjaGVtYXNcIik7XG4gICAgICAgICAgICBjb25zdCBybmdTY2hlbWFNYXNrID0gYCoke2dldFJuZ1NjaGVtYUZpbGVuYW1lKGZvcm1TY2hlbWFzRGlyUGF0aCwgZ2Z2KX1gO1xuXG4gICAgICAgICAgICByZXR1cm4gT2JzZXJ2ZS5maWxlKHBhdGguam9pbihmb3JtRGlyUGF0aCwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZSkpXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShmb3JtSnNvbkZpbGUgPT4gcmVzb2x2ZUZvcm1JbmZvKGZvcm1Kc29uRmlsZSwgZm9ybURpclBhdGgsIGVuZ2luZURpcmVjdG9yeSkpXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyB4ID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLngsXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclNvdXJjZTogcmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlKGVuZ2luZURpcmVjdG9yeSksXG4gICAgICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZTogcmVzb2x2ZUxvY2FsRW5naW5lU291cmNlKGVuZ2luZURpcmVjdG9yeSksXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4gZ2VuZXJhdG9yRmFjdG9yeShmaS5nZW5lcmF0b3JTb3VyY2UsIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSwgZmFsc2UsIHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIChmaSwgeSkgPT4gKHsgLi4uZmksIGdlbmVyYXRvcjogeSB9KSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4gZ2V0R2VuZXJhdG9yU291cmNlS2V5KGZpLmdlbmVyYXRvclNvdXJjZSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybVNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCIuLi8uLi9jb250cm9scy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNjaGVtYXMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdWdhci8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXV0b2NhbGMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWxwZXJzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsaWRhdGlvbnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhbGl6YXRpb24vKiovKlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyBmaSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5maSxcbiAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzSGFzaDogYXdhaXQgZmkuZ2VuZXJhdG9yLmdldEFsbERlcGVuZGVuY2llc0hhc2goXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBobEZhcm1EaXJlY3RvcnlQYXRoXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2tpcEdlbmVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlRm9ybShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1Tb3VyY2VzUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBobEZhcm1EaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZ2VuZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBDb2RlUmVmb3JtYXR0aW5nOiBvcHRpb25zLnNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0hhc2g6IGZpLmRlcGVuZGVuY2llc0hhc2gsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+IE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm1cIiksIFwiKiovKlwiKSlcbiAgICAgICAgICAgICAgICAuZG8oZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgY29tcGlsZUZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLnRoZW1lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmRlcGVuZGVuY2llc0hhc2gsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmJ1aWxkRGVidWdPbmx5XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmRvKGZpID0+IHdyaXRlRkxhbmdOb3JtYWxpemF0aW9uRmlsZXMoZmkuZm9ybU5hbWUsIGZhcm1EaXJlY3RvcnksIGZvcm1EaXJQYXRoLCByZXNvdXJjZXNEaXJlY3RvcnkpKVxuICAgICAgICAgICAgICAgIC5kbyhmaSA9PiB3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMoZmkuZm9ybU5hbWUsIGZhcm1EaXJlY3RvcnksIGZvcm1EaXJQYXRoLCByZXNvdXJjZXNEaXJlY3RvcnkpKVxuICAgICAgICAgICAgICAgIC5kbyhmaSA9PiB3cml0ZUZvcm1NZXRhKHJlc291cmNlc0RpcmVjdG9yeSwgZ2Z2LCBmaS5lbmdpbmVTb3VyY2UsIGZpLmRlcGVuZGVuY2llc0hhc2gsIGZpLnRoZW1lcykpXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwic2NoZW1hc1wiKSwgcm5nU2NoZW1hTWFzaykuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiU0NIRU1BU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwic2NoZW1hc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcImNvbnZlcnRlcnNcIiksIFwiKlwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJDT05WRVJURVJTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJjb252ZXJ0ZXJzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwibWVyZ2Vyc1wiKSwgXCIqXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIk1FUkdFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm1lcmdlcnNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJub3JtYWxpemVcIiksIFwiKi54bWxcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTk9STUFMSVpFXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJub3JtYWxpemVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJwYXRjaFwiKSwgXCIqLnhzbHRcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiUEFUQ0hcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInBhdGNoXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwibWFwXCIpLCBcIioueG1sXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIk1BUFwiKSwgeCwgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJtYXBcIikpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwidW5tYXBcIiksIFwiKi54bWxcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiVU5NQVBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInVubWFwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgKTtcblxuICAgIGlmIChkZXZCdWlsZE9wdGlvbnMud2F0Y2gpIHtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUxID0gYXdhaXQgYnVpbGRFbmdpbmVDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlMiA9IGF3YWl0IGJ1aWxkQ2xpZW50SnNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlMyA9IGF3YWl0IHN0YXRpY1Jlc291cmNlc0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmU0ID0gYXdhaXQgYnVpbGRGb3Jtc0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmU1ID0gYXdhaXQgcGlja0xpc3RzQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTYgPSBhd2FpdCByZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbi5vYnNlcnZlKCk7XG5cbiAgICAgICAgYXdhaXQgY29udGV4dC53YWl0Rm9yRXhpdCgpO1xuXG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlMSgpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTIoKTtcbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmUzKCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlNCgpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTUoKTtcbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmU2KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gRGF0ZS5ub3coKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgYnVpbGRFbmdpbmVDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICBidWlsZENsaWVudEpzQ2hhaW4uY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgc3RhdGljUmVzb3VyY2VzQ2hhaW4uY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4uY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBwaWNrTGlzdHNDaGFpbi5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGJ1aWxkRm9ybXNDaGFpbi5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5jb250aW51ZU9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCksXG4gICAgICAgIF0pO1xuICAgICAgICBjb25zdCB0b3RhbFRpbWUgPSBEYXRlLm5vdygpIC0gc3RhcnREYXRlO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmxvZyhgJHtjaGFsay5ncmVlbkJyaWdodChcIkJ1aWxkIHN1Y2Nlc3NcIil9IFRvdGFsIHRpbWU6ICR7cHJpbnRUaW1lKHRvdGFsVGltZSl9YCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsa0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLHFCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxxQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sNkJBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLHFCQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxzQkFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsZ0JBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLGNBQUEsR0FBQVosT0FBQTtBQUVBLElBQUFhLGVBQUEsR0FBQWIsT0FBQTtBQUNBLElBQUFjLGFBQUEsR0FBQWQsT0FBQTtBQUNBLElBQUFlLFFBQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQixZQUFBLEdBQUFoQixPQUFBO0FBQ0EsSUFBQWlCLHlCQUFBLEdBQUFqQixPQUFBO0FBR0EsSUFBQWtCLHFCQUFBLEdBQUFsQixPQUFBO0FBQ0EsSUFBQW1CLGNBQUEsR0FBQW5CLE9BQUE7QUFDQSxJQUFBb0IscUJBQUEsR0FBQXBCLE9BQUE7QUFJTyxlQUFlcUIsV0FBV0EsQ0FDN0JDLE9BQWtDLEVBQ2xDQyxPQUFnQyxFQUNoQ0MsZUFBdUIsRUFDdkJDLGtCQUEwQixFQUMxQkMsYUFBcUIsRUFDckJDLHFCQUE2QixFQUM3QkMsbUJBQTJCLEVBQ2Q7RUFDYixNQUFNQyxlQUFlLEdBQUdOLE9BQU87RUFFL0IsTUFBTU8sdUJBQXVCLEdBQUcsTUFBTSxJQUFBQyxtREFBNkIsRUFBQ1AsZUFBZSxDQUFDO0VBQ3BGLE1BQU1RLGdCQUFnQixHQUFHRix1QkFBdUIsQ0FBQ0csU0FBUyxDQUN0REMsQ0FBQyxJQUFJLElBQUlDLDBDQUFvQixDQUFDRCxDQUFDLEVBQUVULGtCQUFrQixFQUFFRixPQUFPLENBQUNhLGNBQWMsQ0FDL0UsQ0FBQztFQUVELE1BQU1DLHVCQUF1QixHQUFHLE1BQU0sSUFBQUMsbURBQTZCLEVBQUNkLGVBQWUsQ0FBQztFQUNwRixNQUFNZSxrQkFBa0IsR0FBR0YsdUJBQXVCLENBQUNKLFNBQVMsQ0FBQ0MsQ0FBQyxJQUFJLElBQUlNLG9DQUFpQixDQUFDTixDQUFDLEVBQUVULGtCQUFrQixDQUFDLENBQUM7RUFFL0csTUFBTWdCLG9CQUFvQixHQUFHQyxnQkFBTyxDQUFDQyxLQUFLLENBQ3RDQyxhQUFJLENBQUNDLElBQUksQ0FBQ0MsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsNEJBQTRCLENBQUMsRUFDOUQsTUFDSixDQUFDLENBQUNDLEVBQUUsQ0FBQ0MsQ0FBQyxJQUNGQyxjQUFNLENBQUNDLGVBQWUsQ0FBQyxJQUFBQyx1QkFBUyxFQUFDLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFSixDQUFDLEVBQUVKLGFBQUksQ0FBQ0MsSUFBSSxDQUFDcEIsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUNuSCxDQUFDO0VBRUQsTUFBTTRCLGNBQWMsR0FBR1gsZ0JBQU8sQ0FBQ0MsS0FBSyxDQUFDQyxhQUFJLENBQUNDLElBQUksQ0FBQ25CLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQ3FCLEVBQUUsQ0FBQ0MsQ0FBQyxJQUN0RkMsY0FBTSxDQUFDQyxlQUFlLENBQUM1QixPQUFPLENBQUNnQyxNQUFNLENBQUNGLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRUosQ0FBQyxFQUFFSixhQUFJLENBQUNDLElBQUksQ0FBQ3BCLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxDQUNoSCxDQUFDO0VBRUQsTUFBTThCLGNBQWMsR0FBR1gsYUFBSSxDQUFDQyxJQUFJLENBQUNuQixhQUFhLEVBQUUsSUFBSSxDQUFDO0VBQ3JELE1BQU04Qix5QkFBUyxDQUFDQyxzQ0FBc0MsQ0FBQ2xDLE9BQU8sQ0FBQ21DLFNBQVMsRUFBRWhDLGFBQWEsQ0FBQztFQUN4RixNQUFNaUMsU0FBUyxHQUFHLE1BQU1ILHlCQUFTLENBQUNJLGVBQWUsQ0FBQ3JDLE9BQU8sQ0FBQ21DLFNBQVMsRUFBRWhDLGFBQWEsQ0FBQzs7RUFFbkY7QUFDSjtBQUNBO0VBQ0ksSUFBSW1DLGdDQUFnRixHQUFHbkIsZ0JBQU8sQ0FBQ29CLEtBQUssQ0FBQyxDQUFDO0VBQ3RHLElBQUl2QyxPQUFPLENBQUNtQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO0lBQzlCRyxnQ0FBZ0MsR0FBR25CLGdCQUFPLENBQUNDLEtBQUssQ0FBQ0MsYUFBSSxDQUFDQyxJQUFJLENBQUNuQixhQUFhLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQ3FCLEVBQUUsQ0FDekdDLENBQUMsSUFDR0MsY0FBTSxDQUFDQyxlQUFlLENBQ2xCLElBQUFDLHVCQUFTLEVBQUMsQ0FBQyxDQUFDQyxVQUFVLENBQUMscUJBQXFCLENBQUMsRUFDN0NKLENBQUMsRUFDREosYUFBSSxDQUFDQyxJQUFJLENBQUNwQixrQkFBa0IsRUFBRSxZQUFZLENBQzlDLENBQ1IsQ0FBQztFQUNMO0VBRUEsTUFBTXNDLGVBQWUsR0FBR3JCLGdCQUFPLENBQUNzQixvQkFBb0IsQ0FDaERMLFNBQVMsQ0FBQ00sR0FBRyxDQUFDakIsQ0FBQyxJQUFJSixhQUFJLENBQUNzQixRQUFRLENBQUNYLGNBQWMsRUFBRVAsQ0FBQyxDQUFDbUIsUUFBUSxDQUFDLENBQ2hFLENBQUMsQ0FBQ0MscUJBQXFCLENBQ25CcEIsQ0FBQyxJQUFJQSxDQUFDLEVBQ05BLENBQUMsSUFBSUEsQ0FBQyxFQUNOLE1BQU1xQixnQkFBZ0IsSUFBSTtJQUN0QixNQUFNQyxHQUFHLEdBQUcsSUFBQUMscUNBQXNCLEVBQUNGLGdCQUFnQixDQUFDO0lBQ3BELE1BQU1HLFdBQVcsR0FBRzVCLGFBQUksQ0FBQ0MsSUFBSSxDQUFDVSxjQUFjLEVBQUVjLGdCQUFnQixDQUFDO0lBQy9ELE1BQU1JLGtCQUFrQixHQUFHN0IsYUFBSSxDQUFDQyxJQUFJLENBQUMyQixXQUFXLEVBQUUsU0FBUyxDQUFDO0lBQzVELE1BQU1FLGFBQWEsR0FBRyxJQUFJLElBQUFDLDBDQUFvQixFQUFDRixrQkFBa0IsRUFBRUgsR0FBRyxDQUFDLEVBQUU7SUFFekUsT0FBTzVCLGdCQUFPLENBQUNrQyxJQUFJLENBQUNoQyxhQUFJLENBQUNDLElBQUksQ0FBQzJCLFdBQVcsRUFBRUssMENBQW9CLENBQUNDLGdCQUFnQixDQUFDLENBQUMsQ0FDN0VDLFNBQVMsQ0FBQ0MsWUFBWSxJQUFJLElBQUFDLGdDQUFlLEVBQUNELFlBQVksRUFBRVIsV0FBVyxFQUFFaEQsZUFBZSxDQUFDLENBQUMsQ0FDdEZ1RCxTQUFTLENBQUMsTUFBTS9CLENBQUMsS0FBSztNQUNuQixHQUFHQSxDQUFDO01BQ0prQyxlQUFlLEVBQUUsSUFBQUMsa0RBQTJCLEVBQUMzRCxlQUFlLENBQUM7TUFDN0Q0RCxZQUFZLEVBQUUsSUFBQUMsK0NBQXdCLEVBQUM3RCxlQUFlO0lBQzFELENBQUMsQ0FBQyxDQUFDLENBQ0Y4RCxNQUFNLENBQ0gsTUFBTUMsRUFBRSxJQUFJLElBQUFDLHNDQUFnQixFQUFDRCxFQUFFLENBQUNMLGVBQWUsRUFBRXZELHFCQUFxQixFQUFFLEtBQUssRUFBRThELFNBQVMsQ0FBQyxFQUN6RixPQUFPRixFQUFFLEVBQUVHLENBQUMsTUFBTTtNQUFFLEdBQUdILEVBQUU7TUFBRUksU0FBUyxFQUFFRDtJQUFFLENBQUMsQ0FBQyxFQUMxQyxNQUFNSCxFQUFFLElBQUksSUFBQUssMkNBQXFCLEVBQUNMLEVBQUUsQ0FBQ0wsZUFBZSxDQUN4RCxDQUFDLENBQ0FJLE1BQU0sQ0FBQyxNQUFNQyxFQUFFLElBQ1o3QyxnQkFBTyxDQUFDQyxLQUFLLENBQ1Q0QyxFQUFFLENBQUNNLGVBQWUsRUFDbEIscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxZQUFZLEVBQ1osZUFBZSxFQUNmLGVBQWUsRUFDZixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLG1CQUNKLENBQ0osQ0FBQyxDQUNBZCxTQUFTLENBQUMsTUFBTVEsRUFBRSxLQUFLO01BQ3BCLEdBQUdBLEVBQUU7TUFDTE8sZ0JBQWdCLEVBQUUsTUFBTVAsRUFBRSxDQUFDSSxTQUFTLENBQUNJLHNCQUFzQixDQUN2RHZCLFdBQVcsRUFDWDlDLGFBQWEsRUFDYkUsbUJBQ0o7SUFDSixDQUFDLENBQUMsQ0FBQyxDQUNGbUIsRUFBRSxDQUFDLE1BQU13QyxFQUFFLElBQUk7TUFDWixJQUFJaEUsT0FBTyxDQUFDeUUsY0FBYyxFQUFFO1FBQ3hCLE9BQU9QLFNBQVM7TUFDcEI7TUFDQSxPQUFPLElBQUFRLDBCQUFZLEVBQ2ZWLEVBQUUsQ0FBQ00sZUFBZSxFQUNsQm5FLGFBQWEsRUFDYkUsbUJBQW1CLEVBQ25CMkQsRUFBRSxDQUFDSSxTQUFTLEVBQ1pGLFNBQVMsRUFDVDtRQUNJUyxvQkFBb0IsRUFBRTNFLE9BQU8sQ0FBQzRFLDZCQUE2QjtRQUMzREMsYUFBYSxFQUFFYixFQUFFLENBQUNPO01BQ3RCLENBQ0osQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUNEUixNQUFNLENBQUMsTUFBTUMsRUFBRSxJQUFJN0MsZ0JBQU8sQ0FBQ0MsS0FBSyxDQUFDQyxhQUFJLENBQUNDLElBQUksQ0FBQzJCLFdBQVcsRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUN6RXpCLEVBQUUsQ0FBQ3dDLEVBQUUsSUFDRixJQUFBYyx3QkFBVyxFQUNQZCxFQUFFLENBQUNlLFFBQVEsRUFDWGYsRUFBRSxDQUFDZ0IsTUFBTSxFQUNUN0UsYUFBYSxFQUNiOEMsV0FBVyxFQUNYL0Msa0JBQWtCLEVBQ2xCOEQsRUFBRSxDQUFDTyxnQkFBZ0IsRUFDbkJ2RSxPQUFPLENBQUNhLGNBQ1osQ0FDSixDQUFDLENBQ0FXLEVBQUUsQ0FBQ3dDLEVBQUUsSUFBSSxJQUFBaUIsMERBQTRCLEVBQUNqQixFQUFFLENBQUNlLFFBQVEsRUFBRTVFLGFBQWEsRUFBRThDLFdBQVcsRUFBRS9DLGtCQUFrQixDQUFDLENBQUMsQ0FDbkdzQixFQUFFLENBQUN3QyxFQUFFLElBQUksSUFBQWtCLGtEQUF3QixFQUFDbEIsRUFBRSxDQUFDZSxRQUFRLEVBQUU1RSxhQUFhLEVBQUU4QyxXQUFXLEVBQUUvQyxrQkFBa0IsQ0FBQyxDQUFDLENBQy9Gc0IsRUFBRSxDQUFDd0MsRUFBRSxJQUFJLElBQUFtQiw0QkFBYSxFQUFDakYsa0JBQWtCLEVBQUU2QyxHQUFHLEVBQUVpQixFQUFFLENBQUNILFlBQVksRUFBRUcsRUFBRSxDQUFDTyxnQkFBZ0IsRUFBRVAsRUFBRSxDQUFDZ0IsTUFBTSxDQUFDLENBQUMsQ0FDakdqQixNQUFNLENBQUMsTUFBTUMsRUFBRSxJQUNaN0MsZ0JBQU8sQ0FBQ0MsS0FBSyxDQUFDQyxhQUFJLENBQUNDLElBQUksQ0FBQzBDLEVBQUUsQ0FBQ00sZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFbkIsYUFBYSxDQUFDLENBQUMzQixFQUFFLENBQUNDLENBQUMsSUFDdkVDLGNBQU0sQ0FBQ0MsZUFBZSxDQUNsQixJQUFBQyx1QkFBUyxFQUFDLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUNqQ0osQ0FBQyxFQUNESixhQUFJLENBQUNDLElBQUksQ0FBQ3BCLGtCQUFrQixFQUFFLFNBQVMsQ0FDM0MsQ0FDSixDQUNKLENBQUMsQ0FDQTZELE1BQU0sQ0FBQyxNQUFNQyxFQUFFLElBQ1o3QyxnQkFBTyxDQUFDQyxLQUFLLENBQUNDLGFBQUksQ0FBQ0MsSUFBSSxDQUFDMEMsRUFBRSxDQUFDTSxlQUFlLEVBQUUsWUFBWSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM5QyxFQUFFLENBQUNDLENBQUMsSUFDaEVDLGNBQU0sQ0FBQ0MsZUFBZSxDQUNsQixJQUFBQyx1QkFBUyxFQUFDLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUNwQ0osQ0FBQyxFQUNESixhQUFJLENBQUNDLElBQUksQ0FBQ3BCLGtCQUFrQixFQUFFLFlBQVksQ0FDOUMsQ0FDSixDQUNKLENBQUMsQ0FDQTZELE1BQU0sQ0FBQyxNQUFNQyxFQUFFLElBQ1o3QyxnQkFBTyxDQUFDQyxLQUFLLENBQUNDLGFBQUksQ0FBQ0MsSUFBSSxDQUFDMEMsRUFBRSxDQUFDTSxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM5QyxFQUFFLENBQUNDLENBQUMsSUFDN0RDLGNBQU0sQ0FBQ0MsZUFBZSxDQUNsQixJQUFBQyx1QkFBUyxFQUFDLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUNqQ0osQ0FBQyxFQUNESixhQUFJLENBQUNDLElBQUksQ0FBQ3BCLGtCQUFrQixFQUFFLFNBQVMsQ0FDM0MsQ0FDSixDQUNKLENBQUMsQ0FDQTZELE1BQU0sQ0FBQyxNQUFNQyxFQUFFLElBQ1o3QyxnQkFBTyxDQUFDQyxLQUFLLENBQUNDLGFBQUksQ0FBQ0MsSUFBSSxDQUFDMEMsRUFBRSxDQUFDTSxlQUFlLEVBQUUsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM5QyxFQUFFLENBQUNDLENBQUMsSUFDbkVDLGNBQU0sQ0FBQ0MsZUFBZSxDQUNsQixJQUFBQyx1QkFBUyxFQUFDLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUNuQ0osQ0FBQyxFQUNESixhQUFJLENBQUNDLElBQUksQ0FBQ3BCLGtCQUFrQixFQUFFLFdBQVcsQ0FDN0MsQ0FDSixDQUNKLENBQUMsQ0FDQTZELE1BQU0sQ0FBQyxNQUFNQyxFQUFFLElBQ1o3QyxnQkFBTyxDQUFDQyxLQUFLLENBQUNDLGFBQUksQ0FBQ0MsSUFBSSxDQUFDMEMsRUFBRSxDQUFDTSxlQUFlLEVBQUUsT0FBTyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM5QyxFQUFFLENBQUNDLENBQUMsSUFDaEVDLGNBQU0sQ0FBQ0MsZUFBZSxDQUNsQixJQUFBQyx1QkFBUyxFQUFDLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUMvQkosQ0FBQyxFQUNESixhQUFJLENBQUNDLElBQUksQ0FBQ3BCLGtCQUFrQixFQUFFLE9BQU8sQ0FDekMsQ0FDSixDQUNKLENBQUMsQ0FDQTZELE1BQU0sQ0FBQyxNQUFNQyxFQUFFLElBQ1o3QyxnQkFBTyxDQUFDQyxLQUFLLENBQUNDLGFBQUksQ0FBQ0MsSUFBSSxDQUFDMEMsRUFBRSxDQUFDTSxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM5QyxFQUFFLENBQUNDLENBQUMsSUFDN0RDLGNBQU0sQ0FBQ0MsZUFBZSxDQUFDLElBQUFDLHVCQUFTLEVBQUMsQ0FBQyxDQUFDQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUVKLENBQUMsRUFBRUosYUFBSSxDQUFDQyxJQUFJLENBQUNwQixrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FDakcsQ0FDSixDQUFDLENBQ0E2RCxNQUFNLENBQUMsTUFBTUMsRUFBRSxJQUNaN0MsZ0JBQU8sQ0FBQ0MsS0FBSyxDQUFDQyxhQUFJLENBQUNDLElBQUksQ0FBQzBDLEVBQUUsQ0FBQ00sZUFBZSxFQUFFLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDOUMsRUFBRSxDQUFDQyxDQUFDLElBQy9EQyxjQUFNLENBQUNDLGVBQWUsQ0FDbEIsSUFBQUMsdUJBQVMsRUFBQyxDQUFDLENBQUNDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFDL0JKLENBQUMsRUFDREosYUFBSSxDQUFDQyxJQUFJLENBQUNwQixrQkFBa0IsRUFBRSxPQUFPLENBQ3pDLENBQ0osQ0FDSixDQUFDO0VBQ1QsQ0FDSixDQUFDO0VBRUQsSUFBSUksZUFBZSxDQUFDOEUsS0FBSyxFQUFFO0lBQ3ZCLE1BQU1DLFlBQVksR0FBRyxNQUFNNUUsZ0JBQWdCLENBQUM2RSxPQUFPLENBQUMsQ0FBQztJQUNyRCxNQUFNQyxZQUFZLEdBQUcsTUFBTXZFLGtCQUFrQixDQUFDc0UsT0FBTyxDQUFDLENBQUM7SUFDdkQsTUFBTUUsWUFBWSxHQUFHLE1BQU10RSxvQkFBb0IsQ0FBQ29FLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELE1BQU1HLFlBQVksR0FBRyxNQUFNakQsZUFBZSxDQUFDOEMsT0FBTyxDQUFDLENBQUM7SUFDcEQsTUFBTUksWUFBWSxHQUFHLE1BQU01RCxjQUFjLENBQUN3RCxPQUFPLENBQUMsQ0FBQztJQUNuRCxNQUFNSyxZQUFZLEdBQUcsTUFBTXJELGdDQUFnQyxDQUFDZ0QsT0FBTyxDQUFDLENBQUM7SUFFckUsTUFBTXZGLE9BQU8sQ0FBQzZGLFdBQVcsQ0FBQyxDQUFDO0lBRTNCLE1BQU1QLFlBQVksQ0FBQyxDQUFDO0lBQ3BCLE1BQU1FLFlBQVksQ0FBQyxDQUFDO0lBQ3BCLE1BQU1DLFlBQVksQ0FBQyxDQUFDO0lBQ3BCLE1BQU1DLFlBQVksQ0FBQyxDQUFDO0lBQ3BCLE1BQU1DLFlBQVksQ0FBQyxDQUFDO0lBQ3BCLE1BQU1DLFlBQVksQ0FBQyxDQUFDO0VBQ3hCLENBQUMsTUFBTTtJQUNILE1BQU1FLFNBQVMsR0FBR0MsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQztJQUM1QixNQUFNQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUNkeEYsZ0JBQWdCLENBQUN5RixZQUFZLEVBQzdCbEYsa0JBQWtCLENBQUNrRixZQUFZLEVBQy9CaEYsb0JBQW9CLENBQUNnRixZQUFZLEVBQ2pDNUQsZ0NBQWdDLENBQUM0RCxZQUFZLEVBQzdDLENBQUMsWUFBWTtNQUNULElBQUk7UUFDQSxNQUFNcEUsY0FBYyxDQUFDb0UsWUFBWTtRQUNqQyxNQUFNMUQsZUFBZSxDQUFDMEQsWUFBWTtNQUN0QyxDQUFDLENBQUMsT0FBT0MsQ0FBQyxFQUFFO1FBQ1IsSUFBSW5HLE9BQU8sQ0FBQ29HLGVBQWUsRUFBRTtVQUN6QnJHLE9BQU8sQ0FBQ2dDLE1BQU0sQ0FBQ3NFLEtBQUssQ0FBQ0YsQ0FBQyxDQUFDO1FBQzNCLENBQUMsTUFBTTtVQUNILE1BQU1BLENBQUM7UUFDWDtNQUNKO0lBQ0osQ0FBQyxFQUFFLENBQUMsQ0FDUCxDQUFDO0lBQ0YsTUFBTUcsU0FBUyxHQUFHUixJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEdBQUdGLFNBQVM7SUFDeEM7SUFDQVUsT0FBTyxDQUFDQyxHQUFHLENBQUMsR0FBR0MsY0FBSyxDQUFDQyxXQUFXLENBQUMsZUFBZSxDQUFDLGdCQUFnQixJQUFBQyxzQkFBUyxFQUFDTCxTQUFTLENBQUMsRUFBRSxDQUFDO0VBQzVGO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
106
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NoYWxrIiwiX0J1aWxkQ2xpZW50SnNUYXNrIiwiX0J1aWxkTG9jYWxFbmdpbmVUYXNrIiwiX0VuZ2luZVN0cnVjdHVyZVV0aWxzIiwiX0NvbXBpbGVGb3JtIiwiX0dlbmVyYXRlRm9ybSIsIl9Xcml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIiwiX0ZTVGFzayIsIl9BY3F1aXJlRm9ybUdlbmVyYXRvciIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX1dyaXRlRm9ybU1ldGEiLCJfRm9ybUdsb2JzVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiX09ic2VydmUiLCJfVGltaW5nVXRpbHMiLCJfV3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwiX2dldFJuZ1NjaGVtYUZpbGVuYW1lIiwiX0Zvcm1QYXRoVXRpbHMiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJydW5EZXZCdWlsZCIsImNvbnRleHQiLCJvcHRpb25zIiwiZW5naW5lRGlyZWN0b3J5IiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsImhsRmFybURpcmVjdG9yeVBhdGgiLCJkZXZCdWlsZE9wdGlvbnMiLCJlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayIsImNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrIiwiYnVpbGRFbmdpbmVDaGFpbiIsImNoYWluV2l0aCIsInAiLCJCdWlsZExvY2FsRW5naW5lVGFzayIsImJ1aWxkRGVidWdPbmx5IiwiY2xpZW50V2VicGFja0NvbmZpZ1Rhc2siLCJjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzayIsImJ1aWxkQ2xpZW50SnNDaGFpbiIsIkJ1aWxkQ2xpZW50SnNUYXNrIiwic3RhdGljUmVzb3VyY2VzQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZXMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImRvIiwieCIsIkZTVGFzayIsImNvcHlSZWN1cnNpdmVseSIsImdldExvZ2dlciIsIndpdGhQcmVmaXgiLCJwaWNrTGlzdHNDaGFpbiIsImxvZ2dlciIsInJlcG9zaXRvcnlSb290IiwiRm9ybUdsb2JzIiwiZW5zdXJlRWFjaEdsb2JSZXNvbHZlc0ludG9FeGlzdGluZ0Zvcm0iLCJmb3JtR2xvYnMiLCJmb3JtSW5mb3MiLCJyZXNvbHZlR2Z2R2xvYnMiLCJyZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbiIsImVtcHR5IiwiYnVpbGRGb3Jtc0NoYWluIiwiZml4ZWRGb3JtRGlyZWN0b3JpZXMiLCJtYXAiLCJyZWxhdGl2ZSIsImZvcm1QYXRoIiwic3BsaXRUb1BhcmFsbGVsQ2hhaW5zIiwiZm9ybVJlbGF0aXZlUGF0aCIsImdmdiIsImV4dHJhY3RHZnZGcm9tRm9ybVBhdGgiLCJmb3JtRGlyUGF0aCIsImZvcm1TY2hlbWFzRGlyUGF0aCIsInJuZ1NjaGVtYU1hc2siLCJnZXRSbmdTY2hlbWFGaWxlbmFtZSIsImZpbGUiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJ0cmFuc2Zvcm0iLCJmb3JtSnNvbkZpbGUiLCJyZXNvbHZlRm9ybUluZm8iLCJnZW5lcmF0b3JTb3VyY2UiLCJyZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UiLCJlbmdpbmVTb3VyY2UiLCJyZXNvbHZlTG9jYWxFbmdpbmVTb3VyY2UiLCJhdHRhY2giLCJmaSIsImdlbmVyYXRvckZhY3RvcnkiLCJ1bmRlZmluZWQiLCJ5IiwiZ2VuZXJhdG9yIiwiZ2V0R2VuZXJhdG9yU291cmNlS2V5IiwiZm9ybVNvdXJjZXNQYXRoIiwiZGVwZW5kZW5jaWVzSGFzaCIsImdldEFsbERlcGVuZGVuY2llc0hhc2giLCJza2lwR2VuZXJhdGlvbiIsImdlbmVyYXRlRm9ybSIsInNraXBDb2RlUmVmb3JtYXR0aW5nIiwic2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmciLCJyZXNvdXJjZXNIYXNoIiwiY29tcGlsZUZvcm0iLCJmb3JtTmFtZSIsIndyaXRlRkxhbmdOb3JtYWxpemF0aW9uRmlsZXMiLCJ3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMiLCJ3cml0ZUZvcm1NZXRhIiwidGhlbWVzIiwid2F0Y2giLCJzdG9wT2JzZXJ2ZTEiLCJvYnNlcnZlIiwic3RvcE9ic2VydmUyIiwic3RvcE9ic2VydmUzIiwic3RvcE9ic2VydmU0Iiwic3RvcE9ic2VydmU1Iiwic3RvcE9ic2VydmU2Iiwid2FpdEZvckV4aXQiLCJzdGFydERhdGUiLCJEYXRlIiwibm93IiwiUHJvbWlzZSIsImFsbCIsImN1cnJlbnRWYWx1ZSIsImUiLCJjb250aW51ZU9uRXJyb3IiLCJlcnJvciIsInRvdGFsVGltZSIsImNvbnNvbGUiLCJsb2ciLCJjaGFsayIsImdyZWVuQnJpZ2h0IiwicHJpbnRUaW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0RldkJ1aWxkL1J1bkRldkJ1aWxkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcblxuaW1wb3J0IHsgQnVpbGRDbGllbnRKc1Rhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9DbGllbnRKUy9CdWlsZENsaWVudEpzVGFza1wiO1xuaW1wb3J0IHsgQnVpbGRMb2NhbEVuZ2luZVRhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9FbmdpbmUvQnVpbGRMb2NhbEVuZ2luZVRhc2tcIjtcbmltcG9ydCB7IGNyZWF0ZUNsaWVudFdlYnBhY2tDb25maWdUYXNrLCBjcmVhdGVFbmdpbmVXZWJwYWNrQ29uZmlnVGFzayB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0VuZ2luZVN0cnVjdHVyZVV0aWxzXCI7XG5pbXBvcnQgeyBjb21waWxlRm9ybSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vQ29tcGlsZUZvcm1cIjtcbmltcG9ydCB7IGdlbmVyYXRlRm9ybSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vR2VuZXJhdGVGb3JtXCI7XG5pbXBvcnQgeyB3cml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Xcml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzXCI7XG5pbXBvcnQgeyBGU1Rhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9GU1Rhc2tcIjtcbmltcG9ydCB7IGdlbmVyYXRvckZhY3RvcnksIGdldEdlbmVyYXRvclNvdXJjZUtleSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0dlbmVyYXRvci9BY3F1aXJlRm9ybUdlbmVyYXRvclwiO1xuaW1wb3J0IHsgcmVzb2x2ZUxvY2FsRW5naW5lU291cmNlLCByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlc29sdmVGb3JtSW5mbyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgd3JpdGVGb3JtTWV0YSB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1dyaXRlRm9ybU1ldGFcIjtcbmltcG9ydCB7IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9ybUdsb2JzIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHNcIjtcbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvU3RhdGljTG9nZ2VyXCI7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL09ic2VydmVcIjtcbmltcG9ydCB7IHByaW50VGltZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1RpbWluZ1V0aWxzXCI7XG5pbXBvcnQgeyB3cml0ZUF0dGFjaG1lbnRQYXRoRmlsZXMgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL1dyaXRlQXR0YWNobWVudFBhdGhGaWxlc1wiO1xuaW1wb3J0IHsgQ2hhaW5hYmxlVmFsdWVQcm9kdWNlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBFbXB0eVByb2R1Y2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL0VtcHR5UHJvZHVjZXJcIjtcbmltcG9ydCB7IGdldFJuZ1NjaGVtYUZpbGVuYW1lIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbi9nZXRSbmdTY2hlbWFGaWxlbmFtZVwiO1xuaW1wb3J0IHsgZXh0cmFjdEdmdkZyb21Gb3JtUGF0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vRm9ybVBhdGhVdGlsc1wiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IERldmVsb3BtZW50QnVpbGRPcHRpb25zIH0gZnJvbSBcIi4vRGV2QnVpbGRPcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5EZXZCdWlsZChcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IERldmVsb3BtZW50QnVpbGRPcHRpb25zLFxuICAgIGVuZ2luZURpcmVjdG9yeTogc3RyaW5nLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRldkJ1aWxkT3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayA9IGF3YWl0IGNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrKGVuZ2luZURpcmVjdG9yeSk7XG4gICAgY29uc3QgYnVpbGRFbmdpbmVDaGFpbiA9IGVuZ2luZVdlYnBhY2tDb25maWdUYXNrLmNoYWluV2l0aChcbiAgICAgICAgcCA9PiBuZXcgQnVpbGRMb2NhbEVuZ2luZVRhc2socCwgcmVzb3VyY2VzRGlyZWN0b3J5LCBvcHRpb25zLmJ1aWxkRGVidWdPbmx5KVxuICAgICk7XG5cbiAgICBjb25zdCBjbGllbnRXZWJwYWNrQ29uZmlnVGFzayA9IGF3YWl0IGNyZWF0ZUNsaWVudFdlYnBhY2tDb25maWdUYXNrKGVuZ2luZURpcmVjdG9yeSk7XG4gICAgY29uc3QgYnVpbGRDbGllbnRKc0NoYWluID0gY2xpZW50V2VicGFja0NvbmZpZ1Rhc2suY2hhaW5XaXRoKHAgPT4gbmV3IEJ1aWxkQ2xpZW50SnNUYXNrKHAsIHJlc291cmNlc0RpcmVjdG9yeSkpO1xuXG4gICAgY29uc3Qgc3RhdGljUmVzb3VyY2VzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKFxuICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCJTdGF0aWNGaWxlc0ZvclJlc291cmNlc0RpclwiKSxcbiAgICAgICAgXCIqLmpzXCJcbiAgICApLmRvKHggPT5cbiAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiU1RBVElDU1wiKSwgeCwgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwdWJsaWNcIiwgXCJzY3JpcHRzXCIpKVxuICAgICk7XG5cbiAgICBjb25zdCBwaWNrTGlzdHNDaGFpbiA9IE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIpLCBcIiouanNvblwiKS5kbyh4ID0+XG4gICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChcIlBJQ0tMSVNUU1wiKSwgeCwgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwaWNrbGlzdHNcIikpXG4gICAgKTtcblxuICAgIGNvbnN0IHJlcG9zaXRvcnlSb290ID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiLi5cIik7XG4gICAgYXdhaXQgRm9ybUdsb2JzLmVuc3VyZUVhY2hHbG9iUmVzb2x2ZXNJbnRvRXhpc3RpbmdGb3JtKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KTtcbiAgICBjb25zdCBmb3JtSW5mb3MgPSBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZUdmdkdsb2JzKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KTtcblxuICAgIC8qKiDQmtC+0L3QstC10YDRgtC10YDRiyDQvtC/0LjRgdC4INC00LvRjyDRhNC+0YDQvCwg0LrQvtGC0L7RgNGL0LUg0L/QvtC60LAg0L3QtSDRgNC10LDQu9C40LfQvtCy0LDQvdGLINC90LAg0LrQtdC90LTQuCwg0YHQsNC80LAg0LzQtdGF0LDQvdC40LrQsCDQvtC/0LjRgdC4INC/0LXRgNC10L3QtdGB0LXQvdCwINCyINGE0L7RgNC80Ysg0LIg0LrQtdC90LTQuCDQsNC/0LgsINC/0L7RjdGC0L7QvNGDINC+0L3QuCDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0LIgY2FuZHkucmVzb3VyY2VzXG4gICAgICogINCg0LXQsNC70LjQt9GD0LXRgtGB0Y8g0YLQvtC70YzQutC+INC/0YDQuCDQvtCx0YnQtdC8INCx0LjQu9C00LUg0YTQvtGA0Lw6IGNhbmR5IGJ1aWxkICpcbiAgICAgKiAqL1xuICAgIGxldCByZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbjogQ2hhaW5hYmxlVmFsdWVQcm9kdWNlcjxzdHJpbmc+IHwgRW1wdHlQcm9kdWNlciA9IE9ic2VydmUuZW1wdHkoKTtcbiAgICBpZiAob3B0aW9ucy5mb3JtR2xvYnNbMF0gPT09IFwiKlwiKSB7XG4gICAgICAgIHJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluID0gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJleHRlcm5hbENvbnZlcnRlcnNcIiksIFwiKi54c2x0XCIpLmRvKFxuICAgICAgICAgICAgeCA9PlxuICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJFWFRFUk5BTC1DT05WRVJURVJTXCIpLFxuICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVpbGRGb3Jtc0NoYWluID0gT2JzZXJ2ZS5maXhlZEZvcm1EaXJlY3RvcmllcyhcbiAgICAgICAgZm9ybUluZm9zLm1hcCh4ID0+IHBhdGgucmVsYXRpdmUocmVwb3NpdG9yeVJvb3QsIHguZm9ybVBhdGgpKVxuICAgICkuc3BsaXRUb1BhcmFsbGVsQ2hhaW5zKFxuICAgICAgICB4ID0+IHgsXG4gICAgICAgIHggPT4geCxcbiAgICAgICAgYXN5bmMgZm9ybVJlbGF0aXZlUGF0aCA9PiB7XG4gICAgICAgICAgICBjb25zdCBnZnYgPSBleHRyYWN0R2Z2RnJvbUZvcm1QYXRoKGZvcm1SZWxhdGl2ZVBhdGgpO1xuICAgICAgICAgICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1SZWxhdGl2ZVBhdGgpO1xuICAgICAgICAgICAgY29uc3QgZm9ybVNjaGVtYXNEaXJQYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcInNjaGVtYXNcIik7XG4gICAgICAgICAgICBjb25zdCBybmdTY2hlbWFNYXNrID0gYCoke2dldFJuZ1NjaGVtYUZpbGVuYW1lKGZvcm1TY2hlbWFzRGlyUGF0aCwgZ2Z2KX1gO1xuXG4gICAgICAgICAgICByZXR1cm4gT2JzZXJ2ZS5maWxlKHBhdGguam9pbihmb3JtRGlyUGF0aCwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZSkpXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShmb3JtSnNvbkZpbGUgPT4gcmVzb2x2ZUZvcm1JbmZvKGZvcm1Kc29uRmlsZSwgZm9ybURpclBhdGgsIGVuZ2luZURpcmVjdG9yeSkpXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyB4ID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLngsXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvclNvdXJjZTogcmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlKGVuZ2luZURpcmVjdG9yeSksXG4gICAgICAgICAgICAgICAgICAgIGVuZ2luZVNvdXJjZTogcmVzb2x2ZUxvY2FsRW5naW5lU291cmNlKGVuZ2luZURpcmVjdG9yeSksXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4gZ2VuZXJhdG9yRmFjdG9yeShmaS5nZW5lcmF0b3JTb3VyY2UsIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSwgZmFsc2UsIHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIChmaSwgeSkgPT4gKHsgLi4uZmksIGdlbmVyYXRvcjogeSB9KSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgZmkgPT4gZ2V0R2VuZXJhdG9yU291cmNlS2V5KGZpLmdlbmVyYXRvclNvdXJjZSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybVNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCIuLi8uLi9jb250cm9scy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNjaGVtYXMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdWdhci8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXV0b2NhbGMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWxwZXJzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsaWRhdGlvbnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhbGl6YXRpb24vKiovKlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybShhc3luYyBmaSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5maSxcbiAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzSGFzaDogYXdhaXQgZmkuZ2VuZXJhdG9yLmdldEFsbERlcGVuZGVuY2llc0hhc2goXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGlyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBobEZhcm1EaXJlY3RvcnlQYXRoXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2tpcEdlbmVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlRm9ybShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1Tb3VyY2VzUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBobEZhcm1EaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZ2VuZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBDb2RlUmVmb3JtYXR0aW5nOiBvcHRpb25zLnNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc0hhc2g6IGZpLmRlcGVuZGVuY2llc0hhc2gsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+IE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm1cIiksIFwiKiovKlwiKSlcbiAgICAgICAgICAgICAgICAuZG8oZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgY29tcGlsZUZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuYnVpbGREZWJ1Z09ubHksXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5kbyhmaSA9PiB3cml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzKGZpLmZvcm1OYW1lLCBmYXJtRGlyZWN0b3J5LCBmb3JtRGlyUGF0aCwgcmVzb3VyY2VzRGlyZWN0b3J5KSlcbiAgICAgICAgICAgICAgICAuZG8oZmkgPT4gd3JpdGVBdHRhY2htZW50UGF0aEZpbGVzKGZpLmZvcm1OYW1lLCBmYXJtRGlyZWN0b3J5LCBmb3JtRGlyUGF0aCwgcmVzb3VyY2VzRGlyZWN0b3J5KSlcbiAgICAgICAgICAgICAgICAuZG8oZmkgPT4gd3JpdGVGb3JtTWV0YShyZXNvdXJjZXNEaXJlY3RvcnksIGdmdiwgZmkuZW5naW5lU291cmNlLCBmaS5kZXBlbmRlbmNpZXNIYXNoLCBmaS50aGVtZXMpKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInNjaGVtYXNcIiksIHJuZ1NjaGVtYU1hc2spLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlNDSEVNQVNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInNjaGVtYXNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJjb252ZXJ0ZXJzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiQ09OVkVSVEVSU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwiY29udmVydGVyc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIm1lcmdlcnNcIiksIFwiKlwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJNRVJHRVJTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJtZXJnZXJzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwibm9ybWFsaXplXCIpLCBcIioueG1sXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIk5PUk1BTElaRVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibm9ybWFsaXplXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwicGF0Y2hcIiksIFwiKi54c2x0XCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlBBVENIXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJwYXRjaFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIm1hcFwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJNQVBcIiksIHgsIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibWFwXCIpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInVubWFwXCIpLCBcIioueG1sXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIlVOTUFQXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJ1bm1hcFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBpZiAoZGV2QnVpbGRPcHRpb25zLndhdGNoKSB7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlMSA9IGF3YWl0IGJ1aWxkRW5naW5lQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTIgPSBhd2FpdCBidWlsZENsaWVudEpzQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTMgPSBhd2FpdCBzdGF0aWNSZXNvdXJjZXNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlNCA9IGF3YWl0IGJ1aWxkRm9ybXNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlNSA9IGF3YWl0IHBpY2tMaXN0c0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmU2ID0gYXdhaXQgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4ub2JzZXJ2ZSgpO1xuXG4gICAgICAgIGF3YWl0IGNvbnRleHQud2FpdEZvckV4aXQoKTtcblxuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTEoKTtcbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmUyKCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlMygpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTQoKTtcbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmU1KCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlNigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IERhdGUubm93KCk7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgIGJ1aWxkRW5naW5lQ2hhaW4uY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgYnVpbGRDbGllbnRKc0NoYWluLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgIHN0YXRpY1Jlc291cmNlc0NoYWluLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgIHJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgcGlja0xpc3RzQ2hhaW4uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBidWlsZEZvcm1zQ2hhaW4uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuY29udGludWVPbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpLFxuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgdG90YWxUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0RGF0ZTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5sb2coYCR7Y2hhbGsuZ3JlZW5CcmlnaHQoXCJCdWlsZCBzdWNjZXNzXCIpfSBUb3RhbCB0aW1lOiAke3ByaW50VGltZSh0b3RhbFRpbWUpfWApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLGtCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxxQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUkscUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGFBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLDZCQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxxQkFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsc0JBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLGdCQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxjQUFBLEdBQUFaLE9BQUE7QUFFQSxJQUFBYSxlQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxhQUFBLEdBQUFkLE9BQUE7QUFDQSxJQUFBZSxRQUFBLEdBQUFmLE9BQUE7QUFDQSxJQUFBZ0IsWUFBQSxHQUFBaEIsT0FBQTtBQUNBLElB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunDevBuild.js","names":["_path","_interopRequireDefault","require","_chalk","_BuildClientJsTask","_BuildLocalEngineTask","_EngineStructureUtils","_CompileForm","_GenerateForm","_WriteFLangNormalizationFiles","_FSTask","_AcquireFormGenerator","_PublishedVersionUtils","_ResolveFormInfo","_WriteFormMeta","_FormGlobsUtils","_StaticLogger","_Observe","_TimingUtils","_WriteAttachmentPathFiles","_getRngSchemaFilename","_FormPathUtils","_WellKnownDirectories","runDevBuild","context","options","engineDirectory","resourcesDirectory","farmDirectory","candyModulesDirectory","hlFarmDirectoryPath","devBuildOptions","engineWebpackConfigTask","createEngineWebpackConfigTask","buildEngineChain","chainWith","p","BuildLocalEngineTask","buildDebugOnly","clientWebpackConfigTask","createClientWebpackConfigTask","buildClientJsChain","BuildClientJsTask","staticResourcesChain","Observe","files","path","join","__dirname","do","x","FSTask","copyRecursively","getLogger","withPrefix","pickListsChain","logger","repositoryRoot","FormGlobs","ensureEachGlobResolvesIntoExistingForm","formGlobs","formInfos","resolveGfvGlobs","resourcesExternalConvertersChain","empty","buildFormsChain","fixedFormDirectories","map","relative","formPath","splitToParallelChains","formRelativePath","gfv","extractGfvFromFormPath","formDirPath","formSchemasDirPath","rngSchemaMask","getRngSchemaFilename","file","WellKnownDirectories","FormJsonFileName","transform","formJsonFile","resolveFormInfo","generatorSource","resolveLocalGeneratorSource","engineSource","resolveLocalEngineSource","attach","fi","generatorFactory","undefined","y","generator","getGeneratorSourceKey","formSourcesPath","dependenciesHash","getAllDependenciesHash","skipGeneration","generateForm","skipCodeReformatting","skipGeneratedCodeReformatting","resourcesHash","compileForm","formName","themes","writeFLangNormalizationFiles","writeAttachmentPathFiles","writeFormMeta","watch","stopObserve1","observe","stopObserve2","stopObserve3","stopObserve4","stopObserve5","stopObserve6","waitForExit","startDate","Date","now","Promise","all","currentValue","e","continueOnError","error","totalTime","console","log","chalk","greenBright","printTime"],"sources":["../../../../../src/CLICommands/DevBuild/RunDevBuild.ts"],"sourcesContent":["import path from \"path\";\n\nimport chalk from \"chalk\";\n\nimport { BuildClientJsTask } from \"../../BuildTasks/ClientJS/BuildClientJsTask\";\nimport { BuildLocalEngineTask } from \"../../BuildTasks/Engine/BuildLocalEngineTask\";\nimport { createClientWebpackConfigTask, createEngineWebpackConfigTask } from \"../../BuildTasks/EngineStructureUtils\";\nimport { compileForm } from \"../../BuildTasks/Form/CompileForm\";\nimport { generateForm } from \"../../BuildTasks/Form/GenerateForm\";\nimport { writeFLangNormalizationFiles } from \"../../BuildTasks/Form/WriteFLangNormalizationFiles\";\nimport { FSTask } from \"../../BuildTasks/FSTask\";\nimport { generatorFactory, getGeneratorSourceKey } from \"../../BuildTasks/Generator/AcquireFormGenerator\";\nimport { resolveLocalEngineSource, resolveLocalGeneratorSource } from \"../../BuildTasks/PublishedVersionUtils\";\nimport { resolveFormInfo } from \"../../BuildTasks/ResolveFormInfo\";\nimport { writeFormMeta } from \"../../BuildTasks/WriteFormMeta\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { FormGlobs } from \"../../Commons/FormGlobsUtils\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { Observe } from \"../../Commons/TasksCore/Observe\";\nimport { printTime } from \"../../Commons/TimingUtils\";\nimport { writeAttachmentPathFiles } from \"../../BuildTasks/Form/WriteAttachmentPathFiles\";\nimport { ChainableValueProducer } from \"../../Commons/TasksCore/ChainableValueProducer\";\nimport { EmptyProducer } from \"../../Commons/TasksCore/EmptyProducer\";\nimport { getRngSchemaFilename } from \"../../../../Common/getRngSchemaFilename\";\nimport { extractGfvFromFormPath } from \"../../../../Common/FormPathUtils\";\nimport { WellKnownDirectories } from \"../../../../Common/WellKnownDirectories\";\n\nimport { DevelopmentBuildOptions } from \"./DevBuildOptions\";\n\nexport async function runDevBuild(\n context: ConsoleApplicationContext,\n options: DevelopmentBuildOptions,\n engineDirectory: string,\n resourcesDirectory: string,\n farmDirectory: string,\n candyModulesDirectory: string,\n hlFarmDirectoryPath: string\n): Promise<void> {\n const devBuildOptions = options;\n\n const engineWebpackConfigTask = await createEngineWebpackConfigTask(engineDirectory);\n const buildEngineChain = engineWebpackConfigTask.chainWith(\n p => new BuildLocalEngineTask(p, resourcesDirectory, options.buildDebugOnly)\n );\n\n const clientWebpackConfigTask = await createClientWebpackConfigTask(engineDirectory);\n const buildClientJsChain = clientWebpackConfigTask.chainWith(p => new BuildClientJsTask(p, resourcesDirectory));\n\n const staticResourcesChain = Observe.files(\n path.join(__dirname, \"..\", \"..\", \"StaticFilesForResourcesDir\"),\n \"*.js\"\n ).do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"STATICS\"), x, path.join(resourcesDirectory, \"public\", \"scripts\"))\n );\n\n const pickListsChain = Observe.files(path.join(farmDirectory, \"picklists\"), \"*.json\").do(x =>\n FSTask.copyRecursively(context.logger.withPrefix(\"PICKLISTS\"), x, path.join(resourcesDirectory, \"picklists\"))\n );\n\n const repositoryRoot = path.join(farmDirectory, \"..\");\n await FormGlobs.ensureEachGlobResolvesIntoExistingForm(options.formGlobs, farmDirectory);\n const formInfos = await FormGlobs.resolveGfvGlobs(options.formGlobs, farmDirectory);\n\n /** Конвертеры описи для форм, которые пока не реализованы на кенди, сама механика описи перенесена в формы в кенди апи, поэтому они должны быть в candy.resources\n * Реализуется только при общем билде форм: candy build *\n * */\n let resourcesExternalConvertersChain: ChainableValueProducer<string> | EmptyProducer = Observe.empty();\n if (options.formGlobs[0] === \"*\") {\n resourcesExternalConvertersChain = Observe.files(path.join(farmDirectory, \"externalConverters\"), \"*.xslt\").do(\n x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"EXTERNAL-CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n );\n }\n\n const buildFormsChain = Observe.fixedFormDirectories(\n formInfos.map(x => path.relative(repositoryRoot, x.formPath))\n ).splitToParallelChains(\n x => x,\n x => x,\n async formRelativePath => {\n const gfv = extractGfvFromFormPath(formRelativePath);\n const formDirPath = path.join(repositoryRoot, formRelativePath);\n const formSchemasDirPath = path.join(formDirPath, \"schemas\");\n const rngSchemaMask = `*${getRngSchemaFilename(formSchemasDirPath, gfv)}`;\n\n return Observe.file(path.join(formDirPath, WellKnownDirectories.FormJsonFileName))\n .transform(formJsonFile => resolveFormInfo(formJsonFile, formDirPath, engineDirectory))\n .transform(async x => ({\n ...x,\n generatorSource: resolveLocalGeneratorSource(engineDirectory),\n engineSource: resolveLocalEngineSource(engineDirectory),\n }))\n .attach(\n async fi => generatorFactory(fi.generatorSource, candyModulesDirectory, false, undefined),\n async (fi, y) => ({ ...fi, generator: y }),\n async fi => getGeneratorSourceKey(fi.generatorSource)\n )\n .attach(async fi =>\n Observe.files(\n fi.formSourcesPath,\n \"../../controls/**/*\",\n \"schemas/**/*\",\n \"sugar/**/*\",\n \"controls/**/*\",\n \"autocalc/**/*\",\n \"helpers/**/*\",\n \"validations/**/*\",\n \"localization/**/*\"\n )\n )\n .transform(async fi => ({\n ...fi,\n dependenciesHash: await fi.generator.getAllDependenciesHash(\n formDirPath,\n farmDirectory,\n hlFarmDirectoryPath\n ),\n }))\n .do(async fi => {\n if (options.skipGeneration) {\n return undefined;\n }\n return generateForm(\n fi.formSourcesPath,\n farmDirectory,\n hlFarmDirectoryPath,\n fi.generator,\n undefined,\n {\n skipCodeReformatting: options.skipGeneratedCodeReformatting,\n resourcesHash: fi.dependenciesHash,\n }\n );\n })\n .attach(async fi => Observe.files(path.join(formDirPath, \"form\"), \"**/*\"))\n .do(fi =>\n compileForm(\n fi.formName,\n fi.themes,\n farmDirectory,\n formDirPath,\n resourcesDirectory,\n fi.dependenciesHash,\n options.buildDebugOnly\n )\n )\n .do(fi => writeFLangNormalizationFiles(fi.formName, farmDirectory, formDirPath, resourcesDirectory))\n .do(fi => writeAttachmentPathFiles(fi.formName, farmDirectory, formDirPath, resourcesDirectory))\n .do(fi => writeFormMeta(resourcesDirectory, gfv, fi.engineSource, fi.dependenciesHash, fi.themes))\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"schemas\"), rngSchemaMask).do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"SCHEMAS\"),\n x,\n path.join(resourcesDirectory, \"schemas\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"converters\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"mergers\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"MERGERS\"),\n x,\n path.join(resourcesDirectory, \"mergers\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"normalize\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"NORMALIZE\"),\n x,\n path.join(resourcesDirectory, \"normalize\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"patch\"), \"*.xslt\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"PATCH\"),\n x,\n path.join(resourcesDirectory, \"patch\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"map\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"MAP\"), x, path.join(resourcesDirectory, \"map\"))\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"unmap\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"UNMAP\"),\n x,\n path.join(resourcesDirectory, \"unmap\")\n )\n )\n );\n }\n );\n\n if (devBuildOptions.watch) {\n const stopObserve1 = await buildEngineChain.observe();\n const stopObserve2 = await buildClientJsChain.observe();\n const stopObserve3 = await staticResourcesChain.observe();\n const stopObserve4 = await buildFormsChain.observe();\n const stopObserve5 = await pickListsChain.observe();\n const stopObserve6 = await resourcesExternalConvertersChain.observe();\n\n await context.waitForExit();\n\n await stopObserve1();\n await stopObserve2();\n await stopObserve3();\n await stopObserve4();\n await stopObserve5();\n await stopObserve6();\n } else {\n const startDate = Date.now();\n await Promise.all([\n buildEngineChain.currentValue,\n buildClientJsChain.currentValue,\n staticResourcesChain.currentValue,\n resourcesExternalConvertersChain.currentValue,\n (async () => {\n try {\n await pickListsChain.currentValue;\n await buildFormsChain.currentValue;\n } catch (e) {\n if (options.continueOnError) {\n context.logger.error(e);\n } else {\n throw e;\n }\n }\n })(),\n ]);\n const totalTime = Date.now() - startDate;\n // eslint-disable-next-line no-console\n console.log(`${chalk.greenBright(\"Build success\")} Total time: ${printTime(totalTime)}`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"RunDevBuild.js","names":["_path","_interopRequireDefault","require","_chalk","_BuildClientJsTask","_BuildLocalEngineTask","_EngineStructureUtils","_CompileForm","_GenerateForm","_WriteFLangNormalizationFiles","_FSTask","_AcquireFormGenerator","_PublishedVersionUtils","_ResolveFormInfo","_WriteFormMeta","_FormGlobsUtils","_StaticLogger","_Observe","_TimingUtils","_WriteAttachmentPathFiles","_getRngSchemaFilename","_FormPathUtils","_WellKnownDirectories","runDevBuild","context","options","engineDirectory","resourcesDirectory","farmDirectory","candyModulesDirectory","hlFarmDirectoryPath","devBuildOptions","engineWebpackConfigTask","createEngineWebpackConfigTask","buildEngineChain","chainWith","p","BuildLocalEngineTask","buildDebugOnly","clientWebpackConfigTask","createClientWebpackConfigTask","buildClientJsChain","BuildClientJsTask","staticResourcesChain","Observe","files","path","join","__dirname","do","x","FSTask","copyRecursively","getLogger","withPrefix","pickListsChain","logger","repositoryRoot","FormGlobs","ensureEachGlobResolvesIntoExistingForm","formGlobs","formInfos","resolveGfvGlobs","resourcesExternalConvertersChain","empty","buildFormsChain","fixedFormDirectories","map","relative","formPath","splitToParallelChains","formRelativePath","gfv","extractGfvFromFormPath","formDirPath","formSchemasDirPath","rngSchemaMask","getRngSchemaFilename","file","WellKnownDirectories","FormJsonFileName","transform","formJsonFile","resolveFormInfo","generatorSource","resolveLocalGeneratorSource","engineSource","resolveLocalEngineSource","attach","fi","generatorFactory","undefined","y","generator","getGeneratorSourceKey","formSourcesPath","dependenciesHash","getAllDependenciesHash","skipGeneration","generateForm","skipCodeReformatting","skipGeneratedCodeReformatting","resourcesHash","compileForm","formName","writeFLangNormalizationFiles","writeAttachmentPathFiles","writeFormMeta","themes","watch","stopObserve1","observe","stopObserve2","stopObserve3","stopObserve4","stopObserve5","stopObserve6","waitForExit","startDate","Date","now","Promise","all","currentValue","e","continueOnError","error","totalTime","console","log","chalk","greenBright","printTime"],"sources":["../../../../../src/CLICommands/DevBuild/RunDevBuild.ts"],"sourcesContent":["import path from \"path\";\n\nimport chalk from \"chalk\";\n\nimport { BuildClientJsTask } from \"../../BuildTasks/ClientJS/BuildClientJsTask\";\nimport { BuildLocalEngineTask } from \"../../BuildTasks/Engine/BuildLocalEngineTask\";\nimport { createClientWebpackConfigTask, createEngineWebpackConfigTask } from \"../../BuildTasks/EngineStructureUtils\";\nimport { compileForm } from \"../../BuildTasks/Form/CompileForm\";\nimport { generateForm } from \"../../BuildTasks/Form/GenerateForm\";\nimport { writeFLangNormalizationFiles } from \"../../BuildTasks/Form/WriteFLangNormalizationFiles\";\nimport { FSTask } from \"../../BuildTasks/FSTask\";\nimport { generatorFactory, getGeneratorSourceKey } from \"../../BuildTasks/Generator/AcquireFormGenerator\";\nimport { resolveLocalEngineSource, resolveLocalGeneratorSource } from \"../../BuildTasks/PublishedVersionUtils\";\nimport { resolveFormInfo } from \"../../BuildTasks/ResolveFormInfo\";\nimport { writeFormMeta } from \"../../BuildTasks/WriteFormMeta\";\nimport { ConsoleApplicationContext } from \"../../Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { FormGlobs } from \"../../Commons/FormGlobsUtils\";\nimport { getLogger } from \"../../Commons/Logging/StaticLogger\";\nimport { Observe } from \"../../Commons/TasksCore/Observe\";\nimport { printTime } from \"../../Commons/TimingUtils\";\nimport { writeAttachmentPathFiles } from \"../../BuildTasks/Form/WriteAttachmentPathFiles\";\nimport { ChainableValueProducer } from \"../../Commons/TasksCore/ChainableValueProducer\";\nimport { EmptyProducer } from \"../../Commons/TasksCore/EmptyProducer\";\nimport { getRngSchemaFilename } from \"../../../../Common/getRngSchemaFilename\";\nimport { extractGfvFromFormPath } from \"../../../../Common/FormPathUtils\";\nimport { WellKnownDirectories } from \"../../../../Common/WellKnownDirectories\";\n\nimport { DevelopmentBuildOptions } from \"./DevBuildOptions\";\n\nexport async function runDevBuild(\n context: ConsoleApplicationContext,\n options: DevelopmentBuildOptions,\n engineDirectory: string,\n resourcesDirectory: string,\n farmDirectory: string,\n candyModulesDirectory: string,\n hlFarmDirectoryPath: string\n): Promise<void> {\n const devBuildOptions = options;\n\n const engineWebpackConfigTask = await createEngineWebpackConfigTask(engineDirectory);\n const buildEngineChain = engineWebpackConfigTask.chainWith(\n p => new BuildLocalEngineTask(p, resourcesDirectory, options.buildDebugOnly)\n );\n\n const clientWebpackConfigTask = await createClientWebpackConfigTask(engineDirectory);\n const buildClientJsChain = clientWebpackConfigTask.chainWith(p => new BuildClientJsTask(p, resourcesDirectory));\n\n const staticResourcesChain = Observe.files(\n path.join(__dirname, \"..\", \"..\", \"StaticFilesForResourcesDir\"),\n \"*.js\"\n ).do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"STATICS\"), x, path.join(resourcesDirectory, \"public\", \"scripts\"))\n );\n\n const pickListsChain = Observe.files(path.join(farmDirectory, \"picklists\"), \"*.json\").do(x =>\n FSTask.copyRecursively(context.logger.withPrefix(\"PICKLISTS\"), x, path.join(resourcesDirectory, \"picklists\"))\n );\n\n const repositoryRoot = path.join(farmDirectory, \"..\");\n await FormGlobs.ensureEachGlobResolvesIntoExistingForm(options.formGlobs, farmDirectory);\n const formInfos = await FormGlobs.resolveGfvGlobs(options.formGlobs, farmDirectory);\n\n /** Конвертеры описи для форм, которые пока не реализованы на кенди, сама механика описи перенесена в формы в кенди апи, поэтому они должны быть в candy.resources\n * Реализуется только при общем билде форм: candy build *\n * */\n let resourcesExternalConvertersChain: ChainableValueProducer<string> | EmptyProducer = Observe.empty();\n if (options.formGlobs[0] === \"*\") {\n resourcesExternalConvertersChain = Observe.files(path.join(farmDirectory, \"externalConverters\"), \"*.xslt\").do(\n x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"EXTERNAL-CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n );\n }\n\n const buildFormsChain = Observe.fixedFormDirectories(\n formInfos.map(x => path.relative(repositoryRoot, x.formPath))\n ).splitToParallelChains(\n x => x,\n x => x,\n async formRelativePath => {\n const gfv = extractGfvFromFormPath(formRelativePath);\n const formDirPath = path.join(repositoryRoot, formRelativePath);\n const formSchemasDirPath = path.join(formDirPath, \"schemas\");\n const rngSchemaMask = `*${getRngSchemaFilename(formSchemasDirPath, gfv)}`;\n\n return Observe.file(path.join(formDirPath, WellKnownDirectories.FormJsonFileName))\n .transform(formJsonFile => resolveFormInfo(formJsonFile, formDirPath, engineDirectory))\n .transform(async x => ({\n ...x,\n generatorSource: resolveLocalGeneratorSource(engineDirectory),\n engineSource: resolveLocalEngineSource(engineDirectory),\n }))\n .attach(\n async fi => generatorFactory(fi.generatorSource, candyModulesDirectory, false, undefined),\n async (fi, y) => ({ ...fi, generator: y }),\n async fi => getGeneratorSourceKey(fi.generatorSource)\n )\n .attach(async fi =>\n Observe.files(\n fi.formSourcesPath,\n \"../../controls/**/*\",\n \"schemas/**/*\",\n \"sugar/**/*\",\n \"controls/**/*\",\n \"autocalc/**/*\",\n \"helpers/**/*\",\n \"validations/**/*\",\n \"localization/**/*\"\n )\n )\n .transform(async fi => ({\n ...fi,\n dependenciesHash: await fi.generator.getAllDependenciesHash(\n formDirPath,\n farmDirectory,\n hlFarmDirectoryPath\n ),\n }))\n .do(async fi => {\n if (options.skipGeneration) {\n return undefined;\n }\n return generateForm(\n fi.formSourcesPath,\n farmDirectory,\n hlFarmDirectoryPath,\n fi.generator,\n undefined,\n {\n skipCodeReformatting: options.skipGeneratedCodeReformatting,\n resourcesHash: fi.dependenciesHash,\n }\n );\n })\n .attach(async fi => Observe.files(path.join(formDirPath, \"form\"), \"**/*\"))\n .do(fi =>\n compileForm(\n fi.formName,\n formDirPath,\n resourcesDirectory,\n fi.dependenciesHash,\n options.buildDebugOnly,\n undefined,\n false\n )\n )\n .do(fi => writeFLangNormalizationFiles(fi.formName, farmDirectory, formDirPath, resourcesDirectory))\n .do(fi => writeAttachmentPathFiles(fi.formName, farmDirectory, formDirPath, resourcesDirectory))\n .do(fi => writeFormMeta(resourcesDirectory, gfv, fi.engineSource, fi.dependenciesHash, fi.themes))\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"schemas\"), rngSchemaMask).do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"SCHEMAS\"),\n x,\n path.join(resourcesDirectory, \"schemas\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"converters\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"CONVERTERS\"),\n x,\n path.join(resourcesDirectory, \"converters\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"mergers\"), \"*\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"MERGERS\"),\n x,\n path.join(resourcesDirectory, \"mergers\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"normalize\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"NORMALIZE\"),\n x,\n path.join(resourcesDirectory, \"normalize\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"patch\"), \"*.xslt\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"PATCH\"),\n x,\n path.join(resourcesDirectory, \"patch\")\n )\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"map\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(getLogger().withPrefix(\"MAP\"), x, path.join(resourcesDirectory, \"map\"))\n )\n )\n .attach(async fi =>\n Observe.files(path.join(fi.formSourcesPath, \"unmap\"), \"*.xml\").do(x =>\n FSTask.copyRecursively(\n getLogger().withPrefix(\"UNMAP\"),\n x,\n path.join(resourcesDirectory, \"unmap\")\n )\n )\n );\n }\n );\n\n if (devBuildOptions.watch) {\n const stopObserve1 = await buildEngineChain.observe();\n const stopObserve2 = await buildClientJsChain.observe();\n const stopObserve3 = await staticResourcesChain.observe();\n const stopObserve4 = await buildFormsChain.observe();\n const stopObserve5 = await pickListsChain.observe();\n const stopObserve6 = await resourcesExternalConvertersChain.observe();\n\n await context.waitForExit();\n\n await stopObserve1();\n await stopObserve2();\n await stopObserve3();\n await stopObserve4();\n await stopObserve5();\n await stopObserve6();\n } else {\n const startDate = Date.now();\n await Promise.all([\n buildEngineChain.currentValue,\n buildClientJsChain.currentValue,\n staticResourcesChain.currentValue,\n resourcesExternalConvertersChain.currentValue,\n (async () => {\n try {\n await pickListsChain.currentValue;\n await buildFormsChain.currentValue;\n } catch (e) {\n if (options.continueOnError) {\n context.logger.error(e);\n } else {\n throw e;\n }\n }\n })(),\n ]);\n const totalTime = Date.now() - startDate;\n // eslint-disable-next-line no-console\n console.log(`${chalk.greenBright(\"Build success\")} Total time: ${printTime(totalTime)}`);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,20 +23,7 @@ async function runRenameFiles(context, options, resourcesDirectory, farmDirector
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
async function renameFiles(farmDirectory, gfv, formPath, logger) {
|
|
26
|
-
|
|
27
|
-
const presentationsFile = path.join(formPath, "presentations.json");
|
|
28
|
-
if (!(await (0, _fsExtra.pathExists)(presentationsFile))) {
|
|
29
|
-
logger.warning(`Form ${gfv} does not have presentations.json.`);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const json = await (0, _fsExtra.readJson)(presentationsFile);
|
|
33
|
-
let maxSubversion = 0;
|
|
34
|
-
for (const item of json) {
|
|
35
|
-
if (item["MaxVersion"] !== undefined && item["MaxVersion"]) {
|
|
36
|
-
maxSubversion = item["MaxVersion"];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
maxSubversion = (_maxSubversion = maxSubversion) !== null && _maxSubversion !== void 0 ? _maxSubversion : 0;
|
|
26
|
+
const maxSubversion = 0;
|
|
40
27
|
const rngXmlFileName = `${gfv}.rng.xml`;
|
|
41
28
|
const newRngXmlFileName = `${gfv}.${maxSubversion}.rng.xml`;
|
|
42
29
|
const fileDirPath = path.join(formPath, "schemas", rngXmlFileName);
|
|
@@ -48,4 +35,4 @@ async function renameFiles(farmDirectory, gfv, formPath, logger) {
|
|
|
48
35
|
logger.log(`Rename "${rngXmlFileName}" in "${newRngXmlFileName}".`);
|
|
49
36
|
await (0, _fsExtra.rename)(fileDirPath, newFileDirPath);
|
|
50
37
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfRm9ybUdsb2JzVXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJydW5SZW5hbWVGaWxlcyIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsIkZvcm1HbG9icyIsImVuc3VyZUVhY2hHbG9iUmVzb2x2ZXNJbnRvRXhpc3RpbmdGb3JtIiwiZm9ybUdsb2JzIiwicmVzb2x2ZVNwZWNpZmllcnMiLCJnZnYiLCJmb3JtUGF0aCIsInJlc29sdmVHZnZHbG9icyIsImlzTmFOIiwiTnVtYmVyIiwibG9nZ2VyIiwid2l0aFByZWZpeCIsInJlbmFtZUZpbGVzIiwibWF4U3VidmVyc2lvbiIsInJuZ1htbEZpbGVOYW1lIiwibmV3Um5nWG1sRmlsZU5hbWUiLCJmaWxlRGlyUGF0aCIsImpvaW4iLCJwYXRoRXhpc3RzIiwid2FybmluZyIsIm5ld0ZpbGVEaXJQYXRoIiwibG9nIiwicmVuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL1JlbmFtZUZpbGVzL1J1blJlbmFtZUZpbGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cywgcmVuYW1lIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5cbmltcG9ydCB7IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9ybUdsb2JzIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHNcIjtcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcblxuaW1wb3J0IHsgUmVuYW1lRmlsZXNPcHRpb25zIH0gZnJvbSBcIi4vUmVuYW1lRmlsZXNPcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5SZW5hbWVGaWxlcyhcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IFJlbmFtZUZpbGVzT3B0aW9ucyxcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IEZvcm1HbG9icy5lbnN1cmVFYWNoR2xvYlJlc29sdmVzSW50b0V4aXN0aW5nRm9ybShvcHRpb25zLmZvcm1HbG9icywgZmFybURpcmVjdG9yeSk7XG4gICAgY29uc3QgZm9ybUdsb2JzID0gYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVTcGVjaWZpZXJzKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KTtcbiAgICBmb3IgKGNvbnN0IHsgZ2Z2LCBmb3JtUGF0aCB9IG9mIGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlR2Z2R2xvYnMoZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSkge1xuICAgICAgICBpZiAoIWlzTmFOKE51bWJlcihnZnYpKSkge1xuICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChgRk9STToke2dmdn1gKTtcbiAgICAgICAgICAgIGF3YWl0IHJlbmFtZUZpbGVzKGZhcm1EaXJlY3RvcnksIGdmdiwgZm9ybVBhdGgsIGxvZ2dlcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmFtZUZpbGVzKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgZ2Z2OiBzdHJpbmcsIGZvcm1QYXRoOiBzdHJpbmcsIGxvZ2dlcjogSUxvZ2dlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1heFN1YnZlcnNpb24gPSAwO1xuICAgIGNvbnN0IHJuZ1htbEZpbGVOYW1lID0gYCR7Z2Z2fS5ybmcueG1sYDtcbiAgICBjb25zdCBuZXdSbmdYbWxGaWxlTmFtZSA9IGAke2dmdn0uJHttYXhTdWJ2ZXJzaW9ufS5ybmcueG1sYDtcbiAgICBjb25zdCBmaWxlRGlyUGF0aCA9IHBhdGguam9pbihmb3JtUGF0aCwgXCJzY2hlbWFzXCIsIHJuZ1htbEZpbGVOYW1lKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZpbGVEaXJQYXRoKSkpIHtcbiAgICAgICAgbG9nZ2VyLndhcm5pbmcoYEZvcm0gJHtnZnZ9IGRvZXMgbm90IGhhdmUgJHtybmdYbWxGaWxlTmFtZX0uYCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV3RmlsZURpclBhdGggPSBwYXRoLmpvaW4oZm9ybVBhdGgsIFwic2NoZW1hc1wiLCBuZXdSbmdYbWxGaWxlTmFtZSk7XG4gICAgbG9nZ2VyLmxvZyhgUmVuYW1lIFwiJHtybmdYbWxGaWxlTmFtZX1cIiBpbiBcIiR7bmV3Um5nWG1sRmlsZU5hbWV9XCIuYCk7XG4gICAgYXdhaXQgcmVuYW1lKGZpbGVEaXJQYXRoLCBuZXdGaWxlRGlyUGF0aCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLElBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLGVBQUEsR0FBQUYsT0FBQTtBQUF5RCxTQUFBRyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBTCx3QkFBQUssQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFdBQUFLLE9BQUEsRUFBQUwsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FBQUEsQ0FBQSxDQUFBVixHQUFBLElBQUFVLENBQUEsQ0FBQUMsR0FBQSxJQUFBUCxNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFHLENBQUEsSUFBQVQsQ0FBQSxDQUFBTSxDQUFBLElBQUFkLENBQUEsQ0FBQWMsQ0FBQSxZQUFBTixDQUFBLENBQUFILE9BQUEsR0FBQUwsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUFLbEQsZUFBZVcsY0FBY0EsQ0FDaENDLE9BQWtDLEVBQ2xDQyxPQUEyQixFQUMzQkMsa0JBQTBCLEVBQzFCQyxhQUFxQixFQUNSO0VBQ2IsTUFBTUMseUJBQVMsQ0FBQ0Msc0NBQXNDLENBQUNKLE9BQU8sQ0FBQ0ssU0FBUyxFQUFFSCxhQUFhLENBQUM7RUFDeEYsTUFBTUcsU0FBUyxHQUFHLE1BQU1GLHlCQUFTLENBQUNHLGlCQUFpQixDQUFDTixPQUFPLENBQUNLLFNBQVMsRUFBRUgsYUFBYSxDQUFDO0VBQ3JGLEtBQUssTUFBTTtJQUFFSyxHQUFHO0lBQUVDO0VBQVMsQ0FBQyxJQUFJLE1BQU1MLHlCQUFTLENBQUNNLGVBQWUsQ0FBQ0osU0FBUyxFQUFFSCxhQUFhLENBQUMsRUFBRTtJQUN2RixJQUFJLENBQUNRLEtBQUssQ0FBQ0MsTUFBTSxDQUFDSixHQUFHLENBQUMsQ0FBQyxFQUFFO01BQ3JCLE1BQU1LLE1BQU0sR0FBR2IsT0FBTyxDQUFDYSxNQUFNLENBQUNDLFVBQVUsQ0FBQyxRQUFRTixHQUFHLEVBQUUsQ0FBQztNQUN2RCxNQUFNTyxXQUFXLENBQUNaLGFBQWEsRUFBRUssR0FBRyxFQUFFQyxRQUFRLEVBQUVJLE1BQU0sQ0FBQztJQUMzRDtFQUNKO0FBQ0o7QUFFQSxlQUFlRSxXQUFXQSxDQUFDWixhQUFxQixFQUFFSyxHQUFXLEVBQUVDLFFBQWdCLEVBQUVJLE1BQWUsRUFBaUI7RUFDN0csTUFBTUcsYUFBYSxHQUFHLENBQUM7RUFDdkIsTUFBTUMsY0FBYyxHQUFHLEdBQUdULEdBQUcsVUFBVTtFQUN2QyxNQUFNVSxpQkFBaUIsR0FBRyxHQUFHVixHQUFHLElBQUlRLGFBQWEsVUFBVTtFQUMzRCxNQUFNRyxXQUFXLEdBQUc3QyxJQUFJLENBQUM4QyxJQUFJLENBQUNYLFFBQVEsRUFBRSxTQUFTLEVBQUVRLGNBQWMsQ0FBQztFQUNsRSxJQUFJLEVBQUUsTUFBTSxJQUFBSSxtQkFBVSxFQUFDRixXQUFXLENBQUMsQ0FBQyxFQUFFO0lBQ2xDTixNQUFNLENBQUNTLE9BQU8sQ0FBQyxRQUFRZCxHQUFHLGtCQUFrQlMsY0FBYyxHQUFHLENBQUM7SUFDOUQ7RUFDSjtFQUNBLE1BQU1NLGNBQWMsR0FBR2pELElBQUksQ0FBQzhDLElBQUksQ0FBQ1gsUUFBUSxFQUFFLFNBQVMsRUFBRVMsaUJBQWlCLENBQUM7RUFDeEVMLE1BQU0sQ0FBQ1csR0FBRyxDQUFDLFdBQVdQLGNBQWMsU0FBU0MsaUJBQWlCLElBQUksQ0FBQztFQUNuRSxNQUFNLElBQUFPLGVBQU0sRUFBQ04sV0FBVyxFQUFFSSxjQUFjLENBQUM7QUFDN0MiLCJpZ25vcmVMaXN0IjpbXX0=
|