@tilde-nlp/ngx-translate 4.0.39 → 4.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/modules/tld-common/models/configs/tld-translate-text-config.model.mjs +1 -1
- package/esm2022/lib/modules/tld-common/services/tld-translate-config.service.mjs +3 -2
- package/esm2022/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.mjs +1 -1
- package/esm2022/lib/modules/tld-tooltip/translation-system-picker/translation-system-picker.component.mjs +1 -1
- package/esm2022/lib/tld-translate.component.mjs +7 -2
- package/fesm2022/tilde-nlp-ngx-translate.mjs +10 -4
- package/fesm2022/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/lib/modules/tld-common/models/configs/tld-translate-text-config.model.d.ts +2 -0
- package/package.json +1 -1
- package/src/assets/webcomponent/tld-translate.js +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRsZFRyYW5zbGF0ZVRleHRDb25maWcge1xyXG4gIGRpY3Rpb25hcnlVcmw/OiBzdHJpbmc7XHJcbiAgbWF4Q2hhckxlbmd0aD86IG51bWJlcjtcclxuICBzaG93QXV0aEV4dGVuc2lvbnM/OiBib29sZWFuO1xyXG4gIHNob3dBdmFpbGFibGVFeHRlbnNpb25zPzogYm9vbGVhbjtcclxuICB0cmFuc2xhdGlvblVybD86IHN0cmluZztcclxuICB1cGRhdGVUcmFuc2xhdGlvblVybD86IHN0cmluZztcclxuICB1c2VEaWN0aW9uYXJ5PzogYm9vbGVhbjtcclxuICB3ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeD86IHN0cmluZztcclxuICB3ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeD86IHN0cmluZztcclxuICBhdXRvRm9jdXNzPzogYm9vbGVhbjtcclxuICBzaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHk/OiBib29sZWFuO1xyXG4gIHNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcD86IGJvb2xlYW47XHJcbiAgYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24/OiBib29sZWFuO1xyXG4gIC8qKiBQb3NzaWJpbGl0eSB0byBtYWtlIHN1Z2dlc3Rpb24gZm9yIHRyYW5zbGF0ZWQgdGV4dC4gSW4gVUkgc2hvd3MgXCJTdWdnZXN0IHRyYW5zbGF0aW9uXCIgYnV0dG9uIHVuZGVyIHRhcmdldCB0ZXh0LiAqL1xyXG4gIHNob3dTdWdnZXN0aW9ucz86IGJvb2xlYW47XHJcbiAgLyoqIEF1dG9tYXRpY2FsbHkgcmVkaXJlY3QgdG8gd2ViIHRyYW5zbGF0ZSBvbiB1cmwgaW5wdXQuICovXHJcbiAgYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGU/OiBib29sZWFuO1xyXG4gIC8qKiBXb3JkIGhpZ2hsaWdodGluZyAqL1xyXG4gIGhpZ2hsaWdodD86IGJvb2xlYW47XHJcbiAgLyoqIEFwaSBWMiBzdXBwb3J0cyBncmFtbWFyIGNoZWsuIFNldCB0byB0cnVlIHRvIGVuYWJsZSBncmFtbWFyIGNoZWNrLiAgICovXHJcbiAgY2hlY2tTb3VyY2VHcmFtbWFyPzogYm9vbGVhbjtcclxuICAvKiogQXBpIFYyLiBTb3VyY2UgbGFuZ3VhZ2VzIGZvciB3aGljaCBzaG91bGQgY2hlY2sgZ3JhbW1hci4gKi9cclxuICBncmFtbWFyQ2hlY2tMYW5ndWFnZXM/OiBzdHJpbmdbXTtcclxuICAvKiogU2hvdyB0YXJnZXQgY29udGFpbmVyIGxhYmVscyAqL1xyXG4gIHNob3dUYXJnZXRQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAvKiogU2hvdyBidXR0b24gdG8gb3BlbiBkaWFsb2cgdGhhdCBkZXNjcmliZXMgYWxsIGV4dGVuc2lvbnMgKi9cclxuICBzaG93RXh0ZW5zaW9uUG9wdXA/OiBib29sZWFuO1xyXG4gIC8qKiBIb3cgbWFueSBleHRlbnNpb2lucyBzaG91bGQgYmUgc3dvbiBvbiBmaWxlIGlucHV0IGJ1dHRvbiB0ZXh0ICovXHJcbiAgdmlzaWJsZUV4dGVuc2lvbkNvdW50PzogbnVtYmVyO1xyXG4gIC8qKiBTaG91bGQgc291cmNlIGFjdGlvbnMgYmUgYWx3YXlzIHNob3duIG9yIG1vYmlsZSBvciBoaWRkZW4gd2hlbiBhbnkgc291cmNlIHRleHQgaGFzIGJlZW4gZW50ZXJlZCAqL1xyXG4gIGhpZGVTb3VyY2VBY3Rpb25zV2hlbkhhc1RleHRNb2JpbGU/OiBib29sZWFuO1xyXG4gIC8qKiBBZnRlciBob3cgbWFueSBtaWxpc2Vjb25kcyBzaG91bGQgc2hvdyBwcm9ncmVzcyBpbmRpY2F0b3IgLSBwcm9ncmVzcyBiYXIgYW5kIHZlbmRvciBpZGVudGlmaWNhdGlvbiBpbiB0YXJnZXQgZmllbGQuIFNldCB2YWx1ZSB0byBudWxsLCB0byBkaXNhYmxlIGluZGljYXRvciBmcm9tIHNob3dpbmcgdXAuICovXHJcbiAgcHJvZ3Jlc3NJbmRpY2F0b3JUaW1lb3V0TWlsaVNlY29uZHM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRsZFRyYW5zbGF0ZVRleHRDb25maWcge1xyXG4gIGRpY3Rpb25hcnlVcmw/OiBzdHJpbmc7XHJcbiAgbWF4Q2hhckxlbmd0aD86IG51bWJlcjtcclxuICBzaG93QXV0aEV4dGVuc2lvbnM/OiBib29sZWFuO1xyXG4gIHNob3dBdmFpbGFibGVFeHRlbnNpb25zPzogYm9vbGVhbjtcclxuICB0cmFuc2xhdGlvblVybD86IHN0cmluZztcclxuICB1cGRhdGVUcmFuc2xhdGlvblVybD86IHN0cmluZztcclxuICB1c2VEaWN0aW9uYXJ5PzogYm9vbGVhbjtcclxuICB3ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeD86IHN0cmluZztcclxuICB3ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeD86IHN0cmluZztcclxuICBhdXRvRm9jdXNzPzogYm9vbGVhbjtcclxuICBzaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHk/OiBib29sZWFuO1xyXG4gIHNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcD86IGJvb2xlYW47XHJcbiAgYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24/OiBib29sZWFuO1xyXG4gIC8qKiBQb3NzaWJpbGl0eSB0byBtYWtlIHN1Z2dlc3Rpb24gZm9yIHRyYW5zbGF0ZWQgdGV4dC4gSW4gVUkgc2hvd3MgXCJTdWdnZXN0IHRyYW5zbGF0aW9uXCIgYnV0dG9uIHVuZGVyIHRhcmdldCB0ZXh0LiAqL1xyXG4gIHNob3dTdWdnZXN0aW9ucz86IGJvb2xlYW47XHJcbiAgLyoqIEF1dG9tYXRpY2FsbHkgcmVkaXJlY3QgdG8gd2ViIHRyYW5zbGF0ZSBvbiB1cmwgaW5wdXQuICovXHJcbiAgYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGU/OiBib29sZWFuO1xyXG4gIC8qKiBXb3JkIGhpZ2hsaWdodGluZyAqL1xyXG4gIGhpZ2hsaWdodD86IGJvb2xlYW47XHJcbiAgLyoqIEFwaSBWMiBzdXBwb3J0cyBncmFtbWFyIGNoZWsuIFNldCB0byB0cnVlIHRvIGVuYWJsZSBncmFtbWFyIGNoZWNrLiAgICovXHJcbiAgY2hlY2tTb3VyY2VHcmFtbWFyPzogYm9vbGVhbjtcclxuICAvKiogQXBpIFYyLiBTb3VyY2UgbGFuZ3VhZ2VzIGZvciB3aGljaCBzaG91bGQgY2hlY2sgZ3JhbW1hci4gKi9cclxuICBncmFtbWFyQ2hlY2tMYW5ndWFnZXM/OiBzdHJpbmdbXTtcclxuICAvKiogU2hvdyB0YXJnZXQgY29udGFpbmVyIGxhYmVscyAqL1xyXG4gIHNob3dUYXJnZXRQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAvKiogU2hvdyBidXR0b24gdG8gb3BlbiBkaWFsb2cgdGhhdCBkZXNjcmliZXMgYWxsIGV4dGVuc2lvbnMgKi9cclxuICBzaG93RXh0ZW5zaW9uUG9wdXA/OiBib29sZWFuO1xyXG4gIC8qKiBIb3cgbWFueSBleHRlbnNpb2lucyBzaG91bGQgYmUgc3dvbiBvbiBmaWxlIGlucHV0IGJ1dHRvbiB0ZXh0ICovXHJcbiAgdmlzaWJsZUV4dGVuc2lvbkNvdW50PzogbnVtYmVyO1xyXG4gIC8qKiBTaG91bGQgc291cmNlIGFjdGlvbnMgYmUgYWx3YXlzIHNob3duIG9yIG1vYmlsZSBvciBoaWRkZW4gd2hlbiBhbnkgc291cmNlIHRleHQgaGFzIGJlZW4gZW50ZXJlZCAqL1xyXG4gIGhpZGVTb3VyY2VBY3Rpb25zV2hlbkhhc1RleHRNb2JpbGU/OiBib29sZWFuO1xyXG4gIC8qKiBBZnRlciBob3cgbWFueSBtaWxpc2Vjb25kcyBzaG91bGQgc2hvdyBwcm9ncmVzcyBpbmRpY2F0b3IgLSBwcm9ncmVzcyBiYXIgYW5kIHZlbmRvciBpZGVudGlmaWNhdGlvbiBpbiB0YXJnZXQgZmllbGQuIFNldCB2YWx1ZSB0byBudWxsLCB0byBkaXNhYmxlIGluZGljYXRvciBmcm9tIHNob3dpbmcgdXAuICovXHJcbiAgcHJvZ3Jlc3NJbmRpY2F0b3JUaW1lb3V0TWlsaVNlY29uZHM/OiBudW1iZXI7XHJcbiAgLyoqIEZvciB3aGljaCB2ZW5kb3JzIHRpdGxlIGlzIHZpc2libGUgaW4gdGV4dCB0cmFuc2xhdGlvbiBwcm9ncmVzcyBpbmRpY2F0b3IgbWVzc2FnZS4qL1xyXG4gIHByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycz86IHN0cmluZ1tdO1xyXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgbG9hZGVyIGluIHRoZSBib3R0b20gb2YgdGFyZ2V0IHdpbmRvdyBhZnRlciBjb25maWd1cmVkIHRpbWVvdXQuICovXHJcbiAgcHJvZ3Jlc3NJbmRpY2F0b3JWaXNpYmxlPzogYm9vbGVhbjtcclxuICAvKiogSWYgaXQgaXMgbmVjZXNzYXJ5IHRvIGhpZGUgdGhlIFRyYW5zbGF0aW9uIGJ1dHRvbiBpbiB0aGUgc3dpdGNoZXIsIHNldCB0aGlzIHRvIFwiZmFsc2UuXCIgKi9cclxuICBzaG93VHJhbnNsYXRlQnV0dG9uPzogYm9vbGVhbjtcclxuICAvKiogSWYgaXQgaXMgbmVjZXNzYXJ5IHRvIGRpc3BsYXkgZG9tYWlucyBpbiB0aGUgc3dpdGNoZXIgd2hlbiBvbmx5IG9uZSBkb21haW4gaXMgYXZhaWxhYmxlLCBzZXQgdGhpcyB0byBcInRydWUuXCIgKi9cclxuICBkaXNwbGF5U2luZ2xlQXZhaWxhYmxlRG9tYWluPzogYm9vbGVhbjtcclxuICAvKiogU2V0IHRoaXMgdG8gZmFsc2UsIHRvIGhpZGUgdGhlIERldGVjdCBsYW5ndWFnZSBvcHRpb24uICovXHJcbiAgaXNBdXRvTGFuZ3VhZ2VEZXRlY3Rpb25FbmFibGVkPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
|
|
@@ -91,7 +91,7 @@ export class TldTranslateConfigService {
|
|
|
91
91
|
this._coreConfig.showDomainsWithLanguageName = core?.showDomainsWithLanguageName || false;
|
|
92
92
|
this._coreConfig.showDomains = core?.showDomains ?? true;
|
|
93
93
|
this._coreConfig.defaultVendor = core?.defaultVendor ?? "Tilde";
|
|
94
|
-
this._coreConfig.defaultSystemId = core?.defaultSystemId ?? 'AUTO';
|
|
94
|
+
this._coreConfig.defaultSystemId = core?.defaultSystemId ?? (text?.isAutoLanguageDetectionEnabled ? 'AUTO' : null);
|
|
95
95
|
this._coreConfig.showDomainTitle = core?.showDomainTitle;
|
|
96
96
|
this._coreConfig.domainSide = core?.domainSide ?? "trg";
|
|
97
97
|
this._coreConfig.swapIconPosition = core?.swapIconPosition ?? "src";
|
|
@@ -158,6 +158,7 @@ export class TldTranslateConfigService {
|
|
|
158
158
|
this._textConfig.progressIndicatorVisible = text?.progressIndicatorVisible ?? false;
|
|
159
159
|
this._textConfig.showTranslateButton = text?.showTranslateButton ?? true;
|
|
160
160
|
this._textConfig.displaySingleAvailableDomain = text?.displaySingleAvailableDomain ?? false;
|
|
161
|
+
this._textConfig.isAutoLanguageDetectionEnabled = text?.isAutoLanguageDetectionEnabled ?? true;
|
|
161
162
|
this._audioConfig.audioTextInput = audio?.audioTextInput ?? false;
|
|
162
163
|
// Not setting default url because there is no service provided by Tilde and this is not used by default in website project.
|
|
163
164
|
this._audioConfig.audioApiUrl = audio?.audioApiUrl;
|
|
@@ -219,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
219
220
|
type: Inject,
|
|
220
221
|
args: [TLD_TRANSLATE_CONFIG_TOKEN]
|
|
221
222
|
}] }]; } });
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyx5QkFBeUI7SUFFZ0M7SUFDRDtJQURuRSxZQUFvRSxVQUFpQyxFQUNsQyxNQUEyQjtRQUQxQixlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUM1RixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVcsR0FBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMvRSxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVPLFdBQVcsR0FBNEIsRUFBRSxDQUFDO0lBQ2xELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU8sV0FBVyxHQUE0QixFQUFFLENBQUM7SUFDbEQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lB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QUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7YUFDN0s7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLEVBQUUsbUJBQW1CLElBQUk7WUFDbEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJ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ZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgVExEX1RSQU5TTEFURV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zL3RsZC10cmFuc2xhdGUtY29uZmlnLnRva2VuJztcclxuaW1wb3J0IHsgSVRsZFRleHRUb1NwZWVjaENvbmZpZywgbGFuZ3VhZ2VNZW51VmVyc2lvbiB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IElUbGRBdWRpb0NvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC1hdWRpby1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVGVybUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10ZXJtLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVBcGlWMkNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtYXBpLXYyLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVDb3JlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1jb3JlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVGaWxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1maWxlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVUZXh0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVXZWJzaXRlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS13ZWItY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25BcGlWZXJzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvcmUvdHJhbnNsYXRpb24tYXBpLXZlcnNpb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgYXBpVmVyc2lvbjogVHJhbnNsYXRpb25BcGlWZXJzaW9uLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUTERfVFJBTlNMQVRFX0NPTkZJR19UT0tFTikgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IElUbGRUcmFuc2xhdGVDb25maWcpIHtcclxuICAgIHRoaXMuaW5pdENvbmZpZ3MoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvcmVDb25maWc6IElUbGRUcmFuc2xhdGVDb3JlQ29uZmlnID0geyBhcHBJZDogbnVsbCwgY2xpZW50SWQ6IG51bGwgfTtcclxuICBnZXQgY29yZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb3JlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGV4dENvbmZpZzogSVRsZFRyYW5zbGF0ZVRleHRDb25maWcgPSB7fTtcclxuICBnZXQgdGV4dENvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0Q29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsZUNvbmZpZzogSVRsZFRyYW5zbGF0ZUZpbGVDb25maWcgPSB7fTtcclxuICBnZXQgZmlsZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9maWxlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfd2VidHJhbnNsYXRlQ29uZmlnOiBJVGxkVHJhbnNsYXRlV2Vic2l0ZUNvbmZpZyA9IHt9O1xyXG4gIGdldCB3ZWJ0cmFuc2xhdGVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGVybUNvbmZpZzogSVRsZFRlcm1Db25maWcgPSB7fTtcclxuICBnZXQgdGVybUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXJtQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXBpVjJDb25maWc6IElUbGRUcmFuc2xhdGVBcGlWMkNvbmZpZyA9IHt9O1xyXG4gIGdldCBhcGlWMkNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9hcGlWMkNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2F1ZGlvQ29uZmlnOiBJVGxkQXVkaW9Db25maWcgPSB7IGFwcElkOiBudWxsLCBhcHBTZWNyZXQ6IG51bGwgfTtcclxuICBnZXQgYXVkaW9Db25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9Db25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90ZXh0VG9TcGVlY2hDb25maWc6IElUbGRUZXh0VG9TcGVlY2hDb25maWcgPSB7fTtcclxuICBnZXQgdGV4dFRvU3BlZWNoQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZztcclxuICB9XHJcblxyXG4gIGluaXRDb25maWdzKGNvbmZpZ3VyYXRpb24/OiBJVGxkVHJhbnNsYXRlQ29uZmlnKSB7XHJcbiAgICBjb25zdCBjb25maWcgPSBjb25maWd1cmF0aW9uID8/IHRoaXMuY29uZmlnID8/IHt9O1xyXG5cclxuICAgIGNvbnN0IGNvcmUgPSBjb25maWc/LmNvcmU7XHJcbiAgICBjb25zdCBmaWxlID0gY29uZmlnPy5maWxlO1xyXG4gICAgY29uc3QgdGV4dCA9IGNvbmZpZz8udGV4dDtcclxuICAgIGNvbnN0IGF1ZGlvID0gY29uZmlnPy5hdWRpbztcclxuICAgIGNvbnN0IHdlYnRyYW5zbGF0ZSA9IGNvbmZpZz8ud2ViVHJhbnNsYXRlO1xyXG4gICAgY29uc3QgdGVybUNvbmZpZyA9IGNvbmZpZz8udGVybTtcclxuICAgIGNvbnN0IGFwaVYyQ29uZmlnID0gY29uZmlnPy5hcGlWMjtcclxuICAgIGNvbnN0IHRleHRUb1NwZWVjaCA9IGNvbmZpZz8udGV4dFRvU3BlZWNoO1xyXG5cclxuICAgIHRoaXMuX2NvcmVDb25maWcgPSB7IGFwcElkOiBjb3JlPy5hcHBJZCwgY2xpZW50SWQ6IGNvcmU/LmNsaWVudElkIH07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFwaUlzSW5UaGVTYW1lRG9tYWluID0gY29yZT8uYXBpSXNJblRoZVNhbWVEb21haW4gfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFwcE5hbWUgPSBjb3JlPy5hcHBOYW1lIHx8IFwiVGlsZGUgTVRcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNBdXRoID0gY29yZT8uaXNBdXRoIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5qd3RBdXRoID0gY29yZT8uand0QXV0aCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRlQXBwTmFtZSA9IGNvcmU/LnRyYW5zbGF0ZUFwcE5hbWUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcucmVnaXN0ZXJMaW5rID0gY29yZT8ucmVnaXN0ZXJMaW5rIHx8IFwiaHR0cHM6Ly90aWxkZS5jb20vcHJvZHVjdHMtYW5kLXNlcnZpY2VzL21hY2hpbmUtdHJhbnNsYXRpb25cIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3VwcG9ydEVtYWlsID0gY29yZT8uc3VwcG9ydEVtYWlsIHx8IFwibXRAdGlsZGUubHZcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc291cmNlTGFuZ3VhZ2VPcmRlciA9IGNvcmU/LnNvdXJjZUxhbmd1YWdlT3JkZXIgfHwge1xyXG4gICAgICBlbjogW1wiZW5cIiwgXCJsdlwiLCBcInJ1XCIsIFwibHRcIiwgXCJldFwiLCBcImZpXCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgbHY6IFtcImVuXCIsIFwibHZcIiwgXCJydVwiLCBcImx0XCIsIFwiZXRcIiwgXCJmaVwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGx0OiBbXCJlblwiLCBcImx0XCIsIFwicnVcIiwgXCJsdlwiLCBcImV0XCIsIFwiZmlcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBldDogW1wiZW5cIiwgXCJldFwiLCBcImZpXCIsIFwicnVcIiwgXCJsdlwiLCBcImx0XCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZmk6IFtcImZpXCIsIFwiZW5cIiwgXCJldFwiLCBcInJ1XCIsIFwibHZcIiwgXCJsdFwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIHBsOiBbXCJwbFwiLCBcImVuXCIsIFwiZGVcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJsdFwiLCBcImZpXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBkZTogW1wiZW5cIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImZyXCIsIFwiZGVcIiwgXCJlbFwiLCBcImdhXCIsIFwiaXNcIiwgXCJpdFwiLCBcImhyXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwibXRcIiwgXCJubFwiLCBcIm5iXCIsIFwicGxcIiwgXCJwdFwiLCBcInB0LXB0XCIsIFwicm9cIiwgXCJzdlwiLCBcInNrXCIsIFwic2xcIiwgXCJlc1wiLCBcImNzXCIsIFwiaHVcIlxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy50YXJnZXRMYW5ndWFnZU9yZGVyID0gY29yZT8udGFyZ2V0TGFuZ3VhZ2VPcmRlciB8fCB7XHJcbiAgICAgIGVuOiBbXCJlblwiLCBcImx2XCIsIFwicnVcIiwgXCJsdFwiLCBcImV0XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBsdjogW1wiZW5cIiwgXCJsdlwiLCBcImx0XCIsIFwiZXRcIiwgXCJydVwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgbHQ6IFtcImVuXCIsIFwibHRcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGV0OiBbXCJlblwiLCBcImV0XCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBmaTogW1wiZXRcIiwgXCJmaVwiLCBcImVuXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgcGw6IFtcImVuXCIsIFwicGxcIiwgXCJkZVwiLCBcImx2XCIsIFwicnVcIiwgXCJldFwiLCBcImZpXCIsIFwibHRcIiwgXCJhclwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGRlOiBbXCJkZVwiLCBcImVuXCIsIFwiZnJcIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImVsXCIsIFwiZ2FcIiwgXCJpc1wiLCBcIml0XCIsIFwiaHJcIiwgXCJsdlwiLCBcImx0XCIsIFwicnVcIiwgXCJtdFwiLCBcIm5sXCIsIFwibmJcIiwgXCJwbFwiLCBcInB0XCIsIFwicHQtcHRcIiwgXCJyb1wiLCBcInN2XCIsIFwic2tcIiwgXCJzbFwiLCBcImVzXCIsIFwiY3NcIiwgXCJodVwiLCBcImFyXCJdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHMgPSBjb3JlPy5oaWRlTGFuZ01lbnVMYWJlbHMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dWZW5kb3JzID0gY29yZT8uc2hvd1ZlbmRvcnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVuYXV0aG9yaXplZFJlZGlyZWN0TGluayA9IGNvcmU/LnVuYXV0aG9yaXplZFJlZGlyZWN0TGluaztcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID0gY29yZT8ubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID8/IDM7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVwbG9hZEljb25OYW1lID0gY29yZT8udXBsb2FkSWNvbk5hbWU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlYnVnID0gY29yZT8uZGVidWc7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSA9IGNvcmU/LnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpbnMgPSBjb3JlPy5zaG93RG9tYWlucyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0VmVuZG9yID0gY29yZT8uZGVmYXVsdFZlbmRvciA/PyBcIlRpbGRlXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHRTeXN0ZW1JZCA9IGNvcmU/LmRlZmF1bHRTeXN0ZW1JZCA/PyAnQVVUTyc7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5UaXRsZSA9IGNvcmU/LnNob3dEb21haW5UaXRsZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZG9tYWluU2lkZSA9IGNvcmU/LmRvbWFpblNpZGUgPz8gXCJ0cmdcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3dhcEljb25Qb3NpdGlvbiA9IGNvcmU/LnN3YXBJY29uUG9zaXRpb24gPz8gXCJzcmNcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubGFuZ3VhZ2VNZW51VmVyc2lvbiA9IGNvcmU/Lmxhbmd1YWdlTWVudVZlcnNpb24gPz8gbGFuZ3VhZ2VNZW51VmVyc2lvbi5WMTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4UmVjZW50U3lzdGVtQ291bnQgPSBjb3JlPy5tYXhSZWNlbnRTeXN0ZW1Db3VudCA/PyA0O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0RG9tYWlucyA9IGNvcmU/LmRlZmF1bHREb21haW5zID8/IFtcIkdFTlwiLCBcImdlbmVyYWxcIl07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmNvbnRhY3RTdXBwb3J0ID0gY29yZT8uY29udGFjdFN1cHBvcnQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3Vic2NyaXB0aW9uU3VwcG9ydCA9IGNvcmU/LnN1YnNjcmlwdGlvblN1cHBvcnQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNXZWJDb21wb25lbnQgPSBjb3JlPy5pc1dlYkNvbXBvbmVudCA/PyBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZGVmYXVsdFRhcmdldExhbmd1YWdlID0gY29yZT8uZGVmYXVsdFRhcmdldExhbmd1YWdlID8/ICdsdic7XHJcblxyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzID0gZmlsZT8uYWxsb3dlZEZpbGVUeXBlcyB8fCBbXCIuZG9jXCIsIFwiLmRvY3hcIiwgXCIueGxzeFwiLCBcIi5wZGZcIiwgXCIucHB0eFwiLCBcIi5vZHRcIiwgXCIub2RwXCIsIFwiLm9kc1wiLCBcIi50eHRcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmV4dGVuZGVkRmlsZVR5cGVzID0gZmlsZT8uZXh0ZW5kZWRGaWxlVHlwZXNcclxuICAgICAgfHwgW1wiLmRvY1wiLCBcIi5kb2N4XCIsIFwiLnhsc3hcIiwgXCIucHB0eFwiLCBcIi5vZHRcIiwgXCIub2RwXCIsIFwiLm9kc1wiLCBcIi50eHRcIiwgXCIuaHRtbFwiLCBcIi5odG1cIixcclxuICAgICAgICBcIi54aHRtbFwiLCBcIi54aHRcIiwgXCIudG14XCIsIFwiLnhsZlwiLCBcIi54bGlmXCIsIFwiLnhsaWZmXCIsIFwiLnNkbHhsaWZmXCIsIFwiLnNkbHhsZlwiLCBcIi50dHhcIiwgXCIucnRmXCIsXHJcbiAgICAgICAgXCIucGFnZXNcIiwgXCIudGV4XCIsIFwiLnhtbFwiLCBcIi5qc29uXCIsIFwiLnN4d1wiLCBcIi5wZGZcIiwgXCIuY3N2XCIsIFwiLnR0bFwiLCBcIi5zcnRcIiwgXCIucG5nXCIsIFwiLmpwZ1wiLCBcIi5qcGVnXCIsIFwiLmJtcFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dUbXhBdXRoID0gZmlsZT8uYWxsb3dUbXhBdXRoID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93VG14VW5hdXRoID0gZmlsZT8uYWxsb3dUbXhVbmF1dGggPz8gZmFsc2U7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVBcGlVcmwgPSBmaWxlPy5maWxlQXBpVXJsIHx8IFwiaHR0cHM6Ly9sZXRzbXQuZXUvd3MvRmlsZXMvXCI7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzID0gZmlsZT8uZmlsZURvd25sb2FkVGltZW91dHNcclxuICAgICAgfHwge1xyXG4gICAgICBcImluaXRpYWxpemluZ1wiOiAxMDAwLFxyXG4gICAgICBcImV4dHJhY3RpbmdcIjogMTAwMCxcclxuICAgICAgXCJ3YWl0aW5nXCI6IDEwMDAwLFxyXG4gICAgICBcInRyYW5zbGF0aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwic2F2aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwiY29tcGxldGVkXCI6IDEwMDAsXHJcbiAgICAgIFwiZXJyb3JcIjogMTAwMCxcclxuICAgICAgXCJxdWV1aW5nXCI6IDEwMDBcclxuICAgIH07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm1heFNpemUgPSBmaWxlPy5tYXhTaXplIHx8IDMwNzIwMDAwO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy53b3JkTGltaXQgPSBmaWxlPy53b3JkTGltaXQgPz8gMTI1MDtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZmlsZVVwbG9hZCA9IGZpbGU/LmZpbGVVcGxvYWQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcub2NyUGFnZUxpbWl0ID0gZmlsZT8ub2NyUGFnZUxpbWl0ID8/IDE7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93UERGU291cmNlRG93bmxvYWQgPSBmaWxlPy5hbGxvd1BERlNvdXJjZURvd25sb2FkID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93SW1hZ2VTb3VyY2VEb3dubG9hZCA9IGZpbGU/LmFsbG93SW1hZ2VTb3VyY2VEb3dubG9hZCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnMgPSBmaWxlPy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnMgfHwgW1wicGRmXCIsIFwicG5nXCIsIFwianBnXCIsIFwianBlZ1wiLCBcImJtcFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcudGFyZ2V0RG93bmxvYWRFeHRlbnNpb25PcmRlciA9IGZpbGU/LnRhcmdldERvd25sb2FkRXh0ZW5zaW9uT3JkZXI7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm51bWJlck9mRmlsZXNBbGxvd2VkID0gZmlsZT8ubnVtYmVyT2ZGaWxlc0FsbG93ZWQgPiAwID8gZmlsZS5udW1iZXJPZkZpbGVzQWxsb3dlZCA6IDE7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnNob3dUcmFuc2xhdGlvbkxpbWl0cyA9IGZpbGU/LnNob3dUcmFuc2xhdGlvbkxpbWl0cyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy51c2VNdWx0aXBsZUZpbGVVcGxvYWQgPSBmaWxlPy51c2VNdWx0aXBsZUZpbGVVcGxvYWQ7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IGZpbGU/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcblxyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5kaWN0aW9uYXJ5VXJsID0gdGV4dD8uZGljdGlvbmFyeVVybCB8fCBcImh0dHBzOi8vbGV0c210LmV1L2FwaS9kaWN0aW9uYXJ5L0dldERpY3Rpb25hcnlFbnRyeS9cIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcubWF4Q2hhckxlbmd0aCA9IHRleHQ/Lm1heENoYXJMZW5ndGggPz8gNTAwMDtcclxuICAgIHRoaXMuX3RleHRDb25maWcud2ViV2lkZ2V0UmVkaXJlY3RVcmxQb3NmaXggPSB0ZXh0Py53ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeCB8fCBcIi93ZWJ0cmFuc2xhdGU/dXJsPVwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy53ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeCA9IHRleHQ/LndlYldpZGdldFJlZGlyZWN0VXJsUHJlZml4IHx8IFwiXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnVzZURpY3Rpb25hcnkgPSB0ZXh0Py51c2VEaWN0aW9uYXJ5ID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHRleHQ/LnNob3dBdmFpbGFibGVFeHRlbnNpb25zID09IG51bGwgPyB0cnVlIDogdGV4dC5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucztcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0F1dGhFeHRlbnNpb25zID0gdGV4dD8uc2hvd0F1dGhFeHRlbnNpb25zID09IG51bGwgPyB0cnVlIDogdGV4dC5zaG93QXV0aEV4dGVuc2lvbnM7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9Gb2N1c3MgPSB0ZXh0Py5hdXRvRm9jdXNzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHkgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHk7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcCA9IHRleHQ/LnNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcDtcclxuICAgIHRoaXMuX3RleHRDb25maWcuYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24gPSB0ZXh0Py5hbGxvd1dlYnNpdGVUcmFuc2xhdGlvbiA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93U3VnZ2VzdGlvbnMgPSB0ZXh0Py5zaG93U3VnZ2VzdGlvbnMgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9SZWRpcmVjdFRvV2ViVHJhbnNsYXRlID0gdGV4dD8uYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGUgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmhpZ2hsaWdodCA9IHRleHQ/LmhpZ2hsaWdodCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5jaGVja1NvdXJjZUdyYW1tYXIgPSB0ZXh0Py5jaGVja1NvdXJjZUdyYW1tYXIgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmdyYW1tYXJDaGVja0xhbmd1YWdlcyA9IHRleHQ/LmdyYW1tYXJDaGVja0xhbmd1YWdlcyA/PyBbXTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1RhcmdldFBsYWNlaG9sZGVyID0gdGV4dD8uc2hvd1RhcmdldFBsYWNlaG9sZGVyO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uUG9wdXAgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uUG9wdXA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnZpc2libGVFeHRlbnNpb25Db3VudCA9IHRleHQ/LnZpc2libGVFeHRlbnNpb25Db3VudCA/PyAzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5oaWRlU291cmNlQWN0aW9uc1doZW5IYXNUZXh0TW9iaWxlID0gdGV4dD8uaGlkZVNvdXJjZUFjdGlvbnNXaGVuSGFzVGV4dE1vYmlsZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpbWVvdXRNaWxpU2Vjb25kcyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGltZW91dE1pbGlTZWNvbmRzID8/IDIwMDA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1RyYW5zbGF0ZUJ1dHRvbiA9IHRleHQ/LnNob3dUcmFuc2xhdGVCdXR0b24gPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuZGlzcGxheVNpbmdsZUF2YWlsYWJsZURvbWFpbiA9IHRleHQ/LmRpc3BsYXlTaW5nbGVBdmFpbGFibGVEb21haW4gPz8gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXVkaW9UZXh0SW5wdXQgPSBhdWRpbz8uYXVkaW9UZXh0SW5wdXQgPz8gZmFsc2U7XHJcbiAgICAvLyBOb3Qgc2V0dGluZyBkZWZhdWx0IHVybCBiZWNhdXNlIHRoZXJlIGlzIG5vIHNlcnZpY2UgcHJvdmlkZWQgYnkgVGlsZGUgYW5kIHRoaXMgaXMgbm90IHVzZWQgYnkgZGVmYXVsdCBpbiB3ZWJzaXRlIHByb2plY3QuXHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hdWRpb0FwaVVybCA9IGF1ZGlvPy5hdWRpb0FwaVVybDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmF1ZGlvTWF4U2l6ZUJ5dGVzID0gYXVkaW8/LmF1ZGlvTWF4U2l6ZUJ5dGVzID8/IDEwMDAwMDAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuc291cmNlTGFuZ3VhZ2VzID0gYXVkaW8/LnNvdXJjZUxhbmd1YWdlcyA/PyBbXTtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmRhdGFVcGRhdGVUaW1lRnJhbWUgPSBhdWRpbz8uZGF0YVVwZGF0ZVRpbWVGcmFtZSA/PyA1MDAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcubWF4aW11bVJlY29yZFRpbWUgPSBhdWRpbz8ubWF4aW11bVJlY29yZFRpbWUgPz8gMzAwO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGljdGF0ZUFwaVVybCA9IGF1ZGlvPy5kaWN0YXRlQXBpVXJsID8/IFwicnVuYS50aWxkZS5sdlwiO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXBwSWQgPSBhdWRpbz8uYXBwSWQ7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hcHBTZWNyZXQgPSBhdWRpbz8uYXBwU2VjcmV0O1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcucHVuY3R1YXRpb25NZXNzYWdlID0gYXVkaW8/LnB1bmN0dWF0aW9uTWVzc2FnZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuZGlzYWJsZUF1dG9tYXRpY1RyYW5zbGF0aW9uID0gYXVkaW8/LmRpc2FibGVBdXRvbWF0aWNUcmFuc2xhdGlvbiA/PyB0cnVlO1xyXG5cclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5sb2dvTG9jYXRpb24gPSB3ZWJ0cmFuc2xhdGU/LmxvZ29Mb2NhdGlvbiB8fCAnYXNzZXRzL3dlYnRyYW5zbGF0ZS90aWxkZV9sb2dvLnBuZyc7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcudHJhbnNsYXRlUGFnZVBhdGggPSB3ZWJ0cmFuc2xhdGU/LnRyYW5zbGF0ZVBhZ2VQYXRoO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmRlYnVnID0gd2VidHJhbnNsYXRlPy5kZWJ1ZyB8fCBmYWxzZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy53ZWJMYW5nQXV0b2RldGVjdCA9IHdlYnRyYW5zbGF0ZT8ud2ViTGFuZ0F1dG9kZXRlY3QgfHwgdHJ1ZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5hbGxvd1N1Z2dlc3Rpb25zID0gd2VidHJhbnNsYXRlPy5hbGxvd1N1Z2dlc3Rpb25zIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmhpZGVQb3B1cCA9IHdlYnRyYW5zbGF0ZT8uaGlkZVBvcHVwIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLnNhbmRib3ggPSB3ZWJ0cmFuc2xhdGU/LnNhbmRib3ggPz8gXCJhbGxvdy1mb3JtcyBhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luXCI7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuYXBwSWQgPSB3ZWJ0cmFuc2xhdGU/LmFwcElkO1xyXG5cclxuICAgIHRoaXMuX3Rlcm1Db25maWcuY2FuQ3JlYXRlQ29sbGVjdGlvbiA9IHRlcm1Db25maWc/LmNhbkNyZWF0ZUNvbGxlY3Rpb247XHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQgPSB0ZXJtQ29uZmlnPy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkO1xyXG5cclxuICAgIC8vIHNlcGVyYXRlZCBiZWNhdXNlIGZvbGxvd2luZyB1cmxzIGhhdmUgbWV0aG9kIG5hbWVzIGFkZGVkXHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnRyYW5zbGF0aW9uU2VydmljZVVybCA9IGNvcmU/LnRyYW5zbGF0aW9uU2VydmljZVVybCB8fCBcImh0dHBzOi8vd3d3LmxldHNtdC5ldS93cy9zZXJ2aWNlLnN2Yy9qc29uL1wiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy50cmFuc2xhdGlvblVybCA9IHRleHQ/LnRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsICsgXCJUcmFuc2xhdGVFeFwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy51cGRhdGVUcmFuc2xhdGlvblVybCA9IHRleHQ/LnVwZGF0ZVRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsICsgXCJVcGRhdGVUcmFuc2xhdGlvblwiO1xyXG5cclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsID0gYXBpVjJDb25maWc/Lm10QXBpVXJsID8/IFwiYXBpL3RyYW5zbGF0ZS9cIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLnRyYW5zbGF0aW9uVXJsID0gYXBpVjJDb25maWc/LnRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsICsgXCJ0ZXh0XCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy5maWxlVHJhbnNsYXRpb25VcmwgPSBhcGlWMkNvbmZpZz8uZmlsZVRyYW5zbGF0aW9uVXJsID8/IHRoaXMuX2FwaVYyQ29uZmlnLm10QXBpVXJsICsgXCJmaWxlXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy5ncmFtbWFyQ2hlY2tVcmwgPSBhcGlWMkNvbmZpZz8uZ3JhbW1hckNoZWNrVXJsID8/IFwiaHR0cHM6Ly9tdC5jcy51dC5lZS9hcGkvZ3JhbW1hclwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcueEFwaUtleSA9IGFwaVYyQ29uZmlnPy54QXBpS2V5ID8/ICcnO1xyXG5cclxuICAgIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZy5sYW5ndWFnZXMgPSB0ZXh0VG9TcGVlY2g/Lmxhbmd1YWdlcyA/PyB7fTtcclxuICAgIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZy5tYXhDaGFyc0luVGV4dCA9IHRleHRUb1NwZWVjaD8ubWF4Q2hhcnNJblRleHQgPz8gMzAwMDtcclxuXHJcbiAgICB0aGlzLmVkaXRQcm9wZXJ0aWVzQmFzZWRPbkFwaSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG8gbWFrZSBzdXJlIG5lY2Vzc2FyeSBwcm9wZXJ0aWVzIGFyZSBub3QgdHVybmVkIG9uIGJlY2F1c2UgaW4gYXBpIFYyIHNvbWUgZmVhdHVyZXMgYXJlIG5vdCBpbXBsZW1uZW50ZWQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBlZGl0UHJvcGVydGllc0Jhc2VkT25BcGkoKSB7XHJcbiAgICBpZiAodGhpcy5hcGlWZXJzaW9uID09PSBUcmFuc2xhdGlvbkFwaVZlcnNpb24uVjIpIHtcclxuICAgICAgdGhpcy50ZXh0Q29uZmlnLnNob3dTdWdnZXN0aW9ucyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRleHRDb25maWcudXNlRGljdGlvbmFyeSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMvdGxkLXRyYW5zbGF0ZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBS3JGLE1BQU0sT0FBTyx5QkFBeUI7SUFFZ0M7SUFDRDtJQURuRSxZQUFvRSxVQUFpQyxFQUNsQyxNQUEyQjtRQUQxQixlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUM1RixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVcsR0FBNEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMvRSxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVPLFdBQVcsR0FBNEIsRUFBRSxDQUFDO0lBQ2xELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU8sV0FBVyxHQUE0QixFQUFFLENBQUM7SUFDbEQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lB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QUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDdEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN0RSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7YUFDN0s7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLEVBQUUsbUJBQW1CLElBQUk7WUFDbEUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDeEYsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUN4RixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hGLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJ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LFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR2MsTUFBTTsyQkFBQyw2QkFBNkI7OzBCQUM5QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgVExEX1RSQU5TTEFURV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9pbmplY3Rpb24tdG9rZW5zL3RsZC10cmFuc2xhdGUtY29uZmlnLnRva2VuJztcclxuaW1wb3J0IHsgSVRsZFRleHRUb1NwZWVjaENvbmZpZywgbGFuZ3VhZ2VNZW51VmVyc2lvbiB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IElUbGRBdWRpb0NvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC1hdWRpby1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBJVGxkVGVybUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10ZXJtLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVBcGlWMkNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9jb25maWdzL3RsZC10cmFuc2xhdGUtYXBpLXYyLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvY29uZmlncy90bGQtdHJhbnNsYXRlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVDb3JlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1jb3JlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVGaWxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS1maWxlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVUZXh0Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS10ZXh0LWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVXZWJzaXRlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3MvdGxkLXRyYW5zbGF0ZS13ZWItY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25BcGlWZXJzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvcmUvdHJhbnNsYXRpb24tYXBpLXZlcnNpb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgYXBpVmVyc2lvbjogVHJhbnNsYXRpb25BcGlWZXJzaW9uLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUTERfVFJBTlNMQVRFX0NPTkZJR19UT0tFTikgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IElUbGRUcmFuc2xhdGVDb25maWcpIHtcclxuICAgIHRoaXMuaW5pdENvbmZpZ3MoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvcmVDb25maWc6IElUbGRUcmFuc2xhdGVDb3JlQ29uZmlnID0geyBhcHBJZDogbnVsbCwgY2xpZW50SWQ6IG51bGwgfTtcclxuICBnZXQgY29yZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb3JlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGV4dENvbmZpZzogSVRsZFRyYW5zbGF0ZVRleHRDb25maWcgPSB7fTtcclxuICBnZXQgdGV4dENvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0Q29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsZUNvbmZpZzogSVRsZFRyYW5zbGF0ZUZpbGVDb25maWcgPSB7fTtcclxuICBnZXQgZmlsZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9maWxlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfd2VidHJhbnNsYXRlQ29uZmlnOiBJVGxkVHJhbnNsYXRlV2Vic2l0ZUNvbmZpZyA9IHt9O1xyXG4gIGdldCB3ZWJ0cmFuc2xhdGVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGVybUNvbmZpZzogSVRsZFRlcm1Db25maWcgPSB7fTtcclxuICBnZXQgdGVybUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXJtQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXBpVjJDb25maWc6IElUbGRUcmFuc2xhdGVBcGlWMkNvbmZpZyA9IHt9O1xyXG4gIGdldCBhcGlWMkNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9hcGlWMkNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2F1ZGlvQ29uZmlnOiBJVGxkQXVkaW9Db25maWcgPSB7IGFwcElkOiBudWxsLCBhcHBTZWNyZXQ6IG51bGwgfTtcclxuICBnZXQgYXVkaW9Db25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXVkaW9Db25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90ZXh0VG9TcGVlY2hDb25maWc6IElUbGRUZXh0VG9TcGVlY2hDb25maWcgPSB7fTtcclxuICBnZXQgdGV4dFRvU3BlZWNoQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RleHRUb1NwZWVjaENvbmZpZztcclxuICB9XHJcblxyXG4gIGluaXRDb25maWdzKGNvbmZpZ3VyYXRpb24/OiBJVGxkVHJhbnNsYXRlQ29uZmlnKSB7XHJcbiAgICBjb25zdCBjb25maWcgPSBjb25maWd1cmF0aW9uID8/IHRoaXMuY29uZmlnID8/IHt9O1xyXG5cclxuICAgIGNvbnN0IGNvcmUgPSBjb25maWc/LmNvcmU7XHJcbiAgICBjb25zdCBmaWxlID0gY29uZmlnPy5maWxlO1xyXG4gICAgY29uc3QgdGV4dCA9IGNvbmZpZz8udGV4dDtcclxuICAgIGNvbnN0IGF1ZGlvID0gY29uZmlnPy5hdWRpbztcclxuICAgIGNvbnN0IHdlYnRyYW5zbGF0ZSA9IGNvbmZpZz8ud2ViVHJhbnNsYXRlO1xyXG4gICAgY29uc3QgdGVybUNvbmZpZyA9IGNvbmZpZz8udGVybTtcclxuICAgIGNvbnN0IGFwaVYyQ29uZmlnID0gY29uZmlnPy5hcGlWMjtcclxuICAgIGNvbnN0IHRleHRUb1NwZWVjaCA9IGNvbmZpZz8udGV4dFRvU3BlZWNoO1xyXG5cclxuICAgIHRoaXMuX2NvcmVDb25maWcgPSB7IGFwcElkOiBjb3JlPy5hcHBJZCwgY2xpZW50SWQ6IGNvcmU/LmNsaWVudElkIH07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFwaUlzSW5UaGVTYW1lRG9tYWluID0gY29yZT8uYXBpSXNJblRoZVNhbWVEb21haW4gfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmFwcE5hbWUgPSBjb3JlPy5hcHBOYW1lIHx8IFwiVGlsZGUgTVRcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNBdXRoID0gY29yZT8uaXNBdXRoIHx8IGZhbHNlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5qd3RBdXRoID0gY29yZT8uand0QXV0aCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcudHJhbnNsYXRlQXBwTmFtZSA9IGNvcmU/LnRyYW5zbGF0ZUFwcE5hbWUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcucmVnaXN0ZXJMaW5rID0gY29yZT8ucmVnaXN0ZXJMaW5rIHx8IFwiaHR0cHM6Ly90aWxkZS5jb20vcHJvZHVjdHMtYW5kLXNlcnZpY2VzL21hY2hpbmUtdHJhbnNsYXRpb25cIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3VwcG9ydEVtYWlsID0gY29yZT8uc3VwcG9ydEVtYWlsIHx8IFwibXRAdGlsZGUubHZcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc291cmNlTGFuZ3VhZ2VPcmRlciA9IGNvcmU/LnNvdXJjZUxhbmd1YWdlT3JkZXIgfHwge1xyXG4gICAgICBlbjogW1wiZW5cIiwgXCJsdlwiLCBcInJ1XCIsIFwibHRcIiwgXCJldFwiLCBcImZpXCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgbHY6IFtcImVuXCIsIFwibHZcIiwgXCJydVwiLCBcImx0XCIsIFwiZXRcIiwgXCJmaVwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIGx0OiBbXCJlblwiLCBcImx0XCIsIFwicnVcIiwgXCJsdlwiLCBcImV0XCIsIFwiZmlcIiwgXCJwbFwiLCBcImRlXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBldDogW1wiZW5cIiwgXCJldFwiLCBcImZpXCIsIFwicnVcIiwgXCJsdlwiLCBcImx0XCIsIFwicGxcIiwgXCJkZVwiLCBcIml0XCIsIFwiYmdcIiwgXCJoclwiXSxcclxuICAgICAgZmk6IFtcImZpXCIsIFwiZW5cIiwgXCJldFwiLCBcInJ1XCIsIFwibHZcIiwgXCJsdFwiLCBcInBsXCIsIFwiZGVcIiwgXCJpdFwiLCBcImJnXCIsIFwiaHJcIl0sXHJcbiAgICAgIHBsOiBbXCJwbFwiLCBcImVuXCIsIFwiZGVcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJsdFwiLCBcImZpXCIsIFwiaXRcIiwgXCJiZ1wiLCBcImhyXCJdLFxyXG4gICAgICBkZTogW1wiZW5cIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImZyXCIsIFwiZGVcIiwgXCJlbFwiLCBcImdhXCIsIFwiaXNcIiwgXCJpdFwiLCBcImhyXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwibXRcIiwgXCJubFwiLCBcIm5iXCIsIFwicGxcIiwgXCJwdFwiLCBcInB0LXB0XCIsIFwicm9cIiwgXCJzdlwiLCBcInNrXCIsIFwic2xcIiwgXCJlc1wiLCBcImNzXCIsIFwiaHVcIlxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy50YXJnZXRMYW5ndWFnZU9yZGVyID0gY29yZT8udGFyZ2V0TGFuZ3VhZ2VPcmRlciB8fCB7XHJcbiAgICAgIGVuOiBbXCJlblwiLCBcImx2XCIsIFwicnVcIiwgXCJsdFwiLCBcImV0XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBsdjogW1wiZW5cIiwgXCJsdlwiLCBcImx0XCIsIFwiZXRcIiwgXCJydVwiLCBcImZpXCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgbHQ6IFtcImVuXCIsIFwibHRcIiwgXCJsdlwiLCBcImV0XCIsIFwicnVcIiwgXCJmaVwiLCBcImFyXCIsIFwicGxcIiwgXCJkZVwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGV0OiBbXCJlblwiLCBcImV0XCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiZmlcIiwgXCJhclwiLCBcInBsXCIsIFwiZGVcIiwgXCJiZ1wiLCBcImhyXCIsIFwiZXNcIiwgXCJuYlwiLCBcInJvXCJdLFxyXG4gICAgICBmaTogW1wiZXRcIiwgXCJmaVwiLCBcImVuXCIsIFwibHZcIiwgXCJsdFwiLCBcInJ1XCIsIFwiYXJcIiwgXCJwbFwiLCBcImRlXCIsIFwiYmdcIiwgXCJoclwiLCBcImVzXCIsIFwibmJcIiwgXCJyb1wiXSxcclxuICAgICAgcGw6IFtcImVuXCIsIFwicGxcIiwgXCJkZVwiLCBcImx2XCIsIFwicnVcIiwgXCJldFwiLCBcImZpXCIsIFwibHRcIiwgXCJhclwiLCBcImJnXCIsIFwiaHJcIiwgXCJlc1wiLCBcIm5iXCIsIFwicm9cIl0sXHJcbiAgICAgIGRlOiBbXCJkZVwiLCBcImVuXCIsIFwiZnJcIiwgXCJiZ1wiLCBcImRhXCIsIFwiZXRcIiwgXCJmaVwiLCBcImVsXCIsIFwiZ2FcIiwgXCJpc1wiLCBcIml0XCIsIFwiaHJcIiwgXCJsdlwiLCBcImx0XCIsIFwicnVcIiwgXCJtdFwiLCBcIm5sXCIsIFwibmJcIiwgXCJwbFwiLCBcInB0XCIsIFwicHQtcHRcIiwgXCJyb1wiLCBcInN2XCIsIFwic2tcIiwgXCJzbFwiLCBcImVzXCIsIFwiY3NcIiwgXCJodVwiLCBcImFyXCJdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHMgPSBjb3JlPy5oaWRlTGFuZ01lbnVMYWJlbHMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dWZW5kb3JzID0gY29yZT8uc2hvd1ZlbmRvcnMgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVuYXV0aG9yaXplZFJlZGlyZWN0TGluayA9IGNvcmU/LnVuYXV0aG9yaXplZFJlZGlyZWN0TGluaztcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID0gY29yZT8ubWF4RGlzcGxheWVkTGFuZ3VhZ2VzID8/IDM7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnVwbG9hZEljb25OYW1lID0gY29yZT8udXBsb2FkSWNvbk5hbWU7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlYnVnID0gY29yZT8uZGVidWc7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSA9IGNvcmU/LnNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSB8fCBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc2hvd0RvbWFpbnMgPSBjb3JlPy5zaG93RG9tYWlucyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0VmVuZG9yID0gY29yZT8uZGVmYXVsdFZlbmRvciA/PyBcIlRpbGRlXCI7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmRlZmF1bHRTeXN0ZW1JZCA9IGNvcmU/LmRlZmF1bHRTeXN0ZW1JZCA/PyAodGV4dD8uaXNBdXRvTGFuZ3VhZ2VEZXRlY3Rpb25FbmFibGVkID8gJ0FVVE8nIDogbnVsbCk7XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLnNob3dEb21haW5UaXRsZSA9IGNvcmU/LnNob3dEb21haW5UaXRsZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZG9tYWluU2lkZSA9IGNvcmU/LmRvbWFpblNpZGUgPz8gXCJ0cmdcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3dhcEljb25Qb3NpdGlvbiA9IGNvcmU/LnN3YXBJY29uUG9zaXRpb24gPz8gXCJzcmNcIjtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubGFuZ3VhZ2VNZW51VmVyc2lvbiA9IGNvcmU/Lmxhbmd1YWdlTWVudVZlcnNpb24gPz8gbGFuZ3VhZ2VNZW51VmVyc2lvbi5WMTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcubWF4UmVjZW50U3lzdGVtQ291bnQgPSBjb3JlPy5tYXhSZWNlbnRTeXN0ZW1Db3VudCA/PyA0O1xyXG4gICAgdGhpcy5fY29yZUNvbmZpZy5kZWZhdWx0RG9tYWlucyA9IGNvcmU/LmRlZmF1bHREb21haW5zID8/IFtcIkdFTlwiLCBcImdlbmVyYWxcIl07XHJcbiAgICB0aGlzLl9jb3JlQ29uZmlnLmNvbnRhY3RTdXBwb3J0ID0gY29yZT8uY29udGFjdFN1cHBvcnQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuc3Vic2NyaXB0aW9uU3VwcG9ydCA9IGNvcmU/LnN1YnNjcmlwdGlvblN1cHBvcnQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuaXNXZWJDb21wb25lbnQgPSBjb3JlPy5pc1dlYkNvbXBvbmVudCA/PyBmYWxzZTtcclxuICAgIHRoaXMuX2NvcmVDb25maWcuZGVmYXVsdFRhcmdldExhbmd1YWdlID0gY29yZT8uZGVmYXVsdFRhcmdldExhbmd1YWdlID8/ICdsdic7XHJcblxyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5hbGxvd2VkRmlsZVR5cGVzID0gZmlsZT8uYWxsb3dlZEZpbGVUeXBlcyB8fCBbXCIuZG9jXCIsIFwiLmRvY3hcIiwgXCIueGxzeFwiLCBcIi5wZGZcIiwgXCIucHB0eFwiLCBcIi5vZHRcIiwgXCIub2RwXCIsIFwiLm9kc1wiLCBcIi50eHRcIl07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmV4dGVuZGVkRmlsZVR5cGVzID0gZmlsZT8uZXh0ZW5kZWRGaWxlVHlwZXNcclxuICAgICAgfHwgW1wiLmRvY1wiLCBcIi5kb2N4XCIsIFwiLnhsc3hcIiwgXCIucHB0eFwiLCBcIi5vZHRcIiwgXCIub2RwXCIsIFwiLm9kc1wiLCBcIi50eHRcIiwgXCIuaHRtbFwiLCBcIi5odG1cIixcclxuICAgICAgICBcIi54aHRtbFwiLCBcIi54aHRcIiwgXCIudG14XCIsIFwiLnhsZlwiLCBcIi54bGlmXCIsIFwiLnhsaWZmXCIsIFwiLnNkbHhsaWZmXCIsIFwiLnNkbHhsZlwiLCBcIi50dHhcIiwgXCIucnRmXCIsXHJcbiAgICAgICAgXCIucGFnZXNcIiwgXCIudGV4XCIsIFwiLnhtbFwiLCBcIi5qc29uXCIsIFwiLnN4d1wiLCBcIi5wZGZcIiwgXCIuY3N2XCIsIFwiLnR0bFwiLCBcIi5zcnRcIiwgXCIucG5nXCIsIFwiLmpwZ1wiLCBcIi5qcGVnXCIsIFwiLmJtcFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuYWxsb3dUbXhBdXRoID0gZmlsZT8uYWxsb3dUbXhBdXRoID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93VG14VW5hdXRoID0gZmlsZT8uYWxsb3dUbXhVbmF1dGggPz8gZmFsc2U7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVBcGlVcmwgPSBmaWxlPy5maWxlQXBpVXJsIHx8IFwiaHR0cHM6Ly9sZXRzbXQuZXUvd3MvRmlsZXMvXCI7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmZpbGVEb3dubG9hZFRpbWVvdXRzID0gZmlsZT8uZmlsZURvd25sb2FkVGltZW91dHNcclxuICAgICAgfHwge1xyXG4gICAgICBcImluaXRpYWxpemluZ1wiOiAxMDAwLFxyXG4gICAgICBcImV4dHJhY3RpbmdcIjogMTAwMCxcclxuICAgICAgXCJ3YWl0aW5nXCI6IDEwMDAwLFxyXG4gICAgICBcInRyYW5zbGF0aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwic2F2aW5nXCI6IDEwMDAsXHJcbiAgICAgIFwiY29tcGxldGVkXCI6IDEwMDAsXHJcbiAgICAgIFwiZXJyb3JcIjogMTAwMCxcclxuICAgICAgXCJxdWV1aW5nXCI6IDEwMDBcclxuICAgIH07XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm1heFNpemUgPSBmaWxlPy5tYXhTaXplIHx8IDMwNzIwMDAwO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy53b3JkTGltaXQgPSBmaWxlPy53b3JkTGltaXQgPz8gMTI1MDtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcuZmlsZVVwbG9hZCA9IGZpbGU/LmZpbGVVcGxvYWQgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcub2NyUGFnZUxpbWl0ID0gZmlsZT8ub2NyUGFnZUxpbWl0ID8/IDE7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93UERGU291cmNlRG93bmxvYWQgPSBmaWxlPy5hbGxvd1BERlNvdXJjZURvd25sb2FkID8/IHRydWU7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLmFsbG93SW1hZ2VTb3VyY2VEb3dubG9hZCA9IGZpbGU/LmFsbG93SW1hZ2VTb3VyY2VEb3dubG9hZCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnMgPSBmaWxlPy5zb3VyY2VEb3dubG9hZEV4dGVuc2lvbnMgfHwgW1wicGRmXCIsIFwicG5nXCIsIFwianBnXCIsIFwianBlZ1wiLCBcImJtcFwiXTtcclxuICAgIHRoaXMuX2ZpbGVDb25maWcudGFyZ2V0RG93bmxvYWRFeHRlbnNpb25PcmRlciA9IGZpbGU/LnRhcmdldERvd25sb2FkRXh0ZW5zaW9uT3JkZXI7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLm51bWJlck9mRmlsZXNBbGxvd2VkID0gZmlsZT8ubnVtYmVyT2ZGaWxlc0FsbG93ZWQgPiAwID8gZmlsZS5udW1iZXJPZkZpbGVzQWxsb3dlZCA6IDE7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnNob3dUcmFuc2xhdGlvbkxpbWl0cyA9IGZpbGU/LnNob3dUcmFuc2xhdGlvbkxpbWl0cyA/PyB0cnVlO1xyXG4gICAgdGhpcy5fZmlsZUNvbmZpZy51c2VNdWx0aXBsZUZpbGVVcGxvYWQgPSBmaWxlPy51c2VNdWx0aXBsZUZpbGVVcGxvYWQ7XHJcbiAgICB0aGlzLl9maWxlQ29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IGZpbGU/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcblxyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5kaWN0aW9uYXJ5VXJsID0gdGV4dD8uZGljdGlvbmFyeVVybCB8fCBcImh0dHBzOi8vbGV0c210LmV1L2FwaS9kaWN0aW9uYXJ5L0dldERpY3Rpb25hcnlFbnRyeS9cIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcubWF4Q2hhckxlbmd0aCA9IHRleHQ/Lm1heENoYXJMZW5ndGggPz8gNTAwMDtcclxuICAgIHRoaXMuX3RleHRDb25maWcud2ViV2lkZ2V0UmVkaXJlY3RVcmxQb3NmaXggPSB0ZXh0Py53ZWJXaWRnZXRSZWRpcmVjdFVybFBvc2ZpeCB8fCBcIi93ZWJ0cmFuc2xhdGU/dXJsPVwiO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy53ZWJXaWRnZXRSZWRpcmVjdFVybFByZWZpeCA9IHRleHQ/LndlYldpZGdldFJlZGlyZWN0VXJsUHJlZml4IHx8IFwiXCI7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnVzZURpY3Rpb25hcnkgPSB0ZXh0Py51c2VEaWN0aW9uYXJ5ID8/IGZhbHNlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucyA9IHRleHQ/LnNob3dBdmFpbGFibGVFeHRlbnNpb25zID09IG51bGwgPyB0cnVlIDogdGV4dC5zaG93QXZhaWxhYmxlRXh0ZW5zaW9ucztcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd0F1dGhFeHRlbnNpb25zID0gdGV4dD8uc2hvd0F1dGhFeHRlbnNpb25zID09IG51bGwgPyB0cnVlIDogdGV4dC5zaG93QXV0aEV4dGVuc2lvbnM7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9Gb2N1c3MgPSB0ZXh0Py5hdXRvRm9jdXNzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHkgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uc1VuYXV0aE9ubHk7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcCA9IHRleHQ/LnNob3dTZW5zaXRpdmVJbmZvVG9vbHRpcDtcclxuICAgIHRoaXMuX3RleHRDb25maWcuYWxsb3dXZWJzaXRlVHJhbnNsYXRpb24gPSB0ZXh0Py5hbGxvd1dlYnNpdGVUcmFuc2xhdGlvbiA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93U3VnZ2VzdGlvbnMgPSB0ZXh0Py5zaG93U3VnZ2VzdGlvbnMgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmF1dG9SZWRpcmVjdFRvV2ViVHJhbnNsYXRlID0gdGV4dD8uYXV0b1JlZGlyZWN0VG9XZWJUcmFuc2xhdGUgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmhpZ2hsaWdodCA9IHRleHQ/LmhpZ2hsaWdodCA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5jaGVja1NvdXJjZUdyYW1tYXIgPSB0ZXh0Py5jaGVja1NvdXJjZUdyYW1tYXIgPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmdyYW1tYXJDaGVja0xhbmd1YWdlcyA9IHRleHQ/LmdyYW1tYXJDaGVja0xhbmd1YWdlcyA/PyBbXTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1RhcmdldFBsYWNlaG9sZGVyID0gdGV4dD8uc2hvd1RhcmdldFBsYWNlaG9sZGVyO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5zaG93RXh0ZW5zaW9uUG9wdXAgPSB0ZXh0Py5zaG93RXh0ZW5zaW9uUG9wdXA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnZpc2libGVFeHRlbnNpb25Db3VudCA9IHRleHQ/LnZpc2libGVFeHRlbnNpb25Db3VudCA/PyAzO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5oaWRlU291cmNlQWN0aW9uc1doZW5IYXNUZXh0TW9iaWxlID0gdGV4dD8uaGlkZVNvdXJjZUFjdGlvbnNXaGVuSGFzVGV4dE1vYmlsZSA/PyB0cnVlO1xyXG4gICAgdGhpcy5fdGV4dENvbmZpZy5wcm9ncmVzc0luZGljYXRvclRpbWVvdXRNaWxpU2Vjb25kcyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGltZW91dE1pbGlTZWNvbmRzID8/IDIwMDA7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVGl0bGVWaXNpYmxlRm9yVmVuZG9ycyA/PyBbXCJFVHJhbnNsYXRpb25cIl07XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA9IHRleHQ/LnByb2dyZXNzSW5kaWNhdG9yVmlzaWJsZSA/PyBmYWxzZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuc2hvd1RyYW5zbGF0ZUJ1dHRvbiA9IHRleHQ/LnNob3dUcmFuc2xhdGVCdXR0b24gPz8gdHJ1ZTtcclxuICAgIHRoaXMuX3RleHRDb25maWcuZGlzcGxheVNpbmdsZUF2YWlsYWJsZURvbWFpbiA9IHRleHQ/LmRpc3BsYXlTaW5nbGVBdmFpbGFibGVEb21haW4gPz8gZmFsc2U7XHJcbiAgICB0aGlzLl90ZXh0Q29uZmlnLmlzQXV0b0xhbmd1YWdlRGV0ZWN0aW9uRW5hYmxlZCA9IHRleHQ/LmlzQXV0b0xhbmd1YWdlRGV0ZWN0aW9uRW5hYmxlZCA/PyB0cnVlO1xyXG5cclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmF1ZGlvVGV4dElucHV0ID0gYXVkaW8/LmF1ZGlvVGV4dElucHV0ID8/IGZhbHNlO1xyXG4gICAgLy8gTm90IHNldHRpbmcgZGVmYXVsdCB1cmwgYmVjYXVzZSB0aGVyZSBpcyBubyBzZXJ2aWNlIHByb3ZpZGVkIGJ5IFRpbGRlIGFuZCB0aGlzIGlzIG5vdCB1c2VkIGJ5IGRlZmF1bHQgaW4gd2Vic2l0ZSBwcm9qZWN0LlxyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXVkaW9BcGlVcmwgPSBhdWRpbz8uYXVkaW9BcGlVcmw7XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5hdWRpb01heFNpemVCeXRlcyA9IGF1ZGlvPy5hdWRpb01heFNpemVCeXRlcyA/PyAxMDAwMDAwMDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLnNvdXJjZUxhbmd1YWdlcyA9IGF1ZGlvPy5zb3VyY2VMYW5ndWFnZXMgPz8gW107XHJcbiAgICB0aGlzLl9hdWRpb0NvbmZpZy5kYXRhVXBkYXRlVGltZUZyYW1lID0gYXVkaW8/LmRhdGFVcGRhdGVUaW1lRnJhbWUgPz8gNTAwMDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLm1heGltdW1SZWNvcmRUaW1lID0gYXVkaW8/Lm1heGltdW1SZWNvcmRUaW1lID8/IDMwMDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmRpY3RhdGVBcGlVcmwgPSBhdWRpbz8uZGljdGF0ZUFwaVVybCA/PyBcInJ1bmEudGlsZGUubHZcIjtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmFwcElkID0gYXVkaW8/LmFwcElkO1xyXG4gICAgdGhpcy5fYXVkaW9Db25maWcuYXBwU2VjcmV0ID0gYXVkaW8/LmFwcFNlY3JldDtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLnB1bmN0dWF0aW9uTWVzc2FnZSA9IGF1ZGlvPy5wdW5jdHVhdGlvbk1lc3NhZ2UgPz8gdHJ1ZTtcclxuICAgIHRoaXMuX2F1ZGlvQ29uZmlnLmRpc2FibGVBdXRvbWF0aWNUcmFuc2xhdGlvbiA9IGF1ZGlvPy5kaXNhYmxlQXV0b21hdGljVHJhbnNsYXRpb24gPz8gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcubG9nb0xvY2F0aW9uID0gd2VidHJhbnNsYXRlPy5sb2dvTG9jYXRpb24gfHwgJ2Fzc2V0cy93ZWJ0cmFuc2xhdGUvdGlsZGVfbG9nby5wbmcnO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLnRyYW5zbGF0ZVBhZ2VQYXRoID0gd2VidHJhbnNsYXRlPy50cmFuc2xhdGVQYWdlUGF0aDtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5kZWJ1ZyA9IHdlYnRyYW5zbGF0ZT8uZGVidWcgfHwgZmFsc2U7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcud2ViTGFuZ0F1dG9kZXRlY3QgPSB3ZWJ0cmFuc2xhdGU/LndlYkxhbmdBdXRvZGV0ZWN0IHx8IHRydWU7XHJcbiAgICB0aGlzLl93ZWJ0cmFuc2xhdGVDb25maWcuYWxsb3dTdWdnZXN0aW9ucyA9IHdlYnRyYW5zbGF0ZT8uYWxsb3dTdWdnZXN0aW9ucyB8fCBmYWxzZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5oaWRlUG9wdXAgPSB3ZWJ0cmFuc2xhdGU/LmhpZGVQb3B1cCB8fCBmYWxzZTtcclxuICAgIHRoaXMuX3dlYnRyYW5zbGF0ZUNvbmZpZy5zYW5kYm94ID0gd2VidHJhbnNsYXRlPy5zYW5kYm94ID8/IFwiYWxsb3ctZm9ybXMgYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpblwiO1xyXG4gICAgdGhpcy5fd2VidHJhbnNsYXRlQ29uZmlnLmFwcElkID0gd2VidHJhbnNsYXRlPy5hcHBJZDtcclxuXHJcbiAgICB0aGlzLl90ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb24gPSB0ZXJtQ29uZmlnPy5jYW5DcmVhdGVDb2xsZWN0aW9uO1xyXG4gICAgdGhpcy5fdGVybUNvbmZpZy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkID0gdGVybUNvbmZpZz8uaXNDb2xsZWN0aW9uc0FjdGl2YXRlZDtcclxuXHJcbiAgICAvLyBzZXBlcmF0ZWQgYmVjYXVzZSBmb2xsb3dpbmcgdXJscyBoYXZlIG1ldGhvZCBuYW1lcyBhZGRlZFxyXG4gICAgdGhpcy5fY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmwgPSBjb3JlPy50cmFuc2xhdGlvblNlcnZpY2VVcmwgfHwgXCJodHRwczovL3d3dy5sZXRzbXQuZXUvd3Mvc2VydmljZS5zdmMvanNvbi9cIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcudHJhbnNsYXRpb25VcmwgPSB0ZXh0Py50cmFuc2xhdGlvblVybCA/PyB0aGlzLl9jb3JlQ29uZmlnLnRyYW5zbGF0aW9uU2VydmljZVVybCArIFwiVHJhbnNsYXRlRXhcIjtcclxuICAgIHRoaXMuX3RleHRDb25maWcudXBkYXRlVHJhbnNsYXRpb25VcmwgPSB0ZXh0Py51cGRhdGVUcmFuc2xhdGlvblVybCA/PyB0aGlzLl9jb3JlQ29uZmlnLnRyYW5zbGF0aW9uU2VydmljZVVybCArIFwiVXBkYXRlVHJhbnNsYXRpb25cIjtcclxuXHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCA9IGFwaVYyQ29uZmlnPy5tdEFwaVVybCA/PyBcImFwaS90cmFuc2xhdGUvXCI7XHJcbiAgICB0aGlzLl9hcGlWMkNvbmZpZy50cmFuc2xhdGlvblVybCA9IGFwaVYyQ29uZmlnPy50cmFuc2xhdGlvblVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwidGV4dFwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuZmlsZVRyYW5zbGF0aW9uVXJsID0gYXBpVjJDb25maWc/LmZpbGVUcmFuc2xhdGlvblVybCA/PyB0aGlzLl9hcGlWMkNvbmZpZy5tdEFwaVVybCArIFwiZmlsZVwiO1xyXG4gICAgdGhpcy5fYXBpVjJDb25maWcuZ3JhbW1hckNoZWNrVXJsID0gYXBpVjJDb25maWc/LmdyYW1tYXJDaGVja1VybCA/PyBcImh0dHBzOi8vbXQuY3MudXQuZWUvYXBpL2dyYW1tYXJcIjtcclxuICAgIHRoaXMuX2FwaVYyQ29uZmlnLnhBcGlLZXkgPSBhcGlWMkNvbmZpZz8ueEFwaUtleSA/PyAnJztcclxuXHJcbiAgICB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWcubGFuZ3VhZ2VzID0gdGV4dFRvU3BlZWNoPy5sYW5ndWFnZXMgPz8ge307XHJcbiAgICB0aGlzLl90ZXh0VG9TcGVlY2hDb25maWcubWF4Q2hhcnNJblRleHQgPSB0ZXh0VG9TcGVlY2g/Lm1heENoYXJzSW5UZXh0ID8/IDMwMDA7XHJcblxyXG4gICAgdGhpcy5lZGl0UHJvcGVydGllc0Jhc2VkT25BcGkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvIG1ha2Ugc3VyZSBuZWNlc3NhcnkgcHJvcGVydGllcyBhcmUgbm90IHR1cm5lZCBvbiBiZWNhdXNlIGluIGFwaSBWMiBzb21lIGZlYXR1cmVzIGFyZSBub3QgaW1wbGVtbmVudGVkLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZWRpdFByb3BlcnRpZXNCYXNlZE9uQXBpKCkge1xyXG4gICAgaWYgKHRoaXMuYXBpVmVyc2lvbiA9PT0gVHJhbnNsYXRpb25BcGlWZXJzaW9uLlYyKSB7XHJcbiAgICAgIHRoaXMudGV4dENvbmZpZy5zaG93U3VnZ2VzdGlvbnMgPSBmYWxzZTtcclxuICAgICAgdGhpcy50ZXh0Q29uZmlnLnVzZURpY3Rpb25hcnkgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
package/esm2022/lib/modules/tld-tooltip/tld-translate-switcher/tld-translate-switcher.component.mjs
CHANGED
|
@@ -143,7 +143,7 @@ export class TldTranslateSwitcherComponent {
|
|
|
143
143
|
});
|
|
144
144
|
}
|
|
145
145
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TldTranslateSwitcherComponent, deps: [{ token: i1.TldTranslateConfigService }, { token: i1.TldTranslateSystemManagementService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
146
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TldTranslateSwitcherComponent, selector: "tld-translate-switcher", inputs: { buttonDisabled: "buttonDisabled", showTranslateButton: "showTranslateButton", hideOnSmallScreens: "hideOnSmallScreens", disabled: "disabled", hideLangMenuLabels: "hideLangMenuLabels", maxDisplayedLanguages: "maxDisplayedLanguages", collections: "collections", showDomainsWithLanguageName: "showDomainsWithLanguageName", isCollectionsActivated: "isCollectionsActivated", useParentWidth: "useParentWidth", loader: "loader", settings: "settings" }, outputs: { onDomainChange: "onDomainChange", onActionClick: "onActionClick", onSourceLanguageChange: "onSourceLanguageChange", onTargetLanguageChange: "onTargetLanguageChange", onLanguageSwap: "onLanguageSwap", onVendorChange: "onVendorChange" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "fromLabel", first: true, predicate: ["fromLabel"], descendants: true }, { propertyName: "sourceAside", first: true, predicate: ["sourceAside"], descendants: true }, { propertyName: "toLabel", first: true, predicate: ["toLabel"], descendants: true }, { propertyName: "domainWrapper", first: true, predicate: ["domainWrapper"], descendants: true }, { propertyName: "vendorWrapper", first: true, predicate: ["vendorWrapper"], descendants: true }, { propertyName: "collectionWrapper", first: true, predicate: ["collectionWrapper"], descendants: true }], ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"tld-translate-switcher-container\" #wrapper\r\n [ngClass.lt-md]=\"'tld-translate-switcher-container-tablet'\"\r\n [ngClass.lt-sm]=\"'tld-translate-switcher-container-mobile'\"\r\n [class.tld-switcher-with-collections]='collectionsVisible'>\r\n\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <div fxHide.lt-md *ngIf=\"!hideLangMenuLabels\" #fromLabel>{{'TLD_TRANSLATE.FROM' | translate}}</div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <tld-lang-list id=\"tld-source-language-list\" [disabled]=\"disabled\" [testId]=\"srcLangTestId\"\r\n [languages]=\"settings.sourceLanguageList\" (onLanguageChange)=\"sourceLangChange($event)\"\r\n [selected]=\"settings.source\" [maxDisplayedLanguages]=\"visibleLanguageCount\"></tld-lang-list>\r\n <ng-container *ngIf=\"domainSide==='src'\">\r\n <ng-container *ngTemplateOutlet=\"domainTemplate;\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div #sourceAside *ngIf=\"swapIconPosition==='src'\">\r\n <ng-container *ngTemplateOutlet=\"swapButtonTemplate;\"></ng-container>\r\n </div>\r\n </div>\r\n <div *ngIf=\"swapIconPosition==='center'\">\r\n <ng-container *ngTemplateOutlet=\"swapButtonTemplate;\"></ng-container>\r\n </div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutAlign.lt-sm=\"end center\">\r\n <div fxHide.lt-md *ngIf=\"!hideLangMenuLabels\" #toLabel>{{'TLD_TRANSLATE.TO' | translate}}</div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <tld-lang-list [disabled]=\"disabled\" id=\"tld-target-language-list\" [languages]=\"settings.targetLanguageList\"\r\n (onLanguageChange)=\"targetLangChange($event)\" [selected]=\"settings.target\"\r\n [maxDisplayedLanguages]=\"visibleLanguageCount\" [testId]=\"trgLangTestId\" (onDomainChange)=\"domainChange($event)\"\r\n [showDomainsWithLanguageName]=\"showDomainsWithLanguageName\">\r\n <ng-container *ngIf=\"domainSide==='trg'\">\r\n <ng-container *ngTemplateOutlet=\"domainTemplate;\">\r\n </ng-container>\r\n </ng-container>\r\n <div class=\"tld-translate-vendor-selection\" fxLayoutAlign=\"center center\" *ngIf=\"showVendors\" #vendorWrapper>\r\n <tld-list-menu (selectionChange)=\"domainChange($event)\" [list]=\"settings.vendors\" [titleKey]=\"'title'\"\r\n [valueKey]=\"'systemId'\" testId=\"tld-vendor-list\" [disabled]=\"disabled\" [showContent]=\"false\"\r\n [ariaLabel]=\"'TLD_TRANSLATE.VENDORS_ARIA_LABEL' | translate\" [selectedValue]=\"settings.systemId\">\r\n </tld-list-menu>\r\n </div>\r\n </tld-lang-list>\r\n </div>\r\n <div fxLayout=\"row\" fxLayoutGap.gt-xs=\"16px\">\r\n <div *ngIf=\"collectionsVisible\" #collectionWrapper>\r\n <lib-terminology [system]=\"system\" [disabled]=\"buttonDisabled\"></lib-terminology>\r\n </div>\r\n <tld-loader *ngIf=\"loader\" fxHide.lt-sm></tld-loader>\r\n <tld-translate-button [enablePulseAnimation]=\"true\" *ngIf=\"showTranslateButton && !loader\" class=\"switcher-translate-button\"\r\n [fxHide.lt-sm]=\"hideOnSmallScreens\" [disabled]=\"buttonDisabled\"></tld-translate-button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #swapButtonTemplate>\r\n <button [disabled]=\"isSwapLanguagesDisabled\" class=\"swap-languages-button\" mat-icon-button\r\n (click)=\"swapSourceAndTarget()\" aria-label=\"swap languages\" color=\"primary\"\r\n matTooltip=\"{{'TOOLTIPS.SWAP_LANGUAGES' | translate}}\">\r\n <span class=\"material-icons\" aria-hidden=\"false\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SWAP_LANGUAGES' | translate\">swap_horiz</span>\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #domainTemplate>\r\n <div class=\"tld-translate-domain-selection\" fxLayoutAlign=\"center center\" *ngIf=\"showDomains\" #domainWrapper>\r\n <tld-domain-list fxLayoutAlign=\"center center\" (selectionChange)=\"domainChange($event)\"\r\n [list]=\"settings.domains.domains\" [selected]=\"settings.domains.active\" [selected]=\"settings.domains.active\"\r\n [disabled]=\"disabled\"></tld-domain-list>\r\n </div>\r\n</ng-template>\r\n", styles: [".tld-translate-switcher-container:not(.tld-translate-switcher-container-tablet,.tld-translate-switcher-container-mobile) tld-lang-list{margin:0 10px}.tld-translate-switcher-container-mobile :host ::ng-deep button{padding:0!important}.swap-icon{color:#5a6672}.switcher-translate-button{min-width:100px}mat-select{min-width:75px;max-width:125px}.swap-languages-button[disabled]{cursor:not-allowed}.tld-translate-domain-selection,tld-translate-vendor-selection{height:100%}tld-loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.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: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.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: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.TldLangListComponent, selector: "tld-lang-list", inputs: ["disabled", "pxPerLanguage", "languages", "testId", "selected", "maxDisplayedLanguages", "showDomainsWithLanguageName"], outputs: ["onLanguageChange", "onDomainChange"] }, { kind: "component", type: i6.TldLoaderComponent, selector: "tld-loader" }, { kind: "component", type: i7.TldTranslateButtonComponent, selector: "tld-translate-button", inputs: ["disabled", "enablePulseAnimation"], outputs: ["clicked"] }, { kind: "component", type: i8.TldListMenuComponent, selector: "tld-list-menu", inputs: ["titleKey", "list", "showContent", "selectedValue", "disabled", "ariaLabel", "valueKey", "testId"], outputs: ["selectionChange"] }, { kind: "component", type: i9.TerminologyComponent, selector: "lib-terminology", inputs: ["selectedCollectionId", "system", "disabled", "storeSelectedInLocalStorage", "showMenuIconOnMobile"], outputs: ["glossarySelectEvent", "menuToggleEvent"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i12.TldDomainListComponent, selector: "tld-domain-list", inputs: ["list", "selected", "disabled"], outputs: ["selectionChange"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
|
|
146
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TldTranslateSwitcherComponent, selector: "tld-translate-switcher", inputs: { buttonDisabled: "buttonDisabled", showTranslateButton: "showTranslateButton", hideOnSmallScreens: "hideOnSmallScreens", disabled: "disabled", hideLangMenuLabels: "hideLangMenuLabels", maxDisplayedLanguages: "maxDisplayedLanguages", collections: "collections", showDomainsWithLanguageName: "showDomainsWithLanguageName", isCollectionsActivated: "isCollectionsActivated", useParentWidth: "useParentWidth", loader: "loader", settings: "settings" }, outputs: { onDomainChange: "onDomainChange", onActionClick: "onActionClick", onSourceLanguageChange: "onSourceLanguageChange", onTargetLanguageChange: "onTargetLanguageChange", onLanguageSwap: "onLanguageSwap", onVendorChange: "onVendorChange" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "fromLabel", first: true, predicate: ["fromLabel"], descendants: true }, { propertyName: "sourceAside", first: true, predicate: ["sourceAside"], descendants: true }, { propertyName: "toLabel", first: true, predicate: ["toLabel"], descendants: true }, { propertyName: "domainWrapper", first: true, predicate: ["domainWrapper"], descendants: true }, { propertyName: "vendorWrapper", first: true, predicate: ["vendorWrapper"], descendants: true }, { propertyName: "collectionWrapper", first: true, predicate: ["collectionWrapper"], descendants: true }], ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"tld-translate-switcher-container\" #wrapper\r\n [ngClass.lt-md]=\"'tld-translate-switcher-container-tablet'\"\r\n [ngClass.lt-sm]=\"'tld-translate-switcher-container-mobile'\"\r\n [class.tld-switcher-with-collections]='collectionsVisible'>\r\n\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <div fxHide.lt-md *ngIf=\"!hideLangMenuLabels\" #fromLabel>{{'TLD_TRANSLATE.FROM' | translate}}</div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <tld-lang-list id=\"tld-source-language-list\" [disabled]=\"disabled\" [testId]=\"srcLangTestId\"\r\n [languages]=\"settings.sourceLanguageList\" (onLanguageChange)=\"sourceLangChange($event)\"\r\n [selected]=\"settings.source\" [maxDisplayedLanguages]=\"visibleLanguageCount\"></tld-lang-list>\r\n <ng-container *ngIf=\"domainSide==='src'\">\r\n <ng-container *ngTemplateOutlet=\"domainTemplate;\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div #sourceAside *ngIf=\"swapIconPosition==='src'\">\r\n <ng-container *ngTemplateOutlet=\"swapButtonTemplate;\"></ng-container>\r\n </div>\r\n </div>\r\n <div *ngIf=\"swapIconPosition==='center'\">\r\n <ng-container *ngTemplateOutlet=\"swapButtonTemplate;\"></ng-container>\r\n </div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutAlign.lt-sm=\"end center\">\r\n <div fxHide.lt-md *ngIf=\"!hideLangMenuLabels\" #toLabel>{{'TLD_TRANSLATE.TO' | translate}}</div>\r\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <tld-lang-list [disabled]=\"disabled\" id=\"tld-target-language-list\" [languages]=\"settings.targetLanguageList\"\r\n (onLanguageChange)=\"targetLangChange($event)\" [selected]=\"settings.target\"\r\n [maxDisplayedLanguages]=\"visibleLanguageCount\" [testId]=\"trgLangTestId\" (onDomainChange)=\"domainChange($event)\"\r\n [showDomainsWithLanguageName]=\"showDomainsWithLanguageName\">\r\n <ng-container *ngIf=\"domainSide==='trg'\">\r\n <ng-container *ngTemplateOutlet=\"domainTemplate;\">\r\n </ng-container>\r\n </ng-container>\r\n <div class=\"tld-translate-vendor-selection\" fxLayoutAlign=\"center center\" *ngIf=\"showVendors\" #vendorWrapper>\r\n <tld-list-menu (selectionChange)=\"domainChange($event)\" [list]=\"settings.vendors\" [titleKey]=\"'title'\"\r\n [valueKey]=\"'systemId'\" testId=\"tld-vendor-list\" [disabled]=\"disabled\" [showContent]=\"false\"\r\n [ariaLabel]=\"'TLD_TRANSLATE.VENDORS_ARIA_LABEL' | translate\" [selectedValue]=\"settings.systemId\">\r\n </tld-list-menu>\r\n </div>\r\n </tld-lang-list>\r\n </div>\r\n <div fxLayout=\"row\" fxLayoutGap.gt-xs=\"16px\">\r\n <div *ngIf=\"collectionsVisible\" #collectionWrapper>\r\n <lib-terminology [system]=\"system\" [disabled]=\"buttonDisabled\"></lib-terminology>\r\n </div>\r\n <tld-loader *ngIf=\"loader\" fxHide.lt-sm></tld-loader>\r\n <tld-translate-button [enablePulseAnimation]=\"true\" *ngIf=\"showTranslateButton && !loader\" class=\"switcher-translate-button\"\r\n [fxHide.lt-sm]=\"hideOnSmallScreens\" [disabled]=\"buttonDisabled\"></tld-translate-button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #swapButtonTemplate>\r\n <button [disabled]=\"isSwapLanguagesDisabled\" class=\"swap-languages-button\" mat-icon-button\r\n (click)=\"swapSourceAndTarget()\" aria-label=\"swap languages\" color=\"primary\"\r\n matTooltip=\"{{'TOOLTIPS.SWAP_LANGUAGES' | translate}}\">\r\n <span class=\"material-icons\" aria-hidden=\"false\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SWAP_LANGUAGES' | translate\">swap_horiz</span>\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #domainTemplate>\r\n <div class=\"tld-translate-domain-selection\" fxLayoutAlign=\"center center\" *ngIf=\"showDomains\" #domainWrapper>\r\n <tld-domain-list fxLayoutAlign=\"center center\" (selectionChange)=\"domainChange($event)\"\r\n [list]=\"settings.domains.domains\" [selected]=\"settings.domains.active\" [selected]=\"settings.domains.active\"\r\n [disabled]=\"disabled\"></tld-domain-list>\r\n </div>\r\n</ng-template>\r\n", styles: [".tld-translate-switcher-container:not(.tld-translate-switcher-container-tablet,.tld-translate-switcher-container-mobile) tld-lang-list{margin:0 10px}.tld-translate-switcher-container-mobile :host ::ng-deep button{padding:0!important}.swap-icon{color:#5a6672}.switcher-translate-button{min-width:100px}mat-select{min-width:75px;max-width:125px}.swap-languages-button[disabled]{cursor:not-allowed}.tld-translate-domain-selection,tld-translate-vendor-selection{height:100%}tld-loader{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.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: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.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: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.TldLangListComponent, selector: "tld-lang-list", inputs: ["disabled", "pxPerLanguage", "languages", "testId", "selected", "maxDisplayedLanguages", "showDomainsWithLanguageName"], outputs: ["onLanguageChange", "onDomainChange"] }, { kind: "component", type: i6.TldLoaderComponent, selector: "tld-loader" }, { kind: "component", type: i7.TldTranslateButtonComponent, selector: "tld-translate-button", inputs: ["disabled", "enablePulseAnimation"], outputs: ["clicked"] }, { kind: "component", type: i8.TldListMenuComponent, selector: "tld-list-menu", inputs: ["titleKey", "list", "showContent", "selectedValue", "disabled", "ariaLabel", "valueKey", "testId"], outputs: ["selectionChange"] }, { kind: "component", type: i9.TerminologyComponent, selector: "lib-terminology", inputs: ["selectedCollectionId", "system", "disabled", "storeSelectedInLocalStorage", "setSelectedFromLocalStorage", "showMenuIconOnMobile"], outputs: ["glossarySelectEvent", "menuToggleEvent"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i12.TldDomainListComponent, selector: "tld-domain-list", inputs: ["list", "selected", "disabled"], outputs: ["selectionChange"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
|
|
147
147
|
}
|
|
148
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TldTranslateSwitcherComponent, decorators: [{
|
|
149
149
|
type: Component,
|
|
@@ -75,7 +75,7 @@ export class TranslationSystemPickerComponent {
|
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
77
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TranslationSystemPickerComponent, deps: [{ token: i1.TranslationSystemPickerService }, { token: i2.TldTranslateSystemManagementService }], target: i0.ɵɵFactoryTarget.Component });
|
|
78
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TranslationSystemPickerComponent, selector: "tld-translation-system-picker", inputs: { isCollectionsActivated: "isCollectionsActivated" }, ngImport: i0, template: "<div fxFlex fxLayout=\"row\">\r\n <ng-container *ngIf=\"isDataLoaded\">\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: sourceLanguage, localizationKey: 'SYSTEM_PICKER.SOURCE', isOpened: isSourceOpened, isSource: true, ariaLabelCode: sourceAriaLabel }\">\r\n </ng-container>\r\n <button [disabled]=\"!canSwap\" class=\"swap-languages-button\" mat-icon-button (click)=\"swap()\"\r\n aria-label=\"swap languages\" color=\"primary\" matTooltip=\"{{'TOOLTIPS.SWAP_LANGUAGES' | translate}}\">\r\n <span class=\"material-icons\" aria-hidden=\"false\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SWAP_LANGUAGES' | translate\">swap_horiz</span>\r\n </button>\r\n </div>\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: targetLanguage, localizationKey: 'SYSTEM_PICKER.TARGET', isOpened: isTargetOpened, isSource: false, ariaLabelCode: targetAriaLabel}\">\r\n </ng-container>\r\n\r\n <div *ngIf=\"collectionsVisible\" #collectionWrapper>\r\n <lib-terminology [system]=\"system\"></lib-terminology>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #languageName let-language=\"language\" let-showDomain=\"showDomain\" let-detectedLanguage=\"detectedLanguage\">\r\n <span>{{ language.lang | languageTranslate }}</span>\r\n <span *ngIf=\"detectedLanguage && !showDomain\"> - {{'SYSTEM_PICKER.DETECTED' | translate}}</span>\r\n <ng-container *ngIf=\"showDomain && domainLength>1\">\r\n <span>(</span>\r\n <span class=\"domain\">{{('DOMAINS.'+(activeDomainKey | uppercase)) | translate: {default: activeDomainKey} }}</span>\r\n <span>)</span>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #openedDropdown let-localizationKey=\"localizationKey\">\r\n {{localizationKey | translate}}\r\n</ng-template>\r\n\r\n<!--Template for language dropdown trigger. Same as for target and source with different params-->\r\n<ng-template #languageDropdownTrigger let-language=\"language\" let-isOpened=\"isOpened\" let-placeholder=\"localizationKey\"\r\n let-isSource=\"isSource\" let-ariaLabelCode=\"ariaLabelCode\">\r\n <lib-open-close-button class=\"system-picker-button\" [ngClass]=\"isSource? 'source': 'target'\"\r\n [ngClass.lt-sm]=\"'mobile'\" (click)=\"isSource? sourceClick($event): targetClick($event)\"\r\n [disableFocusOnAction]=\"true\" [isOpened]=\"isOpened\" [class.opened]=\"isOpened\" [ariaLabelCode]=\"ariaLabelCode\">\r\n <span [ngClass.lt-md]=\"'text-l-semi-bold'\" [ngClass.lt-sm]=\"'text-m-semi-bold mobile-domain-container'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"isOpened ? openedDropdown:languageName; context: { language: language, localizationKey: placeholder, showDomain: !isSource, detectedLanguage: system.detectedLanguage }\">\r\n </ng-container>\r\n </span>\r\n </lib-open-close-button>\r\n</ng-template>\r\n", styles: [":host{display:flex}.swap-languages-button{color:var(--base-40)!important}.target{margin-left:3.25em}.system-picker-button.mobile{margin-left:1.25rem}.mobile-domain-container{display:flex}.mobile-domain-container .domain{text-overflow:ellipsis;overflow:hidden;max-width:3.5rem;white-space:nowrap;display:inline-block}:host ::ng-deep .opened button{color:var(--accent)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i6.OpenCloseButtonComponent, selector: "lib-open-close-button", inputs: ["disableFocusOnAction", "disabled", "isIcon", "ariaLabelCode", "isOpened"] }, { kind: "component", type: i6.TerminologyComponent, selector: "lib-terminology", inputs: ["selectedCollectionId", "system", "disabled", "storeSelectedInLocalStorage", "showMenuIconOnMobile"], outputs: ["glossarySelectEvent", "menuToggleEvent"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.LanguageTranslatePipe, name: "languageTranslate" }] });
|
|
78
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TranslationSystemPickerComponent, selector: "tld-translation-system-picker", inputs: { isCollectionsActivated: "isCollectionsActivated" }, ngImport: i0, template: "<div fxFlex fxLayout=\"row\">\r\n <ng-container *ngIf=\"isDataLoaded\">\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: sourceLanguage, localizationKey: 'SYSTEM_PICKER.SOURCE', isOpened: isSourceOpened, isSource: true, ariaLabelCode: sourceAriaLabel }\">\r\n </ng-container>\r\n <button [disabled]=\"!canSwap\" class=\"swap-languages-button\" mat-icon-button (click)=\"swap()\"\r\n aria-label=\"swap languages\" color=\"primary\" matTooltip=\"{{'TOOLTIPS.SWAP_LANGUAGES' | translate}}\">\r\n <span class=\"material-icons\" aria-hidden=\"false\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SWAP_LANGUAGES' | translate\">swap_horiz</span>\r\n </button>\r\n </div>\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: targetLanguage, localizationKey: 'SYSTEM_PICKER.TARGET', isOpened: isTargetOpened, isSource: false, ariaLabelCode: targetAriaLabel}\">\r\n </ng-container>\r\n\r\n <div *ngIf=\"collectionsVisible\" #collectionWrapper>\r\n <lib-terminology [system]=\"system\"></lib-terminology>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #languageName let-language=\"language\" let-showDomain=\"showDomain\" let-detectedLanguage=\"detectedLanguage\">\r\n <span>{{ language.lang | languageTranslate }}</span>\r\n <span *ngIf=\"detectedLanguage && !showDomain\"> - {{'SYSTEM_PICKER.DETECTED' | translate}}</span>\r\n <ng-container *ngIf=\"showDomain && domainLength>1\">\r\n <span>(</span>\r\n <span class=\"domain\">{{('DOMAINS.'+(activeDomainKey | uppercase)) | translate: {default: activeDomainKey} }}</span>\r\n <span>)</span>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #openedDropdown let-localizationKey=\"localizationKey\">\r\n {{localizationKey | translate}}\r\n</ng-template>\r\n\r\n<!--Template for language dropdown trigger. Same as for target and source with different params-->\r\n<ng-template #languageDropdownTrigger let-language=\"language\" let-isOpened=\"isOpened\" let-placeholder=\"localizationKey\"\r\n let-isSource=\"isSource\" let-ariaLabelCode=\"ariaLabelCode\">\r\n <lib-open-close-button class=\"system-picker-button\" [ngClass]=\"isSource? 'source': 'target'\"\r\n [ngClass.lt-sm]=\"'mobile'\" (click)=\"isSource? sourceClick($event): targetClick($event)\"\r\n [disableFocusOnAction]=\"true\" [isOpened]=\"isOpened\" [class.opened]=\"isOpened\" [ariaLabelCode]=\"ariaLabelCode\">\r\n <span [ngClass.lt-md]=\"'text-l-semi-bold'\" [ngClass.lt-sm]=\"'text-m-semi-bold mobile-domain-container'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"isOpened ? openedDropdown:languageName; context: { language: language, localizationKey: placeholder, showDomain: !isSource, detectedLanguage: system.detectedLanguage }\">\r\n </ng-container>\r\n </span>\r\n </lib-open-close-button>\r\n</ng-template>\r\n", styles: [":host{display:flex}.swap-languages-button{color:var(--base-40)!important}.target{margin-left:3.25em}.system-picker-button.mobile{margin-left:1.25rem}.mobile-domain-container{display:flex}.mobile-domain-container .domain{text-overflow:ellipsis;overflow:hidden;max-width:3.5rem;white-space:nowrap;display:inline-block}:host ::ng-deep .opened button{color:var(--accent)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i6.OpenCloseButtonComponent, selector: "lib-open-close-button", inputs: ["disableFocusOnAction", "disabled", "isIcon", "ariaLabelCode", "isOpened"] }, { kind: "component", type: i6.TerminologyComponent, selector: "lib-terminology", inputs: ["selectedCollectionId", "system", "disabled", "storeSelectedInLocalStorage", "setSelectedFromLocalStorage", "showMenuIconOnMobile"], outputs: ["glossarySelectEvent", "menuToggleEvent"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.LanguageTranslatePipe, name: "languageTranslate" }] });
|
|
79
79
|
}
|
|
80
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TranslationSystemPickerComponent, decorators: [{
|
|
81
81
|
type: Component,
|
|
@@ -172,7 +172,12 @@ export class TldTranslateComponent {
|
|
|
172
172
|
.subscribe((translations) => {
|
|
173
173
|
this.configService.coreConfig.appName = translations[appNameKey];
|
|
174
174
|
});
|
|
175
|
-
this.terminologyService.getRetranslateSignal().pipe(takeUntil(this.destroy$)).subscribe(() =>
|
|
175
|
+
this.terminologyService.getRetranslateSignal().pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
176
|
+
if (this.translateFileService.fileNames.length) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
this.translateButtonClick();
|
|
180
|
+
});
|
|
176
181
|
}
|
|
177
182
|
removeMessage(ix) {
|
|
178
183
|
this.messages.splice(ix, 1);
|
|
@@ -264,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
264
269
|
type: ViewChild,
|
|
265
270
|
args: [TldTranslateBodyComponent]
|
|
266
271
|
}] } });
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvdGxkLXRyYW5zbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvdGxkLXRyYW5zbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUYsT0FBTyxFQUFpRCx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9HLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU1oRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFFaEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9COUYsTUFBTSxPQUFPLHFCQUFxQjtJQW9FSDtJQUNWO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUE5RVQsT0FBTyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3JELGNBQWMsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUU5QyxnQkFBZ0Is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LEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUM7aUJBQ2IsQ0FBQztnQkFFRixVQUFVLENBQUMsUUFBUSxFQUNqQixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdEMsQ0FBQztTQUNIOzs0RkFFVSxxQkFBcUI7a0JBakJqQyxTQUFTOytCQUNFLGVBQWUsY0FHYjt3QkFDVixPQUFPLENBQUMsb0JBQW9CLEVBQUU7NEJBRTVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDOzRCQUVGLFVBQVUsQ0FBQyxRQUFRLEVBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDdEMsQ0FBQztxQkFDSDtxZ0JBR1MsT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUUrQixnQkFBZ0I7c0JBQXJELFNBQVM7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2ZURhdGEsIEFsZXJ0U2VydmljZSwgTm90aWZpY2F0aW9uTWVzc2FnZSwgTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGF2YWlsYWJsZUxhbmd1YWdlcyB9IGZyb20gJy4vaTE4bi9hdmFpbGFibGUtbGFuZ3VhZ2VzJztcclxuaW1wb3J0IHsgQXVkaW9SZWNvcmRTZXJ2aWNlLCBUbGRWb2ljZUlucHV0U2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtYXVkaW8vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVCdXR0b25TZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1jb21tb24vY29tcG9uZW50cy90cmFuc2xhdGUtYnV0dG9uL3RsZC10cmFuc2xhdGUtYnV0dG9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJQXV0aE9wdGlvbnMsIGxhbmd1YWdlTWVudVZlcnNpb24gfSBmcm9tICcuL21vZHVsZXMvdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVTeXN0ZW1NYW5hZ2VtZW50U2VydmljZSwgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgV3R3TGlua1BhcmFtc1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZXMvdGxkLWNvbW1vbi9zZXJ2aWNlcy93dHctbGluay1wYXJhbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUZpbGVTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1kb2N1bWVudC9zZXJ2aWNlcy90bGQtdHJhbnNsYXRlLWZpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZVRleHRTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC10ZXh0L3NlcnZpY2VzL3RsZC10cmFuc2xhdGUtdGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVN3aXRjaGVyVHJhbnNsYXRpb25PcHRpb25zIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC10b29sdGlwL21vZGVscy9zd2l0Y2hlci1vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgT3BlbmVkTWVudSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL21vZGVscy9vcGVuZWQtbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU3lzdGVtUGlja2VyU2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJvZHlDb21wb25lbnQgfSBmcm9tICcuL3RsZC10cmFuc2xhdGUtYm9keS90bGQtdHJhbnNsYXRlLWJvZHkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lTZXJ2aWNlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLXRyYW5zbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10cmFuc2xhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RsZC10cmFuc2xhdGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdvcGVuQ2xvc2VBbmltYXRpb24nLCBbXHJcblxyXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXHJcbiAgICAgICAgc3R5bGUoeyBoZWlnaHQ6IDAgfSksXHJcbiAgICAgICAgYW5pbWF0ZSg1MDApXHJcbiAgICAgIF0pLFxyXG5cclxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJyxcclxuICAgICAgICBhbmltYXRlKDUwMCwgc3R5bGUoeyBoZWlnaHQ6IDAgfSkpKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQE91dHB1dCgpIG9uRXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIG9uU3lzdGVtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QWN0aXZlRGF0YT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2ZURhdGE+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoVGxkVHJhbnNsYXRlQm9keUNvbXBvbmVudCkgdGxkVHJhbnNsYXRlQm9keTogVGxkVHJhbnNsYXRlQm9keUNvbXBvbmVudDtcclxuXHJcbiAgYWN0aXZlU3lzdGVtT2JqOiBBY3RpdmVEYXRhO1xyXG4gIG1lc3NhZ2VzOiBOb3RpZmljYXRpb25NZXNzYWdlW10gPSBbXTtcclxuXHJcbiAgc3dpdGNoZXJPcHRpb25zOiBJU3dpdGNoZXJUcmFuc2xhdGlvbk9wdGlvbnM7XHJcblxyXG4gIGdldCBhY3Rpb25CdXR0b25Mb2FkZXIoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmlzVHJhbnNsYXRpbmc7IH1cclxuXHJcbiAgZ2V0IHNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5zaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgbWF4RGlzcGxheWVkTGFuZ3VhZ2VzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgbm9TeXN0ZW1zRXJyb3I6IE5vdGlmaWNhdGlvbk1lc3NhZ2UgPSB7IGJvZHk6IFwiVExEX1RSQU5TTEFURS5FUlJPUl9OT19TWVNURU1TX0xPQURFRFwiLCB0eXBlOiBOb3RpZmljYXRpb25NZXNzYWdlVHlwZS5FUlJPUiwgaGlkZUNsb3NlOiB0cnVlIH07XHJcblxyXG4gIGdldCBhY3Rpb25CdXR0b25EaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLmRpc2FibGVUcmFuc2xhdGVCdXR0b25cclxuICAgICAgfHwgdGhpcy5hdWRpb1NlcnZpY2UuaXNSZWNvcmRpbmdcclxuICAgICAgfHwgdGhpcy52b2ljZVByb2Nlc3NpbmdTZXJ2aWNlLmlzUHJvY2Vzc2luZ1xyXG4gICAgICB8fCB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmlzRGljdGF0aW5nXHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1RyYW5zbGF0ZUJ1dHRvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2UudGV4dENvbmZpZy5zaG93VHJhbnNsYXRlQnV0dG9uICYmICF0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLm11bHRpcGxlRmlsZVVwbG9hZEFjdGl2ZTtcclxuICB9XHJcblxyXG4gIC8vIHRoaXMgcGFyYW0gaXMgbmVjZXNzYXJ5IHRvIHJlbW92ZSBtYXggaGVpZ2h0IGlmIG11bHRpcGxlIGZpbGUgY29tcG9uZW50IGlzIGFjdGl2ZSwgc2luY2UgdGhlcmUgc2hvdWxkbid0IGJlIG1heCBoZWlnaHQgaW4gdGhhdCBjYXNlLlxyXG4gIGdldCBpc011bHRpcGxlRmlsZXNBY3RpdmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50bGRUcmFuc2xhdGVCb2R5Py5tdWx0aXBsZUZpbGVzVXBsb2FkZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaGlkZUxhbmdNZW51TGFiZWxzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZT8uY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHM7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNDb2xsZWN0aW9uc0FjdGl2YXRlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2U/LnRlcm1Db25maWc/LmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgc291cmNlTGFuZ3VhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVTeXN0ZW1PYmo/LnNvdXJjZUxhbmcubGFuZztcclxuICB9XHJcblxyXG4gIGdldCB0YXJnZXRMYW5ndWFnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVN5c3RlbU9iaj8udGFyZ2V0TGFuZy5sYW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN5c3RlbVBpY2tlckRyb3Bkb3duVmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN5c3RlbVBpY2tlclNlcnZpY2Uub3BlbmVkTWVudSAhPT0gT3BlbmVkTWVudS5OT05FO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhbmd1YWdlTWVudVZlcnNpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWc/Lmxhbmd1YWdlTWVudVZlcnNpb247XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBsYW5ndWFnZU1lbnVWMSA9IGxhbmd1YWdlTWVudVZlcnNpb24uVjE7XHJcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VNZW51VjIgPSBsYW5ndWFnZU1lbnVWZXJzaW9uLlYyO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZUZpbGVTZXJ2aWNlOiBUbGRUcmFuc2xhdGVGaWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlVGV4dFNlcnZpY2U6IFRsZFRyYW5zbGF0ZVRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlQnV0dG9uU2VydmljZTogVGxkVHJhbnNsYXRlQnV0dG9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRUcmFuc2xhdGVTeXN0ZW1NYW5hZ2VtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXVkaW9TZXJ2aWNlOiBBdWRpb1JlY29yZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZvaWNlUHJvY2Vzc2luZ1NlcnZpY2U6IFRsZFZvaWNlSW5wdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB3dHdRdWVyeVNlcnZpY2U6IFd0d0xpbmtQYXJhbXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzeXN0ZW1QaWNrZXJTZXJ2aWNlOiBUcmFuc2xhdGlvblN5c3RlbVBpY2tlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlcm1pbm9sb2d5U2VydmljZTogVGVybWlub2xvZ3lTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBjaGFuZ2VBdXRoKGF1dGhPcHRpb25zOiBJQXV0aE9wdGlvbnMpIHtcclxuICAgIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmlzQXV0aCA9IGF1dGhPcHRpb25zLmlzQXV0aDtcclxuICAgIHRoaXMuY29uZmlnU2VydmljZS50ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb24gPSBhdXRoT3B0aW9ucy5jYW5DcmVhdGVUZXJtQ29sbGVjdGlvbjtcclxuICAgIHRoaXMudHJhbnNsYXRlRmlsZVNlcnZpY2UuY2xlYXIoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVdpZGdldCgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZVdpZGdldCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmluaXQodGhpcy50bGRTeXN0ZW0uZ2V0TGFzdFVzZWRTeXN0ZW0oKSA/PyB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5kZWZhdWx0U3lzdGVtSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnJlbW92ZU1lc3NhZ2VzT25DbGVhcigpO1xyXG5cclxuICAgIHRoaXMudGxkU3lzdGVtLmdldExvYWRlZFN5c3RlbXMoKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKCFyZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHRoaXMubm9TeXN0ZW1zRXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5kZWJ1Zykge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBhdmFpbGFibGVMYW5ndWFnZXMpIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXRUcmFuc2xhdGlvbihrZXksIGF2YWlsYWJsZUxhbmd1YWdlc1trZXldLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5pdGlhbGl6ZVdpZGdldCgpO1xyXG5cclxuICAgIHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZURhdGEoKS5waXBlKFxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbDogQWN0aXZlRGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlU3lzdGVtT2JqID0gdmFsO1xyXG4gICAgICAgIGlmICghdmFsKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9uU3lzdGVtQ2hhbmdlLmVtaXQodmFsKTtcclxuXHJcbiAgICAgICAgdGhpcy5zd2l0Y2hlck9wdGlvbnMgPSB7XHJcbiAgICAgICAgICBkb21haW5zOiB2YWwuZG9tYWlucyxcclxuICAgICAgICAgIHNvdXJjZTogeyBjb2RlOiB2YWwuc291cmNlTGFuZy5sYW5nLCBzeXN0ZW1JZDogdmFsLnN5c3RlbUlkIH0sXHJcbiAgICAgICAgICBzb3VyY2VMYW5ndWFnZUxpc3Q6IHZhbC5zb3VyY2VMYW5nTGlzdCxcclxuICAgICAgICAgIHN5c3RlbUlkOiB2YWwuc3lzdGVtSWQsXHJcbiAgICAgICAgICBzd2FwQWN0aXZlOiB2YWwuc3dhcExhbmdBY3RpdmUsXHJcbiAgICAgICAgICB0YXJnZXQ6IHsgY29kZTogdmFsLnRhcmdldExhbmcubGFuZywgc3lzdGVtSWQ6IHZhbC5zeXN0ZW1JZCB9LFxyXG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VMaXN0OiB2YWwudGFyZ2V0TGFuZ0xpc3QsXHJcbiAgICAgICAgICB2ZW5kb3JzOiB2YWwudmVuZG9yc1xyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2Uuc291cmNlQ2hhbmdlLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQuc3dhcFN5c3RlbXMpIHtcclxuICAgICAgICAgIHRoaXMuc3dhcExhbmd1YWdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGVCdXR0b25TZXJ2aWNlLmdldEFjdGlvbkNsaWNrKCkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZUJ1dHRvbkNsaWNrKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMud3R3UXVlcnlTZXJ2aWNlLnF1ZXJ5KCkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChxdWVyeTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5mb3JFYWNoKG1zZyA9PiB7XHJcbiAgICAgICAgICBtc2cubG9jYWxpemF0aW9uUGFyYW1zLnF1ZXJ5U3RyaW5nID0gcXVlcnlcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5hbGVydHMuZ2V0TWVzc2FnZXMoKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IE5vdGlmaWNhdGlvbk1lc3NhZ2UpID0+IHtcclxuICAgICAgICBtZXNzYWdlLmxvY2FsaXphdGlvblBhcmFtcy5xdWVyeVN0cmluZyA9IHRoaXMud3R3UXVlcnlTZXJ2aWNlLmRlZmF1bHRRdWVyeVN0cmluZztcclxuICAgICAgICBpZiAobWVzc2FnZT8uZGVsZXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUV4aXN0aW5nTWVzc2FnZShtZXNzYWdlKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLkVSUk9SKSB7XHJcbiAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdChtZXNzYWdlLmVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICBcclxuICAgICAgICB0aGlzLmFkZE1lc3NhZ2UobWVzc2FnZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGFwcE5hbWVLZXkgPSBcIkFQUF9OQU1FXCI7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5zdHJlYW0oW2FwcE5hbWVLZXldKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHRyYW5zbGF0aW9ucykgPT4ge1xyXG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmFwcE5hbWUgPSB0cmFuc2xhdGlvbnNbYXBwTmFtZUtleV07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLmdldFJldHJhbnNsYXRlU2lnbmFsKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiBcclxuICAgICAgdGhpcy50cmFuc2xhdGVCdXR0b25DbGljaygpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTWVzc2FnZShpeDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2VzLnNwbGljZShpeCwgMSk7XHJcbiAgfVxyXG5cclxuICBzd2FwTGFuZ3VhZ2VzKCkge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uc3dhcFN5c3RlbUxhbmd1YWdlcygpO1xyXG4gIH1cclxuXHJcbiAgc291cmNlTGFuZ3VhZ2VDaGFuZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlTGFuZ3VhZ2UobGFuZ3VhZ2UsIHRoaXMuc3dpdGNoZXJPcHRpb25zLnRhcmdldC5jb2RlKTtcclxuICB9XHJcblxyXG4gIHN5c3RlbUNoYW5nZShzeXN0ZW1JZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5jaGFuZ2VTeXN0ZW0oc3lzdGVtSWQpO1xyXG4gIH1cclxuXHJcbiAgdGFyZ2V0TGFuZ3VhZ2VDaGFuZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlTGFuZ3VhZ2UodGhpcy5zd2l0Y2hlck9wdGlvbnMuc291cmNlLmNvZGUsIGxhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIHRyYW5zbGF0ZUJ1dHRvbkNsaWNrKCkge1xyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRlRmlsZVNlcnZpY2UudHJhbnNsYXRpb25GaWxlcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLnRyYW5zbGF0ZUJ1dHRvbkNsaWNrKHRoaXMuYWN0aXZlU3lzdGVtT2JqKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLm9uVHJhbnNsYXRlQnV0dG9uQ2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZU1lc3NhZ2VzT25DbGVhcigpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlRmlsZVNlcnZpY2Uub25DbGVhcigpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xyXG4gICAgICB9KVxyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2Uub25DbGVhcigpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQobnVsbClcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlRXhpc3RpbmdNZXNzYWdlKG1lc3NhZ2U6IE5vdGlmaWNhdGlvbk1lc3NhZ2UpOiB2b2lkIHtcclxuICAgIGRlbGV0ZSBtZXNzYWdlLmRlbGV0ZTtcclxuICAgIGNvbnN0IGRlbGV0ZU1zZ1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpO1xyXG4gICAgY29uc3QgbXNnID0gdGhpcy5tZXNzYWdlcy5maW5kKChleGlzdGluZ01zZykgPT4gXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KGV4aXN0aW5nTXNnKSA9PT0gZGVsZXRlTXNnU3RyaW5nKTtcclxuICAgICAgXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubWVzc2FnZXMuaW5kZXhPZihtc2cpO1xyXG5cclxuICAgIGlmIChpbmRleCA8IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVtb3ZlTWVzc2FnZShpbmRleCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZE1lc3NhZ2UobWVzc2FnZTogTm90aWZpY2F0aW9uTWVzc2FnZSk6IHZvaWQge1xyXG4gICAgLy8gcHVzaGluZyBvbmx5IFwib25lIG9mXCIgbWVzc2FnZSBpbiBhcnJheSwgc28gc2NyZWVuIGlzIG5vdCBzcGFtbWVkIHdpdGggbWVzc2FnZXNcclxuICAgIGNvbnN0IGRlbGV0ZU1zZ1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UubG9jYWxpemF0aW9uUGFyYW1zKTtcclxuICAgIGNvbnN0IGV4aXN0aW5nTWVzc2FnZSA9IHRoaXMubWVzc2FnZXMuZmluZChtc2cgPT4gbXNnLnRpdGxlID09PSBtZXNzYWdlLnRpdGxlXHJcbiAgICAgICYmIG1zZy50eXBlID09PSBtZXNzYWdlLnR5cGVcclxuICAgICAgJiYgbWVzc2FnZS5ib2R5ID09PSBtc2cuYm9keVxyXG4gICAgICAmJiBKU09OLnN0cmluZ2lmeShtc2cubG9jYWxpemF0aW9uUGFyYW1zKSA9PT0gZGVsZXRlTXNnU3RyaW5nKTtcclxuICAgIGlmICghZXhpc3RpbmdNZXNzYWdlKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMucHVzaChtZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwiaC0xMDAgdGxkLXRyYW5zbGF0ZVwiXHJcbiAgW25nQ2xhc3MubHQtbWRdPVwiJ3RsZC10cmFuc2xhdGUtdGFibGV0IHRsZC1kZWZhdWx0LWJvcmRlci1ib3R0b20nXCJcclxuICBbbmdDbGFzcy5sdC1zbV09XCIndGxkLXRyYW5zbGF0ZS1tb2JpbGUgdGxkLWRlZmF1bHQtYm9yZGVyLWJvdHRvbSdcIlxyXG4gIFtjbGFzcy50bGQtdHJhbnNsYXRlLW11bHRpcGxlLWZpbGVzLWFjdGl2ZV09XCJpc011bHRpcGxlRmlsZXNBY3RpdmVcIj5cclxuICA8ZGl2IGNsYXNzPVwidGxkLXRyYW5zbGF0ZS13cmFwcGVyIHRsZC1kZWZhdWx0LWJvcmRlclwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGbGV4PlxyXG4gICAgPGRpdiBjbGFzcz1cInRsZC10cmFuc2xhdGUtc3dpdGNoZXItd3JhcHBlciB0bGQtZGVmYXVsdC1ib3JkZXItYm90dG9tXCI+XHJcbiAgICAgIDx0bGQtdHJhbnNsYXRlLXN3aXRjaGVyICpuZ0lmPVwic3dpdGNoZXJPcHRpb25zICYmIGxhbmd1YWdlTWVudVZlcnNpb24gPT09IGxhbmd1YWdlTWVudVYxXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uQnV0dG9uRGlzYWJsZWRcIiBbaXNDb2xsZWN0aW9uc0FjdGl2YXRlZF09XCJpc0NvbGxlY3Rpb25zQWN0aXZhdGVkXCIgW3NldHRpbmdzXT1cInN3aXRjaGVyT3B0aW9uc1wiXHJcbiAgICAgICAgW21heERpc3BsYXllZExhbmd1YWdlc109XCJtYXhEaXNwbGF5ZWRMYW5ndWFnZXNcIiBbc2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lXT1cInNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZVwiXHJcbiAgICAgICAgW2J1dHRvbkRpc2FibGVkXT1cImFjdGlvbkJ1dHRvbkRpc2FibGVkXCIgW2hpZGVMYW5nTWVudUxhYmVsc109XCJoaWRlTGFuZ01lbnVMYWJlbHNcIlxyXG4gICAgICAgIChvbkRvbWFpbkNoYW5nZSk9XCJzeXN0ZW1DaGFuZ2UoJGV2ZW50KVwiIChvbkFjdGlvbkNsaWNrKT1cInRyYW5zbGF0ZUJ1dHRvbkNsaWNrKClcIlxyXG4gICAgICAgIChvbkxhbmd1YWdlU3dhcCk9XCJzd2FwTGFuZ3VhZ2VzKClcIiAob25Tb3VyY2VMYW5ndWFnZUNoYW5nZSk9XCJzb3VyY2VMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAob25UYXJnZXRMYW5ndWFnZUNoYW5nZSk9XCJ0YXJnZXRMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCIgW2xvYWRlcl09XCJhY3Rpb25CdXR0b25Mb2FkZXJcIiBbc2hvd1RyYW5zbGF0ZUJ1dHRvbl09XCJzaG93VHJhbnNsYXRlQnV0dG9uXCI+XHJcbiAgICAgIDwvdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlcj5cclxuICAgICAgPHRsZC10cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyICpuZ0lmPVwibGFuZ3VhZ2VNZW51VmVyc2lvbj09PWxhbmd1YWdlTWVudVYyXCJcclxuICAgICAgICBbaXNDb2xsZWN0aW9uc0FjdGl2YXRlZF09XCJpc0NvbGxlY3Rpb25zQWN0aXZhdGVkXCI+PC90bGQtdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VzLmxlbmd0aFwiIGNsYXNzPVwibWVzc2FnZS13cmFwcGVyXCI+XHJcbiAgICAgIDxsaWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlIFtpbmxpbmVdPVwidHJ1ZVwiICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIG1lc3NhZ2VzOyBsZXQgaXggPSBpbmRleFwiIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxyXG4gICAgICAgIChjbG9zZUNsaWNrZWQpPVwicmVtb3ZlTWVzc2FnZShpeClcIj5cclxuICAgICAgPC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGZ4RmxleCBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cclxuICAgICAgPHRsZC10cmFuc2xhdGUtYm9keSBmeEZsZXggZnhMYXlvdXRBbGlnbj1cImNvbHVtblwiIFthdHRyLnNvdXJjZS1sYW5ndWFnZV09XCJzb3VyY2VMYW5ndWFnZVwiXHJcbiAgICAgICAgW2F0dHIudGFyZ2V0LWxhbmd1YWdlXT1cInRhcmdldExhbmd1YWdlXCI+PC90bGQtdHJhbnNsYXRlLWJvZHk+XHJcbiAgICAgIDx0bGQtdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci1kcm9wZG93biBbbmdDbGFzcy54c109XCInbW9iaWxlJ1wiICpuZ0lmPVwic3lzdGVtUGlja2VyRHJvcGRvd25WaXNpYmxlXCI+XHJcbiAgICAgIDwvdGxkLXRyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXItZHJvcGRvd24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvdGxkLXRyYW5zbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvdGxkLXRyYW5zbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUYsT0FBTyxFQUFpRCx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9HLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU1oRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFFaEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9COUYsTUFBTSxPQUFPLHFCQUFxQjtJQW9FSDtJQUNWO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUE5RVQsT0FBTyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3JELGNBQWMsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUU5QyxnQkFBZ0Is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RExRO1lBQ1YsT0FBTyxDQUFDLG9CQUFvQixFQUFFO2dCQUU1QixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNuQixLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUM7aUJBQ2IsQ0FBQztnQkFFRixVQUFVLENBQUMsUUFBUSxFQUNqQixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdEMsQ0FBQztTQUNIOzs0RkFFVSxxQkFBcUI7a0JBakJqQyxTQUFTOytCQUNFLGVBQWUsY0FHYjt3QkFDVixPQUFPLENBQUMsb0JBQW9CLEVBQUU7NEJBRTVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDOzRCQUVGLFVBQVUsQ0FBQyxRQUFRLEVBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDdEMsQ0FBQztxQkFDSDtxZ0JBR1MsT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUUrQixnQkFBZ0I7c0JBQXJELFNBQVM7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2ZURhdGEsIEFsZXJ0U2VydmljZSwgTm90aWZpY2F0aW9uTWVzc2FnZSwgTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGF2YWlsYWJsZUxhbmd1YWdlcyB9IGZyb20gJy4vaTE4bi9hdmFpbGFibGUtbGFuZ3VhZ2VzJztcclxuaW1wb3J0IHsgQXVkaW9SZWNvcmRTZXJ2aWNlLCBUbGRWb2ljZUlucHV0U2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtYXVkaW8vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVCdXR0b25TZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1jb21tb24vY29tcG9uZW50cy90cmFuc2xhdGUtYnV0dG9uL3RsZC10cmFuc2xhdGUtYnV0dG9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJQXV0aE9wdGlvbnMsIGxhbmd1YWdlTWVudVZlcnNpb24gfSBmcm9tICcuL21vZHVsZXMvdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVTeXN0ZW1NYW5hZ2VtZW50U2VydmljZSwgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgV3R3TGlua1BhcmFtc1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZXMvdGxkLWNvbW1vbi9zZXJ2aWNlcy93dHctbGluay1wYXJhbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUZpbGVTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1kb2N1bWVudC9zZXJ2aWNlcy90bGQtdHJhbnNsYXRlLWZpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZVRleHRTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC10ZXh0L3NlcnZpY2VzL3RsZC10cmFuc2xhdGUtdGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVN3aXRjaGVyVHJhbnNsYXRpb25PcHRpb25zIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC10b29sdGlwL21vZGVscy9zd2l0Y2hlci1vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgT3BlbmVkTWVudSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL21vZGVscy9vcGVuZWQtbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU3lzdGVtUGlja2VyU2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJvZHlDb21wb25lbnQgfSBmcm9tICcuL3RsZC10cmFuc2xhdGUtYm9keS90bGQtdHJhbnNsYXRlLWJvZHkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lTZXJ2aWNlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLXRyYW5zbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10cmFuc2xhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RsZC10cmFuc2xhdGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdvcGVuQ2xvc2VBbmltYXRpb24nLCBbXHJcblxyXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXHJcbiAgICAgICAgc3R5bGUoeyBoZWlnaHQ6IDAgfSksXHJcbiAgICAgICAgYW5pbWF0ZSg1MDApXHJcbiAgICAgIF0pLFxyXG5cclxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJyxcclxuICAgICAgICBhbmltYXRlKDUwMCwgc3R5bGUoeyBoZWlnaHQ6IDAgfSkpKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQE91dHB1dCgpIG9uRXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIG9uU3lzdGVtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QWN0aXZlRGF0YT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2ZURhdGE+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoVGxkVHJhbnNsYXRlQm9keUNvbXBvbmVudCkgdGxkVHJhbnNsYXRlQm9keTogVGxkVHJhbnNsYXRlQm9keUNvbXBvbmVudDtcclxuXHJcbiAgYWN0aXZlU3lzdGVtT2JqOiBBY3RpdmVEYXRhO1xyXG4gIG1lc3NhZ2VzOiBOb3RpZmljYXRpb25NZXNzYWdlW10gPSBbXTtcclxuXHJcbiAgc3dpdGNoZXJPcHRpb25zOiBJU3dpdGNoZXJUcmFuc2xhdGlvbk9wdGlvbnM7XHJcblxyXG4gIGdldCBhY3Rpb25CdXR0b25Mb2FkZXIoKSB7IHJldHVybiB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmlzVHJhbnNsYXRpbmc7IH1cclxuXHJcbiAgZ2V0IHNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5zaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgbWF4RGlzcGxheWVkTGFuZ3VhZ2VzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgbm9TeXN0ZW1zRXJyb3I6IE5vdGlmaWNhdGlvbk1lc3NhZ2UgPSB7IGJvZHk6IFwiVExEX1RSQU5TTEFURS5FUlJPUl9OT19TWVNURU1TX0xPQURFRFwiLCB0eXBlOiBOb3RpZmljYXRpb25NZXNzYWdlVHlwZS5FUlJPUiwgaGlkZUNsb3NlOiB0cnVlIH07XHJcblxyXG4gIGdldCBhY3Rpb25CdXR0b25EaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLmRpc2FibGVUcmFuc2xhdGVCdXR0b25cclxuICAgICAgfHwgdGhpcy5hdWRpb1NlcnZpY2UuaXNSZWNvcmRpbmdcclxuICAgICAgfHwgdGhpcy52b2ljZVByb2Nlc3NpbmdTZXJ2aWNlLmlzUHJvY2Vzc2luZ1xyXG4gICAgICB8fCB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLmlzRGljdGF0aW5nXHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1RyYW5zbGF0ZUJ1dHRvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2UudGV4dENvbmZpZy5zaG93VHJhbnNsYXRlQnV0dG9uICYmICF0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLm11bHRpcGxlRmlsZVVwbG9hZEFjdGl2ZTtcclxuICB9XHJcblxyXG4gIC8vIHRoaXMgcGFyYW0gaXMgbmVjZXNzYXJ5IHRvIHJlbW92ZSBtYXggaGVpZ2h0IGlmIG11bHRpcGxlIGZpbGUgY29tcG9uZW50IGlzIGFjdGl2ZSwgc2luY2UgdGhlcmUgc2hvdWxkbid0IGJlIG1heCBoZWlnaHQgaW4gdGhhdCBjYXNlLlxyXG4gIGdldCBpc011bHRpcGxlRmlsZXNBY3RpdmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50bGRUcmFuc2xhdGVCb2R5Py5tdWx0aXBsZUZpbGVzVXBsb2FkZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaGlkZUxhbmdNZW51TGFiZWxzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZT8uY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHM7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNDb2xsZWN0aW9uc0FjdGl2YXRlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2U/LnRlcm1Db25maWc/LmlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgc291cmNlTGFuZ3VhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVTeXN0ZW1PYmo/LnNvdXJjZUxhbmcubGFuZztcclxuICB9XHJcblxyXG4gIGdldCB0YXJnZXRMYW5ndWFnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVN5c3RlbU9iaj8udGFyZ2V0TGFuZy5sYW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN5c3RlbVBpY2tlckRyb3Bkb3duVmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN5c3RlbVBpY2tlclNlcnZpY2Uub3BlbmVkTWVudSAhPT0gT3BlbmVkTWVudS5OT05FO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhbmd1YWdlTWVudVZlcnNpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWc/Lmxhbmd1YWdlTWVudVZlcnNpb247XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBsYW5ndWFnZU1lbnVWMSA9IGxhbmd1YWdlTWVudVZlcnNpb24uVjE7XHJcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VNZW51VjIgPSBsYW5ndWFnZU1lbnVWZXJzaW9uLlYyO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZUZpbGVTZXJ2aWNlOiBUbGRUcmFuc2xhdGVGaWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlVGV4dFNlcnZpY2U6IFRsZFRyYW5zbGF0ZVRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlQnV0dG9uU2VydmljZTogVGxkVHJhbnNsYXRlQnV0dG9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRUcmFuc2xhdGVTeXN0ZW1NYW5hZ2VtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXVkaW9TZXJ2aWNlOiBBdWRpb1JlY29yZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZvaWNlUHJvY2Vzc2luZ1NlcnZpY2U6IFRsZFZvaWNlSW5wdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB3dHdRdWVyeVNlcnZpY2U6IFd0d0xpbmtQYXJhbXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzeXN0ZW1QaWNrZXJTZXJ2aWNlOiBUcmFuc2xhdGlvblN5c3RlbVBpY2tlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlcm1pbm9sb2d5U2VydmljZTogVGVybWlub2xvZ3lTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBjaGFuZ2VBdXRoKGF1dGhPcHRpb25zOiBJQXV0aE9wdGlvbnMpIHtcclxuICAgIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmlzQXV0aCA9IGF1dGhPcHRpb25zLmlzQXV0aDtcclxuICAgIHRoaXMuY29uZmlnU2VydmljZS50ZXJtQ29uZmlnLmNhbkNyZWF0ZUNvbGxlY3Rpb24gPSBhdXRoT3B0aW9ucy5jYW5DcmVhdGVUZXJtQ29sbGVjdGlvbjtcclxuICAgIHRoaXMudHJhbnNsYXRlRmlsZVNlcnZpY2UuY2xlYXIoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVdpZGdldCgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZVdpZGdldCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmluaXQodGhpcy50bGRTeXN0ZW0uZ2V0TGFzdFVzZWRTeXN0ZW0oKSA/PyB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5kZWZhdWx0U3lzdGVtSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnJlbW92ZU1lc3NhZ2VzT25DbGVhcigpO1xyXG5cclxuICAgIHRoaXMudGxkU3lzdGVtLmdldExvYWRlZFN5c3RlbXMoKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKCFyZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHRoaXMubm9TeXN0ZW1zRXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5kZWJ1Zykge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBhdmFpbGFibGVMYW5ndWFnZXMpIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXRUcmFuc2xhdGlvbihrZXksIGF2YWlsYWJsZUxhbmd1YWdlc1trZXldLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5pdGlhbGl6ZVdpZGdldCgpO1xyXG5cclxuICAgIHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZURhdGEoKS5waXBlKFxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbDogQWN0aXZlRGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlU3lzdGVtT2JqID0gdmFsO1xyXG4gICAgICAgIGlmICghdmFsKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9uU3lzdGVtQ2hhbmdlLmVtaXQodmFsKTtcclxuXHJcbiAgICAgICAgdGhpcy5zd2l0Y2hlck9wdGlvbnMgPSB7XHJcbiAgICAgICAgICBkb21haW5zOiB2YWwuZG9tYWlucyxcclxuICAgICAgICAgIHNvdXJjZTogeyBjb2RlOiB2YWwuc291cmNlTGFuZy5sYW5nLCBzeXN0ZW1JZDogdmFsLnN5c3RlbUlkIH0sXHJcbiAgICAgICAgICBzb3VyY2VMYW5ndWFnZUxpc3Q6IHZhbC5zb3VyY2VMYW5nTGlzdCxcclxuICAgICAgICAgIHN5c3RlbUlkOiB2YWwuc3lzdGVtSWQsXHJcbiAgICAgICAgICBzd2FwQWN0aXZlOiB2YWwuc3dhcExhbmdBY3RpdmUsXHJcbiAgICAgICAgICB0YXJnZXQ6IHsgY29kZTogdmFsLnRhcmdldExhbmcubGFuZywgc3lzdGVtSWQ6IHZhbC5zeXN0ZW1JZCB9LFxyXG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VMaXN0OiB2YWwudGFyZ2V0TGFuZ0xpc3QsXHJcbiAgICAgICAgICB2ZW5kb3JzOiB2YWwudmVuZG9yc1xyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2Uuc291cmNlQ2hhbmdlLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQuc3dhcFN5c3RlbXMpIHtcclxuICAgICAgICAgIHRoaXMuc3dhcExhbmd1YWdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGVCdXR0b25TZXJ2aWNlLmdldEFjdGlvbkNsaWNrKCkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZUJ1dHRvbkNsaWNrKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMud3R3UXVlcnlTZXJ2aWNlLnF1ZXJ5KCkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChxdWVyeTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5mb3JFYWNoKG1zZyA9PiB7XHJcbiAgICAgICAgICBtc2cubG9jYWxpemF0aW9uUGFyYW1zLnF1ZXJ5U3RyaW5nID0gcXVlcnlcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5hbGVydHMuZ2V0TWVzc2FnZXMoKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IE5vdGlmaWNhdGlvbk1lc3NhZ2UpID0+IHtcclxuICAgICAgICBtZXNzYWdlLmxvY2FsaXphdGlvblBhcmFtcy5xdWVyeVN0cmluZyA9IHRoaXMud3R3UXVlcnlTZXJ2aWNlLmRlZmF1bHRRdWVyeVN0cmluZztcclxuICAgICAgICBpZiAobWVzc2FnZT8uZGVsZXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUV4aXN0aW5nTWVzc2FnZShtZXNzYWdlKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLkVSUk9SKSB7XHJcbiAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdChtZXNzYWdlLmVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICBcclxuICAgICAgICB0aGlzLmFkZE1lc3NhZ2UobWVzc2FnZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGFwcE5hbWVLZXkgPSBcIkFQUF9OQU1FXCI7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5zdHJlYW0oW2FwcE5hbWVLZXldKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHRyYW5zbGF0aW9ucykgPT4ge1xyXG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmFwcE5hbWUgPSB0cmFuc2xhdGlvbnNbYXBwTmFtZUtleV07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLmdldFJldHJhbnNsYXRlU2lnbmFsKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLmZpbGVOYW1lcy5sZW5ndGgpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudHJhbnNsYXRlQnV0dG9uQ2xpY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTWVzc2FnZShpeDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2VzLnNwbGljZShpeCwgMSk7XHJcbiAgfVxyXG5cclxuICBzd2FwTGFuZ3VhZ2VzKCkge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uc3dhcFN5c3RlbUxhbmd1YWdlcygpO1xyXG4gIH1cclxuXHJcbiAgc291cmNlTGFuZ3VhZ2VDaGFuZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlTGFuZ3VhZ2UobGFuZ3VhZ2UsIHRoaXMuc3dpdGNoZXJPcHRpb25zLnRhcmdldC5jb2RlKTtcclxuICB9XHJcblxyXG4gIHN5c3RlbUNoYW5nZShzeXN0ZW1JZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5jaGFuZ2VTeXN0ZW0oc3lzdGVtSWQpO1xyXG4gIH1cclxuXHJcbiAgdGFyZ2V0TGFuZ3VhZ2VDaGFuZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlTGFuZ3VhZ2UodGhpcy5zd2l0Y2hlck9wdGlvbnMuc291cmNlLmNvZGUsIGxhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIHRyYW5zbGF0ZUJ1dHRvbkNsaWNrKCkge1xyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRlRmlsZVNlcnZpY2UudHJhbnNsYXRpb25GaWxlcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZUZpbGVTZXJ2aWNlLnRyYW5zbGF0ZUJ1dHRvbkNsaWNrKHRoaXMuYWN0aXZlU3lzdGVtT2JqKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVRleHRTZXJ2aWNlLm9uVHJhbnNsYXRlQnV0dG9uQ2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZU1lc3NhZ2VzT25DbGVhcigpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlRmlsZVNlcnZpY2Uub25DbGVhcigpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xyXG4gICAgICB9KVxyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlVGV4dFNlcnZpY2Uub25DbGVhcigpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQobnVsbClcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlRXhpc3RpbmdNZXNzYWdlKG1lc3NhZ2U6IE5vdGlmaWNhdGlvbk1lc3NhZ2UpOiB2b2lkIHtcclxuICAgIGRlbGV0ZSBtZXNzYWdlLmRlbGV0ZTtcclxuICAgIGNvbnN0IGRlbGV0ZU1zZ1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpO1xyXG4gICAgY29uc3QgbXNnID0gdGhpcy5tZXNzYWdlcy5maW5kKChleGlzdGluZ01zZykgPT4gXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KGV4aXN0aW5nTXNnKSA9PT0gZGVsZXRlTXNnU3RyaW5nKTtcclxuICAgICAgXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubWVzc2FnZXMuaW5kZXhPZihtc2cpO1xyXG5cclxuICAgIGlmIChpbmRleCA8IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVtb3ZlTWVzc2FnZShpbmRleCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZE1lc3NhZ2UobWVzc2FnZTogTm90aWZpY2F0aW9uTWVzc2FnZSk6IHZvaWQge1xyXG4gICAgLy8gcHVzaGluZyBvbmx5IFwib25lIG9mXCIgbWVzc2FnZSBpbiBhcnJheSwgc28gc2NyZWVuIGlzIG5vdCBzcGFtbWVkIHdpdGggbWVzc2FnZXNcclxuICAgIGNvbnN0IGRlbGV0ZU1zZ1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UubG9jYWxpemF0aW9uUGFyYW1zKTtcclxuICAgIGNvbnN0IGV4aXN0aW5nTWVzc2FnZSA9IHRoaXMubWVzc2FnZXMuZmluZChtc2cgPT4gbXNnLnRpdGxlID09PSBtZXNzYWdlLnRpdGxlXHJcbiAgICAgICYmIG1zZy50eXBlID09PSBtZXNzYWdlLnR5cGVcclxuICAgICAgJiYgbWVzc2FnZS5ib2R5ID09PSBtc2cuYm9keVxyXG4gICAgICAmJiBKU09OLnN0cmluZ2lmeShtc2cubG9jYWxpemF0aW9uUGFyYW1zKSA9PT0gZGVsZXRlTXNnU3RyaW5nKTtcclxuICAgIGlmICghZXhpc3RpbmdNZXNzYWdlKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMucHVzaChtZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwiaC0xMDAgdGxkLXRyYW5zbGF0ZVwiXHJcbiAgW25nQ2xhc3MubHQtbWRdPVwiJ3RsZC10cmFuc2xhdGUtdGFibGV0IHRsZC1kZWZhdWx0LWJvcmRlci1ib3R0b20nXCJcclxuICBbbmdDbGFzcy5sdC1zbV09XCIndGxkLXRyYW5zbGF0ZS1tb2JpbGUgdGxkLWRlZmF1bHQtYm9yZGVyLWJvdHRvbSdcIlxyXG4gIFtjbGFzcy50bGQtdHJhbnNsYXRlLW11bHRpcGxlLWZpbGVzLWFjdGl2ZV09XCJpc011bHRpcGxlRmlsZXNBY3RpdmVcIj5cclxuICA8ZGl2IGNsYXNzPVwidGxkLXRyYW5zbGF0ZS13cmFwcGVyIHRsZC1kZWZhdWx0LWJvcmRlclwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGbGV4PlxyXG4gICAgPGRpdiBjbGFzcz1cInRsZC10cmFuc2xhdGUtc3dpdGNoZXItd3JhcHBlciB0bGQtZGVmYXVsdC1ib3JkZXItYm90dG9tXCI+XHJcbiAgICAgIDx0bGQtdHJhbnNsYXRlLXN3aXRjaGVyICpuZ0lmPVwic3dpdGNoZXJPcHRpb25zICYmIGxhbmd1YWdlTWVudVZlcnNpb24gPT09IGxhbmd1YWdlTWVudVYxXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uQnV0dG9uRGlzYWJsZWRcIiBbaXNDb2xsZWN0aW9uc0FjdGl2YXRlZF09XCJpc0NvbGxlY3Rpb25zQWN0aXZhdGVkXCIgW3NldHRpbmdzXT1cInN3aXRjaGVyT3B0aW9uc1wiXHJcbiAgICAgICAgW21heERpc3BsYXllZExhbmd1YWdlc109XCJtYXhEaXNwbGF5ZWRMYW5ndWFnZXNcIiBbc2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lXT1cInNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZVwiXHJcbiAgICAgICAgW2J1dHRvbkRpc2FibGVkXT1cImFjdGlvbkJ1dHRvbkRpc2FibGVkXCIgW2hpZGVMYW5nTWVudUxhYmVsc109XCJoaWRlTGFuZ01lbnVMYWJlbHNcIlxyXG4gICAgICAgIChvbkRvbWFpbkNoYW5nZSk9XCJzeXN0ZW1DaGFuZ2UoJGV2ZW50KVwiIChvbkFjdGlvbkNsaWNrKT1cInRyYW5zbGF0ZUJ1dHRvbkNsaWNrKClcIlxyXG4gICAgICAgIChvbkxhbmd1YWdlU3dhcCk9XCJzd2FwTGFuZ3VhZ2VzKClcIiAob25Tb3VyY2VMYW5ndWFnZUNoYW5nZSk9XCJzb3VyY2VMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAob25UYXJnZXRMYW5ndWFnZUNoYW5nZSk9XCJ0YXJnZXRMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCIgW2xvYWRlcl09XCJhY3Rpb25CdXR0b25Mb2FkZXJcIiBbc2hvd1RyYW5zbGF0ZUJ1dHRvbl09XCJzaG93VHJhbnNsYXRlQnV0dG9uXCI+XHJcbiAgICAgIDwvdGxkLXRyYW5zbGF0ZS1zd2l0Y2hlcj5cclxuICAgICAgPHRsZC10cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyICpuZ0lmPVwibGFuZ3VhZ2VNZW51VmVyc2lvbj09PWxhbmd1YWdlTWVudVYyXCJcclxuICAgICAgICBbaXNDb2xsZWN0aW9uc0FjdGl2YXRlZF09XCJpc0NvbGxlY3Rpb25zQWN0aXZhdGVkXCI+PC90bGQtdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VzLmxlbmd0aFwiIGNsYXNzPVwibWVzc2FnZS13cmFwcGVyXCI+XHJcbiAgICAgIDxsaWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlIFtpbmxpbmVdPVwidHJ1ZVwiICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIG1lc3NhZ2VzOyBsZXQgaXggPSBpbmRleFwiIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxyXG4gICAgICAgIChjbG9zZUNsaWNrZWQpPVwicmVtb3ZlTWVzc2FnZShpeClcIj5cclxuICAgICAgPC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGZ4RmxleCBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cclxuICAgICAgPHRsZC10cmFuc2xhdGUtYm9keSBmeEZsZXggZnhMYXlvdXRBbGlnbj1cImNvbHVtblwiIFthdHRyLnNvdXJjZS1sYW5ndWFnZV09XCJzb3VyY2VMYW5ndWFnZVwiXHJcbiAgICAgICAgW2F0dHIudGFyZ2V0LWxhbmd1YWdlXT1cInRhcmdldExhbmd1YWdlXCI+PC90bGQtdHJhbnNsYXRlLWJvZHk+XHJcbiAgICAgIDx0bGQtdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci1kcm9wZG93biBbbmdDbGFzcy54c109XCInbW9iaWxlJ1wiICpuZ0lmPVwic3lzdGVtUGlja2VyRHJvcGRvd25WaXNpYmxlXCI+XHJcbiAgICAgIDwvdGxkLXRyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXItZHJvcGRvd24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|