@tilde-nlp/ngx-translate 2.1.26 → 2.1.28

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.
@@ -100,6 +100,7 @@ export class TldTranslateConfigService {
100
100
  this._coreConfig.defaultDomains = core?.defaultDomains ?? ["GEN", "general"];
101
101
  this._coreConfig.contactSupport = core?.contactSupport ?? true;
102
102
  this._coreConfig.subscriptionSupport = core?.subscriptionSupport ?? true;
103
+ this._coreConfig.isWebComponent = core?.isWebComponent ?? false;
103
104
  this._fileConfig.allowedFileTypes = file?.allowedFileTypes || [".doc", ".docx", ".xlsx", ".pdf", ".pptx", ".odt", ".odp", ".ods", ".txt"];
104
105
  this._fileConfig.extendedFileTypes = file?.extendedFileTypes
105
106
  || [".doc", ".docx", ".xlsx", ".pptx", ".odt", ".odp", ".ods", ".txt", ".html", ".htm",
@@ -227,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
227
228
  type: Inject,
228
229
  args: [TLD_TRANSLATE_CONFIG_TOKEN]
229
230
  }] }]; } });
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBb0UsVUFBaUMsRUFDbEMsTUFBMkI7UUFEMUIsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFJdEYsZ0JBQVcsR0FBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUt2RSxnQkFBVyxHQUE0QixFQUFFLENBQUM7UUFLMUMsZ0JBQVcsR0FBNEIsRUFBRSxDQUFDO1FBSzFDLHdCQUFtQixHQUErQixFQUFFLENBQUM7UUFLckQsZ0JBQVcsR0FBbUIsRUFBRSxDQUFDO1FBS2pDLGlCQUFZLEdBQTZCLEVBQUUsQ0FBQztRQUs1QyxpQkFBWSxHQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBS2pFLHdCQUFtQixHQUEyQixFQUFFLENBQUM7UUF0Q3ZELElBQUksQ0FBQyxXQUFXLEVBQUUs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SUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTthQUM3SztTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixHQUFHLElBQUksRUFBRSxtQkFBbUIsSUFBSTtZQUNsRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFF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LE1BQU0sQ0FBQztRQUM5RyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsR0FBRyxXQUFXLEVBQUUsZUFBZSxJQUFJLGlDQUFpQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEdBQUcsV0FBVyxFQUFFLG1CQUFtQixJQUFJLEtBQUssQ0FBQztRQUVsRixJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxHQUFHLFlBQVksRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ25FLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsWUFBWSxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7UUFFL0UsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssd0JBQXdCO1FBQzlCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUN2QztJQUNILENBQUM7O3NIQWxPVSx5QkFBeUIsa0JBRWhCLDZCQUE2QixhQUMzQiwwQkFBMEI7MEhBSHJDLHlCQUF5QixjQUZ4QixNQUFNOzJGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdjLE1BQU07MkJBQUMsNkJBQTZCOzswQkFDOUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vaW5qZWN0aW9uLXRva2Vucyc7XHJcbmltcG9ydCB7IFRMRF9UUkFOU0xBVEVfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vaW5qZWN0aW9uLXRva2Vucy90bGQtdHJhbnNsYXRlLWNvbmZpZy50b2tlbic7XHJcbmltcG9ydCB7IElUbGRUZXh0VG9TcGVlY2hDb25maWcsIGxhbmd1YWdlTWVudVZlcnNpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJVGxkQXVkaW9Db25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtYXVkaW8tY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRlcm1Db25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdGVybS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlQXBpVjJDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWFwaS12Mi1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlQ29yZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtY29yZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlRmlsZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtZmlsZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlVGV4dENvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtdGV4dC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlV2Vic2l0ZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtd2ViLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uQXBpVmVyc2lvbiB9IGZyb20gJy4uL21vZGVscy9jb3JlL3RyYW5zbGF0aW9uLWFwaS12ZXJzaW9uLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGFwaVZlcnNpb246IFRyYW5zbGF0aW9uQXBpVmVyc2lvbixcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVExEX1RSQU5TTEFURV9DT05GSUdfVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBJVGxkVHJhbnNsYXRlQ29uZmlnKSB7XHJcbiAgICB0aGlzLmluaXRDb25maWdzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb3JlQ29uZmlnOiBJVGxkVHJhbnNsYXRlQ29yZUNvbmZpZyA9IHsgYXBwSWQ6IG51bGwsIGNsaWVudElkOiBudWxsIH07XHJcbiAgZ2V0IGNvcmVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29yZUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RleHRDb25maWc6IElUbGRUcmFuc2xhdGVUZXh0Q29uZmlnID0ge307XHJcbiAgZ2V0IHRleHRDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGV4dENvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZpbGVDb25maWc6IElUbGRUcmFuc2xhdGVGaWxlQ29uZmlnID0ge307XHJcbiAgZ2V0IGZpbGVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsZUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3dlYnRyYW5zbGF0ZUNvbmZpZzogSVRsZFRyYW5zbGF0ZVdlYnNpdGVDb25maWcgPSB7fTtcclxuICBnZXQgd2VidHJhbnNsYXRlQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Rlcm1Db25maWc6IElUbGRUZXJtQ29uZmlnID0ge307XHJcbiAgZ2V0IHRlcm1Db25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGVybUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FwaVYyQ29uZmlnOiBJVGxkVHJhbnNsYXRlQXBpVjJDb25maWcgPSB7fTtcclxuICBnZXQgYXBpVjJDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBpVjJDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hdWRpb0NvbmZpZzogSVRsZEF1ZGlvQ29uZmlnID0geyBhcHBJZDogbnVsbCwgYXBwU2VjcmV0OiBudWxsIH07XHJcbiAgZ2V0IGF1ZGlvQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1ZGlvQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGV4dFRvU3BlZWNoQ29uZmlnOiBJVGxkVGV4dFRvU3BlZWNoQ29uZmlnID0ge307XHJcbiAgZ2V0IHRleHRUb1NwZWVjaENvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWc7XHJcbiAgfVxyXG5cclxuICBpbml0Q29uZmlncyhjb25maWd1cmF0aW9uPzogSVRsZFRyYW5zbGF0ZUNvbmZpZykge1xyXG4gICAgY29uc3QgY29uZmlnID0gY29uZmlndXJhdGlvbiA/PyB0aGlzLmNvbmZpZyA/PyB7fTtcclxuXHJcbiAgICBjb25zdCBjb3JlID0gY29uZmlnPy5jb3JlO1xyXG4gICAgY29uc3QgZmlsZSA9IGNvbmZpZz8uZmlsZTtcclxuICAgIGNvbnN0IHRleHQgPSBjb25maWc/LnRleHQ7XHJcbiAgICBjb25zdCBhdWRpbyA9IGNvbmZpZz8uYXVkaW87XHJcbiAgICBjb25zdCB3ZWJ0cmFuc2xhdGUgPSBjb25maWc/LndlYlRyYW5zbGF0ZTtcclxuICAgIGNvbnN0IHRlcm1Db25maWcgPSBjb25maWc/LnRlcm07XHJcbiAgICBjb25zdCBhcGlWMkNvbmZpZyA9IGNvbmZpZz8uYXBpVjI7XHJcbiAgICBjb25zdCB0ZXh0VG9TcGVlY2ggPSBjb25maWc/LnRleHRUb1NwZWVjaDtcclxuXHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnID0geyBhcHBJZDogY29yZT8uYXBwSWQsIGNsaWVudElkOiBjb3JlPy5jbGllbnRJZCB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5hcGlJc0luVGhlU2FtZURvbWFpbiA9IGNvcmU/LmFwaUlzSW5UaGVTYW1lRG9tYWluIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5hcHBOYW1lID0gY29yZT8uYXBwTmFtZSB8fCBcIlRpbGRlIE1UXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmhpZGVBY2hpZXZlbWVudCA9IGNvcmU/LmhpZGVBY2hpZXZlbWVudCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNBdXRoID0gY29yZT8uaXNBdXRoIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5qd3RBdXRoID0gY29yZT8uand0QXV0aCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRlQXBwTmFtZSA9IGNvcmU/LnRyYW5zbGF0ZUFwcE5hbWUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcucmVnaXN0ZXJMaW5rID0gY29yZT8ucmVnaXN0ZXJMaW5rIHx8IFwiaHR0cHM6Ly90aWxkZS5jb20vcHJvZHVjdHMtYW5kLXNlcnZpY2VzL21hY2hpbmUtdHJhbnNsYXRpb25cIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3VwcG9ydEVtYWlsID0gY29yZT8uc3VwcG9ydEVtYWlsIHx8IFwibXRAdGlsZGUubHZcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc291cmNlTGFuZ3VhZ2VPcmRlciA9IGNvcmU/LnNvdXJjZUxhbmd1YWdlT3JkZXIgfHwge1xyXG4gICAgICBlbjogW1wiZW5cIiwgXCJsdlwiLCBcInJ1XCIsIFwibHRcIiwgXCJldFwiLCBcImZpXCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgbHY6IFtcImVuXCIsIFwibHZcIiwgXCJydVwiLCBcImx0XCIsIFwiZXRcIiwgXCJmaVwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGx0OiBbXCJlblwiLCBcImx0XCIsIFwicnVcIiwgXCJsdlwiLCBcImV0XCIsIFwiZmlcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBldDogW1wiZW5cIiwgXCJldFwiLCBcImZpXCIsIFwicnVcIiwgXCJsdlwiLCBcImx0XCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZmk6IFtcImZpXCIsIFwiZW5cIiwgXCJldFwiLCBcInJ1XCIsIFwibHZcIiwgXCJsdFwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIHBsOiBbXCJwbFwiLCBcImVuXCIsIFwiZGVcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJsdFwiLCBcImZpXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBkZTogW1wiZW5cIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImZyXCIsIFwiZGVcIiwgXCJlbFwiLCBcImdhXCIsIFwiaXNcIiwgXCJpdFwiLCBcImhyXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwibXRcIiwgXCJubFwiLCBcIm5iXCIsIFwicGxcIiwgXCJwdFwiLCBcInB0LXB0XCIsIFwicm9cIiwgXCJzdlwiLCBcInNrXCIsIFwic2xcIiwgXCJlc1wiLCBcImNzXCIsIFwiaHVcIlxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy50YXJnZXRMYW5ndWFnZU9yZGVyID0gY29yZT8udGFyZ2V0TGFuZ3VhZ2VPcmRlciB8fCB7XHJcbiAgICAgIGVuOiBbXCJlblwiLCBcImx2XCIsIFwicnVcIiwgXCJsdFwiLCBcImV0XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBsdjogW1wiZW5cIiwgXCJsdlwiLCBcImx0XCIsIFwiZXRcIiwgXCJydVwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgbHQ6IFtcImVuXCIsIFwibHRcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGV0OiBbXCJlblwiLCBcImV0XCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBmaTogW1wiZXRcIiwgXCJmaVwiLCBcImVuXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgcGw6IFtcImVuXCIsIFwicGxcIiwgXCJkZVwiLCBcImx2XCIsIFwicnVcIiwgXCJldFwiLCBcImZpXCIsIFwibHRcIiwgXCJhclwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGRlOiBbXCJkZVwiLCBcImVuXCIsIFwiZnJcIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImVsXCIsIFwiZ2FcIiwgXCJpc1wiLCBcIml0XCIsIFwiaHJcIiwgXCJsdlwiLCBcImx0XCIsIFwicnVcIiwgXCJtdFwiLCBcIm5sXCIsIFwibmJcIiwgXCJwbFwiLCBcInB0XCIsIFwicHQtcHRcIiwgXCJyb1wiLCBcInN2XCIsIFwic2tcIiwgXCJzbFwiLCBcImVzXCIsIFwiY3NcIiwgXCJodVwiLCBcImFyXCJdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHMgPSBjb3JlPy5oaWRlTGFuZ01lbnVMYWJlbHMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dWZW5kb3JzID0gY29yZT8uc2hvd1ZlbmRvcnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVuYXV0aG9yaXplZFJlZGlyZWN0TGluayA9IGNvcmU/LnVuYXV0aG9yaXplZFJlZGlyZWN0TGluaztcclxuICAgIHRoaXMuX2NvcmVDb25maWcuYWxsb3dlZFN5c3RlbVN0YXR1c2VzID0gY29yZT8uYWxsb3dlZFN5c3RlbVN0YXR1c2VzID8/IFsncnVubmluZycsICdzdGFuZGJ5JywgJ3F1ZXVpbmd0cmFuc2wnXTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID0gY29yZT8ubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID8/IDM7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVwbG9hZEljb25OYW1lID0gY29yZT8udXBsb2FkSWNvbk5hbWU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlYnVnID0gY29yZT8uZGVidWc7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSA9IGNvcmU/LnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpbnMgPSBjb3JlPy5zaG93RG9tYWlucyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0VmVuZG9yID0gY29yZT8uZGVmYXVsdFZlbmRvciA/PyBcIlRpbGRlXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHRTeXN0ZW1JZCA9IGNvcmU/LmRlZmF1bHRTeXN0ZW1JZDtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpblRpdGxlID0gY29yZT8uc2hvd0RvbWFpblRpdGxlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kb21haW5TaWRlID0gY29yZT8uZG9tYWluU2lkZSA/PyBcInRyZ1wiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zd2FwSWNvblBvc2l0aW9uID0gY29yZT8uc3dhcEljb25Qb3NpdGlvbiA/PyBcInNyY1wiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5sYW5ndWFnZU1lbnVWZXJzaW9uID0gY29yZT8ubGFuZ3VhZ2VNZW51VmVyc2lvbiA/PyBsYW5ndWFnZU1lbnVWZXJzaW9uLlYxO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5tYXhSZWNlbnRTeXN0ZW1Db3VudCA9IGNvcmU/Lm1heFJlY2VudFN5c3RlbUNvdW50ID8/IDQ7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHREb21haW5zID0gY29yZT8uZGVmYXVsdERvbWFpbnMgPz8gW1wiR0VOXCIsIFwiZ2VuZXJhbFwiXTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuY29udGFjdFN1cHBvcnQgPSBjb3JlPy5jb250YWN0U3VwcG9ydCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zdWJzY3JpcHRpb25TdXBwb3J0ID0gY29yZT8uc3Vic2NyaXB0aW9uU3VwcG9ydCA/PyB0cnVlO1xyXG5cclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dlZEZpbGVUeXBlcyA9IGZpbGU/LmFsbG93ZWRGaWxlVHlwZXMgfHwgW1wiLmRvY1wiLCBcIi5kb2N4XCIsIFwiLnhsc3hcIiwgXCIucGRmXCIsIFwiLnBwdHhcIiwgXCIub2R0XCIsIFwiLm9kcFwiLCBcIi5vZHNcIiwgXCIudHh0XCJdO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5leHRlbmRlZEZpbGVUeXBlcyA9IGZpbGU/LmV4dGVuZGVkRmlsZVR5cGVzXHJcbiAgICAgIHx8IFtcIi5kb2NcIiwgXCIuZG9jeFwiLCBcIi54bHN4XCIsIFwiLnBwdHhcIiwgXCIub2R0XCIsIFwiLm9kcFwiLCBcIi5vZHNcIiwgXCIudHh0XCIsIFwiLmh0bWxcIiwgXCIuaHRtXCIsXHJcbiAgICAgICAgXCIueGh0bWxcIiwgXCIueGh0XCIsIFwiLnRteFwiLCBcIi54bGZcIiwgXCIueGxpZlwiLCBcIi54bGlmZlwiLCBcIi5zZGx4bGlmZlwiLCBcIi5zZGx4bGZcIiwgXCIudHR4XCIsIFwiLnJ0ZlwiLFxyXG4gICAgICAgIFwiLnBhZ2VzXCIsIFwiLnRleFwiLCBcIi54bWxcIiwgXCIuanNvblwiLCBcIi5zeHdcIiwgXCIucGRmXCIsIFwiLmNzdlwiLCBcIi50dGxcIiwgXCIuc3J0XCIsIFwiLnBuZ1wiLCBcIi5qcGdcIiwgXCIuanBlZ1wiLCBcIi5ibXBcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93VG14QXV0aCA9IGZpbGU/LmFsbG93VG14QXV0aCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd1RteFVuYXV0aCA9IGZpbGU/LmFsbG93VG14VW5hdXRoID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5maWxlQXBpVXJsID0gZmlsZT8uZmlsZUFwaVVybCB8fCBcImh0dHBzOi8vbGV0c210LmV1L3dzL0ZpbGVzL1wiO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5maWxlRG93bmxvYWRUaW1lb3V0cyA9IGZpbGU/LmZpbGVEb3dubG9hZFRpbWVvdXRzXHJcbiAgICAgIHx8IHtcclxuICAgICAgXCJpbml0aWFsaXppbmdcIjogMTAwMCxcclxuICAgICAgXCJleHRyYWN0aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwid2FpdGluZ1wiOiAxMDAwMCxcclxuICAgICAgXCJ0cmFuc2xhdGluZ1wiOiAxMDAwLFxyXG4gICAgICBcInNhdmluZ1wiOiAxMDAwLFxyXG4gICAgICBcImNvbXBsZXRlZFwiOiAxMDAwLFxyXG4gICAgICBcImVycm9yXCI6IDEwMDAsXHJcbiAgICAgIFwicXVldWluZ1wiOiAxMDAwXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5tYXhTaXplID0gZmlsZT8ubWF4U2l6ZSB8fCAzMDcyMDAwMDtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcud29yZExpbWl0ID0gZmlsZT8ud29yZExpbWl0ID8/IDEyNTA7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVVcGxvYWQgPSBmaWxlPy5maWxlVXBsb2FkID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm9jclBhZ2VMaW1pdCA9IGZpbGU/Lm9jclBhZ2VMaW1pdCA/PyAxO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd1BERlNvdXJjZURvd25sb2FkID0gZmlsZT8uYWxsb3dQREZTb3VyY2VEb3dubG9hZCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd0ltYWdlU291cmNlRG93bmxvYWQgPSBmaWxlPy5hbGxvd0ltYWdlU291cmNlRG93bmxvYWQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuc291cmNlRG93bmxvYWRFeHRlbnNpb25zID0gZmlsZT8uc291cmNlRG93bmxvYWRFeHRlbnNpb25zIHx8IFtcInBkZlwiLCBcInBuZ1wiLCBcImpwZ1wiLCBcImpwZWdcIiwgXCJibXBcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnRhcmdldERvd25sb2FkRXh0ZW5zaW9uT3JkZXIgPSBmaWxlPy50YXJnZXREb3dubG9hZEV4dGVuc2lvbk9yZGVyO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5udW1iZXJPZkZpbGVzQWxsb3dlZCA9IGZpbGU/Lm51bWJlck9mRmlsZXNBbGxvd2VkID4gMCA/IGZpbGUubnVtYmVyT2ZGaWxlc0FsbG93ZWQgOiAxO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5zaG93VHJhbnNsYXRpb25MaW1pdHMgPSBmaWxlPy5zaG93VHJhbnNsYXRpb25MaW1pdHMgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcudXNlTXVsdGlwbGVGaWxlVXBsb2FkID0gZmlsZT8udXNlTXVsdGlwbGVGaWxlVXBsb2FkO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpdGxlVmlzaWJsZUZvclZlbmRvcnMgPSBmaWxlPy5wcm9ncmVzc0luZGljYXRvclRpdGxlVmlzaWJsZUZvclZlbmRvcnMgPz8gW1wiRVRyYW5zbGF0aW9uXCJdO1xyXG5cclxuICAgIHRoaXMuX3RleHRDb25maWcuZGljdGlvbmFyeVVybCA9IHRleHQ/LmRpY3Rpb25hcnlVcmwgfHwgXCJodHRwczovL2xldHNtdC5ldS9hcGkvZGljdGlvbmFyeS9HZXREaWN0aW9uYXJ5RW50cnkvXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLm1heENoYXJMZW5ndGggPSB0ZXh0Py5tYXhDaGFyTGVuZ3RoID8/IDUwMDA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLndlYldpZGdldFJlZGlyZWN0VXJsUG9zZml4ID0gdGV4dD8ud2ViV2lkZ2V0UmVkaXJlY3RVcmxQb3NmaXggfHwgXCIvd2VidHJhbnNsYXRlP3VybD1cIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcud2ViV2lkZ2V0UmVkaXJlY3RVcmxQcmVmaXggPSB0ZXh0Py53ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeCB8fCBcIlwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy51c2VEaWN0aW9uYXJ5ID0gdGV4dD8udXNlRGljdGlvbmFyeSA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0F2YWlsYWJsZUV4dGVuc2lvbnMgPSB0ZXh0Py5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucyA9PSBudWxsID8gdHJ1ZSA6IHRleHQuc2hvd0F2YWlsYWJsZUV4dGVuc2lvbnM7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dBdXRoRXh0ZW5zaW9ucyA9IHRleHQ/LnNob3dBdXRoRXh0ZW5zaW9ucyA9PSBudWxsID8gdHJ1ZSA6IHRleHQuc2hvd0F1dGhFeHRlbnNpb25zO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5hdXRvRm9jdXNzID0gdGV4dD8uYXV0b0ZvY3VzcztcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0V4dGVuc2lvbnNVbmF1dGhPbmx5ID0gdGV4dD8uc2hvd0V4dGVuc2lvbnNVbmF1dGhPbmx5O1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93U2Vuc2l0aXZlSW5mb1Rvb2x0aXAgPSB0ZXh0Py5zaG93U2Vuc2l0aXZlSW5mb1Rvb2x0aXA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmFsbG93V2Vic2l0ZVRyYW5zbGF0aW9uID0gdGV4dD8uYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24gPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1N1Z2dlc3Rpb25zID0gdGV4dD8uc2hvd1N1Z2dlc3Rpb25zID8/IHRydWU7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9SZWRpcmVjdFRvV2ViVHJhbnNsYXRlID0gdGV4dD8uYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGUgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmhpZ2hsaWdodCA9IHRleHQ/LmhpZ2hsaWdodCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5jaGVja1NvdXJjZUdyYW1tYXIgPSB0ZXh0Py5jaGVja1NvdXJjZUdyYW1tYXIgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmdyYW1tYXJDaGVja0xhbmd1YWdlcyA9IHRleHQ/LmdyYW1tYXJDaGVja0xhbmd1YWdlcyA/PyBbXTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1RhcmdldFBsYWNlaG9sZGVyID0gdGV4dD8uc2hvd1RhcmdldFBsYWNlaG9sZGVyO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uUG9wdXAgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uUG9wdXA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnZpc2libGVFeHRlbnNpb25Db3VudCA9IHRleHQ/LnZpc2libGVFeHRlbnNpb25Db3VudCA/PyAzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5oaWRlU291cmNlQWN0aW9uc1doZW5IYXNUZXh0TW9iaWxlID0gdGV4dD8uaGlkZVNvdXJjZUFjdGlvbnNXaGVuSGFzVGV4dE1vYmlsZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpbWVvdXRNaWxpU2Vjb25kcyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGltZW91dE1pbGlTZWNvbmRzID8/IDIwMDA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA/PyBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hdWRpb1RleHRJbnB1dCA9IGF1ZGlvPy5hdWRpb1RleHRJbnB1dCA/PyBmYWxzZTtcclxuICAgIC8vIE5vdCBzZXR0aW5nIGRlZmF1bHQgdXJsIGJlY2F1c2UgdGhlcmUgaXMgbm8gc2VydmljZSBwcm92aWRlZCBieSBUaWxkZSBhbmQgdGhpcyBpcyBub3QgdXNlZCBieSBkZWZhdWx0IGluIHdlYnNpdGUgcHJvamVjdC5cclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmF1ZGlvQXBpVXJsID0gYXVkaW8/LmF1ZGlvQXBpVXJsO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXVkaW9NYXhTaXplQnl0ZXMgPSBhdWRpbz8uYXVkaW9NYXhTaXplQnl0ZXMgPz8gMTAwMDAwMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5zb3VyY2VMYW5ndWFnZXMgPSBhdWRpbz8uc291cmNlTGFuZ3VhZ2VzID8/IFtdO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGF0YVVwZGF0ZVRpbWVGcmFtZSA9IGF1ZGlvPy5kYXRhVXBkYXRlVGltZUZyYW1lID8/IDUwMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5tYXhpbXVtUmVjb3JkVGltZSA9IGF1ZGlvPy5tYXhpbXVtUmVjb3JkVGltZSA/PyAzMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5kaWN0YXRlQXBpVXJsID0gYXVkaW8/LmRpY3RhdGVBcGlVcmwgPz8gXCJydW5hLnRpbGRlLmx2XCI7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hcHBJZCA9IGF1ZGlvPy5hcHBJZDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmFwcFNlY3JldCA9IGF1ZGlvPy5hcHBTZWNyZXQ7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5wdW5jdHVhdGlvbk1lc3NhZ2UgPSBhdWRpbz8ucHVuY3R1YXRpb25NZXNzYWdlID8/IHRydWU7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5kaXNhYmxlQXV0b21hdGljVHJhbnNsYXRpb24gPSBhdWRpbz8uZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uID8/IHRydWU7XHJcblxyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmxvZ29Mb2NhdGlvbiA9IHdlYnRyYW5zbGF0ZT8ubG9nb0xvY2F0aW9uIHx8ICdhc3NldHMvd2VidHJhbnNsYXRlL3RpbGRlX2xvZ28ucG5nJztcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy50cmFuc2xhdGVQYWdlUGF0aCA9IHdlYnRyYW5zbGF0ZT8udHJhbnNsYXRlUGFnZVBhdGg7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuZGVidWcgPSB3ZWJ0cmFuc2xhdGU/LmRlYnVnIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLndlYkxhbmdBdXRvZGV0ZWN0ID0gd2VidHJhbnNsYXRlPy53ZWJMYW5nQXV0b2RldGVjdCB8fCB0cnVlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmFsbG93U3VnZ2VzdGlvbnMgPSB3ZWJ0cmFuc2xhdGU/LmFsbG93U3VnZ2VzdGlvbnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuaGlkZVBvcHVwID0gd2VidHJhbnNsYXRlPy5oaWRlUG9wdXAgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuc2FuZGJveCA9IHdlYnRyYW5zbGF0ZT8uc2FuZGJveCA/PyBcImFsbG93LWZvcm1zIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW5cIjtcclxuXHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLnRlcm1pbm9sb2d5UG9ydGFsVXJsID0gdGVybUNvbmZpZz8udGVybWlub2xvZ3lQb3J0YWxVcmwgfHwgXCJodHRwczovL3Rlcm0udGlsZGUuY29tXCI7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb24gPSB0ZXJtQ29uZmlnPy5jYW5DcmVhdGVDb2xsZWN0aW9uO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkID0gdGVybUNvbmZpZz8uaXNDb2xsZWN0aW9uc0FjdGl2YXRlZDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuaXNUZXJtUG9ydGFsU3VwcG9ydGVkID0gdGVybUNvbmZpZz8uaXNUZXJtUG9ydGFsU3VwcG9ydGVkID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5jb2xsZWN0aW9uTmFtZU1pbkxlbmd0aCA9IHRlcm1Db25maWc/LmNvbGxlY3Rpb25OYW1lTWluTGVuZ3RoID8/IDg7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmNvbGxlY3Rpb25OYW1lTWF4TGVuZ3RoID0gdGVybUNvbmZpZz8uY29sbGVjdGlvbk5hbWVNYXhMZW5ndGggPz8gMzAwO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5yZWZyZXNoVGltZW91dE1zID0gdGVybUNvbmZpZz8ucmVmcmVzaFRpbWVvdXRNcyA/PyAxMDAwMDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmcgPSB0ZXJtQ29uZmlnPy5yZWZyZXNoVGltZW91dE1zV2hlbkltcG9ydGluZyA/PyA1MDAwO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5lbmdpbmVUZXJtVXJsID0gdGVybUNvbmZpZz8uZW5naW5lVGVybVVybDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuZGVmYXVsdEdsb3NzYXJ5TWFuYWdlbWVudExpbmsgPSB0ZXJtQ29uZmlnPy5kZWZhdWx0R2xvc3NhcnlNYW5hZ2VtZW50TGluaztcclxuXHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmZyZWVUcmlhbFVybCA9IHRlcm1Db25maWc/LmZyZWVUcmlhbFVybCA/PyBcImh0dHBzOi8vdGlsZGUuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9tYWNoaW5lLXRyYW5zbGF0aW9uL3ByaWNpbmcvVGlsZGUtTVRcIjtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcubGVhcm5Nb3JlVXJsID0gdGVybUNvbmZpZz8ubGVhcm5Nb3JlVXJsID8/IFwiaHR0cHM6Ly93d3cudGlsZGUuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9tYWNoaW5lLXRyYW5zbGF0aW9uL1RpbGRlLU1ULWZlYXR1cmVzLWdsb3NzYXJ5XCI7XHJcblxyXG4gICAgLy8gc2VwZXJhdGVkIGJlY2F1c2UgZm9sbG93aW5nIHVybHMgaGF2ZSBtZXRob2QgbmFtZXMgYWRkZWRcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsID0gY29yZT8udHJhbnNsYXRpb25TZXJ2aWNlVXJsIHx8IFwiaHR0cHM6Ly93d3cubGV0c210LmV1L3dzL3NlcnZpY2Uuc3ZjL2pzb24vXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnRyYW5zbGF0aW9uVXJsID0gdGV4dD8udHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIlRyYW5zbGF0ZUV4XCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnVwZGF0ZVRyYW5zbGF0aW9uVXJsID0gdGV4dD8udXBkYXRlVHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIlVwZGF0ZVRyYW5zbGF0aW9uXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnN5c3RlbUxpc3RVcmwgPSBjb3JlPy5zeXN0ZW1MaXN0VXJsID8/IHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsICsgXCJHZXRTeXN0ZW1MaXN0XCI7XHJcblxyXG4gICAgdGhpcy5fYXBpVjJDb25maWcueEFwaUtleSA9IGFwaVYyQ29uZmlnPy54QXBpS2V5O1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcubXRBcGlVcmwgPSBhcGlWMkNvbmZpZz8ubXRBcGlVcmwgPz8gXCJhcGkvdHJhbnNsYXRlL1wiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuc3lzdGVtTGlzdFVybCA9IGFwaVYyQ29uZmlnPy5zeXN0ZW1MaXN0VXJsID8/IHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsICsgXCJsYW5ndWFnZS1kaXJlY3Rpb25zXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy50cmFuc2xhdGlvblVybCA9IGFwaVYyQ29uZmlnPy50cmFuc2xhdGlvblVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwidGV4dFwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuZmlsZVRyYW5zbGF0aW9uVXJsID0gYXBpVjJDb25maWc/LmZpbGVUcmFuc2xhdGlvblVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwiZmlsZVwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuZ3JhbW1hckNoZWNrVXJsID0gYXBpVjJDb25maWc/LmdyYW1tYXJDaGVja1VybCA/PyBcImh0dHBzOi8vbXQuY3MudXQuZWUvYXBpL2dyYW1tYXJcIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLmF1dG9Eb21haW5EZXRlY3Rpb24gPSBhcGlWMkNvbmZpZz8uYXV0b0RvbWFpbkRldGVjdGlvbiA/PyBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWcubGFuZ3VhZ2VzID0gdGV4dFRvU3BlZWNoPy5sYW5ndWFnZXMgPz8ge307XHJcbiAgICB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWcubWF4Q2hhcnNJblRleHQgPSB0ZXh0VG9TcGVlY2g/Lm1heENoYXJzSW5UZXh0ID8/IDMwMDA7XHJcblxyXG4gICAgdGhpcy5lZGl0UHJvcGVydGllc0Jhc2VkT25BcGkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvIG1ha2Ugc3VyZSBuZWNlc3NhcnkgcHJvcGVydGllcyBhcmUgbm90IHR1cm5lZCBvbiBiZWNhdXNlIGluIGFwaSBWMiBzb21lIGZlYXR1cmVzIGFyZSBub3QgaW1wbGVtbmVudGVkLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZWRpdFByb3BlcnRpZXNCYXNlZE9uQXBpKCkge1xyXG4gICAgaWYgKHRoaXMuYXBpVmVyc2lvbiA9PT0gVHJhbnNsYXRpb25BcGlWZXJzaW9uLlYyKSB7XHJcbiAgICAgIHRoaXMudGV4dENvbmZpZy5zaG93U3VnZ2VzdGlvbnMgPSBmYWxzZTtcclxuICAgICAgdGhpcy50ZXh0Q29uZmlnLnVzZURpY3Rpb25hcnkgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBb0UsVUFBaUMsRUFDbEMsTUFBMkI7UUFEMUIsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFJdEYsZ0JBQVcsR0FBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUt2RSxnQkFBVyxHQUE0QixFQUFFLENBQUM7UUFLMUMsZ0JBQVcsR0FBNEIsRUFBRSxDQUFDO1FBSzFDLHdCQUFtQixHQUErQixFQUFFLENBQUM7UUFLckQsZ0JBQVcsR0FBbUIsRUFBRSxDQUFDO1FBS2pDLGlCQUFZLEdBQTZCLEVBQUUsQ0FBQztRQUs1QyxpQkFBWSxHQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1FBS2pFLHdCQUFtQixHQUEyQixFQUFFLENBQUM7UUF0Q3ZELElBQUksQ0FBQyxXQUFXLEVBQUUs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SUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTthQUM3SztTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixHQUFHLElBQUksRUFBRSxtQkFBbUIsSUFBSTtZQUNsRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFF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QUMsa0JBQWtCLEdBQUcsV0FBVyxFQUFFLGtCQUFrQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUM5RyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsR0FBRyxXQUFXLEVBQUUsZUFBZSxJQUFJLGlDQUFpQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEdBQUcsV0FBVyxFQUFFLG1CQUFtQixJQUFJLEtBQUssQ0FBQztRQUVsRixJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxHQUFHLFlBQVksRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ25FLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsWUFBWSxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7UUFFL0UsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssd0JBQXdCO1FBQzlCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUN2QztJQUNILENBQUM7O3NIQW5PVSx5QkFBeUIsa0JBRWhCLDZCQUE2QixhQUMzQiwwQkFBMEI7MEhBSHJDLHlCQUF5QixjQUZ4QixNQUFNOzJGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdjLE1BQU07MkJBQUMsNkJBQTZCOzswQkFDOUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vaW5qZWN0aW9uLXRva2Vucyc7XHJcbmltcG9ydCB7IFRMRF9UUkFOU0xBVEVfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vaW5qZWN0aW9uLXRva2Vucy90bGQtdHJhbnNsYXRlLWNvbmZpZy50b2tlbic7XHJcbmltcG9ydCB7IElUbGRUZXh0VG9TcGVlY2hDb25maWcsIGxhbmd1YWdlTWVudVZlcnNpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJVGxkQXVkaW9Db25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtYXVkaW8tY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSVRsZFRlcm1Db25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdGVybS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlQXBpVjJDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWFwaS12Mi1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlQ29yZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtY29yZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlRmlsZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtZmlsZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlVGV4dENvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtdGV4dC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlV2Vic2l0ZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtd2ViLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uQXBpVmVyc2lvbiB9IGZyb20gJy4uL21vZGVscy9jb3JlL3RyYW5zbGF0aW9uLWFwaS12ZXJzaW9uLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGFwaVZlcnNpb246IFRyYW5zbGF0aW9uQXBpVmVyc2lvbixcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVExEX1RSQU5TTEFURV9DT05GSUdfVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBJVGxkVHJhbnNsYXRlQ29uZmlnKSB7XHJcbiAgICB0aGlzLmluaXRDb25maWdzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb3JlQ29uZmlnOiBJVGxkVHJhbnNsYXRlQ29yZUNvbmZpZyA9IHsgYXBwSWQ6IG51bGwsIGNsaWVudElkOiBudWxsIH07XHJcbiAgZ2V0IGNvcmVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29yZUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RleHRDb25maWc6IElUbGRUcmFuc2xhdGVUZXh0Q29uZmlnID0ge307XHJcbiAgZ2V0IHRleHRDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGV4dENvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZpbGVDb25maWc6IElUbGRUcmFuc2xhdGVGaWxlQ29uZmlnID0ge307XHJcbiAgZ2V0IGZpbGVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsZUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3dlYnRyYW5zbGF0ZUNvbmZpZzogSVRsZFRyYW5zbGF0ZVdlYnNpdGVDb25maWcgPSB7fTtcclxuICBnZXQgd2VidHJhbnNsYXRlQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Rlcm1Db25maWc6IElUbGRUZXJtQ29uZmlnID0ge307XHJcbiAgZ2V0IHRlcm1Db25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGVybUNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FwaVYyQ29uZmlnOiBJVGxkVHJhbnNsYXRlQXBpVjJDb25maWcgPSB7fTtcclxuICBnZXQgYXBpVjJDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBpVjJDb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hdWRpb0NvbmZpZzogSVRsZEF1ZGlvQ29uZmlnID0geyBhcHBJZDogbnVsbCwgYXBwU2VjcmV0OiBudWxsIH07XHJcbiAgZ2V0IGF1ZGlvQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1ZGlvQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGV4dFRvU3BlZWNoQ29uZmlnOiBJVGxkVGV4dFRvU3BlZWNoQ29uZmlnID0ge307XHJcbiAgZ2V0IHRleHRUb1NwZWVjaENvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWc7XHJcbiAgfVxyXG5cclxuICBpbml0Q29uZmlncyhjb25maWd1cmF0aW9uPzogSVRsZFRyYW5zbGF0ZUNvbmZpZykge1xyXG4gICAgY29uc3QgY29uZmlnID0gY29uZmlndXJhdGlvbiA/PyB0aGlzLmNvbmZpZyA/PyB7fTtcclxuXHJcbiAgICBjb25zdCBjb3JlID0gY29uZmlnPy5jb3JlO1xyXG4gICAgY29uc3QgZmlsZSA9IGNvbmZpZz8uZmlsZTtcclxuICAgIGNvbnN0IHRleHQgPSBjb25maWc/LnRleHQ7XHJcbiAgICBjb25zdCBhdWRpbyA9IGNvbmZpZz8uYXVkaW87XHJcbiAgICBjb25zdCB3ZWJ0cmFuc2xhdGUgPSBjb25maWc/LndlYlRyYW5zbGF0ZTtcclxuICAgIGNvbnN0IHRlcm1Db25maWcgPSBjb25maWc/LnRlcm07XHJcbiAgICBjb25zdCBhcGlWMkNvbmZpZyA9IGNvbmZpZz8uYXBpVjI7XHJcbiAgICBjb25zdCB0ZXh0VG9TcGVlY2ggPSBjb25maWc/LnRleHRUb1NwZWVjaDtcclxuXHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnID0geyBhcHBJZDogY29yZT8uYXBwSWQsIGNsaWVudElkOiBjb3JlPy5jbGllbnRJZCB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5hcGlJc0luVGhlU2FtZURvbWFpbiA9IGNvcmU/LmFwaUlzSW5UaGVTYW1lRG9tYWluIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5hcHBOYW1lID0gY29yZT8uYXBwTmFtZSB8fCBcIlRpbGRlIE1UXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmhpZGVBY2hpZXZlbWVudCA9IGNvcmU/LmhpZGVBY2hpZXZlbWVudCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNBdXRoID0gY29yZT8uaXNBdXRoIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5qd3RBdXRoID0gY29yZT8uand0QXV0aCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRlQXBwTmFtZSA9IGNvcmU/LnRyYW5zbGF0ZUFwcE5hbWUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcucmVnaXN0ZXJMaW5rID0gY29yZT8ucmVnaXN0ZXJMaW5rIHx8IFwiaHR0cHM6Ly90aWxkZS5jb20vcHJvZHVjdHMtYW5kLXNlcnZpY2VzL21hY2hpbmUtdHJhbnNsYXRpb25cIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3VwcG9ydEVtYWlsID0gY29yZT8uc3VwcG9ydEVtYWlsIHx8IFwibXRAdGlsZGUubHZcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc291cmNlTGFuZ3VhZ2VPcmRlciA9IGNvcmU/LnNvdXJjZUxhbmd1YWdlT3JkZXIgfHwge1xyXG4gICAgICBlbjogW1wiZW5cIiwgXCJsdlwiLCBcInJ1XCIsIFwibHRcIiwgXCJldFwiLCBcImZpXCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgbHY6IFtcImVuXCIsIFwibHZcIiwgXCJydVwiLCBcImx0XCIsIFwiZXRcIiwgXCJmaVwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGx0OiBbXCJlblwiLCBcImx0XCIsIFwicnVcIiwgXCJsdlwiLCBcImV0XCIsIFwiZmlcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBldDogW1wiZW5cIiwgXCJldFwiLCBcImZpXCIsIFwicnVcIiwgXCJsdlwiLCBcImx0XCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZmk6IFtcImZpXCIsIFwiZW5cIiwgXCJldFwiLCBcInJ1XCIsIFwibHZcIiwgXCJsdFwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIHBsOiBbXCJwbFwiLCBcImVuXCIsIFwiZGVcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJsdFwiLCBcImZpXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBkZTogW1wiZW5cIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImZyXCIsIFwiZGVcIiwgXCJlbFwiLCBcImdhXCIsIFwiaXNcIiwgXCJpdFwiLCBcImhyXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwibXRcIiwgXCJubFwiLCBcIm5iXCIsIFwicGxcIiwgXCJwdFwiLCBcInB0LXB0XCIsIFwicm9cIiwgXCJzdlwiLCBcInNrXCIsIFwic2xcIiwgXCJlc1wiLCBcImNzXCIsIFwiaHVcIlxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy50YXJnZXRMYW5ndWFnZU9yZGVyID0gY29yZT8udGFyZ2V0TGFuZ3VhZ2VPcmRlciB8fCB7XHJcbiAgICAgIGVuOiBbXCJlblwiLCBcImx2XCIsIFwicnVcIiwgXCJsdFwiLCBcImV0XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBsdjogW1wiZW5cIiwgXCJsdlwiLCBcImx0XCIsIFwiZXRcIiwgXCJydVwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgbHQ6IFtcImVuXCIsIFwibHRcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGV0OiBbXCJlblwiLCBcImV0XCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBmaTogW1wiZXRcIiwgXCJmaVwiLCBcImVuXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgcGw6IFtcImVuXCIsIFwicGxcIiwgXCJkZVwiLCBcImx2XCIsIFwicnVcIiwgXCJldFwiLCBcImZpXCIsIFwibHRcIiwgXCJhclwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGRlOiBbXCJkZVwiLCBcImVuXCIsIFwiZnJcIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImVsXCIsIFwiZ2FcIiwgXCJpc1wiLCBcIml0XCIsIFwiaHJcIiwgXCJsdlwiLCBcImx0XCIsIFwicnVcIiwgXCJtdFwiLCBcIm5sXCIsIFwibmJcIiwgXCJwbFwiLCBcInB0XCIsIFwicHQtcHRcIiwgXCJyb1wiLCBcInN2XCIsIFwic2tcIiwgXCJzbFwiLCBcImVzXCIsIFwiY3NcIiwgXCJodVwiLCBcImFyXCJdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHMgPSBjb3JlPy5oaWRlTGFuZ01lbnVMYWJlbHMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dWZW5kb3JzID0gY29yZT8uc2hvd1ZlbmRvcnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVuYXV0aG9yaXplZFJlZGlyZWN0TGluayA9IGNvcmU/LnVuYXV0aG9yaXplZFJlZGlyZWN0TGluaztcclxuICAgIHRoaXMuX2NvcmVDb25maWcuYWxsb3dlZFN5c3RlbVN0YXR1c2VzID0gY29yZT8uYWxsb3dlZFN5c3RlbVN0YXR1c2VzID8/IFsncnVubmluZycsICdzdGFuZGJ5JywgJ3F1ZXVpbmd0cmFuc2wnXTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID0gY29yZT8ubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID8/IDM7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVwbG9hZEljb25OYW1lID0gY29yZT8udXBsb2FkSWNvbk5hbWU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlYnVnID0gY29yZT8uZGVidWc7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSA9IGNvcmU/LnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpbnMgPSBjb3JlPy5zaG93RG9tYWlucyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0VmVuZG9yID0gY29yZT8uZGVmYXVsdFZlbmRvciA/PyBcIlRpbGRlXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHRTeXN0ZW1JZCA9IGNvcmU/LmRlZmF1bHRTeXN0ZW1JZDtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpblRpdGxlID0gY29yZT8uc2hvd0RvbWFpblRpdGxlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kb21haW5TaWRlID0gY29yZT8uZG9tYWluU2lkZSA/PyBcInRyZ1wiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zd2FwSWNvblBvc2l0aW9uID0gY29yZT8uc3dhcEljb25Qb3NpdGlvbiA/PyBcInNyY1wiO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5sYW5ndWFnZU1lbnVWZXJzaW9uID0gY29yZT8ubGFuZ3VhZ2VNZW51VmVyc2lvbiA/PyBsYW5ndWFnZU1lbnVWZXJzaW9uLlYxO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5tYXhSZWNlbnRTeXN0ZW1Db3VudCA9IGNvcmU/Lm1heFJlY2VudFN5c3RlbUNvdW50ID8/IDQ7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHREb21haW5zID0gY29yZT8uZGVmYXVsdERvbWFpbnMgPz8gW1wiR0VOXCIsIFwiZ2VuZXJhbFwiXTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuY29udGFjdFN1cHBvcnQgPSBjb3JlPy5jb250YWN0U3VwcG9ydCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5zdWJzY3JpcHRpb25TdXBwb3J0ID0gY29yZT8uc3Vic2NyaXB0aW9uU3VwcG9ydCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5pc1dlYkNvbXBvbmVudCA9IGNvcmU/LmlzV2ViQ29tcG9uZW50ID8/IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dlZEZpbGVUeXBlcyA9IGZpbGU/LmFsbG93ZWRGaWxlVHlwZXMgfHwgW1wiLmRvY1wiLCBcIi5kb2N4XCIsIFwiLnhsc3hcIiwgXCIucGRmXCIsIFwiLnBwdHhcIiwgXCIub2R0XCIsIFwiLm9kcFwiLCBcIi5vZHNcIiwgXCIudHh0XCJdO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5leHRlbmRlZEZpbGVUeXBlcyA9IGZpbGU/LmV4dGVuZGVkRmlsZVR5cGVzXHJcbiAgICAgIHx8IFtcIi5kb2NcIiwgXCIuZG9jeFwiLCBcIi54bHN4XCIsIFwiLnBwdHhcIiwgXCIub2R0XCIsIFwiLm9kcFwiLCBcIi5vZHNcIiwgXCIudHh0XCIsIFwiLmh0bWxcIiwgXCIuaHRtXCIsXHJcbiAgICAgICAgXCIueGh0bWxcIiwgXCIueGh0XCIsIFwiLnRteFwiLCBcIi54bGZcIiwgXCIueGxpZlwiLCBcIi54bGlmZlwiLCBcIi5zZGx4bGlmZlwiLCBcIi5zZGx4bGZcIiwgXCIudHR4XCIsIFwiLnJ0ZlwiLFxyXG4gICAgICAgIFwiLnBhZ2VzXCIsIFwiLnRleFwiLCBcIi54bWxcIiwgXCIuanNvblwiLCBcIi5zeHdcIiwgXCIucGRmXCIsIFwiLmNzdlwiLCBcIi50dGxcIiwgXCIuc3J0XCIsIFwiLnBuZ1wiLCBcIi5qcGdcIiwgXCIuanBlZ1wiLCBcIi5ibXBcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93VG14QXV0aCA9IGZpbGU/LmFsbG93VG14QXV0aCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd1RteFVuYXV0aCA9IGZpbGU/LmFsbG93VG14VW5hdXRoID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5maWxlQXBpVXJsID0gZmlsZT8uZmlsZUFwaVVybCB8fCBcImh0dHBzOi8vbGV0c210LmV1L3dzL0ZpbGVzL1wiO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5maWxlRG93bmxvYWRUaW1lb3V0cyA9IGZpbGU/LmZpbGVEb3dubG9hZFRpbWVvdXRzXHJcbiAgICAgIHx8IHtcclxuICAgICAgXCJpbml0aWFsaXppbmdcIjogMTAwMCxcclxuICAgICAgXCJleHRyYWN0aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwid2FpdGluZ1wiOiAxMDAwMCxcclxuICAgICAgXCJ0cmFuc2xhdGluZ1wiOiAxMDAwLFxyXG4gICAgICBcInNhdmluZ1wiOiAxMDAwLFxyXG4gICAgICBcImNvbXBsZXRlZFwiOiAxMDAwLFxyXG4gICAgICBcImVycm9yXCI6IDEwMDAsXHJcbiAgICAgIFwicXVldWluZ1wiOiAxMDAwXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5tYXhTaXplID0gZmlsZT8ubWF4U2l6ZSB8fCAzMDcyMDAwMDtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcud29yZExpbWl0ID0gZmlsZT8ud29yZExpbWl0ID8/IDEyNTA7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVVcGxvYWQgPSBmaWxlPy5maWxlVXBsb2FkID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm9jclBhZ2VMaW1pdCA9IGZpbGU/Lm9jclBhZ2VMaW1pdCA/PyAxO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd1BERlNvdXJjZURvd25sb2FkID0gZmlsZT8uYWxsb3dQREZTb3VyY2VEb3dubG9hZCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd0ltYWdlU291cmNlRG93bmxvYWQgPSBmaWxlPy5hbGxvd0ltYWdlU291cmNlRG93bmxvYWQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuc291cmNlRG93bmxvYWRFeHRlbnNpb25zID0gZmlsZT8uc291cmNlRG93bmxvYWRFeHRlbnNpb25zIHx8IFtcInBkZlwiLCBcInBuZ1wiLCBcImpwZ1wiLCBcImpwZWdcIiwgXCJibXBcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnRhcmdldERvd25sb2FkRXh0ZW5zaW9uT3JkZXIgPSBmaWxlPy50YXJnZXREb3dubG9hZEV4dGVuc2lvbk9yZGVyO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5udW1iZXJPZkZpbGVzQWxsb3dlZCA9IGZpbGU/Lm51bWJlck9mRmlsZXNBbGxvd2VkID4gMCA/IGZpbGUubnVtYmVyT2ZGaWxlc0FsbG93ZWQgOiAxO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5zaG93VHJhbnNsYXRpb25MaW1pdHMgPSBmaWxlPy5zaG93VHJhbnNsYXRpb25MaW1pdHMgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcudXNlTXVsdGlwbGVGaWxlVXBsb2FkID0gZmlsZT8udXNlTXVsdGlwbGVGaWxlVXBsb2FkO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpdGxlVmlzaWJsZUZvclZlbmRvcnMgPSBmaWxlPy5wcm9ncmVzc0luZGljYXRvclRpdGxlVmlzaWJsZUZvclZlbmRvcnMgPz8gW1wiRVRyYW5zbGF0aW9uXCJdO1xyXG5cclxuICAgIHRoaXMuX3RleHRDb25maWcuZGljdGlvbmFyeVVybCA9IHRleHQ/LmRpY3Rpb25hcnlVcmwgfHwgXCJodHRwczovL2xldHNtdC5ldS9hcGkvZGljdGlvbmFyeS9HZXREaWN0aW9uYXJ5RW50cnkvXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLm1heENoYXJMZW5ndGggPSB0ZXh0Py5tYXhDaGFyTGVuZ3RoID8/IDUwMDA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLndlYldpZGdldFJlZGlyZWN0VXJsUG9zZml4ID0gdGV4dD8ud2ViV2lkZ2V0UmVkaXJlY3RVcmxQb3NmaXggfHwgXCIvd2VidHJhbnNsYXRlP3VybD1cIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcud2ViV2lkZ2V0UmVkaXJlY3RVcmxQcmVmaXggPSB0ZXh0Py53ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeCB8fCBcIlwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy51c2VEaWN0aW9uYXJ5ID0gdGV4dD8udXNlRGljdGlvbmFyeSA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0F2YWlsYWJsZUV4dGVuc2lvbnMgPSB0ZXh0Py5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucyA9PSBudWxsID8gdHJ1ZSA6IHRleHQuc2hvd0F2YWlsYWJsZUV4dGVuc2lvbnM7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dBdXRoRXh0ZW5zaW9ucyA9IHRleHQ/LnNob3dBdXRoRXh0ZW5zaW9ucyA9PSBudWxsID8gdHJ1ZSA6IHRleHQuc2hvd0F1dGhFeHRlbnNpb25zO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5hdXRvRm9jdXNzID0gdGV4dD8uYXV0b0ZvY3VzcztcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0V4dGVuc2lvbnNVbmF1dGhPbmx5ID0gdGV4dD8uc2hvd0V4dGVuc2lvbnNVbmF1dGhPbmx5O1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93U2Vuc2l0aXZlSW5mb1Rvb2x0aXAgPSB0ZXh0Py5zaG93U2Vuc2l0aXZlSW5mb1Rvb2x0aXA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmFsbG93V2Vic2l0ZVRyYW5zbGF0aW9uID0gdGV4dD8uYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24gPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1N1Z2dlc3Rpb25zID0gdGV4dD8uc2hvd1N1Z2dlc3Rpb25zID8/IHRydWU7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9SZWRpcmVjdFRvV2ViVHJhbnNsYXRlID0gdGV4dD8uYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGUgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmhpZ2hsaWdodCA9IHRleHQ/LmhpZ2hsaWdodCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5jaGVja1NvdXJjZUdyYW1tYXIgPSB0ZXh0Py5jaGVja1NvdXJjZUdyYW1tYXIgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmdyYW1tYXJDaGVja0xhbmd1YWdlcyA9IHRleHQ/LmdyYW1tYXJDaGVja0xhbmd1YWdlcyA/PyBbXTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1RhcmdldFBsYWNlaG9sZGVyID0gdGV4dD8uc2hvd1RhcmdldFBsYWNlaG9sZGVyO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uUG9wdXAgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uUG9wdXA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnZpc2libGVFeHRlbnNpb25Db3VudCA9IHRleHQ/LnZpc2libGVFeHRlbnNpb25Db3VudCA/PyAzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5oaWRlU291cmNlQWN0aW9uc1doZW5IYXNUZXh0TW9iaWxlID0gdGV4dD8uaGlkZVNvdXJjZUFjdGlvbnNXaGVuSGFzVGV4dE1vYmlsZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpbWVvdXRNaWxpU2Vjb25kcyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGltZW91dE1pbGlTZWNvbmRzID8/IDIwMDA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA/PyBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hdWRpb1RleHRJbnB1dCA9IGF1ZGlvPy5hdWRpb1RleHRJbnB1dCA/PyBmYWxzZTtcclxuICAgIC8vIE5vdCBzZXR0aW5nIGRlZmF1bHQgdXJsIGJlY2F1c2UgdGhlcmUgaXMgbm8gc2VydmljZSBwcm92aWRlZCBieSBUaWxkZSBhbmQgdGhpcyBpcyBub3QgdXNlZCBieSBkZWZhdWx0IGluIHdlYnNpdGUgcHJvamVjdC5cclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmF1ZGlvQXBpVXJsID0gYXVkaW8/LmF1ZGlvQXBpVXJsO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXVkaW9NYXhTaXplQnl0ZXMgPSBhdWRpbz8uYXVkaW9NYXhTaXplQnl0ZXMgPz8gMTAwMDAwMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5zb3VyY2VMYW5ndWFnZXMgPSBhdWRpbz8uc291cmNlTGFuZ3VhZ2VzID8/IFtdO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGF0YVVwZGF0ZVRpbWVGcmFtZSA9IGF1ZGlvPy5kYXRhVXBkYXRlVGltZUZyYW1lID8/IDUwMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5tYXhpbXVtUmVjb3JkVGltZSA9IGF1ZGlvPy5tYXhpbXVtUmVjb3JkVGltZSA/PyAzMDA7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5kaWN0YXRlQXBpVXJsID0gYXVkaW8/LmRpY3RhdGVBcGlVcmwgPz8gXCJydW5hLnRpbGRlLmx2XCI7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hcHBJZCA9IGF1ZGlvPy5hcHBJZDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmFwcFNlY3JldCA9IGF1ZGlvPy5hcHBTZWNyZXQ7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5wdW5jdHVhdGlvbk1lc3NhZ2UgPSBhdWRpbz8ucHVuY3R1YXRpb25NZXNzYWdlID8/IHRydWU7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5kaXNhYmxlQXV0b21hdGljVHJhbnNsYXRpb24gPSBhdWRpbz8uZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uID8/IHRydWU7XHJcblxyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmxvZ29Mb2NhdGlvbiA9IHdlYnRyYW5zbGF0ZT8ubG9nb0xvY2F0aW9uIHx8ICdhc3NldHMvd2VidHJhbnNsYXRlL3RpbGRlX2xvZ28ucG5nJztcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy50cmFuc2xhdGVQYWdlUGF0aCA9IHdlYnRyYW5zbGF0ZT8udHJhbnNsYXRlUGFnZVBhdGg7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuZGVidWcgPSB3ZWJ0cmFuc2xhdGU/LmRlYnVnIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLndlYkxhbmdBdXRvZGV0ZWN0ID0gd2VidHJhbnNsYXRlPy53ZWJMYW5nQXV0b2RldGVjdCB8fCB0cnVlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmFsbG93U3VnZ2VzdGlvbnMgPSB3ZWJ0cmFuc2xhdGU/LmFsbG93U3VnZ2VzdGlvbnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuaGlkZVBvcHVwID0gd2VidHJhbnNsYXRlPy5oaWRlUG9wdXAgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuc2FuZGJveCA9IHdlYnRyYW5zbGF0ZT8uc2FuZGJveCA/PyBcImFsbG93LWZvcm1zIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW5cIjtcclxuXHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLnRlcm1pbm9sb2d5UG9ydGFsVXJsID0gdGVybUNvbmZpZz8udGVybWlub2xvZ3lQb3J0YWxVcmwgfHwgXCJodHRwczovL3Rlcm0udGlsZGUuY29tXCI7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb24gPSB0ZXJtQ29uZmlnPy5jYW5DcmVhdGVDb2xsZWN0aW9uO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkID0gdGVybUNvbmZpZz8uaXNDb2xsZWN0aW9uc0FjdGl2YXRlZDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuaXNUZXJtUG9ydGFsU3VwcG9ydGVkID0gdGVybUNvbmZpZz8uaXNUZXJtUG9ydGFsU3VwcG9ydGVkID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5jb2xsZWN0aW9uTmFtZU1pbkxlbmd0aCA9IHRlcm1Db25maWc/LmNvbGxlY3Rpb25OYW1lTWluTGVuZ3RoID8/IDg7XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmNvbGxlY3Rpb25OYW1lTWF4TGVuZ3RoID0gdGVybUNvbmZpZz8uY29sbGVjdGlvbk5hbWVNYXhMZW5ndGggPz8gMzAwO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5yZWZyZXNoVGltZW91dE1zID0gdGVybUNvbmZpZz8ucmVmcmVzaFRpbWVvdXRNcyA/PyAxMDAwMDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmcgPSB0ZXJtQ29uZmlnPy5yZWZyZXNoVGltZW91dE1zV2hlbkltcG9ydGluZyA/PyA1MDAwO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5lbmdpbmVUZXJtVXJsID0gdGVybUNvbmZpZz8uZW5naW5lVGVybVVybDtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcuZGVmYXVsdEdsb3NzYXJ5TWFuYWdlbWVudExpbmsgPSB0ZXJtQ29uZmlnPy5kZWZhdWx0R2xvc3NhcnlNYW5hZ2VtZW50TGluaztcclxuXHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmZyZWVUcmlhbFVybCA9IHRlcm1Db25maWc/LmZyZWVUcmlhbFVybCA/PyBcImh0dHBzOi8vdGlsZGUuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9tYWNoaW5lLXRyYW5zbGF0aW9uL3ByaWNpbmcvVGlsZGUtTVRcIjtcclxuICAgIHRoaXMuX3Rlcm1Db25maWcubGVhcm5Nb3JlVXJsID0gdGVybUNvbmZpZz8ubGVhcm5Nb3JlVXJsID8/IFwiaHR0cHM6Ly93d3cudGlsZGUuY29tL3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9tYWNoaW5lLXRyYW5zbGF0aW9uL1RpbGRlLU1ULWZlYXR1cmVzLWdsb3NzYXJ5XCI7XHJcblxyXG4gICAgLy8gc2VwZXJhdGVkIGJlY2F1c2UgZm9sbG93aW5nIHVybHMgaGF2ZSBtZXRob2QgbmFtZXMgYWRkZWRcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsID0gY29yZT8udHJhbnNsYXRpb25TZXJ2aWNlVXJsIHx8IFwiaHR0cHM6Ly93d3cubGV0c210LmV1L3dzL3NlcnZpY2Uuc3ZjL2pzb24vXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnRyYW5zbGF0aW9uVXJsID0gdGV4dD8udHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIlRyYW5zbGF0ZUV4XCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnVwZGF0ZVRyYW5zbGF0aW9uVXJsID0gdGV4dD8udXBkYXRlVHJhbnNsYXRpb25VcmwgPz8gdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgKyBcIlVwZGF0ZVRyYW5zbGF0aW9uXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnN5c3RlbUxpc3RVcmwgPSBjb3JlPy5zeXN0ZW1MaXN0VXJsID8/IHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsICsgXCJHZXRTeXN0ZW1MaXN0XCI7XHJcblxyXG4gICAgdGhpcy5fYXBpVjJDb25maWcueEFwaUtleSA9IGFwaVYyQ29uZmlnPy54QXBpS2V5O1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcubXRBcGlVcmwgPSBhcGlWMkNvbmZpZz8ubXRBcGlVcmwgPz8gXCJhcGkvdHJhbnNsYXRlL1wiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuc3lzdGVtTGlzdFVybCA9IGFwaVYyQ29uZmlnPy5zeXN0ZW1MaXN0VXJsID8/IHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsICsgXCJsYW5ndWFnZS1kaXJlY3Rpb25zXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy50cmFuc2xhdGlvblVybCA9IGFwaVYyQ29uZmlnPy50cmFuc2xhdGlvblVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwidGV4dFwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuZmlsZVRyYW5zbGF0aW9uVXJsID0gYXBpVjJDb25maWc/LmZpbGVUcmFuc2xhdGlvblVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwiZmlsZVwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuZ3JhbW1hckNoZWNrVXJsID0gYXBpVjJDb25maWc/LmdyYW1tYXJDaGVja1VybCA/PyBcImh0dHBzOi8vbXQuY3MudXQuZWUvYXBpL2dyYW1tYXJcIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLmF1dG9Eb21haW5EZXRlY3Rpb24gPSBhcGlWMkNvbmZpZz8uYXV0b0RvbWFpbkRldGVjdGlvbiA/PyBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWcubGFuZ3VhZ2VzID0gdGV4dFRvU3BlZWNoPy5sYW5ndWFnZXMgPz8ge307XHJcbiAgICB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWcubWF4Q2hhcnNJblRleHQgPSB0ZXh0VG9TcGVlY2g/Lm1heENoYXJzSW5UZXh0ID8/IDMwMDA7XHJcblxyXG4gICAgdGhpcy5lZGl0UHJvcGVydGllc0Jhc2VkT25BcGkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvIG1ha2Ugc3VyZSBuZWNlc3NhcnkgcHJvcGVydGllcyBhcmUgbm90IHR1cm5lZCBvbiBiZWNhdXNlIGluIGFwaSBWMiBzb21lIGZlYXR1cmVzIGFyZSBub3QgaW1wbGVtbmVudGVkLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZWRpdFByb3BlcnRpZXNCYXNlZE9uQXBpKCkge1xyXG4gICAgaWYgKHRoaXMuYXBpVmVyc2lvbiA9PT0gVHJhbnNsYXRpb25BcGlWZXJzaW9uLlYyKSB7XHJcbiAgICAgIHRoaXMudGV4dENvbmZpZy5zaG93U3VnZ2VzdGlvbnMgPSBmYWxzZTtcclxuICAgICAgdGhpcy50ZXh0Q29uZmlnLnVzZURpY3Rpb25hcnkgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -59,10 +59,10 @@ export class TldTranslateFileDownloadButtonComponent {
59
59
  }
60
60
  }
61
61
  TldTranslateFileDownloadButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateFileDownloadButtonComponent, deps: [{ token: i1.TldTranslateFileService }, { token: i2.TldTranslateConfigService }], target: i0.ɵɵFactoryTarget.Component });
62
- TldTranslateFileDownloadButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTranslateFileDownloadButtonComponent, selector: "tld-translate-file-download-button", inputs: { file: "file", disabled: "disabled", sourceDownload: "sourceDownload" }, outputs: { tldClick: "tldClick" }, viewQueries: [{ propertyName: "menu", first: true, predicate: MatMenu, descendants: true }], ngImport: i0, template: "<div fxLayout=\"row\">\r\n\r\n <button mat-stroked-button color=\"accent\" (click)=\"onClick()\" class=\"action-button border-accent download-button\"\r\n [disabled]=\"disabled\">\r\n <span class=\"material-icons\">\r\n file_download\r\n </span>\r\n <span class=\"download-btn-text text-m-semi-bold\">\r\n {{'TLD_TRANSLATE.DOWNLOAD_TRANSLATED' | translate}}\r\n </span>\r\n </button>\r\n <button mat-stroked-button color=\"accent\" class=\"extension-button border-accent\" #menuTrigger=\"matMenuTrigger\"\r\n data-test-id=\"download-other-formats-button\" (menuOpened)=\"onMenuOpen()\" *ngIf=\"extensions && extensions.length>1\"\r\n [matMenuTriggerFor]=\"extensionMenu\" [disabled]=\"disabled\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SHOW_EXTENSIONS' | translate\" fxLayoutAlign=\"center center\">\r\n <span class=\"material-icons\">\r\n arrow_drop_down\r\n </span>\r\n </button>\r\n</div>\r\n<mat-menu #extensionMenu=\"matMenu\">\r\n <div fxLayout=\"column\">\r\n <ng-container *ngFor=\"let extension of extensions\">\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"canDownload(extension.extension)\" class=\"language-title\"\r\n (click)=\"onClick(extension)\">\r\n {{extension.extension}}\r\n </button>\r\n </ng-container>\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"showSourceDownloadPdf\" class=\"language-title\"\r\n (click)=\"onSourceClick()\">\r\n {{'TLD_TRANSLATE.FILE_DOWNLOAD_SOURCE'|translate}}\r\n </button>\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"showSourceDownloadImage\" class=\"language-title\"\r\n (click)=\"onSourceClick()\">\r\n {{'TLD_TRANSLATE.FILE_DOWNLOAD_SOURCE_IMAGE'|translate}}\r\n </button>\r\n </div>\r\n</mat-menu>\r\n", styles: [".action-button{width:100%}.download-button .material-icons{margin-right:.5625rem;width:.8125rem}.extension-button{padding:0;min-width:38px;margin-left:2px}.action-button.mat-stroked-button.mat-accent,.extension-button.mat-stroked-button.mat-accent{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
62
+ TldTranslateFileDownloadButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTranslateFileDownloadButtonComponent, selector: "tld-translate-file-download-button", inputs: { file: "file", disabled: "disabled", sourceDownload: "sourceDownload" }, outputs: { tldClick: "tldClick" }, viewQueries: [{ propertyName: "menu", first: true, predicate: MatMenu, descendants: true }], ngImport: i0, template: "<div fxLayout=\"row\">\r\n\r\n <button mat-stroked-button color=\"accent\" (click)=\"onClick()\" class=\"action-button border-accent download-button\"\r\n [disabled]=\"disabled\">\r\n <span class=\"material-icons\">\r\n file_download\r\n </span>\r\n <span class=\"download-btn-text text-m-semi-bold\">\r\n {{'TLD_TRANSLATE.DOWNLOAD_TRANSLATED' | translate}}\r\n </span>\r\n </button>\r\n <button mat-stroked-button color=\"accent\" class=\"extension-button border-accent\" #menuTrigger=\"matMenuTrigger\"\r\n data-test-id=\"download-other-formats-button\" (menuOpened)=\"onMenuOpen()\" *ngIf=\"extensions && extensions.length>1\"\r\n [matMenuTriggerFor]=\"extensionMenu\" [disabled]=\"disabled\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SHOW_EXTENSIONS' | translate\" fxLayoutAlign=\"center center\">\r\n <span class=\"material-icons\">\r\n arrow_drop_down\r\n </span>\r\n </button>\r\n</div>\r\n<mat-menu #extensionMenu=\"matMenu\">\r\n <div fxLayout=\"column\">\r\n <ng-container *ngFor=\"let extension of extensions\">\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"canDownload(extension.extension)\" class=\"language-title\"\r\n (click)=\"onClick(extension)\">\r\n {{extension.extension}}\r\n </button>\r\n </ng-container>\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"showSourceDownloadPdf\" class=\"language-title\"\r\n (click)=\"onSourceClick()\">\r\n {{'TLD_TRANSLATE.FILE_DOWNLOAD_SOURCE'|translate}}\r\n </button>\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"showSourceDownloadImage\" class=\"language-title\"\r\n (click)=\"onSourceClick()\">\r\n {{'TLD_TRANSLATE.FILE_DOWNLOAD_SOURCE_IMAGE'|translate}}\r\n </button>\r\n </div>\r\n</mat-menu>\r\n", styles: [".action-button{width:100%;padding:5px}.download-button .material-icons{margin-right:.5625rem;width:.8125rem}.extension-button{padding:0;min-width:38px;margin-left:2px}.action-button.mat-stroked-button.mat-accent,.extension-button.mat-stroked-button.mat-accent{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateFileDownloadButtonComponent, decorators: [{
64
64
  type: Component,
65
- args: [{ selector: 'tld-translate-file-download-button', template: "<div fxLayout=\"row\">\r\n\r\n <button mat-stroked-button color=\"accent\" (click)=\"onClick()\" class=\"action-button border-accent download-button\"\r\n [disabled]=\"disabled\">\r\n <span class=\"material-icons\">\r\n file_download\r\n </span>\r\n <span class=\"download-btn-text text-m-semi-bold\">\r\n {{'TLD_TRANSLATE.DOWNLOAD_TRANSLATED' | translate}}\r\n </span>\r\n </button>\r\n <button mat-stroked-button color=\"accent\" class=\"extension-button border-accent\" #menuTrigger=\"matMenuTrigger\"\r\n data-test-id=\"download-other-formats-button\" (menuOpened)=\"onMenuOpen()\" *ngIf=\"extensions && extensions.length>1\"\r\n [matMenuTriggerFor]=\"extensionMenu\" [disabled]=\"disabled\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SHOW_EXTENSIONS' | translate\" fxLayoutAlign=\"center center\">\r\n <span class=\"material-icons\">\r\n arrow_drop_down\r\n </span>\r\n </button>\r\n</div>\r\n<mat-menu #extensionMenu=\"matMenu\">\r\n <div fxLayout=\"column\">\r\n <ng-container *ngFor=\"let extension of extensions\">\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"canDownload(extension.extension)\" class=\"language-title\"\r\n (click)=\"onClick(extension)\">\r\n {{extension.extension}}\r\n </button>\r\n </ng-container>\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"showSourceDownloadPdf\" class=\"language-title\"\r\n (click)=\"onSourceClick()\">\r\n {{'TLD_TRANSLATE.FILE_DOWNLOAD_SOURCE'|translate}}\r\n </button>\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"showSourceDownloadImage\" class=\"language-title\"\r\n (click)=\"onSourceClick()\">\r\n {{'TLD_TRANSLATE.FILE_DOWNLOAD_SOURCE_IMAGE'|translate}}\r\n </button>\r\n </div>\r\n</mat-menu>\r\n", styles: [".action-button{width:100%}.download-button .material-icons{margin-right:.5625rem;width:.8125rem}.extension-button{padding:0;min-width:38px;margin-left:2px}.action-button.mat-stroked-button.mat-accent,.extension-button.mat-stroked-button.mat-accent{background-color:#fff}\n"] }]
65
+ args: [{ selector: 'tld-translate-file-download-button', template: "<div fxLayout=\"row\">\r\n\r\n <button mat-stroked-button color=\"accent\" (click)=\"onClick()\" class=\"action-button border-accent download-button\"\r\n [disabled]=\"disabled\">\r\n <span class=\"material-icons\">\r\n file_download\r\n </span>\r\n <span class=\"download-btn-text text-m-semi-bold\">\r\n {{'TLD_TRANSLATE.DOWNLOAD_TRANSLATED' | translate}}\r\n </span>\r\n </button>\r\n <button mat-stroked-button color=\"accent\" class=\"extension-button border-accent\" #menuTrigger=\"matMenuTrigger\"\r\n data-test-id=\"download-other-formats-button\" (menuOpened)=\"onMenuOpen()\" *ngIf=\"extensions && extensions.length>1\"\r\n [matMenuTriggerFor]=\"extensionMenu\" [disabled]=\"disabled\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SHOW_EXTENSIONS' | translate\" fxLayoutAlign=\"center center\">\r\n <span class=\"material-icons\">\r\n arrow_drop_down\r\n </span>\r\n </button>\r\n</div>\r\n<mat-menu #extensionMenu=\"matMenu\">\r\n <div fxLayout=\"column\">\r\n <ng-container *ngFor=\"let extension of extensions\">\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"canDownload(extension.extension)\" class=\"language-title\"\r\n (click)=\"onClick(extension)\">\r\n {{extension.extension}}\r\n </button>\r\n </ng-container>\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"showSourceDownloadPdf\" class=\"language-title\"\r\n (click)=\"onSourceClick()\">\r\n {{'TLD_TRANSLATE.FILE_DOWNLOAD_SOURCE'|translate}}\r\n </button>\r\n <button mat-menu-item fxLayoutAlign=\"start center\" *ngIf=\"showSourceDownloadImage\" class=\"language-title\"\r\n (click)=\"onSourceClick()\">\r\n {{'TLD_TRANSLATE.FILE_DOWNLOAD_SOURCE_IMAGE'|translate}}\r\n </button>\r\n </div>\r\n</mat-menu>\r\n", styles: [".action-button{width:100%;padding:5px}.download-button .material-icons{margin-right:.5625rem;width:.8125rem}.extension-button{padding:0;min-width:38px;margin-left:2px}.action-button.mat-stroked-button.mat-accent,.extension-button.mat-stroked-button.mat-accent{background-color:#fff}\n"] }]
66
66
  }], ctorParameters: function () { return [{ type: i1.TldTranslateFileService }, { type: i2.TldTranslateConfigService }]; }, propDecorators: { menu: [{
67
67
  type: ViewChild,
68
68
  args: [MatMenu]
@@ -14,8 +14,11 @@ export class MtTermV2Service {
14
14
  const access = {
15
15
  user: { default: collection.editables.userDefault },
16
16
  group: { default: collection.editables.groupDefault },
17
- global: { default: collection.editables.globalDefault },
17
+ global: { default: collection.editables.globalDefault }
18
18
  };
19
+ if (!access.user.default && !access.group.default && !access.global.default) {
20
+ access.user.default = true;
21
+ }
19
22
  if (!collection.mtCollection) {
20
23
  const params = {
21
24
  collectionId: collection.termId,
@@ -74,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
74
77
  providedIn: 'root'
75
78
  }]
76
79
  }], ctorParameters: function () { return [{ type: i1.TldTranslateConfigService }, { type: i2.EningeTermApiService }]; } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXQtdGVybS12Mi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vc2VydmljZXMvYXBpLXYyL210LXRlcm0tdjIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFNdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFPekUsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFDbUIsTUFBaUMsRUFDakMsYUFBbUM7UUFEbkMsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBSnRELFlBQU8sR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFJRyxDQUFDO0lBRTNELEdBQUcsQ0FBQyxRQUFnQixFQUFFLFVBQThCO1FBQ2xELE1BQU0sTUFBTSxHQUFxQztZQUMvQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDbkQsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1lBQ3JELE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTtTQUN4RCxDQUFBO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7WUFDNUIsTUFBTSxNQUFNLEdBQWdDO2dCQUMxQyxZQUFZLEVBQUUsVUFBVSxDQUFDLE1BQU07Z0JBQy9CLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxNQUFNO2dCQUNuQyxNQUFNO2FBQ1AsQ0FB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LENBQUMsQ0FBQztJQUM3RCxDQUFDOzs0R0ExRVUsZUFBZTtnSEFBZixlQUFlLGNBRmQsTUFBTTsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRW5pbmdlVGVybUFwaVNlcnZpY2UgfSBmcm9tICcuLi9lbmdpbmUtdGVybS9lbmluZ2UtdGVybS1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEVuZ2luZVRlcm1Db2xsZWN0aW9uQWNjZXNzVXBkYXRlLCBVcGRhdGVFbmdpbmVUZXJtc1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi9lbmdpbmUtdGVybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBZGRFbmdpbmVUZXJtc1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi9lbmdpbmUtdGVybS9tb2RlbHMvYWRkLWVuZ2luZS10ZXJtcy1yZXF1ZXN0LXBhcmFtcy5tb2RlbCc7XHJcbmltcG9ydCB7IEVuZ2luZVRlcm1Db2xsZWN0aW9uIH0gZnJvbSAnLi4vZW5naW5lLXRlcm0vbW9kZWxzL2VuZ2luZS10ZXJtLWNvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBDb21iaW5lZENvbGxlY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvY29tYmluZWQtY29sbGVjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IE10Q29sbGVjdGlvbiB9IGZyb20gJy4uL21vZGVscy9tdC1jb2xsZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgSU10VGVybVNlcnZpY2UgfSBmcm9tICcuLi9tb2RlbHMvbXQtdGVybS1zZXJ2aWNlLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE10VGVybVYyU2VydmljZSBpbXBsZW1lbnRzIElNdFRlcm1TZXJ2aWNlIHtcclxuICBiYXNlVXJsOiBzdHJpbmcgPSB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmVuZ2luZVRlcm1Vcmw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVuZ2luZVRlcm1BcGk6IEVuaW5nZVRlcm1BcGlTZXJ2aWNlKSB7IH1cclxuXHJcbiAgYWRkKGVuZ2luZUlkOiBzdHJpbmcsIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBhY2Nlc3M6IEVuZ2luZVRlcm1Db2xsZWN0aW9uQWNjZXNzVXBkYXRlID0ge1xyXG4gICAgICB1c2VyOiB7IGRlZmF1bHQ6IGNvbGxlY3Rpb24uZWRpdGFibGVzLnVzZXJEZWZhdWx0IH0sXHJcbiAgICAgIGdyb3VwOiB7IGRlZmF1bHQ6IGNvbGxlY3Rpb24uZWRpdGFibGVzLmdyb3VwRGVmYXVsdCB9LFxyXG4gICAgICBnbG9iYWw6IHsgZGVmYXVsdDogY29sbGVjdGlvbi5lZGl0YWJsZXMuZ2xvYmFsRGVmYXVsdCB9LFxyXG4gICAgfVxyXG4gICAgaWYgKCFjb2xsZWN0aW9uLm10Q29sbGVjdGlvbikge1xyXG4gICAgICBjb25zdCBwYXJhbXM6IEFkZEVuZ2luZVRlcm1zUmVxdWVzdFBhcmFtcyA9IHtcclxuICAgICAgICBjb2xsZWN0aW9uSWQ6IGNvbGxlY3Rpb24udGVybUlkLFxyXG4gICAgICAgIGNvbGxlY3Rpb25Tb3VyY2U6IGNvbGxlY3Rpb24uc291cmNlLFxyXG4gICAgICAgIGFjY2Vzc1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmVuZ2luZVRlcm1BcGkuYWRkKGVuZ2luZUlkLCBwYXJhbXMpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoY29sbGVjdGlvbiA9PiB0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uKSlcclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcGFyYW1zOiBVcGRhdGVFbmdpbmVUZXJtc1JlcXVlc3RQYXJhbXMgPSB7XHJcbiAgICAgICAgYWNjZXNzXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuZW5naW5lVGVybUFwaS51cGRhdGUoZW5naW5lSWQsIGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uLmlkLCBwYXJhbXMpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoY29sbGVjdGlvbiA9PiB0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uKSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdChlbmdpbmVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb25bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lVGVybUFwaS5nZXRMaXN0KGVuZ2luZUlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKGNvbGxlY3Rpb25zKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb252ZXJ0ZWQ6IENvbWJpbmVkQ29sbGVjdGlvbltdID0gW107XHJcbiAgICAgICAgICBjb2xsZWN0aW9ucz8udGVybUNvbGxlY3Rpb25zPy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnZlcnRlZC5wdXNoKHRoaXMuY29udmVydFRvQ29tYmluZWRDb2xsZWN0aW9uKGNvbGxlY3Rpb24pKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShlbmdpbmVJZDogc3RyaW5nLCBjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lVGVybUFwaS5yZW1vdmUoZW5naW5lSWQsIGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uLmlkKS5waXBlKFxyXG4gICAgICBtYXAoY29sbGVjdGlvbiA9PiB0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzeW5jKGVuZ2luZUlkOiBzdHJpbmcsIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmdpbmVUZXJtQXBpLnN5bmMoZW5naW5lSWQsIGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uLmlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHVwZGF0ZWRDb2xsZWN0aW9uKSA9PiB7IHJldHVybiB1cGRhdGVkQ29sbGVjdGlvbiA/IHRoaXMuY29udmVydFRvQ29tYmluZWRDb2xsZWN0aW9uKHVwZGF0ZWRDb2xsZWN0aW9uKSA6IGNvbGxlY3Rpb24gfSlcclxuICAgICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0VG9Db21iaW5lZENvbGxlY3Rpb24oY29sbGVjdGlvbjogRW5naW5lVGVybUNvbGxlY3Rpb24pOiBDb21iaW5lZENvbGxlY3Rpb24ge1xyXG4gICAgY29uc3QgY29udmVydGVkTXRDb2xsZWN0aW9uOiBNdENvbGxlY3Rpb24gPSB7XHJcbiAgICAgIGlkOiBjb2xsZWN0aW9uLmlkLFxyXG4gICAgICBsYXN0VXBkYXRlZDogY29sbGVjdGlvbi5leHRlcm5hbENvbGxlY3Rpb24/LnVwZGF0ZWRBdCA/IG5ldyBEYXRlKGNvbGxlY3Rpb24uZXh0ZXJuYWxDb2xsZWN0aW9uLnVwZGF0ZWRBdCkgOiBudWxsLFxyXG4gICAgICBuYW1lOiBjb2xsZWN0aW9uLm5hbWUsXHJcbiAgICAgIHN0YXR1czogY29sbGVjdGlvbi5zdGF0dXMgYXMgYW55LFxyXG4gICAgICBzdWJTdGF0dXM6IGNvbGxlY3Rpb24uc3ViU3RhdHVzLFxyXG4gICAgICB0ZXJtSWQ6IGNvbGxlY3Rpb24uZXh0ZXJuYWxDb2xsZWN0aW9uLmlkLFxyXG4gICAgICB0ZXJtQ291bnQ6IGNvbGxlY3Rpb24uZXh0ZXJuYWxDb2xsZWN0aW9uLnRlcm1Db3VudCxcclxuICAgICAgcHJvZ3Jlc3M6IGNvbGxlY3Rpb24ucHJvZ3Jlc3MsXHJcbiAgICAgIGNvbGxlY3Rpb25Tb3VyY2U6IGNvbGxlY3Rpb24uY29sbGVjdGlvblNvdXJjZSxcclxuICAgICAgYWNjZXNzOiBjb2xsZWN0aW9uLmFjY2Vzc1xyXG4gICAgfTtcclxuICAgIHJldHVybiBuZXcgQ29tYmluZWRDb2xsZWN0aW9uKG51bGwsIGNvbnZlcnRlZE10Q29sbGVjdGlvbik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXQtdGVybS12Mi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRlcm0vc2VydmljZXMvYXBpLXYyL210LXRlcm0tdjIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFNdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFPekUsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFDbUIsTUFBaUMsRUFDakMsYUFBbUM7UUFEbkMsV0FBTSxHQUFOLE1BQU0sQ0FBMkI7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBSnRELFlBQU8sR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFJRyxDQUFDO0lBRTNELEdBQUcsQ0FBQyxRQUFnQixFQUFFLFVBQThCO1FBQ2xELE1BQU0sTUFBTSxHQUFxQztZQUMvQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDbkQsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1lBQ3JELE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTtTQUN4RCxDQUFBO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUMzRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9B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QkFBa0IsQ0FBQyxTQUFTO1lBQ2xELFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtZQUM3QixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCO1lBQzdDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtTQUMxQixDQUFDO1FBQ0YsT0FBTyxJQUFJLGtCQUFrQixDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzdELENBQUM7OzRHQS9FVSxlQUFlO2dIQUFmLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBFbmluZ2VUZXJtQXBpU2VydmljZSB9IGZyb20gJy4uL2VuZ2luZS10ZXJtL2VuaW5nZS10ZXJtLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25BY2Nlc3NVcGRhdGUsIFVwZGF0ZUVuZ2luZVRlcm1zUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4uL2VuZ2luZS10ZXJtL21vZGVscyc7XHJcbmltcG9ydCB7IEFkZEVuZ2luZVRlcm1zUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4uL2VuZ2luZS10ZXJtL21vZGVscy9hZGQtZW5naW5lLXRlcm1zLXJlcXVlc3QtcGFyYW1zLm1vZGVsJztcclxuaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb24gfSBmcm9tICcuLi9lbmdpbmUtdGVybS9tb2RlbHMvZW5naW5lLXRlcm0tY29sbGVjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IENvbWJpbmVkQ29sbGVjdGlvbiB9IGZyb20gJy4uL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL210LWNvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBJTXRUZXJtU2VydmljZSB9IGZyb20gJy4uL21vZGVscy9tdC10ZXJtLXNlcnZpY2UubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTXRUZXJtVjJTZXJ2aWNlIGltcGxlbWVudHMgSU10VGVybVNlcnZpY2Uge1xyXG4gIGJhc2VVcmw6IHN0cmluZyA9IHRoaXMuY29uZmlnLnRlcm1Db25maWcuZW5naW5lVGVybVVybDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW5naW5lVGVybUFwaTogRW5pbmdlVGVybUFwaVNlcnZpY2UpIHsgfVxyXG5cclxuICBhZGQoZW5naW5lSWQ6IHN0cmluZywgY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb24+IHtcclxuICAgIGNvbnN0IGFjY2VzczogRW5naW5lVGVybUNvbGxlY3Rpb25BY2Nlc3NVcGRhdGUgPSB7XHJcbiAgICAgIHVzZXI6IHsgZGVmYXVsdDogY29sbGVjdGlvbi5lZGl0YWJsZXMudXNlckRlZmF1bHQgfSxcclxuICAgICAgZ3JvdXA6IHsgZGVmYXVsdDogY29sbGVjdGlvbi5lZGl0YWJsZXMuZ3JvdXBEZWZhdWx0IH0sXHJcbiAgICAgIGdsb2JhbDogeyBkZWZhdWx0OiBjb2xsZWN0aW9uLmVkaXRhYmxlcy5nbG9iYWxEZWZhdWx0IH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWFjY2Vzcy51c2VyLmRlZmF1bHQgJiYgIWFjY2Vzcy5ncm91cC5kZWZhdWx0ICYmICFhY2Nlc3MuZ2xvYmFsLmRlZmF1bHQpIHtcclxuICAgICAgYWNjZXNzLnVzZXIuZGVmYXVsdCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFjb2xsZWN0aW9uLm10Q29sbGVjdGlvbikge1xyXG4gICAgICBjb25zdCBwYXJhbXM6IEFkZEVuZ2luZVRlcm1zUmVxdWVzdFBhcmFtcyA9IHtcclxuICAgICAgICBjb2xsZWN0aW9uSWQ6IGNvbGxlY3Rpb24udGVybUlkLFxyXG4gICAgICAgIGNvbGxlY3Rpb25Tb3VyY2U6IGNvbGxlY3Rpb24uc291cmNlLFxyXG4gICAgICAgIGFjY2Vzc1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmVuZ2luZVRlcm1BcGkuYWRkKGVuZ2luZUlkLCBwYXJhbXMpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoY29sbGVjdGlvbiA9PiB0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uKSlcclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcGFyYW1zOiBVcGRhdGVFbmdpbmVUZXJtc1JlcXVlc3RQYXJhbXMgPSB7XHJcbiAgICAgICAgYWNjZXNzXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuZW5naW5lVGVybUFwaS51cGRhdGUoZW5naW5lSWQsIGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uLmlkLCBwYXJhbXMpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoY29sbGVjdGlvbiA9PiB0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uKSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdChlbmdpbmVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb25bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lVGVybUFwaS5nZXRMaXN0KGVuZ2luZUlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKGNvbGxlY3Rpb25zKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb252ZXJ0ZWQ6IENvbWJpbmVkQ29sbGVjdGlvbltdID0gW107XHJcbiAgICAgICAgICBjb2xsZWN0aW9ucz8udGVybUNvbGxlY3Rpb25zPy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnZlcnRlZC5wdXNoKHRoaXMuY29udmVydFRvQ29tYmluZWRDb2xsZWN0aW9uKGNvbGxlY3Rpb24pKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShlbmdpbmVJZDogc3RyaW5nLCBjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lVGVybUFwaS5yZW1vdmUoZW5naW5lSWQsIGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uLmlkKS5waXBlKFxyXG4gICAgICBtYXAoY29sbGVjdGlvbiA9PiB0aGlzLmNvbnZlcnRUb0NvbWJpbmVkQ29sbGVjdGlvbihjb2xsZWN0aW9uKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzeW5jKGVuZ2luZUlkOiBzdHJpbmcsIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmdpbmVUZXJtQXBpLnN5bmMoZW5naW5lSWQsIGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uLmlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHVwZGF0ZWRDb2xsZWN0aW9uKSA9PiB7IHJldHVybiB1cGRhdGVkQ29sbGVjdGlvbiA/IHRoaXMuY29udmVydFRvQ29tYmluZWRDb2xsZWN0aW9uKHVwZGF0ZWRDb2xsZWN0aW9uKSA6IGNvbGxlY3Rpb24gfSlcclxuICAgICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0VG9Db21iaW5lZENvbGxlY3Rpb24oY29sbGVjdGlvbjogRW5naW5lVGVybUNvbGxlY3Rpb24pOiBDb21iaW5lZENvbGxlY3Rpb24ge1xyXG4gICAgY29uc3QgY29udmVydGVkTXRDb2xsZWN0aW9uOiBNdENvbGxlY3Rpb24gPSB7XHJcbiAgICAgIGlkOiBjb2xsZWN0aW9uLmlkLFxyXG4gICAgICBsYXN0VXBkYXRlZDogY29sbGVjdGlvbi5leHRlcm5hbENvbGxlY3Rpb24/LnVwZGF0ZWRBdCA/IG5ldyBEYXRlKGNvbGxlY3Rpb24uZXh0ZXJuYWxDb2xsZWN0aW9uLnVwZGF0ZWRBdCkgOiBudWxsLFxyXG4gICAgICBuYW1lOiBjb2xsZWN0aW9uLm5hbWUsXHJcbiAgICAgIHN0YXR1czogY29sbGVjdGlvbi5zdGF0dXMgYXMgYW55LFxyXG4gICAgICBzdWJTdGF0dXM6IGNvbGxlY3Rpb24uc3ViU3RhdHVzLFxyXG4gICAgICB0ZXJtSWQ6IGNvbGxlY3Rpb24uZXh0ZXJuYWxDb2xsZWN0aW9uLmlkLFxyXG4gICAgICB0ZXJtQ291bnQ6IGNvbGxlY3Rpb24uZXh0ZXJuYWxDb2xsZWN0aW9uLnRlcm1Db3VudCxcclxuICAgICAgcHJvZ3Jlc3M6IGNvbGxlY3Rpb24ucHJvZ3Jlc3MsXHJcbiAgICAgIGNvbGxlY3Rpb25Tb3VyY2U6IGNvbGxlY3Rpb24uY29sbGVjdGlvblNvdXJjZSxcclxuICAgICAgYWNjZXNzOiBjb2xsZWN0aW9uLmFjY2Vzc1xyXG4gICAgfTtcclxuICAgIHJldHVybiBuZXcgQ29tYmluZWRDb2xsZWN0aW9uKG51bGwsIGNvbnZlcnRlZE10Q29sbGVjdGlvbik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -158,7 +158,7 @@ export class CombinedCollection {
158
158
  }
159
159
  this._isSynchronized = isSynchronized;
160
160
  this.lastUpdated = lastMtUpdated ?? termModified;
161
- this._syncButtonVisible = !this.isSynchronized || (this.termCollection && this.mtStatus === MtCollectionStatus.ERROR) && !this.isImporting;
161
+ this._syncButtonVisible = !this.isImporting && (!this.isSynchronized || (this.termCollection && this.mtStatus === MtCollectionStatus.ERROR));
162
162
  }
163
163
  updateSource() {
164
164
  if (this.termCollection) {
@@ -182,4 +182,4 @@ export class CombinedCollection {
182
182
  }
183
183
  //#region Static properties
184
184
  CombinedCollection.importingStatuses = [MtCollectionStatus.IMPORTING, MtCollectionStatus.PROCESSING];
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtY29sbGVjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBOEIsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdqRTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFzSDdCLFlBQVk7SUFFWixZQUFZLGlCQUFxQyxFQUFFLFlBQTBCO1FBbEY3RSxZQUFZO1FBRVoscUNBQXFDO1FBQ3JDLGNBQVMsR0FJTCxFQUFFLENBQUM7UUFDUCxhQUFhO1FBRWIsbUNBQW1DO1FBQ25DLGdKQUFnSjtRQUNoSiwwRkFBMEY7UUFFbEYsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFxRXRDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBL0dELE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxXQUF5QyxFQUFFLFVBQThCO1FBQzdHLEtBQUssTUFBTSxHQUFHLElBQUksV0FBVyxFQUFFO1lBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztnQkFDakQsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFD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SUFBSSxDQUFDLE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxVQUFVLENBQUM7U0FDckQ7YUFDSSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsY0FBYyxHQUFHLDRCQUE0QixDQUFDLGtCQUFrQixDQUFDO1NBQ3ZFO2FBQ0ksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsS0FBSyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQyxVQUFVLENBQUM7U0FDL0Q7YUFDSTtZQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs7QUE3TkQsMkJBQTJCO0FBQ3BCLG9DQUFpQixHQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25BY2Nlc3MsIEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlIH0gZnJvbSBcIi4uL2VuZ2luZS10ZXJtL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBJVGxkVGVybUNvbGxlY3Rpb24gfSBmcm9tIFwiLi4vdGVybS1hcGkvbW9kZWxzL3RsZC10ZXJtLWNvbGxlY3Rpb24ubW9kZWxcIjtcclxuaW1wb3J0IHsgQ29tYmluZWRDb2xsZWN0aW9uVG9vbHRpcEtleSB9IGZyb20gXCIuL2NvbWJpbmVkLWNvbGxlY3Rpb24tdG9vbHRpcC1rZXkuZW51bVwiO1xyXG5pbXBvcnQgeyBNdENvbGxlY3Rpb25TdGF0dXMgfSBmcm9tIFwiLi9tdC1jb2xsZWN0aW9uLXN0YXR1cy5lbnVtXCI7XHJcbmltcG9ydCB7IE10Q29sbGVjdGlvbiB9IGZyb20gXCIuL210LWNvbGxlY3Rpb24ubW9kZWxcIjtcclxuXHJcbi8qKlxyXG4gKiBDbGFzcyB0aGF0IGpvaW5zIGNvbGxlY3Rpb24gZnJvbSB0ZXJtIGFwaSBhbmQgaXRzIGltcG9ydGVkIGNvbGxlY3Rpb24gZnJvbSBNVCBhcGkuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29tYmluZWRDb2xsZWN0aW9uIHtcclxuICBtdENvbGxlY3Rpb246IE10Q29sbGVjdGlvbjtcclxuICB0ZXJtQ29sbGVjdGlvbjogSVRsZFRlcm1Db2xsZWN0aW9uO1xyXG4gIHRlcm1Ub29sdGlwS2V5OiBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5O1xyXG4gIHNvdXJjZTogRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2U7XHJcbiAgLyoqXHJcbiAgICogTW9kaWZpZWQgZGF0ZSBmcm9tIHRlcm0gYXBpIG9yIGxhc3QgdXBkYXRlZCBmcm9tIG10IGFwaS5cclxuICAgKi9cclxuICBsYXN0VXBkYXRlZDogRGF0ZTtcclxuXHJcbiAgLy8jcmVnaW9uIFN0YXRpYyBwcm9wZXJ0aWVzXHJcbiAgc3RhdGljIGltcG9ydGluZ1N0YXR1c2VzID0gW010Q29sbGVjdGlvblN0YXR1cy5JTVBPUlRJTkcsIE10Q29sbGVjdGlvblN0YXR1cy5QUk9DRVNTSU5HXTtcclxuXHJcbiAgc3RhdGljIGZpbmRFeGlzdGluZ0NvbGxlY3Rpb25Gcm9tTGlzdChjb2xsZWN0aW9uczogSXRlcmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiwgY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2xsZWN0aW9ucykge1xyXG4gICAgICBpZiAoKGNvbC50ZXJtSWQgJiYgY29sLnRlcm1JZCA9PSBjb2xsZWN0aW9uLnRlcm1JZCkgfHxcclxuICAgICAgICAoY29sLm10Q29sbGVjdGlvbj8uaWQgJiYgY29sLm10Q29sbGVjdGlvbi5pZCA9PSBjb2xsZWN0aW9uLm10Q29sbGVjdGlvbj8uaWQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZmluZEV4aXN0aW5nSW5kZXhGcm9tTGlzdChjb2xsZWN0aW9uczogSXRlcmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiwgY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKTogbnVtYmVyIHtcclxuICAgIGlmICghY29sbGVjdGlvbnMpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgZm9yIChjb25zdCBjb2wgb2YgY29sbGVjdGlvbnMpIHtcclxuICAgICAgaWYgKChjb2wudGVybUlkICYmIGNvbC50ZXJtSWQgPT0gY29sbGVjdGlvbi50ZXJtSWQpIHx8XHJcbiAgICAgICAgKGNvbC5tdENvbGxlY3Rpb24/LmlkICYmIGNvbC5tdENvbGxlY3Rpb24uaWQgPT0gY29sbGVjdGlvbi5tdENvbGxlY3Rpb24/LmlkKSkge1xyXG4gICAgICAgIHJldHVybiBpO1xyXG4gICAgICB9XHJcbiAgICAgIGkgKz0gMTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIEVkaXRhYmxlIE1UIChhcGkgdjIpIGZpZWxkc1xyXG4gIGVkaXRhYmxlczoge1xyXG4gICAgZ2xvYmFsRGVmYXVsdD86IGJvb2xlYW47XHJcbiAgICB1c2VyRGVmYXVsdD86IGJvb2xlYW47XHJcbiAgICBncm91cERlZmF1bHQ/OiBib29sZWFuO1xyXG4gIH0gPSB7fTtcclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBHZXR0ZXJzIGZvciBjb21tb24gZmllbGRzXHJcbiAgLy8gSXQgaXMgcG9zc2libGUgdG8gb3B0aW1pemUgZ2V0dGVycywgYnkgc2V0dGluZyBzb21lIG9mIHRoZSB2YWx1ZXMgaW4gdXBkYXRlIG1ldGhvZCwgYnV0IGl0IGlzIGxlZnQgdGhpcyB3YXksIHNvIHRoYXQgZGF0YSBpcyBtb3JlIGNvbnNpc3RlbnQuXHJcbiAgLy8gT3RoZXJ3aXNlIGl0IG1pZ2h0IGJlIGVhc3kgdG8gbWlzcyBzb21lIHByb3BlcnR5IHVwZGF0aW5nIGFuZCBnZXQgd3JvbmcgZGF0YSBpbiBmdXR1cmUuXHJcblxyXG4gIHByaXZhdGUgX2lzU3luY2hyb25pemVkOiBib29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBXZWF0aGVyIGNvbGxlY3Rpb24gaXMgc3luY2hyb25pemVkIHdpdGggdGVybSBwb3J0YWwgY29sbGVjdGlvbi4gSWYgbm8gdGVybSBjb2xsZWN0aW9uLCB2YWx1ZSBpcyBzZXQgdG8gdHJ1ZS5cclxuICAgKi9cclxuICBnZXQgaXNTeW5jaHJvbml6ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNTeW5jaHJvbml6ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXRlcm1pbmVzIGlmIGNvbGxlY3Rpb25zIGlzICdzeW5jYWJsZScuIFJldHVybnMgdHJ1ZSBpZiBpdCBpcyBub3Qgc3luY2VkIG9yIGlmIHN5bmNocm9uaXphdGlvbiBoYXMgZmFpbGVkIGFuZCBzdGF0dXMgaXMgZXJyb3IuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfc3luY0J1dHRvblZpc2libGU6IGJvb2xlYW47XHJcbiAgZ2V0IHN5bmNCdXR0b25WaXNpYmxlKCkgeyByZXR1cm4gdGhpcy5fc3luY0J1dHRvblZpc2libGU7IH1cclxuICAvKipcclxuICAgKiBUZXJtIGNvbGxlY3Rpb24gaWQuIFJldHVybnMgdmFsdWUgZnJvbSB0ZXJtIGNvbGxlY3Rpb24gb3IgZnJvbSBtdCwgaWYgdGVybSBjb2xsZWN0aW9uIG5vdCBleGlzdGluZy5cclxuICAgKi9cclxuICBnZXQgdGVybUlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUNvbGxlY3Rpb24/LmlkID8/IHRoaXMubXRDb2xsZWN0aW9uPy50ZXJtSWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgbXRTdGF0dXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdENvbGxlY3Rpb24/LnN0YXR1cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbGxlY3Rpb24gbmFtZS4gSWYgaGFzIHRlcm0gY29sbGVjdGlvbiwgdGFrZXMgZnJvbSB0aGVyZS4gSWYgbm90LCB0aGVuIHJldHVybnMgbXQgY29sbGVjdGlvbiBuYW1lLlxyXG4gICAqL1xyXG4gIGdldCBuYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUNvbGxlY3Rpb24/Lm5hbWUgPz8gdGhpcy5tdENvbGxlY3Rpb24/Lm5hbWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbnRyeSBjb3VudCBmcm9tIHRlcm0gYXBpLlxyXG4gICAqL1xyXG4gIGdldCB0ZXJtRW50cmllcygpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1Db2xsZWN0aW9uPy5lbnRyeUNvdW50O1xyXG4gIH1cclxuXHJcbiAgLyoqIENoZWNrcyBpZiBoYXMgc2V0IHRvIGRlZmF1bHQgaW4gYW55IHNjb3BlICovXHJcbiAgcHJpdmF0ZSBfZGVmYXVsdDogYm9vbGVhbjtcclxuICBnZXQgZGVmYXVsdCgpIHsgcmV0dXJuIHRoaXMuX2RlZmF1bHQgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3RhdHVzIGZyb20gbXQgYXBpIG9yIGN1c3RvbSBcIk5PVF9JTl9VU0VcIiBzdGF0dXMgaWYgbm90IGltcG9ydGVkIGluIG10LnNcclxuICAgKi9cclxuICBnZXQgc3RhdHVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRTdGF0dXMgPz8gTXRDb2xsZWN0aW9uU3RhdHVzLk5PVF9JTl9VU0U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTY29wZSBjYW4gYmUgZWRpdGVkIG9ubHkgaWYgaGFzIG10IGNvbGxjZXRpb24gb3IgdGVybSBjb2xsZWN0aW9uIGlzIGJlaW5nIHByZXBhcmVkIGZvciBpbXBvcnQuXHJcbiAgICovXHJcbiAgZ2V0IGNhbkVkaXRTY29wZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm10Q29sbGVjdGlvbiB8fCB0aGlzLmRlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgdGVybUNvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRDb2xsZWN0aW9uPy50ZXJtQ291bnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc1Rlcm1Qb3J0YWxDb2xsZWN0aW9uOiBib29sZWFuO1xyXG4gIGdldCBpc1Rlcm1Qb3J0YWxDb2xsZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5faXNUZXJtUG9ydGFsQ29sbGVjdGlvbjsgfVxyXG5cclxuICBwcml2YXRlIF9pc0ltcG9ydGluZzogYm9vbGVhbjtcclxuICBnZXQgaXNJbXBvcnRpbmcoKSB7IHJldHVybiB0aGlzLl9pc0ltcG9ydGluZzsgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgY29uc3RydWN0b3IodGVybUFwaUNvbGxlY3Rpb246IElUbGRUZXJtQ29sbGVjdGlvbiwgbXRDb2xsZWN0aW9uOiBNdENvbGxlY3Rpb24pIHtcclxuICAgIHRoaXMubXRDb2xsZWN0aW9uID0gbXRDb2xsZWN0aW9uO1xyXG4gICAgdGhpcy50ZXJtQ29sbGVjdGlvbiA9IHRlcm1BcGlDb2xsZWN0aW9uO1xyXG4gICAgdGhpcy51cGRhdGUobnVsbCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGNvbGxlY3Rpb24gd2l0aCB2YWx1ZXMgZnJvbSBuZXcgY29sbGVjdGlvbi5cclxuICAgKiBAcGFyYW0gY29sbGVjdGlvbiBjb2xsZWN0aW9uIGZyb20gd2hpY2ggc2hvdWxkIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIGluaXRpYWxSZWZyZXNoIGlmIHNldCB0byB0cnVlLCBlZGl0YWJsZSBmaWVsZHMgd2lsbCBhbHNvIGJlIHVwZGF0ZWQuXHJcbiAgICovXHJcbiAgdXBkYXRlKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgaW5pdGlhbFJlZnJlc2ggPSB0cnVlKSB7XHJcbiAgICBpZiAoY29sbGVjdGlvbj8udGVybUNvbGxlY3Rpb24pIHtcclxuICAgICAgdGhpcy50ZXJtQ29sbGVjdGlvbiA9IGNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbGxlY3Rpb24/Lm10Q29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLm10Q29sbGVjdGlvbiA9IGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2lzVGVybVBvcnRhbENvbGxlY3Rpb24gPSAodGhpcy50ZXJtQ29sbGVjdGlvbiB8fCB0aGlzLm10Q29sbGVjdGlvbi50ZXJtSWQpID8gdHJ1ZSA6IGZhbHNlO1xyXG5cclxuICAgIGlmIChpbml0aWFsUmVmcmVzaCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUVkaXRhYmxlcyh0aGlzLm10Q29sbGVjdGlvbj8uYWNjZXNzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9pc0ltcG9ydGluZyA9IHRoaXMubXRDb2xsZWN0aW9uICYmIENvbWJpbmVkQ29sbGVjdGlvbi5pbXBvcnRpbmdTdGF0dXNlcy5pbmNsdWRlcyh0aGlzLm10Q29sbGVjdGlvbj8uc3RhdHVzKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZUlzU3luY2hyb25pemVkKCk7XHJcbiAgICB0aGlzLnVwZGF0ZVRvb2x0aXBLZXkoKTtcclxuICAgIHRoaXMudXBkYXRlU291cmNlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJZiBzb21lIG9mIGVkaXRhYmxlcyBhcmUgZWRpdGVkLlxyXG4gICAqXHJcbiAgICogaWYgY29sbGVjdGlvbiBub3QgaW1wb3J0ZWQgYW5kIGVuYWJsZWQgbm90IHNldCwgbWV0aG9kIHdpbGwgcmV0dXJuIHRydWUsIGJlY2F1c2UgeW91IGNhbm5vdCB1cGRhdGUgY29sbGVjdGlvbiBpZiBpdCBpcyBub3QgaW1wb3J0ZWQgb3IgaXMgbm90IG1lYW50IHRvIGJlIGltcG9ydGVkLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBjb2xsZWN0aW9uIGlzIGVkaXRlZCwgZmFsc2UgaWYgbm90LlxyXG4gICAqL1xyXG4gIGlzRWRpdGVkKCkge1xyXG4gICAgaWYgKCh0aGlzLm10Q29sbGVjdGlvbj8uYWNjZXNzLnVzZXI/LmRlZmF1bHQgIT09IHRoaXMuZWRpdGFibGVzLnVzZXJEZWZhdWx0KVxyXG4gICAgICB8fCAodGhpcy5tdENvbGxlY3Rpb24/LmFjY2Vzcy5ncm91cD8uZGVmYXVsdCAhPT0gdGhpcy5lZGl0YWJsZXMuZ3JvdXBEZWZhdWx0KVxyXG4gICAgICB8fCAodGhpcy5tdENvbGxlY3Rpb24/LmFjY2Vzcy5nbG9iYWw/LmRlZmF1bHQgIT09IHRoaXMuZWRpdGFibGVzLmdsb2JhbERlZmF1bHQpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyB0ZXJtIGNvbGxlY3Rpb24gYW5kIGl0cyBwcm9wZXJ0aWVzLlxyXG4gICAqL1xyXG4gIGRlbGV0ZVRlcm1zKCkge1xyXG4gICAgdGhpcy50ZXJtQ29sbGVjdGlvbiA9IG51bGw7XHJcbiAgICB0aGlzLnVwZGF0ZShudWxsLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBtdCBjb2xsZWN0aW9uIGFuZCBpdHMgcHJvcGVydGllcy5cclxuICAgKi9cclxuICBkZWxldGVNVCgpIHtcclxuICAgIHRoaXMubXRDb2xsZWN0aW9uID0gbnVsbDtcclxuICAgIHRoaXMudXBkYXRlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRWRpdGFibGVzKGFjY2VzczogRW5naW5lVGVybUNvbGxlY3Rpb25BY2Nlc3MgfCBudWxsKSB7XHJcbiAgICBpZiAoIWFjY2Vzcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lZGl0YWJsZXMuZ2xvYmFsRGVmYXVsdCA9IGFjY2Vzcy5nbG9iYWw/LmRlZmF1bHQ7XHJcbiAgICB0aGlzLmVkaXRhYmxlcy5ncm91cERlZmF1bHQgPSBhY2Nlc3MuZ3JvdXA/LmRlZmF1bHQ7XHJcbiAgICB0aGlzLmVkaXRhYmxlcy51c2VyRGVmYXVsdCA9IGFjY2Vzcy51c2VyPy5kZWZhdWx0O1xyXG5cclxuICAgIHRoaXMuX2RlZmF1bHQgPSB0aGlzLmVkaXRhYmxlcy5nbG9iYWxEZWZhdWx0IHx8IHRoaXMuZWRpdGFibGVzLmdyb3VwRGVmYXVsdCB8fCB0aGlzLmVkaXRhYmxlcy5nbG9iYWxEZWZhdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFByaXZhdGUgbWV0aG9kc1xyXG4gIHByaXZhdGUgdXBkYXRlSXNTeW5jaHJvbml6ZWQoKSB7XHJcbiAgICBsZXQgaXNTeW5jaHJvbml6ZWQgPSB0cnVlO1xyXG4gICAgY29uc3QgdGVybU1vZGlmaWVkID0gdGhpcy50ZXJtQ29sbGVjdGlvbj8ubW9kaWZ5RGF0ZTtcclxuICAgIGNvbnN0IGxhc3RNdFVwZGF0ZWQgPSB0aGlzLm10Q29sbGVjdGlvbj8ubGFzdFVwZGF0ZWQ7XHJcbiAgICBpZiAodGVybU1vZGlmaWVkICYmIGxhc3RNdFVwZGF0ZWQpIHtcclxuICAgICAgaXNTeW5jaHJvbml6ZWQgPSB0ZXJtTW9kaWZpZWQgPD0gbGFzdE10VXBkYXRlZDtcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLl9pc1N5bmNocm9uaXplZCA9IGlzU3luY2hyb25pemVkO1xyXG4gICAgdGhpcy5sYXN0VXBkYXRlZCA9IGxhc3RNdFVwZGF0ZWQgPz8gdGVybU1vZGlmaWVkO1xyXG4gICAgdGhpcy5fc3luY0J1dHRvblZpc2libGUgPSAhdGhpcy5pc1N5bmNocm9uaXplZCB8fCAodGhpcy50ZXJtQ29sbGVjdGlvbiAmJiB0aGlzLm10U3RhdHVzID09PSBNdENvbGxlY3Rpb25TdGF0dXMuRVJST1IpICYmICF0aGlzLmlzSW1wb3J0aW5nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTb3VyY2UoKSB7XHJcbiAgICBpZiAodGhpcy50ZXJtQ29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLnNvdXJjZSA9IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlLlRJTERFX1RFUk07XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLm10Q29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLnNvdXJjZSA9IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlLkZJTEU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVRvb2x0aXBLZXkoKSB7XHJcbiAgICBpZiAodGhpcy5kZWZhdWx0KSB7XHJcbiAgICAgIHRoaXMudGVybVRvb2x0aXBLZXkgPSBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5LkRFRkFVTFRfQ09MTEVDVElPTjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudGVybUNvbGxlY3Rpb24/LmVudHJ5Q291bnQgPT09IDApIHtcclxuICAgICAgdGhpcy50ZXJtVG9vbHRpcEtleSA9IENvbWJpbmVkQ29sbGVjdGlvblRvb2x0aXBLZXkuTk9fRU5UUklFUztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRlcm1Ub29sdGlwS2V5ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiJdfQ==
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtY29sbGVjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBOEIsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdqRTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFzSDdCLFlBQVk7SUFFWixZQUFZLGlCQUFxQyxFQUFFLFlBQTBCO1FBbEY3RSxZQUFZO1FBRVoscUNBQXFDO1FBQ3JDLGNBQVMsR0FJTCxFQUFFLENBQUM7UUFDUCxhQUFhO1FBRWIsbUNBQW1DO1FBQ25DLGdKQUFnSjtRQUNoSiwwRkFBMEY7UUFFbEYsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFxRXRDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBL0dELE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxXQUF5QyxFQUFFLFVBQThCO1FBQzdHLEtBQUssTUFBTSxHQUFHLElBQUksV0FBVyxFQUFFO1lBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztnQkFDakQsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFD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QUFFO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsMEJBQTBCLENBQUMsVUFBVSxDQUFDO1NBQ3JEO2FBQ0ksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQztTQUN2RTthQUNJLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEtBQUssQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxjQUFjLEdBQUcsNEJBQTRCLENBQUMsVUFBVSxDQUFDO1NBQy9EO2FBQ0k7WUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7O0FBOU5ELDJCQUEyQjtBQUNwQixvQ0FBaUIsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZ2luZVRlcm1Db2xsZWN0aW9uQWNjZXNzLCBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZSB9IGZyb20gXCIuLi9lbmdpbmUtdGVybS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgSVRsZFRlcm1Db2xsZWN0aW9uIH0gZnJvbSBcIi4uL3Rlcm0tYXBpL21vZGVscy90bGQtdGVybS1jb2xsZWN0aW9uLm1vZGVsXCI7XHJcbmltcG9ydCB7IENvbWJpbmVkQ29sbGVjdGlvblRvb2x0aXBLZXkgfSBmcm9tIFwiLi9jb21iaW5lZC1jb2xsZWN0aW9uLXRvb2x0aXAta2V5LmVudW1cIjtcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uU3RhdHVzIH0gZnJvbSBcIi4vbXQtY29sbGVjdGlvbi1zdGF0dXMuZW51bVwiO1xyXG5pbXBvcnQgeyBNdENvbGxlY3Rpb24gfSBmcm9tIFwiLi9tdC1jb2xsZWN0aW9uLm1vZGVsXCI7XHJcblxyXG4vKipcclxuICogQ2xhc3MgdGhhdCBqb2lucyBjb2xsZWN0aW9uIGZyb20gdGVybSBhcGkgYW5kIGl0cyBpbXBvcnRlZCBjb2xsZWN0aW9uIGZyb20gTVQgYXBpLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvbWJpbmVkQ29sbGVjdGlvbiB7XHJcbiAgbXRDb2xsZWN0aW9uOiBNdENvbGxlY3Rpb247XHJcbiAgdGVybUNvbGxlY3Rpb246IElUbGRUZXJtQ29sbGVjdGlvbjtcclxuICB0ZXJtVG9vbHRpcEtleTogQ29tYmluZWRDb2xsZWN0aW9uVG9vbHRpcEtleTtcclxuICBzb3VyY2U6IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlO1xyXG4gIC8qKlxyXG4gICAqIE1vZGlmaWVkIGRhdGUgZnJvbSB0ZXJtIGFwaSBvciBsYXN0IHVwZGF0ZWQgZnJvbSBtdCBhcGkuXHJcbiAgICovXHJcbiAgbGFzdFVwZGF0ZWQ6IERhdGU7XHJcblxyXG4gIC8vI3JlZ2lvbiBTdGF0aWMgcHJvcGVydGllc1xyXG4gIHN0YXRpYyBpbXBvcnRpbmdTdGF0dXNlcyA9IFtNdENvbGxlY3Rpb25TdGF0dXMuSU1QT1JUSU5HLCBNdENvbGxlY3Rpb25TdGF0dXMuUFJPQ0VTU0lOR107XHJcblxyXG4gIHN0YXRpYyBmaW5kRXhpc3RpbmdDb2xsZWN0aW9uRnJvbUxpc3QoY29sbGVjdGlvbnM6IEl0ZXJhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4sIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgZm9yIChjb25zdCBjb2wgb2YgY29sbGVjdGlvbnMpIHtcclxuICAgICAgaWYgKChjb2wudGVybUlkICYmIGNvbC50ZXJtSWQgPT0gY29sbGVjdGlvbi50ZXJtSWQpIHx8XHJcbiAgICAgICAgKGNvbC5tdENvbGxlY3Rpb24/LmlkICYmIGNvbC5tdENvbGxlY3Rpb24uaWQgPT0gY29sbGVjdGlvbi5tdENvbGxlY3Rpb24/LmlkKSkge1xyXG4gICAgICAgIHJldHVybiBjb2w7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZpbmRFeGlzdGluZ0luZGV4RnJvbUxpc3QoY29sbGVjdGlvbnM6IEl0ZXJhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4sIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IG51bWJlciB7XHJcbiAgICBpZiAoIWNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIGlmICgoY29sLnRlcm1JZCAmJiBjb2wudGVybUlkID09IGNvbGxlY3Rpb24udGVybUlkKSB8fFxyXG4gICAgICAgIChjb2wubXRDb2xsZWN0aW9uPy5pZCAmJiBjb2wubXRDb2xsZWN0aW9uLmlkID09IGNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uPy5pZCkpIHtcclxuICAgICAgICByZXR1cm4gaTtcclxuICAgICAgfVxyXG4gICAgICBpICs9IDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBFZGl0YWJsZSBNVCAoYXBpIHYyKSBmaWVsZHNcclxuICBlZGl0YWJsZXM6IHtcclxuICAgIGdsb2JhbERlZmF1bHQ/OiBib29sZWFuO1xyXG4gICAgdXNlckRlZmF1bHQ/OiBib29sZWFuO1xyXG4gICAgZ3JvdXBEZWZhdWx0PzogYm9vbGVhbjtcclxuICB9ID0ge307XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gR2V0dGVycyBmb3IgY29tbW9uIGZpZWxkc1xyXG4gIC8vIEl0IGlzIHBvc3NpYmxlIHRvIG9wdGltaXplIGdldHRlcnMsIGJ5IHNldHRpbmcgc29tZSBvZiB0aGUgdmFsdWVzIGluIHVwZGF0ZSBtZXRob2QsIGJ1dCBpdCBpcyBsZWZ0IHRoaXMgd2F5LCBzbyB0aGF0IGRhdGEgaXMgbW9yZSBjb25zaXN0ZW50LlxyXG4gIC8vIE90aGVyd2lzZSBpdCBtaWdodCBiZSBlYXN5IHRvIG1pc3Mgc29tZSBwcm9wZXJ0eSB1cGRhdGluZyBhbmQgZ2V0IHdyb25nIGRhdGEgaW4gZnV0dXJlLlxyXG5cclxuICBwcml2YXRlIF9pc1N5bmNocm9uaXplZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogV2VhdGhlciBjb2xsZWN0aW9uIGlzIHN5bmNocm9uaXplZCB3aXRoIHRlcm0gcG9ydGFsIGNvbGxlY3Rpb24uIElmIG5vIHRlcm0gY29sbGVjdGlvbiwgdmFsdWUgaXMgc2V0IHRvIHRydWUuXHJcbiAgICovXHJcbiAgZ2V0IGlzU3luY2hyb25pemVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzU3luY2hyb25pemVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lcyBpZiBjb2xsZWN0aW9ucyBpcyAnc3luY2FibGUnLiBSZXR1cm5zIHRydWUgaWYgaXQgaXMgbm90IHN5bmNlZCBvciBpZiBzeW5jaHJvbml6YXRpb24gaGFzIGZhaWxlZCBhbmQgc3RhdHVzIGlzIGVycm9yLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3N5bmNCdXR0b25WaXNpYmxlOiBib29sZWFuO1xyXG4gIGdldCBzeW5jQnV0dG9uVmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuX3N5bmNCdXR0b25WaXNpYmxlOyB9XHJcbiAgLyoqXHJcbiAgICogVGVybSBjb2xsZWN0aW9uIGlkLiBSZXR1cm5zIHZhbHVlIGZyb20gdGVybSBjb2xsZWN0aW9uIG9yIGZyb20gbXQsIGlmIHRlcm0gY29sbGVjdGlvbiBub3QgZXhpc3RpbmcuXHJcbiAgICovXHJcbiAgZ2V0IHRlcm1JZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1Db2xsZWN0aW9uPy5pZCA/PyB0aGlzLm10Q29sbGVjdGlvbj8udGVybUlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG10U3RhdHVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubXRDb2xsZWN0aW9uPy5zdGF0dXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb2xsZWN0aW9uIG5hbWUuIElmIGhhcyB0ZXJtIGNvbGxlY3Rpb24sIHRha2VzIGZyb20gdGhlcmUuIElmIG5vdCwgdGhlbiByZXR1cm5zIG10IGNvbGxlY3Rpb24gbmFtZS5cclxuICAgKi9cclxuICBnZXQgbmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1Db2xsZWN0aW9uPy5uYW1lID8/IHRoaXMubXRDb2xsZWN0aW9uPy5uYW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW50cnkgY291bnQgZnJvbSB0ZXJtIGFwaS5cclxuICAgKi9cclxuICBnZXQgdGVybUVudHJpZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtQ29sbGVjdGlvbj8uZW50cnlDb3VudDtcclxuICB9XHJcblxyXG4gIC8qKiBDaGVja3MgaWYgaGFzIHNldCB0byBkZWZhdWx0IGluIGFueSBzY29wZSAqL1xyXG4gIHByaXZhdGUgX2RlZmF1bHQ6IGJvb2xlYW47XHJcbiAgZ2V0IGRlZmF1bHQoKSB7IHJldHVybiB0aGlzLl9kZWZhdWx0IH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXR1cyBmcm9tIG10IGFwaSBvciBjdXN0b20gXCJOT1RfSU5fVVNFXCIgc3RhdHVzIGlmIG5vdCBpbXBvcnRlZCBpbiBtdC5zXHJcbiAgICovXHJcbiAgZ2V0IHN0YXR1cygpIHtcclxuICAgIHJldHVybiB0aGlzLm10U3RhdHVzID8/IE10Q29sbGVjdGlvblN0YXR1cy5OT1RfSU5fVVNFO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2NvcGUgY2FuIGJlIGVkaXRlZCBvbmx5IGlmIGhhcyBtdCBjb2xsY2V0aW9uIG9yIHRlcm0gY29sbGVjdGlvbiBpcyBiZWluZyBwcmVwYXJlZCBmb3IgaW1wb3J0LlxyXG4gICAqL1xyXG4gIGdldCBjYW5FZGl0U2NvcGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdENvbGxlY3Rpb24gfHwgdGhpcy5kZWZhdWx0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRlcm1Db3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLm10Q29sbGVjdGlvbj8udGVybUNvdW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNUZXJtUG9ydGFsQ29sbGVjdGlvbjogYm9vbGVhbjtcclxuICBnZXQgaXNUZXJtUG9ydGFsQ29sbGVjdGlvbigpIHsgcmV0dXJuIHRoaXMuX2lzVGVybVBvcnRhbENvbGxlY3Rpb247IH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNJbXBvcnRpbmc6IGJvb2xlYW47XHJcbiAgZ2V0IGlzSW1wb3J0aW5nKCkgeyByZXR1cm4gdGhpcy5faXNJbXBvcnRpbmc7IH1cclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIGNvbnN0cnVjdG9yKHRlcm1BcGlDb2xsZWN0aW9uOiBJVGxkVGVybUNvbGxlY3Rpb24sIG10Q29sbGVjdGlvbjogTXRDb2xsZWN0aW9uKSB7XHJcbiAgICB0aGlzLm10Q29sbGVjdGlvbiA9IG10Q29sbGVjdGlvbjtcclxuICAgIHRoaXMudGVybUNvbGxlY3Rpb24gPSB0ZXJtQXBpQ29sbGVjdGlvbjtcclxuICAgIHRoaXMudXBkYXRlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBjb2xsZWN0aW9uIHdpdGggdmFsdWVzIGZyb20gbmV3IGNvbGxlY3Rpb24uXHJcbiAgICogQHBhcmFtIGNvbGxlY3Rpb24gY29sbGVjdGlvbiBmcm9tIHdoaWNoIHNob3VsZCBiZSB1cGRhdGVkLlxyXG4gICAqIEBwYXJhbSBpbml0aWFsUmVmcmVzaCBpZiBzZXQgdG8gdHJ1ZSwgZWRpdGFibGUgZmllbGRzIHdpbGwgYWxzbyBiZSB1cGRhdGVkLlxyXG4gICAqL1xyXG4gIHVwZGF0ZShjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24sIGluaXRpYWxSZWZyZXNoID0gdHJ1ZSkge1xyXG4gICAgaWYgKGNvbGxlY3Rpb24/LnRlcm1Db2xsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMudGVybUNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb2xsZWN0aW9uPy5tdENvbGxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5tdENvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLm10Q29sbGVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9pc1Rlcm1Qb3J0YWxDb2xsZWN0aW9uID0gKHRoaXMudGVybUNvbGxlY3Rpb24gfHwgdGhpcy5tdENvbGxlY3Rpb24udGVybUlkKSA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICBpZiAoaW5pdGlhbFJlZnJlc2gpIHtcclxuICAgICAgdGhpcy51cGRhdGVFZGl0YWJsZXModGhpcy5tdENvbGxlY3Rpb24/LmFjY2Vzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5faXNJbXBvcnRpbmcgPSB0aGlzLm10Q29sbGVjdGlvbiAmJiBDb21iaW5lZENvbGxlY3Rpb24uaW1wb3J0aW5nU3RhdHVzZXMuaW5jbHVkZXModGhpcy5tdENvbGxlY3Rpb24/LnN0YXR1cyk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVJc1N5bmNocm9uaXplZCgpO1xyXG4gICAgdGhpcy51cGRhdGVUb29sdGlwS2V5KCk7XHJcbiAgICB0aGlzLnVwZGF0ZVNvdXJjZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWYgc29tZSBvZiBlZGl0YWJsZXMgYXJlIGVkaXRlZC5cclxuICAgKlxyXG4gICAqIGlmIGNvbGxlY3Rpb24gbm90IGltcG9ydGVkIGFuZCBlbmFibGVkIG5vdCBzZXQsIG1ldGhvZCB3aWxsIHJldHVybiB0cnVlLCBiZWNhdXNlIHlvdSBjYW5ub3QgdXBkYXRlIGNvbGxlY3Rpb24gaWYgaXQgaXMgbm90IGltcG9ydGVkIG9yIGlzIG5vdCBtZWFudCB0byBiZSBpbXBvcnRlZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgY29sbGVjdGlvbiBpcyBlZGl0ZWQsIGZhbHNlIGlmIG5vdC5cclxuICAgKi9cclxuICBpc0VkaXRlZCgpIHtcclxuICAgIGlmICgodGhpcy5tdENvbGxlY3Rpb24/LmFjY2Vzcy51c2VyPy5kZWZhdWx0ICE9PSB0aGlzLmVkaXRhYmxlcy51c2VyRGVmYXVsdClcclxuICAgICAgfHwgKHRoaXMubXRDb2xsZWN0aW9uPy5hY2Nlc3MuZ3JvdXA/LmRlZmF1bHQgIT09IHRoaXMuZWRpdGFibGVzLmdyb3VwRGVmYXVsdClcclxuICAgICAgfHwgKHRoaXMubXRDb2xsZWN0aW9uPy5hY2Nlc3MuZ2xvYmFsPy5kZWZhdWx0ICE9PSB0aGlzLmVkaXRhYmxlcy5nbG9iYWxEZWZhdWx0KSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgdGVybSBjb2xsZWN0aW9uIGFuZCBpdHMgcHJvcGVydGllcy5cclxuICAgKi9cclxuICBkZWxldGVUZXJtcygpIHtcclxuICAgIHRoaXMudGVybUNvbGxlY3Rpb24gPSBudWxsO1xyXG4gICAgdGhpcy51cGRhdGUobnVsbCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgbXQgY29sbGVjdGlvbiBhbmQgaXRzIHByb3BlcnRpZXMuXHJcbiAgICovXHJcbiAgZGVsZXRlTVQoKSB7XHJcbiAgICB0aGlzLm10Q29sbGVjdGlvbiA9IG51bGw7XHJcbiAgICB0aGlzLnVwZGF0ZShudWxsKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUVkaXRhYmxlcyhhY2Nlc3M6IEVuZ2luZVRlcm1Db2xsZWN0aW9uQWNjZXNzIHwgbnVsbCkge1xyXG4gICAgaWYgKCFhY2Nlc3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZWRpdGFibGVzLmdsb2JhbERlZmF1bHQgPSBhY2Nlc3MuZ2xvYmFsPy5kZWZhdWx0O1xyXG4gICAgdGhpcy5lZGl0YWJsZXMuZ3JvdXBEZWZhdWx0ID0gYWNjZXNzLmdyb3VwPy5kZWZhdWx0O1xyXG4gICAgdGhpcy5lZGl0YWJsZXMudXNlckRlZmF1bHQgPSBhY2Nlc3MudXNlcj8uZGVmYXVsdDtcclxuXHJcbiAgICB0aGlzLl9kZWZhdWx0ID0gdGhpcy5lZGl0YWJsZXMuZ2xvYmFsRGVmYXVsdCB8fCB0aGlzLmVkaXRhYmxlcy5ncm91cERlZmF1bHQgfHwgdGhpcy5lZGl0YWJsZXMuZ2xvYmFsRGVmYXVsdDtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBQcml2YXRlIG1ldGhvZHNcclxuICBwcml2YXRlIHVwZGF0ZUlzU3luY2hyb25pemVkKCkge1xyXG4gICAgbGV0IGlzU3luY2hyb25pemVkID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCB0ZXJtTW9kaWZpZWQgPSB0aGlzLnRlcm1Db2xsZWN0aW9uPy5tb2RpZnlEYXRlO1xyXG4gICAgY29uc3QgbGFzdE10VXBkYXRlZCA9IHRoaXMubXRDb2xsZWN0aW9uPy5sYXN0VXBkYXRlZDtcclxuICAgIGlmICh0ZXJtTW9kaWZpZWQgJiYgbGFzdE10VXBkYXRlZCkge1xyXG4gICAgICBpc1N5bmNocm9uaXplZCA9IHRlcm1Nb2RpZmllZCA8PSBsYXN0TXRVcGRhdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2lzU3luY2hyb25pemVkID0gaXNTeW5jaHJvbml6ZWQ7XHJcbiAgICB0aGlzLmxhc3RVcGRhdGVkID0gbGFzdE10VXBkYXRlZCA/PyB0ZXJtTW9kaWZpZWQ7XHJcbiAgICB0aGlzLl9zeW5jQnV0dG9uVmlzaWJsZSA9ICF0aGlzLmlzSW1wb3J0aW5nICYmICghdGhpcy5pc1N5bmNocm9uaXplZCB8fCAodGhpcy50ZXJtQ29sbGVjdGlvbiAmJiB0aGlzLm10U3RhdHVzID09PSBNdENvbGxlY3Rpb25TdGF0dXMuRVJST1IpIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU291cmNlKCkge1xyXG4gICAgaWYgKHRoaXMudGVybUNvbGxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5zb3VyY2UgPSBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZS5USUxERV9URVJNO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5tdENvbGxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5zb3VyY2UgPSBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZS5GSUxFO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVUb29sdGlwS2V5KCkge1xyXG4gICAgaWYgKHRoaXMuZGVmYXVsdCkge1xyXG4gICAgICB0aGlzLnRlcm1Ub29sdGlwS2V5ID0gQ29tYmluZWRDb2xsZWN0aW9uVG9vbHRpcEtleS5ERUZBVUxUX0NPTExFQ1RJT047XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnRlcm1Db2xsZWN0aW9uPy5lbnRyeUNvdW50ID09PSAwKSB7XHJcbiAgICAgIHRoaXMudGVybVRvb2x0aXBLZXkgPSBDb21iaW5lZENvbGxlY3Rpb25Ub29sdGlwS2V5Lk5PX0VOVFJJRVM7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy50ZXJtVG9vbHRpcEtleSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxufVxyXG4iXX0=
@@ -239,6 +239,9 @@ export class TerminologyService {
239
239
  const mtExistingIx = CombinedCollection.findExistingIndexFromList(mtResponse, collection);
240
240
  if (termExistingIx === null && mtExistingIx === null) {
241
241
  this.collections.delete(collection);
242
+ if (this.selected === collection) {
243
+ this.selected = null;
244
+ }
242
245
  }
243
246
  else {
244
247
  if (termExistingIx !== null) {
@@ -259,7 +262,6 @@ export class TerminologyService {
259
262
  }
260
263
  }
261
264
  }
262
- this.selected = null;
263
265
  }
264
266
  clearTimeout() {
265
267
  if (this.refreshTimeout) {
@@ -312,4 +314,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
312
314
  type: Inject,
313
315
  args: [MT_TERM_API_TOKEN]
314
316
  }] }]; } });
315
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL3Rlcm1pbm9sb2d5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQU94RSxNQUFNLE9BQU8sa0JBQWtCO0lBNkQ3QixZQUE2QixNQUFpQyxFQUMzQyxPQUF1QixFQUN2QixNQUF1QixFQUNMLEtBQXFCO1FBSDdCLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQzNDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ0wsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUE5RGxELGNBQVMsR0FBdUIsSUFBSSxDQUFDO1FBNkM1QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBRXRELHNCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBZUMsQ0FBQztJQTdEL0QsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6QyxJQUFJLFFBQVEsQ0FBQyxHQUF1QjtRQUNsQyxJQUFJLENBQUMsU0FBUyxH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LENBQUM7UUFDMUQsSUFBSTtZQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtRQUNELE1BQU07WUFDSixPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7K0dBeFhVLGtCQUFrQix3SEFnRW5CLGlCQUFpQjttSEFoRWhCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWlFSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNVF9URVJNX0FQSV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBUbGRBbGVydFNlcnZpY2UsIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UgfSBmcm9tICcuL2VuZ2luZS10ZXJtL21vZGVscyc7XHJcbmltcG9ydCB7IENvbWJpbmVkQ29sbGVjdGlvbiB9IGZyb20gJy4vbW9kZWxzL2NvbWJpbmVkLWNvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBNdENvbGxlY3Rpb25TdGF0dXMgfSBmcm9tICcuL21vZGVscy9tdC1jb2xsZWN0aW9uLXN0YXR1cy5lbnVtJztcclxuaW1wb3J0IHsgSU10VGVybVNlcnZpY2UgfSBmcm9tICcuL21vZGVscy9tdC10ZXJtLXNlcnZpY2UubW9kZWwnO1xyXG5pbXBvcnQgeyBUZXJtQXBpU2VydmljZSB9IGZyb20gJy4vdGVybS1hcGkvdGVybS1hcGkuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXJtaW5vbG9neVNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIF9zZWxlY3RlZDogQ29tYmluZWRDb2xsZWN0aW9uID0gbnVsbDtcclxuICBnZXQgc2VsZWN0ZWQoKSB7IHJldHVybiB0aGlzLl9zZWxlY3RlZDsgfVxyXG4gIHNldCBzZWxlY3RlZCh2YWw6IENvbWJpbmVkQ29sbGVjdGlvbikge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWw7XHJcbiAgICB0aGlzLnN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSgpO1xyXG4gICAgaWYgKCF0aGlzLl9zZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX3NlbGVjdGVkLm10Q29sbGVjdGlvbikge1xyXG4gICAgICB0aGlzLmFkZFRvRW5naW5lKHRoaXMuX3NlbGVjdGVkKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQW55SW1wb3J0aW5nOiBib29sZWFuO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfaGFzQW55Q29sbGVjdGlvbnM6IGJvb2xlYW47XHJcbiAgZ2V0IGhhc0FueUNvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hhc0FueUNvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldCBzaG91bGRTaG93UHJvbW90aW9uKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLmhhc0FueUNvbGxlY3Rpb25zICYmICF0aGlzLmhhc0VkaXRQZXJtaXNzaW9ucztcclxuICB9XHJcblxyXG4gIGdldCBjYW5DcmVhdGVDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzRWRpdFBlcm1pc3Npb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5jb3JlQ29uZmlnLmlzQXV0aCAmJiB0aGlzLmNhbkNyZWF0ZUNvbGxlY3Rpb25zICYmIHRoaXMuY29uZmlnLnRlcm1Db25maWcuaXNUZXJtUG9ydGFsU3VwcG9ydGVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnM6IGJvb2xlYW47XHJcbiAgZ2V0IGlzUmVmcmVzaGluZ0NvbGxlY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzUmVmcmVzaGluZ0NvbGxlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY29sbGVjdGlvbnM6IFNldDxDb21iaW5lZENvbGxlY3Rpb24+O1xyXG4gIGdldCBjb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgb25EYXRhVXBkYXRlID0gbmV3IFN1YmplY3Q8U2V0PENvbWJpbmVkQ29sbGVjdGlvbj4+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTE9DQUxfU1RPUkFHRV9LRVkgPSBcInN5c3RlbUxhc3RDb2xsZWN0aW9uc1wiO1xyXG4gIHByaXZhdGUgZW5naW5lSWQ6IHN0cmluZztcclxuICBwcml2YXRlIHJlZnJlc2hNdENvbGxlY3Rpb25zOiBib29sZWFuO1xyXG4gIHByaXZhdGUgcmVmcmVzaFRlcm1Db2xsZWN0aW9uczogYm9vbGVhbjtcclxuICAvLyBzdG9yZXMgbGFuZ3VhZ2UgY29kZXMgd2hpY2ggYXJlIHVzZWQgdG8gZmlsdGVyIHZpc2JsZSBjb2xsZWN0aW9ucyBmcm9tIHRlcm0gYXBpLlxyXG4gIHByaXZhdGUgZW5naW5lTGFuZ3VhZ2VzOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIHJlZnJlc2hUaW1lb3V0OiBhbnk7XHJcbiAgLy8gc29mdCByZWZyZXNoIHRha2VzIGluIGFjY291bnQgb3RoZXIgcGFyYW1zIGFzIHdlbGwuXHJcbiAgcHJpdmF0ZSBpc1NvZnRBdXRvUmVmcmVzaE9uOiBib29sZWFuO1xyXG4gIC8vIHNob3VsZCBkbyBhdXRvcmVmcmVzaCBieSBpZ25vcmluZyBhbnkgb3RoZXIgcGFyYW1zLlxyXG4gIHByaXZhdGUgaGFyZEF1dG9SZWZyZXNoOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVybUFwaTogVGVybUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0czogVGxkQWxlcnRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChNVF9URVJNX0FQSV9UT0tFTikgcHJpdmF0ZSBtdEFwaTogSU10VGVybVNlcnZpY2UpIHsgfVxyXG5cclxuICBkYXRhVXBkYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub25EYXRhVXBkYXRlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RW5naW5lKGVuZ2luZUlkOiBzdHJpbmcsIGxhbmd1YWdlczogc3RyaW5nW10gPSBudWxsLCBzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UgPSBmYWxzZSwgdGVybUNvbGxlY3Rpb25zID0gdHJ1ZSwgbXRDb2xsZWN0aW9ucyA9IHRydWUpOiBPYnNlcnZhYmxlPFNldDxDb21iaW5lZENvbGxlY3Rpb24+PiB7XHJcbiAgICAvLyBlbmdpbmUgaXMgYWxyZWFkeSBzZXQgd2l0aCB0aGF0IElEIGFuZCBubyBuZWVkIHRvIHJlZnJlc2ggaXQuXHJcbiAgICBpZiAoZW5naW5lSWQgIT09IHRoaXMuZW5naW5lSWQgfHwgSlNPTi5zdHJpbmdpZnkobGFuZ3VhZ2VzKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5lbmdpbmVMYW5ndWFnZXMpXHJcbiAgICAgIHx8IHRoaXMucmVmcmVzaE10Q29sbGVjdGlvbnMgIT09IG10Q29sbGVjdGlvbnMgfHwgdGhpcy5yZWZyZXNoVGVybUNvbGxlY3Rpb25zICE9PSB0ZXJtQ29sbGVjdGlvbnMpIHtcclxuICAgICAgdGhpcy5lbmdpbmVMYW5ndWFnZXMgPSBsYW5ndWFnZXM7XHJcbiAgICAgIHRoaXMucmVmcmVzaE10Q29sbGVjdGlvbnMgPSBtdENvbGxlY3Rpb25zO1xyXG4gICAgICB0aGlzLnJlZnJlc2hUZXJtQ29sbGVjdGlvbnMgPSB0ZXJtQ29sbGVjdGlvbnM7XHJcbiAgICAgIHRoaXMuZW5naW5lSWQgPSBlbmdpbmVJZDtcclxuICAgICAgdGhpcy5fY29sbGVjdGlvbnMgPSBuZXcgU2V0KCk7XHJcbiAgICAgIHRoaXMuZW1pdERhdGFVcGRhdGVFdmVudCgpO1xyXG4gICAgICAvLyBhdm9pZGluZyBzZXR0ZXIsIHNvIHRoZSBudWxsIHZhbHVlIGlzIG5vdCBzdG9yZWVkIGluIGxvY2F0aW9uIHNpbmNlIGl0IGlzIG5vdCBieSB1c2VyIGFjdGlvblxyXG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZW5naW5lSWQpIHtcclxuICAgICAgdGhpcy5yZWZyZXNoQ29sbGVjdGlvbnMoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoQ29sbGVjdGlvbnMoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlID0gZmFsc2UsIGluaXRpYWxSZWZyZXNoID0gZmFsc2UpIHtcclxuICAgIGlmICghdGhpcy5lbmdpbmVJZCB8fCAhdGhpcy5jb25maWcudGVybUNvbmZpZy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkIHx8IHRoaXMuaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNsZWFyIHRpbWVvdXQgc2luY2UgdGhpcyByZWZyZXNoIHJlcGxhY2VzIHNjaGVkdWxlZFxyXG4gICAgdGhpcy5jbGVhclRpbWVvdXQoKTtcclxuXHJcbiAgICB0aGlzLl9pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IHRydWU7XHJcblxyXG4gICAgbGV0IHRlcm1SZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW107XHJcbiAgICBsZXQgbXRBcGlSZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW107XHJcblxyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uW10+W10gPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5yZWZyZXNoVGVybUNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy50ZXJtQXBpLmdldENvbGxlY3Rpb25MaXN0KHRoaXMuZW5naW5lTGFuZ3VhZ2VzKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzcG9uc2UpID0+IHRlcm1SZXNwb25zZSA9IHJlc3BvbnNlKVxyXG4gICAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5yZWZyZXNoTXRDb2xsZWN0aW9ucykge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMubXRBcGkuZ2V0TGlzdCh0aGlzLmVuZ2luZUlkKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzcG9uc2UpID0+IG10QXBpUmVzcG9uc2UgPSByZXNwb25zZSlcclxuICAgICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoe1xyXG4gICAgICAvLyBkbyBub3QgbmVlZCByZXNwb25zZSBiZWNhdWUgcmVzcG9uc2VzIGFyZSBzYXZlZCBpbiBwaXBlIG1ldGhvZHNcclxuICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNBbnlJbXBvcnRpbmcgPSBmYWxzZTtcclxuICAgICAgICAvLyBub3RlIHRoYXQgdGVybVJlc3BvbnNlIGFuZCBtdGFwaXJlc3BvbnNlIGdldHMgY2hhbmdlZCBkdXJpbmcgcmVtb3ZlIG1ldGhvZFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRGVsZXRlZCh0ZXJtUmVzcG9uc2UsIG10QXBpUmVzcG9uc2UsIGluaXRpYWxSZWZyZXNoKTtcclxuXHJcbiAgICAgICAgY29uc3Qgam9pbmVkID0gW107XHJcbiAgICAgICAgaWYgKG10QXBpUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGpvaW5lZC5wdXNoKC4uLm10QXBpUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGVybVJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBqb2luZWQucHVzaCguLi50ZXJtUmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hZGRDb2xsZWN0aW9ucyhqb2luZWQsIGluaXRpYWxSZWZyZXNoKTtcclxuICAgICAgICBpZiAoc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKG51bGwpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMgPSBmYWxzZTtcclxuICAgICAgICAvLyBpdCBpcyBlbm91Z2ggdG8gc2hvdyBlcnJvciBvbmx5IGluIGNvbnNvbGUuIE5vIHNwZWNpYWwgdGhpbmcgaXMgbmVjZXNzYXJ5LlxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRUb0VuZ2luZShjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pIHtcclxuICAgIGlmICghY29sbGVjdGlvbiB8fCAhY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiVHJ5aW5nIHRvIGF0dGFjaCBjb2xsZWN0aW9uIHRoYXQgaGFzIG5vIHRpbGRlIHRlcm0gaWQuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUlmTmVjZXNzYXJ5KGNvbGxlY3Rpb24sIHRydWUpLnN1YnNjcmliZShcclxuICAgICAge1xyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRzLnVuaGFuZGVsZWRFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIGNyZWF0ZShzb3VyY2VMYW5ndWFnZTogc3RyaW5nLCB0YXJnZXRMYW5ndWFnZTogc3RyaW5nLCBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLCByZWRpcmVjdFRvRWRpdCA9IHRydWUpIHtcclxuICAgIHJldHVybiB0aGlzLnRlcm1BcGkuY3JlYXRlQ29sbGVjdGlvbihbc291cmNlTGFuZ3VhZ2UsIHRhcmdldExhbmd1YWdlXSwgY29sbGVjdGlvbk5hbWUpLnBpcGUoXHJcbiAgICAgIHRhcCgoY29sbGVjdGlvbikgPT4ge1xyXG4gICAgICAgIGlmIChyZWRpcmVjdFRvRWRpdCkge1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4odGhpcy50ZXJtQXBpLmdldEVkaXRMaW5rKGNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24uaWQsIHNvdXJjZUxhbmd1YWdlLCB0YXJnZXRMYW5ndWFnZSksIFwiX2JsYW5rXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jb2xsZWN0aW9ucy5hZGQoY29sbGVjdGlvbik7XHJcbiAgICAgICAgdGhpcy5lbWl0RGF0YVVwZGF0ZUV2ZW50KCk7XHJcbiAgICAgICAgdGhpcy5faGFzQW55Q29sbGVjdGlvbnMgPSB0cnVlO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUlmTmVjZXNzYXJ5KGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgaXNFZGl0ZWQgPSBmYWxzZSk6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICAvLyBjb2xsZWN0aW9uIGlzIG5vdCBpbXBvcnRlZCBhbmQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIGVuZ2luZVxyXG4gICAgaWYgKGNvbGxlY3Rpb24uaXNFZGl0ZWQoKSB8fCBpc0VkaXRlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5tdEFwaS5hZGQodGhpcy5lbmdpbmVJZCwgY29sbGVjdGlvbilcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRhcCgodXBkYXRlZENvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICAgICAgY29sbGVjdGlvbi51cGRhdGUodXBkYXRlZENvbGxlY3Rpb24pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBvZihjb2xsZWN0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKlxyXG4gKiBAcmV0dXJucyBzZWxlY3RlZCBjb2xsZWN0aW9uIGlkIGlmIGl0IGlzIGFsbG93ZWQgdG8gdXNlIGNvbGxlY3Rpb24gZm9yIHRyYW5zbGF0aW9uc1xyXG4gKi9cclxuICBzZWxlY3RlZElkRm9yVHJhbnNsYXRpb24oKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkPy5tdENvbGxlY3Rpb24gJiYgKHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uLmxhc3RVcGRhdGVkIHx8IHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uPy5zdGF0dXMgPT09IE10Q29sbGVjdGlvblN0YXR1cy5SRUFEWSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQubXRDb2xsZWN0aW9uPy5pZDtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRBdXRvUmVmcmVzaChlbmdpbmVJZD86IHN0cmluZywgbGFuZ3VhZ2VzOiBzdHJpbmdbXSA9IG51bGwsIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSA9IGZhbHNlLCB0ZXJtQ29sbGVjdGlvbnMgPSB0cnVlLCBtdENvbGxlY3Rpb25zID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5oYXJkQXV0b1JlZnJlc2ggPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0RW5naW5lKGVuZ2luZUlkID8/IHRoaXMuZW5naW5lSWQsIGxhbmd1YWdlcyA/PyB0aGlzLmVuZ2luZUxhbmd1YWdlcywgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlLCB0ZXJtQ29sbGVjdGlvbnMsIG10Q29sbGVjdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc3RvcEF1dG9SZWZyZXNoKCkge1xyXG4gICAgdGhpcy5jbGVhclRpbWVvdXQoKTtcclxuXHJcbiAgICB0aGlzLmlzU29mdEF1dG9SZWZyZXNoT24gPSBmYWxzZTtcclxuICAgIHRoaXMuaGFyZEF1dG9SZWZyZXNoID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdENvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLCBlbmdpbmVJZCA9IHRoaXMuZW5naW5lSWQpIHtcclxuICAgIHJldHVybiB0aGlzLm10QXBpLnJlbW92ZShlbmdpbmVJZCwgY29sbGVjdGlvbikucGlwZShcclxuICAgICAgdGFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGNvbGxlY3Rpb24udXBkYXRlKHJlc3BvbnNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzeW5jKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgZW5naW5lSWQgPSB0aGlzLmVuZ2luZUlkKTogT2JzZXJ2YWJsZTxDb21iaW5lZENvbGxlY3Rpb24+IHtcclxuICAgIHJldHVybiB0aGlzLm10QXBpLnN5bmMoZW5naW5lSWQsIGNvbGxlY3Rpb24pLlxyXG4gICAgICBwaXBlKHRhcCgodXBkYXRlZENvbGxlY3Rpb24pID0+IHsgY29sbGVjdGlvbi51cGRhdGUodXBkYXRlZENvbGxlY3Rpb24pIH0pKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY2hlZHVsZVJlZnJlc2godGltZW91dD86IG51bWJlcikge1xyXG4gICAgLy8gaWYgbWVudSBpcyBjbG9zZWQgYW5kIHNlbGVjdGVkIGNvbGxlY3Rpb24gaXMgbm90IGltcG9ydGluZyBhbnltb3JlIC0gYXV0byByZWZyZXNoaW5nIHNob3VsZCBiZSBjYW5jZWxsZWQuXHJcbiAgICBpZiAoIXRoaXMuaGFyZEF1dG9SZWZyZXNoICYmICF0aGlzLnNlbGVjdGVkPy5pc0ltcG9ydGluZyAmJiB0aGlzLmlzU29mdEF1dG9SZWZyZXNoT24pIHtcclxuICAgICAgdGhpcy5zdG9wQXV0b1JlZnJlc2goKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmIGhhcmQgYXV0byByZWZyZXNobyBvbiwgYXV0byByZWZyZXNoIHNob3VsZCBiZSBvbi4gSWYgaGFyZCBhdXRvcmVmZXJlc2ggaXMgb2ZmICwgcmVmcmVzaCBuZWVkcyB0byBiZSBkb25lIG9ubHkgaWYgc2VsZWN0ZWQgaXMgaW1wb3J0aW5nLlxyXG4gICAgaWYgKHRoaXMuaGFyZEF1dG9SZWZyZXNoIHx8ICghdGhpcy5yZWZyZXNoVGltZW91dCAmJiAodGhpcy5pc1NvZnRBdXRvUmVmcmVzaE9uIHx8IHRoaXMuc2VsZWN0ZWQ/LmlzSW1wb3J0aW5nKSkpIHtcclxuICAgICAgY29uc3QgdGltZW91dE1zID0gdGltZW91dCA/PyAodGhpcy5pc0FueUltcG9ydGluZyA/IHRoaXMuY29uZmlnLnRlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmcgOiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLnJlZnJlc2hUaW1lb3V0TXMpO1xyXG4gICAgICB0aGlzLnJlZnJlc2hUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoVGltZW91dCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoQ29sbGVjdGlvbnMoKVxyXG4gICAgICB9LCB0aW1lb3V0TXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbmV3Q29sbGVjdGlvbnNcclxuICAgKiBAcGFyYW0gaW5pdGlhbFJlZnJlc2ggV2hldGhlciBhbHNvIGVkaXRhYmxlIGNvbGxlY3Rpb24gZmllbGRzIHNob3VsZCBiZSB1cGRhdGVkLiBJZiBub3QgaW5pdGlhbCByZWZyZXNoLCBlZGl0YWJsZSBmaWVsZHMgd2lsbCBub3QgYmUgdXBkYXRlZC5cclxuICAgKi9cclxuICBwcml2YXRlIGFkZENvbGxlY3Rpb25zKG5ld0NvbGxlY3Rpb25zOiBJdGVyYWJsZTxDb21iaW5lZENvbGxlY3Rpb24+LCBpbml0aWFsUmVmcmVzaDogYm9vbGVhbikge1xyXG4gICAgLy8gc2V0cyBjb2xsZWN0aW9uIGxpc3QgdG8gdGhpcyB2YWx1ZSBhdCB0aGUgZW5kLCBzbyBkZWxldGVkIGNvbGxlY3Rpb25zIGFyZSBub3QgaW4gdGhlIGxpc3QuXHJcbiAgICBmb3IgKGxldCBjb2xsZWN0aW9uIG9mIG5ld0NvbGxlY3Rpb25zKSB7XHJcbiAgICAgIC8vIFVzZXIgc2hvdWxkbid0IHNlZSBmYWlsZWQgY29sbGVjdGlvbnMgaWYgaGUgY2FuJ3QgcmV0cnkgdG8gaW1wb3J0IHRoZW0uXHJcbiAgICAgIGlmICghdGhpcy5oYXNFZGl0UGVybWlzc2lvbnNcclxuICAgICAgICAmJiBjb2xsZWN0aW9uLm10U3RhdHVzID09PSBNdENvbGxlY3Rpb25TdGF0dXMuRVJST1IpIHtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbGxlY3Rpb24uaXNJbXBvcnRpbmcpIHtcclxuICAgICAgICB0aGlzLmlzQW55SW1wb3J0aW5nID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgZXhpc3Rpbmc6IENvbWJpbmVkQ29sbGVjdGlvbiA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdDb2xsZWN0aW9uRnJvbUxpc3QodGhpcy5jb2xsZWN0aW9ucywgY29sbGVjdGlvbik7XHJcblxyXG4gICAgICAvLyBJZiB0ZXJtIGFwaSBkb2Vzbid0IGhhdmUgZW5naW5lIGxhbmd1YWdlcywgY29sbGVjdGlvbiBzaG91bGQgbm90IGJlIHNob3duIChpZiBpdCBpcyBub3QgYWxyZWFkeSBpbXBvcnRlZCBzb21laG93KTtcclxuICAgICAgaWYgKCFleGlzdGluZyAmJiBjb2xsZWN0aW9uLnNvdXJjZSA9PT0gRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UuVElMREVfVEVSTSkge1xyXG4gICAgICAgIGxldCBoYXNMYW5ndWFnZXMgPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbmdpbmVMYW5ndWFnZXM/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAoIWNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24ubGFuZ3VhZ2VzPy5maW5kKGxhbmcgPT4gbGFuZy5pZCA9PT0gdGhpcy5lbmdpbmVMYW5ndWFnZXNbaV0pKSB7XHJcbiAgICAgICAgICAgIGhhc0xhbmd1YWdlcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghaGFzTGFuZ3VhZ2VzKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghZXhpc3RpbmcpIHtcclxuICAgICAgICB0aGlzLl9jb2xsZWN0aW9ucy5hZGQoY29sbGVjdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZXhpc3RpbmcudXBkYXRlKGNvbGxlY3Rpb24sIGluaXRpYWxSZWZyZXNoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMuX2NvbGxlY3Rpb25zID0gdXBkYXRlZENvbGxlY3Rpb25zO1xyXG4gICAgdGhpcy5lbWl0RGF0YVVwZGF0ZUV2ZW50KCk7XHJcbiAgICB0aGlzLl9oYXNBbnlDb2xsZWN0aW9ucyA9IHRoaXMuX2NvbGxlY3Rpb25zLnNpemUgPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdWxkIGJlIGNhbGxlZCBhZnRlciByZWZyZXNoIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGFueSBjb2xsZWN0aW9ucyBmcm9tIGFwaSB0aGF0IGFyZSBkZWxldGVkLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlRGVsZXRlZCh0ZXJtUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdLCBtdFJlc3BvbnNlOiBDb21iaW5lZENvbGxlY3Rpb25bXSwgaW5pdGlhbFJlZnJlc2g6IGJvb2xlYW4pIHtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgdGhpcy5jb2xsZWN0aW9ucykge1xyXG4gICAgICBjb25zdCB0ZXJtRXhpc3RpbmdJeCA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdJbmRleEZyb21MaXN0KHRlcm1SZXNwb25zZSwgY29sbGVjdGlvbik7XHJcbiAgICAgIGNvbnN0IG10RXhpc3RpbmdJeCA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdJbmRleEZyb21MaXN0KG10UmVzcG9uc2UsIGNvbGxlY3Rpb24pO1xyXG4gICAgICBpZiAodGVybUV4aXN0aW5nSXggPT09IG51bGwgJiYgbXRFeGlzdGluZ0l4ID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9ucy5kZWxldGUoY29sbGVjdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHRlcm1FeGlzdGluZ0l4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb25zdCBleGlzdGluZyA9IHRlcm1SZXNwb25zZVt0ZXJtRXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZywgaW5pdGlhbFJlZnJlc2gpO1xyXG4gICAgICAgICAgdGVybVJlc3BvbnNlLnNwbGljZSh0ZXJtRXhpc3RpbmdJeCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29sbGVjdGlvbi5kZWxldGVUZXJtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG10RXhpc3RpbmdJeCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBtdFJlc3BvbnNlW210RXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZywgaW5pdGlhbFJlZnJlc2gpO1xyXG4gICAgICAgICAgbXRSZXNwb25zZS5zcGxpY2UobXRFeGlzdGluZ0l4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLmRlbGV0ZU1UKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyVGltZW91dCgpIHtcclxuICAgIGlmICh0aGlzLnJlZnJlc2hUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlZnJlc2hUaW1lb3V0KTtcclxuICAgICAgdGhpcy5yZWZyZXNoVGltZW91dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgIC8vIElmIG5vIGNvbGxlY3Rpb25zIG9yIHNlbGVjdGVkIGlzIGFscmVhZHkgc2V0LCBpdCBzaG91bGQgbm90IGJlIGNoYW5nZWQgZnJvbSBsb2NhbHN0b3JhZ2UgdmFsdWUuIChVc3VhbGx5LCBsb2NhbHN0b3JhZ2Ugc2hvdWxkIGhhdmUgdGhlIHNhbWUgdmFsdWUpLlxyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbnM/LnNpemUgPT09IDAgfHwgdGhpcy5zZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdG9yZWRJZCA9IHRoaXMucmVhZExvY2FsU3RvcmFnZSgpPy5bdGhpcy5lbmdpbmVJZF07XHJcbiAgICBpZiAoIXN0b3JlZElkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBleGlzdGluZyA9IEFycmF5LmZyb20odGhpcy5jb2xsZWN0aW9ucykuZmluZChpdGVtID0+IGl0ZW0udGVybUNvbGxlY3Rpb24/LmlkID09PSBzdG9yZWRJZCB8fCBpdGVtLm10Q29sbGVjdGlvbj8uaWQgPT09IHN0b3JlZElkKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBleGlzdGluZztcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGxldCBsb2NhbFN0b3JhZ2VPYmplY3QgPSB0aGlzLnJlYWRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIGlmICghbG9jYWxTdG9yYWdlT2JqZWN0KSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZU9iamVjdCA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGxvY2FsU3RvcmFnZU9iamVjdFt0aGlzLmVuZ2luZUlkXSA9IHRoaXMuc2VsZWN0ZWQgPyAodGhpcy5zZWxlY3RlZC50ZXJtQ29sbGVjdGlvbj8uaWQgPz8gdGhpcy5zZWxlY3RlZC5tdENvbGxlY3Rpb24/LmlkKSA6IG51bGw7XHJcbiAgICAvLyBzdG9yZSB0ZXJtIGlkIGlmIGl0IGV4aXN0c1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5MT0NBTF9TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkobG9jYWxTdG9yYWdlT2JqZWN0KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRMb2NhbFN0b3JhZ2UoKTogYW55IHtcclxuICAgIGNvbnN0IGRhdGEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkxPQ0FMX1NUT1JBR0VfS0VZKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2gge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdERhdGFVcGRhdGVFdmVudCgpIHtcclxuICAgIHRoaXMub25EYXRhVXBkYXRlLm5leHQodGhpcy5jb2xsZWN0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL3Rlcm1pbm9sb2d5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQU94RSxNQUFNLE9BQU8sa0JBQWtCO0lBNkQ3QixZQUE2QixNQUFpQyxFQUMzQyxPQUF1QixFQUN2QixNQUF1QixFQUNMLEtBQXFCO1FBSDdCLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQzNDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ0wsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUE5RGxELGNBQVMsR0FBdUIsSUFBSSxDQUFDO1FBNkM1QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBRXRELHNCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBZUMsQ0FBQztJQTdEL0QsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6QyxJQUFJLFFBQVEsQ0FBQyxHQUF1QjtRQUNsQyxJQUFJLENBQUMsU0FBUyxH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QUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELElBQUk7WUFDRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekI7UUFDRCxNQUFNO1lBQ0osT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OytHQTFYVSxrQkFBa0Isd0hBZ0VuQixpQkFBaUI7bUhBaEVoQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFpRUksTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTVRfVEVSTV9BUElfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlIH0gZnJvbSAnLi9lbmdpbmUtdGVybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb21iaW5lZENvbGxlY3Rpb24gfSBmcm9tICcuL21vZGVscy9jb21iaW5lZC1jb2xsZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTXRDb2xsZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi9tb2RlbHMvbXQtY29sbGVjdGlvbi1zdGF0dXMuZW51bSc7XHJcbmltcG9ydCB7IElNdFRlcm1TZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbHMvbXQtdGVybS1zZXJ2aWNlLm1vZGVsJztcclxuaW1wb3J0IHsgVGVybUFwaVNlcnZpY2UgfSBmcm9tICcuL3Rlcm0tYXBpL3Rlcm0tYXBpLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVybWlub2xvZ3lTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWQ6IENvbWJpbmVkQ29sbGVjdGlvbiA9IG51bGw7XHJcbiAgZ2V0IHNlbGVjdGVkKCkgeyByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7IH1cclxuICBzZXQgc2VsZWN0ZWQodmFsOiBDb21iaW5lZENvbGxlY3Rpb24pIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkID0gdmFsO1xyXG4gICAgdGhpcy5zdG9yZVNlbGVjdGVkSW5Mb2NhbFN0b3JhZ2UoKTtcclxuICAgIGlmICghdGhpcy5fc2VsZWN0ZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLl9zZWxlY3RlZC5tdENvbGxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5hZGRUb0VuZ2luZSh0aGlzLl9zZWxlY3RlZCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0FueUltcG9ydGluZzogYm9vbGVhbjtcclxuXHJcblxyXG4gIHByaXZhdGUgX2hhc0FueUNvbGxlY3Rpb25zOiBib29sZWFuO1xyXG4gIGdldCBoYXNBbnlDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLl9oYXNBbnlDb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG5cclxuICBnZXQgc2hvdWxkU2hvd1Byb21vdGlvbigpIHtcclxuICAgIHJldHVybiAhdGhpcy5oYXNBbnlDb2xsZWN0aW9ucyAmJiAhdGhpcy5oYXNFZGl0UGVybWlzc2lvbnM7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuQ3JlYXRlQ29sbGVjdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcudGVybUNvbmZpZy5jYW5DcmVhdGVDb2xsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc0VkaXRQZXJtaXNzaW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZz8uY29yZUNvbmZpZy5pc0F1dGggJiYgdGhpcy5jYW5DcmVhdGVDb2xsZWN0aW9ucyAmJiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmlzVGVybVBvcnRhbFN1cHBvcnRlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzUmVmcmVzaGluZ0NvbGxlY3Rpb25zOiBib29sZWFuO1xyXG4gIGdldCBpc1JlZnJlc2hpbmdDb2xsZWN0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbGxlY3Rpb25zOiBTZXQ8Q29tYmluZWRDb2xsZWN0aW9uPjtcclxuICBnZXQgY29sbGVjdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IG9uRGF0YVVwZGF0ZSA9IG5ldyBTdWJqZWN0PFNldDxDb21iaW5lZENvbGxlY3Rpb24+PigpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IExPQ0FMX1NUT1JBR0VfS0VZID0gXCJzeXN0ZW1MYXN0Q29sbGVjdGlvbnNcIjtcclxuICBwcml2YXRlIGVuZ2luZUlkOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSByZWZyZXNoTXRDb2xsZWN0aW9uczogYm9vbGVhbjtcclxuICBwcml2YXRlIHJlZnJlc2hUZXJtQ29sbGVjdGlvbnM6IGJvb2xlYW47XHJcbiAgLy8gc3RvcmVzIGxhbmd1YWdlIGNvZGVzIHdoaWNoIGFyZSB1c2VkIHRvIGZpbHRlciB2aXNibGUgY29sbGVjdGlvbnMgZnJvbSB0ZXJtIGFwaS5cclxuICBwcml2YXRlIGVuZ2luZUxhbmd1YWdlczogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSByZWZyZXNoVGltZW91dDogYW55O1xyXG4gIC8vIHNvZnQgcmVmcmVzaCB0YWtlcyBpbiBhY2NvdW50IG90aGVyIHBhcmFtcyBhcyB3ZWxsLlxyXG4gIHByaXZhdGUgaXNTb2Z0QXV0b1JlZnJlc2hPbjogYm9vbGVhbjtcclxuICAvLyBzaG91bGQgZG8gYXV0b3JlZnJlc2ggYnkgaWdub3JpbmcgYW55IG90aGVyIHBhcmFtcy5cclxuICBwcml2YXRlIGhhcmRBdXRvUmVmcmVzaDogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlcm1BcGk6IFRlcm1BcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IFRsZEFsZXJ0U2VydmljZSxcclxuICAgIEBJbmplY3QoTVRfVEVSTV9BUElfVE9LRU4pIHByaXZhdGUgbXRBcGk6IElNdFRlcm1TZXJ2aWNlKSB7IH1cclxuXHJcbiAgZGF0YVVwZGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm9uRGF0YVVwZGF0ZS5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHNldEVuZ2luZShlbmdpbmVJZDogc3RyaW5nLCBsYW5ndWFnZXM6IHN0cmluZ1tdID0gbnVsbCwgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlID0gZmFsc2UsIHRlcm1Db2xsZWN0aW9ucyA9IHRydWUsIG10Q29sbGVjdGlvbnMgPSB0cnVlKTogT2JzZXJ2YWJsZTxTZXQ8Q29tYmluZWRDb2xsZWN0aW9uPj4ge1xyXG4gICAgLy8gZW5naW5lIGlzIGFscmVhZHkgc2V0IHdpdGggdGhhdCBJRCBhbmQgbm8gbmVlZCB0byByZWZyZXNoIGl0LlxyXG4gICAgaWYgKGVuZ2luZUlkICE9PSB0aGlzLmVuZ2luZUlkIHx8IEpTT04uc3RyaW5naWZ5KGxhbmd1YWdlcykgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMuZW5naW5lTGFuZ3VhZ2VzKVxyXG4gICAgICB8fCB0aGlzLnJlZnJlc2hNdENvbGxlY3Rpb25zICE9PSBtdENvbGxlY3Rpb25zIHx8IHRoaXMucmVmcmVzaFRlcm1Db2xsZWN0aW9ucyAhPT0gdGVybUNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIHRoaXMuZW5naW5lTGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzO1xyXG4gICAgICB0aGlzLnJlZnJlc2hNdENvbGxlY3Rpb25zID0gbXRDb2xsZWN0aW9ucztcclxuICAgICAgdGhpcy5yZWZyZXNoVGVybUNvbGxlY3Rpb25zID0gdGVybUNvbGxlY3Rpb25zO1xyXG4gICAgICB0aGlzLmVuZ2luZUlkID0gZW5naW5lSWQ7XHJcbiAgICAgIHRoaXMuX2NvbGxlY3Rpb25zID0gbmV3IFNldCgpO1xyXG4gICAgICB0aGlzLmVtaXREYXRhVXBkYXRlRXZlbnQoKTtcclxuICAgICAgLy8gYXZvaWRpbmcgc2V0dGVyLCBzbyB0aGUgbnVsbCB2YWx1ZSBpcyBub3Qgc3RvcmVlZCBpbiBsb2NhdGlvbiBzaW5jZSBpdCBpcyBub3QgYnkgdXNlciBhY3Rpb25cclxuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmVuZ2luZUlkKSB7XHJcbiAgICAgIHRoaXMucmVmcmVzaENvbGxlY3Rpb25zKHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaENvbGxlY3Rpb25zKHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSA9IGZhbHNlLCBpbml0aWFsUmVmcmVzaCA9IGZhbHNlKSB7XHJcbiAgICBpZiAoIXRoaXMuZW5naW5lSWQgfHwgIXRoaXMuY29uZmlnLnRlcm1Db25maWcuaXNDb2xsZWN0aW9uc0FjdGl2YXRlZCB8fCB0aGlzLmlzUmVmcmVzaGluZ0NvbGxlY3Rpb25zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjbGVhciB0aW1lb3V0IHNpbmNlIHRoaXMgcmVmcmVzaCByZXBsYWNlcyBzY2hlZHVsZWRcclxuICAgIHRoaXMuY2xlYXJUaW1lb3V0KCk7XHJcblxyXG4gICAgdGhpcy5faXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMgPSB0cnVlO1xyXG5cclxuICAgIGxldCB0ZXJtUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdO1xyXG4gICAgbGV0IG10QXBpUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdO1xyXG5cclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbltdPltdID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMucmVmcmVzaFRlcm1Db2xsZWN0aW9ucykge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMudGVybUFwaS5nZXRDb2xsZWN0aW9uTGlzdCh0aGlzLmVuZ2luZUxhbmd1YWdlcylcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKHJlc3BvbnNlKSA9PiB0ZXJtUmVzcG9uc2UgPSByZXNwb25zZSlcclxuICAgICAgICAgIClcclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVmcmVzaE10Q29sbGVjdGlvbnMpIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLm10QXBpLmdldExpc3QodGhpcy5lbmdpbmVJZClcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKHJlc3BvbnNlKSA9PiBtdEFwaVJlc3BvbnNlID0gcmVzcG9uc2UpXHJcbiAgICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBmb3JrSm9pbihvYnNlcnZhYmxlcykuc3Vic2NyaWJlKHtcclxuICAgICAgLy8gZG8gbm90IG5lZWQgcmVzcG9uc2UgYmVjYXVlIHJlc3BvbnNlcyBhcmUgc2F2ZWQgaW4gcGlwZSBtZXRob2RzXHJcbiAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmlzQW55SW1wb3J0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgLy8gbm90ZSB0aGF0IHRlcm1SZXNwb25zZSBhbmQgbXRhcGlyZXNwb25zZSBnZXRzIGNoYW5nZWQgZHVyaW5nIHJlbW92ZSBtZXRob2RcclxuICAgICAgICB0aGlzLnJlbW92ZURlbGV0ZWQodGVybVJlc3BvbnNlLCBtdEFwaVJlc3BvbnNlLCBpbml0aWFsUmVmcmVzaCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGpvaW5lZCA9IFtdO1xyXG4gICAgICAgIGlmIChtdEFwaVJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBqb2luZWQucHVzaCguLi5tdEFwaVJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRlcm1SZXNwb25zZSkge1xyXG4gICAgICAgICAgam9pbmVkLnB1c2goLi4udGVybVJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWRkQ29sbGVjdGlvbnMoam9pbmVkLCBpbml0aWFsUmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5faXNSZWZyZXNoaW5nQ29sbGVjdGlvbnMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlUmVmcmVzaChudWxsKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuX2lzUmVmcmVzaGluZ0NvbGxlY3Rpb25zID0gZmFsc2U7XHJcbiAgICAgICAgLy8gaXQgaXMgZW5vdWdoIHRvIHNob3cgZXJyb3Igb25seSBpbiBjb25zb2xlLiBObyBzcGVjaWFsIHRoaW5nIGlzIG5lY2Vzc2FyeS5cclxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkVG9FbmdpbmUoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICBpZiAoIWNvbGxlY3Rpb24gfHwgIWNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24pIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIlRyeWluZyB0byBhdHRhY2ggY29sbGVjdGlvbiB0aGF0IGhhcyBubyB0aWxkZSB0ZXJtIGlkLlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVJZk5lY2Vzc2FyeShjb2xsZWN0aW9uLCB0cnVlKS5zdWJzY3JpYmUoXHJcbiAgICAgIHtcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0cy51bmhhbmRlbGVkRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjcmVhdGUoc291cmNlTGFuZ3VhZ2U6IHN0cmluZywgdGFyZ2V0TGFuZ3VhZ2U6IHN0cmluZywgY29sbGVjdGlvbk5hbWU6IHN0cmluZywgcmVkaXJlY3RUb0VkaXQgPSB0cnVlKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtQXBpLmNyZWF0ZUNvbGxlY3Rpb24oW3NvdXJjZUxhbmd1YWdlLCB0YXJnZXRMYW5ndWFnZV0sIGNvbGxlY3Rpb25OYW1lKS5waXBlKFxyXG4gICAgICB0YXAoKGNvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICBpZiAocmVkaXJlY3RUb0VkaXQpIHtcclxuICAgICAgICAgIHdpbmRvdy5vcGVuKHRoaXMudGVybUFwaS5nZXRFZGl0TGluayhjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uLmlkLCBzb3VyY2VMYW5ndWFnZSwgdGFyZ2V0TGFuZ3VhZ2UpLCBcIl9ibGFua1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fY29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xyXG4gICAgICAgIHRoaXMuZW1pdERhdGFVcGRhdGVFdmVudCgpO1xyXG4gICAgICAgIHRoaXMuX2hhc0FueUNvbGxlY3Rpb25zID0gdHJ1ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVJZk5lY2Vzc2FyeShjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24sIGlzRWRpdGVkID0gZmFsc2UpOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgLy8gY29sbGVjdGlvbiBpcyBub3QgaW1wb3J0ZWQgYW5kIHNob3VsZCBiZSBhdHRhY2hlZCB0byBlbmdpbmVcclxuICAgIGlmIChjb2xsZWN0aW9uLmlzRWRpdGVkKCkgfHwgaXNFZGl0ZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubXRBcGkuYWRkKHRoaXMuZW5naW5lSWQsIGNvbGxlY3Rpb24pXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICB0YXAoKHVwZGF0ZWRDb2xsZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24udXBkYXRlKHVwZGF0ZWRDb2xsZWN0aW9uKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gb2YoY29sbGVjdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICpcclxuICogQHJldHVybnMgc2VsZWN0ZWQgY29sbGVjdGlvbiBpZCBpZiBpdCBpcyBhbGxvd2VkIHRvIHVzZSBjb2xsZWN0aW9uIGZvciB0cmFuc2xhdGlvbnNcclxuICovXHJcbiAgc2VsZWN0ZWRJZEZvclRyYW5zbGF0aW9uKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZD8ubXRDb2xsZWN0aW9uICYmICh0aGlzLnNlbGVjdGVkLm10Q29sbGVjdGlvbi5sYXN0VXBkYXRlZCB8fCB0aGlzLnNlbGVjdGVkLm10Q29sbGVjdGlvbj8uc3RhdHVzID09PSBNdENvbGxlY3Rpb25TdGF0dXMuUkVBRFkpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLm10Q29sbGVjdGlvbj8uaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHN0YXJ0QXV0b1JlZnJlc2goZW5naW5lSWQ/OiBzdHJpbmcsIGxhbmd1YWdlczogc3RyaW5nW10gPSBudWxsLCBzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UgPSBmYWxzZSwgdGVybUNvbGxlY3Rpb25zID0gdHJ1ZSwgbXRDb2xsZWN0aW9ucyA9IHRydWUpIHtcclxuICAgIHRoaXMuaGFyZEF1dG9SZWZyZXNoID0gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLnNldEVuZ2luZShlbmdpbmVJZCA/PyB0aGlzLmVuZ2luZUlkLCBsYW5ndWFnZXMgPz8gdGhpcy5lbmdpbmVMYW5ndWFnZXMsIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSwgdGVybUNvbGxlY3Rpb25zLCBtdENvbGxlY3Rpb25zKTtcclxuICB9XHJcblxyXG4gIHN0b3BBdXRvUmVmcmVzaCgpIHtcclxuICAgIHRoaXMuY2xlYXJUaW1lb3V0KCk7XHJcblxyXG4gICAgdGhpcy5pc1NvZnRBdXRvUmVmcmVzaE9uID0gZmFsc2U7XHJcbiAgICB0aGlzLmhhcmRBdXRvUmVmcmVzaCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTXRDb2xsZWN0aW9uKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbiwgZW5naW5lSWQgPSB0aGlzLmVuZ2luZUlkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdEFwaS5yZW1vdmUoZW5naW5lSWQsIGNvbGxlY3Rpb24pLnBpcGUoXHJcbiAgICAgIHRhcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShyZXNwb25zZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc3luYyhjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24sIGVuZ2luZUlkID0gdGhpcy5lbmdpbmVJZCk6IE9ic2VydmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5tdEFwaS5zeW5jKGVuZ2luZUlkLCBjb2xsZWN0aW9uKS5cclxuICAgICAgcGlwZSh0YXAoKHVwZGF0ZWRDb2xsZWN0aW9uKSA9PiB7IGNvbGxlY3Rpb24udXBkYXRlKHVwZGF0ZWRDb2xsZWN0aW9uKSB9KSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2NoZWR1bGVSZWZyZXNoKHRpbWVvdXQ/OiBudW1iZXIpIHtcclxuICAgIC8vIGlmIG1lbnUgaXMgY2xvc2VkIGFuZCBzZWxlY3RlZCBjb2xsZWN0aW9uIGlzIG5vdCBpbXBvcnRpbmcgYW55bW9yZSAtIGF1dG8gcmVmcmVzaGluZyBzaG91bGQgYmUgY2FuY2VsbGVkLlxyXG4gICAgaWYgKCF0aGlzLmhhcmRBdXRvUmVmcmVzaCAmJiAhdGhpcy5zZWxlY3RlZD8uaXNJbXBvcnRpbmcgJiYgdGhpcy5pc1NvZnRBdXRvUmVmcmVzaE9uKSB7XHJcbiAgICAgIHRoaXMuc3RvcEF1dG9SZWZyZXNoKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiBoYXJkIGF1dG8gcmVmcmVzaG8gb24sIGF1dG8gcmVmcmVzaCBzaG91bGQgYmUgb24uIElmIGhhcmQgYXV0b3JlZmVyZXNoIGlzIG9mZiAsIHJlZnJlc2ggbmVlZHMgdG8gYmUgZG9uZSBvbmx5IGlmIHNlbGVjdGVkIGlzIGltcG9ydGluZy5cclxuICAgIGlmICh0aGlzLmhhcmRBdXRvUmVmcmVzaCB8fCAoIXRoaXMucmVmcmVzaFRpbWVvdXQgJiYgKHRoaXMuaXNTb2Z0QXV0b1JlZnJlc2hPbiB8fCB0aGlzLnNlbGVjdGVkPy5pc0ltcG9ydGluZykpKSB7XHJcbiAgICAgIGNvbnN0IHRpbWVvdXRNcyA9IHRpbWVvdXQgPz8gKHRoaXMuaXNBbnlJbXBvcnRpbmcgPyB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLnJlZnJlc2hUaW1lb3V0TXNXaGVuSW1wb3J0aW5nIDogdGhpcy5jb25maWcudGVybUNvbmZpZy5yZWZyZXNoVGltZW91dE1zKTtcclxuICAgICAgdGhpcy5yZWZyZXNoVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFRpbWVvdXQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaENvbGxlY3Rpb25zKClcclxuICAgICAgfSwgdGltZW91dE1zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG5ld0NvbGxlY3Rpb25zXHJcbiAgICogQHBhcmFtIGluaXRpYWxSZWZyZXNoIFdoZXRoZXIgYWxzbyBlZGl0YWJsZSBjb2xsZWN0aW9uIGZpZWxkcyBzaG91bGQgYmUgdXBkYXRlZC4gSWYgbm90IGluaXRpYWwgcmVmcmVzaCwgZWRpdGFibGUgZmllbGRzIHdpbGwgbm90IGJlIHVwZGF0ZWQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRDb2xsZWN0aW9ucyhuZXdDb2xsZWN0aW9uczogSXRlcmFibGU8Q29tYmluZWRDb2xsZWN0aW9uPiwgaW5pdGlhbFJlZnJlc2g6IGJvb2xlYW4pIHtcclxuICAgIC8vIHNldHMgY29sbGVjdGlvbiBsaXN0IHRvIHRoaXMgdmFsdWUgYXQgdGhlIGVuZCwgc28gZGVsZXRlZCBjb2xsZWN0aW9ucyBhcmUgbm90IGluIHRoZSBsaXN0LlxyXG4gICAgZm9yIChsZXQgY29sbGVjdGlvbiBvZiBuZXdDb2xsZWN0aW9ucykge1xyXG4gICAgICAvLyBVc2VyIHNob3VsZG4ndCBzZWUgZmFpbGVkIGNvbGxlY3Rpb25zIGlmIGhlIGNhbid0IHJldHJ5IHRvIGltcG9ydCB0aGVtLlxyXG4gICAgICBpZiAoIXRoaXMuaGFzRWRpdFBlcm1pc3Npb25zXHJcbiAgICAgICAgJiYgY29sbGVjdGlvbi5tdFN0YXR1cyA9PT0gTXRDb2xsZWN0aW9uU3RhdHVzLkVSUk9SKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjb2xsZWN0aW9uLmlzSW1wb3J0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5pc0FueUltcG9ydGluZyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGV4aXN0aW5nOiBDb21iaW5lZENvbGxlY3Rpb24gPSBDb21iaW5lZENvbGxlY3Rpb24uZmluZEV4aXN0aW5nQ29sbGVjdGlvbkZyb21MaXN0KHRoaXMuY29sbGVjdGlvbnMsIGNvbGxlY3Rpb24pO1xyXG5cclxuICAgICAgLy8gSWYgdGVybSBhcGkgZG9lc24ndCBoYXZlIGVuZ2luZSBsYW5ndWFnZXMsIGNvbGxlY3Rpb24gc2hvdWxkIG5vdCBiZSBzaG93biAoaWYgaXQgaXMgbm90IGFscmVhZHkgaW1wb3J0ZWQgc29tZWhvdyk7XHJcbiAgICAgIGlmICghZXhpc3RpbmcgJiYgY29sbGVjdGlvbi5zb3VyY2UgPT09IEVuZ2luZVRlcm1Db2xsZWN0aW9uU291cmNlLlRJTERFX1RFUk0pIHtcclxuICAgICAgICBsZXQgaGFzTGFuZ3VhZ2VzID0gdHJ1ZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZW5naW5lTGFuZ3VhZ2VzPy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKCFjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uLmxhbmd1YWdlcz8uZmluZChsYW5nID0+IGxhbmcuaWQgPT09IHRoaXMuZW5naW5lTGFuZ3VhZ2VzW2ldKSkge1xyXG4gICAgICAgICAgICBoYXNMYW5ndWFnZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWhhc0xhbmd1YWdlcykge1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIWV4aXN0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5fY29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGV4aXN0aW5nLnVwZGF0ZShjb2xsZWN0aW9uLCBpbml0aWFsUmVmcmVzaCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLl9jb2xsZWN0aW9ucyA9IHVwZGF0ZWRDb2xsZWN0aW9ucztcclxuICAgIHRoaXMuZW1pdERhdGFVcGRhdGVFdmVudCgpO1xyXG4gICAgdGhpcy5faGFzQW55Q29sbGVjdGlvbnMgPSB0aGlzLl9jb2xsZWN0aW9ucy5zaXplID4gMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgcmVmcmVzaCB0byBjaGVjayBpZiB0aGVyZSBpcyBhbnkgY29sbGVjdGlvbnMgZnJvbSBhcGkgdGhhdCBhcmUgZGVsZXRlZC5cclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZURlbGV0ZWQodGVybVJlc3BvbnNlOiBDb21iaW5lZENvbGxlY3Rpb25bXSwgbXRSZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW10sIGluaXRpYWxSZWZyZXNoOiBib29sZWFuKSB7XHJcblxyXG4gICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIHRoaXMuY29sbGVjdGlvbnMpIHtcclxuICAgICAgY29uc3QgdGVybUV4aXN0aW5nSXggPSBDb21iaW5lZENvbGxlY3Rpb24uZmluZEV4aXN0aW5nSW5kZXhGcm9tTGlzdCh0ZXJtUmVzcG9uc2UsIGNvbGxlY3Rpb24pO1xyXG4gICAgICBjb25zdCBtdEV4aXN0aW5nSXggPSBDb21iaW5lZENvbGxlY3Rpb24uZmluZEV4aXN0aW5nSW5kZXhGcm9tTGlzdChtdFJlc3BvbnNlLCBjb2xsZWN0aW9uKTtcclxuICAgICAgaWYgKHRlcm1FeGlzdGluZ0l4ID09PSBudWxsICYmIG10RXhpc3RpbmdJeCA9PT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMuZGVsZXRlKGNvbGxlY3Rpb24pO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkID09PSBjb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHRlcm1FeGlzdGluZ0l4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb25zdCBleGlzdGluZyA9IHRlcm1SZXNwb25zZVt0ZXJtRXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZywgaW5pdGlhbFJlZnJlc2gpO1xyXG4gICAgICAgICAgdGVybVJlc3BvbnNlLnNwbGljZSh0ZXJtRXhpc3RpbmdJeCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29sbGVjdGlvbi5kZWxldGVUZXJtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG10RXhpc3RpbmdJeCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBtdFJlc3BvbnNlW210RXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZywgaW5pdGlhbFJlZnJlc2gpO1xyXG4gICAgICAgICAgbXRSZXNwb25zZS5zcGxpY2UobXRFeGlzdGluZ0l4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLmRlbGV0ZU1UKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyVGltZW91dCgpIHtcclxuICAgIGlmICh0aGlzLnJlZnJlc2hUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlZnJlc2hUaW1lb3V0KTtcclxuICAgICAgdGhpcy5yZWZyZXNoVGltZW91dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgIC8vIElmIG5vIGNvbGxlY3Rpb25zIG9yIHNlbGVjdGVkIGlzIGFscmVhZHkgc2V0LCBpdCBzaG91bGQgbm90IGJlIGNoYW5nZWQgZnJvbSBsb2NhbHN0b3JhZ2UgdmFsdWUuIChVc3VhbGx5LCBsb2NhbHN0b3JhZ2Ugc2hvdWxkIGhhdmUgdGhlIHNhbWUgdmFsdWUpLlxyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbnM/LnNpemUgPT09IDAgfHwgdGhpcy5zZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdG9yZWRJZCA9IHRoaXMucmVhZExvY2FsU3RvcmFnZSgpPy5bdGhpcy5lbmdpbmVJZF07XHJcbiAgICBpZiAoIXN0b3JlZElkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBleGlzdGluZyA9IEFycmF5LmZyb20odGhpcy5jb2xsZWN0aW9ucykuZmluZChpdGVtID0+IGl0ZW0udGVybUNvbGxlY3Rpb24/LmlkID09PSBzdG9yZWRJZCB8fCBpdGVtLm10Q29sbGVjdGlvbj8uaWQgPT09IHN0b3JlZElkKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBleGlzdGluZztcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGxldCBsb2NhbFN0b3JhZ2VPYmplY3QgPSB0aGlzLnJlYWRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIGlmICghbG9jYWxTdG9yYWdlT2JqZWN0KSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZU9iamVjdCA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGxvY2FsU3RvcmFnZU9iamVjdFt0aGlzLmVuZ2luZUlkXSA9IHRoaXMuc2VsZWN0ZWQgPyAodGhpcy5zZWxlY3RlZC50ZXJtQ29sbGVjdGlvbj8uaWQgPz8gdGhpcy5zZWxlY3RlZC5tdENvbGxlY3Rpb24/LmlkKSA6IG51bGw7XHJcbiAgICAvLyBzdG9yZSB0ZXJtIGlkIGlmIGl0IGV4aXN0c1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5MT0NBTF9TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkobG9jYWxTdG9yYWdlT2JqZWN0KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRMb2NhbFN0b3JhZ2UoKTogYW55IHtcclxuICAgIGNvbnN0IGRhdGEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkxPQ0FMX1NUT1JBR0VfS0VZKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2gge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdERhdGFVcGRhdGVFdmVudCgpIHtcclxuICAgIHRoaXMub25EYXRhVXBkYXRlLm5leHQodGhpcy5jb2xsZWN0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==