@coralogix/rum-cli 1.1.21 → 1.1.24
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 +32 -9
- package/api/client/client-factory.ts +26 -0
- package/api/client/request-builder.ts +122 -0
- package/api/dsym.api.ts +61 -0
- package/api/react-native.api.ts +67 -0
- package/api/{rum-api.ts → source-maps.api.ts} +15 -23
- package/cli/commands/dsym/index.ts +5 -0
- package/cli/commands/dsym/upload-dsym-command.ts +36 -0
- package/cli/commands/react-native/index.ts +5 -0
- package/cli/commands/react-native/upload-react-native-source-maps-command.ts +42 -0
- package/cli/commands/{delete-source-maps-command.ts → source-maps/delete-source-maps-command.ts} +8 -10
- package/cli/commands/source-maps/index.ts +7 -0
- package/cli/commands/{update-source-maps-command.ts → source-maps/update-source-maps-command.ts} +8 -10
- package/cli/commands/{upload-source-maps-command.ts → source-maps/upload-source-maps-command.ts} +8 -10
- package/cli/rum-cli.ts +17 -7
- package/config/config.ts +10 -4
- package/consts/consts.ts +2 -0
- package/dist/api/client/client-factory.d.ts +355 -0
- package/dist/api/client/client-factory.js +31 -0
- package/dist/api/client/request-builder.d.ts +33 -0
- package/dist/api/client/request-builder.js +58 -0
- package/dist/api/dsym.api.d.ts +4 -0
- package/dist/api/dsym.api.js +50 -0
- package/dist/api/react-native.api.d.ts +4 -0
- package/dist/api/react-native.api.js +50 -0
- package/dist/api/{rum-api.d.ts → source-maps.api.d.ts} +2 -2
- package/dist/api/source-maps.api.js +97 -0
- package/dist/cli/commands/dsym/index.d.ts +4 -0
- package/dist/cli/commands/dsym/index.js +6 -0
- package/dist/cli/commands/dsym/upload-dsym-command.d.ts +2 -0
- package/dist/cli/commands/dsym/upload-dsym-command.js +45 -0
- package/dist/cli/commands/react-native/index.d.ts +4 -0
- package/dist/cli/commands/react-native/index.js +6 -0
- package/dist/cli/commands/react-native/upload-react-native-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/react-native/upload-react-native-source-maps-command.js +51 -0
- package/dist/cli/commands/source-maps/delete-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/source-maps/delete-source-maps-command.js +41 -0
- package/dist/cli/commands/source-maps/index.d.ts +6 -0
- package/dist/cli/commands/source-maps/index.js +8 -0
- package/dist/cli/commands/source-maps/update-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/source-maps/update-source-maps-command.js +46 -0
- package/dist/cli/commands/source-maps/upload-source-maps-command.d.ts +2 -0
- package/dist/cli/commands/source-maps/upload-source-maps-command.js +45 -0
- package/dist/cli/rum-cli.js +14 -8
- package/dist/config/config.d.ts +5 -2
- package/dist/config/config.js +6 -3
- package/dist/consts/consts.d.ts +1 -0
- package/dist/consts/consts.js +3 -2
- package/dist/models/dsym-commands.model.d.ts +11 -0
- package/dist/models/dsym-commands.model.js +3 -0
- package/dist/models/react-native-commands.model.d.ts +11 -0
- package/dist/models/react-native-commands.model.js +3 -0
- package/dist/models/{commands.model.d.ts → source-maps-commands.model.d.ts} +3 -3
- package/dist/models/source-maps-commands.model.js +3 -0
- package/dist/proto-models/com/coralogix/blobset/v2/audit_log.d.ts +24 -0
- package/dist/proto-models/com/coralogix/blobset/v2/audit_log.js +64 -0
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.d.ts +111 -0
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_query_service.js +31 -0
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_service.d.ts +67 -0
- package/dist/proto-models/com/coralogix/blobset/v2/blobset_service.js +174 -0
- package/dist/proto-models/com/coralogix/blobset/v2/dsym.d.ts +58 -0
- package/dist/proto-models/com/coralogix/blobset/v2/dsym.js +331 -0
- package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.d.ts +78 -0
- package/dist/proto-models/com/coralogix/blobset/v2/entity_metadata.js +459 -0
- package/dist/proto-models/com/coralogix/blobset/v2/entity_type.d.ts +9 -0
- package/dist/proto-models/com/coralogix/blobset/v2/entity_type.js +47 -0
- package/dist/proto-models/com/coralogix/blobset/v2/react_native.d.ts +54 -0
- package/dist/proto-models/com/coralogix/blobset/v2/react_native.js +313 -0
- package/dist/proto-models/com/coralogix/blobset/v2/s3_metadata.d.ts +30 -0
- package/dist/proto-models/com/coralogix/blobset/v2/s3_metadata.js +126 -0
- package/dist/proto-models/com/coralogix/rum/v2/analytics.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/analytics.js +115 -102
- package/dist/proto-models/com/coralogix/rum/v2/audit_log.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/audit_log.js +5 -3
- package/dist/proto-models/com/coralogix/rum/v2/chunk.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/chunk.js +54 -49
- package/dist/proto-models/com/coralogix/rum/v2/file.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/file.js +24 -34
- package/dist/proto-models/com/coralogix/rum/v2/hide_errors.d.ts +44 -0
- package/dist/proto-models/com/coralogix/rum/v2/hide_errors.js +195 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.d.ts +78 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_metadata.js +459 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_type.d.ts +9 -0
- package/dist/proto-models/com/coralogix/rum/v2/release_entity_type.js +47 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.d.ts +198 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.js +517 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.d.ts +69 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.js +189 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.d.ts +480 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.js +1420 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_sdk_versions.d.ts +41 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_sdk_versions.js +217 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +143 -3
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +595 -127
- package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.d.ts +1 -59
- package/dist/proto-models/com/coralogix/rum/v2/rum_session_recording_service.js +4 -175
- package/dist/proto-models/com/coralogix/rum/v2/rum_settings.d.ts +45 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_settings.js +193 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_settings_service.d.ts +107 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_settings_service.js +214 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.d.ts +261 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.js +698 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +93 -1
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +325 -42
- package/dist/proto-models/com/coralogix/rum/v2/saved_filter.d.ts +55 -0
- package/dist/proto-models/com/coralogix/rum/v2/saved_filter.js +267 -0
- package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.d.ts +109 -0
- package/dist/proto-models/com/coralogix/rum/v2/snooze_errors.js +580 -0
- package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/source_code_file_mapping.js +47 -24
- package/dist/proto-models/com/coralogix/rum/v2/source_map_release.d.ts +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/source_map_release.js +43 -38
- package/dist/proto-models/com/coralogix/rum/v2/template.d.ts +14 -1
- package/dist/proto-models/com/coralogix/rum/v2/template.js +148 -54
- package/dist/proto-models/google/protobuf/descriptor.d.ts +1 -1
- package/dist/proto-models/google/protobuf/descriptor.js +537 -427
- package/dist/services/dsym.service.d.ts +3 -0
- package/dist/services/dsym.service.js +36 -0
- package/dist/services/react-native.service.d.ts +3 -0
- package/dist/services/react-native.service.js +37 -0
- package/dist/services/source-maps.service.js +12 -14
- package/dist/utils/file-processor.utils.d.ts +12 -0
- package/dist/utils/file-processor.utils.js +196 -0
- package/dist/utils/shared.utils.d.ts +9 -0
- package/dist/utils/shared.utils.js +62 -0
- package/models/dsym-commands.model.ts +11 -0
- package/models/react-native-commands.model.ts +11 -0
- package/models/{commands.model.ts → source-maps-commands.model.ts} +3 -3
- package/package.json +4 -3
- package/proto-models/com/coralogix/blobset/v2/audit_log.ts +78 -0
- package/proto-models/com/coralogix/blobset/v2/blobset_query_service.ts +30 -0
- package/proto-models/com/coralogix/blobset/v2/blobset_service.ts +203 -0
- package/proto-models/com/coralogix/blobset/v2/dsym.ts +394 -0
- package/proto-models/com/coralogix/blobset/v2/entity_metadata.ts +537 -0
- package/proto-models/com/coralogix/blobset/v2/entity_type.ts +44 -0
- package/proto-models/com/coralogix/blobset/v2/react_native.ts +361 -0
- package/proto-models/com/coralogix/blobset/v2/s3_metadata.ts +148 -0
- package/proto-models/com/coralogix/rum/v2/analytics.ts +113 -108
- package/proto-models/com/coralogix/rum/v2/audit_log.ts +6 -4
- package/proto-models/com/coralogix/rum/v2/chunk.ts +55 -56
- package/proto-models/com/coralogix/rum/v2/file.ts +25 -39
- package/proto-models/com/coralogix/rum/v2/hide_errors.ts +225 -0
- package/proto-models/com/coralogix/rum/v2/release_entity_metadata.ts +537 -0
- package/proto-models/com/coralogix/rum/v2/release_entity_type.ts +44 -0
- package/proto-models/com/coralogix/rum/v2/rum_hide_errors_service.ts +599 -0
- package/proto-models/com/coralogix/rum/v2/rum_react_native_source_map_service.ts +223 -0
- package/proto-models/com/coralogix/rum/v2/rum_saved_filters_service.ts +1673 -0
- package/proto-models/com/coralogix/rum/v2/rum_sdk_versions.ts +254 -0
- package/proto-models/com/coralogix/rum/v2/rum_service.ts +672 -146
- package/proto-models/com/coralogix/rum/v2/rum_session_recording_service.ts +1 -208
- package/proto-models/com/coralogix/rum/v2/rum_settings.ts +209 -0
- package/proto-models/com/coralogix/rum/v2/rum_settings_service.ts +260 -0
- package/proto-models/com/coralogix/rum/v2/rum_snooze_errors_service.ts +818 -0
- package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +369 -46
- package/proto-models/com/coralogix/rum/v2/saved_filter.ts +301 -0
- package/proto-models/com/coralogix/rum/v2/snooze_errors.ts +656 -0
- package/proto-models/com/coralogix/rum/v2/source_code_file_mapping.ts +48 -27
- package/proto-models/com/coralogix/rum/v2/source_map_release.ts +44 -44
- package/proto-models/com/coralogix/rum/v2/template.ts +161 -59
- package/proto-models/google/protobuf/descriptor.ts +551 -464
- package/protofetch.lock +21 -2
- package/protofetch.toml +6 -1
- package/protos/com/coralogix/blobset/v2/audit_log.proto +13 -0
- package/protos/com/coralogix/blobset/v2/blobset_query_service.proto +12 -0
- package/protos/com/coralogix/blobset/v2/blobset_service.proto +18 -0
- package/protos/com/coralogix/blobset/v2/dsym.proto +19 -0
- package/protos/com/coralogix/blobset/v2/entity_metadata.proto +36 -0
- package/protos/com/coralogix/blobset/v2/entity_type.proto +10 -0
- package/protos/com/coralogix/blobset/v2/react_native.proto +23 -0
- package/protos/com/coralogix/blobset/v2/s3_metadata.proto +14 -0
- package/protos/com/coralogix/rum/v2/hide_errors.proto +19 -0
- package/protos/com/coralogix/rum/v2/release_entity_metadata.proto +35 -0
- package/protos/com/coralogix/rum/v2/release_entity_type.proto +10 -0
- package/protos/com/coralogix/rum/v2/rum_hide_errors_service.proto +42 -0
- package/protos/com/coralogix/rum/v2/rum_react_native_source_map_service.proto +19 -0
- package/protos/com/coralogix/rum/v2/rum_saved_filters_service.proto +117 -0
- package/protos/com/coralogix/rum/v2/rum_sdk_versions.proto +16 -0
- package/protos/com/coralogix/rum/v2/rum_service.proto +36 -0
- package/protos/com/coralogix/rum/v2/rum_session_recording_service.proto +1 -12
- package/protos/com/coralogix/rum/v2/rum_settings.proto +26 -0
- package/protos/com/coralogix/rum/v2/rum_settings_service.proto +21 -0
- package/protos/com/coralogix/rum/v2/rum_snooze_errors_service.proto +64 -0
- package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +20 -1
- package/protos/com/coralogix/rum/v2/saved_filter.proto +28 -0
- package/protos/com/coralogix/rum/v2/snooze_errors.proto +55 -0
- package/protos/com/coralogix/rum/v2/template.proto +6 -0
- package/protoset.bin +0 -0
- package/services/dsym.service.ts +33 -0
- package/services/react-native.service.ts +34 -0
- package/services/source-maps.service.ts +12 -14
- package/utils/file-processor.utils.ts +176 -0
- package/utils/shared.utils.ts +52 -0
- package/cli/commands/index.ts +0 -7
- package/dist/api/rum-api.js +0 -104
- package/dist/cli/commands/delete-source-maps-command.d.ts +0 -2
- package/dist/cli/commands/delete-source-maps-command.js +0 -43
- package/dist/cli/commands/index.d.ts +0 -6
- package/dist/cli/commands/index.js +0 -8
- package/dist/cli/commands/update-source-maps-command.d.ts +0 -2
- package/dist/cli/commands/update-source-maps-command.js +0 -48
- package/dist/cli/commands/upload-source-maps-command.d.ts +0 -2
- package/dist/cli/commands/upload-source-maps-command.js +0 -47
- package/dist/models/commands.model.js +0 -3
- package/dist/utils/index.d.ts +0 -6
- package/dist/utils/index.js +0 -115
- package/utils/index.ts +0 -93
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import _m0 from "protobufjs/minimal";
|
|
2
|
+
export declare const protobufPackage = "com.coralogix.blobset.v2";
|
|
3
|
+
export interface DsymMetadata {
|
|
4
|
+
application: string;
|
|
5
|
+
releaseId: string;
|
|
6
|
+
commitHash?: string | undefined;
|
|
7
|
+
repoName?: string | undefined;
|
|
8
|
+
orgName?: string | undefined;
|
|
9
|
+
}
|
|
10
|
+
export interface SourceMapMetadata {
|
|
11
|
+
application: string;
|
|
12
|
+
releaseId: string;
|
|
13
|
+
commitHash?: string | undefined;
|
|
14
|
+
repoName?: string | undefined;
|
|
15
|
+
orgName?: string | undefined;
|
|
16
|
+
}
|
|
17
|
+
export interface ReactNativeMetadata {
|
|
18
|
+
application: string;
|
|
19
|
+
releaseId: string;
|
|
20
|
+
commitHash?: string | undefined;
|
|
21
|
+
repoName?: string | undefined;
|
|
22
|
+
orgName?: string | undefined;
|
|
23
|
+
}
|
|
24
|
+
export interface EntityMetadata {
|
|
25
|
+
metadata?: {
|
|
26
|
+
$case: "dsymMetadata";
|
|
27
|
+
dsymMetadata: DsymMetadata;
|
|
28
|
+
} | {
|
|
29
|
+
$case: "sourceMapMetadata";
|
|
30
|
+
sourceMapMetadata: SourceMapMetadata;
|
|
31
|
+
} | {
|
|
32
|
+
$case: "reactNativeMetadata";
|
|
33
|
+
reactNativeMetadata: ReactNativeMetadata;
|
|
34
|
+
} | undefined;
|
|
35
|
+
}
|
|
36
|
+
export declare const DsymMetadata: {
|
|
37
|
+
encode(message: DsymMetadata, writer?: _m0.Writer): _m0.Writer;
|
|
38
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): DsymMetadata;
|
|
39
|
+
fromJSON(object: any): DsymMetadata;
|
|
40
|
+
toJSON(message: DsymMetadata): unknown;
|
|
41
|
+
create(base?: DeepPartial<DsymMetadata>): DsymMetadata;
|
|
42
|
+
fromPartial(object: DeepPartial<DsymMetadata>): DsymMetadata;
|
|
43
|
+
};
|
|
44
|
+
export declare const SourceMapMetadata: {
|
|
45
|
+
encode(message: SourceMapMetadata, writer?: _m0.Writer): _m0.Writer;
|
|
46
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): SourceMapMetadata;
|
|
47
|
+
fromJSON(object: any): SourceMapMetadata;
|
|
48
|
+
toJSON(message: SourceMapMetadata): unknown;
|
|
49
|
+
create(base?: DeepPartial<SourceMapMetadata>): SourceMapMetadata;
|
|
50
|
+
fromPartial(object: DeepPartial<SourceMapMetadata>): SourceMapMetadata;
|
|
51
|
+
};
|
|
52
|
+
export declare const ReactNativeMetadata: {
|
|
53
|
+
encode(message: ReactNativeMetadata, writer?: _m0.Writer): _m0.Writer;
|
|
54
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): ReactNativeMetadata;
|
|
55
|
+
fromJSON(object: any): ReactNativeMetadata;
|
|
56
|
+
toJSON(message: ReactNativeMetadata): unknown;
|
|
57
|
+
create(base?: DeepPartial<ReactNativeMetadata>): ReactNativeMetadata;
|
|
58
|
+
fromPartial(object: DeepPartial<ReactNativeMetadata>): ReactNativeMetadata;
|
|
59
|
+
};
|
|
60
|
+
export declare const EntityMetadata: {
|
|
61
|
+
encode(message: EntityMetadata, writer?: _m0.Writer): _m0.Writer;
|
|
62
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): EntityMetadata;
|
|
63
|
+
fromJSON(object: any): EntityMetadata;
|
|
64
|
+
toJSON(message: EntityMetadata): unknown;
|
|
65
|
+
create(base?: DeepPartial<EntityMetadata>): EntityMetadata;
|
|
66
|
+
fromPartial(object: DeepPartial<EntityMetadata>): EntityMetadata;
|
|
67
|
+
};
|
|
68
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
69
|
+
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
|
|
70
|
+
$case: string;
|
|
71
|
+
} ? {
|
|
72
|
+
[K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
|
|
73
|
+
} & {
|
|
74
|
+
$case: T["$case"];
|
|
75
|
+
} : T extends {} ? {
|
|
76
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
77
|
+
} : Partial<T>;
|
|
78
|
+
export {};
|
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EntityMetadata = exports.ReactNativeMetadata = exports.SourceMapMetadata = exports.DsymMetadata = exports.protobufPackage = void 0;
|
|
7
|
+
/* eslint-disable */
|
|
8
|
+
const minimal_1 = __importDefault(require("protobufjs/minimal"));
|
|
9
|
+
exports.protobufPackage = "com.coralogix.blobset.v2";
|
|
10
|
+
function createBaseDsymMetadata() {
|
|
11
|
+
return { application: "", releaseId: "", commitHash: undefined, repoName: undefined, orgName: undefined };
|
|
12
|
+
}
|
|
13
|
+
exports.DsymMetadata = {
|
|
14
|
+
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
15
|
+
if (message.application !== "") {
|
|
16
|
+
writer.uint32(10).string(message.application);
|
|
17
|
+
}
|
|
18
|
+
if (message.releaseId !== "") {
|
|
19
|
+
writer.uint32(18).string(message.releaseId);
|
|
20
|
+
}
|
|
21
|
+
if (message.commitHash !== undefined) {
|
|
22
|
+
writer.uint32(26).string(message.commitHash);
|
|
23
|
+
}
|
|
24
|
+
if (message.repoName !== undefined) {
|
|
25
|
+
writer.uint32(34).string(message.repoName);
|
|
26
|
+
}
|
|
27
|
+
if (message.orgName !== undefined) {
|
|
28
|
+
writer.uint32(42).string(message.orgName);
|
|
29
|
+
}
|
|
30
|
+
return writer;
|
|
31
|
+
},
|
|
32
|
+
decode(input, length) {
|
|
33
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
34
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
35
|
+
const message = createBaseDsymMetadata();
|
|
36
|
+
while (reader.pos < end) {
|
|
37
|
+
const tag = reader.uint32();
|
|
38
|
+
switch (tag >>> 3) {
|
|
39
|
+
case 1:
|
|
40
|
+
if (tag !== 10) {
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
message.application = reader.string();
|
|
44
|
+
continue;
|
|
45
|
+
case 2:
|
|
46
|
+
if (tag !== 18) {
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
message.releaseId = reader.string();
|
|
50
|
+
continue;
|
|
51
|
+
case 3:
|
|
52
|
+
if (tag !== 26) {
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
message.commitHash = reader.string();
|
|
56
|
+
continue;
|
|
57
|
+
case 4:
|
|
58
|
+
if (tag !== 34) {
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
message.repoName = reader.string();
|
|
62
|
+
continue;
|
|
63
|
+
case 5:
|
|
64
|
+
if (tag !== 42) {
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
message.orgName = reader.string();
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
reader.skipType(tag & 7);
|
|
74
|
+
}
|
|
75
|
+
return message;
|
|
76
|
+
},
|
|
77
|
+
fromJSON(object) {
|
|
78
|
+
return {
|
|
79
|
+
application: isSet(object.application) ? globalThis.String(object.application) : "",
|
|
80
|
+
releaseId: isSet(object.releaseId) ? globalThis.String(object.releaseId) : "",
|
|
81
|
+
commitHash: isSet(object.commitHash) ? globalThis.String(object.commitHash) : undefined,
|
|
82
|
+
repoName: isSet(object.repoName) ? globalThis.String(object.repoName) : undefined,
|
|
83
|
+
orgName: isSet(object.orgName) ? globalThis.String(object.orgName) : undefined,
|
|
84
|
+
};
|
|
85
|
+
},
|
|
86
|
+
toJSON(message) {
|
|
87
|
+
const obj = {};
|
|
88
|
+
if (message.application !== "") {
|
|
89
|
+
obj.application = message.application;
|
|
90
|
+
}
|
|
91
|
+
if (message.releaseId !== "") {
|
|
92
|
+
obj.releaseId = message.releaseId;
|
|
93
|
+
}
|
|
94
|
+
if (message.commitHash !== undefined) {
|
|
95
|
+
obj.commitHash = message.commitHash;
|
|
96
|
+
}
|
|
97
|
+
if (message.repoName !== undefined) {
|
|
98
|
+
obj.repoName = message.repoName;
|
|
99
|
+
}
|
|
100
|
+
if (message.orgName !== undefined) {
|
|
101
|
+
obj.orgName = message.orgName;
|
|
102
|
+
}
|
|
103
|
+
return obj;
|
|
104
|
+
},
|
|
105
|
+
create(base) {
|
|
106
|
+
return exports.DsymMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
107
|
+
},
|
|
108
|
+
fromPartial(object) {
|
|
109
|
+
var _a, _b, _c, _d, _e;
|
|
110
|
+
const message = createBaseDsymMetadata();
|
|
111
|
+
message.application = (_a = object.application) !== null && _a !== void 0 ? _a : "";
|
|
112
|
+
message.releaseId = (_b = object.releaseId) !== null && _b !== void 0 ? _b : "";
|
|
113
|
+
message.commitHash = (_c = object.commitHash) !== null && _c !== void 0 ? _c : undefined;
|
|
114
|
+
message.repoName = (_d = object.repoName) !== null && _d !== void 0 ? _d : undefined;
|
|
115
|
+
message.orgName = (_e = object.orgName) !== null && _e !== void 0 ? _e : undefined;
|
|
116
|
+
return message;
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
function createBaseSourceMapMetadata() {
|
|
120
|
+
return { application: "", releaseId: "", commitHash: undefined, repoName: undefined, orgName: undefined };
|
|
121
|
+
}
|
|
122
|
+
exports.SourceMapMetadata = {
|
|
123
|
+
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
124
|
+
if (message.application !== "") {
|
|
125
|
+
writer.uint32(10).string(message.application);
|
|
126
|
+
}
|
|
127
|
+
if (message.releaseId !== "") {
|
|
128
|
+
writer.uint32(18).string(message.releaseId);
|
|
129
|
+
}
|
|
130
|
+
if (message.commitHash !== undefined) {
|
|
131
|
+
writer.uint32(26).string(message.commitHash);
|
|
132
|
+
}
|
|
133
|
+
if (message.repoName !== undefined) {
|
|
134
|
+
writer.uint32(34).string(message.repoName);
|
|
135
|
+
}
|
|
136
|
+
if (message.orgName !== undefined) {
|
|
137
|
+
writer.uint32(42).string(message.orgName);
|
|
138
|
+
}
|
|
139
|
+
return writer;
|
|
140
|
+
},
|
|
141
|
+
decode(input, length) {
|
|
142
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
143
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
144
|
+
const message = createBaseSourceMapMetadata();
|
|
145
|
+
while (reader.pos < end) {
|
|
146
|
+
const tag = reader.uint32();
|
|
147
|
+
switch (tag >>> 3) {
|
|
148
|
+
case 1:
|
|
149
|
+
if (tag !== 10) {
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
message.application = reader.string();
|
|
153
|
+
continue;
|
|
154
|
+
case 2:
|
|
155
|
+
if (tag !== 18) {
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
message.releaseId = reader.string();
|
|
159
|
+
continue;
|
|
160
|
+
case 3:
|
|
161
|
+
if (tag !== 26) {
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
message.commitHash = reader.string();
|
|
165
|
+
continue;
|
|
166
|
+
case 4:
|
|
167
|
+
if (tag !== 34) {
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
message.repoName = reader.string();
|
|
171
|
+
continue;
|
|
172
|
+
case 5:
|
|
173
|
+
if (tag !== 42) {
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
message.orgName = reader.string();
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
reader.skipType(tag & 7);
|
|
183
|
+
}
|
|
184
|
+
return message;
|
|
185
|
+
},
|
|
186
|
+
fromJSON(object) {
|
|
187
|
+
return {
|
|
188
|
+
application: isSet(object.application) ? globalThis.String(object.application) : "",
|
|
189
|
+
releaseId: isSet(object.releaseId) ? globalThis.String(object.releaseId) : "",
|
|
190
|
+
commitHash: isSet(object.commitHash) ? globalThis.String(object.commitHash) : undefined,
|
|
191
|
+
repoName: isSet(object.repoName) ? globalThis.String(object.repoName) : undefined,
|
|
192
|
+
orgName: isSet(object.orgName) ? globalThis.String(object.orgName) : undefined,
|
|
193
|
+
};
|
|
194
|
+
},
|
|
195
|
+
toJSON(message) {
|
|
196
|
+
const obj = {};
|
|
197
|
+
if (message.application !== "") {
|
|
198
|
+
obj.application = message.application;
|
|
199
|
+
}
|
|
200
|
+
if (message.releaseId !== "") {
|
|
201
|
+
obj.releaseId = message.releaseId;
|
|
202
|
+
}
|
|
203
|
+
if (message.commitHash !== undefined) {
|
|
204
|
+
obj.commitHash = message.commitHash;
|
|
205
|
+
}
|
|
206
|
+
if (message.repoName !== undefined) {
|
|
207
|
+
obj.repoName = message.repoName;
|
|
208
|
+
}
|
|
209
|
+
if (message.orgName !== undefined) {
|
|
210
|
+
obj.orgName = message.orgName;
|
|
211
|
+
}
|
|
212
|
+
return obj;
|
|
213
|
+
},
|
|
214
|
+
create(base) {
|
|
215
|
+
return exports.SourceMapMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
216
|
+
},
|
|
217
|
+
fromPartial(object) {
|
|
218
|
+
var _a, _b, _c, _d, _e;
|
|
219
|
+
const message = createBaseSourceMapMetadata();
|
|
220
|
+
message.application = (_a = object.application) !== null && _a !== void 0 ? _a : "";
|
|
221
|
+
message.releaseId = (_b = object.releaseId) !== null && _b !== void 0 ? _b : "";
|
|
222
|
+
message.commitHash = (_c = object.commitHash) !== null && _c !== void 0 ? _c : undefined;
|
|
223
|
+
message.repoName = (_d = object.repoName) !== null && _d !== void 0 ? _d : undefined;
|
|
224
|
+
message.orgName = (_e = object.orgName) !== null && _e !== void 0 ? _e : undefined;
|
|
225
|
+
return message;
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
function createBaseReactNativeMetadata() {
|
|
229
|
+
return { application: "", releaseId: "", commitHash: undefined, repoName: undefined, orgName: undefined };
|
|
230
|
+
}
|
|
231
|
+
exports.ReactNativeMetadata = {
|
|
232
|
+
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
233
|
+
if (message.application !== "") {
|
|
234
|
+
writer.uint32(10).string(message.application);
|
|
235
|
+
}
|
|
236
|
+
if (message.releaseId !== "") {
|
|
237
|
+
writer.uint32(18).string(message.releaseId);
|
|
238
|
+
}
|
|
239
|
+
if (message.commitHash !== undefined) {
|
|
240
|
+
writer.uint32(26).string(message.commitHash);
|
|
241
|
+
}
|
|
242
|
+
if (message.repoName !== undefined) {
|
|
243
|
+
writer.uint32(34).string(message.repoName);
|
|
244
|
+
}
|
|
245
|
+
if (message.orgName !== undefined) {
|
|
246
|
+
writer.uint32(42).string(message.orgName);
|
|
247
|
+
}
|
|
248
|
+
return writer;
|
|
249
|
+
},
|
|
250
|
+
decode(input, length) {
|
|
251
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
252
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
253
|
+
const message = createBaseReactNativeMetadata();
|
|
254
|
+
while (reader.pos < end) {
|
|
255
|
+
const tag = reader.uint32();
|
|
256
|
+
switch (tag >>> 3) {
|
|
257
|
+
case 1:
|
|
258
|
+
if (tag !== 10) {
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
message.application = reader.string();
|
|
262
|
+
continue;
|
|
263
|
+
case 2:
|
|
264
|
+
if (tag !== 18) {
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
message.releaseId = reader.string();
|
|
268
|
+
continue;
|
|
269
|
+
case 3:
|
|
270
|
+
if (tag !== 26) {
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
message.commitHash = reader.string();
|
|
274
|
+
continue;
|
|
275
|
+
case 4:
|
|
276
|
+
if (tag !== 34) {
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
message.repoName = reader.string();
|
|
280
|
+
continue;
|
|
281
|
+
case 5:
|
|
282
|
+
if (tag !== 42) {
|
|
283
|
+
break;
|
|
284
|
+
}
|
|
285
|
+
message.orgName = reader.string();
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
reader.skipType(tag & 7);
|
|
292
|
+
}
|
|
293
|
+
return message;
|
|
294
|
+
},
|
|
295
|
+
fromJSON(object) {
|
|
296
|
+
return {
|
|
297
|
+
application: isSet(object.application) ? globalThis.String(object.application) : "",
|
|
298
|
+
releaseId: isSet(object.releaseId) ? globalThis.String(object.releaseId) : "",
|
|
299
|
+
commitHash: isSet(object.commitHash) ? globalThis.String(object.commitHash) : undefined,
|
|
300
|
+
repoName: isSet(object.repoName) ? globalThis.String(object.repoName) : undefined,
|
|
301
|
+
orgName: isSet(object.orgName) ? globalThis.String(object.orgName) : undefined,
|
|
302
|
+
};
|
|
303
|
+
},
|
|
304
|
+
toJSON(message) {
|
|
305
|
+
const obj = {};
|
|
306
|
+
if (message.application !== "") {
|
|
307
|
+
obj.application = message.application;
|
|
308
|
+
}
|
|
309
|
+
if (message.releaseId !== "") {
|
|
310
|
+
obj.releaseId = message.releaseId;
|
|
311
|
+
}
|
|
312
|
+
if (message.commitHash !== undefined) {
|
|
313
|
+
obj.commitHash = message.commitHash;
|
|
314
|
+
}
|
|
315
|
+
if (message.repoName !== undefined) {
|
|
316
|
+
obj.repoName = message.repoName;
|
|
317
|
+
}
|
|
318
|
+
if (message.orgName !== undefined) {
|
|
319
|
+
obj.orgName = message.orgName;
|
|
320
|
+
}
|
|
321
|
+
return obj;
|
|
322
|
+
},
|
|
323
|
+
create(base) {
|
|
324
|
+
return exports.ReactNativeMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
325
|
+
},
|
|
326
|
+
fromPartial(object) {
|
|
327
|
+
var _a, _b, _c, _d, _e;
|
|
328
|
+
const message = createBaseReactNativeMetadata();
|
|
329
|
+
message.application = (_a = object.application) !== null && _a !== void 0 ? _a : "";
|
|
330
|
+
message.releaseId = (_b = object.releaseId) !== null && _b !== void 0 ? _b : "";
|
|
331
|
+
message.commitHash = (_c = object.commitHash) !== null && _c !== void 0 ? _c : undefined;
|
|
332
|
+
message.repoName = (_d = object.repoName) !== null && _d !== void 0 ? _d : undefined;
|
|
333
|
+
message.orgName = (_e = object.orgName) !== null && _e !== void 0 ? _e : undefined;
|
|
334
|
+
return message;
|
|
335
|
+
},
|
|
336
|
+
};
|
|
337
|
+
function createBaseEntityMetadata() {
|
|
338
|
+
return { metadata: undefined };
|
|
339
|
+
}
|
|
340
|
+
exports.EntityMetadata = {
|
|
341
|
+
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
342
|
+
var _a;
|
|
343
|
+
switch ((_a = message.metadata) === null || _a === void 0 ? void 0 : _a.$case) {
|
|
344
|
+
case "dsymMetadata":
|
|
345
|
+
exports.DsymMetadata.encode(message.metadata.dsymMetadata, writer.uint32(10).fork()).ldelim();
|
|
346
|
+
break;
|
|
347
|
+
case "sourceMapMetadata":
|
|
348
|
+
exports.SourceMapMetadata.encode(message.metadata.sourceMapMetadata, writer.uint32(18).fork()).ldelim();
|
|
349
|
+
break;
|
|
350
|
+
case "reactNativeMetadata":
|
|
351
|
+
exports.ReactNativeMetadata.encode(message.metadata.reactNativeMetadata, writer.uint32(26).fork()).ldelim();
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
return writer;
|
|
355
|
+
},
|
|
356
|
+
decode(input, length) {
|
|
357
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
358
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
359
|
+
const message = createBaseEntityMetadata();
|
|
360
|
+
while (reader.pos < end) {
|
|
361
|
+
const tag = reader.uint32();
|
|
362
|
+
switch (tag >>> 3) {
|
|
363
|
+
case 1:
|
|
364
|
+
if (tag !== 10) {
|
|
365
|
+
break;
|
|
366
|
+
}
|
|
367
|
+
message.metadata = { $case: "dsymMetadata", dsymMetadata: exports.DsymMetadata.decode(reader, reader.uint32()) };
|
|
368
|
+
continue;
|
|
369
|
+
case 2:
|
|
370
|
+
if (tag !== 18) {
|
|
371
|
+
break;
|
|
372
|
+
}
|
|
373
|
+
message.metadata = {
|
|
374
|
+
$case: "sourceMapMetadata",
|
|
375
|
+
sourceMapMetadata: exports.SourceMapMetadata.decode(reader, reader.uint32()),
|
|
376
|
+
};
|
|
377
|
+
continue;
|
|
378
|
+
case 3:
|
|
379
|
+
if (tag !== 26) {
|
|
380
|
+
break;
|
|
381
|
+
}
|
|
382
|
+
message.metadata = {
|
|
383
|
+
$case: "reactNativeMetadata",
|
|
384
|
+
reactNativeMetadata: exports.ReactNativeMetadata.decode(reader, reader.uint32()),
|
|
385
|
+
};
|
|
386
|
+
continue;
|
|
387
|
+
}
|
|
388
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
389
|
+
break;
|
|
390
|
+
}
|
|
391
|
+
reader.skipType(tag & 7);
|
|
392
|
+
}
|
|
393
|
+
return message;
|
|
394
|
+
},
|
|
395
|
+
fromJSON(object) {
|
|
396
|
+
return {
|
|
397
|
+
metadata: isSet(object.dsymMetadata)
|
|
398
|
+
? { $case: "dsymMetadata", dsymMetadata: exports.DsymMetadata.fromJSON(object.dsymMetadata) }
|
|
399
|
+
: isSet(object.sourceMapMetadata)
|
|
400
|
+
? { $case: "sourceMapMetadata", sourceMapMetadata: exports.SourceMapMetadata.fromJSON(object.sourceMapMetadata) }
|
|
401
|
+
: isSet(object.reactNativeMetadata)
|
|
402
|
+
? {
|
|
403
|
+
$case: "reactNativeMetadata",
|
|
404
|
+
reactNativeMetadata: exports.ReactNativeMetadata.fromJSON(object.reactNativeMetadata),
|
|
405
|
+
}
|
|
406
|
+
: undefined,
|
|
407
|
+
};
|
|
408
|
+
},
|
|
409
|
+
toJSON(message) {
|
|
410
|
+
var _a, _b, _c;
|
|
411
|
+
const obj = {};
|
|
412
|
+
if (((_a = message.metadata) === null || _a === void 0 ? void 0 : _a.$case) === "dsymMetadata") {
|
|
413
|
+
obj.dsymMetadata = exports.DsymMetadata.toJSON(message.metadata.dsymMetadata);
|
|
414
|
+
}
|
|
415
|
+
if (((_b = message.metadata) === null || _b === void 0 ? void 0 : _b.$case) === "sourceMapMetadata") {
|
|
416
|
+
obj.sourceMapMetadata = exports.SourceMapMetadata.toJSON(message.metadata.sourceMapMetadata);
|
|
417
|
+
}
|
|
418
|
+
if (((_c = message.metadata) === null || _c === void 0 ? void 0 : _c.$case) === "reactNativeMetadata") {
|
|
419
|
+
obj.reactNativeMetadata = exports.ReactNativeMetadata.toJSON(message.metadata.reactNativeMetadata);
|
|
420
|
+
}
|
|
421
|
+
return obj;
|
|
422
|
+
},
|
|
423
|
+
create(base) {
|
|
424
|
+
return exports.EntityMetadata.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
425
|
+
},
|
|
426
|
+
fromPartial(object) {
|
|
427
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
428
|
+
const message = createBaseEntityMetadata();
|
|
429
|
+
if (((_a = object.metadata) === null || _a === void 0 ? void 0 : _a.$case) === "dsymMetadata" &&
|
|
430
|
+
((_b = object.metadata) === null || _b === void 0 ? void 0 : _b.dsymMetadata) !== undefined &&
|
|
431
|
+
((_c = object.metadata) === null || _c === void 0 ? void 0 : _c.dsymMetadata) !== null) {
|
|
432
|
+
message.metadata = {
|
|
433
|
+
$case: "dsymMetadata",
|
|
434
|
+
dsymMetadata: exports.DsymMetadata.fromPartial(object.metadata.dsymMetadata),
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
if (((_d = object.metadata) === null || _d === void 0 ? void 0 : _d.$case) === "sourceMapMetadata" &&
|
|
438
|
+
((_e = object.metadata) === null || _e === void 0 ? void 0 : _e.sourceMapMetadata) !== undefined &&
|
|
439
|
+
((_f = object.metadata) === null || _f === void 0 ? void 0 : _f.sourceMapMetadata) !== null) {
|
|
440
|
+
message.metadata = {
|
|
441
|
+
$case: "sourceMapMetadata",
|
|
442
|
+
sourceMapMetadata: exports.SourceMapMetadata.fromPartial(object.metadata.sourceMapMetadata),
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
if (((_g = object.metadata) === null || _g === void 0 ? void 0 : _g.$case) === "reactNativeMetadata" &&
|
|
446
|
+
((_h = object.metadata) === null || _h === void 0 ? void 0 : _h.reactNativeMetadata) !== undefined &&
|
|
447
|
+
((_j = object.metadata) === null || _j === void 0 ? void 0 : _j.reactNativeMetadata) !== null) {
|
|
448
|
+
message.metadata = {
|
|
449
|
+
$case: "reactNativeMetadata",
|
|
450
|
+
reactNativeMetadata: exports.ReactNativeMetadata.fromPartial(object.metadata.reactNativeMetadata),
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
return message;
|
|
454
|
+
},
|
|
455
|
+
};
|
|
456
|
+
function isSet(value) {
|
|
457
|
+
return value !== null && value !== undefined;
|
|
458
|
+
}
|
|
459
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5X21ldGFkYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvdG8tbW9kZWxzL2NvbS9jb3JhbG9naXgvYmxvYnNldC92Mi9lbnRpdHlfbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLGlFQUFxQztBQUV4QixRQUFBLGVBQWUsR0FBRywwQkFBMEIsQ0FBQztBQWtDMUQsU0FBUyxzQkFBc0I7SUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQzVHLENBQUM7QUFFWSxRQUFBLFlBQVksR0FBRztJQUMxQixNQUFNLENBQUMsT0FBcUIsRUFBRSxTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDcEUsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFD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LENBQUEsTUFBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxpQkFBaUIsTUFBSyxTQUFTO1lBQ2hELENBQUEsTUFBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxpQkFBaUIsTUFBSyxJQUFJLEVBQzNDO1lBQ0EsT0FBTyxDQUFDLFFBQVEsR0FBRztnQkFDakIsS0FBSyxFQUFFLG1CQUFtQjtnQkFDMUIsaUJBQWlCLEVBQUUseUJBQWlCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7YUFDcEYsQ0FBQztTQUNIO1FBQ0QsSUFDRSxDQUFBLE1BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsS0FBSyxNQUFLLHFCQUFxQjtZQUNoRCxDQUFBLE1BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsbUJBQW1CLE1BQUssU0FBUztZQUNsRCxDQUFBLE1BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsbUJBQW1CLE1BQUssSUFBSSxFQUM3QztZQUNBLE9BQU8sQ0FBQyxRQUFRLEdBQUc7Z0JBQ2pCLEtBQUssRUFBRSxxQkFBcUI7Z0JBQzVCLG1CQUFtQixFQUFFLDJCQUFtQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDO2FBQzFGLENBQUM7U0FDSDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBV0YsU0FBUyxLQUFLLENBQUMsS0FBVTtJQUN2QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCBfbTAgZnJvbSBcInByb3RvYnVmanMvbWluaW1hbFwiO1xuXG5leHBvcnQgY29uc3QgcHJvdG9idWZQYWNrYWdlID0gXCJjb20uY29yYWxvZ2l4LmJsb2JzZXQudjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEc3ltTWV0YWRhdGEge1xuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xuICByZWxlYXNlSWQ6IHN0cmluZztcbiAgY29tbWl0SGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVwb05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIG9yZ05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTWFwTWV0YWRhdGEge1xuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xuICByZWxlYXNlSWQ6IHN0cmluZztcbiAgY29tbWl0SGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVwb05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIG9yZ05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhY3ROYXRpdmVNZXRhZGF0YSB7XG4gIGFwcGxpY2F0aW9uOiBzdHJpbmc7XG4gIHJlbGVhc2VJZDogc3RyaW5nO1xuICBjb21taXRIYXNoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZXBvTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgb3JnTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlNZXRhZGF0YSB7XG4gIG1ldGFkYXRhPzpcbiAgICB8IHsgJGNhc2U6IFwiZHN5bU1ldGFkYXRhXCI7IGRzeW1NZXRhZGF0YTogRHN5bU1ldGFkYXRhIH1cbiAgICB8IHsgJGNhc2U6IFwic291cmNlTWFwTWV0YWRhdGFcIjsgc291cmNlTWFwTWV0YWRhdGE6IFNvdXJjZU1hcE1ldGFkYXRhIH1cbiAgICB8IHsgJGNhc2U6IFwicmVhY3ROYXRpdmVNZXRhZGF0YVwiOyByZWFjdE5hdGl2ZU1ldGFkYXRhOiBSZWFjdE5hdGl2ZU1ldGFkYXRhIH1cbiAgICB8IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQmFzZURzeW1NZXRhZGF0YSgpOiBEc3ltTWV0YWRhdGEge1xuICByZXR1cm4geyBhcHBsaWNhdGlvbjogXCJcIiwgcmVsZWFzZUlkOiBcIlwiLCBjb21taXRIYXNoOiB1bmRlZmluZWQsIHJlcG9OYW1lOiB1bmRlZmluZWQsIG9yZ05hbWU6IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgY29uc3QgRHN5bU1ldGFkYXRhID0ge1xuICBlbmNvZGUobWVzc2FnZTogRHN5bU1ldGFkYXRhLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmFwcGxpY2F0aW9uKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE4KS5zdHJpbmcobWVzc2FnZS5yZWxlYXNlSWQpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMjYpLnN0cmluZyhtZXNzYWdlLmNvbW1pdEhhc2gpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDM0KS5zdHJpbmcobWVzc2FnZS5yZXBvTmFtZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm9yZ05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig0Mikuc3RyaW5nKG1lc3NhZ2Uub3JnTmFtZSk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogRHN5bU1ldGFkYXRhIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZURzeW1NZXRhZGF0YSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZWxlYXNlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBpZiAodGFnICE9PSAyNikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5jb21taXRIYXNoID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMzQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVwb05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBpZiAodGFnICE9PSA0Mikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5vcmdOYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogRHN5bU1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwbGljYXRpb246IGlzU2V0KG9iamVjdC5hcHBsaWNhdGlvbikgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuYXBwbGljYXRpb24pIDogXCJcIixcbiAgICAgIHJlbGVhc2VJZDogaXNTZXQob2JqZWN0LnJlbGVhc2VJZCkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QucmVsZWFzZUlkKSA6IFwiXCIsXG4gICAgICBjb21taXRIYXNoOiBpc1NldChvYmplY3QuY29tbWl0SGFzaCkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuY29tbWl0SGFzaCkgOiB1bmRlZmluZWQsXG4gICAgICByZXBvTmFtZTogaXNTZXQob2JqZWN0LnJlcG9OYW1lKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5yZXBvTmFtZSkgOiB1bmRlZmluZWQsXG4gICAgICBvcmdOYW1lOiBpc1NldChvYmplY3Qub3JnTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3Qub3JnTmFtZSkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogRHN5bU1ldGFkYXRhKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgb2JqLmFwcGxpY2F0aW9uID0gbWVzc2FnZS5hcHBsaWNhdGlvbjtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICBvYmoucmVsZWFzZUlkID0gbWVzc2FnZS5yZWxlYXNlSWQ7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLmNvbW1pdEhhc2ggPSBtZXNzYWdlLmNvbW1pdEhhc2g7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5yZXBvTmFtZSA9IG1lc3NhZ2UucmVwb05hbWU7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm9yZ05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLm9yZ05hbWUgPSBtZXNzYWdlLm9yZ05hbWU7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxEc3ltTWV0YWRhdGE+KTogRHN5bU1ldGFkYXRhIHtcbiAgICByZXR1cm4gRHN5bU1ldGFkYXRhLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPERzeW1NZXRhZGF0YT4pOiBEc3ltTWV0YWRhdGEge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlRHN5bU1ldGFkYXRhKCk7XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IG9iamVjdC5hcHBsaWNhdGlvbiA/PyBcIlwiO1xuICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gb2JqZWN0LnJlbGVhc2VJZCA/PyBcIlwiO1xuICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IG9iamVjdC5jb21taXRIYXNoID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLnJlcG9OYW1lID0gb2JqZWN0LnJlcG9OYW1lID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLm9yZ05hbWUgPSBvYmplY3Qub3JnTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlU291cmNlTWFwTWV0YWRhdGEoKTogU291cmNlTWFwTWV0YWRhdGEge1xuICByZXR1cm4geyBhcHBsaWNhdGlvbjogXCJcIiwgcmVsZWFzZUlkOiBcIlwiLCBjb21taXRIYXNoOiB1bmRlZmluZWQsIHJlcG9OYW1lOiB1bmRlZmluZWQsIG9yZ05hbWU6IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgY29uc3QgU291cmNlTWFwTWV0YWRhdGEgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBTb3VyY2VNYXBNZXRhZGF0YSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIGlmIChtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDEwKS5zdHJpbmcobWVzc2FnZS5hcHBsaWNhdGlvbik7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxOCkuc3RyaW5nKG1lc3NhZ2UucmVsZWFzZUlkKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDI2KS5zdHJpbmcobWVzc2FnZS5jb21taXRIYXNoKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigzNCkuc3RyaW5nKG1lc3NhZ2UucmVwb05hbWUpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmdOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNDIpLnN0cmluZyhtZXNzYWdlLm9yZ05hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFNvdXJjZU1hcE1ldGFkYXRhIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVNvdXJjZU1hcE1ldGFkYXRhKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBpZiAodGFnICE9PSAzNCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZXBvTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQyKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm9yZ05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBTb3VyY2VNYXBNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBpc1NldChvYmplY3QuYXBwbGljYXRpb24pID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LnJlbGVhc2VJZCkgOiBcIlwiLFxuICAgICAgY29tbWl0SGFzaDogaXNTZXQob2JqZWN0LmNvbW1pdEhhc2gpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0LmNvbW1pdEhhc2gpIDogdW5kZWZpbmVkLFxuICAgICAgcmVwb05hbWU6IGlzU2V0KG9iamVjdC5yZXBvTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QucmVwb05hbWUpIDogdW5kZWZpbmVkLFxuICAgICAgb3JnTmFtZTogaXNTZXQob2JqZWN0Lm9yZ05hbWUpID8gZ2xvYmFsVGhpcy5TdHJpbmcob2JqZWN0Lm9yZ05hbWUpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IFNvdXJjZU1hcE1ldGFkYXRhKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgb2JqLmFwcGxpY2F0aW9uID0gbWVzc2FnZS5hcHBsaWNhdGlvbjtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICBvYmoucmVsZWFzZUlkID0gbWVzc2FnZS5yZWxlYXNlSWQ7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLmNvbW1pdEhhc2ggPSBtZXNzYWdlLmNvbW1pdEhhc2g7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5yZXBvTmFtZSA9IG1lc3NhZ2UucmVwb05hbWU7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm9yZ05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqLm9yZ05hbWUgPSBtZXNzYWdlLm9yZ05hbWU7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxTb3VyY2VNYXBNZXRhZGF0YT4pOiBTb3VyY2VNYXBNZXRhZGF0YSB7XG4gICAgcmV0dXJuIFNvdXJjZU1hcE1ldGFkYXRhLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPFNvdXJjZU1hcE1ldGFkYXRhPik6IFNvdXJjZU1hcE1ldGFkYXRhIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVNvdXJjZU1hcE1ldGFkYXRhKCk7XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IG9iamVjdC5hcHBsaWNhdGlvbiA/PyBcIlwiO1xuICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gb2JqZWN0LnJlbGVhc2VJZCA/PyBcIlwiO1xuICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IG9iamVjdC5jb21taXRIYXNoID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLnJlcG9OYW1lID0gb2JqZWN0LnJlcG9OYW1lID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLm9yZ05hbWUgPSBvYmplY3Qub3JnTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlUmVhY3ROYXRpdmVNZXRhZGF0YSgpOiBSZWFjdE5hdGl2ZU1ldGFkYXRhIHtcbiAgcmV0dXJuIHsgYXBwbGljYXRpb246IFwiXCIsIHJlbGVhc2VJZDogXCJcIiwgY29tbWl0SGFzaDogdW5kZWZpbmVkLCByZXBvTmFtZTogdW5kZWZpbmVkLCBvcmdOYW1lOiB1bmRlZmluZWQgfTtcbn1cblxuZXhwb3J0IGNvbnN0IFJlYWN0TmF0aXZlTWV0YWRhdGEgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBSZWFjdE5hdGl2ZU1ldGFkYXRhLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmFwcGxpY2F0aW9uKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE4KS5zdHJpbmcobWVzc2FnZS5yZWxlYXNlSWQpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMjYpLnN0cmluZyhtZXNzYWdlLmNvbW1pdEhhc2gpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDM0KS5zdHJpbmcobWVzc2FnZS5yZXBvTmFtZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLm9yZ05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig0Mikuc3RyaW5nKG1lc3NhZ2Uub3JnTmFtZSk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogUmVhY3ROYXRpdmVNZXRhZGF0YSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VSZWFjdE5hdGl2ZU1ldGFkYXRhKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBpZiAodGFnICE9PSAzNCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZXBvTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQyKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLm9yZ05hbWUgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBSZWFjdE5hdGl2ZU1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwbGljYXRpb246IGlzU2V0KG9iamVjdC5hcHBsaWNhdGlvbikgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuYXBwbGljYXRpb24pIDogXCJcIixcbiAgICAgIHJlbGVhc2VJZDogaXNTZXQob2JqZWN0LnJlbGVhc2VJZCkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QucmVsZWFzZUlkKSA6IFwiXCIsXG4gICAgICBjb21taXRIYXNoOiBpc1NldChvYmplY3QuY29tbWl0SGFzaCkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3QuY29tbWl0SGFzaCkgOiB1bmRlZmluZWQsXG4gICAgICByZXBvTmFtZTogaXNTZXQob2JqZWN0LnJlcG9OYW1lKSA/IGdsb2JhbFRoaXMuU3RyaW5nKG9iamVjdC5yZXBvTmFtZSkgOiB1bmRlZmluZWQsXG4gICAgICBvcmdOYW1lOiBpc1NldChvYmplY3Qub3JnTmFtZSkgPyBnbG9iYWxUaGlzLlN0cmluZyhvYmplY3Qub3JnTmFtZSkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogUmVhY3ROYXRpdmVNZXRhZGF0YSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIG9iai5hcHBsaWNhdGlvbiA9IG1lc3NhZ2UuYXBwbGljYXRpb247XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlbGVhc2VJZCAhPT0gXCJcIikge1xuICAgICAgb2JqLnJlbGVhc2VJZCA9IG1lc3NhZ2UucmVsZWFzZUlkO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5jb21taXRIYXNoID0gbWVzc2FnZS5jb21taXRIYXNoO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmoucmVwb05hbWUgPSBtZXNzYWdlLnJlcG9OYW1lO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5vcmdOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iai5vcmdOYW1lID0gbWVzc2FnZS5vcmdOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8UmVhY3ROYXRpdmVNZXRhZGF0YT4pOiBSZWFjdE5hdGl2ZU1ldGFkYXRhIHtcbiAgICByZXR1cm4gUmVhY3ROYXRpdmVNZXRhZGF0YS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxSZWFjdE5hdGl2ZU1ldGFkYXRhPik6IFJlYWN0TmF0aXZlTWV0YWRhdGEge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlUmVhY3ROYXRpdmVNZXRhZGF0YSgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSBvYmplY3QuY29tbWl0SGFzaCA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5yZXBvTmFtZSA9IG9iamVjdC5yZXBvTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5vcmdOYW1lID0gb2JqZWN0Lm9yZ05hbWUgPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZUVudGl0eU1ldGFkYXRhKCk6IEVudGl0eU1ldGFkYXRhIHtcbiAgcmV0dXJuIHsgbWV0YWRhdGE6IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgY29uc3QgRW50aXR5TWV0YWRhdGEgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBFbnRpdHlNZXRhZGF0YSwgd3JpdGVyOiBfbTAuV3JpdGVyID0gX20wLldyaXRlci5jcmVhdGUoKSk6IF9tMC5Xcml0ZXIge1xuICAgIHN3aXRjaCAobWVzc2FnZS5tZXRhZGF0YT8uJGNhc2UpIHtcbiAgICAgIGNhc2UgXCJkc3ltTWV0YWRhdGFcIjpcbiAgICAgICAgRHN5bU1ldGFkYXRhLmVuY29kZShtZXNzYWdlLm1ldGFkYXRhLmRzeW1NZXRhZGF0YSwgd3JpdGVyLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwic291cmNlTWFwTWV0YWRhdGFcIjpcbiAgICAgICAgU291cmNlTWFwTWV0YWRhdGEuZW5jb2RlKG1lc3NhZ2UubWV0YWRhdGEuc291cmNlTWFwTWV0YWRhdGEsIHdyaXRlci51aW50MzIoMTgpLmZvcmsoKSkubGRlbGltKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInJlYWN0TmF0aXZlTWV0YWRhdGFcIjpcbiAgICAgICAgUmVhY3ROYXRpdmVNZXRhZGF0YS5lbmNvZGUobWVzc2FnZS5tZXRhZGF0YS5yZWFjdE5hdGl2ZU1ldGFkYXRhLCB3cml0ZXIudWludDMyKDI2KS5mb3JrKCkpLmxkZWxpbSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBFbnRpdHlNZXRhZGF0YSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VFbnRpdHlNZXRhZGF0YSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubWV0YWRhdGEgPSB7ICRjYXNlOiBcImRzeW1NZXRhZGF0YVwiLCBkc3ltTWV0YWRhdGE6IERzeW1NZXRhZGF0YS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpIH07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHtcbiAgICAgICAgICAgICRjYXNlOiBcInNvdXJjZU1hcE1ldGFkYXRhXCIsXG4gICAgICAgICAgICBzb3VyY2VNYXBNZXRhZGF0YTogU291cmNlTWFwTWV0YWRhdGEuZGVjb2RlKHJlYWRlciwgcmVhZGVyLnVpbnQzMigpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UubWV0YWRhdGEgPSB7XG4gICAgICAgICAgICAkY2FzZTogXCJyZWFjdE5hdGl2ZU1ldGFkYXRhXCIsXG4gICAgICAgICAgICByZWFjdE5hdGl2ZU1ldGFkYXRhOiBSZWFjdE5hdGl2ZU1ldGFkYXRhLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IEVudGl0eU1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0YWRhdGE6IGlzU2V0KG9iamVjdC5kc3ltTWV0YWRhdGEpXG4gICAgICAgID8geyAkY2FzZTogXCJkc3ltTWV0YWRhdGFcIiwgZHN5bU1ldGFkYXRhOiBEc3ltTWV0YWRhdGEuZnJvbUpTT04ob2JqZWN0LmRzeW1NZXRhZGF0YSkgfVxuICAgICAgICA6IGlzU2V0KG9iamVjdC5zb3VyY2VNYXBNZXRhZGF0YSlcbiAgICAgICAgPyB7ICRjYXNlOiBcInNvdXJjZU1hcE1ldGFkYXRhXCIsIHNvdXJjZU1hcE1ldGFkYXRhOiBTb3VyY2VNYXBNZXRhZGF0YS5mcm9tSlNPTihvYmplY3Quc291cmNlTWFwTWV0YWRhdGEpIH1cbiAgICAgICAgOiBpc1NldChvYmplY3QucmVhY3ROYXRpdmVNZXRhZGF0YSlcbiAgICAgICAgPyB7XG4gICAgICAgICAgJGNhc2U6IFwicmVhY3ROYXRpdmVNZXRhZGF0YVwiLFxuICAgICAgICAgIHJlYWN0TmF0aXZlTWV0YWRhdGE6IFJlYWN0TmF0aXZlTWV0YWRhdGEuZnJvbUpTT04ob2JqZWN0LnJlYWN0TmF0aXZlTWV0YWRhdGEpLFxuICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG5cbiAgdG9KU09OKG1lc3NhZ2U6IEVudGl0eU1ldGFkYXRhKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBpZiAobWVzc2FnZS5tZXRhZGF0YT8uJGNhc2UgPT09IFwiZHN5bU1ldGFkYXRhXCIpIHtcbiAgICAgIG9iai5kc3ltTWV0YWRhdGEgPSBEc3ltTWV0YWRhdGEudG9KU09OKG1lc3NhZ2UubWV0YWRhdGEuZHN5bU1ldGFkYXRhKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubWV0YWRhdGE/LiRjYXNlID09PSBcInNvdXJjZU1hcE1ldGFkYXRhXCIpIHtcbiAgICAgIG9iai5zb3VyY2VNYXBNZXRhZGF0YSA9IFNvdXJjZU1hcE1ldGFkYXRhLnRvSlNPTihtZXNzYWdlLm1ldGFkYXRhLnNvdXJjZU1hcE1ldGFkYXRhKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UubWV0YWRhdGE/LiRjYXNlID09PSBcInJlYWN0TmF0aXZlTWV0YWRhdGFcIikge1xuICAgICAgb2JqLnJlYWN0TmF0aXZlTWV0YWRhdGEgPSBSZWFjdE5hdGl2ZU1ldGFkYXRhLnRvSlNPTihtZXNzYWdlLm1ldGFkYXRhLnJlYWN0TmF0aXZlTWV0YWRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8RW50aXR5TWV0YWRhdGE+KTogRW50aXR5TWV0YWRhdGEge1xuICAgIHJldHVybiBFbnRpdHlNZXRhZGF0YS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxFbnRpdHlNZXRhZGF0YT4pOiBFbnRpdHlNZXRhZGF0YSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VFbnRpdHlNZXRhZGF0YSgpO1xuICAgIGlmIChcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uJGNhc2UgPT09IFwiZHN5bU1ldGFkYXRhXCIgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uZHN5bU1ldGFkYXRhICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uZHN5bU1ldGFkYXRhICE9PSBudWxsXG4gICAgKSB7XG4gICAgICBtZXNzYWdlLm1ldGFkYXRhID0ge1xuICAgICAgICAkY2FzZTogXCJkc3ltTWV0YWRhdGFcIixcbiAgICAgICAgZHN5bU1ldGFkYXRhOiBEc3ltTWV0YWRhdGEuZnJvbVBhcnRpYWwob2JqZWN0Lm1ldGFkYXRhLmRzeW1NZXRhZGF0YSksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBvYmplY3QubWV0YWRhdGE/LiRjYXNlID09PSBcInNvdXJjZU1hcE1ldGFkYXRhXCIgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8uc291cmNlTWFwTWV0YWRhdGEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgb2JqZWN0Lm1ldGFkYXRhPy5zb3VyY2VNYXBNZXRhZGF0YSAhPT0gbnVsbFxuICAgICkge1xuICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHtcbiAgICAgICAgJGNhc2U6IFwic291cmNlTWFwTWV0YWRhdGFcIixcbiAgICAgICAgc291cmNlTWFwTWV0YWRhdGE6IFNvdXJjZU1hcE1ldGFkYXRhLmZyb21QYXJ0aWFsKG9iamVjdC5tZXRhZGF0YS5zb3VyY2VNYXBNZXRhZGF0YSksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBvYmplY3QubWV0YWRhdGE/LiRjYXNlID09PSBcInJlYWN0TmF0aXZlTWV0YWRhdGFcIiAmJlxuICAgICAgb2JqZWN0Lm1ldGFkYXRhPy5yZWFjdE5hdGl2ZU1ldGFkYXRhICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9iamVjdC5tZXRhZGF0YT8ucmVhY3ROYXRpdmVNZXRhZGF0YSAhPT0gbnVsbFxuICAgICkge1xuICAgICAgbWVzc2FnZS5tZXRhZGF0YSA9IHtcbiAgICAgICAgJGNhc2U6IFwicmVhY3ROYXRpdmVNZXRhZGF0YVwiLFxuICAgICAgICByZWFjdE5hdGl2ZU1ldGFkYXRhOiBSZWFjdE5hdGl2ZU1ldGFkYXRhLmZyb21QYXJ0aWFsKG9iamVjdC5tZXRhZGF0YS5yZWFjdE5hdGl2ZU1ldGFkYXRhKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxudHlwZSBCdWlsdGluID0gRGF0ZSB8IEZ1bmN0aW9uIHwgVWludDhBcnJheSB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsPFQ+ID0gVCBleHRlbmRzIEJ1aWx0aW4gPyBUXG4gIDogVCBleHRlbmRzIGdsb2JhbFRoaXMuQXJyYXk8aW5mZXIgVT4gPyBnbG9iYWxUaGlzLkFycmF5PERlZXBQYXJ0aWFsPFU+PlxuICA6IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+ID8gUmVhZG9ubHlBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgOiBUIGV4dGVuZHMgeyAkY2FzZTogc3RyaW5nIH0gPyB7IFtLIGluIGtleW9mIE9taXQ8VCwgXCIkY2FzZVwiPl0/OiBEZWVwUGFydGlhbDxUW0tdPiB9ICYgeyAkY2FzZTogVFtcIiRjYXNlXCJdIH1cbiAgOiBUIGV4dGVuZHMge30gPyB7IFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT4gfVxuICA6IFBhcnRpYWw8VD47XG5cbmZ1bmN0aW9uIGlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const protobufPackage = "com.coralogix.blobset.v2";
|
|
2
|
+
export declare enum EntityType {
|
|
3
|
+
ENTITY_TYPE_UNSPECIFIED = 0,
|
|
4
|
+
ENTITY_TYPE_DSYM = 1,
|
|
5
|
+
ENTITY_TYPE_SOURCE_MAP = 2,
|
|
6
|
+
ENTITY_TYPE_REACT_NATIVE = 3
|
|
7
|
+
}
|
|
8
|
+
export declare function entityTypeFromJSON(object: any): EntityType;
|
|
9
|
+
export declare function entityTypeToJSON(object: EntityType): string;
|