@coralogix/rum-cli 1.1.38 → 1.1.43
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 +2 -0
- package/api/base/base.api.ts +48 -56
- package/api/dsym/dsym.api.ts +8 -0
- package/api/proguard/proguard.api.ts +8 -0
- package/api/react-native/react-native.api.ts +8 -0
- package/api/source-maps/source-maps.api.ts +8 -0
- package/cli/commands/dsym/upload-dsym-command.ts +4 -2
- package/cli/commands/proguard/upload-proguard-command.ts +4 -2
- package/cli/commands/react-native/upload-react-native-source-maps-command.ts +4 -2
- package/cli/commands/source-maps/upload-source-maps-command.ts +4 -2
- package/consts/consts.ts +1 -0
- package/dist/api/base/base.api.d.ts +10 -9
- package/dist/api/base/base.api.js +20 -34
- package/dist/api/dsym/dsym.api.d.ts +2 -2
- package/dist/api/dsym/dsym.api.js +7 -3
- package/dist/api/proguard/proguard.api.d.ts +2 -2
- package/dist/api/proguard/proguard.api.js +7 -3
- package/dist/api/react-native/react-native.api.d.ts +2 -2
- package/dist/api/react-native/react-native.api.js +7 -3
- package/dist/api/source-maps/source-maps.api.d.ts +2 -2
- package/dist/api/source-maps/source-maps.api.js +7 -3
- package/dist/cli/commands/dsym/upload-dsym-command.js +5 -3
- package/dist/cli/commands/proguard/upload-proguard-command.js +5 -3
- package/dist/cli/commands/react-native/upload-react-native-source-maps-command.js +5 -3
- package/dist/cli/commands/source-maps/upload-source-maps-command.js +5 -3
- package/dist/consts/consts.js +3 -2
- package/dist/grpc-client/grpc-client-factory.d.ts +158 -0
- package/dist/models/dsym-commands.model.d.ts +2 -0
- package/dist/models/dsym-commands.model.js +1 -1
- package/dist/models/proguard-commands.model.d.ts +2 -0
- package/dist/models/proguard-commands.model.js +1 -1
- package/dist/models/react-native-commands.model.d.ts +2 -0
- package/dist/models/react-native-commands.model.js +1 -1
- package/dist/models/source-maps-commands.model.d.ts +2 -0
- package/dist/models/source-maps-commands.model.js +1 -1
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.d.ts +150 -0
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.js +29 -1
- package/dist/proto-models/com/coralogix/blobset/v2/case_file.d.ts +36 -0
- package/dist/proto-models/com/coralogix/blobset/v2/case_file.js +161 -0
- package/dist/proto-models/com/coralogix/blobset/v2/dsym.d.ts +1 -0
- package/dist/proto-models/com/coralogix/blobset/v2/dsym.js +33 -3
- package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.d.ts +47 -0
- package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.js +375 -11
- package/dist/proto-models/com/coralogix/blobset/v2/entity_type.d.ts +3 -1
- package/dist/proto-models/com/coralogix/blobset/v2/entity_type.js +13 -1
- package/dist/proto-models/com/coralogix/blobset/v2/investigation_file.d.ts +36 -0
- package/dist/proto-models/com/coralogix/blobset/v2/investigation_file.js +161 -0
- package/dist/proto-models/com/coralogix/blobset/v2/proguard.d.ts +68 -0
- package/dist/proto-models/com/coralogix/blobset/v2/proguard.js +400 -0
- package/dist/proto-models/com/coralogix/rum/v2/ai_assist.d.ts +89 -0
- package/dist/proto-models/com/coralogix/rum/v2/ai_assist.js +290 -0
- package/dist/proto-models/com/coralogix/rum/v2/application_releases.d.ts +38 -0
- package/dist/proto-models/com/coralogix/rum/v2/application_releases.js +180 -0
- package/dist/proto-models/com/coralogix/rum/v2/merge_error.d.ts +38 -0
- package/dist/proto-models/com/coralogix/rum/v2/merge_error.js +171 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.d.ts +19 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.js +225 -10
- package/dist/proto-models/com/coralogix/rum/v2/rum_merge_erros_service.d.ts +197 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_merge_erros_service.js +478 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +107 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +385 -2
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +94 -1
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +300 -2
- package/dist/proto-models/com/coralogix/rum/v2/saved_filter.d.ts +5 -1
- package/dist/proto-models/com/coralogix/rum/v2/saved_filter.js +25 -1
- package/dist/proto-models/com/coralogix/rum/v2/template.d.ts +2 -0
- package/dist/proto-models/com/coralogix/rum/v2/template.js +31 -3
- package/dist/proto-models/google/protobuf/struct.d.ts +127 -0
- package/dist/proto-models/google/protobuf/struct.js +476 -0
- package/dist/services/base/base.service.d.ts +1 -1
- package/dist/services/base/base.service.js +7 -5
- package/dist/utils/upload-mode.utils.d.ts +12 -0
- package/dist/utils/upload-mode.utils.js +26 -0
- package/dist/utils/version-context.utils.d.ts +20 -0
- package/dist/utils/version-context.utils.js +71 -0
- package/models/dsym-commands.model.ts +2 -0
- package/models/proguard-commands.model.ts +2 -0
- package/models/react-native-commands.model.ts +2 -0
- package/models/source-maps-commands.model.ts +2 -0
- package/package.json +2 -2
- package/protofetch.lock +4 -4
- package/protofetch.toml +2 -2
- package/services/base/base.service.ts +7 -3
- package/utils/upload-mode.utils.ts +30 -0
- package/utils/version-context.utils.ts +95 -0
- package/proto-models/com/coralogix/blobset/v2/audit_log.ts +0 -84
- package/proto-models/com/coralogix/blobset/v2/blobset_query_service.ts +0 -36
- package/proto-models/com/coralogix/blobset/v2/blobset_service.ts +0 -209
- package/proto-models/com/coralogix/blobset/v2/dsym.ts +0 -400
- package/proto-models/com/coralogix/blobset/v2/entity_metadata.ts +0 -540
- package/proto-models/com/coralogix/blobset/v2/entity_type.ts +0 -56
- package/proto-models/com/coralogix/blobset/v2/s3_metadata.ts +0 -154
- package/proto-models/com/coralogix/blobset/v2/source_map.ts +0 -418
- package/proto-models/com/coralogix/rum/v2/analytics.ts +0 -924
- package/proto-models/com/coralogix/rum/v2/audit_log.ts +0 -84
- package/proto-models/com/coralogix/rum/v2/chunk.ts +0 -399
- package/proto-models/com/coralogix/rum/v2/file.ts +0 -159
- package/proto-models/com/coralogix/rum/v2/hide_errors.ts +0 -234
- package/proto-models/com/coralogix/rum/v2/release_entity_metadata.ts +0 -699
- package/proto-models/com/coralogix/rum/v2/release_entity_type.ts +0 -56
- package/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.ts +0 -605
- package/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.ts +0 -229
- package/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.ts +0 -1679
- package/proto-models/com/coralogix/rum/v2/rum_sdk_versions.ts +0 -279
- package/proto-models/com/coralogix/rum/v2/rum_service.ts +0 -2158
- package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +0 -16
- package/proto-models/com/coralogix/rum/v2/rum_settings.ts +0 -215
- package/proto-models/com/coralogix/rum/v2/rum_settings_service.ts +0 -283
- package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +0 -905
- package/proto-models/com/coralogix/rum/v2/saved_filter.ts +0 -307
- package/proto-models/com/coralogix/rum/v2/source_code_file_mapping.ts +0 -358
- package/proto-models/com/coralogix/rum/v2/source_map_release.ts +0 -301
- package/proto-models/com/coralogix/rum/v2/template.ts +0 -588
- package/proto-models/google/protobuf/descriptor.ts +0 -4921
- package/protos/com/coralogix/blobset/v2/audit_log.proto +0 -13
- package/protos/com/coralogix/blobset/v2/blobset_query_service.proto +0 -12
- package/protos/com/coralogix/blobset/v2/blobset_service.proto +0 -18
- package/protos/com/coralogix/blobset/v2/dsym.proto +0 -19
- package/protos/com/coralogix/blobset/v2/entity_metadata.proto +0 -35
- package/protos/com/coralogix/blobset/v2/entity_type.proto +0 -11
- package/protos/com/coralogix/blobset/v2/s3_metadata.proto +0 -14
- package/protos/com/coralogix/blobset/v2/source_map.proto +0 -30
- package/protos/com/coralogix/rum/v2/analytics.proto +0 -57
- package/protos/com/coralogix/rum/v2/audit_log.proto +0 -13
- package/protos/com/coralogix/rum/v2/chunk.proto +0 -24
- package/protos/com/coralogix/rum/v2/file.proto +0 -8
- package/protos/com/coralogix/rum/v2/hide_errors.proto +0 -19
- package/protos/com/coralogix/rum/v2/release_entity_metadata.proto +0 -44
- package/protos/com/coralogix/rum/v2/release_entity_type.proto +0 -11
- package/protos/com/coralogix/rum/v2/rum_hide_errors_service.proto +0 -42
- package/protos/com/coralogix/rum/v2/rum_react_native_source_map_service.proto +0 -19
- package/protos/com/coralogix/rum/v2/rum_saved_filters_service.proto +0 -117
- package/protos/com/coralogix/rum/v2/rum_sdk_versions.proto +0 -17
- package/protos/com/coralogix/rum/v2/rum_service.proto +0 -144
- package/protos/com/coralogix/rum/v2/rum_session_recording_service.proto +0 -4
- package/protos/com/coralogix/rum/v2/rum_settings.proto +0 -26
- package/protos/com/coralogix/rum/v2/rum_settings_service.proto +0 -23
- package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +0 -58
- package/protos/com/coralogix/rum/v2/saved_filter.proto +0 -28
- package/protos/com/coralogix/rum/v2/source_code_file_mapping.proto +0 -16
- package/protos/com/coralogix/rum/v2/source_map_release.proto +0 -18
- package/protos/com/coralogix/rum/v2/template.proto +0 -40
- package/protoset.bin +0 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
|
+
// versions:
|
|
4
|
+
// protoc-gen-ts_proto v1.181.1
|
|
5
|
+
// protoc v3.19.1
|
|
6
|
+
// source: com/coralogix/blobset/v2/case_file.proto
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.GetCaseFileResponse = exports.GetCaseFileRequest = exports.protobufPackage = void 0;
|
|
12
|
+
/* eslint-disable */
|
|
13
|
+
const minimal_1 = __importDefault(require("protobufjs/minimal"));
|
|
14
|
+
exports.protobufPackage = "com.coralogix.blobset.v2";
|
|
15
|
+
function createBaseGetCaseFileRequest() {
|
|
16
|
+
return { fileId: "" };
|
|
17
|
+
}
|
|
18
|
+
exports.GetCaseFileRequest = {
|
|
19
|
+
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
20
|
+
if (message.fileId !== "") {
|
|
21
|
+
writer.uint32(10).string(message.fileId);
|
|
22
|
+
}
|
|
23
|
+
return writer;
|
|
24
|
+
},
|
|
25
|
+
decode(input, length) {
|
|
26
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
27
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
28
|
+
const message = createBaseGetCaseFileRequest();
|
|
29
|
+
while (reader.pos < end) {
|
|
30
|
+
const tag = reader.uint32();
|
|
31
|
+
switch (tag >>> 3) {
|
|
32
|
+
case 1:
|
|
33
|
+
if (tag !== 10) {
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
message.fileId = reader.string();
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
reader.skipType(tag & 7);
|
|
43
|
+
}
|
|
44
|
+
return message;
|
|
45
|
+
},
|
|
46
|
+
fromJSON(object) {
|
|
47
|
+
return { fileId: isSet(object.fileId) ? globalThis.String(object.fileId) : "" };
|
|
48
|
+
},
|
|
49
|
+
toJSON(message) {
|
|
50
|
+
const obj = {};
|
|
51
|
+
if (message.fileId !== "") {
|
|
52
|
+
obj.fileId = message.fileId;
|
|
53
|
+
}
|
|
54
|
+
return obj;
|
|
55
|
+
},
|
|
56
|
+
create(base) {
|
|
57
|
+
return exports.GetCaseFileRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
58
|
+
},
|
|
59
|
+
fromPartial(object) {
|
|
60
|
+
var _a;
|
|
61
|
+
const message = createBaseGetCaseFileRequest();
|
|
62
|
+
message.fileId = (_a = object.fileId) !== null && _a !== void 0 ? _a : "";
|
|
63
|
+
return message;
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
function createBaseGetCaseFileResponse() {
|
|
67
|
+
return { data: new Uint8Array(0), fileName: "" };
|
|
68
|
+
}
|
|
69
|
+
exports.GetCaseFileResponse = {
|
|
70
|
+
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
71
|
+
if (message.data.length !== 0) {
|
|
72
|
+
writer.uint32(10).bytes(message.data);
|
|
73
|
+
}
|
|
74
|
+
if (message.fileName !== "") {
|
|
75
|
+
writer.uint32(18).string(message.fileName);
|
|
76
|
+
}
|
|
77
|
+
return writer;
|
|
78
|
+
},
|
|
79
|
+
decode(input, length) {
|
|
80
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
81
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
82
|
+
const message = createBaseGetCaseFileResponse();
|
|
83
|
+
while (reader.pos < end) {
|
|
84
|
+
const tag = reader.uint32();
|
|
85
|
+
switch (tag >>> 3) {
|
|
86
|
+
case 1:
|
|
87
|
+
if (tag !== 10) {
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
message.data = reader.bytes();
|
|
91
|
+
continue;
|
|
92
|
+
case 2:
|
|
93
|
+
if (tag !== 18) {
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
message.fileName = reader.string();
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
reader.skipType(tag & 7);
|
|
103
|
+
}
|
|
104
|
+
return message;
|
|
105
|
+
},
|
|
106
|
+
fromJSON(object) {
|
|
107
|
+
return {
|
|
108
|
+
data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(0),
|
|
109
|
+
fileName: isSet(object.fileName) ? globalThis.String(object.fileName) : "",
|
|
110
|
+
};
|
|
111
|
+
},
|
|
112
|
+
toJSON(message) {
|
|
113
|
+
const obj = {};
|
|
114
|
+
if (message.data.length !== 0) {
|
|
115
|
+
obj.data = base64FromBytes(message.data);
|
|
116
|
+
}
|
|
117
|
+
if (message.fileName !== "") {
|
|
118
|
+
obj.fileName = message.fileName;
|
|
119
|
+
}
|
|
120
|
+
return obj;
|
|
121
|
+
},
|
|
122
|
+
create(base) {
|
|
123
|
+
return exports.GetCaseFileResponse.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
124
|
+
},
|
|
125
|
+
fromPartial(object) {
|
|
126
|
+
var _a, _b;
|
|
127
|
+
const message = createBaseGetCaseFileResponse();
|
|
128
|
+
message.data = (_a = object.data) !== null && _a !== void 0 ? _a : new Uint8Array(0);
|
|
129
|
+
message.fileName = (_b = object.fileName) !== null && _b !== void 0 ? _b : "";
|
|
130
|
+
return message;
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
function bytesFromBase64(b64) {
|
|
134
|
+
if (globalThis.Buffer) {
|
|
135
|
+
return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const bin = globalThis.atob(b64);
|
|
139
|
+
const arr = new Uint8Array(bin.length);
|
|
140
|
+
for (let i = 0; i < bin.length; ++i) {
|
|
141
|
+
arr[i] = bin.charCodeAt(i);
|
|
142
|
+
}
|
|
143
|
+
return arr;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function base64FromBytes(arr) {
|
|
147
|
+
if (globalThis.Buffer) {
|
|
148
|
+
return globalThis.Buffer.from(arr).toString("base64");
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
const bin = [];
|
|
152
|
+
arr.forEach((byte) => {
|
|
153
|
+
bin.push(globalThis.String.fromCharCode(byte));
|
|
154
|
+
});
|
|
155
|
+
return globalThis.btoa(bin.join(""));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function isSet(value) {
|
|
159
|
+
return value !== null && value !== undefined;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZV9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9jYXNlX2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNEQUFzRDtBQUN0RCxZQUFZO0FBQ1osa0NBQWtDO0FBQ2xDLGlDQUFpQztBQUNqQyxtREFBbUQ7Ozs7OztBQUVuRCxvQkFBb0I7QUFDcEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLDBCQUEwQixDQUFDO0FBVzFELFNBQVMsNEJBQTRCO0lBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUVZLFFBQUEsa0JBQWtCLEdBQUc7SUFDaEMsTUFBTSxDQUFDLE9BQTJCLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzFFLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw0QkFBNEIsRUFBRSxDQUFD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QUFNLENBQUMsQ0FBQztRQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sR0FBRyxDQUFDO0tBQ1o7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsR0FBZTtJQUN0QyxJQUFLLFVBQWtCLENBQUMsTUFBTSxFQUFFO1FBQzlCLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3ZEO1NBQU07UUFDTCxNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7UUFDekIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDdEM7QUFDSCxDQUFDO0FBV0QsU0FBUyxLQUFLLENBQUMsS0FBVTtJQUN2QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29kZSBnZW5lcmF0ZWQgYnkgcHJvdG9jLWdlbi10c19wcm90by4gRE8gTk9UIEVESVQuXG4vLyB2ZXJzaW9uczpcbi8vICAgcHJvdG9jLWdlbi10c19wcm90byAgdjEuMTgxLjFcbi8vICAgcHJvdG9jICAgICAgICAgICAgICAgdjMuMTkuMVxuLy8gc291cmNlOiBjb20vY29yYWxvZ2l4L2Jsb2JzZXQvdjIvY2FzZV9maWxlLnByb3RvXG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgX20wIGZyb20gXCJwcm90b2J1ZmpzL21pbmltYWxcIjtcblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ibG9ic2V0LnYyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q2FzZUZpbGVSZXF1ZXN0IHtcbiAgZmlsZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q2FzZUZpbGVSZXNwb25zZSB7XG4gIGRhdGE6IFVpbnQ4QXJyYXk7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VHZXRDYXNlRmlsZVJlcXVlc3QoKTogR2V0Q2FzZUZpbGVSZXF1ZXN0IHtcbiAgcmV0dXJuIHsgZmlsZUlkOiBcIlwiIH07XG59XG5cbmV4cG9ydCBjb25zdCBHZXRDYXNlRmlsZVJlcXVlc3QgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBHZXRDYXNlRmlsZVJlcXVlc3QsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5maWxlSWQgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmZpbGVJZCk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogR2V0Q2FzZUZpbGVSZXF1ZXN0IHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUdldENhc2VGaWxlUmVxdWVzdCgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZmlsZUlkID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogR2V0Q2FzZUZpbGVSZXF1ZXN0IHtcbiAgICByZXR1cm4geyBmaWxlSWQ6IGlzU2V0KG9iamVjdC5maWxlSWQpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmZpbGVJZCkgOiBcIlwiIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEdldENhc2VGaWxlUmVxdWVzdCk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuZmlsZUlkICE9PSBcIlwiKSB7XG4gICAgICBvYmouZmlsZUlkID0gbWVzc2FnZS5maWxlSWQ7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxHZXRDYXNlRmlsZVJlcXVlc3Q+KTogR2V0Q2FzZUZpbGVSZXF1ZXN0IHtcbiAgICByZXR1cm4gR2V0Q2FzZUZpbGVSZXF1ZXN0LmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPEdldENhc2VGaWxlUmVxdWVzdD4pOiBHZXRDYXNlRmlsZVJlcXVlc3Qge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlR2V0Q2FzZUZpbGVSZXF1ZXN0KCk7XG4gICAgbWVzc2FnZS5maWxlSWQgPSBvYmplY3QuZmlsZUlkID8/IFwiXCI7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlR2V0Q2FzZUZpbGVSZXNwb25zZSgpOiBHZXRDYXNlRmlsZVJlc3BvbnNlIHtcbiAgcmV0dXJuIHsgZGF0YTogbmV3IFVpbnQ4QXJyYXkoMCksIGZpbGVOYW1lOiBcIlwiIH07XG59XG5cbmV4cG9ydCBjb25zdCBHZXRDYXNlRmlsZVJlc3BvbnNlID0ge1xuICBlbmNvZGUobWVzc2FnZTogR2V0Q2FzZUZpbGVSZXNwb25zZSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmRhdGEubGVuZ3RoICE9PSAwKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5ieXRlcyhtZXNzYWdlLmRhdGEpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5maWxlTmFtZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UuZmlsZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IEdldENhc2VGaWxlUmVzcG9uc2Uge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlR2V0Q2FzZUZpbGVSZXNwb25zZSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZGF0YSA9IHJlYWRlci5ieXRlcygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuZmlsZU5hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBHZXRDYXNlRmlsZVJlc3BvbnNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogaXNTZXQob2JqZWN0LmRhdGEpID8gYnl0ZXNGcm9tQmFzZTY0KG9iamVjdC5kYXRhKSA6IG5ldyBVaW50OEFycmF5KDApLFxuICAgICAgZmlsZU5hbWU6IGlzU2V0KG9iamVjdC5maWxlTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuZmlsZU5hbWUpIDogXCJcIixcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBHZXRDYXNlRmlsZVJlc3BvbnNlKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5kYXRhLmxlbmd0aCAhPT0gMCkge1xuICAgICAgb2JqLmRhdGEgPSBiYXNlNjRGcm9tQnl0ZXMobWVzc2FnZS5kYXRhKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuZmlsZU5hbWUgIT09IFwiXCIpIHtcbiAgICAgIG9iai5maWxlTmFtZSA9IG1lc3NhZ2UuZmlsZU5hbWU7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxHZXRDYXNlRmlsZVJlc3BvbnNlPik6IEdldENhc2VGaWxlUmVzcG9uc2Uge1xuICAgIHJldHVybiBHZXRDYXNlRmlsZVJlc3BvbnNlLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPEdldENhc2VGaWxlUmVzcG9uc2U+KTogR2V0Q2FzZUZpbGVSZXNwb25zZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRDYXNlRmlsZVJlc3BvbnNlKCk7XG4gICAgbWVzc2FnZS5kYXRhID0gb2JqZWN0LmRhdGEgPz8gbmV3IFVpbnQ4QXJyYXkoMCk7XG4gICAgbWVzc2FnZS5maWxlTmFtZSA9IG9iamVjdC5maWxlTmFtZSA/PyBcIlwiO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gYnl0ZXNGcm9tQmFzZTY0KGI2NDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGlmICgoZ2xvYmFsVGhpcyBhcyBhbnkpLkJ1ZmZlcikge1xuICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oZ2xvYmFsVGhpcy5CdWZmZXIuZnJvbShiNjQsIFwiYmFzZTY0XCIpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBiaW4gPSBnbG9iYWxUaGlzLmF0b2IoYjY0KTtcbiAgICBjb25zdCBhcnIgPSBuZXcgVWludDhBcnJheShiaW4ubGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJpbi5sZW5ndGg7ICsraSkge1xuICAgICAgYXJyW2ldID0gYmluLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZTY0RnJvbUJ5dGVzKGFycjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGlmICgoZ2xvYmFsVGhpcyBhcyBhbnkpLkJ1ZmZlcikge1xuICAgIHJldHVybiBnbG9iYWxUaGlzLkJ1ZmZlci5mcm9tKGFycikudG9TdHJpbmcoXCJiYXNlNjRcIik7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYmluOiBzdHJpbmdbXSA9IFtdO1xuICAgIGFyci5mb3JFYWNoKChieXRlKSA9PiB7XG4gICAgICBiaW4ucHVzaChnbG9iYWxUaGlzLlN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZSkpO1xuICAgIH0pO1xuICAgIHJldHVybiBnbG9iYWxUaGlzLmJ0b2EoYmluLmpvaW4oXCJcIikpO1xuICB9XG59XG5cbnR5cGUgQnVpbHRpbiA9IERhdGUgfCBGdW5jdGlvbiB8IFVpbnQ4QXJyYXkgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluID8gVFxuICA6IFQgZXh0ZW5kcyBnbG9iYWxUaGlzLkFycmF5PGluZmVyIFU+ID8gZ2xvYmFsVGhpcy5BcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/IFJlYWRvbmx5QXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIHsgJGNhc2U6IHN0cmluZyB9ID8geyBbSyBpbiBrZXlvZiBPbWl0PFQsIFwiJGNhc2VcIj5dPzogRGVlcFBhcnRpYWw8VFtLXT4gfSAmIHsgJGNhc2U6IFRbXCIkY2FzZVwiXSB9XG4gIDogVCBleHRlbmRzIHt9ID8geyBbSyBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbS10+IH1cbiAgOiBQYXJ0aWFsPFQ+O1xuXG5mdW5jdGlvbiBpc1NldCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -10,10 +10,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.GetMappedIosStackTraceResponse_MappedAddressesEntry = exports.GetMappedIosStackTraceResponse = exports.GetMappedIosStackTraceRequest = exports.protobufPackage = void 0;
|
|
12
12
|
/* eslint-disable */
|
|
13
|
+
const long_1 = __importDefault(require("long"));
|
|
13
14
|
const minimal_1 = __importDefault(require("protobufjs/minimal"));
|
|
14
15
|
exports.protobufPackage = "com.coralogix.blobset.v2";
|
|
15
16
|
function createBaseGetMappedIosStackTraceRequest() {
|
|
16
|
-
return { application: "", releaseId: "", baseAddress: "", addresses: [] };
|
|
17
|
+
return { application: "", releaseId: "", baseAddress: "", addresses: [], numberOfSurroundingLines: 0 };
|
|
17
18
|
}
|
|
18
19
|
exports.GetMappedIosStackTraceRequest = {
|
|
19
20
|
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
@@ -29,6 +30,9 @@ exports.GetMappedIosStackTraceRequest = {
|
|
|
29
30
|
for (const v of message.addresses) {
|
|
30
31
|
writer.uint32(34).string(v);
|
|
31
32
|
}
|
|
33
|
+
if (message.numberOfSurroundingLines !== 0) {
|
|
34
|
+
writer.uint32(40).int64(message.numberOfSurroundingLines);
|
|
35
|
+
}
|
|
32
36
|
return writer;
|
|
33
37
|
},
|
|
34
38
|
decode(input, length) {
|
|
@@ -62,6 +66,12 @@ exports.GetMappedIosStackTraceRequest = {
|
|
|
62
66
|
}
|
|
63
67
|
message.addresses.push(reader.string());
|
|
64
68
|
continue;
|
|
69
|
+
case 5:
|
|
70
|
+
if (tag !== 40) {
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
message.numberOfSurroundingLines = longToNumber(reader.int64());
|
|
74
|
+
continue;
|
|
65
75
|
}
|
|
66
76
|
if ((tag & 7) === 4 || tag === 0) {
|
|
67
77
|
break;
|
|
@@ -78,6 +88,9 @@ exports.GetMappedIosStackTraceRequest = {
|
|
|
78
88
|
addresses: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.addresses)
|
|
79
89
|
? object.addresses.map((e) => globalThis.String(e))
|
|
80
90
|
: [],
|
|
91
|
+
numberOfSurroundingLines: isSet(object.numberOfSurroundingLines)
|
|
92
|
+
? globalThis.Number(object.numberOfSurroundingLines)
|
|
93
|
+
: 0,
|
|
81
94
|
};
|
|
82
95
|
},
|
|
83
96
|
toJSON(message) {
|
|
@@ -95,18 +108,22 @@ exports.GetMappedIosStackTraceRequest = {
|
|
|
95
108
|
if ((_a = message.addresses) === null || _a === void 0 ? void 0 : _a.length) {
|
|
96
109
|
obj.addresses = message.addresses;
|
|
97
110
|
}
|
|
111
|
+
if (message.numberOfSurroundingLines !== 0) {
|
|
112
|
+
obj.numberOfSurroundingLines = Math.round(message.numberOfSurroundingLines);
|
|
113
|
+
}
|
|
98
114
|
return obj;
|
|
99
115
|
},
|
|
100
116
|
create(base) {
|
|
101
117
|
return exports.GetMappedIosStackTraceRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
102
118
|
},
|
|
103
119
|
fromPartial(object) {
|
|
104
|
-
var _a, _b, _c, _d;
|
|
120
|
+
var _a, _b, _c, _d, _e;
|
|
105
121
|
const message = createBaseGetMappedIosStackTraceRequest();
|
|
106
122
|
message.application = (_a = object.application) !== null && _a !== void 0 ? _a : "";
|
|
107
123
|
message.releaseId = (_b = object.releaseId) !== null && _b !== void 0 ? _b : "";
|
|
108
124
|
message.baseAddress = (_c = object.baseAddress) !== null && _c !== void 0 ? _c : "";
|
|
109
125
|
message.addresses = ((_d = object.addresses) === null || _d === void 0 ? void 0 : _d.map((e) => e)) || [];
|
|
126
|
+
message.numberOfSurroundingLines = (_e = object.numberOfSurroundingLines) !== null && _e !== void 0 ? _e : 0;
|
|
110
127
|
return message;
|
|
111
128
|
},
|
|
112
129
|
};
|
|
@@ -327,10 +344,23 @@ exports.GetMappedIosStackTraceResponse_MappedAddressesEntry = {
|
|
|
327
344
|
return message;
|
|
328
345
|
},
|
|
329
346
|
};
|
|
347
|
+
function longToNumber(long) {
|
|
348
|
+
if (long.gt(globalThis.Number.MAX_SAFE_INTEGER)) {
|
|
349
|
+
throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
|
|
350
|
+
}
|
|
351
|
+
if (long.lt(globalThis.Number.MIN_SAFE_INTEGER)) {
|
|
352
|
+
throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
|
|
353
|
+
}
|
|
354
|
+
return long.toNumber();
|
|
355
|
+
}
|
|
356
|
+
if (minimal_1.default.util.Long !== long_1.default) {
|
|
357
|
+
minimal_1.default.util.Long = long_1.default;
|
|
358
|
+
minimal_1.default.configure();
|
|
359
|
+
}
|
|
330
360
|
function isObject(value) {
|
|
331
361
|
return typeof value === "object" && value !== null;
|
|
332
362
|
}
|
|
333
363
|
function isSet(value) {
|
|
334
364
|
return value !== null && value !== undefined;
|
|
335
365
|
}
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN5bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L2Jsb2JzZXQvdjIvZHN5bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0RBQXNEO0FBQ3RELFlBQVk7QUFDWixrQ0FBa0M7QUFDbEMsaUNBQWlDO0FBQ2pDLDhDQUE4Qzs7Ozs7O0FBRTlDLG9CQUFvQjtBQUNwQixpRUFBcUM7QUFFeEIsUUFBQSxlQUFlLEdBQUcsMEJBQTBCLENBQUM7QUF3QjFELFNBQVMsdUNBQXVDO0lBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDNUUsQ0FBQztBQUVZLFFBQUEsNkJBQTZCLEdBQUc7SUFDM0MsTUFBTSxDQUFDLE9BQXNDLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3JGLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxFQUFFLEVBQUU7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQztRQUNELEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFFLENBQUMsQ0FBQztTQUM5QjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxpQkFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsdUNBQXVDLEVBQUUsQ0FBQztRQUMxRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3BDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN0QyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDeEMsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0UsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25GLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsU0FBUyxDQUFDO2dCQUNwRCxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxFQUFFO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBc0M7O1FBQzNDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFO1lBQzlCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztTQUN2QztRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsR0FBRyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRTtZQUM5QixHQUFHLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7U0FDdkM7UUFDRCxJQUFJLE1BQUEsT0FBTyxDQUFDLFNBQVMsMENBQUUsTUFBTSxFQUFFO1lBQzdCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUNuQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFpRDtRQUN0RCxPQUFPLHFDQUE2QixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE1BQWtEOztRQUM1RCxNQUFNLE9BQU8sR0FBRyx1Q0FBdUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBQSxNQUFNLENBQUMsV0FBVyxtQ0FBSSxFQUFFLENBQUM7UUFDL0MsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFBLE1BQU0sQ0FBQyxTQUFTLG1DQUFJLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQUEsTUFBTSxDQUFDLFdBQVcsbUNBQUksRUFBRSxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxTQUFTLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUksRUFBRSxDQUFDO1FBQzFELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyx3Q0FBd0M7SUFDL0MsT0FBTztRQUNMLFdBQVcsRUFBRSxFQUFFO1FBQ2YsU0FBUyxFQUFFLEVBQUU7UUFDYixlQUFlLEVBQUUsRUFBRTtRQUNuQixVQUFVLEVBQUUsU0FBUztRQUNyQixRQUFRLEVBQUUsU0FBUztRQUNuQixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0FBQ0osQ0FBQztBQUVZLFFBQUEsOEJBQThCLEdBQUc7SUFDNUMsTUFBTSxDQUFDLE9BQXVDLEVBQUUsU0FBcUIsaUJBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3RGLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxFQUFFLEVBQUU7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLEVBQUUsRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDN0M7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQy9ELDJEQUFtRCxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDN0csTUFBTSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxpQkFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsd0NBQXdDLEVBQUUsQ0FBQztRQUMzRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdEMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3BDLFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE1BQU0sTUFBTSxHQUFHLDJEQUFtRCxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ25HLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7d0JBQzlCLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7cUJBQ3BEO29CQUNELFNBQVM7Z0JBQ1gsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNyQyxTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDbkMsU0FBUztnQkFDWCxLQUFLLENBQUM7b0JBQ0osSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO3dCQUNkLE1BQU07cUJBQ1A7b0JBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLFNBQVM7YUFDWjtZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkYsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdFLGVBQWUsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBNEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtvQkFDL0YsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDekIsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDTixDQUFDLENBQUMsRUFBRTtZQUNOLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUN2RixRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDakYsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXVDO1FBQzVDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFO1lBQzlCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztTQUN2QztRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsR0FBRyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQzNCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3hELElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3RCLEdBQUcsQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO2dCQUN6QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDekIsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMsR0FBRyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUNsQyxHQUFHLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDakM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzlCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztTQUN6QjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFrRDtRQUN2RCxPQUFPLHNDQUE4QixDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsV0FBVyxDQUFDLE1BQW1EOztRQUM3RCxNQUFNLE9BQU8sR0FBRyx3Q0FBd0MsRUFBRSxDQUFDO1FBQzNELE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBQSxNQUFNLENBQUMsV0FBVyxtQ0FBSSxFQUFFLENBQUM7UUFDL0MsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFBLE1BQU0sQ0FBQyxTQUFTLG1DQUFJLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBQSxNQUFNLENBQUMsZUFBZSxtQ0FBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQzNFLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO2dCQUN2QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO1FBQ0YsT0FBTyxDQUFDLFVBQVUsR0FBRyxNQUFBLE1BQU0sQ0FBQyxVQUFVLG1DQUFJLFNBQVMsQ0FBQztRQUNwRCxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQUEsTUFBTSxDQUFDLFFBQVEsbUNBQUksU0FBUyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBQSxNQUFNLENBQUMsSUFBSSxtQ0FBSSxTQUFTLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDZEQUE2RDtJQUNwRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDaEMsQ0FBQztBQUVZLFFBQUEsbURBQW1ELEdBQUc7SUFDakUsTUFBTSxDQUNKLE9BQTRELEVBQzVELFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEtBQUssRUFBRSxFQUFFO1lBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QixFQUFFLE1BQWU7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLGlCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyw2REFBNkQsRUFBRSxDQUFDO1FBQ2hGLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDakIsS0FBSyxDQUFDO29CQUNKLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxNQUFNO3FCQUNQO29CQUVELE9BQU8sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM5QixTQUFTO2dCQUNYLEtBQUssQ0FBQztvQkFDSixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsTUFBTTtxQkFDUDtvQkFFRCxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEMsU0FBUzthQUNaO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzRCxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBNEQ7UUFDakUsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUU7WUFDdEIsR0FBRyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN4QixHQUFHLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDM0I7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQ0osSUFBdUU7UUFFdkUsT0FBTywyREFBbUQsQ0FBQyxXQUFXLENBQUMsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUNELFdBQVcsQ0FDVCxNQUF3RTs7UUFFeEUsTUFBTSxPQUFPLEdBQUcsNkRBQTZELEVBQUUsQ0FBQztRQUNoRixPQUFPLENBQUMsR0FBRyxHQUFHLE1BQUEsTUFBTSxDQUFDLEdBQUcsbUNBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBQSxNQUFNLENBQUMsS0FBSyxtQ0FBSSxFQUFFLENBQUM7UUFDbkMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFXRixTQUFTLFFBQVEsQ0FBQyxLQUFVO0lBQzFCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDckQsQ0FBQztBQUVELFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHByb3RvYy1nZW4tdHNfcHJvdG8uIERPIE5PVCBFRElULlxuLy8gdmVyc2lvbnM6XG4vLyAgIHByb3RvYy1nZW4tdHNfcHJvdG8gIHYxLjE4MS4xXG4vLyAgIHByb3RvYyAgICAgICAgICAgICAgIHYzLjE5LjFcbi8vIHNvdXJjZTogY29tL2NvcmFsb2dpeC9ibG9ic2V0L3YyL2RzeW0ucHJvdG9cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCBfbTAgZnJvbSBcInByb3RvYnVmanMvbWluaW1hbFwiO1xuXG5leHBvcnQgY29uc3QgcHJvdG9idWZQYWNrYWdlID0gXCJjb20uY29yYWxvZ2l4LmJsb2JzZXQudjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCB7XG4gIGFwcGxpY2F0aW9uOiBzdHJpbmc7XG4gIHJlbGVhc2VJZDogc3RyaW5nO1xuICBiYXNlQWRkcmVzczogc3RyaW5nO1xuICBhZGRyZXNzZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSB7XG4gIGFwcGxpY2F0aW9uOiBzdHJpbmc7XG4gIHJlbGVhc2VJZDogc3RyaW5nO1xuICAvKiogZnVuY3Rpb25fYWRkcmVzc19jYWxsZWQgLT4gbWFwcGVkX2FkZHJlc3MgKi9cbiAgbWFwcGVkQWRkcmVzc2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBjb21taXRIYXNoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZXBvTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdXNlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQmFzZUdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0KCk6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0IHtcbiAgcmV0dXJuIHsgYXBwbGljYXRpb246IFwiXCIsIHJlbGVhc2VJZDogXCJcIiwgYmFzZUFkZHJlc3M6IFwiXCIsIGFkZHJlc3NlczogW10gfTtcbn1cblxuZXhwb3J0IGNvbnN0IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0ID0ge1xuICBlbmNvZGUobWVzc2FnZTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlcXVlc3QsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTgpLnN0cmluZyhtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmJhc2VBZGRyZXNzICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDI2KS5zdHJpbmcobWVzc2FnZS5iYXNlQWRkcmVzcyk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgdiBvZiBtZXNzYWdlLmFkZHJlc3Nlcykge1xuICAgICAgd3JpdGVyLnVpbnQzMigzNCkuc3RyaW5nKHYhKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZWxlYXNlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5iYXNlQWRkcmVzcyA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGlmICh0YWcgIT09IDM0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmFkZHJlc3Nlcy5wdXNoKHJlYWRlci5zdHJpbmcoKSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBpc1NldChvYmplY3QuYXBwbGljYXRpb24pID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlbGVhc2VJZCkgOiBcIlwiLFxuICAgICAgYmFzZUFkZHJlc3M6IGlzU2V0KG9iamVjdC5iYXNlQWRkcmVzcykgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuYmFzZUFkZHJlc3MpIDogXCJcIixcbiAgICAgIGFkZHJlc3NlczogZ2xvYmFsVGhpcy5BcnJheS5pc0FycmF5KG9iamVjdD8uYWRkcmVzc2VzKVxuICAgICAgICA/IG9iamVjdC5hZGRyZXNzZXMubWFwKChlOiBhbnkpID0+IGdsb2JhbFRoaXMuU3RyaW5nKGUpKVxuICAgICAgICA6IFtdLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0KTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgb2JqLmFwcGxpY2F0aW9uID0gbWVzc2FnZS5hcHBsaWNhdGlvbjtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICBvYmoucmVsZWFzZUlkID0gbWVzc2FnZS5yZWxlYXNlSWQ7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmJhc2VBZGRyZXNzICE9PSBcIlwiKSB7XG4gICAgICBvYmouYmFzZUFkZHJlc3MgPSBtZXNzYWdlLmJhc2VBZGRyZXNzO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5hZGRyZXNzZXM/Lmxlbmd0aCkge1xuICAgICAgb2JqLmFkZHJlc3NlcyA9IG1lc3NhZ2UuYWRkcmVzc2VzO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8R2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlcXVlc3Q+KTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlcXVlc3Qge1xuICAgIHJldHVybiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdC5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdD4pOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmJhc2VBZGRyZXNzID0gb2JqZWN0LmJhc2VBZGRyZXNzID8/IFwiXCI7XG4gICAgbWVzc2FnZS5hZGRyZXNzZXMgPSBvYmplY3QuYWRkcmVzc2VzPy5tYXAoKGUpID0+IGUpIHx8IFtdO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZUdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSgpOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2Uge1xuICByZXR1cm4ge1xuICAgIGFwcGxpY2F0aW9uOiBcIlwiLFxuICAgIHJlbGVhc2VJZDogXCJcIixcbiAgICBtYXBwZWRBZGRyZXNzZXM6IHt9LFxuICAgIGNvbW1pdEhhc2g6IHVuZGVmaW5lZCxcbiAgICByZXBvTmFtZTogdW5kZWZpbmVkLFxuICAgIHVzZXI6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5hcHBsaWNhdGlvbik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UucmVsZWFzZUlkKTtcbiAgICB9XG4gICAgT2JqZWN0LmVudHJpZXMobWVzc2FnZS5tYXBwZWRBZGRyZXNzZXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5LmVuY29kZSh7IGtleToga2V5IGFzIGFueSwgdmFsdWUgfSwgd3JpdGVyLnVpbnQzMigyNikuZm9yaygpKVxuICAgICAgICAubGRlbGltKCk7XG4gICAgfSk7XG4gICAgaWYgKG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDM0KS5zdHJpbmcobWVzc2FnZS5jb21taXRIYXNoKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig0Mikuc3RyaW5nKG1lc3NhZ2UucmVwb05hbWUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS51c2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNTApLnN0cmluZyhtZXNzYWdlLnVzZXIpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2UoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGVudHJ5MyA9IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZV9NYXBwZWRBZGRyZXNzZXNFbnRyeS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpO1xuICAgICAgICAgIGlmIChlbnRyeTMudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbWVzc2FnZS5tYXBwZWRBZGRyZXNzZXNbZW50cnkzLmtleV0gPSBlbnRyeTMudmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMzQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQyKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlcG9OYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gNTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UudXNlciA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBpc1NldChvYmplY3QuYXBwbGljYXRpb24pID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlbGVhc2VJZCkgOiBcIlwiLFxuICAgICAgbWFwcGVkQWRkcmVzc2VzOiBpc09iamVjdChvYmplY3QubWFwcGVkQWRkcmVzc2VzKVxuICAgICAgICA/IE9iamVjdC5lbnRyaWVzKG9iamVjdC5tYXBwZWRBZGRyZXNzZXMpLnJlZHVjZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9PigoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBhY2Nba2V5XSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgICAgIDoge30sXG4gICAgICBjb21taXRIYXNoOiBpc1NldChvYmplY3QuY29tbWl0SGFzaCkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuY29tbWl0SGFzaCkgOiB1bmRlZmluZWQsXG4gICAgICByZXBvTmFtZTogaXNTZXQob2JqZWN0LnJlcG9OYW1lKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5yZXBvTmFtZSkgOiB1bmRlZmluZWQsXG4gICAgICB1c2VyOiBpc1NldChvYmplY3QudXNlcikgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QudXNlcikgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgb2JqLmFwcGxpY2F0aW9uID0gbWVzc2FnZS5hcHBsaWNhdGlvbjtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICBvYmoucmVsZWFzZUlkID0gbWVzc2FnZS5yZWxlYXNlSWQ7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm1hcHBlZEFkZHJlc3Nlcykge1xuICAgICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKG1lc3NhZ2UubWFwcGVkQWRkcmVzc2VzKTtcbiAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgb2JqLm1hcHBlZEFkZHJlc3NlcyA9IHt9O1xuICAgICAgICBlbnRyaWVzLmZvckVhY2goKFtrLCB2XSkgPT4ge1xuICAgICAgICAgIG9iai5tYXBwZWRBZGRyZXNzZXNba10gPSB2O1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmouY29tbWl0SGFzaCA9IG1lc3NhZ2UuY29tbWl0SGFzaDtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLnJlcG9OYW1lID0gbWVzc2FnZS5yZXBvTmFtZTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UudXNlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmoudXNlciA9IG1lc3NhZ2UudXNlcjtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZT4pOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2Uge1xuICAgIHJldHVybiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2UuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8R2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlPik6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2UoKTtcbiAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gb2JqZWN0LmFwcGxpY2F0aW9uID8/IFwiXCI7XG4gICAgbWVzc2FnZS5yZWxlYXNlSWQgPSBvYmplY3QucmVsZWFzZUlkID8/IFwiXCI7XG4gICAgbWVzc2FnZS5tYXBwZWRBZGRyZXNzZXMgPSBPYmplY3QuZW50cmllcyhvYmplY3QubWFwcGVkQWRkcmVzc2VzID8/IHt9KS5yZWR1Y2U8eyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfT4oXG4gICAgICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY2Nba2V5XSA9IGdsb2JhbFRoaXMuU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9LFxuICAgICk7XG4gICAgbWVzc2FnZS5jb21taXRIYXNoID0gb2JqZWN0LmNvbW1pdEhhc2ggPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UucmVwb05hbWUgPSBvYmplY3QucmVwb05hbWUgPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UudXNlciA9IG9iamVjdC51c2VyID8/IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkoKTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5IHtcbiAgcmV0dXJuIHsga2V5OiBcIlwiLCB2YWx1ZTogXCJcIiB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5ID0ge1xuICBlbmNvZGUoXG4gICAgbWVzc2FnZTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5LFxuICAgIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCksXG4gICk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmtleSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2Uua2V5KTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UudmFsdWUgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTgpLnN0cmluZyhtZXNzYWdlLnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5KCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5rZXkgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS52YWx1ZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZV9NYXBwZWRBZGRyZXNzZXNFbnRyeSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogaXNTZXQob2JqZWN0LmtleSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3Qua2V5KSA6IFwiXCIsXG4gICAgICB2YWx1ZTogaXNTZXQob2JqZWN0LnZhbHVlKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC52YWx1ZSkgOiBcIlwiLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZV9NYXBwZWRBZGRyZXNzZXNFbnRyeSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2Uua2V5ICE9PSBcIlwiKSB7XG4gICAgICBvYmoua2V5ID0gbWVzc2FnZS5rZXk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnZhbHVlICE9PSBcIlwiKSB7XG4gICAgICBvYmoudmFsdWUgPSBtZXNzYWdlLnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShcbiAgICBiYXNlPzogRGVlcFBhcnRpYWw8R2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5PixcbiAgKTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5IHtcbiAgICByZXR1cm4gR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5LmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChcbiAgICBvYmplY3Q6IERlZXBQYXJ0aWFsPEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZV9NYXBwZWRBZGRyZXNzZXNFbnRyeT4sXG4gICk6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZV9NYXBwZWRBZGRyZXNzZXNFbnRyeSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkoKTtcbiAgICBtZXNzYWdlLmtleSA9IG9iamVjdC5rZXkgPz8gXCJcIjtcbiAgICBtZXNzYWdlLnZhbHVlID0gb2JqZWN0LnZhbHVlID8/IFwiXCI7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG50eXBlIEJ1aWx0aW4gPSBEYXRlIHwgRnVuY3Rpb24gfCBVaW50OEFycmF5IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgQnVpbHRpbiA/IFRcbiAgOiBUIGV4dGVuZHMgZ2xvYmFsVGhpcy5BcnJheTxpbmZlciBVPiA/IGdsb2JhbFRoaXMuQXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBSZWFkb25seUFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyB7ICRjYXNlOiBzdHJpbmcgfSA/IHsgW0sgaW4ga2V5b2YgT21pdDxULCBcIiRjYXNlXCI+XT86IERlZXBQYXJ0aWFsPFRbS10+IH0gJiB7ICRjYXNlOiBUW1wiJGNhc2VcIl0gfVxuICA6IFQgZXh0ZW5kcyB7fSA/IHsgW0sgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW0tdPiB9XG4gIDogUGFydGlhbDxUPjtcblxuZnVuY3Rpb24gaXNPYmplY3QodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsO1xufVxuXG5mdW5jdGlvbiBpc1NldCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
|
|
366
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHN5bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L2Jsb2JzZXQvdjIvZHN5bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0RBQXNEO0FBQ3RELFlBQVk7QUFDWixrQ0FBa0M7QUFDbEMsaUNBQWlDO0FBQ2pDLDhDQUE4Qzs7Ozs7O0FBRTlDLG9CQUFvQjtBQUNwQixnREFBd0I7QUFDeEIsaUVBQXFDO0FBRXhCLFFBQUEsZUFBZSxHQUFHLDBCQUEwQixDQUFDO0FBeUIxRCxTQUFTLHVDQUF1QztJQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUN6RyxDQUFDO0FBRVksUUFBQSw2QkFBNkIsR0FBRztJQUMzQyxNQUFNLENBQUMsT0FBc0MsRUFBRSxTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDckYsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxFQUFFLEVBQUU7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsS0FB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LEdBQUcsNkRBQTZELEVBQUUsQ0FBQztRQUNoRixPQUFPLENBQUMsR0FBRyxHQUFHLE1BQUEsTUFBTSxDQUFDLEdBQUcsbUNBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBQSxNQUFNLENBQUMsS0FBSyxtQ0FBSSxFQUFFLENBQUM7UUFDbkMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFXRixTQUFTLFlBQVksQ0FBQyxJQUFVO0lBQzlCLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDL0MsTUFBTSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztLQUM1RTtJQUNELElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDL0MsTUFBTSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztLQUM3RTtJQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3pCLENBQUM7QUFFRCxJQUFJLGlCQUFHLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxjQUFJLEVBQUU7SUFDMUIsaUJBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQVcsQ0FBQztJQUM1QixpQkFBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0NBQ2pCO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBVTtJQUMxQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDO0FBQ3JELENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxLQUFVO0lBQ3ZCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb2RlIGdlbmVyYXRlZCBieSBwcm90b2MtZ2VuLXRzX3Byb3RvLiBETyBOT1QgRURJVC5cbi8vIHZlcnNpb25zOlxuLy8gICBwcm90b2MtZ2VuLXRzX3Byb3RvICB2MS4xODEuMVxuLy8gICBwcm90b2MgICAgICAgICAgICAgICB2My4xOS4xXG4vLyBzb3VyY2U6IGNvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9kc3ltLnByb3RvXG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgTG9uZyBmcm9tIFwibG9uZ1wiO1xuaW1wb3J0IF9tMCBmcm9tIFwicHJvdG9idWZqcy9taW5pbWFsXCI7XG5cbmV4cG9ydCBjb25zdCBwcm90b2J1ZlBhY2thZ2UgPSBcImNvbS5jb3JhbG9naXguYmxvYnNldC52MlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0IHtcbiAgYXBwbGljYXRpb246IHN0cmluZztcbiAgcmVsZWFzZUlkOiBzdHJpbmc7XG4gIGJhc2VBZGRyZXNzOiBzdHJpbmc7XG4gIGFkZHJlc3Nlczogc3RyaW5nW107XG4gIG51bWJlck9mU3Vycm91bmRpbmdMaW5lczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSB7XG4gIGFwcGxpY2F0aW9uOiBzdHJpbmc7XG4gIHJlbGVhc2VJZDogc3RyaW5nO1xuICAvKiogZnVuY3Rpb25fYWRkcmVzc19jYWxsZWQgLT4gbWFwcGVkX2FkZHJlc3MgKi9cbiAgbWFwcGVkQWRkcmVzc2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBjb21taXRIYXNoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZXBvTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdXNlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQmFzZUdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0KCk6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0IHtcbiAgcmV0dXJuIHsgYXBwbGljYXRpb246IFwiXCIsIHJlbGVhc2VJZDogXCJcIiwgYmFzZUFkZHJlc3M6IFwiXCIsIGFkZHJlc3NlczogW10sIG51bWJlck9mU3Vycm91bmRpbmdMaW5lczogMCB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlcXVlc3QgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5hcHBsaWNhdGlvbik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UucmVsZWFzZUlkKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuYmFzZUFkZHJlc3MgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMjYpLnN0cmluZyhtZXNzYWdlLmJhc2VBZGRyZXNzKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2IG9mIG1lc3NhZ2UuYWRkcmVzc2VzKSB7XG4gICAgICB3cml0ZXIudWludDMyKDM0KS5zdHJpbmcodiEpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5udW1iZXJPZlN1cnJvdW5kaW5nTGluZXMgIT09IDApIHtcbiAgICAgIHdyaXRlci51aW50MzIoNDApLmludDY0KG1lc3NhZ2UubnVtYmVyT2ZTdXJyb3VuZGluZ0xpbmVzKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZWxlYXNlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5iYXNlQWRkcmVzcyA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGlmICh0YWcgIT09IDM0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmFkZHJlc3Nlcy5wdXNoKHJlYWRlci5zdHJpbmcoKSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBpZiAodGFnICE9PSA0MCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5udW1iZXJPZlN1cnJvdW5kaW5nTGluZXMgPSBsb25nVG9OdW1iZXIocmVhZGVyLmludDY0KCkgYXMgTG9uZyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBpc1NldChvYmplY3QuYXBwbGljYXRpb24pID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlbGVhc2VJZCkgOiBcIlwiLFxuICAgICAgYmFzZUFkZHJlc3M6IGlzU2V0KG9iamVjdC5iYXNlQWRkcmVzcykgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuYmFzZUFkZHJlc3MpIDogXCJcIixcbiAgICAgIGFkZHJlc3NlczogZ2xvYmFsVGhpcy5BcnJheS5pc0FycmF5KG9iamVjdD8uYWRkcmVzc2VzKVxuICAgICAgICA/IG9iamVjdC5hZGRyZXNzZXMubWFwKChlOiBhbnkpID0+IGdsb2JhbFRoaXMuU3RyaW5nKGUpKVxuICAgICAgICA6IFtdLFxuICAgICAgbnVtYmVyT2ZTdXJyb3VuZGluZ0xpbmVzOiBpc1NldChvYmplY3QubnVtYmVyT2ZTdXJyb3VuZGluZ0xpbmVzKVxuICAgICAgICA/IGdsb2JhbFRoaXMuTnVtYmVyKG9iamVjdC5udW1iZXJPZlN1cnJvdW5kaW5nTGluZXMpXG4gICAgICAgIDogMCxcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIG9iai5hcHBsaWNhdGlvbiA9IG1lc3NhZ2UuYXBwbGljYXRpb247XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgb2JqLnJlbGVhc2VJZCA9IG1lc3NhZ2UucmVsZWFzZUlkO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5iYXNlQWRkcmVzcyAhPT0gXCJcIikge1xuICAgICAgb2JqLmJhc2VBZGRyZXNzID0gbWVzc2FnZS5iYXNlQWRkcmVzcztcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuYWRkcmVzc2VzPy5sZW5ndGgpIHtcbiAgICAgIG9iai5hZGRyZXNzZXMgPSBtZXNzYWdlLmFkZHJlc3NlcztcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubnVtYmVyT2ZTdXJyb3VuZGluZ0xpbmVzICE9PSAwKSB7XG4gICAgICBvYmoubnVtYmVyT2ZTdXJyb3VuZGluZ0xpbmVzID0gTWF0aC5yb3VuZChtZXNzYWdlLm51bWJlck9mU3Vycm91bmRpbmdMaW5lcyk7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdD4pOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVxdWVzdCB7XG4gICAgcmV0dXJuIEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0LmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0Pik6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0IHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXF1ZXN0KCk7XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IG9iamVjdC5hcHBsaWNhdGlvbiA/PyBcIlwiO1xuICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gb2JqZWN0LnJlbGVhc2VJZCA/PyBcIlwiO1xuICAgIG1lc3NhZ2UuYmFzZUFkZHJlc3MgPSBvYmplY3QuYmFzZUFkZHJlc3MgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmFkZHJlc3NlcyA9IG9iamVjdC5hZGRyZXNzZXM/Lm1hcCgoZSkgPT4gZSkgfHwgW107XG4gICAgbWVzc2FnZS5udW1iZXJPZlN1cnJvdW5kaW5nTGluZXMgPSBvYmplY3QubnVtYmVyT2ZTdXJyb3VuZGluZ0xpbmVzID8/IDA7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlKCk6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSB7XG4gIHJldHVybiB7XG4gICAgYXBwbGljYXRpb246IFwiXCIsXG4gICAgcmVsZWFzZUlkOiBcIlwiLFxuICAgIG1hcHBlZEFkZHJlc3Nlczoge30sXG4gICAgY29tbWl0SGFzaDogdW5kZWZpbmVkLFxuICAgIHJlcG9OYW1lOiB1bmRlZmluZWQsXG4gICAgdXNlcjogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlID0ge1xuICBlbmNvZGUobWVzc2FnZTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmFwcGxpY2F0aW9uKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE4KS5zdHJpbmcobWVzc2FnZS5yZWxlYXNlSWQpO1xuICAgIH1cbiAgICBPYmplY3QuZW50cmllcyhtZXNzYWdlLm1hcHBlZEFkZHJlc3NlcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkuZW5jb2RlKHsga2V5OiBrZXkgYXMgYW55LCB2YWx1ZSB9LCB3cml0ZXIudWludDMyKDI2KS5mb3JrKCkpXG4gICAgICAgIC5sZGVsaW0oKTtcbiAgICB9KTtcbiAgICBpZiAobWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLmNvbW1pdEhhc2gpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDQyKS5zdHJpbmcobWVzc2FnZS5yZXBvTmFtZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnVzZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig1MCkuc3RyaW5nKG1lc3NhZ2UudXNlcik7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZWxlYXNlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZW50cnkzID0gR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5LmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSk7XG4gICAgICAgICAgaWYgKGVudHJ5My52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBtZXNzYWdlLm1hcHBlZEFkZHJlc3Nlc1tlbnRyeTMua2V5XSA9IGVudHJ5My52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBpZiAodGFnICE9PSAzNCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5jb21taXRIYXNoID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gNDIpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVwb05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICBpZiAodGFnICE9PSA1MCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS51c2VyID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwbGljYXRpb246IGlzU2V0KG9iamVjdC5hcHBsaWNhdGlvbikgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuYXBwbGljYXRpb24pIDogXCJcIixcbiAgICAgIHJlbGVhc2VJZDogaXNTZXQob2JqZWN0LnJlbGVhc2VJZCkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QucmVsZWFzZUlkKSA6IFwiXCIsXG4gICAgICBtYXBwZWRBZGRyZXNzZXM6IGlzT2JqZWN0KG9iamVjdC5tYXBwZWRBZGRyZXNzZXMpXG4gICAgICAgID8gT2JqZWN0LmVudHJpZXMob2JqZWN0Lm1hcHBlZEFkZHJlc3NlcykucmVkdWNlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+KChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSlcbiAgICAgICAgOiB7fSxcbiAgICAgIGNvbW1pdEhhc2g6IGlzU2V0KG9iamVjdC5jb21taXRIYXNoKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5jb21taXRIYXNoKSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlcG9OYW1lOiBpc1NldChvYmplY3QucmVwb05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlcG9OYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgIHVzZXI6IGlzU2V0KG9iamVjdC51c2VyKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC51c2VyKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2UpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICBvYmouYXBwbGljYXRpb24gPSBtZXNzYWdlLmFwcGxpY2F0aW9uO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIG9iai5yZWxlYXNlSWQgPSBtZXNzYWdlLnJlbGVhc2VJZDtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubWFwcGVkQWRkcmVzc2VzKSB7XG4gICAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMobWVzc2FnZS5tYXBwZWRBZGRyZXNzZXMpO1xuICAgICAgaWYgKGVudHJpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBvYmoubWFwcGVkQWRkcmVzc2VzID0ge307XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoW2ssIHZdKSA9PiB7XG4gICAgICAgICAgb2JqLm1hcHBlZEFkZHJlc3Nlc1trXSA9IHY7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5jb21taXRIYXNoID0gbWVzc2FnZS5jb21taXRIYXNoO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmoucmVwb05hbWUgPSBtZXNzYWdlLnJlcG9OYW1lO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS51c2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai51c2VyID0gbWVzc2FnZS51c2VyO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8R2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlPik6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSB7XG4gICAgcmV0dXJuIEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2U+KTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZSgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICBtZXNzYWdlLm1hcHBlZEFkZHJlc3NlcyA9IE9iamVjdC5lbnRyaWVzKG9iamVjdC5tYXBwZWRBZGRyZXNzZXMgPz8ge30pLnJlZHVjZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9PihcbiAgICAgIChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFjY1trZXldID0gZ2xvYmFsVGhpcy5TdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAge30sXG4gICAgKTtcbiAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSBvYmplY3QuY29tbWl0SGFzaCA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5yZXBvTmFtZSA9IG9iamVjdC5yZXBvTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS51c2VyID0gb2JqZWN0LnVzZXIgPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZUdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZV9NYXBwZWRBZGRyZXNzZXNFbnRyeSgpOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkge1xuICByZXR1cm4geyBrZXk6IFwiXCIsIHZhbHVlOiBcIlwiIH07XG59XG5cbmV4cG9ydCBjb25zdCBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkgPSB7XG4gIGVuY29kZShcbiAgICBtZXNzYWdlOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnksXG4gICAgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSxcbiAgKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2Uua2V5ICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5rZXkpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS52YWx1ZSAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UudmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IEdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZV9NYXBwZWRBZGRyZXNzZXNFbnRyeSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmtleSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnZhbHVlID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5IHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiBpc1NldChvYmplY3Qua2V5KSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5rZXkpIDogXCJcIixcbiAgICAgIHZhbHVlOiBpc1NldChvYmplY3QudmFsdWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnZhbHVlKSA6IFwiXCIsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5KTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5rZXkgIT09IFwiXCIpIHtcbiAgICAgIG9iai5rZXkgPSBtZXNzYWdlLmtleTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UudmFsdWUgIT09IFwiXCIpIHtcbiAgICAgIG9iai52YWx1ZSA9IG1lc3NhZ2UudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKFxuICAgIGJhc2U/OiBEZWVwUGFydGlhbDxHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnk+LFxuICApOiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkge1xuICAgIHJldHVybiBHZXRNYXBwZWRJb3NTdGFja1RyYWNlUmVzcG9uc2VfTWFwcGVkQWRkcmVzc2VzRW50cnkuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG4gIGZyb21QYXJ0aWFsKFxuICAgIG9iamVjdDogRGVlcFBhcnRpYWw8R2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5PixcbiAgKTogR2V0TWFwcGVkSW9zU3RhY2tUcmFjZVJlc3BvbnNlX01hcHBlZEFkZHJlc3Nlc0VudHJ5IHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZUdldE1hcHBlZElvc1N0YWNrVHJhY2VSZXNwb25zZV9NYXBwZWRBZGRyZXNzZXNFbnRyeSgpO1xuICAgIG1lc3NhZ2Uua2V5ID0gb2JqZWN0LmtleSA/PyBcIlwiO1xuICAgIG1lc3NhZ2UudmFsdWUgPSBvYmplY3QudmFsdWUgPz8gXCJcIjtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbnR5cGUgQnVpbHRpbiA9IERhdGUgfCBGdW5jdGlvbiB8IFVpbnQ4QXJyYXkgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBCdWlsdGluID8gVFxuICA6IFQgZXh0ZW5kcyBnbG9iYWxUaGlzLkFycmF5PGluZmVyIFU+ID8gZ2xvYmFsVGhpcy5BcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/IFJlYWRvbmx5QXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIHsgJGNhc2U6IHN0cmluZyB9ID8geyBbSyBpbiBrZXlvZiBPbWl0PFQsIFwiJGNhc2VcIj5dPzogRGVlcFBhcnRpYWw8VFtLXT4gfSAmIHsgJGNhc2U6IFRbXCIkY2FzZVwiXSB9XG4gIDogVCBleHRlbmRzIHt9ID8geyBbSyBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbS10+IH1cbiAgOiBQYXJ0aWFsPFQ+O1xuXG5mdW5jdGlvbiBsb25nVG9OdW1iZXIobG9uZzogTG9uZyk6IG51bWJlciB7XG4gIGlmIChsb25nLmd0KGdsb2JhbFRoaXMuTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKSB7XG4gICAgdGhyb3cgbmV3IGdsb2JhbFRoaXMuRXJyb3IoXCJWYWx1ZSBpcyBsYXJnZXIgdGhhbiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlwiKTtcbiAgfVxuICBpZiAobG9uZy5sdChnbG9iYWxUaGlzLk51bWJlci5NSU5fU0FGRV9JTlRFR0VSKSkge1xuICAgIHRocm93IG5ldyBnbG9iYWxUaGlzLkVycm9yKFwiVmFsdWUgaXMgc21hbGxlciB0aGFuIE51bWJlci5NSU5fU0FGRV9JTlRFR0VSXCIpO1xuICB9XG4gIHJldHVybiBsb25nLnRvTnVtYmVyKCk7XG59XG5cbmlmIChfbTAudXRpbC5Mb25nICE9PSBMb25nKSB7XG4gIF9tMC51dGlsLkxvbmcgPSBMb25nIGFzIGFueTtcbiAgX20wLmNvbmZpZ3VyZSgpO1xufVxuXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import _m0 from "protobufjs/minimal";
|
|
2
2
|
export declare const protobufPackage = "com.coralogix.blobset.v2";
|
|
3
|
+
export interface MergedVersions {
|
|
4
|
+
versions: number[];
|
|
5
|
+
}
|
|
3
6
|
export interface DsymMetadata {
|
|
4
7
|
application: string;
|
|
5
8
|
releaseId: string;
|
|
6
9
|
commitHash?: string | undefined;
|
|
7
10
|
repoName?: string | undefined;
|
|
8
11
|
orgName?: string | undefined;
|
|
12
|
+
internalVersion?: number | undefined;
|
|
13
|
+
mergedVersions?: MergedVersions | undefined;
|
|
9
14
|
}
|
|
10
15
|
export interface ProguardMetadata {
|
|
11
16
|
application: string;
|
|
@@ -13,6 +18,8 @@ export interface ProguardMetadata {
|
|
|
13
18
|
commitHash?: string | undefined;
|
|
14
19
|
repoName?: string | undefined;
|
|
15
20
|
orgName?: string | undefined;
|
|
21
|
+
internalVersion?: number | undefined;
|
|
22
|
+
mergedVersions?: MergedVersions | undefined;
|
|
16
23
|
}
|
|
17
24
|
export interface SourceMapMetadata {
|
|
18
25
|
application: string;
|
|
@@ -20,6 +27,16 @@ export interface SourceMapMetadata {
|
|
|
20
27
|
commitHash?: string | undefined;
|
|
21
28
|
repoName?: string | undefined;
|
|
22
29
|
orgName?: string | undefined;
|
|
30
|
+
internalVersion?: number | undefined;
|
|
31
|
+
mergedVersions?: MergedVersions | undefined;
|
|
32
|
+
}
|
|
33
|
+
export interface InvestigationFileMetadata {
|
|
34
|
+
fileId: string;
|
|
35
|
+
fileName: string;
|
|
36
|
+
}
|
|
37
|
+
export interface CaseFileMetadata {
|
|
38
|
+
fileId: string;
|
|
39
|
+
fileName: string;
|
|
23
40
|
}
|
|
24
41
|
export interface EntityMetadata {
|
|
25
42
|
metadata?: {
|
|
@@ -31,8 +48,22 @@ export interface EntityMetadata {
|
|
|
31
48
|
} | {
|
|
32
49
|
$case: "proguardMetadata";
|
|
33
50
|
proguardMetadata: ProguardMetadata;
|
|
51
|
+
} | {
|
|
52
|
+
$case: "investigationFileMetadata";
|
|
53
|
+
investigationFileMetadata: InvestigationFileMetadata;
|
|
54
|
+
} | {
|
|
55
|
+
$case: "caseFileMetadata";
|
|
56
|
+
caseFileMetadata: CaseFileMetadata;
|
|
34
57
|
} | undefined;
|
|
35
58
|
}
|
|
59
|
+
export declare const MergedVersions: {
|
|
60
|
+
encode(message: MergedVersions, writer?: _m0.Writer): _m0.Writer;
|
|
61
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): MergedVersions;
|
|
62
|
+
fromJSON(object: any): MergedVersions;
|
|
63
|
+
toJSON(message: MergedVersions): unknown;
|
|
64
|
+
create(base?: DeepPartial<MergedVersions>): MergedVersions;
|
|
65
|
+
fromPartial(object: DeepPartial<MergedVersions>): MergedVersions;
|
|
66
|
+
};
|
|
36
67
|
export declare const DsymMetadata: {
|
|
37
68
|
encode(message: DsymMetadata, writer?: _m0.Writer): _m0.Writer;
|
|
38
69
|
decode(input: _m0.Reader | Uint8Array, length?: number): DsymMetadata;
|
|
@@ -57,6 +88,22 @@ export declare const SourceMapMetadata: {
|
|
|
57
88
|
create(base?: DeepPartial<SourceMapMetadata>): SourceMapMetadata;
|
|
58
89
|
fromPartial(object: DeepPartial<SourceMapMetadata>): SourceMapMetadata;
|
|
59
90
|
};
|
|
91
|
+
export declare const InvestigationFileMetadata: {
|
|
92
|
+
encode(message: InvestigationFileMetadata, writer?: _m0.Writer): _m0.Writer;
|
|
93
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): InvestigationFileMetadata;
|
|
94
|
+
fromJSON(object: any): InvestigationFileMetadata;
|
|
95
|
+
toJSON(message: InvestigationFileMetadata): unknown;
|
|
96
|
+
create(base?: DeepPartial<InvestigationFileMetadata>): InvestigationFileMetadata;
|
|
97
|
+
fromPartial(object: DeepPartial<InvestigationFileMetadata>): InvestigationFileMetadata;
|
|
98
|
+
};
|
|
99
|
+
export declare const CaseFileMetadata: {
|
|
100
|
+
encode(message: CaseFileMetadata, writer?: _m0.Writer): _m0.Writer;
|
|
101
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): CaseFileMetadata;
|
|
102
|
+
fromJSON(object: any): CaseFileMetadata;
|
|
103
|
+
toJSON(message: CaseFileMetadata): unknown;
|
|
104
|
+
create(base?: DeepPartial<CaseFileMetadata>): CaseFileMetadata;
|
|
105
|
+
fromPartial(object: DeepPartial<CaseFileMetadata>): CaseFileMetadata;
|
|
106
|
+
};
|
|
60
107
|
export declare const EntityMetadata: {
|
|
61
108
|
encode(message: EntityMetadata, writer?: _m0.Writer): _m0.Writer;
|
|
62
109
|
decode(input: _m0.Reader | Uint8Array, length?: number): EntityMetadata;
|