@ondewo/csi-client-angular 3.2.1 → 4.0.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 (65) hide show
  1. package/api/ondewo/csi/conversation.pb.d.ts +24 -24
  2. package/api/ondewo/nlu/agent.pb.d.ts +258 -18
  3. package/api/ondewo/nlu/agent.pbsc.d.ts +141 -60
  4. package/api/ondewo/nlu/ccai-project.pb.d.ts +1337 -0
  5. package/api/ondewo/nlu/ccai-project.pbconf.d.ts +6 -0
  6. package/api/ondewo/nlu/ccai-project.pbsc.d.ts +102 -0
  7. package/api/ondewo/nlu/common.pb.d.ts +957 -0
  8. package/api/ondewo/nlu/context.pb.d.ts +41 -0
  9. package/api/ondewo/nlu/entity-type.pb.d.ts +55 -14
  10. package/api/ondewo/nlu/entity-type.pbsc.d.ts +5 -5
  11. package/api/ondewo/nlu/intent.pb.d.ts +129 -9
  12. package/api/ondewo/nlu/intent.pbsc.d.ts +4 -4
  13. package/api/ondewo/nlu/operation-metadata.pb.d.ts +22 -1
  14. package/api/ondewo/nlu/project-role.pb.d.ts +26 -5
  15. package/api/ondewo/nlu/project-role.pbsc.d.ts +5 -5
  16. package/api/ondewo/nlu/server-statistics.pbsc.d.ts +14 -14
  17. package/api/ondewo/nlu/session.pb.d.ts +1593 -146
  18. package/api/ondewo/nlu/session.pbsc.d.ts +150 -5
  19. package/api/ondewo/nlu/user.pb.d.ts +761 -18
  20. package/api/ondewo/nlu/user.pbsc.d.ts +126 -13
  21. package/api/ondewo/nlu/webhook.pb.d.ts +545 -10
  22. package/api/ondewo/nlu/webhook.pbsc.d.ts +49 -0
  23. package/api/ondewo/s2t/speech-to-text.pb.d.ts +66 -315
  24. package/api/ondewo/t2s/text-to-speech.pb.d.ts +391 -5
  25. package/api/ondewo/t2s/text-to-speech.pbconf.d.ts +0 -5
  26. package/api/ondewo/t2s/text-to-speech.pbsc.d.ts +47 -64
  27. package/esm2022/api/ondewo/csi/conversation.pb.mjs +25 -25
  28. package/esm2022/api/ondewo/csi/conversation.pbsc.mjs +4 -4
  29. package/esm2022/api/ondewo/nlu/agent.pb.mjs +925 -41
  30. package/esm2022/api/ondewo/nlu/agent.pbsc.mjs +201 -50
  31. package/esm2022/api/ondewo/nlu/aiservices.pbsc.mjs +4 -4
  32. package/esm2022/api/ondewo/nlu/ccai-project.pb.mjs +2490 -0
  33. package/esm2022/api/ondewo/nlu/ccai-project.pbconf.mjs +13 -0
  34. package/esm2022/api/ondewo/nlu/ccai-project.pbsc.mjs +194 -0
  35. package/esm2022/api/ondewo/nlu/common.pb.mjs +1854 -1
  36. package/esm2022/api/ondewo/nlu/context.pb.mjs +152 -5
  37. package/esm2022/api/ondewo/nlu/context.pbsc.mjs +4 -4
  38. package/esm2022/api/ondewo/nlu/entity-type.pb.mjs +166 -19
  39. package/esm2022/api/ondewo/nlu/entity-type.pbsc.mjs +8 -8
  40. package/esm2022/api/ondewo/nlu/intent.pb.mjs +464 -22
  41. package/esm2022/api/ondewo/nlu/intent.pbsc.mjs +7 -7
  42. package/esm2022/api/ondewo/nlu/operation-metadata.pb.mjs +76 -3
  43. package/esm2022/api/ondewo/nlu/operations.pbsc.mjs +4 -4
  44. package/esm2022/api/ondewo/nlu/project-role.pb.mjs +81 -8
  45. package/esm2022/api/ondewo/nlu/project-role.pbsc.mjs +8 -8
  46. package/esm2022/api/ondewo/nlu/project-statistics.pbsc.mjs +4 -4
  47. package/esm2022/api/ondewo/nlu/server-statistics.pb.mjs +1 -1
  48. package/esm2022/api/ondewo/nlu/server-statistics.pbsc.mjs +17 -17
  49. package/esm2022/api/ondewo/nlu/session.pb.mjs +2970 -199
  50. package/esm2022/api/ondewo/nlu/session.pbsc.mjs +279 -8
  51. package/esm2022/api/ondewo/nlu/user.pb.mjs +1349 -20
  52. package/esm2022/api/ondewo/nlu/user.pbsc.mjs +226 -15
  53. package/esm2022/api/ondewo/nlu/utility.pbsc.mjs +4 -4
  54. package/esm2022/api/ondewo/nlu/webhook.pb.mjs +915 -24
  55. package/esm2022/api/ondewo/nlu/webhook.pbsc.mjs +95 -4
  56. package/esm2022/api/ondewo/s2t/speech-to-text.pb.mjs +226 -676
  57. package/esm2022/api/ondewo/s2t/speech-to-text.pbsc.mjs +4 -4
  58. package/esm2022/api/ondewo/t2s/text-to-speech.pb.mjs +872 -98
  59. package/esm2022/api/ondewo/t2s/text-to-speech.pbconf.mjs +1 -6
  60. package/esm2022/api/ondewo/t2s/text-to-speech.pbsc.mjs +101 -131
  61. package/esm2022/public-api.mjs +4 -1
  62. package/fesm2022/ondewo-csi-client-angular.mjs +36357 -24065
  63. package/fesm2022/ondewo-csi-client-angular.mjs.map +1 -1
  64. package/package.json +1 -1
  65. package/public-api.d.ts +3 -0
@@ -0,0 +1,13 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ // @ts-nocheck
4
+ //
5
+ // THIS IS A GENERATED FILE
6
+ // DO NOT MODIFY IT! YOUR CHANGES WILL BE LOST
7
+ import { InjectionToken } from '@angular/core';
8
+ /**
9
+ * Specific GrpcClientSettings for CcaiProjects.
10
+ * Use it only if your default settings are not set or the service requires other settings.
11
+ */
12
+ export const GRPC_CCAI_PROJECTS_CLIENT_SETTINGS = new InjectionToken('GRPC_CCAI_PROJECTS_CLIENT_SETTINGS');
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NhaS1wcm9qZWN0LnBiY29uZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwaS9vbmRld28vbmx1L2NjYWktcHJvamVjdC5wYmNvbmYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixjQUFjO0FBQ2QsRUFBRTtBQUNGLDJCQUEyQjtBQUMzQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxJQUFJLGNBQWMsQ0FDbEUsb0NBQW9DLENBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgKi9cbi8vIEB0cy1ub2NoZWNrXG4vL1xuLy8gVEhJUyBJUyBBIEdFTkVSQVRFRCBGSUxFXG4vLyBETyBOT1QgTU9ESUZZIElUISBZT1VSIENIQU5HRVMgV0lMTCBCRSBMT1NUXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFNwZWNpZmljIEdycGNDbGllbnRTZXR0aW5ncyBmb3IgQ2NhaVByb2plY3RzLlxuICogVXNlIGl0IG9ubHkgaWYgeW91ciBkZWZhdWx0IHNldHRpbmdzIGFyZSBub3Qgc2V0IG9yIHRoZSBzZXJ2aWNlIHJlcXVpcmVzIG90aGVyIHNldHRpbmdzLlxuICovXG5leHBvcnQgY29uc3QgR1JQQ19DQ0FJX1BST0pFQ1RTX0NMSUVOVF9TRVRUSU5HUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KFxuICAnR1JQQ19DQ0FJX1BST0pFQ1RTX0NMSUVOVF9TRVRUSU5HUydcbik7XG4iXX0=
@@ -0,0 +1,194 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ // @ts-nocheck
4
+ //
5
+ // THIS IS A GENERATED FILE
6
+ // DO NOT MODIFY IT! YOUR CHANGES WILL BE LOST
7
+ import { Inject, Injectable, Optional } from '@angular/core';
8
+ import { GrpcCallType, GrpcMetadata } from '@ngx-grpc/common';
9
+ import { GRPC_CLIENT_FACTORY, takeMessages, throwStatusErrors } from '@ngx-grpc/core';
10
+ import * as thisProto from './ccai-project.pb';
11
+ import { GRPC_CCAI_PROJECTS_CLIENT_SETTINGS } from './ccai-project.pbconf';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@ngx-grpc/core";
14
+ /**
15
+ * Service client implementation for ondewo.nlu.CcaiProjects
16
+ */
17
+ export class CcaiProjectsClient {
18
+ constructor(settings, clientFactory, handler) {
19
+ this.handler = handler;
20
+ /**
21
+ * Raw RPC implementation for each service client method.
22
+ * The raw methods provide more control on the incoming data and events. E.g. they can be useful to read status `OK` metadata.
23
+ * Attention: these methods do not throw errors when non-zero status codes are received.
24
+ */
25
+ this.$raw = {
26
+ /**
27
+ * Unary call: /ondewo.nlu.CcaiProjects/GetCcaiProject
28
+ *
29
+ * @param requestMessage Request message
30
+ * @param requestMetadata Request metadata
31
+ * @returns Observable<GrpcEvent<thisProto.CcaiProject>>
32
+ */
33
+ getCcaiProject: (requestData, requestMetadata = new GrpcMetadata()) => {
34
+ return this.handler.handle({
35
+ type: GrpcCallType.unary,
36
+ client: this.client,
37
+ path: '/ondewo.nlu.CcaiProjects/GetCcaiProject',
38
+ requestData,
39
+ requestMetadata,
40
+ requestClass: thisProto.GetCcaiProjectRequest,
41
+ responseClass: thisProto.CcaiProject
42
+ });
43
+ },
44
+ /**
45
+ * Unary call: /ondewo.nlu.CcaiProjects/CreateCcaiProject
46
+ *
47
+ * @param requestMessage Request message
48
+ * @param requestMetadata Request metadata
49
+ * @returns Observable<GrpcEvent<thisProto.CreateCcaiProjectResponse>>
50
+ */
51
+ createCcaiProject: (requestData, requestMetadata = new GrpcMetadata()) => {
52
+ return this.handler.handle({
53
+ type: GrpcCallType.unary,
54
+ client: this.client,
55
+ path: '/ondewo.nlu.CcaiProjects/CreateCcaiProject',
56
+ requestData,
57
+ requestMetadata,
58
+ requestClass: thisProto.CreateCcaiProjectRequest,
59
+ responseClass: thisProto.CreateCcaiProjectResponse
60
+ });
61
+ },
62
+ /**
63
+ * Unary call: /ondewo.nlu.CcaiProjects/DeleteCcaiProject
64
+ *
65
+ * @param requestMessage Request message
66
+ * @param requestMetadata Request metadata
67
+ * @returns Observable<GrpcEvent<thisProto.DeleteCcaiProjectResponse>>
68
+ */
69
+ deleteCcaiProject: (requestData, requestMetadata = new GrpcMetadata()) => {
70
+ return this.handler.handle({
71
+ type: GrpcCallType.unary,
72
+ client: this.client,
73
+ path: '/ondewo.nlu.CcaiProjects/DeleteCcaiProject',
74
+ requestData,
75
+ requestMetadata,
76
+ requestClass: thisProto.DeleteCcaiProjectRequest,
77
+ responseClass: thisProto.DeleteCcaiProjectResponse
78
+ });
79
+ },
80
+ /**
81
+ * Unary call: /ondewo.nlu.CcaiProjects/ListCcaiProjects
82
+ *
83
+ * @param requestMessage Request message
84
+ * @param requestMetadata Request metadata
85
+ * @returns Observable<GrpcEvent<thisProto.ListCcaiProjectsResponse>>
86
+ */
87
+ listCcaiProjects: (requestData, requestMetadata = new GrpcMetadata()) => {
88
+ return this.handler.handle({
89
+ type: GrpcCallType.unary,
90
+ client: this.client,
91
+ path: '/ondewo.nlu.CcaiProjects/ListCcaiProjects',
92
+ requestData,
93
+ requestMetadata,
94
+ requestClass: thisProto.ListCcaiProjectsRequest,
95
+ responseClass: thisProto.ListCcaiProjectsResponse
96
+ });
97
+ },
98
+ /**
99
+ * Unary call: /ondewo.nlu.CcaiProjects/UpdateCcaiProject
100
+ *
101
+ * @param requestMessage Request message
102
+ * @param requestMetadata Request metadata
103
+ * @returns Observable<GrpcEvent<thisProto.UpdateCcaiProjectResponse>>
104
+ */
105
+ updateCcaiProject: (requestData, requestMetadata = new GrpcMetadata()) => {
106
+ return this.handler.handle({
107
+ type: GrpcCallType.unary,
108
+ client: this.client,
109
+ path: '/ondewo.nlu.CcaiProjects/UpdateCcaiProject',
110
+ requestData,
111
+ requestMetadata,
112
+ requestClass: thisProto.UpdateCcaiProjectRequest,
113
+ responseClass: thisProto.UpdateCcaiProjectResponse
114
+ });
115
+ }
116
+ };
117
+ this.client = clientFactory.createClient('ondewo.nlu.CcaiProjects', settings);
118
+ }
119
+ /**
120
+ * Unary call @/ondewo.nlu.CcaiProjects/GetCcaiProject
121
+ *
122
+ * @param requestMessage Request message
123
+ * @param requestMetadata Request metadata
124
+ * @returns Observable<thisProto.CcaiProject>
125
+ */
126
+ getCcaiProject(requestData, requestMetadata = new GrpcMetadata()) {
127
+ return this.$raw
128
+ .getCcaiProject(requestData, requestMetadata)
129
+ .pipe(throwStatusErrors(), takeMessages());
130
+ }
131
+ /**
132
+ * Unary call @/ondewo.nlu.CcaiProjects/CreateCcaiProject
133
+ *
134
+ * @param requestMessage Request message
135
+ * @param requestMetadata Request metadata
136
+ * @returns Observable<thisProto.CreateCcaiProjectResponse>
137
+ */
138
+ createCcaiProject(requestData, requestMetadata = new GrpcMetadata()) {
139
+ return this.$raw
140
+ .createCcaiProject(requestData, requestMetadata)
141
+ .pipe(throwStatusErrors(), takeMessages());
142
+ }
143
+ /**
144
+ * Unary call @/ondewo.nlu.CcaiProjects/DeleteCcaiProject
145
+ *
146
+ * @param requestMessage Request message
147
+ * @param requestMetadata Request metadata
148
+ * @returns Observable<thisProto.DeleteCcaiProjectResponse>
149
+ */
150
+ deleteCcaiProject(requestData, requestMetadata = new GrpcMetadata()) {
151
+ return this.$raw
152
+ .deleteCcaiProject(requestData, requestMetadata)
153
+ .pipe(throwStatusErrors(), takeMessages());
154
+ }
155
+ /**
156
+ * Unary call @/ondewo.nlu.CcaiProjects/ListCcaiProjects
157
+ *
158
+ * @param requestMessage Request message
159
+ * @param requestMetadata Request metadata
160
+ * @returns Observable<thisProto.ListCcaiProjectsResponse>
161
+ */
162
+ listCcaiProjects(requestData, requestMetadata = new GrpcMetadata()) {
163
+ return this.$raw
164
+ .listCcaiProjects(requestData, requestMetadata)
165
+ .pipe(throwStatusErrors(), takeMessages());
166
+ }
167
+ /**
168
+ * Unary call @/ondewo.nlu.CcaiProjects/UpdateCcaiProject
169
+ *
170
+ * @param requestMessage Request message
171
+ * @param requestMetadata Request metadata
172
+ * @returns Observable<thisProto.UpdateCcaiProjectResponse>
173
+ */
174
+ updateCcaiProject(requestData, requestMetadata = new GrpcMetadata()) {
175
+ return this.$raw
176
+ .updateCcaiProject(requestData, requestMetadata)
177
+ .pipe(throwStatusErrors(), takeMessages());
178
+ }
179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CcaiProjectsClient, deps: [{ token: GRPC_CCAI_PROJECTS_CLIENT_SETTINGS, optional: true }, { token: GRPC_CLIENT_FACTORY }, { token: i1.GrpcHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
180
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CcaiProjectsClient, providedIn: 'any' }); }
181
+ }
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CcaiProjectsClient, decorators: [{
183
+ type: Injectable,
184
+ args: [{ providedIn: 'any' }]
185
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
186
+ type: Optional
187
+ }, {
188
+ type: Inject,
189
+ args: [GRPC_CCAI_PROJECTS_CLIENT_SETTINGS]
190
+ }] }, { type: undefined, decorators: [{
191
+ type: Inject,
192
+ args: [GRPC_CLIENT_FACTORY]
193
+ }] }, { type: i1.GrpcHandler }]; } });
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NhaS1wcm9qZWN0LnBic2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9hcGkvb25kZXdvL25sdS9jY2FpLXByb2plY3QucGJzYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLGNBQWM7QUFDZCxFQUFFO0FBQ0YsMkJBQTJCO0FBQzNCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLFlBQVksRUFJWixZQUFZLEVBQ2IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEtBQUssU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBSy9DLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFDM0U7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBb0g3QixZQUMwRCxRQUFhLEVBQ3hDLGFBQXFDLEVBQzFELE9BQW9CO1FBQXBCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFwSDlCOzs7O1dBSUc7UUFDSCxTQUFJLEdBQUc7WUFDTDs7Ozs7O2VBTUc7WUFDSCxjQUFjLEVBQUUsQ0FDZCxXQUE0QyxFQUM1QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsRUFDVSxFQUFFO2dCQUNoRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLHlDQUF5QztvQkFDL0MsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMscUJBQXFCO29CQUM3QyxhQUFhLEVB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bi8vIEB0cy1ub2NoZWNrXG4vL1xuLy8gVEhJUyBJUyBBIEdFTkVSQVRFRCBGSUxFXG4vLyBETyBOT1QgTU9ESUZZIElUISBZT1VSIENIQU5HRVMgV0lMTCBCRSBMT1NUXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBHcnBjQ2FsbFR5cGUsXG4gIEdycGNDbGllbnQsXG4gIEdycGNDbGllbnRGYWN0b3J5LFxuICBHcnBjRXZlbnQsXG4gIEdycGNNZXRhZGF0YVxufSBmcm9tICdAbmd4LWdycGMvY29tbW9uJztcbmltcG9ydCB7XG4gIEdSUENfQ0xJRU5UX0ZBQ1RPUlksXG4gIEdycGNIYW5kbGVyLFxuICB0YWtlTWVzc2FnZXMsXG4gIHRocm93U3RhdHVzRXJyb3JzXG59IGZyb20gJ0BuZ3gtZ3JwYy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIHRoaXNQcm90byBmcm9tICcuL2NjYWktcHJvamVjdC5wYic7XG5pbXBvcnQgKiBhcyBnb29nbGVQcm90b2J1ZjAwMCBmcm9tICdAbmd4LWdycGMvd2VsbC1rbm93bi10eXBlcyc7XG5pbXBvcnQgKiBhcyBnb29nbGVQcm90b2J1ZjAwMSBmcm9tICdAbmd4LWdycGMvd2VsbC1rbm93bi10eXBlcyc7XG5pbXBvcnQgKiBhcyBnb29nbGVQcm90b2J1ZjAwMiBmcm9tICdAbmd4LWdycGMvd2VsbC1rbm93bi10eXBlcyc7XG5pbXBvcnQgKiBhcyBvbmRld29ObHUwMDMgZnJvbSAnLi4vLi4vb25kZXdvL25sdS9jb21tb24ucGInO1xuaW1wb3J0IHsgR1JQQ19DQ0FJX1BST0pFQ1RTX0NMSUVOVF9TRVRUSU5HUyB9IGZyb20gJy4vY2NhaS1wcm9qZWN0LnBiY29uZic7XG4vKipcbiAqIFNlcnZpY2UgY2xpZW50IGltcGxlbWVudGF0aW9uIGZvciBvbmRld28ubmx1LkNjYWlQcm9qZWN0c1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdhbnknIH0pXG5leHBvcnQgY2xhc3MgQ2NhaVByb2plY3RzQ2xpZW50IHtcbiAgcHJpdmF0ZSBjbGllbnQ6IEdycGNDbGllbnQ8YW55PjtcblxuICAvKipcbiAgICogUmF3IFJQQyBpbXBsZW1lbnRhdGlvbiBmb3IgZWFjaCBzZXJ2aWNlIGNsaWVudCBtZXRob2QuXG4gICAqIFRoZSByYXcgbWV0aG9kcyBwcm92aWRlIG1vcmUgY29udHJvbCBvbiB0aGUgaW5jb21pbmcgZGF0YSBhbmQgZXZlbnRzLiBFLmcuIHRoZXkgY2FuIGJlIHVzZWZ1bCB0byByZWFkIHN0YXR1cyBgT0tgIG1ldGFkYXRhLlxuICAgKiBBdHRlbnRpb246IHRoZXNlIG1ldGhvZHMgZG8gbm90IHRocm93IGVycm9ycyB3aGVuIG5vbi16ZXJvIHN0YXR1cyBjb2RlcyBhcmUgcmVjZWl2ZWQuXG4gICAqL1xuICAkcmF3ID0ge1xuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkNjYWlQcm9qZWN0cy9HZXRDY2FpUHJvamVjdFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5DY2FpUHJvamVjdD4+XG4gICAgICovXG4gICAgZ2V0Q2NhaVByb2plY3Q6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uR2V0Q2NhaVByb2plY3RSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkNjYWlQcm9qZWN0Pj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5DY2FpUHJvamVjdHMvR2V0Q2NhaVByb2plY3QnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5HZXRDY2FpUHJvamVjdFJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5DY2FpUHJvamVjdFxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5DY2FpUHJvamVjdHMvQ3JlYXRlQ2NhaVByb2plY3RcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQ3JlYXRlQ2NhaVByb2plY3RSZXNwb25zZT4+XG4gICAgICovXG4gICAgY3JlYXRlQ2NhaVByb2plY3Q6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQ3JlYXRlQ2NhaVByb2plY3RSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkNyZWF0ZUNjYWlQcm9qZWN0UmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkNjYWlQcm9qZWN0cy9DcmVhdGVDY2FpUHJvamVjdCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkNyZWF0ZUNjYWlQcm9qZWN0UmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkNyZWF0ZUNjYWlQcm9qZWN0UmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQ2NhaVByb2plY3RzL0RlbGV0ZUNjYWlQcm9qZWN0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkRlbGV0ZUNjYWlQcm9qZWN0UmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGRlbGV0ZUNjYWlQcm9qZWN0OiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkRlbGV0ZUNjYWlQcm9qZWN0UmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5EZWxldGVDY2FpUHJvamVjdFJlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5DY2FpUHJvamVjdHMvRGVsZXRlQ2NhaVByb2plY3QnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5EZWxldGVDY2FpUHJvamVjdFJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5EZWxldGVDY2FpUHJvamVjdFJlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkNjYWlQcm9qZWN0cy9MaXN0Q2NhaVByb2plY3RzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RDY2FpUHJvamVjdHNSZXNwb25zZT4+XG4gICAgICovXG4gICAgbGlzdENjYWlQcm9qZWN0czogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5MaXN0Q2NhaVByb2plY3RzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0Q2NhaVByb2plY3RzUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkNjYWlQcm9qZWN0cy9MaXN0Q2NhaVByb2plY3RzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uTGlzdENjYWlQcm9qZWN0c1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5MaXN0Q2NhaVByb2plY3RzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQ2NhaVByb2plY3RzL1VwZGF0ZUNjYWlQcm9qZWN0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLlVwZGF0ZUNjYWlQcm9qZWN0UmVzcG9uc2U+PlxuICAgICAqL1xuICAgIHVwZGF0ZUNjYWlQcm9qZWN0OiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlVwZGF0ZUNjYWlQcm9qZWN0UmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5VcGRhdGVDY2FpUHJvamVjdFJlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5DY2FpUHJvamVjdHMvVXBkYXRlQ2NhaVByb2plY3QnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5VcGRhdGVDY2FpUHJvamVjdFJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5VcGRhdGVDY2FpUHJvamVjdFJlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChHUlBDX0NDQUlfUFJPSkVDVFNfQ0xJRU5UX1NFVFRJTkdTKSBzZXR0aW5nczogYW55LFxuICAgIEBJbmplY3QoR1JQQ19DTElFTlRfRkFDVE9SWSkgY2xpZW50RmFjdG9yeTogR3JwY0NsaWVudEZhY3Rvcnk8YW55PixcbiAgICBwcml2YXRlIGhhbmRsZXI6IEdycGNIYW5kbGVyXG4gICkge1xuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50RmFjdG9yeS5jcmVhdGVDbGllbnQoXG4gICAgICAnb25kZXdvLm5sdS5DY2FpUHJvamVjdHMnLFxuICAgICAgc2V0dGluZ3NcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkNjYWlQcm9qZWN0cy9HZXRDY2FpUHJvamVjdFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5DY2FpUHJvamVjdD5cbiAgICovXG4gIGdldENjYWlQcm9qZWN0KFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uR2V0Q2NhaVByb2plY3RSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5DY2FpUHJvamVjdD4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5nZXRDY2FpUHJvamVjdChyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkNjYWlQcm9qZWN0cy9DcmVhdGVDY2FpUHJvamVjdFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5DcmVhdGVDY2FpUHJvamVjdFJlc3BvbnNlPlxuICAgKi9cbiAgY3JlYXRlQ2NhaVByb2plY3QoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5DcmVhdGVDY2FpUHJvamVjdFJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkNyZWF0ZUNjYWlQcm9qZWN0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuY3JlYXRlQ2NhaVByb2plY3QocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5DY2FpUHJvamVjdHMvRGVsZXRlQ2NhaVByb2plY3RcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uRGVsZXRlQ2NhaVByb2plY3RSZXNwb25zZT5cbiAgICovXG4gIGRlbGV0ZUNjYWlQcm9qZWN0KFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uRGVsZXRlQ2NhaVByb2plY3RSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5EZWxldGVDY2FpUHJvamVjdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmRlbGV0ZUNjYWlQcm9qZWN0KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQ2NhaVByb2plY3RzL0xpc3RDY2FpUHJvamVjdHNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTGlzdENjYWlQcm9qZWN0c1Jlc3BvbnNlPlxuICAgKi9cbiAgbGlzdENjYWlQcm9qZWN0cyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RDY2FpUHJvamVjdHNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0Q2NhaVByb2plY3RzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAubGlzdENjYWlQcm9qZWN0cyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkNjYWlQcm9qZWN0cy9VcGRhdGVDY2FpUHJvamVjdFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5VcGRhdGVDY2FpUHJvamVjdFJlc3BvbnNlPlxuICAgKi9cbiAgdXBkYXRlQ2NhaVByb2plY3QoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5VcGRhdGVDY2FpUHJvamVjdFJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLlVwZGF0ZUNjYWlQcm9qZWN0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAudXBkYXRlQ2NhaVByb2plY3QocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxufVxuIl19