@aneoconsultingfr/armonik.api.angular 3.29.0-edge.13.eb211e2 → 3.29.0-edge.68.23f0ea8b

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 (113) hide show
  1. package/fesm2022/aneoconsultingfr-armonik.api.angular.mjs +29 -29
  2. package/fesm2022/aneoconsultingfr-armonik.api.angular.mjs.map +1 -1
  3. package/index.d.ts +11699 -3
  4. package/package.json +6 -8
  5. package/esm2022/aneoconsultingfr-armonik.api.angular.mjs +0 -5
  6. package/esm2022/lib/generated/applications-common.pb.mjs +0 -586
  7. package/esm2022/lib/generated/applications-fields.pb.mjs +0 -231
  8. package/esm2022/lib/generated/applications-filters.pb.mjs +0 -349
  9. package/esm2022/lib/generated/applications-service.pb.mjs +0 -2
  10. package/esm2022/lib/generated/applications-service.pbconf.mjs +0 -13
  11. package/esm2022/lib/generated/applications-service.pbsc.mjs +0 -74
  12. package/esm2022/lib/generated/auth-common.pb.mjs +0 -318
  13. package/esm2022/lib/generated/auth-service.pb.mjs +0 -2
  14. package/esm2022/lib/generated/auth-service.pbconf.mjs +0 -13
  15. package/esm2022/lib/generated/auth-service.pbsc.mjs +0 -74
  16. package/esm2022/lib/generated/events-common.pb.mjs +0 -1139
  17. package/esm2022/lib/generated/events-service.pb.mjs +0 -2
  18. package/esm2022/lib/generated/events-service.pbconf.mjs +0 -13
  19. package/esm2022/lib/generated/events-service.pbsc.mjs +0 -74
  20. package/esm2022/lib/generated/filters-common.pb.mjs +0 -774
  21. package/esm2022/lib/generated/health-checks-common.pb.mjs +0 -331
  22. package/esm2022/lib/generated/health-checks-service.pb.mjs +0 -2
  23. package/esm2022/lib/generated/health-checks-service.pbconf.mjs +0 -13
  24. package/esm2022/lib/generated/health-checks-service.pbsc.mjs +0 -74
  25. package/esm2022/lib/generated/objects.pb.mjs +0 -2721
  26. package/esm2022/lib/generated/partitions-common.pb.mjs +0 -978
  27. package/esm2022/lib/generated/partitions-fields.pb.mjs +0 -233
  28. package/esm2022/lib/generated/partitions-filters.pb.mjs +0 -431
  29. package/esm2022/lib/generated/partitions-service.pb.mjs +0 -2
  30. package/esm2022/lib/generated/partitions-service.pbconf.mjs +0 -13
  31. package/esm2022/lib/generated/partitions-service.pbsc.mjs +0 -104
  32. package/esm2022/lib/generated/result-status.pb.mjs +0 -16
  33. package/esm2022/lib/generated/results-common.pb.mjs +0 -3476
  34. package/esm2022/lib/generated/results-fields.pb.mjs +0 -238
  35. package/esm2022/lib/generated/results-filters.pb.mjs +0 -573
  36. package/esm2022/lib/generated/results-service.pb.mjs +0 -2
  37. package/esm2022/lib/generated/results-service.pbconf.mjs +0 -13
  38. package/esm2022/lib/generated/results-service.pbsc.mjs +0 -375
  39. package/esm2022/lib/generated/session-status.pb.mjs +0 -17
  40. package/esm2022/lib/generated/sessions-common.pb.mjs +0 -2638
  41. package/esm2022/lib/generated/sessions-fields.pb.mjs +0 -509
  42. package/esm2022/lib/generated/sessions-filters.pb.mjs +0 -629
  43. package/esm2022/lib/generated/sessions-service.pb.mjs +0 -2
  44. package/esm2022/lib/generated/sessions-service.pbconf.mjs +0 -13
  45. package/esm2022/lib/generated/sessions-service.pbsc.mjs +0 -344
  46. package/esm2022/lib/generated/sort-direction.pb.mjs +0 -13
  47. package/esm2022/lib/generated/task-status.pb.mjs +0 -24
  48. package/esm2022/lib/generated/tasks-common.pb.mjs +0 -3383
  49. package/esm2022/lib/generated/tasks-fields.pb.mjs +0 -518
  50. package/esm2022/lib/generated/tasks-filters.pb.mjs +0 -629
  51. package/esm2022/lib/generated/tasks-service.pb.mjs +0 -2
  52. package/esm2022/lib/generated/tasks-service.pbconf.mjs +0 -13
  53. package/esm2022/lib/generated/tasks-service.pbsc.mjs +0 -254
  54. package/esm2022/lib/generated/versions-common.pb.mjs +0 -200
  55. package/esm2022/lib/generated/versions-service.pb.mjs +0 -2
  56. package/esm2022/lib/generated/versions-service.pbconf.mjs +0 -13
  57. package/esm2022/lib/generated/versions-service.pbsc.mjs +0 -74
  58. package/esm2022/lib/index.mjs +0 -35
  59. package/esm2022/public-api.mjs +0 -5
  60. package/lib/generated/applications-common.pb.d.ts +0 -331
  61. package/lib/generated/applications-fields.pb.d.ts +0 -153
  62. package/lib/generated/applications-filters.pb.d.ts +0 -222
  63. package/lib/generated/applications-service.pb.d.ts +0 -1
  64. package/lib/generated/applications-service.pbconf.d.ts +0 -6
  65. package/lib/generated/applications-service.pbsc.d.ts +0 -38
  66. package/lib/generated/auth-common.pb.d.ts +0 -214
  67. package/lib/generated/auth-service.pb.d.ts +0 -1
  68. package/lib/generated/auth-service.pbconf.d.ts +0 -6
  69. package/lib/generated/auth-service.pbsc.d.ts +0 -38
  70. package/lib/generated/events-common.pb.d.ts +0 -612
  71. package/lib/generated/events-service.pb.d.ts +0 -1
  72. package/lib/generated/events-service.pbconf.d.ts +0 -6
  73. package/lib/generated/events-service.pbsc.d.ts +0 -38
  74. package/lib/generated/filters-common.pb.d.ts +0 -491
  75. package/lib/generated/health-checks-common.pb.d.ts +0 -220
  76. package/lib/generated/health-checks-service.pb.d.ts +0 -1
  77. package/lib/generated/health-checks-service.pbconf.d.ts +0 -6
  78. package/lib/generated/health-checks-service.pbsc.d.ts +0 -38
  79. package/lib/generated/objects.pb.d.ts +0 -1678
  80. package/lib/generated/partitions-common.pb.d.ts +0 -566
  81. package/lib/generated/partitions-fields.pb.d.ts +0 -155
  82. package/lib/generated/partitions-filters.pb.d.ts +0 -240
  83. package/lib/generated/partitions-service.pb.d.ts +0 -1
  84. package/lib/generated/partitions-service.pbconf.d.ts +0 -6
  85. package/lib/generated/partitions-service.pbsc.d.ts +0 -54
  86. package/lib/generated/result-status.pb.d.ts +0 -8
  87. package/lib/generated/results-common.pb.d.ts +0 -2121
  88. package/lib/generated/results-fields.pb.d.ts +0 -160
  89. package/lib/generated/results-filters.pb.d.ts +0 -321
  90. package/lib/generated/results-service.pb.d.ts +0 -1
  91. package/lib/generated/results-service.pbconf.d.ts +0 -6
  92. package/lib/generated/results-service.pbsc.d.ts +0 -199
  93. package/lib/generated/session-status.pb.d.ts +0 -9
  94. package/lib/generated/sessions-common.pb.d.ts +0 -1637
  95. package/lib/generated/sessions-fields.pb.d.ts +0 -323
  96. package/lib/generated/sessions-filters.pb.d.ts +0 -333
  97. package/lib/generated/sessions-service.pb.d.ts +0 -1
  98. package/lib/generated/sessions-service.pbconf.d.ts +0 -6
  99. package/lib/generated/sessions-service.pbsc.d.ts +0 -182
  100. package/lib/generated/sort-direction.pb.d.ts +0 -5
  101. package/lib/generated/task-status.pb.d.ts +0 -16
  102. package/lib/generated/tasks-common.pb.d.ts +0 -1754
  103. package/lib/generated/tasks-fields.pb.d.ts +0 -332
  104. package/lib/generated/tasks-filters.pb.d.ts +0 -333
  105. package/lib/generated/tasks-service.pb.d.ts +0 -1
  106. package/lib/generated/tasks-service.pbconf.d.ts +0 -6
  107. package/lib/generated/tasks-service.pbsc.d.ts +0 -134
  108. package/lib/generated/versions-common.pb.d.ts +0 -140
  109. package/lib/generated/versions-service.pb.d.ts +0 -1
  110. package/lib/generated/versions-service.pbconf.d.ts +0 -6
  111. package/lib/generated/versions-service.pbsc.d.ts +0 -38
  112. package/lib/index.d.ts +0 -34
  113. package/public-api.d.ts +0 -1
@@ -1,233 +0,0 @@
1
- import { BinaryReader, BinaryWriter } from 'google-protobuf';
2
- export var PartitionRawEnumField;
3
- (function (PartitionRawEnumField) {
4
- PartitionRawEnumField[PartitionRawEnumField["PARTITION_RAW_ENUM_FIELD_UNSPECIFIED"] = 0] = "PARTITION_RAW_ENUM_FIELD_UNSPECIFIED";
5
- PartitionRawEnumField[PartitionRawEnumField["PARTITION_RAW_ENUM_FIELD_ID"] = 1] = "PARTITION_RAW_ENUM_FIELD_ID";
6
- PartitionRawEnumField[PartitionRawEnumField["PARTITION_RAW_ENUM_FIELD_PARENT_PARTITION_IDS"] = 2] = "PARTITION_RAW_ENUM_FIELD_PARENT_PARTITION_IDS";
7
- PartitionRawEnumField[PartitionRawEnumField["PARTITION_RAW_ENUM_FIELD_POD_RESERVED"] = 3] = "PARTITION_RAW_ENUM_FIELD_POD_RESERVED";
8
- PartitionRawEnumField[PartitionRawEnumField["PARTITION_RAW_ENUM_FIELD_POD_MAX"] = 4] = "PARTITION_RAW_ENUM_FIELD_POD_MAX";
9
- PartitionRawEnumField[PartitionRawEnumField["PARTITION_RAW_ENUM_FIELD_PREEMPTION_PERCENTAGE"] = 5] = "PARTITION_RAW_ENUM_FIELD_PREEMPTION_PERCENTAGE";
10
- PartitionRawEnumField[PartitionRawEnumField["PARTITION_RAW_ENUM_FIELD_PRIORITY"] = 6] = "PARTITION_RAW_ENUM_FIELD_PRIORITY";
11
- })(PartitionRawEnumField || (PartitionRawEnumField = {}));
12
- /**
13
- * Message implementation for armonik.api.grpc.v1.partitions.PartitionRawField
14
- */
15
- export class PartitionRawField {
16
- static { this.id = 'armonik.api.grpc.v1.partitions.PartitionRawField'; }
17
- /**
18
- * Deserialize binary data to message
19
- * @param instance message instance
20
- */
21
- static deserializeBinary(bytes) {
22
- const instance = new PartitionRawField();
23
- PartitionRawField.deserializeBinaryFromReader(instance, new BinaryReader(bytes));
24
- return instance;
25
- }
26
- /**
27
- * Check all the properties and set default protobuf values if necessary
28
- * @param _instance message instance
29
- */
30
- static refineValues(_instance) {
31
- _instance.field = _instance.field || 0;
32
- }
33
- /**
34
- * Deserializes / reads binary message into message instance using provided binary reader
35
- * @param _instance message instance
36
- * @param _reader binary reader instance
37
- */
38
- static deserializeBinaryFromReader(_instance, _reader) {
39
- while (_reader.nextField()) {
40
- if (_reader.isEndGroup())
41
- break;
42
- switch (_reader.getFieldNumber()) {
43
- case 1:
44
- _instance.field = _reader.readEnum();
45
- break;
46
- default:
47
- _reader.skipField();
48
- }
49
- }
50
- PartitionRawField.refineValues(_instance);
51
- }
52
- /**
53
- * Serializes a message to binary format using provided binary reader
54
- * @param _instance message instance
55
- * @param _writer binary writer instance
56
- */
57
- static serializeBinaryToWriter(_instance, _writer) {
58
- if (_instance.field) {
59
- _writer.writeEnum(1, _instance.field);
60
- }
61
- }
62
- /**
63
- * Message constructor. Initializes the properties and applies default Protobuf values if necessary
64
- * @param _value initial values object or instance of PartitionRawField to deeply clone from
65
- */
66
- constructor(_value) {
67
- _value = _value || {};
68
- this.field = _value.field;
69
- PartitionRawField.refineValues(this);
70
- }
71
- get field() {
72
- return this._field;
73
- }
74
- set field(value) {
75
- this._field = value;
76
- }
77
- /**
78
- * Serialize message to binary data
79
- * @param instance message instance
80
- */
81
- serializeBinary() {
82
- const writer = new BinaryWriter();
83
- PartitionRawField.serializeBinaryToWriter(this, writer);
84
- return writer.getResultBuffer();
85
- }
86
- /**
87
- * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
88
- */
89
- toObject() {
90
- return {
91
- field: this.field
92
- };
93
- }
94
- /**
95
- * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
96
- */
97
- toJSON() {
98
- return this.toObject();
99
- }
100
- /**
101
- * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
102
- * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
103
- * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
104
- */
105
- toProtobufJSON(
106
- // @ts-ignore
107
- options) {
108
- return {
109
- field: PartitionRawEnumField[this.field === null || this.field === undefined ? 0 : this.field]
110
- };
111
- }
112
- }
113
- /**
114
- * Message implementation for armonik.api.grpc.v1.partitions.PartitionField
115
- */
116
- export class PartitionField {
117
- static { this.id = 'armonik.api.grpc.v1.partitions.PartitionField'; }
118
- /**
119
- * Deserialize binary data to message
120
- * @param instance message instance
121
- */
122
- static deserializeBinary(bytes) {
123
- const instance = new PartitionField();
124
- PartitionField.deserializeBinaryFromReader(instance, new BinaryReader(bytes));
125
- return instance;
126
- }
127
- /**
128
- * Check all the properties and set default protobuf values if necessary
129
- * @param _instance message instance
130
- */
131
- static refineValues(_instance) { }
132
- /**
133
- * Deserializes / reads binary message into message instance using provided binary reader
134
- * @param _instance message instance
135
- * @param _reader binary reader instance
136
- */
137
- static deserializeBinaryFromReader(_instance, _reader) {
138
- while (_reader.nextField()) {
139
- if (_reader.isEndGroup())
140
- break;
141
- switch (_reader.getFieldNumber()) {
142
- case 1:
143
- _instance.partitionRawField = new PartitionRawField();
144
- _reader.readMessage(_instance.partitionRawField, PartitionRawField.deserializeBinaryFromReader);
145
- break;
146
- default:
147
- _reader.skipField();
148
- }
149
- }
150
- PartitionField.refineValues(_instance);
151
- }
152
- /**
153
- * Serializes a message to binary format using provided binary reader
154
- * @param _instance message instance
155
- * @param _writer binary writer instance
156
- */
157
- static serializeBinaryToWriter(_instance, _writer) {
158
- if (_instance.partitionRawField) {
159
- _writer.writeMessage(1, _instance.partitionRawField, PartitionRawField.serializeBinaryToWriter);
160
- }
161
- }
162
- /**
163
- * Message constructor. Initializes the properties and applies default Protobuf values if necessary
164
- * @param _value initial values object or instance of PartitionField to deeply clone from
165
- */
166
- constructor(_value) {
167
- this._field = PartitionField.FieldCase.none;
168
- _value = _value || {};
169
- this.partitionRawField = _value.partitionRawField
170
- ? new PartitionRawField(_value.partitionRawField)
171
- : undefined;
172
- PartitionField.refineValues(this);
173
- }
174
- get partitionRawField() {
175
- return this._partitionRawField;
176
- }
177
- set partitionRawField(value) {
178
- if (value !== undefined && value !== null) {
179
- this._field = PartitionField.FieldCase.partitionRawField;
180
- }
181
- this._partitionRawField = value;
182
- }
183
- get field() {
184
- return this._field;
185
- }
186
- /**
187
- * Serialize message to binary data
188
- * @param instance message instance
189
- */
190
- serializeBinary() {
191
- const writer = new BinaryWriter();
192
- PartitionField.serializeBinaryToWriter(this, writer);
193
- return writer.getResultBuffer();
194
- }
195
- /**
196
- * Cast message to standard JavaScript object (all non-primitive values are deeply cloned)
197
- */
198
- toObject() {
199
- return {
200
- partitionRawField: this.partitionRawField
201
- ? this.partitionRawField.toObject()
202
- : undefined
203
- };
204
- }
205
- /**
206
- * Convenience method to support JSON.stringify(message), replicates the structure of toObject()
207
- */
208
- toJSON() {
209
- return this.toObject();
210
- }
211
- /**
212
- * Cast message to JSON using protobuf JSON notation: https://developers.google.com/protocol-buffers/docs/proto3#json
213
- * Attention: output differs from toObject() e.g. enums are represented as names and not as numbers, Timestamp is an ISO Date string format etc.
214
- * If the message itself or some of descendant messages is google.protobuf.Any, you MUST provide a message pool as options. If not, the messagePool is not required
215
- */
216
- toProtobufJSON(
217
- // @ts-ignore
218
- options) {
219
- return {
220
- partitionRawField: this.partitionRawField
221
- ? this.partitionRawField.toProtobufJSON(options)
222
- : null
223
- };
224
- }
225
- }
226
- (function (PartitionField) {
227
- let FieldCase;
228
- (function (FieldCase) {
229
- FieldCase[FieldCase["none"] = 0] = "none";
230
- FieldCase[FieldCase["partitionRawField"] = 1] = "partitionRawField";
231
- })(FieldCase = PartitionField.FieldCase || (PartitionField.FieldCase = {}));
232
- })(PartitionField || (PartitionField = {}));
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGl0aW9ucy1maWVsZHMucGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmVvY29uc3VsdGluZ2ZyL2FybW9uaWsuYXBpLmFuZ3VsYXIvc3JjL2xpYi9nZW5lcmF0ZWQvcGFydGl0aW9ucy1maWVsZHMucGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxNQUFNLENBQU4sSUFBWSxxQkFRWDtBQVJELFdBQVkscUJBQXFCO0lBQy9CLGlJQUF3QyxDQUFBO0lBQ3hDLCtHQUErQixDQUFBO0lBQy9CLG1KQUFpRCxDQUFBO0lBQ2pELG1JQUF5QyxDQUFBO0lBQ3pDLHlIQUFvQyxDQUFBO0lBQ3BDLHFKQUFrRCxDQUFBO0lBQ2xELDJIQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFSVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBUWhDO0FBQ0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO2FBQ3JCLE9BQUUsR0FBRyxrREFBa0QsQ0FBQztJQUUvRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBaUI7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pDLGlCQUFpQixDQUFDLDJCQUEyQixDQUMzQyxRQUFRLEVBQ1IsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQ3hCLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUE0QjtRQUM5QyxTQUFTLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLDJCQUEyQixDQUNoQyxTQUE0QixFQUM1QixPQUFxQjtRQUVy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QyxFQWxCYSxjQUFjLEtBQWQsY0FBYyxRQWtCM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgKi9cbi8vIEB0cy1ub2NoZWNrXG4vL1xuLy8gVEhJUyBJUyBBIEdFTkVSQVRFRCBGSUxFXG4vLyBETyBOT1QgTU9ESUZZIElUISBZT1VSIENIQU5HRVMgV0lMTCBCRSBMT1NUXG5pbXBvcnQge1xuICBHcnBjTWVzc2FnZSxcbiAgUmVjdXJzaXZlUGFydGlhbCxcbiAgVG9Qcm90b2J1ZkpTT05PcHRpb25zXG59IGZyb20gJ0BuZ3gtZ3JwYy9jb21tb24nO1xuaW1wb3J0IHsgQmluYXJ5UmVhZGVyLCBCaW5hcnlXcml0ZXIsIEJ5dGVTb3VyY2UgfSBmcm9tICdnb29nbGUtcHJvdG9idWYnO1xuZXhwb3J0IGVudW0gUGFydGl0aW9uUmF3RW51bUZpZWxkIHtcbiAgUEFSVElUSU9OX1JBV19FTlVNX0ZJRUxEX1VOU1BFQ0lGSUVEID0gMCxcbiAgUEFSVElUSU9OX1JBV19FTlVNX0ZJRUxEX0lEID0gMSxcbiAgUEFSVElUSU9OX1JBV19FTlVNX0ZJRUxEX1BBUkVOVF9QQVJUSVRJT05fSURTID0gMixcbiAgUEFSVElUSU9OX1JBV19FTlVNX0ZJRUxEX1BPRF9SRVNFUlZFRCA9IDMsXG4gIFBBUlRJVElPTl9SQVdfRU5VTV9GSUVMRF9QT0RfTUFYID0gNCxcbiAgUEFSVElUSU9OX1JBV19FTlVNX0ZJRUxEX1BSRUVNUFRJT05fUEVSQ0VOVEFHRSA9IDUsXG4gIFBBUlRJVElPTl9SQVdfRU5VTV9GSUVMRF9QUklPUklUWSA9IDZcbn1cbi8qKlxuICogTWVzc2FnZSBpbXBsZW1lbnRhdGlvbiBmb3IgYXJtb25pay5hcGkuZ3JwYy52MS5wYXJ0aXRpb25zLlBhcnRpdGlvblJhd0ZpZWxkXG4gKi9cbmV4cG9ydCBjbGFzcyBQYXJ0aXRpb25SYXdGaWVsZCBpbXBsZW1lbnRzIEdycGNNZXNzYWdlIHtcbiAgc3RhdGljIGlkID0gJ2FybW9uaWsuYXBpLmdycGMudjEucGFydGl0aW9ucy5QYXJ0aXRpb25SYXdGaWVsZCc7XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplIGJpbmFyeSBkYXRhIHRvIG1lc3NhZ2VcbiAgICogQHBhcmFtIGluc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZUJpbmFyeShieXRlczogQnl0ZVNvdXJjZSkge1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IFBhcnRpdGlvblJhd0ZpZWxkKCk7XG4gICAgUGFydGl0aW9uUmF3RmllbGQuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKFxuICAgICAgaW5zdGFuY2UsXG4gICAgICBuZXcgQmluYXJ5UmVhZGVyKGJ5dGVzKVxuICAgICk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGFsbCB0aGUgcHJvcGVydGllcyBhbmQgc2V0IGRlZmF1bHQgcHJvdG9idWYgdmFsdWVzIGlmIG5lY2Vzc2FyeVxuICAgKiBAcGFyYW0gX2luc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyByZWZpbmVWYWx1ZXMoX2luc3RhbmNlOiBQYXJ0aXRpb25SYXdGaWVsZCkge1xuICAgIF9pbnN0YW5jZS5maWVsZCA9IF9pbnN0YW5jZS5maWVsZCB8fCAwO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplcyAvIHJlYWRzIGJpbmFyeSBtZXNzYWdlIGludG8gbWVzc2FnZSBpbnN0YW5jZSB1c2luZyBwcm92aWRlZCBiaW5hcnkgcmVhZGVyXG4gICAqIEBwYXJhbSBfaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0gX3JlYWRlciBiaW5hcnkgcmVhZGVyIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKFxuICAgIF9pbnN0YW5jZTogUGFydGl0aW9uUmF3RmllbGQsXG4gICAgX3JlYWRlcjogQmluYXJ5UmVhZGVyXG4gICkge1xuICAgIHdoaWxlIChfcmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgICBpZiAoX3JlYWRlci5pc0VuZEdyb3VwKCkpIGJyZWFrO1xuXG4gICAgICBzd2l0Y2ggKF9yZWFkZXIuZ2V0RmllbGROdW1iZXIoKSkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgX2luc3RhbmNlLmZpZWxkID0gX3JlYWRlci5yZWFkRW51bSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIF9yZWFkZXIuc2tpcEZpZWxkKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgUGFydGl0aW9uUmF3RmllbGQucmVmaW5lVmFsdWVzKF9pbnN0YW5jZSk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplcyBhIG1lc3NhZ2UgdG8gYmluYXJ5IGZvcm1hdCB1c2luZyBwcm92aWRlZCBiaW5hcnkgcmVhZGVyXG4gICAqIEBwYXJhbSBfaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0gX3dyaXRlciBiaW5hcnkgd3JpdGVyIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIoXG4gICAgX2luc3RhbmNlOiBQYXJ0aXRpb25SYXdGaWVsZCxcbiAgICBfd3JpdGVyOiBCaW5hcnlXcml0ZXJcbiAgKSB7XG4gICAgaWYgKF9pbnN0YW5jZS5maWVsZCkge1xuICAgICAgX3dyaXRlci53cml0ZUVudW0oMSwgX2luc3RhbmNlLmZpZWxkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9maWVsZDogUGFydGl0aW9uUmF3RW51bUZpZWxkO1xuXG4gIC8qKlxuICAgKiBNZXNzYWdlIGNvbnN0cnVjdG9yLiBJbml0aWFsaXplcyB0aGUgcHJvcGVydGllcyBhbmQgYXBwbGllcyBkZWZhdWx0IFByb3RvYnVmIHZhbHVlcyBpZiBuZWNlc3NhcnlcbiAgICogQHBhcmFtIF92YWx1ZSBpbml0aWFsIHZhbHVlcyBvYmplY3Qgb3IgaW5zdGFuY2Ugb2YgUGFydGl0aW9uUmF3RmllbGQgdG8gZGVlcGx5IGNsb25lIGZyb21cbiAgICovXG4gIGNvbnN0cnVjdG9yKF92YWx1ZT86IFJlY3Vyc2l2ZVBhcnRpYWw8UGFydGl0aW9uUmF3RmllbGQuQXNPYmplY3Q+KSB7XG4gICAgX3ZhbHVlID0gX3ZhbHVlIHx8IHt9O1xuICAgIHRoaXMuZmllbGQgPSBfdmFsdWUuZmllbGQ7XG4gICAgUGFydGl0aW9uUmF3RmllbGQucmVmaW5lVmFsdWVzKHRoaXMpO1xuICB9XG4gIGdldCBmaWVsZCgpOiBQYXJ0aXRpb25SYXdFbnVtRmllbGQge1xuICAgIHJldHVybiB0aGlzLl9maWVsZDtcbiAgfVxuICBzZXQgZmllbGQodmFsdWU6IFBhcnRpdGlvblJhd0VudW1GaWVsZCkge1xuICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIG1lc3NhZ2UgdG8gYmluYXJ5IGRhdGFcbiAgICogQHBhcmFtIGluc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICovXG4gIHNlcmlhbGl6ZUJpbmFyeSgpIHtcbiAgICBjb25zdCB3cml0ZXIgPSBuZXcgQmluYXJ5V3JpdGVyKCk7XG4gICAgUGFydGl0aW9uUmF3RmllbGQuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcywgd3JpdGVyKTtcbiAgICByZXR1cm4gd3JpdGVyLmdldFJlc3VsdEJ1ZmZlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhc3QgbWVzc2FnZSB0byBzdGFuZGFyZCBKYXZhU2NyaXB0IG9iamVjdCAoYWxsIG5vbi1wcmltaXRpdmUgdmFsdWVzIGFyZSBkZWVwbHkgY2xvbmVkKVxuICAgKi9cbiAgdG9PYmplY3QoKTogUGFydGl0aW9uUmF3RmllbGQuQXNPYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICBmaWVsZDogdGhpcy5maWVsZFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIHN1cHBvcnQgSlNPTi5zdHJpbmdpZnkobWVzc2FnZSksIHJlcGxpY2F0ZXMgdGhlIHN0cnVjdHVyZSBvZiB0b09iamVjdCgpXG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9PYmplY3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXN0IG1lc3NhZ2UgdG8gSlNPTiB1c2luZyBwcm90b2J1ZiBKU09OIG5vdGF0aW9uOiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8zI2pzb25cbiAgICogQXR0ZW50aW9uOiBvdXRwdXQgZGlmZmVycyBmcm9tIHRvT2JqZWN0KCkgZS5nLiBlbnVtcyBhcmUgcmVwcmVzZW50ZWQgYXMgbmFtZXMgYW5kIG5vdCBhcyBudW1iZXJzLCBUaW1lc3RhbXAgaXMgYW4gSVNPIERhdGUgc3RyaW5nIGZvcm1hdCBldGMuXG4gICAqIElmIHRoZSBtZXNzYWdlIGl0c2VsZiBvciBzb21lIG9mIGRlc2NlbmRhbnQgbWVzc2FnZXMgaXMgZ29vZ2xlLnByb3RvYnVmLkFueSwgeW91IE1VU1QgcHJvdmlkZSBhIG1lc3NhZ2UgcG9vbCBhcyBvcHRpb25zLiBJZiBub3QsIHRoZSBtZXNzYWdlUG9vbCBpcyBub3QgcmVxdWlyZWRcbiAgICovXG4gIHRvUHJvdG9idWZKU09OKFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBvcHRpb25zPzogVG9Qcm90b2J1ZkpTT05PcHRpb25zXG4gICk6IFBhcnRpdGlvblJhd0ZpZWxkLkFzUHJvdG9idWZKU09OIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmllbGQ6XG4gICAgICAgIFBhcnRpdGlvblJhd0VudW1GaWVsZFtcbiAgICAgICAgICB0aGlzLmZpZWxkID09PSBudWxsIHx8IHRoaXMuZmllbGQgPT09IHVuZGVmaW5lZCA/IDAgOiB0aGlzLmZpZWxkXG4gICAgICAgIF1cbiAgICB9O1xuICB9XG59XG5leHBvcnQgbW9kdWxlIFBhcnRpdGlvblJhd0ZpZWxkIHtcbiAgLyoqXG4gICAqIFN0YW5kYXJkIEphdmFTY3JpcHQgb2JqZWN0IHJlcHJlc2VudGF0aW9uIGZvciBQYXJ0aXRpb25SYXdGaWVsZFxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBBc09iamVjdCB7XG4gICAgZmllbGQ6IFBhcnRpdGlvblJhd0VudW1GaWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm90b2J1ZiBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBQYXJ0aXRpb25SYXdGaWVsZFxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBBc1Byb3RvYnVmSlNPTiB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgfVxufVxuXG4vKipcbiAqIE1lc3NhZ2UgaW1wbGVtZW50YXRpb24gZm9yIGFybW9uaWsuYXBpLmdycGMudjEucGFydGl0aW9ucy5QYXJ0aXRpb25GaWVsZFxuICovXG5leHBvcnQgY2xhc3MgUGFydGl0aW9uRmllbGQgaW1wbGVtZW50cyBHcnBjTWVzc2FnZSB7XG4gIHN0YXRpYyBpZCA9ICdhcm1vbmlrLmFwaS5ncnBjLnYxLnBhcnRpdGlvbnMuUGFydGl0aW9uRmllbGQnO1xuXG4gIC8qKlxuICAgKiBEZXNlcmlhbGl6ZSBiaW5hcnkgZGF0YSB0byBtZXNzYWdlXG4gICAqIEBwYXJhbSBpbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZGVzZXJpYWxpemVCaW5hcnkoYnl0ZXM6IEJ5dGVTb3VyY2UpIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBQYXJ0aXRpb25GaWVsZCgpO1xuICAgIFBhcnRpdGlvbkZpZWxkLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihcbiAgICAgIGluc3RhbmNlLFxuICAgICAgbmV3IEJpbmFyeVJlYWRlcihieXRlcylcbiAgICApO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBhbGwgdGhlIHByb3BlcnRpZXMgYW5kIHNldCBkZWZhdWx0IHByb3RvYnVmIHZhbHVlcyBpZiBuZWNlc3NhcnlcbiAgICogQHBhcmFtIF9pbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgcmVmaW5lVmFsdWVzKF9pbnN0YW5jZTogUGFydGl0aW9uRmllbGQpIHt9XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplcyAvIHJlYWRzIGJpbmFyeSBtZXNzYWdlIGludG8gbWVzc2FnZSBpbnN0YW5jZSB1c2luZyBwcm92aWRlZCBiaW5hcnkgcmVhZGVyXG4gICAqIEBwYXJhbSBfaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0gX3JlYWRlciBiaW5hcnkgcmVhZGVyIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKFxuICAgIF9pbnN0YW5jZTogUGFydGl0aW9uRmllbGQsXG4gICAgX3JlYWRlcjogQmluYXJ5UmVhZGVyXG4gICkge1xuICAgIHdoaWxlIChfcmVhZGVyLm5leHRGaWVsZCgpKSB7XG4gICAgICBpZiAoX3JlYWRlci5pc0VuZEdyb3VwKCkpIGJyZWFrO1xuXG4gICAgICBzd2l0Y2ggKF9yZWFkZXIuZ2V0RmllbGROdW1iZXIoKSkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgX2luc3RhbmNlLnBhcnRpdGlvblJhd0ZpZWxkID0gbmV3IFBhcnRpdGlvblJhd0ZpZWxkKCk7XG4gICAgICAgICAgX3JlYWRlci5yZWFkTWVzc2FnZShcbiAgICAgICAgICAgIF9pbnN0YW5jZS5wYXJ0aXRpb25SYXdGaWVsZCxcbiAgICAgICAgICAgIFBhcnRpdGlvblJhd0ZpZWxkLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlclxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgX3JlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBQYXJ0aXRpb25GaWVsZC5yZWZpbmVWYWx1ZXMoX2luc3RhbmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIGEgbWVzc2FnZSB0byBiaW5hcnkgZm9ybWF0IHVzaW5nIHByb3ZpZGVkIGJpbmFyeSByZWFkZXJcbiAgICogQHBhcmFtIF9pbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqIEBwYXJhbSBfd3JpdGVyIGJpbmFyeSB3cml0ZXIgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBzZXJpYWxpemVCaW5hcnlUb1dyaXRlcihcbiAgICBfaW5zdGFuY2U6IFBhcnRpdGlvbkZpZWxkLFxuICAgIF93cml0ZXI6IEJpbmFyeVdyaXRlclxuICApIHtcbiAgICBpZiAoX2luc3RhbmNlLnBhcnRpdGlvblJhd0ZpZWxkKSB7XG4gICAgICBfd3JpdGVyLndyaXRlTWVzc2FnZShcbiAgICAgICAgMSxcbiAgICAgICAgX2luc3RhbmNlLnBhcnRpdGlvblJhd0ZpZWxkIGFzIGFueSxcbiAgICAgICAgUGFydGl0aW9uUmF3RmllbGQuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXJcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcGFydGl0aW9uUmF3RmllbGQ/OiBQYXJ0aXRpb25SYXdGaWVsZDtcblxuICBwcml2YXRlIF9maWVsZDogUGFydGl0aW9uRmllbGQuRmllbGRDYXNlID0gUGFydGl0aW9uRmllbGQuRmllbGRDYXNlLm5vbmU7XG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgY29uc3RydWN0b3IuIEluaXRpYWxpemVzIHRoZSBwcm9wZXJ0aWVzIGFuZCBhcHBsaWVzIGRlZmF1bHQgUHJvdG9idWYgdmFsdWVzIGlmIG5lY2Vzc2FyeVxuICAgKiBAcGFyYW0gX3ZhbHVlIGluaXRpYWwgdmFsdWVzIG9iamVjdCBvciBpbnN0YW5jZSBvZiBQYXJ0aXRpb25GaWVsZCB0byBkZWVwbHkgY2xvbmUgZnJvbVxuICAgKi9cbiAgY29uc3RydWN0b3IoX3ZhbHVlPzogUmVjdXJzaXZlUGFydGlhbDxQYXJ0aXRpb25GaWVsZC5Bc09iamVjdD4pIHtcbiAgICBfdmFsdWUgPSBfdmFsdWUgfHwge307XG4gICAgdGhpcy5wYXJ0aXRpb25SYXdGaWVsZCA9IF92YWx1ZS5wYXJ0aXRpb25SYXdGaWVsZFxuICAgICAgPyBuZXcgUGFydGl0aW9uUmF3RmllbGQoX3ZhbHVlLnBhcnRpdGlvblJhd0ZpZWxkKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgUGFydGl0aW9uRmllbGQucmVmaW5lVmFsdWVzKHRoaXMpO1xuICB9XG4gIGdldCBwYXJ0aXRpb25SYXdGaWVsZCgpOiBQYXJ0aXRpb25SYXdGaWVsZCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnRpdGlvblJhd0ZpZWxkO1xuICB9XG4gIHNldCBwYXJ0aXRpb25SYXdGaWVsZCh2YWx1ZTogUGFydGl0aW9uUmF3RmllbGQgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fZmllbGQgPSBQYXJ0aXRpb25GaWVsZC5GaWVsZENhc2UucGFydGl0aW9uUmF3RmllbGQ7XG4gICAgfVxuICAgIHRoaXMuX3BhcnRpdGlvblJhd0ZpZWxkID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGZpZWxkKCkge1xuICAgIHJldHVybiB0aGlzLl9maWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YVxuICAgKiBAcGFyYW0gaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKi9cbiAgc2VyaWFsaXplQmluYXJ5KCkge1xuICAgIGNvbnN0IHdyaXRlciA9IG5ldyBCaW5hcnlXcml0ZXIoKTtcbiAgICBQYXJ0aXRpb25GaWVsZC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICAgIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FzdCBtZXNzYWdlIHRvIHN0YW5kYXJkIEphdmFTY3JpcHQgb2JqZWN0IChhbGwgbm9uLXByaW1pdGl2ZSB2YWx1ZXMgYXJlIGRlZXBseSBjbG9uZWQpXG4gICAqL1xuICB0b09iamVjdCgpOiBQYXJ0aXRpb25GaWVsZC5Bc09iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcnRpdGlvblJhd0ZpZWxkOiB0aGlzLnBhcnRpdGlvblJhd0ZpZWxkXG4gICAgICAgID8gdGhpcy5wYXJ0aXRpb25SYXdGaWVsZC50b09iamVjdCgpXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gc3VwcG9ydCBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSwgcmVwbGljYXRlcyB0aGUgc3RydWN0dXJlIG9mIHRvT2JqZWN0KClcbiAgICovXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy50b09iamVjdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhc3QgbWVzc2FnZSB0byBKU09OIHVzaW5nIHByb3RvYnVmIEpTT04gbm90YXRpb246IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90bzMjanNvblxuICAgKiBBdHRlbnRpb246IG91dHB1dCBkaWZmZXJzIGZyb20gdG9PYmplY3QoKSBlLmcuIGVudW1zIGFyZSByZXByZXNlbnRlZCBhcyBuYW1lcyBhbmQgbm90IGFzIG51bWJlcnMsIFRpbWVzdGFtcCBpcyBhbiBJU08gRGF0ZSBzdHJpbmcgZm9ybWF0IGV0Yy5cbiAgICogSWYgdGhlIG1lc3NhZ2UgaXRzZWxmIG9yIHNvbWUgb2YgZGVzY2VuZGFudCBtZXNzYWdlcyBpcyBnb29nbGUucHJvdG9idWYuQW55LCB5b3UgTVVTVCBwcm92aWRlIGEgbWVzc2FnZSBwb29sIGFzIG9wdGlvbnMuIElmIG5vdCwgdGhlIG1lc3NhZ2VQb29sIGlzIG5vdCByZXF1aXJlZFxuICAgKi9cbiAgdG9Qcm90b2J1ZkpTT04oXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIG9wdGlvbnM/OiBUb1Byb3RvYnVmSlNPTk9wdGlvbnNcbiAgKTogUGFydGl0aW9uRmllbGQuQXNQcm90b2J1ZkpTT04ge1xuICAgIHJldHVybiB7XG4gICAgICBwYXJ0aXRpb25SYXdGaWVsZDogdGhpcy5wYXJ0aXRpb25SYXdGaWVsZFxuICAgICAgICA/IHRoaXMucGFydGl0aW9uUmF3RmllbGQudG9Qcm90b2J1ZkpTT04ob3B0aW9ucylcbiAgICAgICAgOiBudWxsXG4gICAgfTtcbiAgfVxufVxuZXhwb3J0IG1vZHVsZSBQYXJ0aXRpb25GaWVsZCB7XG4gIC8qKlxuICAgKiBTdGFuZGFyZCBKYXZhU2NyaXB0IG9iamVjdCByZXByZXNlbnRhdGlvbiBmb3IgUGFydGl0aW9uRmllbGRcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXNPYmplY3Qge1xuICAgIHBhcnRpdGlvblJhd0ZpZWxkPzogUGFydGl0aW9uUmF3RmllbGQuQXNPYmplY3Q7XG4gIH1cblxuICAvKipcbiAgICogUHJvdG9idWYgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgUGFydGl0aW9uRmllbGRcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXNQcm90b2J1ZkpTT04ge1xuICAgIHBhcnRpdGlvblJhd0ZpZWxkOiBQYXJ0aXRpb25SYXdGaWVsZC5Bc1Byb3RvYnVmSlNPTiB8IG51bGw7XG4gIH1cbiAgZXhwb3J0IGVudW0gRmllbGRDYXNlIHtcbiAgICBub25lID0gMCxcbiAgICBwYXJ0aXRpb25SYXdGaWVsZCA9IDFcbiAgfVxufVxuIl19