@cometchat/chat-uikit-angular 4.1.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +1 -0
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +5 -3
- package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +7 -0
- package/Shared/CometChatUIkit/CometChatUIKit.d.ts +7 -1
- package/Shared/Framework/DataSource.d.ts +2 -1
- package/Shared/Framework/DataSourceDecorator.d.ts +1 -0
- package/Shared/Utils/MessageUtils.d.ts +1 -0
- package/assets/empty-slot.svg +14 -0
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +7 -2
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +1 -2
- package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +3 -3
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +176 -39
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +52 -3
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +34 -1
- package/esm2020/Shared/Framework/DataSource.mjs +1 -1
- package/esm2020/Shared/Framework/DataSourceDecorator.mjs +4 -1
- package/esm2020/Shared/Utils/MessageUtils.mjs +15 -3
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/cometchat-chat-uikit-angular.mjs +313 -70
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +284 -47
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/package.json +4 -4
- package/public-api.d.ts +1 -1
|
@@ -282,7 +282,6 @@ export class CometChatConversationsWithMessagesComponent {
|
|
|
282
282
|
if (this.group && this.group.getGuid() == item?.leftGroup.getGuid() && this.loggedInUser?.getUid() == item?.userLeft?.getUid()) {
|
|
283
283
|
this.group = null;
|
|
284
284
|
this.activeConversation = null;
|
|
285
|
-
console.log(this.group, this.user, this.activeConversation);
|
|
286
285
|
this.ref.detectChanges();
|
|
287
286
|
}
|
|
288
287
|
});
|
|
@@ -353,4 +352,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
353
352
|
}], StartConversationConfiguration: [{
|
|
354
353
|
type: Input
|
|
355
354
|
}] } });
|
|
356
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0Q29udmVyc2F0aW9uc1dpdGhNZXNzYWdlcy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zLXdpdGgtbWVzc2FnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFFLHVCQUF1QixFQUEyRCxNQUFNLGVBQWUsQ0FBQztBQUN0SixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFFLHFCQUFxQixFQUFDLDBCQUEwQixFQUFDLHFCQUFxQixFQUFDLE1BQU0seUJBQXlCLENBQUE7QUFDakksT0FBTyxFQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFrQixvQkFBb0IsRUFBRSx1QkFBdUIsRUFBMkksMkJBQTJCLEVBQXlDLGlCQUFpQixFQUFDLE1BQU0sNEJBQTRCLENBQUE7QUFFOVcsT0FBTywyQkFBMkIsQ0FBQTs7Ozs7OztBQUdoQzs7Ozs7Ozs7RUFRQztBQU9ILE1BQU0sT0FBTywyQ0FBMkM7SUFnRHRELFlBQW9CLFVBQXNCLEVBQVMsR0FBc0IsRUFBUyxZQUFrQztRQUFoRyxlQUFVLEdBQVYs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QyxNQUFNO3FLQUl0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyw4QkFBOEI7c0JBQXRDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHtXaXRoTWVzc2FnZXNTdHlsZSwgTWVzc2FnZXNDb25maWd1cmF0aW9uLENvbnZlcnNhdGlvbnNDb25maWd1cmF0aW9uLENvbnRhY3RzQ29uZmlndXJhdGlvbn0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWQnXG5pbXBvcnQge0NvbWV0Q2hhdFRoZW1lLCBmb250SGVscGVyLCBsb2NhbGl6ZSxDb21ldENoYXRPcHRpb24sIENvbWV0Q2hhdEdyb3VwRXZlbnRzLCBDb21ldENoYXRVSUtpdENvbnN0YW50cyxJR3JvdXBMZWZ0LCBJR3JvdXBNZW1iZXJBZGRlZCwgSUdyb3VwTWVtYmVyS2lja2VkQmFubmVkLCBJR3JvdXBNZW1iZXJTY29wZUNoYW5nZWQsSU1lc3NhZ2VzLCBDb21ldENoYXRVc2VyRXZlbnRzLCBDb21ldENoYXRNZXNzYWdlRXZlbnRzLCBDb21ldENoYXRDb252ZXJzYXRpb25FdmVudHMsIElHcm91cE1lbWJlckpvaW5lZCwgSU93bmVyc2hpcENoYW5nZWQsIENvbWV0Q2hhdFVJRXZlbnRzfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlcydcblxuaW1wb3J0ICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJ1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IENvbWV0Q2hhdFRoZW1lU2VydmljZSB9IGZyb20gXCIuLi8uLi9Db21ldENoYXRUaGVtZS5zZXJ2aWNlXCI7XG4gIC8qKlxuICpcbiAqIENvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNDb21wb25lbnQgaXMgYSB3cmFwcGVyIGNvbXBvbmVudCBmb3IgQ29tZXRDaGF0TWVzc2FnZXNDb21wb25lbnQgYW5kIENvbWV0Q2hhdENvbnZlcnNhdGlvbnMgY29tcG9uZW50IHRvIHNob3cgY2hhdHMgYW5kIG1lc3NhZ2VzIGluIG9uZSBzY3JlZW5cbiAqXG4gKiBAdmVyc2lvbiAxLjAuMFxuICogQGF1dGhvciBDb21ldENoYXRUZWFtXG4gKiBAY29weXJpZ2h0IMKpIDIwMjIgQ29tZXRDaGF0IEluYy5cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8vIHRha2luZyByZWZlcmVuY2Ugb2YgY29udmVyc2F0aW9uQ29tcG9uZW50IGFuZCBNZXNzYWdlc0NvbXBvbmVudFxuICBASW5wdXQoKSB1c2VyITogQ29tZXRDaGF0LlVzZXIgfCBudWxsO1xuICBASW5wdXQoKSBncm91cCE6IENvbWV0Q2hhdC5Hcm91cCB8IG51bGw7XG4gIEBJbnB1dCgpIGlzTW9iaWxlVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJOT19DSEFUU19TRUxFQ1RFRFwiKTtcbiAgQElucHV0KCkgY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlOiBXaXRoTWVzc2FnZXNTdHlsZSA9IHt9O1xuICBASW5wdXQoKSBtZXNzYWdlc0NvbmZpZ3VyYXRpb246IE1lc3NhZ2VzQ29uZmlndXJhdGlvbiA9IG5ldyBNZXNzYWdlc0NvbmZpZ3VyYXRpb24oe30pO1xuICBASW5wdXQoKSBjb252ZXJzYXRpb25Db25maWd1cmF0aW9uOiBDb252ZXJzYXRpb25zQ29uZmlndXJhdGlvbiA9IG5ldyBDb252ZXJzYXRpb25zQ29uZmlndXJhdGlvbih7fSk7XG4gIEBJbnB1dCgpIG9uRXJyb3I6KChlcnJvcjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKT0+dm9pZCApIHwgbnVsbD0gKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pPT57XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gIH1cbiAgQElucHV0KCkgc3RhcnROZXdDb252ZXJzYXRpb25JY29uVVJMOnN0cmluZyA9IFwiYXNzZXRzL25ldy1jaGF0LnN2Z1wiXG4gIEBJbnB1dCgpIGhpZGVTdGFydE5ld0NvbnZlcnNhdGlvbjpib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIFN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbjpDb250YWN0c0NvbmZpZ3VyYXRpb24gPSBuZXcgQ29udGFjdHNDb25maWd1cmF0aW9uKHt9KVxuICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lID0gbmV3IENvbWV0Q2hhdFRoZW1lKHt9KTtcbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0aWVzIGZvciBpbnRlcm5hbCB1c2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd1N0YXJ0Q29udmVyc2F0aW9uOmJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGxvZ2dlZEluVXNlciE6IENvbWV0Q2hhdC5Vc2VyIHwgbnVsbDtcbiAgcHVibGljIGFjdGl2ZUNvbnZlcnNhdGlvbiE6IENvbWV0Q2hhdC5Db252ZXJzYXRpb24gfCBudWxsO1xuICBsYWJlbFN0eWxlOmFueSA9IHtcbiAgICBiYWNrZ3JvdW5kOlwidHJhbnNwYXJlbnRcIixcbiAgICB0ZXh0Rm9udDpcIjcwMCAyMnB4IEludGVyXCIsXG4gICAgdGV4dENvbG9yOlwicmdiYSgyMCwgMjAsIDIwLCAwLjMzKVwiXG4gIH1cblxuICBwdWJsaWMgaGlkZVNlYXJjaDpib29sZWFuID0gdHJ1ZTtcbiAgc3RhcnRDb252ZXJzYXRpb25CdXR0b25TdHlsZTphbnkgPSB7XG5cbiAgfVxuICAgICAvKipcbiAgICAgKiBFdmVudHNcbiAgICAgKi9cbiAgY2NHcm91cE1lbWJlckFkZGVkITpTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBMZWZ0ITpTdWJzY3JpcHRpb247XG4gIGNjT3BlbkNoYXQhOlN1YnNjcmlwdGlvbjtcbiAgY2NHcm91cE1lbWJlckpvaW5lZCE6U3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwTWVtYmVyS2lja2VkITpTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBNZW1iZXJCYW5uZWQhOlN1YnNjcmlwdGlvbjtcbiAgY2NPd25lcnNoaXBDaGFuZ2VkITpTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBEZWxldGVkITpTdWJzY3JpcHRpb247XG4gIHNpZGVCYXJTdHlsZTphbnkgPSB7XG4gICAgXG4gIH1cbiAgcHVibGljIGNjQ29udmVyc2F0aW9uRGVsZXRlZCE6U3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSB0aGVtZVNlcnZpY2U6Q29tZXRDaGF0VGhlbWVTZXJ2aWNlKSB7XG4gICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblxuICBpZihjaGFuZ2VzW1wiaXNNb2JpbGVWaWV3XCJdKXtcbiAgICBpZiAodGhpcy5pc01vYmlsZVZpZXcpIHtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uLmhpZGVCYWNrQnV0dG9uID0gZmFsc2U7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5kZXRhaWxzU3R5bGUucGFkZGluZyA9IFwiMCA4cHhcIlxuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYWRkTWVtYmVyc0NvbmZpZ3VyYXRpb24uYWRkTWVtYmVyc1N0eWxlLnBhZGRpbmcgPSBcIjAgOHB4XCJcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmdyb3VwTWVtYmVyc0NvbmZpZ3VyYXRpb24uZ3JvdXBNZW1iZXJzU3R5bGUucGFkZGluZyA9IFwiMCA4cHhcIlxuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYmFubmVkTWVtYmVyc0NvbmZpZ3VyYXRpb24uYmFubmVkTWVtYmVyc1N0eWxlLnBhZGRpbmcgPSBcIjAgOHB4XCJcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uID0gey4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9ufVxuICAgICAgdGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uY29udGFjdHNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiO1xuICAgICAgdGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24gPSB7Li4udGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb259XG5cbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uID0geyAuLi50aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbiB9XG4gICAgfVxuICAgIGVsc2UgaWYgKCF0aGlzLmlzTW9iaWxlVmlldykge1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvbkNvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuaGVpZ2h0ID0gXCI1MDBweFwiXG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdENvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uQ29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS53aWR0aCA9IFwiNTAwcHhcIlxuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24uaGlkZUJhY2tCdXR0b24gPSB0cnVlO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uZGV0YWlsc1N0eWxlLnBhZGRpbmcgPSBcIjAgMTAwcHhcIlxuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYWRkTWVtYmVyc0NvbmZpZ3VyYXRpb24uYWRkTWVtYmVyc1N0eWxlLnBhZGRpbmcgPSBcIjAgMTAwcHhcIlxuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uZ3JvdXBNZW1iZXJzQ29uZmlndXJhdGlvbi5ncm91cE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDEwMHB4XCJcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmJhbm5lZE1lbWJlcnNDb25maWd1cmF0aW9uLmJhbm5lZE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDEwMHB4XCJcbiAgICAgIHRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnRhY3RzU3R5bGUucGFkZGluZyA9IFwiMCAxMDBweFwiO1xuICAgICAgdGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24gPSB7Li4udGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb259XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbiA9IHsuLi50aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbn1cbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uID0geyAuLi50aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbiB9XG5cbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUJhY2tkcm9wSGVpZ2h0KClcbiAgICB9LCAxMDApO1xuICB9XG4gICBpZihjaGFuZ2VzW1widXNlclwiXSB8fCBjaGFuZ2VzW1wiZ3JvdXBcIl0pe1xuICAgIHRoaXMuc2V0QWN0aXZlQ2hhdCgpO1xuICAgfVxuICB9XG4gIHRyaWdnZXJTdGFydENvbnZlcnNhdGlvbigpe1xuICAgIHRoaXMuc2hvd1N0YXJ0Q29udmVyc2F0aW9uID0gdHJ1ZTtcbiAgfVxuICBvbkJhY2sgPSAoKT0+e1xuICAgIHRoaXMudXNlciA9IG51bGxcbiAgICB0aGlzLmdyb3VwID0gbnVsbFxuICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gbnVsbFxuICB9XG4gIHNldFdpdGhNZXNzYWdlc1N0eWxlKCl7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTpXaXRoTWVzc2FnZXNTdHlsZSA9IG5ldyBXaXRoTWVzc2FnZXNTdHlsZSh7XG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBib3JkZXJSYWRpdXM6IFwibm9uZVwiLFxuICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQyMDAoKX1gLFxuICAgICAgbWVzc2FnZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIG1lc3NhZ2VUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgfSlcbiAgICB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZSA9IHtcbiAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAgICAgIC4uLnRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlXG4gICAgfVxuICAgIHRoaXMubGFiZWxTdHlsZS50ZXh0Rm9udCA9IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLm1lc3NhZ2VUZXh0Rm9udFxuICAgIHRoaXMubGFiZWxTdHlsZS50ZXh0Q29sb3IgPSB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5tZXNzYWdlVGV4dENvbG9yXG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZXNTdHlsZS5ib3JkZXIgPSAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZXNTdHlsZS5ib3JkZXIgPz8gIFwibm9uZVwiXG4gICAgdGhpcy5jb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnZlcnNhdGlvbnNTdHlsZS5ib3JkZXIgPSAgdGhpcy5jb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnZlcnNhdGlvbnNTdHlsZS5ib3JkZXIgPz8gIFwibm9uZVwiXG4gICAgaWYoIXRoaXMuY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbj8uY29udmVyc2F0aW9uc1N0eWxlPy5ib3JkZXIgfHwgdGhpcy5jb252ZXJzYXRpb25Db25maWd1cmF0aW9uPy5jb252ZXJzYXRpb25zU3R5bGU/LmJvcmRlciA9PSBcIm5vbmVcIil7XG4gICAgICB0aGlzLnNpZGVCYXJTdHlsZSA9IHtib3JkZXJSaWdodDp0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5ib3JkZXJ9XG4gICAgICBcbiAgICB9XG4gIH1cbiAgcHVibGljIG9uQ29udGFjdFNlbGVjdGVkID0gKHVzZXJzPzpDb21ldENoYXQuVXNlcltdLCBncm91cHM/OkNvbWV0Q2hhdC5Hcm91cFtdKT0+e1xuICAgIHRoaXMuc2hvd1N0YXJ0Q29udmVyc2F0aW9uID0gZmFsc2U7XG4gICAgaWYodXNlcnMgJiYgdXNlcnNbMF0pe1xuICAgICAgdGhpcy5ncm91cCA9IG51bGxcbiAgICAgIHRoaXMudXNlciA9IHVzZXJzWzBdO1xuXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gICAgaWYoZ3JvdXBzICYmIGdyb3Vwc1swXSl7XG4gICAgICB0aGlzLnVzZXIgPSBudWxsXG4gICAgICB0aGlzLmdyb3VwID0gZ3JvdXBzWzBdO1xuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuICB9XG4gIHB1YmxpYyBvbkl0ZW1DbGljazogKChjb252ZXJzYXRpb246Q29tZXRDaGF0LkNvbnZlcnNhdGlvbik9PnZvaWQpID0gKGNvbnZlcnNhdGlvbjpDb21ldENoYXQuQ29udmVyc2F0aW9uKT0+e1xuICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gY29udmVyc2F0aW9uXG4gICAgdGhpcy5zaG93U3RhcnRDb252ZXJzYXRpb24gPSBmYWxzZTtcbiAgICBpZiAoY29udmVyc2F0aW9uLmdldENvbnZlcnNhdGlvblR5cGUoKSAmJiBjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uVHlwZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUudXNlcikge1xuICAgICAgdGhpcy5ncm91cCA9IG51bGxcbiAgICAgIHRoaXMudXNlciA9IGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25XaXRoKCkgYXMgQ29tZXRDaGF0LlVzZXI7XG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gICAgZWxzZSBpZiAoY29udmVyc2F0aW9uLmdldENvbnZlcnNhdGlvblR5cGUoKSAmJiBjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uVHlwZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUuZ3JvdXApIHtcbiAgICAgIHRoaXMudXNlciA9IG51bGxcbiAgICAgIHRoaXMuZ3JvdXAgPSBjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uV2l0aCgpIGFzIENvbWV0Q2hhdC5Hcm91cFxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuICB9O1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG50aGlzLnVwZGF0ZUJhY2tkcm9wSGVpZ2h0KClcbiAgfVxuICB1cGRhdGVCYWNrZHJvcEhlaWdodCgpe1xuICAgIGNvbnN0IGRpdkhlaWdodCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICBjb25zdCBkaXZXaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGxldCBiYWNrZHJvcFN0eWxlID0gIHtcbiAgICAgIGhlaWdodDpkaXZIZWlnaHQgKyBcInB4XCIsXG4gICAgICB3aWR0aDpkaXZXaWR0aCArIFwicHhcIixcbiAgICAgIGJhY2tncm91bmQ6XCJyZ2JhKDAsIDAsIDAsIDAuNSlcIixcbiAgICAgIHBvc2l0aW9uOlwiZml4ZWRcIlxuICAgIH0gIFxuICAgIGlmKHRoaXMuaXNNb2JpbGVWaWV3KXtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcFN0eWxlLmhlaWdodCA9IChkaXZIZWlnaHQgLSAzMCkgKyBcInB4XCI7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcENvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBTdHlsZS53aWR0aCA9IGRpdldpZHRoICsgXCJweFwiO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvbkNvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuaGVpZ2h0ID0gZGl2SGVpZ2h0ICsgXCJweFwiO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvbkNvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUud2lkdGggPSBkaXZXaWR0aCArIFwicHhcIjtcbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcFN0eWxlLmhlaWdodCA9IFwiNjUwcHhcIjtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcFN0eWxlLndpZHRoID0gXCIzNjBweFwiO1xuICAgIH1cbiAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdENvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSA9IGJhY2tkcm9wU3R5bGU7XG4gICAgdGhpcy5jb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmJhY2tkcm9wU3R5bGUgPSBiYWNrZHJvcFN0eWxlO1xuICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmJhY2tkcm9wU3R5bGUgPSBiYWNrZHJvcFN0eWxlO1xuICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VDb21wb3NlckNvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSA9IGJhY2tkcm9wU3R5bGU7XG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSA9IGJhY2tkcm9wU3R5bGU7XG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uZ3JvdXBNZW1iZXJzQ29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gYmFja2Ryb3BTdHlsZTtcblxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIHNldEFjdGl2ZUNoYXQoKXtcbiAgICBsZXQgdHlwZTpzdHJpbmcgPSB0aGlzLnVzZXIgPyBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLnVzZXIgOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLmdyb3VwXG4gICAgdGhpcy5hY3RpdmVDb252ZXJzYXRpb24gPSBudWxsXG4gICAgbGV0IGNvbnZlcnNhdGlvbldpdGg6c3RyaW5nID0gdGhpcy51c2VyPy5nZXRVaWQoKSEgfHwgdGhpcy5ncm91cD8uZ2V0R3VpZCgpIVxuICAgIENvbWV0Q2hhdC5nZXRDb252ZXJzYXRpb24oY29udmVyc2F0aW9uV2l0aCx0eXBlKS50aGVuKChjb252ZXJzYXRpb246Q29tZXRDaGF0LkNvbnZlcnNhdGlvbik9PntcbiAgICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gY29udmVyc2F0aW9uXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgICAgIGlmKHRoaXMub25FcnJvcil7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIGNsb3NlU3RhcnRDb252ZXJzYXRpb24gPSAoKT0+IHtcbiAgIHRoaXMuc2hvd1N0YXJ0Q29udmVyc2F0aW9uID0gZmFsc2U7XG4gIH1cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24udXNlcnNDb25maWd1cmF0aW9uLnVzZXJzU3R5bGUuYm9yZGVyID0gXCJub25lXCJcbiAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5ncm91cHNDb25maWd1cmF0aW9uLmdyb3Vwc1N0eWxlLmJvcmRlciA9IFwibm9uZVwiXG4gICAgdGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ub25DbG9zZSA9IHRoaXMuY2xvc2VTdGFydENvbnZlcnNhdGlvblxuICAgIHRoaXMuc3RhcnRDb252ZXJzYXRpb25CdXR0b25TdHlsZSA9IHtcbiAgICAgIGhlaWdodDpcIjI0cHhcIixcbiAgICAgIHdpZHRoOlwiMjRweFwiLFxuICAgICAgYm9yZGVyOlwibm9uZVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOicwJyxcbiAgICAgIGJhY2tncm91bmQ6XCJ0cmFuc3BhcmVudFwiLFxuICAgICAgYnV0dG9uSWNvblRpbnQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KClcbiAgICB9XG4gICAgdGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24gPSB7Li4udGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb259XG4gICAgdGhpcy5zZXRXaXRoTWVzc2FnZXNTdHlsZSgpXG4gICAgaWYoIXRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uLm9uQmFjayl7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5vbkJhY2sgPSB0aGlzLm9uQmFja1xuICAgIH1cbiAgICB0aGlzLnN1YnNjcmliZVRvRXZlbnRzKCk7XG4gICAgICBDb21ldENoYXQuZ2V0TG9nZ2VkaW5Vc2VyKClcbiAgICAgICAgLnRoZW4oKHVzZXI6Q29tZXRDaGF0LlVzZXIgfCBudWxsKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZWRJblVzZXIgPSB1c2VyO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICBpZih0aGlzLm9uRXJyb3Ipe1xuICAgICAgICAgICAgdGhpcy5vbkVycm9yKGVycm9yKVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgfVxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVG9FdmVudHMoKTtcbiAgfVxuICAvLyBzdWJzY3JpYmUgdG8gZ2xvYmFsIGV2ZW50c1xuICBzdWJzY3JpYmVUb0V2ZW50cygpIHtcbiAgICB0aGlzLmNjQ29udmVyc2F0aW9uRGVsZXRlZCA9IENvbWV0Q2hhdENvbnZlcnNhdGlvbkV2ZW50cy5jY0NvbnZlcnNhdGlvbkRlbGV0ZWQuc3Vic2NyaWJlKChjb252ZXJzYXRpb246IENvbWV0Q2hhdC5Db252ZXJzYXRpb24pID0+IHtcbiAgICAgIHRoaXMucmVtb3ZlQWN0aXZlQ2hhdExpc3QoY29udmVyc2F0aW9uKSAvL3RvIG1ha2UgbSBtZXNzYWdlcyBzZWN0aW9uIGVtcHR5IGFmdGVyIGRlbGV0aW5nIGNvbnZlcnNhdGlvbiBmcm9tIGNvbnZlcnNhdGlvbmxpc3RcbiAgICB9KVxuICAgIHRoaXMuY2NHcm91cERlbGV0ZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwRGVsZXRlZC5zdWJzY3JpYmUoKGdyb3VwOkNvbWV0Q2hhdC5Hcm91cCkgPT4ge1xuICAgICAgIGlmKHRoaXMuZ3JvdXAgJiYgZ3JvdXAuZ2V0R3VpZCgpID09IHRoaXMuZ3JvdXAuZ2V0R3VpZCgpKXtcbiAgICAgICAgIHRoaXMuZ3JvdXAgPSBudWxsO1xuICAgICAgICAgdGhpcy5hY3RpdmVDb252ZXJzYXRpb24gPSBudWxsO1xuICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jY0dyb3VwTWVtYmVyQWRkZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwTWVtYmVyQWRkZWQuc3Vic2NyaWJlKChpdGVtOiBJR3JvdXBNZW1iZXJBZGRlZCkgPT4ge1xuICAgICAgICAgIGlmKHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5nZXRHdWlkKCkgPT0gaXRlbT8udXNlckFkZGVkSW4hLmdldEd1aWQoKSl7XG4gICAgICAgICAgICB0aGlzLmdyb3VwID0gaXRlbT8udXNlckFkZGVkSW47XG4gICAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJCYW5uZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwTWVtYmVyQmFubmVkLnN1YnNjcmliZSgoaXRlbTogSUdyb3VwTWVtYmVyS2lja2VkQmFubmVkKSA9PiB7XG4gICAgICBpZih0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09IGl0ZW0/LmtpY2tlZEZyb20hLmdldEd1aWQoKSl7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy5raWNrZWRGcm9tO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuY2NHcm91cE1lbWJlckpvaW5lZCA9IENvbWV0Q2hhdEdyb3VwRXZlbnRzLmNjR3JvdXBNZW1iZXJKb2luZWQuc3Vic2NyaWJlKChpdGVtOiBJR3JvdXBNZW1iZXJKb2luZWQpID0+IHtcbiAgICAgIGlmKHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5nZXRHdWlkKCkgPT0gaXRlbT8uam9pbmVkR3JvdXAhLmdldEd1aWQoKSl7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy5qb2luZWRHcm91cDtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJLaWNrZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwTWVtYmVyS2lja2VkLnN1YnNjcmliZSgoaXRlbTogSUdyb3VwTWVtYmVyS2lja2VkQmFubmVkKSA9PiB7XG4gICAgICBpZih0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09IGl0ZW0/LmtpY2tlZEZyb20hLmdldEd1aWQoKSl7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy5raWNrZWRGcm9tO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuY2NPd25lcnNoaXBDaGFuZ2VkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NPd25lcnNoaXBDaGFuZ2VkLnN1YnNjcmliZSgoaXRlbTogSU93bmVyc2hpcENoYW5nZWQpID0+IHtcbiAgICAgIGlmKHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5nZXRHdWlkKCkgPT0gaXRlbT8uZ3JvdXAhLmdldEd1aWQoKSl7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy5ncm91cDtcbiAgICAgICAgdGhpcy5hY3RpdmVDb252ZXJzYXRpb24/LnNldENvbnZlcnNhdGlvbldpdGgodGhpcy5ncm91cClcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jY0dyb3VwTGVmdCA9IENvbWV0Q2hhdEdyb3VwRXZlbnRzLmNjR3JvdXBMZWZ0LnN1YnNjcmliZSgoaXRlbTogSUdyb3VwTGVmdCkgPT4ge1xuICAgICAgaWYodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy5sZWZ0R3JvdXAhLmdldEd1aWQoKSAmJiB0aGlzLmxvZ2dlZEluVXNlcj8uZ2V0VWlkKCkgPT0gaXRlbT8udXNlckxlZnQ/LmdldFVpZCgpKXtcbnRoaXMuZ3JvdXAgPSBudWxsO1xudGhpcy5hY3RpdmVDb252ZXJzYXRpb24gPSBudWxsO1xuY29uc29sZS5sb2codGhpcy5ncm91cCx0aGlzLnVzZXIsdGhpcy5hY3RpdmVDb252ZXJzYXRpb24pXG50aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIH1cbiAgICB9KVxuICAgIC8vIG9wZW4gY2hhdCBhbmQgbWFyayBhcyBhY3RpdmUgY29udmVyc2F0aW9uXG4gICB0aGlzLmNjT3BlbkNoYXQgPSAgQ29tZXRDaGF0VUlFdmVudHMuY2NPcGVuQ2hhdC5zdWJzY3JpYmUoKGl0ZW0pPT57XG4gICAgICB0aGlzLnVzZXIgPSBpdGVtLnVzZXIgPyBpdGVtLnVzZXIgOiBudWxsO1xuICAgICAgdGhpcy5ncm91cCA9IGl0ZW0uZ3JvdXAgPyBpdGVtLmdyb3VwIDogbnVsbDtcbiAgICAgIHRoaXMuc2V0QWN0aXZlQ2hhdCgpXG4gICAgfSlcbiAgfVxuICAvLyB1bnN1YnNjcmliZSB0byBzdWJzY3JpYmVkIGV2ZW50cy5cbiAgdW5zdWJzY3JpYmVUb0V2ZW50cygpIHtcbiAgICB0aGlzLmNjQ29udmVyc2F0aW9uRGVsZXRlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBEZWxldGVkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NHcm91cE1lbWJlckFkZGVkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NHcm91cE1lbWJlckJhbm5lZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJKb2luZWQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jY0dyb3VwTWVtYmVyS2lja2VkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NPd25lcnNoaXBDaGFuZ2VkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NHcm91cExlZnQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jY09wZW5DaGF0Py51bnN1YnNjcmliZSgpO1xuICB9XG4gIC8qKlxuICAgKiByZW1vdmUgYWN0aXZlIGNoYXQgc2NyZWVuIGFmdGVyIGRlbGV0aW5nIHRoZSBjb252ZXJzYXRpb24uXG4gICAqIEBwYXJhbSAge0NvbWV0Q2hhdC5Db252ZXJzYXRpb259IGNvbnZlcnNhdGlvblxuICAgKi9cbiAgIHJlbW92ZUFjdGl2ZUNoYXRMaXN0KGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbikge1xuICAgIGNvbnN0IGNvbnZlcnNhdGlvblR5cGUgPSBjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uVHlwZSgpO1xuICAgIGNvbnN0IGNvbnZlcnNhdGlvbldpdGggPSBjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uV2l0aCgpO1xuICAgIGlmIChjb252ZXJzYXRpb25UeXBlID09PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLnVzZXIgJiYgdGhpcy51c2VyICYmIHRoaXMudXNlci5nZXRVaWQoKSA9PT0gKGNvbnZlcnNhdGlvbldpdGggYXMgQ29tZXRDaGF0LlVzZXIpLmdldFVpZCgpKSB7XG4gICAgICB0aGlzLnVzZXIgPSBudWxsO1xuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gZWxzZSBpZiAoY29udmVyc2F0aW9uVHlwZSA9PT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cCAmJiB0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09PSAoY29udmVyc2F0aW9uV2l0aCBhcyBDb21ldENoYXQuR3JvdXApLmdldEd1aWQoKSkge1xuICAgICAgdGhpcy5ncm91cCA9IG51bGw7XG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgZW1wdHlNZXNzYWdlU3R5bGUgPSAoKT0+e1xuICAgIHJldHVybiB7XG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5iYWNrZ3JvdW5kIHx8IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QmFja2dyb3VuZCgpLFxuICAgICAgaGVpZ2h0OnRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmhlaWdodCxcbiAgICAgIHdpZHRoOmBjYWxjKCR7dGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUud2lkdGh9IC0gMjgwcHgpYCxcbiAgICAgIGJvcmRlcjpcIm5vbmVcIixcbiAgICAgIGJvcmRlclJhZGl1czp0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5ib3JkZXJSYWRpdXMsXG4gICAgfVxuICB9XG4gIGNoYXRzV3JhcHBlclN0eWxlcyA9ICAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodDogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUuaGVpZ2h0LFxuICAgICAgd2lkdGg6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLndpZHRoLFxuICAgICAgYm9yZGVyOiB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5ib3JkZXIsXG4gICAgICBib3JkZXJSYWRpdXM6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmJvcmRlclJhZGl1cyxcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmJhY2tncm91bmQgfHwgdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2Mtd2l0aC1tZXNzYWdlc19fd3JhcHBlclwiIFtuZ1N0eWxlXT1cImNoYXRzV3JhcHBlclN0eWxlcygpXCIgPlxuICA8ZGl2IGNsYXNzPVwiY2Mtd2l0aC1tZXNzYWdlc19fc2lkZWJhclwiIFtuZ0NsYXNzXT1cInttb2JpbGUgOiBpc01vYmlsZVZpZXd9XCIgW25nU3R5bGVdPVwic2lkZUJhclN0eWxlXCI+XG4gICAgPGNvbWV0Y2hhdC1jb252ZXJzYXRpb25zXG4gICAgI2NvbnZlcnNhdGlvblJlZlxuICAgIFthY3RpdmVDb252ZXJzYXRpb25dPVwiYWN0aXZlQ29udmVyc2F0aW9uXCJcbiAgICBbb25JdGVtQ2xpY2tdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5vbkl0ZW1DbGljayB8fCBvbkl0ZW1DbGlja1wiXG4gICAgW2NvbnZlcnNhdGlvbnNTdHlsZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnZlcnNhdGlvbnNTdHlsZVwiXG4gICAgW3N1YnRpdGxlVmlld109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnN1YnRpdGxlVmlld1wiXG4gICAgW29wdGlvbnNdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5vcHRpb25zXCJcbiAgICBbZGlzYWJsZVVzZXJzUHJlc2VuY2VdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kaXNhYmxlVXNlcnNQcmVzZW5jZVwiXG4gICAgW2Rpc2FibGVSZWNlaXB0XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZGlzYWJsZVJlY2VpcHRcIlxuICAgIFtkaXNhYmxlVHlwaW5nXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZGlzYWJsZVR5cGluZ1wiXG4gICAgW2RlbGl2ZXJlZEljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kZWxpdmVyZWRJY29uXCJcbiAgICBbcmVhZEljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5yZWFkSWNvblwiXG4gICAgW3dhaXRJY29uXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ud2FpdEljb25cIlxuICAgIFtlcnJvckljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5lcnJvckljb25cIlxuICAgIFtkYXRlUGF0dGVybl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRhdGVQYXR0ZXJuXCJcbiAgICBbcmVjZWlwdFN0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ucmVjZWlwdFN0eWxlXCJcbiAgICBbc2VudEljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5zZW50SWNvblwiXG4gICAgW3ByaXZhdGVHcm91cEljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5wcml2YXRlR3JvdXBJY29uXCJcbiAgICBbcHJvdGVjdGVkR3JvdXBJY29uXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ucHJvdGVjdGVkR3JvdXBJY29uXCJcbiAgICBbY3VzdG9tU291bmRGb3JNZXNzYWdlc109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmN1c3RvbVNvdW5kRm9yTWVzc2FnZXNcIlxuICAgIFtjb252ZXJzYXRpb25zUmVxdWVzdEJ1aWxkZXJdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5jb252ZXJzYXRpb25zUmVxdWVzdEJ1aWxkZXJcIlxuICAgIFtlbXB0eVN0YXRlVmlld109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmVtcHR5U3RhdGVWaWV3XCJcbiAgICBbb25TZWxlY3RdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5vblNlbGVjdFwiXG4gICAgW2xvYWRpbmdJY29uVVJMXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ubG9hZGluZ0ljb25VUkxcIlxuICAgIFtlcnJvclN0YXRlVmlld109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmVycm9yU3RhdGVWaWV3XCJcbiAgICBbbG9hZGluZ1N0YXRlVmlld109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmxvYWRpbmdTdGF0ZVZpZXdcIlxuICAgIFt0aXRsZUFsaWdubWVudF09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnRpdGxlQWxpZ25tZW50XCJcbiAgICBbbGlzdEl0ZW1WaWV3XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ubGlzdEl0ZW1WaWV3XCJcbiAgICBbbWVudV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLm1lbnUgfHwgc3RhcnRDb252ZXJzYXRpb25CdXR0b25cIlxuICAgIFtoaWRlU2VwYXJhdG9yXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uaGlkZVNlcGFyYXRvclwiXG4gICAgW2hpZGVFcnJvcl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmhpZGVFcnJvclwiXG4gICAgW3NlbGVjdGlvbk1vZGVdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5zZWxlY3Rpb25Nb2RlXCJcbiAgICBbZGlzYWJsZVNvdW5kRm9yTWVzc2FnZXNdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kaXNhYmxlU291bmRGb3JNZXNzYWdlc1wiXG4gICAgW2RlbGV0ZUNvbnZlcnNhdGlvbkRpYWxvZ1N0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZGVsZXRlQ29udmVyc2F0aW9uRGlhbG9nU3R5bGVcIlxuICAgIFtiYWRnZVN0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uYmFkZ2VTdHlsZVwiXG4gICAgW2RhdGVTdHlsZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRhdGVTdHlsZVwiXG4gICAgW2xpc3RJdGVtU3R5bGVdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5saXN0SXRlbVN0eWxlXCJcbiAgICBbYmFja2Ryb3BTdHlsZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmJhY2tkcm9wU3R5bGVcIlxuXG4gICAgPjwvY29tZXRjaGF0LWNvbnZlcnNhdGlvbnM+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2Mtd2l0aC1tZXNzYWdlc19fbWFpblwiIFtuZ0NsYXNzXT1cInttb2JpbGUgOiBpc01vYmlsZVZpZXd9XCIgKm5nSWY9XCIhc2hvd1N0YXJ0Q29udmVyc2F0aW9uICYmICh1c2VyIHx8IGdyb3VwKVwiPlxuICAgIDwhLS1NZXNzYWdlIExpc3QgU2NyZWVuLS0+XG4gICAgPGNvbWV0Y2hhdC1tZXNzYWdlc1xuICAgICNtZXNzYWdlc1JlZlxuICAgIFt1c2VyXT1cInVzZXIhXCJcbiAgICBbZ3JvdXBdPVwiZ3JvdXAhXCJcbiAgICBbbWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb25dPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uXCJcbiAgICBbbWVzc2FnZUxpc3RDb25maWd1cmF0aW9uXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdENvbmZpZ3VyYXRpb25cIlxuICAgIFttZXNzYWdlQ29tcG9zZXJDb25maWd1cmF0aW9uXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlQ29tcG9zZXJDb25maWd1cmF0aW9uXCJcbiAgICBbbWVzc2FnZXNTdHlsZV09XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZXNTdHlsZVwiXG4gICAgW2N1c3RvbVNvdW5kRm9ySW5jb21pbmdNZXNzYWdlc109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24uY3VzdG9tU291bmRGb3JJbmNvbWluZ01lc3NhZ2VzXCJcbiAgICBbY3VzdG9tU291bmRGb3JPdXRnb2luZ01lc3NhZ2VzXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5jdXN0b21Tb3VuZEZvck91dGdvaW5nTWVzc2FnZXNcIlxuICAgIFtkZXRhaWxzQ29uZmlndXJhdGlvbl09XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb25cIlxuICAgIFtkaXNhYmxlU291bmRGb3JNZXNzYWdlc109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGlzYWJsZVNvdW5kRm9yTWVzc2FnZXNcIlxuICAgIFtkaXNhYmxlVHlwaW5nXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kaXNhYmxlVHlwaW5nXCJcbiAgICBbaGlkZU1lc3NhZ2VDb21wb3Nlcl09XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24uaGlkZU1lc3NhZ2VDb21wb3NlclwiXG4gICAgW2hpZGVNZXNzYWdlSGVhZGVyXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5oaWRlTWVzc2FnZUhlYWRlclwiXG4gICAgW21lc3NhZ2VDb21wb3NlclZpZXddPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VDb21wb3NlclZpZXdcIlxuICAgIFttZXNzYWdlSGVhZGVyVmlld109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlclZpZXdcIlxuICAgIFttZXNzYWdlTGlzdFZpZXddPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Vmlld1wiXG4gICAgW2hpZGVEZXRhaWxzXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5oaWRlRGV0YWlscyFcIlxuICAgID5cbiAgICA8L2NvbWV0Y2hhdC1tZXNzYWdlcz5cbiAgICA8IS0tTWVzc2FnZSBMaXN0IFNjcmVlbiBFTkRTLS0+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2Mtd2l0aC1tZXNzYWdlc19fc3RhcnQtY29udmVyc2F0aW9uXCIgW25nQ2xhc3NdPVwie21vYmlsZSA6IGlzTW9iaWxlVmlld31cIiAqbmdJZj1cInNob3dTdGFydENvbnZlcnNhdGlvblwiPlxuXG4gIDxjb21ldGNoYXQtY29udGFjdHMgW3VzZXJzQ29uZmlndXJhdGlvbl09XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24udXNlcnNDb25maWd1cmF0aW9uXCJcbiAgW2dyb3Vwc0NvbmZpZ3VyYXRpb25dPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmdyb3Vwc0NvbmZpZ3VyYXRpb25cIlxuICBbY2xvc2VJY29uVVJMXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5jbG9zZUljb25VUkxcIlxuICBbY29udGFjdHNTdHlsZV09XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uY29udGFjdHNTdHlsZVwiXG4gIFtzZWxlY3Rpb25Nb2RlXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5zZWxlY3Rpb25Nb2RlXCJcbiAgW29uQ2xvc2VdPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLm9uQ2xvc2VcIlxuICBbdGFiVmlzaWJpbGl0eV09XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24udGFiVmlzaWJpbGl0eVwiXG4gIFtzZWxlY3Rpb25MaW1pdF09XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uc2VsZWN0aW9uTGltaXRcIlxuICBbdGFic109XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24udGFic1wiXG4gIFtoaWRlU3VibWl0QnV0dG9uXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5oaWRlU3VibWl0QnV0dG9uXCJcbiAgW29uU3VibWl0QnV0dG9uQ2xpY2tdPVwib25Db250YWN0U2VsZWN0ZWRcIj48L2NvbWV0Y2hhdC1jb250YWN0cz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYy1kZWNvcmF0b3JfX21lc3NhZ2UtLWVtcHR5XCIgKm5nSWY9XCIhdXNlciAmJiAhZ3JvdXAgJiYgIXNob3dTdGFydENvbnZlcnNhdGlvblwiIFtuZ1N0eWxlXT1cImVtcHR5TWVzc2FnZVN0eWxlKClcIj5cbiAgICA8Y29tZXRjaGF0LWxhYmVsIFt0ZXh0XT1cIm1lc3NhZ2VUZXh0XCIgW2xhYmVsU3R5bGVdPVwibGFiZWxTdHlsZVwiPjwvY29tZXRjaGF0LWxhYmVsPlxuICAgPC9kaXY+XG4gICA8bmctdGVtcGxhdGUgI3N0YXJ0Q29udmVyc2F0aW9uQnV0dG9uPlxuICAgIDxjb21ldGNoYXQtYnV0dG9uICpuZ0lmPVwiIWhpZGVTdGFydE5ld0NvbnZlcnNhdGlvblwiIFtpY29uVVJMXT1cInN0YXJ0TmV3Q29udmVyc2F0aW9uSWNvblVSTFwiIFtidXR0b25TdHlsZV09XCJzdGFydENvbnZlcnNhdGlvbkJ1dHRvblN0eWxlXCIgKGNjLWJ1dHRvbi1jbGlja2VkKT1cInRyaWdnZXJTdGFydENvbnZlcnNhdGlvbigpXCI+PC9jb21ldGNoYXQtYnV0dG9uPlxuXG4gIDwvbmctdGVtcGxhdGU+Il19
|
|
355
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0Q29udmVyc2F0aW9uc1dpdGhNZXNzYWdlcy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zLXdpdGgtbWVzc2FnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFFLHVCQUF1QixFQUEyRCxNQUFNLGVBQWUsQ0FBQztBQUN0SixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDckksT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFtQixvQkFBb0IsRUFBRSx1QkFBdUIsRUFBNkksMkJBQTJCLEVBQXlDLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFblgsT0FBTywyQkFBMkIsQ0FBQTs7Ozs7OztBQUdsQzs7Ozs7Ozs7RUFRRTtBQU9GLE1BQU0sT0FBTywyQ0FBMkM7SUFnRHRELFlBQW9CLFVBQXNCLEVBQVUsR0FBc0IsRUFBVSxZQUFtQztRQUFuRyxlQUFVLEdBQVYs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LEtBQUs7Z0JBQ0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csOEJBQThCO3NCQUF0QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gXCJAY29tZXRjaGF0L2NoYXQtc2RrLWphdmFzY3JpcHRcIjtcbmltcG9ydCB7IFdpdGhNZXNzYWdlc1N0eWxlLCBNZXNzYWdlc0NvbmZpZ3VyYXRpb24sIENvbnZlcnNhdGlvbnNDb25maWd1cmF0aW9uLCBDb250YWN0c0NvbmZpZ3VyYXRpb24gfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZCdcbmltcG9ydCB7IENvbWV0Q2hhdFRoZW1lLCBmb250SGVscGVyLCBsb2NhbGl6ZSwgQ29tZXRDaGF0T3B0aW9uLCBDb21ldENoYXRHcm91cEV2ZW50cywgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIElHcm91cExlZnQsIElHcm91cE1lbWJlckFkZGVkLCBJR3JvdXBNZW1iZXJLaWNrZWRCYW5uZWQsIElHcm91cE1lbWJlclNjb3BlQ2hhbmdlZCwgSU1lc3NhZ2VzLCBDb21ldENoYXRVc2VyRXZlbnRzLCBDb21ldENoYXRNZXNzYWdlRXZlbnRzLCBDb21ldENoYXRDb252ZXJzYXRpb25FdmVudHMsIElHcm91cE1lbWJlckpvaW5lZCwgSU93bmVyc2hpcENoYW5nZWQsIENvbWV0Q2hhdFVJRXZlbnRzIH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXMnXG5cbmltcG9ydCAnQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50cydcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBDb21ldENoYXRUaGVtZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29tZXRDaGF0VGhlbWUuc2VydmljZVwiO1xuLyoqXG4qXG4qIENvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNDb21wb25lbnQgaXMgYSB3cmFwcGVyIGNvbXBvbmVudCBmb3IgQ29tZXRDaGF0TWVzc2FnZXNDb21wb25lbnQgYW5kIENvbWV0Q2hhdENvbnZlcnNhdGlvbnMgY29tcG9uZW50IHRvIHNob3cgY2hhdHMgYW5kIG1lc3NhZ2VzIGluIG9uZSBzY3JlZW5cbipcbiogQHZlcnNpb24gMS4wLjBcbiogQGF1dGhvciBDb21ldENoYXRUZWFtXG4qIEBjb3B5cmlnaHQgwqkgMjAyMiBDb21ldENoYXQgSW5jLlxuKlxuKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8vIHRha2luZyByZWZlcmVuY2Ugb2YgY29udmVyc2F0aW9uQ29tcG9uZW50IGFuZCBNZXNzYWdlc0NvbXBvbmVudFxuICBASW5wdXQoKSB1c2VyITogQ29tZXRDaGF0LlVzZXIgfCBudWxsO1xuICBASW5wdXQoKSBncm91cCE6IENvbWV0Q2hhdC5Hcm91cCB8IG51bGw7XG4gIEBJbnB1dCgpIGlzTW9iaWxlVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJOT19DSEFUU19TRUxFQ1RFRFwiKTtcbiAgQElucHV0KCkgY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlOiBXaXRoTWVzc2FnZXNTdHlsZSA9IHt9O1xuICBASW5wdXQoKSBtZXNzYWdlc0NvbmZpZ3VyYXRpb246IE1lc3NhZ2VzQ29uZmlndXJhdGlvbiA9IG5ldyBNZXNzYWdlc0NvbmZpZ3VyYXRpb24oe30pO1xuICBASW5wdXQoKSBjb252ZXJzYXRpb25Db25maWd1cmF0aW9uOiBDb252ZXJzYXRpb25zQ29uZmlndXJhdGlvbiA9IG5ldyBDb252ZXJzYXRpb25zQ29uZmlndXJhdGlvbih7fSk7XG4gIEBJbnB1dCgpIG9uRXJyb3I6ICgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHZvaWQpIHwgbnVsbCA9IChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICB9XG4gIEBJbnB1dCgpIHN0YXJ0TmV3Q29udmVyc2F0aW9uSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvbmV3LWNoYXQuc3ZnXCJcbiAgQElucHV0KCkgaGlkZVN0YXJ0TmV3Q29udmVyc2F0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIFN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbjogQ29udGFjdHNDb25maWd1cmF0aW9uID0gbmV3IENvbnRhY3RzQ29uZmlndXJhdGlvbih7fSlcbiAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lID0gbmV3IENvbWV0Q2hhdFRoZW1lKHt9KTtcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgZm9yIGludGVybmFsIHVzZVxuICAgKi9cbiAgcHVibGljIHNob3dTdGFydENvbnZlcnNhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbG9nZ2VkSW5Vc2VyITogQ29tZXRDaGF0LlVzZXIgfCBudWxsO1xuICBwdWJsaWMgYWN0aXZlQ29udmVyc2F0aW9uITogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbiB8IG51bGw7XG4gIGxhYmVsU3R5bGU6IGFueSA9IHtcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgdGV4dEZvbnQ6IFwiNzAwIDIycHggSW50ZXJcIixcbiAgICB0ZXh0Q29sb3I6IFwicmdiYSgyMCwgMjAsIDIwLCAwLjMzKVwiXG4gIH1cblxuICBwdWJsaWMgaGlkZVNlYXJjaDogYm9vbGVhbiA9IHRydWU7XG4gIHN0YXJ0Q29udmVyc2F0aW9uQnV0dG9uU3R5bGU6IGFueSA9IHtcblxuICB9XG4gIC8qKlxuICAqIEV2ZW50c1xuICAqL1xuICBjY0dyb3VwTWVtYmVyQWRkZWQhOiBTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBMZWZ0ITogU3Vic2NyaXB0aW9uO1xuICBjY09wZW5DaGF0ITogU3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwTWVtYmVySm9pbmVkITogU3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwTWVtYmVyS2lja2VkITogU3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwTWVtYmVyQmFubmVkITogU3Vic2NyaXB0aW9uO1xuICBjY093bmVyc2hpcENoYW5nZWQhOiBTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBEZWxldGVkITogU3Vic2NyaXB0aW9uO1xuICBzaWRlQmFyU3R5bGU6IGFueSA9IHtcblxuICB9XG4gIHB1YmxpYyBjY0NvbnZlcnNhdGlvbkRlbGV0ZWQhOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBDb21ldENoYXRUaGVtZVNlcnZpY2UpIHtcbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICBpZiAoY2hhbmdlc1tcImlzTW9iaWxlVmlld1wiXSkge1xuICAgICAgaWYgKHRoaXMuaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uLmhpZGVCYWNrQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmRldGFpbHNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiXG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiXG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmdyb3VwTWVtYmVyc0NvbmZpZ3VyYXRpb24uZ3JvdXBNZW1iZXJzU3R5bGUucGFkZGluZyA9IFwiMCA4cHhcIlxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzU3R5bGUucGFkZGluZyA9IFwiMCA4cHhcIlxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbiA9IHsgLi4udGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24gfVxuICAgICAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5jb250YWN0c1N0eWxlLnBhZGRpbmcgPSBcIjAgOHB4XCI7XG4gICAgICAgIHRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uID0geyAuLi50aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbiB9XG5cbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uIH1cbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKCF0aGlzLmlzTW9iaWxlVmlldykge1xuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdENvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uQ29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5oZWlnaHQgPSBcIjUwMHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvbkNvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUud2lkdGggPSBcIjUwMHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24uaGlkZUJhY2tCdXR0b24gPSB0cnVlO1xuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5kZXRhaWxzU3R5bGUucGFkZGluZyA9IFwiMCAxMDBweFwiXG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDEwMHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uZ3JvdXBNZW1iZXJzQ29uZmlndXJhdGlvbi5ncm91cE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDEwMHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYmFubmVkTWVtYmVyc0NvbmZpZ3VyYXRpb24uYmFubmVkTWVtYmVyc1N0eWxlLnBhZGRpbmcgPSBcIjAgMTAwcHhcIlxuICAgICAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5jb250YWN0c1N0eWxlLnBhZGRpbmcgPSBcIjAgMTAwcHhcIjtcbiAgICAgICAgdGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uIH1cbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uIH1cbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uIH1cblxuICAgICAgfVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlQmFja2Ryb3BIZWlnaHQoKVxuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJ1c2VyXCJdIHx8IGNoYW5nZXNbXCJncm91cFwiXSkge1xuICAgICAgdGhpcy5zZXRBY3RpdmVDaGF0KCk7XG4gICAgfVxuICB9XG4gIHRyaWdnZXJTdGFydENvbnZlcnNhdGlvbigpIHtcbiAgICB0aGlzLnNob3dTdGFydENvbnZlcnNhdGlvbiA9IHRydWU7XG4gIH1cbiAgb25CYWNrID0gKCkgPT4ge1xuICAgIHRoaXMudXNlciA9IG51bGxcbiAgICB0aGlzLmdyb3VwID0gbnVsbFxuICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gbnVsbFxuICB9XG4gIHNldFdpdGhNZXNzYWdlc1N0eWxlKCkge1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IFdpdGhNZXNzYWdlc1N0eWxlID0gbmV3IFdpdGhNZXNzYWdlc1N0eWxlKHtcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGJvcmRlclJhZGl1czogXCJub25lXCIsXG4gICAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDIwMCgpfWAsXG4gICAgICBtZXNzYWdlVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgbWVzc2FnZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICB9KVxuICAgIHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlID0ge1xuICAgICAgLi4uZGVmYXVsdFN0eWxlLFxuICAgICAgLi4udGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGVcbiAgICB9XG4gICAgdGhpcy5sYWJlbFN0eWxlLnRleHRGb250ID0gdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUubWVzc2FnZVRleHRGb250XG4gICAgdGhpcy5sYWJlbFN0eWxlLnRleHRDb2xvciA9IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLm1lc3NhZ2VUZXh0Q29sb3JcbiAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlc1N0eWxlLmJvcmRlciA9IHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VzU3R5bGUuYm9yZGVyID8/IFwibm9uZVwiXG4gICAgdGhpcy5jb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnZlcnNhdGlvbnNTdHlsZS5ib3JkZXIgPSB0aGlzLmNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uY29udmVyc2F0aW9uc1N0eWxlLmJvcmRlciA/PyBcIm5vbmVcIlxuICAgIGlmICghdGhpcy5jb252ZXJzYXRpb25Db25maWd1cmF0aW9uPy5jb252ZXJzYXRpb25zU3R5bGU/LmJvcmRlciB8fCB0aGlzLmNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24/LmNvbnZlcnNhdGlvbnNTdHlsZT8uYm9yZGVyID09IFwibm9uZVwiKSB7XG4gICAgICB0aGlzLnNpZGVCYXJTdHlsZSA9IHsgYm9yZGVyUmlnaHQ6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmJvcmRlciB9XG5cbiAgICB9XG4gIH1cbiAgcHVibGljIG9uQ29udGFjdFNlbGVjdGVkID0gKHVzZXJzPzogQ29tZXRDaGF0LlVzZXJbXSwgZ3JvdXBzPzogQ29tZXRDaGF0Lkdyb3VwW10pID0+IHtcbiAgICB0aGlzLnNob3dTdGFydENvbnZlcnNhdGlvbiA9IGZhbHNlO1xuICAgIGlmICh1c2VycyAmJiB1c2Vyc1swXSkge1xuICAgICAgdGhpcy5ncm91cCA9IG51bGxcbiAgICAgIHRoaXMudXNlciA9IHVzZXJzWzBdO1xuXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gICAgaWYgKGdyb3VwcyAmJiBncm91cHNbMF0pIHtcbiAgICAgIHRoaXMudXNlciA9IG51bGxcbiAgICAgIHRoaXMuZ3JvdXAgPSBncm91cHNbMF07XG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gIH1cbiAgcHVibGljIG9uSXRlbUNsaWNrOiAoKGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbikgPT4gdm9pZCkgPSAoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uKSA9PiB7XG4gICAgdGhpcy5hY3RpdmVDb252ZXJzYXRpb24gPSBjb252ZXJzYXRpb25cbiAgICB0aGlzLnNob3dTdGFydENvbnZlcnNhdGlvbiA9IGZhbHNlO1xuICAgIGlmIChjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uVHlwZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25UeXBlKCkgPT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS51c2VyKSB7XG4gICAgICB0aGlzLmdyb3VwID0gbnVsbFxuICAgICAgdGhpcy51c2VyID0gY29udmVyc2F0aW9uLmdldENvbnZlcnNhdGlvbldpdGgoKSBhcyBDb21ldENoYXQuVXNlcjtcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgICBlbHNlIGlmIChjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uVHlwZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25UeXBlKCkgPT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cCkge1xuICAgICAgdGhpcy51c2VyID0gbnVsbFxuICAgICAgdGhpcy5ncm91cCA9IGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25XaXRoKCkgYXMgQ29tZXRDaGF0Lkdyb3VwXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gIH07XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUJhY2tkcm9wSGVpZ2h0KClcbiAgfVxuICB1cGRhdGVCYWNrZHJvcEhlaWdodCgpIHtcbiAgICBjb25zdCBkaXZIZWlnaHQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgY29uc3QgZGl2V2lkdGggPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICBsZXQgYmFja2Ryb3BTdHlsZSA9IHtcbiAgICAgIGhlaWdodDogZGl2SGVpZ2h0ICsgXCJweFwiLFxuICAgICAgd2lkdGg6IGRpdldpZHRoICsgXCJweFwiLFxuICAgICAgYmFja2dyb3VuZDogXCJyZ2JhKDAsIDAsIDAsIDAuNSlcIixcbiAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCJcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNNb2JpbGVWaWV3KSB7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcENvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBTdHlsZS5oZWlnaHQgPSAoZGl2SGVpZ2h0IC0gMzApICsgXCJweFwiO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwU3R5bGUud2lkdGggPSBkaXZXaWR0aCArIFwicHhcIjtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25Db25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmhlaWdodCA9IGRpdkhlaWdodCArIFwicHhcIjtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25Db25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLndpZHRoID0gZGl2V2lkdGggKyBcInB4XCI7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwU3R5bGUuaGVpZ2h0ID0gXCI2NTBweFwiO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwU3R5bGUud2lkdGggPSBcIjM2MHB4XCI7XG4gICAgfVxuICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gYmFja2Ryb3BTdHlsZTtcbiAgICB0aGlzLmNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSA9IGJhY2tkcm9wU3R5bGU7XG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSA9IGJhY2tkcm9wU3R5bGU7XG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUNvbXBvc2VyQ29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gYmFja2Ryb3BTdHlsZTtcbiAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gYmFja2Ryb3BTdHlsZTtcbiAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5ncm91cE1lbWJlcnNDb25maWd1cmF0aW9uLmJhY2tkcm9wU3R5bGUgPSBiYWNrZHJvcFN0eWxlO1xuXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbiAgc2V0QWN0aXZlQ2hhdCgpIHtcbiAgICBsZXQgdHlwZTogc3RyaW5nID0gdGhpcy51c2VyID8gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS51c2VyIDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cFxuICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gbnVsbFxuICAgIGxldCBjb252ZXJzYXRpb25XaXRoOiBzdHJpbmcgPSB0aGlzLnVzZXI/LmdldFVpZCgpISB8fCB0aGlzLmdyb3VwPy5nZXRHdWlkKCkhXG4gICAgQ29tZXRDaGF0LmdldENvbnZlcnNhdGlvbihjb252ZXJzYXRpb25XaXRoLCB0eXBlKS50aGVuKChjb252ZXJzYXRpb246IENvbWV0Q2hhdC5Db252ZXJzYXRpb24pID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gY29udmVyc2F0aW9uXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAodGhpcy5vbkVycm9yKSB7XG4gICAgICAgICAgdGhpcy5vbkVycm9yKGVycm9yKVxuICAgICAgICB9XG4gICAgICB9KVxuICB9XG4gIGNsb3NlU3RhcnRDb252ZXJzYXRpb24gPSAoKSA9PiB7XG4gICAgdGhpcy5zaG93U3RhcnRDb252ZXJzYXRpb24gPSBmYWxzZTtcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi51c2Vyc0NvbmZpZ3VyYXRpb24udXNlcnNTdHlsZS5ib3JkZXIgPSBcIm5vbmVcIlxuICAgIHRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmdyb3Vwc0NvbmZpZ3VyYXRpb24uZ3JvdXBzU3R5bGUuYm9yZGVyID0gXCJub25lXCJcbiAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5vbkNsb3NlID0gdGhpcy5jbG9zZVN0YXJ0Q29udmVyc2F0aW9uXG4gICAgdGhpcy5zdGFydENvbnZlcnNhdGlvbkJ1dHRvblN0eWxlID0ge1xuICAgICAgaGVpZ2h0OiBcIjI0cHhcIixcbiAgICAgIHdpZHRoOiBcIjI0cHhcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6ICcwJyxcbiAgICAgIGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgIGJ1dHRvbkljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKVxuICAgIH1cbiAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbiA9IHsgLi4udGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24gfVxuICAgIHRoaXMuc2V0V2l0aE1lc3NhZ2VzU3R5bGUoKVxuICAgIGlmICghdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24ub25CYWNrKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5vbkJhY2sgPSB0aGlzLm9uQmFja1xuICAgIH1cbiAgICB0aGlzLnN1YnNjcmliZVRvRXZlbnRzKCk7XG4gICAgQ29tZXRDaGF0LmdldExvZ2dlZGluVXNlcigpXG4gICAgICAudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIgfCBudWxsKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VkSW5Vc2VyID0gdXNlcjtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9uRXJyb3IpIHtcbiAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gIH1cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZVRvRXZlbnRzKCk7XG4gIH1cbiAgLy8gc3Vic2NyaWJlIHRvIGdsb2JhbCBldmVudHNcbiAgc3Vic2NyaWJlVG9FdmVudHMoKSB7XG4gICAgdGhpcy5jY0NvbnZlcnNhdGlvbkRlbGV0ZWQgPSBDb21ldENoYXRDb252ZXJzYXRpb25FdmVudHMuY2NDb252ZXJzYXRpb25EZWxldGVkLnN1YnNjcmliZSgoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uKSA9PiB7XG4gICAgICB0aGlzLnJlbW92ZUFjdGl2ZUNoYXRMaXN0KGNvbnZlcnNhdGlvbikgLy90byBtYWtlIG0gbWVzc2FnZXMgc2VjdGlvbiBlbXB0eSBhZnRlciBkZWxldGluZyBjb252ZXJzYXRpb24gZnJvbSBjb252ZXJzYXRpb25saXN0XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBEZWxldGVkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cERlbGV0ZWQuc3Vic2NyaWJlKChncm91cDogQ29tZXRDaGF0Lkdyb3VwKSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiBncm91cC5nZXRHdWlkKCkgPT0gdGhpcy5ncm91cC5nZXRHdWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IG51bGw7XG4gICAgICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJBZGRlZCA9IENvbWV0Q2hhdEdyb3VwRXZlbnRzLmNjR3JvdXBNZW1iZXJBZGRlZC5zdWJzY3JpYmUoKGl0ZW06IElHcm91cE1lbWJlckFkZGVkKSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy51c2VyQWRkZWRJbiEuZ2V0R3VpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy51c2VyQWRkZWRJbjtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJCYW5uZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwTWVtYmVyQmFubmVkLnN1YnNjcmliZSgoaXRlbTogSUdyb3VwTWVtYmVyS2lja2VkQmFubmVkKSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy5raWNrZWRGcm9tIS5nZXRHdWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IGl0ZW0/LmtpY2tlZEZyb207XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jY0dyb3VwTWVtYmVySm9pbmVkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cE1lbWJlckpvaW5lZC5zdWJzY3JpYmUoKGl0ZW06IElHcm91cE1lbWJlckpvaW5lZCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5nZXRHdWlkKCkgPT0gaXRlbT8uam9pbmVkR3JvdXAhLmdldEd1aWQoKSkge1xuICAgICAgICB0aGlzLmdyb3VwID0gaXRlbT8uam9pbmVkR3JvdXA7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jY0dyb3VwTWVtYmVyS2lja2VkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cE1lbWJlcktpY2tlZC5zdWJzY3JpYmUoKGl0ZW06IElHcm91cE1lbWJlcktpY2tlZEJhbm5lZCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5nZXRHdWlkKCkgPT0gaXRlbT8ua2lja2VkRnJvbSEuZ2V0R3VpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy5raWNrZWRGcm9tO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuY2NPd25lcnNoaXBDaGFuZ2VkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NPd25lcnNoaXBDaGFuZ2VkLnN1YnNjcmliZSgoaXRlbTogSU93bmVyc2hpcENoYW5nZWQpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09IGl0ZW0/Lmdyb3VwIS5nZXRHdWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IGl0ZW0/Lmdyb3VwO1xuICAgICAgICB0aGlzLmFjdGl2ZUNvbnZlcnNhdGlvbj8uc2V0Q29udmVyc2F0aW9uV2l0aCh0aGlzLmdyb3VwKVxuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBMZWZ0ID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cExlZnQuc3Vic2NyaWJlKChpdGVtOiBJR3JvdXBMZWZ0KSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy5sZWZ0R3JvdXAhLmdldEd1aWQoKSAmJiB0aGlzLmxvZ2dlZEluVXNlcj8uZ2V0VWlkKCkgPT0gaXRlbT8udXNlckxlZnQ/LmdldFVpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBudWxsO1xuICAgICAgICB0aGlzLmFjdGl2ZUNvbnZlcnNhdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgLy8gb3BlbiBjaGF0IGFuZCBtYXJrIGFzIGFjdGl2ZSBjb252ZXJzYXRpb25cbiAgICB0aGlzLmNjT3BlbkNoYXQgPSBDb21ldENoYXRVSUV2ZW50cy5jY09wZW5DaGF0LnN1YnNjcmliZSgoaXRlbSkgPT4ge1xuICAgICAgdGhpcy51c2VyID0gaXRlbS51c2VyID8gaXRlbS51c2VyIDogbnVsbDtcbiAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtLmdyb3VwID8gaXRlbS5ncm91cCA6IG51bGw7XG4gICAgICB0aGlzLnNldEFjdGl2ZUNoYXQoKVxuICAgIH0pXG4gIH1cbiAgLy8gdW5zdWJzY3JpYmUgdG8gc3Vic2NyaWJlZCBldmVudHMuXG4gIHVuc3Vic2NyaWJlVG9FdmVudHMoKSB7XG4gICAgdGhpcy5jY0NvbnZlcnNhdGlvbkRlbGV0ZWQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jY0dyb3VwRGVsZXRlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJBZGRlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJCYW5uZWQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jY0dyb3VwTWVtYmVySm9pbmVkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NHcm91cE1lbWJlcktpY2tlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjT3duZXJzaGlwQ2hhbmdlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBMZWZ0Py51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NPcGVuQ2hhdD8udW5zdWJzY3JpYmUoKTtcbiAgfVxuICAvKipcbiAgICogcmVtb3ZlIGFjdGl2ZSBjaGF0IHNjcmVlbiBhZnRlciBkZWxldGluZyB0aGUgY29udmVyc2F0aW9uLlxuICAgKiBAcGFyYW0gIHtDb21ldENoYXQuQ29udmVyc2F0aW9ufSBjb252ZXJzYXRpb25cbiAgICovXG4gIHJlbW92ZUFjdGl2ZUNoYXRMaXN0KGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbikge1xuICAgIGNvbnN0IGNvbnZlcnNhdGlvblR5cGUgPSBjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uVHlwZSgpO1xuICAgIGNvbnN0IGNvbnZlcnNhdGlvbldpdGggPSBjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uV2l0aCgpO1xuICAgIGlmIChjb252ZXJzYXRpb25UeXBlID09PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLnVzZXIgJiYgdGhpcy51c2VyICYmIHRoaXMudXNlci5nZXRVaWQoKSA9PT0gKGNvbnZlcnNhdGlvbldpdGggYXMgQ29tZXRDaGF0LlVzZXIpLmdldFVpZCgpKSB7XG4gICAgICB0aGlzLnVzZXIgPSBudWxsO1xuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gZWxzZSBpZiAoY29udmVyc2F0aW9uVHlwZSA9PT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cCAmJiB0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09PSAoY29udmVyc2F0aW9uV2l0aCBhcyBDb21ldENoYXQuR3JvdXApLmdldEd1aWQoKSkge1xuICAgICAgdGhpcy5ncm91cCA9IG51bGw7XG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgZW1wdHlNZXNzYWdlU3R5bGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmJhY2tncm91bmQgfHwgdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBoZWlnaHQ6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmhlaWdodCxcbiAgICAgIHdpZHRoOiBgY2FsYygke3RoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLndpZHRofSAtIDI4MHB4KWAsXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5ib3JkZXJSYWRpdXMsXG4gICAgfVxuICB9XG4gIGNoYXRzV3JhcHBlclN0eWxlcyA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVpZ2h0OiB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5oZWlnaHQsXG4gICAgICB3aWR0aDogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUud2lkdGgsXG4gICAgICBib3JkZXI6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmJvcmRlcixcbiAgICAgIGJvcmRlclJhZGl1czogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUuYm9yZGVyUmFkaXVzLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUuYmFja2dyb3VuZCB8fCB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYy13aXRoLW1lc3NhZ2VzX193cmFwcGVyXCIgW25nU3R5bGVdPVwiY2hhdHNXcmFwcGVyU3R5bGVzKClcIiA+XG4gIDxkaXYgY2xhc3M9XCJjYy13aXRoLW1lc3NhZ2VzX19zaWRlYmFyXCIgW25nQ2xhc3NdPVwie21vYmlsZSA6IGlzTW9iaWxlVmlld31cIiBbbmdTdHlsZV09XCJzaWRlQmFyU3R5bGVcIj5cbiAgICA8Y29tZXRjaGF0LWNvbnZlcnNhdGlvbnNcbiAgICAjY29udmVyc2F0aW9uUmVmXG4gICAgW2FjdGl2ZUNvbnZlcnNhdGlvbl09XCJhY3RpdmVDb252ZXJzYXRpb25cIlxuICAgIFtvbkl0ZW1DbGlja109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLm9uSXRlbUNsaWNrIHx8IG9uSXRlbUNsaWNrXCJcbiAgICBbY29udmVyc2F0aW9uc1N0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uY29udmVyc2F0aW9uc1N0eWxlXCJcbiAgICBbc3VidGl0bGVWaWV3XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uc3VidGl0bGVWaWV3XCJcbiAgICBbb3B0aW9uc109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLm9wdGlvbnNcIlxuICAgIFtkaXNhYmxlVXNlcnNQcmVzZW5jZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRpc2FibGVVc2Vyc1ByZXNlbmNlXCJcbiAgICBbZGlzYWJsZVJlY2VpcHRdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kaXNhYmxlUmVjZWlwdFwiXG4gICAgW2Rpc2FibGVUeXBpbmddPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kaXNhYmxlVHlwaW5nXCJcbiAgICBbZGVsaXZlcmVkSWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRlbGl2ZXJlZEljb25cIlxuICAgIFtyZWFkSWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnJlYWRJY29uXCJcbiAgICBbd2FpdEljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi53YWl0SWNvblwiXG4gICAgW2Vycm9ySWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmVycm9ySWNvblwiXG4gICAgW2RhdGVQYXR0ZXJuXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZGF0ZVBhdHRlcm5cIlxuICAgIFtyZWNlaXB0U3R5bGVdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5yZWNlaXB0U3R5bGVcIlxuICAgIFtzZW50SWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnNlbnRJY29uXCJcbiAgICBbcHJpdmF0ZUdyb3VwSWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnByaXZhdGVHcm91cEljb25cIlxuICAgIFtwcm90ZWN0ZWRHcm91cEljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5wcm90ZWN0ZWRHcm91cEljb25cIlxuICAgIFtjdXN0b21Tb3VuZEZvck1lc3NhZ2VzXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uY3VzdG9tU291bmRGb3JNZXNzYWdlc1wiXG4gICAgW2NvbnZlcnNhdGlvbnNSZXF1ZXN0QnVpbGRlcl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnZlcnNhdGlvbnNSZXF1ZXN0QnVpbGRlclwiXG4gICAgW2VtcHR5U3RhdGVWaWV3XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZW1wdHlTdGF0ZVZpZXdcIlxuICAgIFtvblNlbGVjdF09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLm9uU2VsZWN0XCJcbiAgICBbbG9hZGluZ0ljb25VUkxdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5sb2FkaW5nSWNvblVSTFwiXG4gICAgW2Vycm9yU3RhdGVWaWV3XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZXJyb3JTdGF0ZVZpZXdcIlxuICAgIFtsb2FkaW5nU3RhdGVWaWV3XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ubG9hZGluZ1N0YXRlVmlld1wiXG4gICAgW3RpdGxlQWxpZ25tZW50XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24udGl0bGVBbGlnbm1lbnRcIlxuICAgIFtsaXN0SXRlbVZpZXddPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5saXN0SXRlbVZpZXdcIlxuICAgIFttZW51XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ubWVudSB8fCBzdGFydENvbnZlcnNhdGlvbkJ1dHRvblwiXG4gICAgW2hpZGVTZXBhcmF0b3JdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5oaWRlU2VwYXJhdG9yXCJcbiAgICBbaGlkZUVycm9yXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uaGlkZUVycm9yXCJcbiAgICBbc2VsZWN0aW9uTW9kZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnNlbGVjdGlvbk1vZGVcIlxuICAgIFtkaXNhYmxlU291bmRGb3JNZXNzYWdlc109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRpc2FibGVTb3VuZEZvck1lc3NhZ2VzXCJcbiAgICBbZGVsZXRlQ29udmVyc2F0aW9uRGlhbG9nU3R5bGVdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kZWxldGVDb252ZXJzYXRpb25EaWFsb2dTdHlsZVwiXG4gICAgW2JhZGdlU3R5bGVdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5iYWRnZVN0eWxlXCJcbiAgICBbZGF0ZVN0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZGF0ZVN0eWxlXCJcbiAgICBbbGlzdEl0ZW1TdHlsZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmxpc3RJdGVtU3R5bGVcIlxuICAgIFtiYWNrZHJvcFN0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZVwiXG5cbiAgICA+PC9jb21ldGNoYXQtY29udmVyc2F0aW9ucz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYy13aXRoLW1lc3NhZ2VzX19tYWluXCIgW25nQ2xhc3NdPVwie21vYmlsZSA6IGlzTW9iaWxlVmlld31cIiAqbmdJZj1cIiFzaG93U3RhcnRDb252ZXJzYXRpb24gJiYgKHVzZXIgfHwgZ3JvdXApXCI+XG4gICAgPCEtLU1lc3NhZ2UgTGlzdCBTY3JlZW4tLT5cbiAgICA8Y29tZXRjaGF0LW1lc3NhZ2VzXG4gICAgI21lc3NhZ2VzUmVmXG4gICAgW3VzZXJdPVwidXNlciFcIlxuICAgIFtncm91cF09XCJncm91cCFcIlxuICAgIFttZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbl09XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb25cIlxuICAgIFttZXNzYWdlTGlzdENvbmZpZ3VyYXRpb25dPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvblwiXG4gICAgW21lc3NhZ2VDb21wb3NlckNvbmZpZ3VyYXRpb25dPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VDb21wb3NlckNvbmZpZ3VyYXRpb25cIlxuICAgIFttZXNzYWdlc1N0eWxlXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlc1N0eWxlXCJcbiAgICBbY3VzdG9tU291bmRGb3JJbmNvbWluZ01lc3NhZ2VzXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5jdXN0b21Tb3VuZEZvckluY29taW5nTWVzc2FnZXNcIlxuICAgIFtjdXN0b21Tb3VuZEZvck91dGdvaW5nTWVzc2FnZXNdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmN1c3RvbVNvdW5kRm9yT3V0Z29pbmdNZXNzYWdlc1wiXG4gICAgW2RldGFpbHNDb25maWd1cmF0aW9uXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvblwiXG4gICAgW2Rpc2FibGVTb3VuZEZvck1lc3NhZ2VzXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kaXNhYmxlU291bmRGb3JNZXNzYWdlc1wiXG4gICAgW2Rpc2FibGVUeXBpbmddPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmRpc2FibGVUeXBpbmdcIlxuICAgIFtoaWRlTWVzc2FnZUNvbXBvc2VyXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5oaWRlTWVzc2FnZUNvbXBvc2VyXCJcbiAgICBbaGlkZU1lc3NhZ2VIZWFkZXJdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmhpZGVNZXNzYWdlSGVhZGVyXCJcbiAgICBbbWVzc2FnZUNvbXBvc2VyVmlld109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUNvbXBvc2VyVmlld1wiXG4gICAgW21lc3NhZ2VIZWFkZXJWaWV3XT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyVmlld1wiXG4gICAgW21lc3NhZ2VMaXN0Vmlld109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RWaWV3XCJcbiAgICBbaGlkZURldGFpbHNdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmhpZGVEZXRhaWxzIVwiXG4gICAgPlxuICAgIDwvY29tZXRjaGF0LW1lc3NhZ2VzPlxuICAgIDwhLS1NZXNzYWdlIExpc3QgU2NyZWVuIEVORFMtLT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYy13aXRoLW1lc3NhZ2VzX19zdGFydC1jb252ZXJzYXRpb25cIiBbbmdDbGFzc109XCJ7bW9iaWxlIDogaXNNb2JpbGVWaWV3fVwiICpuZ0lmPVwic2hvd1N0YXJ0Q29udmVyc2F0aW9uXCI+XG5cbiAgPGNvbWV0Y2hhdC1jb250YWN0cyBbdXNlcnNDb25maWd1cmF0aW9uXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi51c2Vyc0NvbmZpZ3VyYXRpb25cIlxuICBbZ3JvdXBzQ29uZmlndXJhdGlvbl09XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZ3JvdXBzQ29uZmlndXJhdGlvblwiXG4gIFtjbG9zZUljb25VUkxdPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNsb3NlSWNvblVSTFwiXG4gIFtjb250YWN0c1N0eWxlXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5jb250YWN0c1N0eWxlXCJcbiAgW3NlbGVjdGlvbk1vZGVdPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnNlbGVjdGlvbk1vZGVcIlxuICBbb25DbG9zZV09XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ub25DbG9zZVwiXG4gIFt0YWJWaXNpYmlsaXR5XT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi50YWJWaXNpYmlsaXR5XCJcbiAgW3NlbGVjdGlvbkxpbWl0XT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5zZWxlY3Rpb25MaW1pdFwiXG4gIFt0YWJzXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi50YWJzXCJcbiAgW2hpZGVTdWJtaXRCdXR0b25dPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmhpZGVTdWJtaXRCdXR0b25cIlxuICBbb25TdWJtaXRCdXR0b25DbGlja109XCJvbkNvbnRhY3RTZWxlY3RlZFwiPjwvY29tZXRjaGF0LWNvbnRhY3RzPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLWRlY29yYXRvcl9fbWVzc2FnZS0tZW1wdHlcIiAqbmdJZj1cIiF1c2VyICYmICFncm91cCAmJiAhc2hvd1N0YXJ0Q29udmVyc2F0aW9uXCIgW25nU3R5bGVdPVwiZW1wdHlNZXNzYWdlU3R5bGUoKVwiPlxuICAgIDxjb21ldGNoYXQtbGFiZWwgW3RleHRdPVwibWVzc2FnZVRleHRcIiBbbGFiZWxTdHlsZV09XCJsYWJlbFN0eWxlXCI+PC9jb21ldGNoYXQtbGFiZWw+XG4gICA8L2Rpdj5cbiAgIDxuZy10ZW1wbGF0ZSAjc3RhcnRDb252ZXJzYXRpb25CdXR0b24+XG4gICAgPGNvbWV0Y2hhdC1idXR0b24gKm5nSWY9XCIhaGlkZVN0YXJ0TmV3Q29udmVyc2F0aW9uXCIgW2ljb25VUkxdPVwic3RhcnROZXdDb252ZXJzYXRpb25JY29uVVJMXCIgW2J1dHRvblN0eWxlXT1cInN0YXJ0Q29udmVyc2F0aW9uQnV0dG9uU3R5bGVcIiAoY2MtYnV0dG9uLWNsaWNrZWQpPVwidHJpZ2dlclN0YXJ0Q29udmVyc2F0aW9uKClcIj48L2NvbWV0Y2hhdC1idXR0b24+XG5cbiAgPC9uZy10ZW1wbGF0ZT4iXX0=
|