@vendasta/conversation 0.60.0 → 0.62.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.
Files changed (71) hide show
  1. package/{esm2020 → esm2022}/lib/_generated/host.service.mjs +4 -4
  2. package/esm2022/lib/_internal/conversation.api.service.mjs +232 -0
  3. package/{esm2020 → esm2022}/lib/_internal/enums/conversation.enum.mjs +2 -1
  4. package/esm2022/lib/_internal/inbox.api.service.mjs +53 -0
  5. package/esm2022/lib/_internal/interfaces/api.interface.mjs +2 -0
  6. package/{esm2020 → esm2022}/lib/_internal/interfaces/configuration.interface.mjs +1 -1
  7. package/esm2022/lib/_internal/interfaces/index.mjs +2 -0
  8. package/esm2022/lib/_internal/objects/annotations.mjs +32 -0
  9. package/esm2022/lib/_internal/objects/api.mjs +2764 -0
  10. package/esm2022/lib/_internal/objects/common.mjs +64 -0
  11. package/esm2022/lib/_internal/objects/configuration.mjs +123 -0
  12. package/esm2022/lib/_internal/objects/conversation-view.mjs +35 -0
  13. package/esm2022/lib/_internal/objects/conversation.mjs +173 -0
  14. package/esm2022/lib/_internal/objects/field-mask.mjs +28 -0
  15. package/esm2022/lib/_internal/objects/index.mjs +18 -0
  16. package/esm2022/lib/_internal/objects/message-template.mjs +43 -0
  17. package/esm2022/lib/_internal/objects/message.mjs +169 -0
  18. package/esm2022/lib/_internal/objects/participant.mjs +224 -0
  19. package/esm2022/lib/_internal/objects/widget.mjs +107 -0
  20. package/{fesm2020 → fesm2022}/vendasta-conversation.mjs +453 -32
  21. package/fesm2022/vendasta-conversation.mjs.map +1 -0
  22. package/lib/_internal/conversation.api.service.d.ts +7 -7
  23. package/lib/_internal/enums/conversation.enum.d.ts +2 -1
  24. package/lib/_internal/inbox.api.service.d.ts +2 -5
  25. package/lib/_internal/interfaces/api.interface.d.ts +15 -3
  26. package/lib/_internal/interfaces/configuration.interface.d.ts +2 -0
  27. package/lib/_internal/interfaces/index.d.ts +1 -1
  28. package/lib/_internal/objects/api.d.ts +31 -7
  29. package/lib/_internal/objects/configuration.d.ts +2 -0
  30. package/lib/_internal/objects/index.d.ts +1 -1
  31. package/package.json +7 -13
  32. package/esm2020/lib/_internal/conversation.api.service.mjs +0 -225
  33. package/esm2020/lib/_internal/inbox.api.service.mjs +0 -56
  34. package/esm2020/lib/_internal/interfaces/api.interface.mjs +0 -2
  35. package/esm2020/lib/_internal/interfaces/index.mjs +0 -2
  36. package/esm2020/lib/_internal/objects/annotations.mjs +0 -30
  37. package/esm2020/lib/_internal/objects/api.mjs +0 -2472
  38. package/esm2020/lib/_internal/objects/common.mjs +0 -60
  39. package/esm2020/lib/_internal/objects/configuration.mjs +0 -99
  40. package/esm2020/lib/_internal/objects/conversation-view.mjs +0 -33
  41. package/esm2020/lib/_internal/objects/conversation.mjs +0 -153
  42. package/esm2020/lib/_internal/objects/field-mask.mjs +0 -27
  43. package/esm2020/lib/_internal/objects/index.mjs +0 -18
  44. package/esm2020/lib/_internal/objects/message-template.mjs +0 -39
  45. package/esm2020/lib/_internal/objects/message.mjs +0 -149
  46. package/esm2020/lib/_internal/objects/participant.mjs +0 -192
  47. package/esm2020/lib/_internal/objects/widget.mjs +0 -93
  48. package/fesm2015/vendasta-conversation.mjs +0 -3807
  49. package/fesm2015/vendasta-conversation.mjs.map +0 -1
  50. package/fesm2020/vendasta-conversation.mjs.map +0 -1
  51. /package/{esm2020 → esm2022}/lib/_internal/enums/api.enum.mjs +0 -0
  52. /package/{esm2020 → esm2022}/lib/_internal/enums/common.enum.mjs +0 -0
  53. /package/{esm2020 → esm2022}/lib/_internal/enums/conversation-view.enum.mjs +0 -0
  54. /package/{esm2020 → esm2022}/lib/_internal/enums/evaluation.enum.mjs +0 -0
  55. /package/{esm2020 → esm2022}/lib/_internal/enums/index.mjs +0 -0
  56. /package/{esm2020 → esm2022}/lib/_internal/enums/message.enum.mjs +0 -0
  57. /package/{esm2020 → esm2022}/lib/_internal/enums/participant.enum.mjs +0 -0
  58. /package/{esm2020 → esm2022}/lib/_internal/enums/widget.enum.mjs +0 -0
  59. /package/{esm2020 → esm2022}/lib/_internal/index.mjs +0 -0
  60. /package/{esm2020 → esm2022}/lib/_internal/interfaces/annotations.interface.mjs +0 -0
  61. /package/{esm2020 → esm2022}/lib/_internal/interfaces/common.interface.mjs +0 -0
  62. /package/{esm2020 → esm2022}/lib/_internal/interfaces/conversation-view.interface.mjs +0 -0
  63. /package/{esm2020 → esm2022}/lib/_internal/interfaces/conversation.interface.mjs +0 -0
  64. /package/{esm2020 → esm2022}/lib/_internal/interfaces/field-mask.interface.mjs +0 -0
  65. /package/{esm2020 → esm2022}/lib/_internal/interfaces/message-template.interface.mjs +0 -0
  66. /package/{esm2020 → esm2022}/lib/_internal/interfaces/message.interface.mjs +0 -0
  67. /package/{esm2020 → esm2022}/lib/_internal/interfaces/participant.interface.mjs +0 -0
  68. /package/{esm2020 → esm2022}/lib/_internal/interfaces/widget.interface.mjs +0 -0
  69. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  70. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  71. /package/{esm2020 → esm2022}/vendasta-conversation.mjs +0 -0
@@ -1,225 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // API Service.
6
- // *********************************
7
- import { Injectable } from '@angular/core';
8
- import { AddConversationToConversationViewRequest, AddMultiParticipantsRequest, AddMultiParticipantsResponse, CreateConversationRequest, CreateConversationResponse, CreateMessageTemplateRequest, CreateMessageTemplateResponse, CreateMultiMessagesRequest, CreateWidgetConversationRequest, CreateWidgetConversationResponse, CreateWidgetRequest, CreateWidgetResponse, DeleteConversationRequest, DeleteMessageRequest, DeleteMessageTemplateRequest, DeleteWidgetRequest, EvaluateResponseRequest, GetAvailableChannelsForConversationRequest, GetAvailableChannelsForConversationResponse, GetConversationByKeyRequest, GetConversationByKeyResponse, GetConversationViewsRequest, GetConversationViewsResponse, GetMessageRequest, GetMessageTemplateRequest, GetMessageTemplateResponse, GetMultiConversationDetailsRequest, GetMultiConversationDetailsResponse, GetMultiConversationMessageCountRequest, GetMultiConversationMessageCountResponse, GetMultiMessagesRequest, GetMultiMessagesResponse, GetMultiParticipantsRequest, GetMultiParticipantsResponse, GetMultiWidgetMessagesRequest, GetMultiWidgetMessagesResponse, GetParticipantsByKeyRequest, GetParticipantsByKeyResponse, GetWidgetConfigRequest, GetWidgetConfigResponse, GetWidgetConversationResponse, GetWidgetRequest, GetWidgetResponse, ListMessageTemplateRequest, ListMessageTemplateResponse, ListMessagesRequest, ListMessagesResponse, ListWidgetsRequest, ListWidgetsResponse, LookupConversationsRequest, LookupConversationsResponse, Message, ReceiveMessageRequest, RemoveConversationFromConversationViewRequest, SearchConversationsRequest, SearchConversationsResponse, SendMessageRequest, SendMessageResponse, SendWidgetMessageRequest, SendWidgetMessageResponse, SetLastSeenRequest, SetLastSeenResponse, UpdateConversationRequest, UpdateConversationResponse, UpdateMessageStatusRequest, UpdateMessageTemplateRequest, UpdateMessageTemplateResponse, UpdateWidgetRequest, UpdateWidgetResponse, } from './objects/';
9
- import { HttpHeaders, HttpClient } from '@angular/common/http';
10
- import { HostService } from '../_generated/host.service';
11
- import { map } from 'rxjs/operators';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "../_generated/host.service";
15
- export class ConversationApiService {
16
- constructor(http, hostService) {
17
- this.http = http;
18
- this.hostService = hostService;
19
- this._host = this.hostService.hostWithScheme;
20
- }
21
- apiOptions() {
22
- return {
23
- headers: new HttpHeaders({
24
- 'Content-Type': 'application/json'
25
- }),
26
- withCredentials: true
27
- };
28
- }
29
- sendMessage(r) {
30
- const request = (r.toApiJson) ? r : new SendMessageRequest(r);
31
- return this.http.post(this._host + "/conversation.v1.ConversationService/SendMessage", request.toApiJson(), this.apiOptions())
32
- .pipe(map(resp => SendMessageResponse.fromProto(resp)));
33
- }
34
- getMessage(r) {
35
- const request = (r.toApiJson) ? r : new GetMessageRequest(r);
36
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMessage", request.toApiJson(), this.apiOptions())
37
- .pipe(map(resp => Message.fromProto(resp)));
38
- }
39
- listMessages(r) {
40
- const request = (r.toApiJson) ? r : new ListMessagesRequest(r);
41
- return this.http.post(this._host + "/conversation.v1.ConversationService/ListMessages", request.toApiJson(), this.apiOptions())
42
- .pipe(map(resp => ListMessagesResponse.fromProto(resp)));
43
- }
44
- deleteMessage(r) {
45
- const request = (r.toApiJson) ? r : new DeleteMessageRequest(r);
46
- return this.http.post(this._host + "/conversation.v1.ConversationService/DeleteMessage", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
47
- }
48
- updateMessageStatus(r) {
49
- const request = (r.toApiJson) ? r : new UpdateMessageStatusRequest(r);
50
- return this.http.post(this._host + "/conversation.v1.ConversationService/UpdateMessageStatus", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
51
- }
52
- lookupConversations(r) {
53
- const request = (r.toApiJson) ? r : new LookupConversationsRequest(r);
54
- return this.http.post(this._host + "/conversation.v1.ConversationService/LookupConversations", request.toApiJson(), this.apiOptions())
55
- .pipe(map(resp => LookupConversationsResponse.fromProto(resp)));
56
- }
57
- getConversationByKey(r) {
58
- const request = (r.toApiJson) ? r : new GetConversationByKeyRequest(r);
59
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetConversationByKey", request.toApiJson(), this.apiOptions())
60
- .pipe(map(resp => GetConversationByKeyResponse.fromProto(resp)));
61
- }
62
- createConversation(r) {
63
- const request = (r.toApiJson) ? r : new CreateConversationRequest(r);
64
- return this.http.post(this._host + "/conversation.v1.ConversationService/CreateConversation", request.toApiJson(), this.apiOptions())
65
- .pipe(map(resp => CreateConversationResponse.fromProto(resp)));
66
- }
67
- updateConversation(r) {
68
- const request = (r.toApiJson) ? r : new UpdateConversationRequest(r);
69
- return this.http.post(this._host + "/conversation.v1.ConversationService/UpdateConversation", request.toApiJson(), this.apiOptions())
70
- .pipe(map(resp => UpdateConversationResponse.fromProto(resp)));
71
- }
72
- deleteConversation(r) {
73
- const request = (r.toApiJson) ? r : new DeleteConversationRequest(r);
74
- return this.http.post(this._host + "/conversation.v1.ConversationService/DeleteConversation", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
75
- }
76
- receiveMessage(r) {
77
- const request = (r.toApiJson) ? r : new ReceiveMessageRequest(r);
78
- return this.http.post(this._host + "/conversation.v1.ConversationService/ReceiveMessage", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
79
- }
80
- getMultiMessages(r) {
81
- const request = (r.toApiJson) ? r : new GetMultiMessagesRequest(r);
82
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMultiMessages", request.toApiJson(), this.apiOptions())
83
- .pipe(map(resp => GetMultiMessagesResponse.fromProto(resp)));
84
- }
85
- createMultiMessages(r) {
86
- const request = (r.toApiJson) ? r : new CreateMultiMessagesRequest(r);
87
- return this.http.post(this._host + "/conversation.v1.ConversationService/CreateMultiMessages", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
88
- }
89
- getMultiConversationDetails(r) {
90
- const request = (r.toApiJson) ? r : new GetMultiConversationDetailsRequest(r);
91
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMultiConversationDetails", request.toApiJson(), this.apiOptions())
92
- .pipe(map(resp => GetMultiConversationDetailsResponse.fromProto(resp)));
93
- }
94
- getMultiParticipants(r) {
95
- const request = (r.toApiJson) ? r : new GetMultiParticipantsRequest(r);
96
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMultiParticipants", request.toApiJson(), this.apiOptions())
97
- .pipe(map(resp => GetMultiParticipantsResponse.fromProto(resp)));
98
- }
99
- searchConversations(r) {
100
- const request = (r.toApiJson) ? r : new SearchConversationsRequest(r);
101
- return this.http.post(this._host + "/conversation.v1.ConversationService/SearchConversations", request.toApiJson(), this.apiOptions())
102
- .pipe(map(resp => SearchConversationsResponse.fromProto(resp)));
103
- }
104
- getMultiConversationMessageCount(r) {
105
- const request = (r.toApiJson) ? r : new GetMultiConversationMessageCountRequest(r);
106
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMultiConversationMessageCount", request.toApiJson(), this.apiOptions())
107
- .pipe(map(resp => GetMultiConversationMessageCountResponse.fromProto(resp)));
108
- }
109
- addMultiParticipants(r) {
110
- const request = (r.toApiJson) ? r : new AddMultiParticipantsRequest(r);
111
- return this.http.post(this._host + "/conversation.v1.ConversationService/AddMultiParticipants", request.toApiJson(), this.apiOptions())
112
- .pipe(map(resp => AddMultiParticipantsResponse.fromProto(resp)));
113
- }
114
- setLastSeen(r) {
115
- const request = (r.toApiJson) ? r : new SetLastSeenRequest(r);
116
- return this.http.post(this._host + "/conversation.v1.ConversationService/SetLastSeen", request.toApiJson(), this.apiOptions())
117
- .pipe(map(resp => SetLastSeenResponse.fromProto(resp)));
118
- }
119
- getParticipantsByKey(r) {
120
- const request = (r.toApiJson) ? r : new GetParticipantsByKeyRequest(r);
121
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetParticipantsByKey", request.toApiJson(), this.apiOptions())
122
- .pipe(map(resp => GetParticipantsByKeyResponse.fromProto(resp)));
123
- }
124
- getConversationViews(r) {
125
- const request = (r.toApiJson) ? r : new GetConversationViewsRequest(r);
126
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetConversationViews", request.toApiJson(), this.apiOptions())
127
- .pipe(map(resp => GetConversationViewsResponse.fromProto(resp)));
128
- }
129
- addConversationToConversationView(r) {
130
- const request = (r.toApiJson) ? r : new AddConversationToConversationViewRequest(r);
131
- return this.http.post(this._host + "/conversation.v1.ConversationService/AddConversationToConversationView", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
132
- }
133
- removeConversationFromConversationView(r) {
134
- const request = (r.toApiJson) ? r : new RemoveConversationFromConversationViewRequest(r);
135
- return this.http.post(this._host + "/conversation.v1.ConversationService/RemoveConversationFromConversationView", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
136
- }
137
- createWidgetConversation(r) {
138
- const request = (r.toApiJson) ? r : new CreateWidgetConversationRequest(r);
139
- return this.http.post(this._host + "/conversation.v1.ConversationService/CreateWidgetConversation", request.toApiJson(), this.apiOptions())
140
- .pipe(map(resp => CreateWidgetConversationResponse.fromProto(resp)));
141
- }
142
- getMultiWidgetMessages(r) {
143
- const request = (r.toApiJson) ? r : new GetMultiWidgetMessagesRequest(r);
144
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMultiWidgetMessages", request.toApiJson(), this.apiOptions())
145
- .pipe(map(resp => GetMultiWidgetMessagesResponse.fromProto(resp)));
146
- }
147
- sendWidgetMessage(r) {
148
- const request = (r.toApiJson) ? r : new SendWidgetMessageRequest(r);
149
- return this.http.post(this._host + "/conversation.v1.ConversationService/SendWidgetMessage", request.toApiJson(), this.apiOptions())
150
- .pipe(map(resp => SendWidgetMessageResponse.fromProto(resp)));
151
- }
152
- getWidgetConversation() {
153
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetWidgetConversation", {}, this.apiOptions())
154
- .pipe(map(resp => GetWidgetConversationResponse.fromProto(resp)));
155
- }
156
- getAvailableChannelsForConversation(r) {
157
- const request = (r.toApiJson) ? r : new GetAvailableChannelsForConversationRequest(r);
158
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetAvailableChannelsForConversation", request.toApiJson(), this.apiOptions())
159
- .pipe(map(resp => GetAvailableChannelsForConversationResponse.fromProto(resp)));
160
- }
161
- evaluateResponse(r) {
162
- const request = (r.toApiJson) ? r : new EvaluateResponseRequest(r);
163
- return this.http.post(this._host + "/conversation.v1.ConversationService/EvaluateResponse", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
164
- }
165
- createWidget(r) {
166
- const request = (r.toApiJson) ? r : new CreateWidgetRequest(r);
167
- return this.http.post(this._host + "/conversation.v1.ConversationService/CreateWidget", request.toApiJson(), this.apiOptions())
168
- .pipe(map(resp => CreateWidgetResponse.fromProto(resp)));
169
- }
170
- getWidget(r) {
171
- const request = (r.toApiJson) ? r : new GetWidgetRequest(r);
172
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetWidget", request.toApiJson(), this.apiOptions())
173
- .pipe(map(resp => GetWidgetResponse.fromProto(resp)));
174
- }
175
- updateWidget(r) {
176
- const request = (r.toApiJson) ? r : new UpdateWidgetRequest(r);
177
- return this.http.post(this._host + "/conversation.v1.ConversationService/UpdateWidget", request.toApiJson(), this.apiOptions())
178
- .pipe(map(resp => UpdateWidgetResponse.fromProto(resp)));
179
- }
180
- deleteWidget(r) {
181
- const request = (r.toApiJson) ? r : new DeleteWidgetRequest(r);
182
- return this.http.post(this._host + "/conversation.v1.ConversationService/DeleteWidget", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
183
- }
184
- listWidgets(r) {
185
- const request = (r.toApiJson) ? r : new ListWidgetsRequest(r);
186
- return this.http.post(this._host + "/conversation.v1.ConversationService/ListWidgets", request.toApiJson(), this.apiOptions())
187
- .pipe(map(resp => ListWidgetsResponse.fromProto(resp)));
188
- }
189
- getWidgetConfig(r) {
190
- const request = (r.toApiJson) ? r : new GetWidgetConfigRequest(r);
191
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetWidgetConfig", request.toApiJson(), this.apiOptions())
192
- .pipe(map(resp => GetWidgetConfigResponse.fromProto(resp)));
193
- }
194
- listMessageTemplate(r) {
195
- const request = (r.toApiJson) ? r : new ListMessageTemplateRequest(r);
196
- return this.http.post(this._host + "/conversation.v1.ConversationService/ListMessageTemplate", request.toApiJson(), this.apiOptions())
197
- .pipe(map(resp => ListMessageTemplateResponse.fromProto(resp)));
198
- }
199
- deleteMessageTemplate(r) {
200
- const request = (r.toApiJson) ? r : new DeleteMessageTemplateRequest(r);
201
- return this.http.post(this._host + "/conversation.v1.ConversationService/DeleteMessageTemplate", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
202
- }
203
- createMessageTemplate(r) {
204
- const request = (r.toApiJson) ? r : new CreateMessageTemplateRequest(r);
205
- return this.http.post(this._host + "/conversation.v1.ConversationService/CreateMessageTemplate", request.toApiJson(), this.apiOptions())
206
- .pipe(map(resp => CreateMessageTemplateResponse.fromProto(resp)));
207
- }
208
- updateMessageTemplate(r) {
209
- const request = (r.toApiJson) ? r : new UpdateMessageTemplateRequest(r);
210
- return this.http.post(this._host + "/conversation.v1.ConversationService/UpdateMessageTemplate", request.toApiJson(), this.apiOptions())
211
- .pipe(map(resp => UpdateMessageTemplateResponse.fromProto(resp)));
212
- }
213
- getMessageTemplate(r) {
214
- const request = (r.toApiJson) ? r : new GetMessageTemplateRequest(r);
215
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMessageTemplate", request.toApiJson(), this.apiOptions())
216
- .pipe(map(resp => GetMessageTemplateResponse.fromProto(resp)));
217
- }
218
- }
219
- ConversationApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConversationApiService, deps: [{ token: i1.HttpClient }, { token: i2.HostService }], target: i0.ɵɵFactoryTarget.Injectable });
220
- ConversationApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConversationApiService, providedIn: 'root' });
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConversationApiService, decorators: [{
222
- type: Injectable,
223
- args: [{ providedIn: 'root' }]
224
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HostService }]; } });
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29udmVyc2F0aW9uX3Nkay9zcmMvbGliL19pbnRlcm5hbC9jb252ZXJzYXRpb24uYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsRUFBRTtBQUNGLGVBQWU7QUFDZixvQ0FBb0M7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0Msd0NBQXdDLEVBQ3hDLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsZ0NBQWdDLEVBQ2hDLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QiwwQ0FBMEMsRUFDMUMsMkNBQTJDLEVBQzNDLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQixrQ0FBa0MsRUFDbEMsbUNBQW1DLEVBQ25DLHVDQUF1QyxFQUN2Qyx3Q0FBd0MsRUFDeEMsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IsbUJBQW1C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LENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFzQyxJQUFJLENBQUMsS0FBSyxHQUFHLHlEQUF5RCxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDckssSUFBSSxDQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMxRCxDQUFDO0lBQ1YsQ0FBQzs7b0hBdlFRLHNCQUFzQjt3SEFBdEIsc0JBQXNCLGNBRFYsTUFBTTs0RkFDbEIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gQVBJIFNlcnZpY2UuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgICAgICBBZGRDb252ZXJzYXRpb25Ub0NvbnZlcnNhdGlvblZpZXdSZXF1ZXN0LFxuICAgICAgICBBZGRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3QsXG4gICAgICAgIEFkZE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2UsXG4gICAgICAgIENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3QsXG4gICAgICAgIENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlLFxuICAgICAgICBDcmVhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0LFxuICAgICAgICBDcmVhdGVNZXNzYWdlVGVtcGxhdGVSZXNwb25zZSxcbiAgICAgICAgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3QsXG4gICAgICAgIENyZWF0ZVdpZGdldENvbnZlcnNhdGlvblJlcXVlc3QsXG4gICAgICAgIENyZWF0ZVdpZGdldENvbnZlcnNhdGlvblJlc3BvbnNlLFxuICAgICAgICBDcmVhdGVXaWRnZXRSZXF1ZXN0LFxuICAgICAgICBDcmVhdGVXaWRnZXRSZXNwb25zZSxcbiAgICAgICAgRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdCxcbiAgICAgICAgRGVsZXRlTWVzc2FnZVJlcXVlc3QsXG4gICAgICAgIERlbGV0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3QsXG4gICAgICAgIERlbGV0ZVdpZGdldFJlcXVlc3QsXG4gICAgICAgIEV2YWx1YXRlUmVzcG9uc2VSZXF1ZXN0LFxuICAgICAgICBHZXRBdmFpbGFibGVDaGFubmVsc0ZvckNvbnZlcnNhdGlvblJlcXVlc3QsXG4gICAgICAgIEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVzcG9uc2UsXG4gICAgICAgIEdldENvbnZlcnNhdGlvbkJ5S2V5UmVxdWVzdCxcbiAgICAgICAgR2V0Q29udmVyc2F0aW9uQnlLZXlSZXNwb25zZSxcbiAgICAgICAgR2V0Q29udmVyc2F0aW9uVmlld3NSZXF1ZXN0LFxuICAgICAgICBHZXRDb252ZXJzYXRpb25WaWV3c1Jlc3BvbnNlLFxuICAgICAgICBHZXRNZXNzYWdlUmVxdWVzdCxcbiAgICAgICAgR2V0TWVzc2FnZVRlbXBsYXRlUmVxdWVzdCxcbiAgICAgICAgR2V0TWVzc2FnZVRlbXBsYXRlUmVzcG9uc2UsXG4gICAgICAgIEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3QsXG4gICAgICAgIEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1Jlc3BvbnNlLFxuICAgICAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlcXVlc3QsXG4gICAgICAgIEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVzcG9uc2UsXG4gICAgICAgIEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aU1lc3NhZ2VzUmVzcG9uc2UsXG4gICAgICAgIEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdCxcbiAgICAgICAgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZSxcbiAgICAgICAgR2V0TXVsdGlXaWRnZXRNZXNzYWdlc1JlcXVlc3QsXG4gICAgICAgIEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXNwb25zZSxcbiAgICAgICAgR2V0UGFydGljaXBhbnRzQnlLZXlSZXF1ZXN0LFxuICAgICAgICBHZXRQYXJ0aWNpcGFudHNCeUtleVJlc3BvbnNlLFxuICAgICAgICBHZXRXaWRnZXRDb25maWdSZXF1ZXN0LFxuICAgICAgICBHZXRXaWRnZXRDb25maWdSZXNwb25zZSxcbiAgICAgICAgR2V0V2lkZ2V0Q29udmVyc2F0aW9uUmVzcG9uc2UsXG4gICAgICAgIEdldFdpZGdldFJlcXVlc3QsXG4gICAgICAgIEdldFdpZGdldFJlc3BvbnNlLFxuICAgICAgICBMaXN0TWVzc2FnZVRlbXBsYXRlUmVxdWVzdCxcbiAgICAgICAgTGlzdE1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlLFxuICAgICAgICBMaXN0TWVzc2FnZXNSZXF1ZXN0LFxuICAgICAgICBMaXN0TWVzc2FnZXNSZXNwb25zZSxcbiAgICAgICAgTGlzdFdpZGdldHNSZXF1ZXN0LFxuICAgICAgICBMaXN0V2lkZ2V0c1Jlc3BvbnNlLFxuICAgICAgICBMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdCxcbiAgICAgICAgTG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlLFxuICAgICAgICBNZXNzYWdlLFxuICAgICAgICBSZWNlaXZlTWVzc2FnZVJlcXVlc3QsXG4gICAgICAgIFJlbW92ZUNvbnZlcnNhdGlvbkZyb21Db252ZXJzYXRpb25WaWV3UmVxdWVzdCxcbiAgICAgICAgU2VhcmNoQ29udmVyc2F0aW9uc1JlcXVlc3QsXG4gICAgICAgIFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZSxcbiAgICAgICAgU2VuZE1lc3NhZ2VSZXF1ZXN0LFxuICAgICAgICBTZW5kTWVzc2FnZVJlc3BvbnNlLFxuICAgICAgICBTZW5kV2lkZ2V0TWVzc2FnZVJlcXVlc3QsXG4gICAgICAgIFNlbmRXaWRnZXRNZXNzYWdlUmVzcG9uc2UsXG4gICAgICAgIFNldExhc3RTZWVuUmVxdWVzdCxcbiAgICAgICAgU2V0TGFzdFNlZW5SZXNwb25zZSxcbiAgICAgICAgVXBkYXRlQ29udmVyc2F0aW9uUmVxdWVzdCxcbiAgICAgICAgVXBkYXRlQ29udmVyc2F0aW9uUmVzcG9uc2UsXG4gICAgICAgIFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0LFxuICAgICAgICBVcGRhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0LFxuICAgICAgICBVcGRhdGVNZXNzYWdlVGVtcGxhdGVSZXNwb25zZSxcbiAgICAgICAgVXBkYXRlV2lkZ2V0UmVxdWVzdCxcbiAgICAgICAgVXBkYXRlV2lkZ2V0UmVzcG9uc2UsXG59IGZyb20gJy4vb2JqZWN0cy8nO1xuaW1wb3J0IHtcbiAgICAgICAgQWRkQ29udmVyc2F0aW9uVG9Db252ZXJzYXRpb25WaWV3UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQWRkTXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBBZGRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZU11bHRpTWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlV2lkZ2V0UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlV2lkZ2V0UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIERlbGV0ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBEZWxldGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBEZWxldGVXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBFdmFsdWF0ZVJlc3BvbnNlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRBdmFpbGFibGVDaGFubmVsc0ZvckNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRDb252ZXJzYXRpb25CeUtleVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldENvbnZlcnNhdGlvbkJ5S2V5UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldENvbnZlcnNhdGlvblZpZXdzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0Q29udmVyc2F0aW9uVmlld3NSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0TWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldE1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlNZXNzYWdlc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldFBhcnRpY2lwYW50c0J5S2V5UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0UGFydGljaXBhbnRzQnlLZXlSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0V2lkZ2V0Q29uZmlnUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0V2lkZ2V0Q29uZmlnUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldFdpZGdldENvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRXaWRnZXRSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExpc3RNZXNzYWdlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdE1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdE1lc3NhZ2VzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIExpc3RXaWRnZXRzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdFdpZGdldHNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExvb2t1cENvbnZlcnNhdGlvbnNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTWVzc2FnZUludGVyZmFjZSxcbiAgICAgICAgUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBSZW1vdmVDb252ZXJzYXRpb25Gcm9tQ29udmVyc2F0aW9uVmlld1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNlYXJjaENvbnZlcnNhdGlvbnNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZWFyY2hDb252ZXJzYXRpb25zUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFNlbmRNZXNzYWdlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgU2VuZE1lc3NhZ2VSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgU2VuZFdpZGdldE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZW5kV2lkZ2V0TWVzc2FnZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBTZXRMYXN0U2VlblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNldExhc3RTZWVuUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBVcGRhdGVNZXNzYWdlU3RhdHVzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgVXBkYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgVXBkYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZVdpZGdldFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZVdpZGdldFJlc3BvbnNlSW50ZXJmYWNlLFxufSBmcm9tICcuL2ludGVyZmFjZXMvJztcbmltcG9ydCB7SHR0cEhlYWRlcnMsIEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtIb3N0U2VydmljZX0gZnJvbSAnLi4vX2dlbmVyYXRlZC9ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvbkFwaVNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2hvc3QgPSB0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGhvc3RTZXJ2aWNlOiBIb3N0U2VydmljZSkge1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBpT3B0aW9ucygpOiB7aGVhZGVyczogSHR0cEhlYWRlcnMsIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbn0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNlbmRNZXNzYWdlKHI6IFNlbmRNZXNzYWdlUmVxdWVzdCB8IFNlbmRNZXNzYWdlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8U2VuZE1lc3NhZ2VSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8U2VuZE1lc3NhZ2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNlbmRNZXNzYWdlUmVxdWVzdD5yKSA6IG5ldyBTZW5kTWVzc2FnZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTZW5kTWVzc2FnZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvU2VuZE1lc3NhZ2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBTZW5kTWVzc2FnZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE1lc3NhZ2UocjogR2V0TWVzc2FnZVJlcXVlc3QgfCBHZXRNZXNzYWdlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TWVzc2FnZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TWVzc2FnZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgR2V0TWVzc2FnZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxNZXNzYWdlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0TWVzc2FnZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IE1lc3NhZ2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgbGlzdE1lc3NhZ2VzKHI6IExpc3RNZXNzYWdlc1JlcXVlc3QgfCBMaXN0TWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0TWVzc2FnZXNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdE1lc3NhZ2VzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0TWVzc2FnZXNSZXF1ZXN0PnIpIDogbmV3IExpc3RNZXNzYWdlc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0TWVzc2FnZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0xpc3RNZXNzYWdlc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IExpc3RNZXNzYWdlc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGRlbGV0ZU1lc3NhZ2UocjogRGVsZXRlTWVzc2FnZVJlcXVlc3QgfCBEZWxldGVNZXNzYWdlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEZWxldGVNZXNzYWdlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxEZWxldGVNZXNzYWdlUmVxdWVzdD5yKSA6IG5ldyBEZWxldGVNZXNzYWdlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9EZWxldGVNZXNzYWdlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICB1cGRhdGVNZXNzYWdlU3RhdHVzKHI6IFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0IHwgVXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3Q+cikgOiBuZXcgVXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvVXBkYXRlTWVzc2FnZVN0YXR1c1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgbG9va3VwQ29udmVyc2F0aW9ucyhyOiBMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdCB8IExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0PnIpIDogbmV3IExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvTG9va3VwQ29udmVyc2F0aW9uc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IExvb2t1cENvbnZlcnNhdGlvbnNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRDb252ZXJzYXRpb25CeUtleShyOiBHZXRDb252ZXJzYXRpb25CeUtleVJlcXVlc3QgfCBHZXRDb252ZXJzYXRpb25CeUtleVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldENvbnZlcnNhdGlvbkJ5S2V5UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldENvbnZlcnNhdGlvbkJ5S2V5UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRDb252ZXJzYXRpb25CeUtleVJlcXVlc3Q+cikgOiBuZXcgR2V0Q29udmVyc2F0aW9uQnlLZXlSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0Q29udmVyc2F0aW9uQnlLZXlSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldENvbnZlcnNhdGlvbkJ5S2V5XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0Q29udmVyc2F0aW9uQnlLZXlSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGVDb252ZXJzYXRpb24ocjogQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdCB8IENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvQ3JlYXRlQ29udmVyc2F0aW9uXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gQ3JlYXRlQ29udmVyc2F0aW9uUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdXBkYXRlQ29udmVyc2F0aW9uKHI6IFVwZGF0ZUNvbnZlcnNhdGlvblJlcXVlc3QgfCBVcGRhdGVDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxVcGRhdGVDb252ZXJzYXRpb25SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlQ29udmVyc2F0aW9uUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcGRhdGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZUNvbnZlcnNhdGlvblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxVcGRhdGVDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL1VwZGF0ZUNvbnZlcnNhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFVwZGF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGRlbGV0ZUNvbnZlcnNhdGlvbihyOiBEZWxldGVDb252ZXJzYXRpb25SZXF1ZXN0IHwgRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEZWxldGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9EZWxldGVDb252ZXJzYXRpb25cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHJlY2VpdmVNZXNzYWdlKHI6IFJlY2VpdmVNZXNzYWdlUmVxdWVzdCB8IFJlY2VpdmVNZXNzYWdlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxSZWNlaXZlTWVzc2FnZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8UmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0PnIpIDogbmV3IFJlY2VpdmVNZXNzYWdlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9SZWNlaXZlTWVzc2FnZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgZ2V0TXVsdGlNZXNzYWdlcyhyOiBHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdCB8IEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aU1lc3NhZ2VzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlNZXNzYWdlc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0TXVsdGlNZXNzYWdlc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpTWVzc2FnZXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGVNdWx0aU1lc3NhZ2VzKHI6IENyZWF0ZU11bHRpTWVzc2FnZXNSZXF1ZXN0IHwgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvQ3JlYXRlTXVsdGlNZXNzYWdlc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgZ2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzKHI6IEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3QgfCBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE11bHRpUGFydGljaXBhbnRzKHI6IEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdCB8IEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0TXVsdGlQYXJ0aWNpcGFudHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHNlYXJjaENvbnZlcnNhdGlvbnMocjogU2VhcmNoQ29udmVyc2F0aW9uc1JlcXVlc3QgfCBTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8U2VhcmNoQ29udmVyc2F0aW9uc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdD5yKSA6IG5ldyBTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL1NlYXJjaENvbnZlcnNhdGlvbnNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBTZWFyY2hDb252ZXJzYXRpb25zUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnQocjogR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXF1ZXN0IHwgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgYWRkTXVsdGlQYXJ0aWNpcGFudHMocjogQWRkTXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0IHwgQWRkTXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxBZGRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxBZGRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8QWRkTXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0PnIpIDogbmV3IEFkZE11bHRpUGFydGljaXBhbnRzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFkZE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9BZGRNdWx0aVBhcnRpY2lwYW50c1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEFkZE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgc2V0TGFzdFNlZW4ocjogU2V0TGFzdFNlZW5SZXF1ZXN0IHwgU2V0TGFzdFNlZW5SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxTZXRMYXN0U2VlblJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZXRMYXN0U2VlblJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8U2V0TGFzdFNlZW5SZXF1ZXN0PnIpIDogbmV3IFNldExhc3RTZWVuUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNldExhc3RTZWVuUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9TZXRMYXN0U2VlblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFNldExhc3RTZWVuUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0UGFydGljaXBhbnRzQnlLZXkocjogR2V0UGFydGljaXBhbnRzQnlLZXlSZXF1ZXN0IHwgR2V0UGFydGljaXBhbnRzQnlLZXlSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRQYXJ0aWNpcGFudHNCeUtleVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRQYXJ0aWNpcGFudHNCeUtleVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0UGFydGljaXBhbnRzQnlLZXlSZXF1ZXN0PnIpIDogbmV3IEdldFBhcnRpY2lwYW50c0J5S2V5UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldFBhcnRpY2lwYW50c0J5S2V5UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRQYXJ0aWNpcGFudHNCeUtleVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldFBhcnRpY2lwYW50c0J5S2V5UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0Q29udmVyc2F0aW9uVmlld3MocjogR2V0Q29udmVyc2F0aW9uVmlld3NSZXF1ZXN0IHwgR2V0Q29udmVyc2F0aW9uVmlld3NSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRDb252ZXJzYXRpb25WaWV3c1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRDb252ZXJzYXRpb25WaWV3c1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0Q29udmVyc2F0aW9uVmlld3NSZXF1ZXN0PnIpIDogbmV3IEdldENvbnZlcnNhdGlvblZpZXdzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldENvbnZlcnNhdGlvblZpZXdzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRDb252ZXJzYXRpb25WaWV3c1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldENvbnZlcnNhdGlvblZpZXdzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgYWRkQ29udmVyc2F0aW9uVG9Db252ZXJzYXRpb25WaWV3KHI6IEFkZENvbnZlcnNhdGlvblRvQ29udmVyc2F0aW9uVmlld1JlcXVlc3QgfCBBZGRDb252ZXJzYXRpb25Ub0NvbnZlcnNhdGlvblZpZXdSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEFkZENvbnZlcnNhdGlvblRvQ29udmVyc2F0aW9uVmlld1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8QWRkQ29udmVyc2F0aW9uVG9Db252ZXJzYXRpb25WaWV3UmVxdWVzdD5yKSA6IG5ldyBBZGRDb252ZXJzYXRpb25Ub0NvbnZlcnNhdGlvblZpZXdSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0FkZENvbnZlcnNhdGlvblRvQ29udmVyc2F0aW9uVmlld1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgcmVtb3ZlQ29udmVyc2F0aW9uRnJvbUNvbnZlcnNhdGlvblZpZXcocjogUmVtb3ZlQ29udmVyc2F0aW9uRnJvbUNvbnZlcnNhdGlvblZpZXdSZXF1ZXN0IHwgUmVtb3ZlQ29udmVyc2F0aW9uRnJvbUNvbnZlcnNhdGlvblZpZXdSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFJlbW92ZUNvbnZlcnNhdGlvbkZyb21Db252ZXJzYXRpb25WaWV3UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxSZW1vdmVDb252ZXJzYXRpb25Gcm9tQ29udmVyc2F0aW9uVmlld1JlcXVlc3Q+cikgOiBuZXcgUmVtb3ZlQ29udmVyc2F0aW9uRnJvbUNvbnZlcnNhdGlvblZpZXdSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL1JlbW92ZUNvbnZlcnNhdGlvbkZyb21Db252ZXJzYXRpb25WaWV3XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBjcmVhdGVXaWRnZXRDb252ZXJzYXRpb24ocjogQ3JlYXRlV2lkZ2V0Q29udmVyc2F0aW9uUmVxdWVzdCB8IENyZWF0ZVdpZGdldENvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENyZWF0ZVdpZGdldENvbnZlcnNhdGlvblJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZVdpZGdldENvbnZlcnNhdGlvblJlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlV2lkZ2V0Q29udmVyc2F0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENyZWF0ZVdpZGdldENvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvQ3JlYXRlV2lkZ2V0Q29udmVyc2F0aW9uXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gQ3JlYXRlV2lkZ2V0Q29udmVyc2F0aW9uUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0TXVsdGlXaWRnZXRNZXNzYWdlcyhyOiBHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVxdWVzdCB8IEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlXaWRnZXRNZXNzYWdlc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0TXVsdGlXaWRnZXRNZXNzYWdlc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBzZW5kV2lkZ2V0TWVzc2FnZShyOiBTZW5kV2lkZ2V0TWVzc2FnZVJlcXVlc3QgfCBTZW5kV2lkZ2V0TWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFNlbmRXaWRnZXRNZXNzYWdlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFNlbmRXaWRnZXRNZXNzYWdlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZW5kV2lkZ2V0TWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgU2VuZFdpZGdldE1lc3NhZ2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8U2VuZFdpZGdldE1lc3NhZ2VSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL1NlbmRXaWRnZXRNZXNzYWdlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gU2VuZFdpZGdldE1lc3NhZ2VSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRXaWRnZXRDb252ZXJzYXRpb24oKTogT2JzZXJ2YWJsZTxHZXRXaWRnZXRDb252ZXJzYXRpb25SZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0V2lkZ2V0Q29udmVyc2F0aW9uUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRXaWRnZXRDb252ZXJzYXRpb25cIiwge30sIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0V2lkZ2V0Q29udmVyc2F0aW9uUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb24ocjogR2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25SZXF1ZXN0IHwgR2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRBdmFpbGFibGVDaGFubmVsc0ZvckNvbnZlcnNhdGlvblJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRBdmFpbGFibGVDaGFubmVsc0ZvckNvbnZlcnNhdGlvblJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25SZXF1ZXN0PnIpIDogbmV3IEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRBdmFpbGFibGVDaGFubmVsc0ZvckNvbnZlcnNhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZXZhbHVhdGVSZXNwb25zZShyOiBFdmFsdWF0ZVJlc3BvbnNlUmVxdWVzdCB8IEV2YWx1YXRlUmVzcG9uc2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEV2YWx1YXRlUmVzcG9uc2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEV2YWx1YXRlUmVzcG9uc2VSZXF1ZXN0PnIpIDogbmV3IEV2YWx1YXRlUmVzcG9uc2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0V2YWx1YXRlUmVzcG9uc2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGNyZWF0ZVdpZGdldChyOiBDcmVhdGVXaWRnZXRSZXF1ZXN0IHwgQ3JlYXRlV2lkZ2V0UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8Q3JlYXRlV2lkZ2V0UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENyZWF0ZVdpZGdldFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q3JlYXRlV2lkZ2V0UmVxdWVzdD5yKSA6IG5ldyBDcmVhdGVXaWRnZXRSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q3JlYXRlV2lkZ2V0UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9DcmVhdGVXaWRnZXRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDcmVhdGVXaWRnZXRSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRXaWRnZXQocjogR2V0V2lkZ2V0UmVxdWVzdCB8IEdldFdpZGdldFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldFdpZGdldFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRXaWRnZXRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldFdpZGdldFJlcXVlc3Q+cikgOiBuZXcgR2V0V2lkZ2V0UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldFdpZGdldFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0V2lkZ2V0XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0V2lkZ2V0UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdXBkYXRlV2lkZ2V0KHI6IFVwZGF0ZVdpZGdldFJlcXVlc3QgfCBVcGRhdGVXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxVcGRhdGVXaWRnZXRSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlV2lkZ2V0UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcGRhdGVXaWRnZXRSZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZVdpZGdldFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxVcGRhdGVXaWRnZXRSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL1VwZGF0ZVdpZGdldFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFVwZGF0ZVdpZGdldFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGRlbGV0ZVdpZGdldChyOiBEZWxldGVXaWRnZXRSZXF1ZXN0IHwgRGVsZXRlV2lkZ2V0UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEZWxldGVXaWRnZXRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZVdpZGdldFJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlV2lkZ2V0UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9EZWxldGVXaWRnZXRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGxpc3RXaWRnZXRzKHI6IExpc3RXaWRnZXRzUmVxdWVzdCB8IExpc3RXaWRnZXRzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdFdpZGdldHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdFdpZGdldHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExpc3RXaWRnZXRzUmVxdWVzdD5yKSA6IG5ldyBMaXN0V2lkZ2V0c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0V2lkZ2V0c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvTGlzdFdpZGdldHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMaXN0V2lkZ2V0c1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldFdpZGdldENvbmZpZyhyOiBHZXRXaWRnZXRDb25maWdSZXF1ZXN0IHwgR2V0V2lkZ2V0Q29uZmlnUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0V2lkZ2V0Q29uZmlnUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldFdpZGdldENvbmZpZ1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0V2lkZ2V0Q29uZmlnUmVxdWVzdD5yKSA6IG5ldyBHZXRXaWRnZXRDb25maWdSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0V2lkZ2V0Q29uZmlnUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRXaWRnZXRDb25maWdcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRXaWRnZXRDb25maWdSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBsaXN0TWVzc2FnZVRlbXBsYXRlKHI6IExpc3RNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0IHwgTGlzdE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RNZXNzYWdlVGVtcGxhdGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Q+cikgOiBuZXcgTGlzdE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0TWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9MaXN0TWVzc2FnZVRlbXBsYXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdE1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGRlbGV0ZU1lc3NhZ2VUZW1wbGF0ZShyOiBEZWxldGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0IHwgRGVsZXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEZWxldGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9EZWxldGVNZXNzYWdlVGVtcGxhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGNyZWF0ZU1lc3NhZ2VUZW1wbGF0ZShyOiBDcmVhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0IHwgQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8Q3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENyZWF0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8Q3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdD5yKSA6IG5ldyBDcmVhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9DcmVhdGVNZXNzYWdlVGVtcGxhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDcmVhdGVNZXNzYWdlVGVtcGxhdGVSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICB1cGRhdGVNZXNzYWdlVGVtcGxhdGUocjogVXBkYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdCB8IFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxVcGRhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Q+cikgOiBuZXcgVXBkYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvVXBkYXRlTWVzc2FnZVRlbXBsYXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gVXBkYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0TWVzc2FnZVRlbXBsYXRlKHI6IEdldE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3QgfCBHZXRNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNZXNzYWdlVGVtcGxhdGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TWVzc2FnZVRlbXBsYXRlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0PnIpIDogbmV3IEdldE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNZXNzYWdlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE1lc3NhZ2VUZW1wbGF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIFxufVxuIl19
@@ -1,56 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // API Service.
6
- // *********************************
7
- import { Injectable } from '@angular/core';
8
- import { GetConfigurationRequest, GetConfigurationResponse, GetMultiConfigurationRequest, GetMultiConfigurationResponse, UpsertConfigurationRequest, UpsertConfigurationResponse, UpsertProductFeatureRequest, UpsertProductFeatureResponse, } from './objects/';
9
- import { HttpHeaders, HttpClient } from '@angular/common/http';
10
- import { HostService } from '../_generated/host.service';
11
- import { map } from 'rxjs/operators';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "../_generated/host.service";
15
- export class InboxApiService {
16
- constructor(http, hostService) {
17
- this.http = http;
18
- this.hostService = hostService;
19
- this._host = this.hostService.hostWithScheme;
20
- }
21
- apiOptions() {
22
- return {
23
- headers: new HttpHeaders({
24
- 'Content-Type': 'application/json'
25
- }),
26
- withCredentials: true
27
- };
28
- }
29
- getConfiguration(r) {
30
- const request = (r.toApiJson) ? r : new GetConfigurationRequest(r);
31
- return this.http.post(this._host + "/conversation.v1.InboxService/GetConfiguration", request.toApiJson(), this.apiOptions())
32
- .pipe(map(resp => GetConfigurationResponse.fromProto(resp)));
33
- }
34
- getMultiConfiguration(r) {
35
- const request = (r.toApiJson) ? r : new GetMultiConfigurationRequest(r);
36
- return this.http.post(this._host + "/conversation.v1.InboxService/GetMultiConfiguration", request.toApiJson(), this.apiOptions())
37
- .pipe(map(resp => GetMultiConfigurationResponse.fromProto(resp)));
38
- }
39
- upsertConfiguration(r) {
40
- const request = (r.toApiJson) ? r : new UpsertConfigurationRequest(r);
41
- return this.http.post(this._host + "/conversation.v1.InboxService/UpsertConfiguration", request.toApiJson(), this.apiOptions())
42
- .pipe(map(resp => UpsertConfigurationResponse.fromProto(resp)));
43
- }
44
- upsertProductFeature(r) {
45
- const request = (r.toApiJson) ? r : new UpsertProductFeatureRequest(r);
46
- return this.http.post(this._host + "/conversation.v1.InboxService/UpsertProductFeature", request.toApiJson(), this.apiOptions())
47
- .pipe(map(resp => UpsertProductFeatureResponse.fromProto(resp)));
48
- }
49
- }
50
- InboxApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InboxApiService, deps: [{ token: i1.HttpClient }, { token: i2.HostService }], target: i0.ɵɵFactoryTarget.Injectable });
51
- InboxApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InboxApiService, providedIn: 'root' });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InboxApiService, decorators: [{
53
- type: Injectable,
54
- args: [{ providedIn: 'root' }]
55
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HostService }]; } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3guYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb252ZXJzYXRpb25fc2RrL3NyYy9saWIvX2ludGVybmFsL2luYm94LmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQiw0QkFBNEIsR0FDbkMsTUFBTSxZQUFZLENBQUM7QUFXcEIsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR25DLE1BQU0sT0FBTyxlQUFlO0lBR3hCLFlBQW9CLElBQWdCLEVBQVUsV0FBd0I7UUFBbEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRjlELFVBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQztJQUdoRCxDQUFDO0lBRU8sVUFBVTtRQUNkLE9BQU87WUFDSCxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3JCLGNBQWMsRUFBRSxrQkFBa0I7YUFDckMsQ0FBQztZQUNGLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsQ0FBNkQ7UUFDMUUsTUFBTSxPQUFPLEdBQUcsQ0FBMkIsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBMkIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW9DLElBQUksQ0FBQyxLQUFLLEdBQUcsZ0RBQWdELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUMxSixJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3hELENBQUM7SUFDVixDQUFDO0lBQ0QscUJBQXFCLENBQUMsQ0FBdUU7UUFDekYsTUFBTSxPQUFPLEdBQUcsQ0FBZ0MsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBZ0MsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXlDLElBQUksQ0FBQyxLQUFLLEdBQUcscURBQXFELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNwSyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzdELENBQUM7SUFDVixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsQ0FBbUU7UUFDbkYsTUFBTSxPQUFPLEdBQUcsQ0FBOEIsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBOEIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXVDLElBQUksQ0FBQyxLQUFLLEdBQUcsbURBQW1ELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNoSyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzNELENBQUM7SUFDVixDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsQ0FBcUU7UUFDdEYsTUFBTSxPQUFPLEdBQUcsQ0FBK0IsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBK0IsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdDLElBQUksQ0FBQyxLQUFLLEdBQUcsb0RBQW9ELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNsSyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzVELENBQUM7SUFDVixDQUFDOzs2R0ExQ1EsZUFBZTtpSEFBZixlQUFlLGNBREgsTUFBTTs0RkFDbEIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEFQSSBTZXJ2aWNlLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICAgICAgR2V0Q29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgICAgIEdldENvbmZpZ3VyYXRpb25SZXNwb25zZSxcbiAgICAgICAgR2V0TXVsdGlDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAgICAgR2V0TXVsdGlDb25maWd1cmF0aW9uUmVzcG9uc2UsXG4gICAgICAgIFVwc2VydENvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICAgICBVcHNlcnRDb25maWd1cmF0aW9uUmVzcG9uc2UsXG4gICAgICAgIFVwc2VydFByb2R1Y3RGZWF0dXJlUmVxdWVzdCxcbiAgICAgICAgVXBzZXJ0UHJvZHVjdEZlYXR1cmVSZXNwb25zZSxcbn0gZnJvbSAnLi9vYmplY3RzLyc7XG5pbXBvcnQge1xuICAgICAgICBHZXRDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0Q29uZmlndXJhdGlvblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aUNvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aUNvbmZpZ3VyYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgVXBzZXJ0Q29uZmlndXJhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwc2VydENvbmZpZ3VyYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgVXBzZXJ0UHJvZHVjdEZlYXR1cmVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlc3BvbnNlSW50ZXJmYWNlLFxufSBmcm9tICcuL2ludGVyZmFjZXMvJztcbmltcG9ydCB7SHR0cEhlYWRlcnMsIEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtIb3N0U2VydmljZX0gZnJvbSAnLi4vX2dlbmVyYXRlZC9ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEluYm94QXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaG9zdCA9IHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaG9zdFNlcnZpY2U6IEhvc3RTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcGlPcHRpb25zKCk6IHtoZWFkZXJzOiBIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0Q29uZmlndXJhdGlvbihyOiBHZXRDb25maWd1cmF0aW9uUmVxdWVzdCB8IEdldENvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRDb25maWd1cmF0aW9uUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldENvbmZpZ3VyYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldENvbmZpZ3VyYXRpb25SZXF1ZXN0PnIpIDogbmV3IEdldENvbmZpZ3VyYXRpb25SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0Q29uZmlndXJhdGlvblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkluYm94U2VydmljZS9HZXRDb25maWd1cmF0aW9uXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0Q29uZmlndXJhdGlvblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE11bHRpQ29uZmlndXJhdGlvbihyOiBHZXRNdWx0aUNvbmZpZ3VyYXRpb25SZXF1ZXN0IHwgR2V0TXVsdGlDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlDb25maWd1cmF0aW9uUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpQ29uZmlndXJhdGlvblJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlDb25maWd1cmF0aW9uUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aUNvbmZpZ3VyYXRpb25SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlDb25maWd1cmF0aW9uUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuSW5ib3hTZXJ2aWNlL0dldE11bHRpQ29uZmlndXJhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpQ29uZmlndXJhdGlvblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwc2VydENvbmZpZ3VyYXRpb24ocjogVXBzZXJ0Q29uZmlndXJhdGlvblJlcXVlc3QgfCBVcHNlcnRDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VXBzZXJ0Q29uZmlndXJhdGlvblJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxVcHNlcnRDb25maWd1cmF0aW9uUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcHNlcnRDb25maWd1cmF0aW9uUmVxdWVzdD5yKSA6IG5ldyBVcHNlcnRDb25maWd1cmF0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFVwc2VydENvbmZpZ3VyYXRpb25SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5JbmJveFNlcnZpY2UvVXBzZXJ0Q29uZmlndXJhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFVwc2VydENvbmZpZ3VyYXRpb25SZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICB1cHNlcnRQcm9kdWN0RmVhdHVyZShyOiBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlcXVlc3QgfCBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFVwc2VydFByb2R1Y3RGZWF0dXJlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwc2VydFByb2R1Y3RGZWF0dXJlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcHNlcnRQcm9kdWN0RmVhdHVyZVJlcXVlc3Q+cikgOiBuZXcgVXBzZXJ0UHJvZHVjdEZlYXR1cmVSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VXBzZXJ0UHJvZHVjdEZlYXR1cmVSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5JbmJveFNlcnZpY2UvVXBzZXJ0UHJvZHVjdEZlYXR1cmVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIFxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2NvbnZlcnNhdGlvbl9zZGsvc3JjL2xpYi9faW50ZXJuYWwvaW50ZXJmYWNlcy9hcGkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEludGVyZmFjZXMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25JbnRlcmZhY2UsIFByb2R1Y3RGZWF0dXJlSW50ZXJmYWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb252ZXJzYXRpb25JbnRlcmZhY2UsIENvbnZlcnNhdGlvbktleUludGVyZmFjZSB9IGZyb20gJy4vY29udmVyc2F0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlc0ludGVyZmFjZSwgV2lkZ2V0SW50ZXJmYWNlIH0gZnJvbSAnLi93aWRnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkTWFza0ludGVyZmFjZSB9IGZyb20gJy4vZmllbGQtbWFzay5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWVzc2FnZUludGVyZmFjZSB9IGZyb20gJy4vbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWVzc2FnZVRlbXBsYXRlSW50ZXJmYWNlIH0gZnJvbSAnLi9tZXNzYWdlLXRlbXBsYXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXJ0aWNpcGFudEludGVyZmFjZSwgUGFydGljaXBhbnRLZXlJbnRlcmZhY2UgfSBmcm9tICcuL3BhcnRpY2lwYW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJqZWN0UGFydGljaXBhbnRJbnRlcmZhY2UgfSBmcm9tICcuL2NvbW1vbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVmlld0ludGVyZmFjZSB9IGZyb20gJy4vY29udmVyc2F0aW9uLXZpZXcuaW50ZXJmYWNlJztcbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkZENvbnZlcnNhdGlvblRvQ29udmVyc2F0aW9uVmlld1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHZpZXdJZD86IHN0cmluZztcbiAgICBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgICBwYXJ0aWNpcGFudElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZE11bHRpUGFydGljaXBhbnRzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gICAgcGFydGljaXBhbnRzPzogUGFydGljaXBhbnRJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBwYXJ0aWNpcGFudHM/OiBQYXJ0aWNpcGFudEludGVyZmFjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudEludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gICAgY291bnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlQ29udmVyc2F0aW9uc0ludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uPzogQ29udmVyc2F0aW9uSW50ZXJmYWNlO1xuICAgIHBhcnRpY2lwYW50cz86IFBhcnRpY2lwYW50SW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXNwb25zZUNvdW50c0VudHJ5SW50ZXJmYWNlIHtcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgdmFsdWU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgcGFydGljaXBhbnRzPzogUGFydGljaXBhbnRJbnRlcmZhY2VbXTtcbiAgICBjaGFubmVsPzogZS5Db252ZXJzYXRpb25DaGFubmVsO1xuICAgIGV4dGVybmFsQ29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gICAgY3JlYXRlZD86IERhdGU7XG4gICAgdXBkYXRlZD86IERhdGU7XG4gICAgb3JpZ2luTG9jYXRpb24/OiBlLlBsYXRmb3JtTG9jYXRpb247XG4gICAgb3JpZ2luTG9jYXRpb25FeHRlcm5hbElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb24/OiBDb252ZXJzYXRpb25JbnRlcmZhY2U7XG4gICAgcGFydGljaXBhbnRzPzogUGFydGljaXBhbnRJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0ZW1wbGF0ZT86IE1lc3NhZ2VUZW1wbGF0ZUludGVyZmFjZTtcbiAgICBzdWJqZWN0UGFydGljaXBhbnQ/OiBTdWJqZWN0UGFydGljaXBhbnRJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRlbXBsYXRlPzogTWVzc2FnZVRlbXBsYXRlSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU11bHRpTWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlcz86IE1lc3NhZ2VJbnRlcmZhY2VbXTtcbiAgICBsYXN0U2Vlbj86IERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlV2lkZ2V0Q29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgd2lkZ2V0SWQ/OiBzdHJpbmc7XG4gICAgY2hhdFNvdXJjZVVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSB7XG4gICAgd2lkZ2V0UGFydGljaXBhbnRUb2tlbj86IHN0cmluZztcbiAgICBjb252ZXJzYXRpb24/OiBDb252ZXJzYXRpb25JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlV2lkZ2V0UmVxdWVzdEludGVyZmFjZSB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgYWxsb3dlZFVybHM/OiBzdHJpbmdbXTtcbiAgICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICBkYXRhU291cmNlcz86IERhdGFTb3VyY2VzSW50ZXJmYWNlO1xuICAgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICBhY2NlbnRDb2xvcj86IHN0cmluZztcbiAgICBhY2NlbnRUZXh0Q29sb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlV2lkZ2V0UmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHdpZGdldD86IFdpZGdldEludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YURhdGFFbnRyeUludGVyZmFjZSB7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIHZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdGVtcGxhdGVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB3aWRnZXRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDb252ZXJzYXRpb25zUmVzcG9uc2VEZXRhaWxlZENvbnZlcnNhdGlvbkludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uPzogQ29udmVyc2F0aW9uSW50ZXJmYWNlO1xuICAgIGxhdGVzdE1lc3NhZ2U/OiBNZXNzYWdlSW50ZXJmYWNlO1xuICAgIHBhcnRpY2lwYW50cz86IFBhcnRpY2lwYW50SW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2VEZXRhaWxlZENvbnZlcnNhdGlvbkludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uPzogQ29udmVyc2F0aW9uSW50ZXJmYWNlO1xuICAgIGxhdGVzdE1lc3NhZ2U/OiBNZXNzYWdlSW50ZXJmYWNlO1xuICAgIHBhcnRpY2lwYW50cz86IFBhcnRpY2lwYW50SW50ZXJmYWNlW107XG4gICAgc3VtbWFyeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0ZVJlc3BvbnNlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVzc2FnZUlkPzogc3RyaW5nO1xuICAgIHNlbnRpbWVudD86IGUuRXZhbHVhdGlvblNlbnRpbWVudDtcbiAgICBjb21tZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSB7XG4gICAgY2hhbm5lbHM/OiBlLkNvbnZlcnNhdGlvbkNoYW5uZWxbXTtcbiAgICBwcmVmZXJyZWRDaGFubmVsPzogZS5Db252ZXJzYXRpb25DaGFubmVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldENvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBzdWJqZWN0UGFydGljaXBhbnQ/OiBTdWJqZWN0UGFydGljaXBhbnRJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q29uZmlndXJhdGlvblJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb25maWd1cmF0aW9uPzogQ29uZmlndXJhdGlvbkludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRDb252ZXJzYXRpb25CeUtleVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbktleT86IENvbnZlcnNhdGlvbktleUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRDb252ZXJzYXRpb25CeUtleVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb24/OiBDb252ZXJzYXRpb25JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q29udmVyc2F0aW9uVmlld3NSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBwYXJ0aWNpcGFudElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldENvbnZlcnNhdGlvblZpZXdzUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHZpZXdzPzogVmlld0ludGVyZmFjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdGVtcGxhdGVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNZXNzYWdlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdGVtcGxhdGU/OiBNZXNzYWdlVGVtcGxhdGVJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgc3ViamVjdFBhcnRpY2lwYW50cz86IFN1YmplY3RQYXJ0aWNpcGFudEludGVyZmFjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpQ29uZmlndXJhdGlvblJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb25maWd1cmF0aW9ucz86IENvbmZpZ3VyYXRpb25JbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb25JZHM/OiBzdHJpbmdbXTtcbiAgICBvcHRpb25zPzogRmllbGRNYXNrSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb25zPzogR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2VEZXRhaWxlZENvbnZlcnNhdGlvbkludGVyZmFjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdEludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uSWRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXNwb25zZUludGVyZmFjZSB7XG4gICAgbWVzc2FnZUNvdW50cz86IENvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudEludGVyZmFjZVtdO1xuICAgIGNvdW50cz86IHtba2V5OiBzdHJpbmddOiBudW1iZXJ9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlSWRzPzogc3RyaW5nW107XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VDb2RlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpTWVzc2FnZXNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgbWVzc2FnZXM/OiBNZXNzYWdlSW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBwYXJ0aWNpcGFudElkcz86IHN0cmluZ1tdO1xuICAgIGNvbnZlcnNhdGlvbklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHBhcnRpY2lwYW50cz86IFBhcnRpY2lwYW50SW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlXaWRnZXRNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lc3NhZ2VJZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIG1lc3NhZ2VzPzogTWVzc2FnZUludGVyZmFjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFBhcnRpY2lwYW50c0J5S2V5UmVxdWVzdEludGVyZmFjZSB7XG4gICAgcGFydGljaXBhbnRLZXk/OiBQYXJ0aWNpcGFudEtleUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRQYXJ0aWNpcGFudHNCeUtleVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBwYXJ0aWNpcGFudHM/OiBQYXJ0aWNpcGFudEludGVyZmFjZVtdO1xuICAgIHBhcnRpY2lwYW50PzogUGFydGljaXBhbnRJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0V2lkZ2V0Q29uZmlnUmVxdWVzdEludGVyZmFjZSB7XG4gICAgd2lkZ2V0SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0V2lkZ2V0Q29uZmlnUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgaXNFbmFibGVkPzogYm9vbGVhbjtcbiAgICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgYWNjZW50Q29sb3I/OiBzdHJpbmc7XG4gICAgYWNjZW50VGV4dENvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFdpZGdldENvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb24/OiBDb252ZXJzYXRpb25JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0V2lkZ2V0UmVxdWVzdEludGVyZmFjZSB7XG4gICAgd2lkZ2V0SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0V2lkZ2V0UmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHdpZGdldD86IFdpZGdldEludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0TWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgc3ViamVjdFBhcnRpY2lwYW50PzogU3ViamVjdFBhcnRpY2lwYW50SW50ZXJmYWNlO1xuICAgIHBhZ2luZ09wdGlvbnM/OiBQYWdlZFJlcXVlc3RPcHRpb25zSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RNZXNzYWdlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdGVtcGxhdGVzPzogTWVzc2FnZVRlbXBsYXRlSW50ZXJmYWNlW107XG4gICAgcGFnaW5nTWV0YWRhdGE/OiBQYWdlZFJlc3BvbnNlTWV0YWRhdGFJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdE1lc3NhZ2VzUmVxdWVzdExpc3RNZXNzYWdlc0ZpbHRlcnNJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbHRlcnM/OiBMaXN0TWVzc2FnZXNSZXF1ZXN0TGlzdE1lc3NhZ2VzRmlsdGVyc0ludGVyZmFjZTtcbiAgICBwYWdpbmdPcHRpb25zPzogUGFnZWRSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0TWVzc2FnZXNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgbWVzc2FnZXM/OiBNZXNzYWdlSW50ZXJmYWNlW107XG4gICAgcGFnaW5nTWV0YWRhdGE/OiBQYWdlZFJlc3BvbnNlTWV0YWRhdGFJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFdpZGdldHNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gICAgcGFnaW5nT3B0aW9ucz86IFBhZ2VkUmVxdWVzdE9wdGlvbnNJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFdpZGdldHNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgd2lkZ2V0cz86IFdpZGdldEludGVyZmFjZVtdO1xuICAgIHBhZ2luZ01ldGFkYXRhPzogUGFnZWRSZXNwb25zZU1ldGFkYXRhSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0TG9va3VwQ29udmVyc2F0aW9uc0ZpbHRlcnNJbnRlcmZhY2Uge1xuICAgIGludGVybmFsUGFydGljaXBhbnRJZD86IHN0cmluZ1tdO1xuICAgIGxvY2F0aW9uPzogZS5QbGF0Zm9ybUxvY2F0aW9uO1xuICAgIGNoYW5uZWw/OiBlLkNvbnZlcnNhdGlvbkNoYW5uZWw7XG4gICAgYWNjb3VudEdyb3VwSWQ/OiBzdHJpbmc7XG4gICAgZXh0ZXJuYWxDb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgICBvcmlnaW5Mb2NhdGlvbj86IGUuUGxhdGZvcm1Mb2NhdGlvbjtcbiAgICBvcmlnaW5Mb2NhdGlvbkV4dGVybmFsSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbHRlcnM/OiBMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdExvb2t1cENvbnZlcnNhdGlvbnNGaWx0ZXJzSW50ZXJmYWNlO1xuICAgIHBhZ2luZ09wdGlvbnM/OiBQYWdlZFJlcXVlc3RPcHRpb25zSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cENvbnZlcnNhdGlvbnNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9ucz86IExvb2t1cENvbnZlcnNhdGlvbnNSZXNwb25zZUNvbnZlcnNhdGlvbnNJbnRlcmZhY2VbXTtcbiAgICBwYWdpbmdNZXRhZGF0YT86IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZWRpYUludGVyZmFjZSB7XG4gICAgbWVkaWFDb250ZW50VHlwZT86IHN0cmluZztcbiAgICBtZWRpYUxvY2F0aW9uUGF0aD86IHN0cmluZztcbiAgICBtZWRpYUZpbGVOYW1lPzogc3RyaW5nO1xuICAgIGZpbGVTaXplPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhSW50ZXJmYWNlIHtcbiAgICBpZGVudGlmaWVyPzogZS5NZXRhZGF0YUlkZW50aWZpZXI7XG4gICAgZGF0YT86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY2VpdmVNZXNzYWdlUmVxdWVzdE1ldGFkYXRhRW50cnlJbnRlcmZhY2Uge1xuICAgIGtleT86IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlZFJlcXVlc3RPcHRpb25zSW50ZXJmYWNlIHtcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZWRSZXNwb25zZU1ldGFkYXRhSW50ZXJmYWNlIHtcbiAgICBuZXh0Q3Vyc29yPzogc3RyaW5nO1xuICAgIGhhc01vcmU/OiBib29sZWFuO1xuICAgIHRvdGFsUmVzdWx0cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNlaXZlTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHNlbmRlcklkPzogc3RyaW5nO1xuICAgIHJlY2lwaWVudElkPzogc3RyaW5nO1xuICAgIGNvbnZlcnNhdGlvbklkPzogc3RyaW5nO1xuICAgIG1lc3NhZ2VJZD86IHN0cmluZztcbiAgICBib2R5Pzogc3RyaW5nO1xuICAgIGNoYW5uZWw/OiBlLkNvbnZlcnNhdGlvbkNoYW5uZWw7XG4gICAgdHlwZT86IGUuTWVzc2FnZVR5cGU7XG4gICAgbG9jYXRpb24/OiBlLlBsYXRmb3JtTG9jYXRpb247XG4gICAgcGFydG5lcklkPzogc3RyaW5nO1xuICAgIGFjY291bnRHcm91cElkPzogc3RyaW5nO1xuICAgIG1ldGFkYXRhPzoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG4gICAgbWVkaWE/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdmVDb252ZXJzYXRpb25Gcm9tQ29udmVyc2F0aW9uVmlld1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHZpZXdJZD86IHN0cmluZztcbiAgICBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgICBwYXJ0aWNpcGFudElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaENvbnZlcnNhdGlvbnNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG4gICAgYWNjb3VudEdyb3VwSWQ/OiBzdHJpbmc7XG4gICAgbG9jYXRpb24/OiBlLlBsYXRmb3JtTG9jYXRpb247XG4gICAgc2VhcmNoVGVybT86IHN0cmluZztcbiAgICBwYWdpbmdPcHRpb25zPzogUGFnZWRSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDb252ZXJzYXRpb25zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbnM/OiBTZWFyY2hDb252ZXJzYXRpb25zUmVzcG9uc2VEZXRhaWxlZENvbnZlcnNhdGlvbkludGVyZmFjZVtdO1xuICAgIHBhZ2luZ01ldGFkYXRhPzogUGFnZWRSZXNwb25zZU1ldGFkYXRhSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbmRNZXNzYWdlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgc2VuZGVyPzogUGFydGljaXBhbnRJbnRlcmZhY2U7XG4gICAgcmVjaXBpZW50PzogUGFydGljaXBhbnRJbnRlcmZhY2U7XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gICAgdHlwZT86IGUuTWVzc2FnZVR5cGU7XG4gICAgYm9keT86IHN0cmluZztcbiAgICBtZXRhZGF0YT86IE1ldGFkYXRhSW50ZXJmYWNlW107XG4gICAgb3JpZ2luTG9jYXRpb24/OiBlLlBsYXRmb3JtTG9jYXRpb247XG4gICAgbWVkaWE/OiBNZWRpYUludGVyZmFjZVtdO1xuICAgIGNoYW5uZWw/OiBlLkNvbnZlcnNhdGlvbkNoYW5uZWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZE1lc3NhZ2VSZXNwb25zZUludGVyZmFjZSB7XG4gICAgd29ya2Zsb3dJZD86IHN0cmluZztcbiAgICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZFdpZGdldE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0eXBlPzogZS5NZXNzYWdlVHlwZTtcbiAgICBib2R5Pzogc3RyaW5nO1xuICAgIG1ldGFkYXRhPzogTWV0YWRhdGFJbnRlcmZhY2VbXTtcbiAgICBsb2NhdGlvbj86IGUuUGxhdGZvcm1Mb2NhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW5kV2lkZ2V0TWVzc2FnZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0TGFzdFNlZW5SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgICBwYXJ0aWNpcGFudD86IFBhcnRpY2lwYW50SW50ZXJmYWNlO1xuICAgIHN0YXR1cz86IGUuU2V0TGFzdFNlZW5SZXF1ZXN0U3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldExhc3RTZWVuUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHBhcnRpY2lwYW50PzogUGFydGljaXBhbnRJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uPzogQ29udmVyc2F0aW9uSW50ZXJmYWNlO1xuICAgIGZpZWxkTWFzaz86IEZpZWxkTWFza0ludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uPzogQ29udmVyc2F0aW9uSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG4gICAgcGFydGljaXBhbnRJZD86IHN0cmluZztcbiAgICBzdGF0dXM/OiBlLk1lc3NhZ2VTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdGVtcGxhdGU/OiBNZXNzYWdlVGVtcGxhdGVJbnRlcmZhY2U7XG4gICAgZmllbGRNYXNrPzogRmllbGRNYXNrSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0ZW1wbGF0ZT86IE1lc3NhZ2VUZW1wbGF0ZUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB3aWRnZXRJZD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGFsbG93ZWRVcmxzPzogc3RyaW5nW107XG4gICAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgaXNFbmFibGVkPzogYm9vbGVhbjtcbiAgICBmaWVsZE1hc2s/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG4gICAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIGFjY2VudENvbG9yPzogc3RyaW5nO1xuICAgIGFjY2VudFRleHRDb2xvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVXaWRnZXRSZXNwb25zZUludGVyZmFjZSB7XG4gICAgd2lkZ2V0PzogV2lkZ2V0SW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwc2VydENvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjb25maWd1cmF0aW9uPzogQ29uZmlndXJhdGlvbkludGVyZmFjZTtcbiAgICBmaWVsZE1hc2s/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBzZXJ0Q29uZmlndXJhdGlvblJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb25maWd1cmF0aW9uPzogQ29uZmlndXJhdGlvbkludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHByb2R1Y3RGZWF0dXJlPzogUHJvZHVjdEZlYXR1cmVJbnRlcmZhY2U7XG4gICAgZmllbGRNYXNrPzogRmllbGRNYXNrSW50ZXJmYWNlO1xuICAgIHN1YmplY3RQYXJ0aWNpcGFudD86IFN1YmplY3RQYXJ0aWNpcGFudEludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBwcm9kdWN0RmVhdHVyZT86IFByb2R1Y3RGZWF0dXJlSW50ZXJmYWNlO1xufVxuXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9jb252ZXJzYXRpb25fc2RrL3NyYy9saWIvX2ludGVybmFsL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gSW50ZXJmYWNlcyBJbmRleC5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuZXhwb3J0IHtcbiAgICBOYW1lc3BhY2VEZXRhaWxJbnRlcmZhY2UsXG4gICAgU3ViamVjdFBhcnRpY2lwYW50SW50ZXJmYWNlLFxufSBmcm9tICcuL2NvbW1vbi5pbnRlcmZhY2UnO1xuXG5leHBvcnQge1xuICAgIENvbnZlcnNhdGlvbkludGVyZmFjZSxcbiAgICBDb252ZXJzYXRpb25LZXlJbnRlcmZhY2UsXG4gICAgTGFzdFNlZW5CeVBhcnRpY2lwYW50SW50ZXJmYWNlLFxufSBmcm9tICcuL2NvbnZlcnNhdGlvbi5pbnRlcmZhY2UnO1xuXG5leHBvcnQge1xuICAgIE1lc3NhZ2VJbnRlcmZhY2UsXG4gICAgUGFydGljaXBhbnRNZXNzYWdlU3RhdHVzSW50ZXJmYWNlLFxuICAgIFNlbmRTdGF0dXNJbnRlcmZhY2UsXG59IGZyb20gJy4vbWVzc2FnZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQge1xuICAgIEFkZHJlc3NJbnRlcmZhY2UsXG4gICAgUGFydGljaXBhbnRJbnRlcmZhY2UsXG4gICAgUGFydGljaXBhbnRLZXlJbnRlcmZhY2UsXG59IGZyb20gJy4vcGFydGljaXBhbnQuaW50ZXJmYWNlJztcblxuZXhwb3J0IHtcbiAgICBBY2Nlc3NJbnRlcmZhY2UsXG59IGZyb20gJy4vYW5ub3RhdGlvbnMuaW50ZXJmYWNlJztcblxuZXhwb3J0IHtcbiAgICBDb25maWd1cmF0aW9uSW50ZXJmYWNlLFxuICAgIFByb2R1Y3RGZWF0dXJlSW50ZXJmYWNlLFxufSBmcm9tICcuL2NvbmZpZ3VyYXRpb24uaW50ZXJmYWNlJztcblxuZXhwb3J0IHtcbiAgICBWaWV3SW50ZXJmYWNlLFxufSBmcm9tICcuL2NvbnZlcnNhdGlvbi12aWV3LmludGVyZmFjZSc7XG5cbmV4cG9ydCB7XG4gICAgRGF0YVNvdXJjZXNJbnRlcmZhY2UsXG4gICAgV2lkZ2V0SW50ZXJmYWNlLFxufSBmcm9tICcuL3dpZGdldC5pbnRlcmZhY2UnO1xuXG5leHBvcnQge1xuICAgIEZpZWxkTWFza0ludGVyZmFjZSxcbn0gZnJvbSAnLi9maWVsZC1tYXNrLmludGVyZmFjZSc7XG5cbmV4cG9ydCB7XG4gICAgTWVzc2FnZVRlbXBsYXRlSW50ZXJmYWNlLFxufSBmcm9tICcuL21lc3NhZ2UtdGVtcGxhdGUuaW50ZXJmYWNlJztcblxuZXhwb3J0IHtcbiAgICBBZGRDb252ZXJzYXRpb25Ub0NvbnZlcnNhdGlvblZpZXdSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEFkZE11bHRpUGFydGljaXBhbnRzUmVxdWVzdEludGVyZmFjZSxcbiAgICBBZGRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIENvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudEludGVyZmFjZSxcbiAgICBMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2VDb252ZXJzYXRpb25zSW50ZXJmYWNlLFxuICAgIEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVzcG9uc2VDb3VudHNFbnRyeUludGVyZmFjZSxcbiAgICBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgIENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIENyZWF0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgQ3JlYXRlV2lkZ2V0Q29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSxcbiAgICBDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICBDcmVhdGVXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIENyZWF0ZVdpZGdldFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIE1ldGFkYXRhRGF0YUVudHJ5SW50ZXJmYWNlLFxuICAgIERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgRGVsZXRlTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgRGVsZXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSxcbiAgICBEZWxldGVXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZURldGFpbGVkQ29udmVyc2F0aW9uSW50ZXJmYWNlLFxuICAgIEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1Jlc3BvbnNlRGV0YWlsZWRDb252ZXJzYXRpb25JbnRlcmZhY2UsXG4gICAgRXZhbHVhdGVSZXNwb25zZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgR2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0Q29uZmlndXJhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgR2V0Q29uZmlndXJhdGlvblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIEdldENvbnZlcnNhdGlvbkJ5S2V5UmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRDb252ZXJzYXRpb25CeUtleVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIEdldENvbnZlcnNhdGlvblZpZXdzUmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRDb252ZXJzYXRpb25WaWV3c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIEdldE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdldE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgR2V0TWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0TXVsdGlDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRNdWx0aUNvbmZpZ3VyYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIEdldE11bHRpTWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdldE11bHRpTWVzc2FnZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICBHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZUludGVyZmFjZSxcbiAgICBHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0UGFydGljaXBhbnRzQnlLZXlSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdldFBhcnRpY2lwYW50c0J5S2V5UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0V2lkZ2V0Q29uZmlnUmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRXaWRnZXRDb25maWdSZXNwb25zZUludGVyZmFjZSxcbiAgICBHZXRXaWRnZXRDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICBHZXRXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdldFdpZGdldFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIExpc3RNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIExpc3RNZXNzYWdlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZSxcbiAgICBMaXN0TWVzc2FnZXNSZXF1ZXN0TGlzdE1lc3NhZ2VzRmlsdGVyc0ludGVyZmFjZSxcbiAgICBMaXN0TWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIExpc3RNZXNzYWdlc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIExpc3RXaWRnZXRzUmVxdWVzdEludGVyZmFjZSxcbiAgICBMaXN0V2lkZ2V0c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0TG9va3VwQ29udmVyc2F0aW9uc0ZpbHRlcnNJbnRlcmZhY2UsXG4gICAgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgTG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIE1lZGlhSW50ZXJmYWNlLFxuICAgIE1ldGFkYXRhSW50ZXJmYWNlLFxuICAgIFJlY2VpdmVNZXNzYWdlUmVxdWVzdE1ldGFkYXRhRW50cnlJbnRlcmZhY2UsXG4gICAgUGFnZWRSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZSxcbiAgICBQYWdlZFJlc3BvbnNlTWV0YWRhdGFJbnRlcmZhY2UsXG4gICAgUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFJlbW92ZUNvbnZlcnNhdGlvbkZyb21Db252ZXJzYXRpb25WaWV3UmVxdWVzdEludGVyZmFjZSxcbiAgICBTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdEludGVyZmFjZSxcbiAgICBTZWFyY2hDb252ZXJzYXRpb25zUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgU2VuZE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFNlbmRNZXNzYWdlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgU2VuZFdpZGdldE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFNlbmRXaWRnZXRNZXNzYWdlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgU2V0TGFzdFNlZW5SZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFNldExhc3RTZWVuUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgVXBkYXRlQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSxcbiAgICBVcGRhdGVDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICBVcGRhdGVNZXNzYWdlU3RhdHVzUmVxdWVzdEludGVyZmFjZSxcbiAgICBVcGRhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIFVwZGF0ZVdpZGdldFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgVXBkYXRlV2lkZ2V0UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgVXBzZXJ0Q29uZmlndXJhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgVXBzZXJ0Q29uZmlndXJhdGlvblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIFVwc2VydFByb2R1Y3RGZWF0dXJlUmVxdWVzdEludGVyZmFjZSxcbiAgICBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlc3BvbnNlSW50ZXJmYWNlLFxufSBmcm9tICcuL2FwaS5pbnRlcmZhY2UnO1xuXG4iXX0=
@@ -1,30 +0,0 @@
1
- export function enumStringToValue(enumRef, value) {
2
- if (typeof value === 'number') {
3
- return value;
4
- }
5
- return enumRef[value];
6
- }
7
- export class Access {
8
- static fromProto(proto) {
9
- let m = new Access();
10
- m = Object.assign(m, proto);
11
- return m;
12
- }
13
- constructor(kwargs) {
14
- if (!kwargs) {
15
- return;
16
- }
17
- Object.assign(this, kwargs);
18
- }
19
- toApiJson() {
20
- const toReturn = {};
21
- if (typeof this.scope !== 'undefined') {
22
- toReturn['scope'] = this.scope;
23
- }
24
- if (typeof this.public !== 'undefined') {
25
- toReturn['public'] = this.public;
26
- }
27
- return toReturn;
28
- }
29
- }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9jb252ZXJzYXRpb25fc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvYW5ub3RhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLE1BQU07SUFJZixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUEwQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQ3hFLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUM7UUFDM0UsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBBY2Nlc3MgaW1wbGVtZW50cyBpLkFjY2Vzc0ludGVyZmFjZSB7XG4gICAgc2NvcGU6IHN0cmluZ1tdO1xuICAgIHB1YmxpYzogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFjY2VzcyB7XG4gICAgICAgIGxldCBtID0gbmV3IEFjY2VzcygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQWNjZXNzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2NvcGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Njb3BlJ10gPSB0aGlzLnNjb3BlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnB1YmxpYyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHVibGljJ10gPSB0aGlzLnB1YmxpYzt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==