@aneoconsultingfr/armonik.api.angular 3.11.0-edge.89.ab31d7c → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/lib/generated/applications-common.pb.mjs +22 -618
- package/esm2022/lib/generated/applications-fields.pb.mjs +231 -0
- package/esm2022/lib/generated/applications-filters.pb.mjs +349 -0
- package/esm2022/lib/generated/applications-service.pb.mjs +1 -1
- package/esm2022/lib/generated/applications-service.pbsc.mjs +6 -36
- package/esm2022/lib/generated/events-common.pb.mjs +19 -3
- package/esm2022/lib/generated/filters-common.pb.mjs +642 -0
- package/esm2022/lib/generated/partitions-common.pb.mjs +25 -433
- package/esm2022/lib/generated/partitions-fields.pb.mjs +233 -0
- package/esm2022/lib/generated/partitions-filters.pb.mjs +431 -0
- package/esm2022/lib/generated/partitions-service.pb.mjs +1 -1
- package/esm2022/lib/generated/partitions-service.pbsc.mjs +10 -10
- package/esm2022/lib/generated/results-common.pb.mjs +33 -565
- package/esm2022/lib/generated/results-fields.pb.mjs +234 -0
- package/esm2022/lib/generated/results-filters.pb.mjs +546 -0
- package/esm2022/lib/generated/results-service.pb.mjs +1 -1
- package/esm2022/lib/generated/results-service.pbsc.mjs +39 -39
- package/esm2022/lib/generated/sessions-common.pb.mjs +104 -822
- package/esm2022/lib/generated/sessions-fields.pb.mjs +504 -0
- package/esm2022/lib/generated/sessions-filters.pb.mjs +602 -0
- package/esm2022/lib/generated/sessions-service.pb.mjs +1 -1
- package/esm2022/lib/generated/sessions-service.pbsc.mjs +24 -24
- package/esm2022/lib/generated/tasks-common.pb.mjs +166 -900
- package/esm2022/lib/generated/tasks-fields.pb.mjs +513 -0
- package/esm2022/lib/generated/tasks-filters.pb.mjs +602 -0
- package/esm2022/lib/generated/tasks-service.pb.mjs +1 -1
- package/esm2022/lib/generated/tasks-service.pbsc.mjs +36 -36
- package/esm2022/lib/index.mjs +22 -12
- package/fesm2022/aneoconsultingfr-armonik.api.angular.mjs +11857 -10006
- package/fesm2022/aneoconsultingfr-armonik.api.angular.mjs.map +1 -1
- package/lib/generated/applications-common.pb.d.ts +11 -388
- package/lib/generated/applications-fields.pb.d.ts +153 -0
- package/lib/generated/applications-filters.pb.d.ts +222 -0
- package/lib/generated/applications-service.pbsc.d.ts +5 -21
- package/lib/generated/events-common.pb.d.ts +5 -0
- package/lib/generated/filters-common.pb.d.ts +408 -0
- package/lib/generated/partitions-common.pb.d.ts +15 -260
- package/lib/generated/partitions-fields.pb.d.ts +155 -0
- package/lib/generated/partitions-filters.pb.d.ts +240 -0
- package/lib/generated/partitions-service.pbsc.d.ts +9 -9
- package/lib/generated/results-common.pb.d.ts +24 -295
- package/lib/generated/results-fields.pb.d.ts +156 -0
- package/lib/generated/results-filters.pb.d.ts +315 -0
- package/lib/generated/results-service.pbsc.d.ts +38 -38
- package/lib/generated/sessions-common.pb.d.ts +76 -489
- package/lib/generated/sessions-fields.pb.d.ts +318 -0
- package/lib/generated/sessions-filters.pb.d.ts +327 -0
- package/lib/generated/sessions-service.pbsc.d.ts +19 -19
- package/lib/generated/tasks-common.pb.d.ts +139 -561
- package/lib/generated/tasks-fields.pb.d.ts +327 -0
- package/lib/generated/tasks-filters.pb.d.ts +327 -0
- package/lib/generated/tasks-service.pbsc.d.ts +31 -31
- package/lib/index.d.ts +21 -11
- package/package.json +2 -2
|
@@ -0,0 +1,233 @@
|
|
|
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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XG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gQHRzLW5vY2hlY2tcbi8vXG4vLyBUSElTIElTIEEgR0VORVJBVEVEIEZJTEVcbi8vIERPIE5PVCBNT0RJRlkgSVQhIFlPVVIgQ0hBTkdFUyBXSUxMIEJFIExPU1RcbmltcG9ydCB7XG4gIEdycGNNZXNzYWdlLFxuICBSZWN1cnNpdmVQYXJ0aWFsLFxuICBUb1Byb3RvYnVmSlNPTk9wdGlvbnNcbn0gZnJvbSAnQG5neC1ncnBjL2NvbW1vbic7XG5pbXBvcnQgeyBCaW5hcnlSZWFkZXIsIEJpbmFyeVdyaXRlciwgQnl0ZVNvdXJjZSB9IGZyb20gJ2dvb2dsZS1wcm90b2J1Zic7XG5leHBvcnQgZW51bSBQYXJ0aXRpb25SYXdFbnVtRmllbGQge1xuICBQQVJUSVRJT05fUkFXX0VOVU1fRklFTERfVU5TUEVDSUZJRUQgPSAwLFxuICBQQVJUSVRJT05fUkFXX0VOVU1fRklFTERfSUQgPSAxLFxuICBQQVJUSVRJT05fUkFXX0VOVU1fRklFTERfUEFSRU5UX1BBUlRJVElPTl9JRFMgPSAyLFxuICBQQVJUSVRJT05fUkFXX0VOVU1fRklFTERfUE9EX1JFU0VSVkVEID0gMyxcbiAgUEFSVElUSU9OX1JBV19FTlVNX0ZJRUxEX1BPRF9NQVggPSA0LFxuICBQQVJUSVRJT05fUkFXX0VOVU1fRklFTERfUFJFRU1QVElPTl9QRVJDRU5UQUdFID0gNSxcbiAgUEFSVElUSU9OX1JBV19FTlVNX0ZJRUxEX1BSSU9SSVRZID0gNlxufVxuLyoqXG4gKiBNZXNzYWdlIGltcGxlbWVudGF0aW9uIGZvciBhcm1vbmlrLmFwaS5ncnBjLnYxLnBhcnRpdGlvbnMuUGFydGl0aW9uUmF3RmllbGRcbiAqL1xuZXhwb3J0IGNsYXNzIFBhcnRpdGlvblJhd0ZpZWxkIGltcGxlbWVudHMgR3JwY01lc3NhZ2Uge1xuICBzdGF0aWMgaWQgPSAnYXJtb25pay5hcGkuZ3JwYy52MS5wYXJ0aXRpb25zLlBhcnRpdGlvblJhd0ZpZWxkJztcblxuICAvKipcbiAgICogRGVzZXJpYWxpemUgYmluYXJ5IGRhdGEgdG8gbWVzc2FnZVxuICAgKiBAcGFyYW0gaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGRlc2VyaWFsaXplQmluYXJ5KGJ5dGVzOiBCeXRlU291cmNlKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgUGFydGl0aW9uUmF3RmllbGQoKTtcbiAgICBQYXJ0aXRpb25SYXdGaWVsZC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIoXG4gICAgICBpbnN0YW5jZSxcbiAgICAgIG5ldyBCaW5hcnlSZWFkZXIoYnl0ZXMpXG4gICAgKTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgYWxsIHRoZSBwcm9wZXJ0aWVzIGFuZCBzZXQgZGVmYXVsdCBwcm90b2J1ZiB2YWx1ZXMgaWYgbmVjZXNzYXJ5XG4gICAqIEBwYXJhbSBfaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIHJlZmluZVZhbHVlcyhfaW5zdGFuY2U6IFBhcnRpdGlvblJhd0ZpZWxkKSB7XG4gICAgX2luc3RhbmNlLmZpZWxkID0gX2luc3RhbmNlLmZpZWxkIHx8IDA7XG4gIH1cblxuICAvKipcbiAgICogRGVzZXJpYWxpemVzIC8gcmVhZHMgYmluYXJ5IG1lc3NhZ2UgaW50byBtZXNzYWdlIGluc3RhbmNlIHVzaW5nIHByb3ZpZGVkIGJpbmFyeSByZWFkZXJcbiAgICogQHBhcmFtIF9pbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqIEBwYXJhbSBfcmVhZGVyIGJpbmFyeSByZWFkZXIgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIoXG4gICAgX2luc3RhbmNlOiBQYXJ0aXRpb25SYXdGaWVsZCxcbiAgICBfcmVhZGVyOiBCaW5hcnlSZWFkZXJcbiAgKSB7XG4gICAgd2hpbGUgKF9yZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICAgIGlmIChfcmVhZGVyLmlzRW5kR3JvdXAoKSkgYnJlYWs7XG5cbiAgICAgIHN3aXRjaCAoX3JlYWRlci5nZXRGaWVsZE51bWJlcigpKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBfaW5zdGFuY2UuZmllbGQgPSBfcmVhZGVyLnJlYWRFbnVtKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgX3JlYWRlci5za2lwRmllbGQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBQYXJ0aXRpb25SYXdGaWVsZC5yZWZpbmVWYWx1ZXMoX2luc3RhbmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIGEgbWVzc2FnZSB0byBiaW5hcnkgZm9ybWF0IHVzaW5nIHByb3ZpZGVkIGJpbmFyeSByZWFkZXJcbiAgICogQHBhcmFtIF9pbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqIEBwYXJhbSBfd3JpdGVyIGJpbmFyeSB3cml0ZXIgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBzZXJpYWxpemVCaW5hcnlUb1dyaXRlcihcbiAgICBfaW5zdGFuY2U6IFBhcnRpdGlvblJhd0ZpZWxkLFxuICAgIF93cml0ZXI6IEJpbmFyeVdyaXRlclxuICApIHtcbiAgICBpZiAoX2luc3RhbmNlLmZpZWxkKSB7XG4gICAgICBfd3JpdGVyLndyaXRlRW51bSgxLCBfaW5zdGFuY2UuZmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2ZpZWxkOiBQYXJ0aXRpb25SYXdFbnVtRmllbGQ7XG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgY29uc3RydWN0b3IuIEluaXRpYWxpemVzIHRoZSBwcm9wZXJ0aWVzIGFuZCBhcHBsaWVzIGRlZmF1bHQgUHJvdG9idWYgdmFsdWVzIGlmIG5lY2Vzc2FyeVxuICAgKiBAcGFyYW0gX3ZhbHVlIGluaXRpYWwgdmFsdWVzIG9iamVjdCBvciBpbnN0YW5jZSBvZiBQYXJ0aXRpb25SYXdGaWVsZCB0byBkZWVwbHkgY2xvbmUgZnJvbVxuICAgKi9cbiAgY29uc3RydWN0b3IoX3ZhbHVlPzogUmVjdXJzaXZlUGFydGlhbDxQYXJ0aXRpb25SYXdGaWVsZC5Bc09iamVjdD4pIHtcbiAgICBfdmFsdWUgPSBfdmFsdWUgfHwge307XG4gICAgdGhpcy5maWVsZCA9IF92YWx1ZS5maWVsZDtcbiAgICBQYXJ0aXRpb25SYXdGaWVsZC5yZWZpbmVWYWx1ZXModGhpcyk7XG4gIH1cbiAgZ2V0IGZpZWxkKCk6IFBhcnRpdGlvblJhd0VudW1GaWVsZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkO1xuICB9XG4gIHNldCBmaWVsZCh2YWx1ZTogUGFydGl0aW9uUmF3RW51bUZpZWxkKSB7XG4gICAgdGhpcy5fZmllbGQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgbWVzc2FnZSB0byBiaW5hcnkgZGF0YVxuICAgKiBAcGFyYW0gaW5zdGFuY2UgbWVzc2FnZSBpbnN0YW5jZVxuICAgKi9cbiAgc2VyaWFsaXplQmluYXJ5KCkge1xuICAgIGNvbnN0IHdyaXRlciA9IG5ldyBCaW5hcnlXcml0ZXIoKTtcbiAgICBQYXJ0aXRpb25SYXdGaWVsZC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLCB3cml0ZXIpO1xuICAgIHJldHVybiB3cml0ZXIuZ2V0UmVzdWx0QnVmZmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FzdCBtZXNzYWdlIHRvIHN0YW5kYXJkIEphdmFTY3JpcHQgb2JqZWN0IChhbGwgbm9uLXByaW1pdGl2ZSB2YWx1ZXMgYXJlIGRlZXBseSBjbG9uZWQpXG4gICAqL1xuICB0b09iamVjdCgpOiBQYXJ0aXRpb25SYXdGaWVsZC5Bc09iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpZWxkOiB0aGlzLmZpZWxkXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gc3VwcG9ydCBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSwgcmVwbGljYXRlcyB0aGUgc3RydWN0dXJlIG9mIHRvT2JqZWN0KClcbiAgICovXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy50b09iamVjdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhc3QgbWVzc2FnZSB0byBKU09OIHVzaW5nIHByb3RvYnVmIEpTT04gbm90YXRpb246IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90bzMjanNvblxuICAgKiBBdHRlbnRpb246IG91dHB1dCBkaWZmZXJzIGZyb20gdG9PYmplY3QoKSBlLmcuIGVudW1zIGFyZSByZXByZXNlbnRlZCBhcyBuYW1lcyBhbmQgbm90IGFzIG51bWJlcnMsIFRpbWVzdGFtcCBpcyBhbiBJU08gRGF0ZSBzdHJpbmcgZm9ybWF0IGV0Yy5cbiAgICogSWYgdGhlIG1lc3NhZ2UgaXRzZWxmIG9yIHNvbWUgb2YgZGVzY2VuZGFudCBtZXNzYWdlcyBpcyBnb29nbGUucHJvdG9idWYuQW55LCB5b3UgTVVTVCBwcm92aWRlIGEgbWVzc2FnZSBwb29sIGFzIG9wdGlvbnMuIElmIG5vdCwgdGhlIG1lc3NhZ2VQb29sIGlzIG5vdCByZXF1aXJlZFxuICAgKi9cbiAgdG9Qcm90b2J1ZkpTT04oXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIG9wdGlvbnM/OiBUb1Byb3RvYnVmSlNPTk9wdGlvbnNcbiAgKTogUGFydGl0aW9uUmF3RmllbGQuQXNQcm90b2J1ZkpTT04ge1xuICAgIHJldHVybiB7XG4gICAgICBmaWVsZDpcbiAgICAgICAgUGFydGl0aW9uUmF3RW51bUZpZWxkW1xuICAgICAgICAgIHRoaXMuZmllbGQgPT09IG51bGwgfHwgdGhpcy5maWVsZCA9PT0gdW5kZWZpbmVkID8gMCA6IHRoaXMuZmllbGRcbiAgICAgICAgXVxuICAgIH07XG4gIH1cbn1cbmV4cG9ydCBtb2R1bGUgUGFydGl0aW9uUmF3RmllbGQge1xuICAvKipcbiAgICogU3RhbmRhcmQgSmF2YVNjcmlwdCBvYmplY3QgcmVwcmVzZW50YXRpb24gZm9yIFBhcnRpdGlvblJhd0ZpZWxkXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEFzT2JqZWN0IHtcbiAgICBmaWVsZDogUGFydGl0aW9uUmF3RW51bUZpZWxkO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3RvYnVmIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIFBhcnRpdGlvblJhd0ZpZWxkXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEFzUHJvdG9idWZKU09OIHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICB9XG59XG5cbi8qKlxuICogTWVzc2FnZSBpbXBsZW1lbnRhdGlvbiBmb3IgYXJtb25pay5hcGkuZ3JwYy52MS5wYXJ0aXRpb25zLlBhcnRpdGlvbkZpZWxkXG4gKi9cbmV4cG9ydCBjbGFzcyBQYXJ0aXRpb25GaWVsZCBpbXBsZW1lbnRzIEdycGNNZXNzYWdlIHtcbiAgc3RhdGljIGlkID0gJ2FybW9uaWsuYXBpLmdycGMudjEucGFydGl0aW9ucy5QYXJ0aXRpb25GaWVsZCc7XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplIGJpbmFyeSBkYXRhIHRvIG1lc3NhZ2VcbiAgICogQHBhcmFtIGluc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZUJpbmFyeShieXRlczogQnl0ZVNvdXJjZSkge1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IFBhcnRpdGlvbkZpZWxkKCk7XG4gICAgUGFydGl0aW9uRmllbGQuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKFxuICAgICAgaW5zdGFuY2UsXG4gICAgICBuZXcgQmluYXJ5UmVhZGVyKGJ5dGVzKVxuICAgICk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGFsbCB0aGUgcHJvcGVydGllcyBhbmQgc2V0IGRlZmF1bHQgcHJvdG9idWYgdmFsdWVzIGlmIG5lY2Vzc2FyeVxuICAgKiBAcGFyYW0gX2luc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyByZWZpbmVWYWx1ZXMoX2luc3RhbmNlOiBQYXJ0aXRpb25GaWVsZCkge31cblxuICAvKipcbiAgICogRGVzZXJpYWxpemVzIC8gcmVhZHMgYmluYXJ5IG1lc3NhZ2UgaW50byBtZXNzYWdlIGluc3RhbmNlIHVzaW5nIHByb3ZpZGVkIGJpbmFyeSByZWFkZXJcbiAgICogQHBhcmFtIF9pbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqIEBwYXJhbSBfcmVhZGVyIGJpbmFyeSByZWFkZXIgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIoXG4gICAgX2luc3RhbmNlOiBQYXJ0aXRpb25GaWVsZCxcbiAgICBfcmVhZGVyOiBCaW5hcnlSZWFkZXJcbiAgKSB7XG4gICAgd2hpbGUgKF9yZWFkZXIubmV4dEZpZWxkKCkpIHtcbiAgICAgIGlmIChfcmVhZGVyLmlzRW5kR3JvdXAoKSkgYnJlYWs7XG5cbiAgICAgIHN3aXRjaCAoX3JlYWRlci5nZXRGaWVsZE51bWJlcigpKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBfaW5zdGFuY2UucGFydGl0aW9uUmF3RmllbGQgPSBuZXcgUGFydGl0aW9uUmF3RmllbGQoKTtcbiAgICAgICAgICBfcmVhZGVyLnJlYWRNZXNzYWdlKFxuICAgICAgICAgICAgX2luc3RhbmNlLnBhcnRpdGlvblJhd0ZpZWxkLFxuICAgICAgICAgICAgUGFydGl0aW9uUmF3RmllbGQuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBfcmVhZGVyLnNraXBGaWVsZCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIFBhcnRpdGlvbkZpZWxkLnJlZmluZVZhbHVlcyhfaW5zdGFuY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgYSBtZXNzYWdlIHRvIGJpbmFyeSBmb3JtYXQgdXNpbmcgcHJvdmlkZWQgYmluYXJ5IHJlYWRlclxuICAgKiBAcGFyYW0gX2luc3RhbmNlIG1lc3NhZ2UgaW5zdGFuY2VcbiAgICogQHBhcmFtIF93cml0ZXIgYmluYXJ5IHdyaXRlciBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIHNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKFxuICAgIF9pbnN0YW5jZTogUGFydGl0aW9uRmllbGQsXG4gICAgX3dyaXRlcjogQmluYXJ5V3JpdGVyXG4gICkge1xuICAgIGlmIChfaW5zdGFuY2UucGFydGl0aW9uUmF3RmllbGQpIHtcbiAgICAgIF93cml0ZXIud3JpdGVNZXNzYWdlKFxuICAgICAgICAxLFxuICAgICAgICBfaW5zdGFuY2UucGFydGl0aW9uUmF3RmllbGQgYXMgYW55LFxuICAgICAgICBQYXJ0aXRpb25SYXdGaWVsZC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlclxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9wYXJ0aXRpb25SYXdGaWVsZD86IFBhcnRpdGlvblJhd0ZpZWxkO1xuXG4gIHByaXZhdGUgX2ZpZWxkOiBQYXJ0aXRpb25GaWVsZC5GaWVsZENhc2UgPSBQYXJ0aXRpb25GaWVsZC5GaWVsZENhc2Uubm9uZTtcblxuICAvKipcbiAgICogTWVzc2FnZSBjb25zdHJ1Y3Rvci4gSW5pdGlhbGl6ZXMgdGhlIHByb3BlcnRpZXMgYW5kIGFwcGxpZXMgZGVmYXVsdCBQcm90b2J1ZiB2YWx1ZXMgaWYgbmVjZXNzYXJ5XG4gICAqIEBwYXJhbSBfdmFsdWUgaW5pdGlhbCB2YWx1ZXMgb2JqZWN0IG9yIGluc3RhbmNlIG9mIFBhcnRpdGlvbkZpZWxkIHRvIGRlZXBseSBjbG9uZSBmcm9tXG4gICAqL1xuICBjb25zdHJ1Y3RvcihfdmFsdWU/OiBSZWN1cnNpdmVQYXJ0aWFsPFBhcnRpdGlvbkZpZWxkLkFzT2JqZWN0Pikge1xuICAgIF92YWx1ZSA9IF92YWx1ZSB8fCB7fTtcbiAgICB0aGlzLnBhcnRpdGlvblJhd0ZpZWxkID0gX3ZhbHVlLnBhcnRpdGlvblJhd0ZpZWxkXG4gICAgICA/IG5ldyBQYXJ0aXRpb25SYXdGaWVsZChfdmFsdWUucGFydGl0aW9uUmF3RmllbGQpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICBQYXJ0aXRpb25GaWVsZC5yZWZpbmVWYWx1ZXModGhpcyk7XG4gIH1cbiAgZ2V0IHBhcnRpdGlvblJhd0ZpZWxkKCk6IFBhcnRpdGlvblJhd0ZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcGFydGl0aW9uUmF3RmllbGQ7XG4gIH1cbiAgc2V0IHBhcnRpdGlvblJhd0ZpZWxkKHZhbHVlOiBQYXJ0aXRpb25SYXdGaWVsZCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9maWVsZCA9IFBhcnRpdGlvbkZpZWxkLkZpZWxkQ2FzZS5wYXJ0aXRpb25SYXdGaWVsZDtcbiAgICB9XG4gICAgdGhpcy5fcGFydGl0aW9uUmF3RmllbGQgPSB2YWx1ZTtcbiAgfVxuICBnZXQgZmllbGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSBtZXNzYWdlIHRvIGJpbmFyeSBkYXRhXG4gICAqIEBwYXJhbSBpbnN0YW5jZSBtZXNzYWdlIGluc3RhbmNlXG4gICAqL1xuICBzZXJpYWxpemVCaW5hcnkoKSB7XG4gICAgY29uc3Qgd3JpdGVyID0gbmV3IEJpbmFyeVdyaXRlcigpO1xuICAgIFBhcnRpdGlvbkZpZWxkLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsIHdyaXRlcik7XG4gICAgcmV0dXJuIHdyaXRlci5nZXRSZXN1bHRCdWZmZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXN0IG1lc3NhZ2UgdG8gc3RhbmRhcmQgSmF2YVNjcmlwdCBvYmplY3QgKGFsbCBub24tcHJpbWl0aXZlIHZhbHVlcyBhcmUgZGVlcGx5IGNsb25lZClcbiAgICovXG4gIHRvT2JqZWN0KCk6IFBhcnRpdGlvbkZpZWxkLkFzT2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFydGl0aW9uUmF3RmllbGQ6IHRoaXMucGFydGl0aW9uUmF3RmllbGRcbiAgICAgICAgPyB0aGlzLnBhcnRpdGlvblJhd0ZpZWxkLnRvT2JqZWN0KClcbiAgICAgICAgOiB1bmRlZmluZWRcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBzdXBwb3J0IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpLCByZXBsaWNhdGVzIHRoZSBzdHJ1Y3R1cmUgb2YgdG9PYmplY3QoKVxuICAgKi9cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB0aGlzLnRvT2JqZWN0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FzdCBtZXNzYWdlIHRvIEpTT04gdXNpbmcgcHJvdG9idWYgSlNPTiBub3RhdGlvbjogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvMyNqc29uXG4gICAqIEF0dGVudGlvbjogb3V0cHV0IGRpZmZlcnMgZnJvbSB0b09iamVjdCgpIGUuZy4gZW51bXMgYXJlIHJlcHJlc2VudGVkIGFzIG5hbWVzIGFuZCBub3QgYXMgbnVtYmVycywgVGltZXN0YW1wIGlzIGFuIElTTyBEYXRlIHN0cmluZyBmb3JtYXQgZXRjLlxuICAgKiBJZiB0aGUgbWVzc2FnZSBpdHNlbGYgb3Igc29tZSBvZiBkZXNjZW5kYW50IG1lc3NhZ2VzIGlzIGdvb2dsZS5wcm90b2J1Zi5BbnksIHlvdSBNVVNUIHByb3ZpZGUgYSBtZXNzYWdlIHBvb2wgYXMgb3B0aW9ucy4gSWYgbm90LCB0aGUgbWVzc2FnZVBvb2wgaXMgbm90IHJlcXVpcmVkXG4gICAqL1xuICB0b1Byb3RvYnVmSlNPTihcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3B0aW9ucz86IFRvUHJvdG9idWZKU09OT3B0aW9uc1xuICApOiBQYXJ0aXRpb25GaWVsZC5Bc1Byb3RvYnVmSlNPTiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcnRpdGlvblJhd0ZpZWxkOiB0aGlzLnBhcnRpdGlvblJhd0ZpZWxkXG4gICAgICAgID8gdGhpcy5wYXJ0aXRpb25SYXdGaWVsZC50b1Byb3RvYnVmSlNPTihvcHRpb25zKVxuICAgICAgICA6IG51bGxcbiAgICB9O1xuICB9XG59XG5leHBvcnQgbW9kdWxlIFBhcnRpdGlvbkZpZWxkIHtcbiAgLyoqXG4gICAqIFN0YW5kYXJkIEphdmFTY3JpcHQgb2JqZWN0IHJlcHJlc2VudGF0aW9uIGZvciBQYXJ0aXRpb25GaWVsZFxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBBc09iamVjdCB7XG4gICAgcGFydGl0aW9uUmF3RmllbGQ/OiBQYXJ0aXRpb25SYXdGaWVsZC5Bc09iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm90b2J1ZiBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBQYXJ0aXRpb25GaWVsZFxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBBc1Byb3RvYnVmSlNPTiB7XG4gICAgcGFydGl0aW9uUmF3RmllbGQ6IFBhcnRpdGlvblJhd0ZpZWxkLkFzUHJvdG9idWZKU09OIHwgbnVsbDtcbiAgfVxuICBleHBvcnQgZW51bSBGaWVsZENhc2Uge1xuICAgIG5vbmUgPSAwLFxuICAgIHBhcnRpdGlvblJhd0ZpZWxkID0gMVxuICB9XG59XG4iXX0=
|