@doctorus/common 0.0.19 → 0.0.21
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.
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic Boolean Status enumeration and metadata
|
|
3
|
+
* Provides flexible labeling for boolean states with support for multiple label pairs
|
|
4
|
+
*/
|
|
5
|
+
import type { StatusMetadata } from './types';
|
|
6
|
+
export declare enum BooleanStatus {
|
|
7
|
+
TRUE = "true",
|
|
8
|
+
FALSE = "false"
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Boolean Status metadata configuration with default labels
|
|
12
|
+
* Can be overridden for specific use cases (e.g., active/inactive, yes/no, enabled/disabled)
|
|
13
|
+
*/
|
|
14
|
+
export declare const BOOLEAN_STATUS_METADATA: Record<BooleanStatus, StatusMetadata>;
|
|
15
|
+
/**
|
|
16
|
+
* Boolean Status preset type
|
|
17
|
+
*/
|
|
18
|
+
export type BooleanStatusPreset = 'yesNo' | 'activeInactive' | 'enabledDisabled' | 'validInvalid';
|
|
19
|
+
/**
|
|
20
|
+
* Boolean Status preset metadata registry
|
|
21
|
+
* Maps preset names to their metadata configurations
|
|
22
|
+
*/
|
|
23
|
+
export declare const BOOLEAN_METADATA_REGISTRY: Record<BooleanStatusPreset, Record<BooleanStatus, StatusMetadata>>;
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Generic Boolean Status enumeration and metadata
|
|
4
|
+
* Provides flexible labeling for boolean states with support for multiple label pairs
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.BOOLEAN_METADATA_REGISTRY = exports.BOOLEAN_STATUS_METADATA = exports.BooleanStatus = void 0;
|
|
8
|
+
var BooleanStatus;
|
|
9
|
+
(function (BooleanStatus) {
|
|
10
|
+
BooleanStatus["TRUE"] = "true";
|
|
11
|
+
BooleanStatus["FALSE"] = "false";
|
|
12
|
+
})(BooleanStatus || (exports.BooleanStatus = BooleanStatus = {}));
|
|
13
|
+
/**
|
|
14
|
+
* Boolean Status metadata configuration with default labels
|
|
15
|
+
* Can be overridden for specific use cases (e.g., active/inactive, yes/no, enabled/disabled)
|
|
16
|
+
*/
|
|
17
|
+
exports.BOOLEAN_STATUS_METADATA = {
|
|
18
|
+
[BooleanStatus.TRUE]: {
|
|
19
|
+
icon: 'check_circle',
|
|
20
|
+
color: '#4CAF50', // Green
|
|
21
|
+
label: {
|
|
22
|
+
short: {
|
|
23
|
+
'us-EN': 'Yes',
|
|
24
|
+
'fr-FR': 'Oui',
|
|
25
|
+
},
|
|
26
|
+
long: {
|
|
27
|
+
'us-EN': 'Active',
|
|
28
|
+
'fr-FR': 'Actif',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
description: {
|
|
32
|
+
'us-EN': 'Status is active or enabled',
|
|
33
|
+
'fr-FR': 'Le statut est actif ou activé',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
[BooleanStatus.FALSE]: {
|
|
37
|
+
icon: 'cancel',
|
|
38
|
+
color: '#F44336', // Red
|
|
39
|
+
label: {
|
|
40
|
+
short: {
|
|
41
|
+
'us-EN': 'No',
|
|
42
|
+
'fr-FR': 'Non',
|
|
43
|
+
},
|
|
44
|
+
long: {
|
|
45
|
+
'us-EN': 'Inactive',
|
|
46
|
+
'fr-FR': 'Inactif',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
description: {
|
|
50
|
+
'us-EN': 'Status is inactive or disabled',
|
|
51
|
+
'fr-FR': 'Le statut est inactif ou désactivé',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Preset metadata configurations for common boolean label pairs
|
|
57
|
+
*/
|
|
58
|
+
const YES_NO_METADATA = {
|
|
59
|
+
[BooleanStatus.TRUE]: {
|
|
60
|
+
...exports.BOOLEAN_STATUS_METADATA[BooleanStatus.TRUE],
|
|
61
|
+
label: {
|
|
62
|
+
short: {
|
|
63
|
+
'us-EN': 'Yes',
|
|
64
|
+
'fr-FR': 'Oui',
|
|
65
|
+
},
|
|
66
|
+
long: {
|
|
67
|
+
'us-EN': 'Yes',
|
|
68
|
+
'fr-FR': 'Oui',
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
[BooleanStatus.FALSE]: {
|
|
73
|
+
...exports.BOOLEAN_STATUS_METADATA[BooleanStatus.FALSE],
|
|
74
|
+
label: {
|
|
75
|
+
short: {
|
|
76
|
+
'us-EN': 'No',
|
|
77
|
+
'fr-FR': 'Non',
|
|
78
|
+
},
|
|
79
|
+
long: {
|
|
80
|
+
'us-EN': 'No',
|
|
81
|
+
'fr-FR': 'Non',
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
const ACTIVE_INACTIVE_METADATA = {
|
|
87
|
+
[BooleanStatus.TRUE]: {
|
|
88
|
+
...exports.BOOLEAN_STATUS_METADATA[BooleanStatus.TRUE],
|
|
89
|
+
label: {
|
|
90
|
+
short: {
|
|
91
|
+
'us-EN': 'Active',
|
|
92
|
+
'fr-FR': 'Actif',
|
|
93
|
+
},
|
|
94
|
+
long: {
|
|
95
|
+
'us-EN': 'Active',
|
|
96
|
+
'fr-FR': 'Actif',
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
[BooleanStatus.FALSE]: {
|
|
101
|
+
...exports.BOOLEAN_STATUS_METADATA[BooleanStatus.FALSE],
|
|
102
|
+
label: {
|
|
103
|
+
short: {
|
|
104
|
+
'us-EN': 'Inactive',
|
|
105
|
+
'fr-FR': 'Inactif',
|
|
106
|
+
},
|
|
107
|
+
long: {
|
|
108
|
+
'us-EN': 'Inactive',
|
|
109
|
+
'fr-FR': 'Inactif',
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
const ENABLED_DISABLED_METADATA = {
|
|
115
|
+
[BooleanStatus.TRUE]: {
|
|
116
|
+
...exports.BOOLEAN_STATUS_METADATA[BooleanStatus.TRUE],
|
|
117
|
+
label: {
|
|
118
|
+
short: {
|
|
119
|
+
'us-EN': 'Enabled',
|
|
120
|
+
'fr-FR': 'Activé',
|
|
121
|
+
},
|
|
122
|
+
long: {
|
|
123
|
+
'us-EN': 'Enabled',
|
|
124
|
+
'fr-FR': 'Activé',
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
[BooleanStatus.FALSE]: {
|
|
129
|
+
...exports.BOOLEAN_STATUS_METADATA[BooleanStatus.FALSE],
|
|
130
|
+
label: {
|
|
131
|
+
short: {
|
|
132
|
+
'us-EN': 'Disabled',
|
|
133
|
+
'fr-FR': 'Désactivé',
|
|
134
|
+
},
|
|
135
|
+
long: {
|
|
136
|
+
'us-EN': 'Disabled',
|
|
137
|
+
'fr-FR': 'Désactivé',
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
const VALID_INVALID_METADATA = {
|
|
143
|
+
[BooleanStatus.TRUE]: {
|
|
144
|
+
...exports.BOOLEAN_STATUS_METADATA[BooleanStatus.TRUE],
|
|
145
|
+
label: {
|
|
146
|
+
short: {
|
|
147
|
+
'us-EN': 'Valid',
|
|
148
|
+
'fr-FR': 'Valide',
|
|
149
|
+
},
|
|
150
|
+
long: {
|
|
151
|
+
'us-EN': 'Valid',
|
|
152
|
+
'fr-FR': 'Valide',
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
[BooleanStatus.FALSE]: {
|
|
157
|
+
...exports.BOOLEAN_STATUS_METADATA[BooleanStatus.FALSE],
|
|
158
|
+
label: {
|
|
159
|
+
short: {
|
|
160
|
+
'us-EN': 'Invalid',
|
|
161
|
+
'fr-FR': 'Invalide',
|
|
162
|
+
},
|
|
163
|
+
long: {
|
|
164
|
+
'us-EN': 'Invalid',
|
|
165
|
+
'fr-FR': 'Invalide',
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* Boolean Status preset metadata registry
|
|
172
|
+
* Maps preset names to their metadata configurations
|
|
173
|
+
*/
|
|
174
|
+
exports.BOOLEAN_METADATA_REGISTRY = {
|
|
175
|
+
yesNo: YES_NO_METADATA,
|
|
176
|
+
activeInactive: ACTIVE_INACTIVE_METADATA,
|
|
177
|
+
enabledDisabled: ENABLED_DISABLED_METADATA,
|
|
178
|
+
validInvalid: VALID_INVALID_METADATA,
|
|
179
|
+
};
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1zdGF0dXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdHVzL2Jvb2xlYW4tc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUlILElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsZ0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsYUFBYSw2QkFBYixhQUFhLFFBR3hCO0FBRUQ7OztHQUdHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBMEM7SUFDNUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDcEIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRO1FBQzFCLEtBQUssRUFBRTtZQUNMLEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUUsS0FBSzthQUNmO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixPQUFPLEVBQUUsT0FBTzthQUNqQjtTQUNGO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsT0FBTyxFQUFFLDZCQUE2QjtZQUN0QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO0tBQ0Y7SUFDRCxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNyQixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTTtRQUN4QixLQUFLLEVBQUU7WUFDTCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsT0FBTyxFQUFFLEtBQUs7YUFDZjtZQUNELElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsT0FBTyxFQUFFLFNBQVM7YUFDbkI7U0FDRjtRQUNELFdBQVcsRUFBRTtZQUNYLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsT0FBTyxFQUFFLG9DQUFvQztTQUM5QztLQUNGO0NBQ0YsQ0FBQztB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dUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQy9DLEtBQUssRUFBRTtZQUNMLEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsU0FBUztnQkFDbEIsT0FBTyxFQUFFLFVBQVU7YUFDcEI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLFNBQVM7Z0JBQ2xCLE9BQU8sRUFBRSxVQUFVO2FBQ3BCO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLHlCQUF5QixHQUF1RTtJQUMzRyxLQUFLLEVBQUUsZUFBZTtJQUN0QixjQUFjLEVBQUUsd0JBQXdCO0lBQ3hDLGVBQWUsRUFBRSx5QkFBeUI7SUFDMUMsWUFBWSxFQUFFLHNCQUFzQjtDQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmljIEJvb2xlYW4gU3RhdHVzIGVudW1lcmF0aW9uIGFuZCBtZXRhZGF0YVxuICogUHJvdmlkZXMgZmxleGlibGUgbGFiZWxpbmcgZm9yIGJvb2xlYW4gc3RhdGVzIHdpdGggc3VwcG9ydCBmb3IgbXVsdGlwbGUgbGFiZWwgcGFpcnNcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YXR1c01ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBlbnVtIEJvb2xlYW5TdGF0dXMge1xuICBUUlVFID0gJ3RydWUnLFxuICBGQUxTRSA9ICdmYWxzZScsXG59XG5cbi8qKlxuICogQm9vbGVhbiBTdGF0dXMgbWV0YWRhdGEgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHQgbGFiZWxzXG4gKiBDYW4gYmUgb3ZlcnJpZGRlbiBmb3Igc3BlY2lmaWMgdXNlIGNhc2VzIChlLmcuLCBhY3RpdmUvaW5hY3RpdmUsIHllcy9ubywgZW5hYmxlZC9kaXNhYmxlZClcbiAqL1xuZXhwb3J0IGNvbnN0IEJPT0xFQU5fU1RBVFVTX01FVEFEQVRBOiBSZWNvcmQ8Qm9vbGVhblN0YXR1cywgU3RhdHVzTWV0YWRhdGE+ID0ge1xuICBbQm9vbGVhblN0YXR1cy5UUlVFXToge1xuICAgIGljb246ICdjaGVja19jaXJjbGUnLFxuICAgIGNvbG9yOiAnIzRDQUY1MCcsIC8vIEdyZWVuXG4gICAgbGFiZWw6IHtcbiAgICAgIHNob3J0OiB7XG4gICAgICAgICd1cy1FTic6ICdZZXMnLFxuICAgICAgICAnZnItRlInOiAnT3VpJyxcbiAgICAgIH0sXG4gICAgICBsb25nOiB7XG4gICAgICAgICd1cy1FTic6ICdBY3RpdmUnLFxuICAgICAgICAnZnItRlInOiAnQWN0aWYnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAndXMtRU4nOiAnU3RhdHVzIGlzIGFjdGl2ZSBvciBlbmFibGVkJyxcbiAgICAgICdmci1GUic6ICdMZSBzdGF0dXQgZXN0IGFjdGlmIG91IGFjdGl2w6knLFxuICAgIH0sXG4gIH0sXG4gIFtCb29sZWFuU3RhdHVzLkZBTFNFXToge1xuICAgIGljb246ICdjYW5jZWwnLFxuICAgIGNvbG9yOiAnI0Y0NDMzNicsIC8vIFJlZFxuICAgIGxhYmVsOiB7XG4gICAgICBzaG9ydDoge1xuICAgICAgICAndXMtRU4nOiAnTm8nLFxuICAgICAgICAnZnItRlInOiAnTm9uJyxcbiAgICAgIH0sXG4gICAgICBsb25nOiB7XG4gICAgICAgICd1cy1FTic6ICdJbmFjdGl2ZScsXG4gICAgICAgICdmci1GUic6ICdJbmFjdGlmJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgJ3VzLUVOJzogJ1N0YXR1cyBpcyBpbmFjdGl2ZSBvciBkaXNhYmxlZCcsXG4gICAgICAnZnItRlInOiAnTGUgc3RhdHV0IGVzdCBpbmFjdGlmIG91IGTDqXNhY3RpdsOpJyxcbiAgICB9LFxuICB9LFxufTtcblxuLyoqXG4gKiBCb29sZWFuIFN0YXR1cyBwcmVzZXQgdHlwZVxuICovXG5leHBvcnQgdHlwZSBCb29sZWFuU3RhdHVzUHJlc2V0ID0gJ3llc05vJyB8ICdhY3RpdmVJbmFjdGl2ZScgfCAnZW5hYmxlZERpc2FibGVkJyB8ICd2YWxpZEludmFsaWQnO1xuXG4vKipcbiAqIFByZXNldCBtZXRhZGF0YSBjb25maWd1cmF0aW9ucyBmb3IgY29tbW9uIGJvb2xlYW4gbGFiZWwgcGFpcnNcbiAqL1xuY29uc3QgWUVTX05PX01FVEFEQVRBOiBSZWNvcmQ8Qm9vbGVhblN0YXR1cywgU3RhdHVzTWV0YWRhdGE+ID0ge1xuICBbQm9vbGVhblN0YXR1cy5UUlVFXToge1xuICAgIC4uLkJPT0xFQU5fU1RBVFVTX01FVEFEQVRBW0Jvb2xlYW5TdGF0dXMuVFJVRV0sXG4gICAgbGFiZWw6IHtcbiAgICAgIHNob3J0OiB7XG4gICAgICAgICd1cy1FTic6ICdZZXMnLFxuICAgICAgICAnZnItRlInOiAnT3VpJyxcbiAgICAgIH0sXG4gICAgICBsb25nOiB7XG4gICAgICAgICd1cy1FTic6ICdZZXMnLFxuICAgICAgICAnZnItRlInOiAnT3VpJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgW0Jvb2xlYW5TdGF0dXMuRkFMU0VdOiB7XG4gICAgLi4uQk9PTEVBTl9TVEFUVVNfTUVUQURBVEFbQm9vbGVhblN0YXR1cy5GQUxTRV0sXG4gICAgbGFiZWw6IHtcbiAgICAgIHNob3J0OiB7XG4gICAgICAgICd1cy1FTic6ICdObycsXG4gICAgICAgICdmci1GUic6ICdOb24nLFxuICAgICAgfSxcbiAgICAgIGxvbmc6IHtcbiAgICAgICAgJ3VzLUVOJzogJ05vJyxcbiAgICAgICAgJ2ZyLUZSJzogJ05vbicsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG59O1xuXG5jb25zdCBBQ1RJVkVfSU5BQ1RJVkVfTUVUQURBVEE6IFJlY29yZDxCb29sZWFuU3RhdHVzLCBTdGF0dXNNZXRhZGF0YT4gPSB7XG4gIFtCb29sZWFuU3RhdHVzLlRSVUVdOiB7XG4gICAgLi4uQk9PTEVBTl9TVEFUVVNfTUVUQURBVEFbQm9vbGVhblN0YXR1cy5UUlVFXSxcbiAgICBsYWJlbDoge1xuICAgICAgc2hvcnQ6IHtcbiAgICAgICAgJ3VzLUVOJzogJ0FjdGl2ZScsXG4gICAgICAgICdmci1GUic6ICdBY3RpZicsXG4gICAgICB9LFxuICAgICAgbG9uZzoge1xuICAgICAgICAndXMtRU4nOiAnQWN0aXZlJyxcbiAgICAgICAgJ2ZyLUZSJzogJ0FjdGlmJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgW0Jvb2xlYW5TdGF0dXMuRkFMU0VdOiB7XG4gICAgLi4uQk9PTEVBTl9TVEFUVVNfTUVUQURBVEFbQm9vbGVhblN0YXR1cy5GQUxTRV0sXG4gICAgbGFiZWw6IHtcbiAgICAgIHNob3J0OiB7XG4gICAgICAgICd1cy1FTic6ICdJbmFjdGl2ZScsXG4gICAgICAgICdmci1GUic6ICdJbmFjdGlmJyxcbiAgICAgIH0sXG4gICAgICBsb25nOiB7XG4gICAgICAgICd1cy1FTic6ICdJbmFjdGl2ZScsXG4gICAgICAgICdmci1GUic6ICdJbmFjdGlmJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn07XG5cbmNvbnN0IEVOQUJMRURfRElTQUJMRURfTUVUQURBVEE6IFJlY29yZDxCb29sZWFuU3RhdHVzLCBTdGF0dXNNZXRhZGF0YT4gPSB7XG4gIFtCb29sZWFuU3RhdHVzLlRSVUVdOiB7XG4gICAgLi4uQk9PTEVBTl9TVEFUVVNfTUVUQURBVEFbQm9vbGVhblN0YXR1cy5UUlVFXSxcbiAgICBsYWJlbDoge1xuICAgICAgc2hvcnQ6IHtcbiAgICAgICAgJ3VzLUVOJzogJ0VuYWJsZWQnLFxuICAgICAgICAnZnItRlInOiAnQWN0aXbDqScsXG4gICAgICB9LFxuICAgICAgbG9uZzoge1xuICAgICAgICAndXMtRU4nOiAnRW5hYmxlZCcsXG4gICAgICAgICdmci1GUic6ICdBY3RpdsOpJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgW0Jvb2xlYW5TdGF0dXMuRkFMU0VdOiB7XG4gICAgLi4uQk9PTEVBTl9TVEFUVVNfTUVUQURBVEFbQm9vbGVhblN0YXR1cy5GQUxTRV0sXG4gICAgbGFiZWw6IHtcbiAgICAgIHNob3J0OiB7XG4gICAgICAgICd1cy1FTic6ICdEaXNhYmxlZCcsXG4gICAgICAgICdmci1GUic6ICdEw6lzYWN0aXbDqScsXG4gICAgICB9LFxuICAgICAgbG9uZzoge1xuICAgICAgICAndXMtRU4nOiAnRGlzYWJsZWQnLFxuICAgICAgICAnZnItRlInOiAnRMOpc2FjdGl2w6knLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcblxuY29uc3QgVkFMSURfSU5WQUxJRF9NRVRBREFUQTogUmVjb3JkPEJvb2xlYW5TdGF0dXMsIFN0YXR1c01ldGFkYXRhPiA9IHtcbiAgW0Jvb2xlYW5TdGF0dXMuVFJVRV06IHtcbiAgICAuLi5CT09MRUFOX1NUQVRVU19NRVRBREFUQVtCb29sZWFuU3RhdHVzLlRSVUVdLFxuICAgIGxhYmVsOiB7XG4gICAgICBzaG9ydDoge1xuICAgICAgICAndXMtRU4nOiAnVmFsaWQnLFxuICAgICAgICAnZnItRlInOiAnVmFsaWRlJyxcbiAgICAgIH0sXG4gICAgICBsb25nOiB7XG4gICAgICAgICd1cy1FTic6ICdWYWxpZCcsXG4gICAgICAgICdmci1GUic6ICdWYWxpZGUnLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBbQm9vbGVhblN0YXR1cy5GQUxTRV06IHtcbiAgICAuLi5CT09MRUFOX1NUQVRVU19NRVRBREFUQVtCb29sZWFuU3RhdHVzLkZBTFNFXSxcbiAgICBsYWJlbDoge1xuICAgICAgc2hvcnQ6IHtcbiAgICAgICAgJ3VzLUVOJzogJ0ludmFsaWQnLFxuICAgICAgICAnZnItRlInOiAnSW52YWxpZGUnLFxuICAgICAgfSxcbiAgICAgIGxvbmc6IHtcbiAgICAgICAgJ3VzLUVOJzogJ0ludmFsaWQnLFxuICAgICAgICAnZnItRlInOiAnSW52YWxpZGUnLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcblxuLyoqXG4gKiBCb29sZWFuIFN0YXR1cyBwcmVzZXQgbWV0YWRhdGEgcmVnaXN0cnlcbiAqIE1hcHMgcHJlc2V0IG5hbWVzIHRvIHRoZWlyIG1ldGFkYXRhIGNvbmZpZ3VyYXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBCT09MRUFOX01FVEFEQVRBX1JFR0lTVFJZOiBSZWNvcmQ8Qm9vbGVhblN0YXR1c1ByZXNldCwgUmVjb3JkPEJvb2xlYW5TdGF0dXMsIFN0YXR1c01ldGFkYXRhPj4gPSB7XG4gIHllc05vOiBZRVNfTk9fTUVUQURBVEEsXG4gIGFjdGl2ZUluYWN0aXZlOiBBQ1RJVkVfSU5BQ1RJVkVfTUVUQURBVEEsXG4gIGVuYWJsZWREaXNhYmxlZDogRU5BQkxFRF9ESVNBQkxFRF9NRVRBREFUQSxcbiAgdmFsaWRJbnZhbGlkOiBWQUxJRF9JTlZBTElEX01FVEFEQVRBLFxufTtcbiJdfQ==
|
package/lib/status/index.d.ts
CHANGED
package/lib/status/index.js
CHANGED
|
@@ -44,5 +44,6 @@ __exportStar(require("./types"), exports);
|
|
|
44
44
|
__exportStar(require("./medical-service-status"), exports);
|
|
45
45
|
exports.AccountLocationStatus = __importStar(require("./account-location-status"));
|
|
46
46
|
exports.MedicalHistoryStatus = __importStar(require("./medical-history-status"));
|
|
47
|
+
__exportStar(require("./boolean-status"), exports);
|
|
47
48
|
__exportStar(require("./utils"), exports);
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdHVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsMENBQXdCO0FBQ3hCLDJEQUF5QztBQUN6QyxtRkFBbUU7QUFDbkUsaUZBQWlFO0FBQ2pFLG1EQUFpQztBQUNqQywwQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0YXR1cyBtb2R1bGUgZXhwb3J0c1xuICovXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbWVkaWNhbC1zZXJ2aWNlLXN0YXR1cyc7XG5leHBvcnQgKiBhcyBBY2NvdW50TG9jYXRpb25TdGF0dXMgZnJvbSAnLi9hY2NvdW50LWxvY2F0aW9uLXN0YXR1cyc7XG5leHBvcnQgKiBhcyBNZWRpY2FsSGlzdG9yeVN0YXR1cyBmcm9tICcuL21lZGljYWwtaGlzdG9yeS1zdGF0dXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ib29sZWFuLXN0YXR1cyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbiJdfQ==
|
package/lib/status/utils.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Status utilities for extracting and querying status metadata
|
|
3
3
|
* Provides common functions to work with status configurations
|
|
4
4
|
*/
|
|
5
|
+
import type { BooleanStatus, BooleanStatusPreset } from './boolean-status';
|
|
5
6
|
import type { AccountLocationStatus } from './account-location-status';
|
|
6
7
|
import type { MedicalHistoryStatus } from './medical-history-status';
|
|
7
8
|
import type { MedicalServiceStatus } from './medical-service-status';
|
|
@@ -9,7 +10,7 @@ import type { StatusMetadata, Locale } from './types';
|
|
|
9
10
|
/**
|
|
10
11
|
* Feature type for status selection
|
|
11
12
|
*/
|
|
12
|
-
export type StatusFeature = 'medicalService' | 'accountLocation' | 'medicalHistory';
|
|
13
|
+
export type StatusFeature = 'medicalService' | 'accountLocation' | 'medicalHistory' | BooleanStatusPreset;
|
|
13
14
|
/**
|
|
14
15
|
* Status type mapping for each feature
|
|
15
16
|
*/
|
|
@@ -17,6 +18,10 @@ export type StatusTypeMap = {
|
|
|
17
18
|
medicalService: MedicalServiceStatus;
|
|
18
19
|
accountLocation: AccountLocationStatus;
|
|
19
20
|
medicalHistory: MedicalHistoryStatus;
|
|
21
|
+
yesNo: BooleanStatus;
|
|
22
|
+
activeInactive: BooleanStatus;
|
|
23
|
+
enabledDisabled: BooleanStatus;
|
|
24
|
+
validInvalid: BooleanStatus;
|
|
20
25
|
};
|
|
21
26
|
/**
|
|
22
27
|
* Get status metadata for a specific feature and status
|
package/lib/status/utils.js
CHANGED
|
@@ -17,6 +17,7 @@ exports.getExtendedStatusMetadataForFeature = getExtendedStatusMetadataForFeatur
|
|
|
17
17
|
exports.searchStatusesByFeature = searchStatusesByFeature;
|
|
18
18
|
exports.groupStatusesByColorForFeature = groupStatusesByColorForFeature;
|
|
19
19
|
exports.groupStatusesByIconForFeature = groupStatusesByIconForFeature;
|
|
20
|
+
const boolean_status_1 = require("./boolean-status");
|
|
20
21
|
const account_location_status_1 = require("./account-location-status");
|
|
21
22
|
const medical_history_status_1 = require("./medical-history-status");
|
|
22
23
|
const medical_service_status_1 = require("./medical-service-status");
|
|
@@ -27,6 +28,10 @@ const METADATA_REGISTRY = {
|
|
|
27
28
|
medicalService: medical_service_status_1.MEDICAL_SERVICE_STATUS_METADATA,
|
|
28
29
|
accountLocation: account_location_status_1.ACCOUNT_LOCATION_STATUS_METADATA,
|
|
29
30
|
medicalHistory: medical_history_status_1.MEDICAL_HISTORY_STATUS_METADATA,
|
|
31
|
+
yesNo: boolean_status_1.BOOLEAN_METADATA_REGISTRY.yesNo,
|
|
32
|
+
activeInactive: boolean_status_1.BOOLEAN_METADATA_REGISTRY.activeInactive,
|
|
33
|
+
enabledDisabled: boolean_status_1.BOOLEAN_METADATA_REGISTRY.enabledDisabled,
|
|
34
|
+
validInvalid: boolean_status_1.BOOLEAN_METADATA_REGISTRY.validInvalid,
|
|
30
35
|
};
|
|
31
36
|
/**
|
|
32
37
|
* Get status metadata for a specific feature and status
|
|
@@ -194,4 +199,4 @@ function groupStatusesByIconForFeature(feature) {
|
|
|
194
199
|
});
|
|
195
200
|
return grouped;
|
|
196
201
|
}
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdHVzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7O0FBd0NILGtFQWVDO0FBUUQsMERBRUM7QUFRRCw0REFFQztBQVVELDREQVFDO0FBU0Qsd0VBTUM7QUFPRCx3RUFRQztBQU9ELDREQUdDO0FBUUQsMERBUUM7QUFRRCxvREFZQztBQWVELGtGQWVDO0FBU0QsMERBY0M7QUFPRCx3RUFlQztBQU9ELHNFQWFDO0FBbFFELHVFQUE2RTtBQUM3RSxxRUFBMkU7QUFDM0UscUVBQTJFO0FBZ0IzRTs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQW1FO0lBQ3hGLGNBQWMsRUFBRSx3REFBK0I7SUFDL0MsZUFBZSxFQUFFLDBEQUFnQztJQUNqRCxjQUFjLEVBQUUsd0RBQStCO0NBQ2hELENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxTQUFnQiwyQkFBMkIsQ0FDekMsT0FBVSxFQUNWLE1BQXdCO0lBRXhCLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixPQUFPLEtBQUssTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQTBCLE9BQVUsRUFBRSxNQUF3QjtJQUNuRyxPQUFPLDJCQUEyQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FB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RUFBRSxFQUFFO1FBQ2xELE1BQU0sU0FBUyxHQUFHLElBQXNCLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBMEIsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBMEIsT0FBVTtJQUMvRSxNQUFNLFFBQVEsR0FBRyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxNQUFNLE9BQU8sR0FBdUMsRUFBRSxDQUFDO0lBRXZELE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUNsRCxNQUFNLFNBQVMsR0FBRyxJQUFzQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQTBCLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0YXR1cyB1dGlsaXRpZXMgZm9yIGV4dHJhY3RpbmcgYW5kIHF1ZXJ5aW5nIHN0YXR1cyBtZXRhZGF0YVxuICogUHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGggc3RhdHVzIGNvbmZpZ3VyYXRpb25zXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBY2NvdW50TG9jYXRpb25TdGF0dXMgfSBmcm9tICcuL2FjY291bnQtbG9jYXRpb24tc3RhdHVzJztcbmltcG9ydCB0eXBlIHsgTWVkaWNhbEhpc3RvcnlTdGF0dXMgfSBmcm9tICcuL21lZGljYWwtaGlzdG9yeS1zdGF0dXMnO1xuaW1wb3J0IHR5cGUgeyBNZWRpY2FsU2VydmljZVN0YXR1cyB9IGZyb20gJy4vbWVkaWNhbC1zZXJ2aWNlLXN0YXR1cyc7XG5pbXBvcnQgdHlwZSB7IFN0YXR1c01ldGFkYXRhLCBMb2NhbGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFDQ09VTlRfTE9DQVRJT05fU1RBVFVTX01FVEFEQVRBIH0gZnJvbSAnLi9hY2NvdW50LWxvY2F0aW9uLXN0YXR1cyc7XG5pbXBvcnQgeyBNRURJQ0FMX0hJU1RPUllfU1RBVFVTX01FVEFEQVRBIH0gZnJvbSAnLi9tZWRpY2FsLWhpc3Rvcnktc3RhdHVzJztcbmltcG9ydCB7IE1FRElDQUxfU0VSVklDRV9TVEFUVVNfTUVUQURBVEEgfSBmcm9tICcuL21lZGljYWwtc2VydmljZS1zdGF0dXMnO1xuXG4vKipcbiAqIEZlYXR1cmUgdHlwZSBmb3Igc3RhdHVzIHNlbGVjdGlvblxuICovXG5leHBvcnQgdHlwZSBTdGF0dXNGZWF0dXJlID0gJ21lZGljYWxTZXJ2aWNlJyB8ICdhY2NvdW50TG9jYXRpb24nIHwgJ21lZGljYWxIaXN0b3J5JztcblxuLyoqXG4gKiBTdGF0dXMgdHlwZSBtYXBwaW5nIGZvciBlYWNoIGZlYXR1cmVcbiAqL1xuZXhwb3J0IHR5cGUgU3RhdHVzVHlwZU1hcCA9IHtcbiAgbWVkaWNhbFNlcnZpY2U6IE1lZGljYWxTZXJ2aWNlU3RhdHVzO1xuICBhY2NvdW50TG9jYXRpb246IEFjY291bnRMb2NhdGlvblN0YXR1cztcbiAgbWVkaWNhbEhpc3Rvcnk6IE1lZGljYWxIaXN0b3J5U3RhdHVzO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSByZWdpc3RyeSBtYXBwaW5nIGZlYXR1cmVzIHRvIHRoZWlyIHN0YXR1cyBjb25maWd1cmF0aW9uc1xuICovXG5jb25zdCBNRVRBREFUQV9SRUdJU1RSWTogUmVjb3JkPFN0YXR1c0ZlYXR1cmUsIFJlY29yZDxzdHJpbmcgfCBudW1iZXIsIFN0YXR1c01ldGFkYXRhPj4gPSB7XG4gIG1lZGljYWxTZXJ2aWNlOiBNRURJQ0FMX1NFUlZJQ0VfU1RBVFVTX01FVEFEQVRBLFxuICBhY2NvdW50TG9jYXRpb246IEFDQ09VTlRfTE9DQVRJT05fU1RBVFVTX01FVEFEQVRBLFxuICBtZWRpY2FsSGlzdG9yeTogTUVESUNBTF9ISVNUT1JZX1NUQVRVU19NRVRBREFUQSxcbn07XG5cbi8qKlxuICogR2V0IHN0YXR1cyBtZXRhZGF0YSBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlIGFuZCBzdGF0dXNcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZSAoZS5nLiwgJ21lZGljYWxTZXJ2aWNlJywgJ2FjY291bnRMb2NhdGlvbicpXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHJldHVybnMgVGhlIGNvbXBsZXRlIFN0YXR1c01ldGFkYXRhIGZvciB0aGUgZ2l2ZW4gZmVhdHVyZSBhbmQgc3RhdHVzXG4gKiBAdGhyb3dzIEVycm9yIGlmIGZlYXR1cmUgb3Igc3RhdHVzIGlzIG5vdCBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbiAgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdLFxuKTogU3RhdHVzTWV0YWRhdGEge1xuICBjb25zdCByZWdpc3RyeSA9IE1FVEFEQVRBX1JFR0lTVFJZW2ZlYXR1cmVdO1xuICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHN0YXR1cyBmZWF0dXJlOiAke2ZlYXR1cmV9YCk7XG4gIH1cblxuICBjb25zdCBtZXRhZGF0YSA9IHJlZ2lzdHJ5W3N0YXR1c107XG4gIGlmICghbWV0YWRhdGEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc3RhdHVzIGZvciBmZWF0dXJlICR7ZmVhdHVyZX06ICR7c3RhdHVzfWApO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFkYXRhO1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgaWNvbiBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlIGFuZCBzdGF0dXNcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHBhcmFtIHN0YXR1cyAtIFRoZSBzdGF0dXMgdmFsdWVcbiAqIEByZXR1cm5zIFRoZSBNYXRlcmlhbCBpY29uIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0ljb25Gb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihmZWF0dXJlOiBULCBzdGF0dXM6IFN0YXR1c1R5cGVNYXBbVF0pOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0U3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlKGZlYXR1cmUsIHN0YXR1cykuaWNvbjtcbn1cblxuLyoqXG4gKiBHZXQgc3RhdHVzIGNvbG9yIGZvciBhIHNwZWNpZmljIGZlYXR1cmUgYW5kIHN0YXR1c1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHJldHVybnMgVGhlIGhleCBjb2xvciBjb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0dXNDb2xvckZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KGZlYXR1cmU6IFQsIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSwgc3RhdHVzKS5jb2xvcjtcbn1cblxuLyoqXG4gKiBHZXQgc3RhdHVzIGxhYmVsIGZvciBhIHNwZWNpZmljIGZlYXR1cmUgYW5kIHN0YXR1c1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHBhcmFtIGxvY2FsZSAtIFRoZSBsYW5ndWFnZSBsb2NhbGUgKGRlZmF1bHQ6ICd1cy1FTicpXG4gKiBAcGFyYW0gZm9ybWF0IC0gTGFiZWwgZm9ybWF0OiAnc2hvcnQnIG9yICdsb25nJyAoZGVmYXVsdDogJ3Nob3J0JylcbiAqIEByZXR1cm5zIFRoZSB0cmFuc2xhdGVkIGxhYmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0dXNMYWJlbEZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KFxuICBmZWF0dXJlOiBULFxuICBzdGF0dXM6IFN0YXR1c1R5cGVNYXBbVF0sXG4gIGxvY2FsZTogTG9jYWxlID0gJ3VzLUVOJyxcbiAgZm9ybWF0OiAnc2hvcnQnIHwgJ2xvbmcnID0gJ3Nob3J0Jyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IG1ldGFkYXRhID0gZ2V0U3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlKGZlYXR1cmUsIHN0YXR1cyk7XG4gIHJldHVybiBtZXRhZGF0YS5sYWJlbFtmb3JtYXRdW2xvY2FsZV07XG59XG5cbi8qKlxuICogR2V0IHN0YXR1cyBkZXNjcmlwdGlvbiBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlIGFuZCBzdGF0dXNcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHBhcmFtIHN0YXR1cyAtIFRoZSBzdGF0dXMgdmFsdWVcbiAqIEBwYXJhbSBsb2NhbGUgLSBUaGUgbGFuZ3VhZ2UgbG9jYWxlIChkZWZhdWx0OiAndXMtRU4nKVxuICogQHJldHVybnMgVGhlIHRyYW5zbGF0ZWQgZGVzY3JpcHRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0Rlc2NyaXB0aW9uRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4gIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSxcbiAgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nLFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlLCBzdGF0dXMpLmRlc2NyaXB0aW9uW2xvY2FsZV07XG59XG5cbi8qKlxuICogR2V0IGFsbCBtZXRhZGF0YSBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEByZXR1cm5zIFJlY29yZCBvZiBhbGwgc3RhdHVzZXMgYW5kIHRoZWlyIG1ldGFkYXRhIGZvciB0aGUgZmVhdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsU3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbik6IFJlY29yZDxTdGF0dXNUeXBlTWFwW1RdLCBTdGF0dXNNZXRhZGF0YT4ge1xuICBjb25zdCByZWdpc3RyeSA9IE1FVEFEQVRBX1JFR0lTVFJZW2ZlYXR1cmVdO1xuICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHN0YXR1cyBmZWF0dXJlOiAke2ZlYXR1cmV9YCk7XG4gIH1cbiAgcmV0dXJuIHJlZ2lzdHJ5IGFzIFJlY29yZDxTdGF0dXNUeXBlTWFwW1RdLCBTdGF0dXNNZXRhZGF0YT47XG59XG5cbi8qKlxuICogR2V0IGFsbCBzdGF0dXNlcyBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEByZXR1cm5zIEFycmF5IG9mIGFsbCBzdGF0dXMgdmFsdWVzIGZvciB0aGUgZmVhdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsU3RhdHVzZXNGb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihmZWF0dXJlOiBUKTogU3RhdHVzVHlwZU1hcFtUXVtdIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSk7XG4gIHJldHVybiBPYmplY3Qua2V5cyhtZXRhZGF0YSkgYXMgU3RhdHVzVHlwZU1hcFtUXVtdO1xufVxuXG4vKipcbiAqIEZpbHRlciBzdGF0dXNlcyBieSBjcml0ZXJpYVxuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gcHJlZGljYXRlIC0gRnVuY3Rpb24gdG8gdGVzdCBlYWNoIHN0YXR1cyBtZXRhZGF0YVxuICogQHJldHVybnMgQXJyYXkgb2Ygc3RhdHVzZXMgdGhhdCBtYXRjaCB0aGUgcHJlZGljYXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJTdGF0dXNlc0J5RmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4gIHByZWRpY2F0ZTogKG1ldGFkYXRhOiBTdGF0dXNNZXRhZGF0YSwgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdKSA9PiBib29sZWFuLFxuKTogU3RhdHVzVHlwZU1hcFtUXVtdIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSk7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhtZXRhZGF0YSlcbiAgICAuZmlsdGVyKChbc3RhdHVzLCBtZXRhXSkgPT4gcHJlZGljYXRlKG1ldGEgYXMgU3RhdHVzTWV0YWRhdGEsIHN0YXR1cyBhcyBTdGF0dXNUeXBlTWFwW1RdKSlcbiAgICAubWFwKChbc3RhdHVzXSkgPT4gc3RhdHVzIGFzIFN0YXR1c1R5cGVNYXBbVF0pO1xufVxuXG4vKipcbiAqIE1hcCBzdGF0dXNlcyB0byBhIHNwZWNpZmljIHZhbHVlIHVzaW5nIGEgdHJhbnNmb3JtIGZ1bmN0aW9uXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEBwYXJhbSB0cmFuc2Zvcm0gLSBGdW5jdGlvbiB0byB0cmFuc2Zvcm0gZWFjaCBzdGF0dXMgbWV0YWRhdGFcbiAqIEByZXR1cm5zIFJlY29yZCBvZiBzdGF0dXNlcyBtYXBwZWQgdG8gdGhlIHRyYW5zZm9ybWVkIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwU3RhdHVzZXNCeUZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmUsIFU+KFxuICBmZWF0dXJlOiBULFxuICB0cmFuc2Zvcm06IChtZXRhZGF0YTogU3RhdHVzTWV0YWRhdGEsIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSkgPT4gVSxcbik6IFJlY29yZDxTdGF0dXNUeXBlTWFwW1RdLCBVPiB7XG4gIGNvbnN0IG1ldGFkYXRhID0gZ2V0QWxsU3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlKGZlYXR1cmUpO1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFU+ID0ge307XG5cbiAgT2JqZWN0LmVudHJpZXMobWV0YWRhdGEpLmZvckVhY2goKFtzdGF0dXMsIG1ldGFdKSA9PiB7XG4gICAgcmVzdWx0W3N0YXR1c10gPSB0cmFuc2Zvcm0obWV0YSBhcyBTdGF0dXNNZXRhZGF0YSwgc3RhdHVzIGFzIFN0YXR1c1R5cGVNYXBbVF0pO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0IGFzIFJlY29yZDxTdGF0dXNUeXBlTWFwW1RdLCBVPjtcbn1cblxuLyoqXG4gKiBHZXQgc3RhdHVzIG1ldGFkYXRhIHdpdGggY29tcHV0ZWQgcHJvcGVydGllc1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHBhcmFtIGxvY2FsZSAtIFRoZSBsYW5ndWFnZSBsb2NhbGVcbiAqIEByZXR1cm5zIEV4dGVuZGVkIG1ldGFkYXRhIHdpdGggY29tcHV0ZWQgbGFiZWxzIGFuZCBkZXNjcmlwdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkU3RhdHVzTWV0YWRhdGEgZXh0ZW5kcyBPbWl0PFN0YXR1c01ldGFkYXRhLCAnZGVzY3JpcHRpb24nPiB7XG4gIHNob3J0TGFiZWw6IHN0cmluZztcbiAgbG9uZ0xhYmVsOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbmRlZFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4gIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSxcbiAgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nLFxuKTogRXh0ZW5kZWRTdGF0dXNNZXRhZGF0YSB7XG4gIGNvbnN0IG1ldGFkYXRhID0gZ2V0U3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlKGZlYXR1cmUsIHN0YXR1cyk7XG5cbiAgcmV0dXJuIHtcbiAgICBpY29uOiBtZXRhZGF0YS5pY29uLFxuICAgIGNvbG9yOiBtZXRhZGF0YS5jb2xvcixcbiAgICBsYWJlbDogbWV0YWRhdGEubGFiZWwsXG4gICAgc2hvcnRMYWJlbDogbWV0YWRhdGEubGFiZWwuc2hvcnRbbG9jYWxlXSxcbiAgICBsb25nTGFiZWw6IG1ldGFkYXRhLmxhYmVsLmxvbmdbbG9jYWxlXSxcbiAgICBkZXNjcmlwdGlvbjogbWV0YWRhdGEuZGVzY3JpcHRpb25bbG9jYWxlXSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZWFyY2ggc3RhdHVzZXMgYnkgbGFiZWxcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHBhcmFtIHNlYXJjaFRlcm0gLSBUaGUgc2VhcmNoIHRlcm0gKGNhc2UtaW5zZW5zaXRpdmUpXG4gKiBAcGFyYW0gbG9jYWxlIC0gVGhlIGxhbmd1YWdlIGxvY2FsZVxuICogQHJldHVybnMgQXJyYXkgb2Ygc3RhdHVzZXMgbWF0Y2hpbmcgdGhlIHNlYXJjaCB0ZXJtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hTdGF0dXNlc0J5RmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4gIHNlYXJjaFRlcm06IHN0cmluZyxcbiAgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nLFxuKTogU3RhdHVzVHlwZU1hcFtUXVtdIHtcbiAgY29uc3QgbG93ZXJTZWFyY2ggPSBzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCk7XG5cbiAgcmV0dXJuIGZpbHRlclN0YXR1c2VzQnlGZWF0dXJlKGZlYXR1cmUsIChtZXRhZGF0YSkgPT4ge1xuICAgIGNvbnN0IHNob3J0TGFiZWwgPSBtZXRhZGF0YS5sYWJlbC5zaG9ydFtsb2NhbGVdLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbG9uZ0xhYmVsID0gbWV0YWRhdGEubGFiZWwubG9uZ1tsb2NhbGVdLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBtZXRhZGF0YS5kZXNjcmlwdGlvbltsb2NhbGVdLnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gc2hvcnRMYWJlbC5pbmNsdWRlcyhsb3dlclNlYXJjaCkgfHwgbG9uZ0xhYmVsLmluY2x1ZGVzKGxvd2VyU2VhcmNoKSB8fCBkZXNjcmlwdGlvbi5pbmNsdWRlcyhsb3dlclNlYXJjaCk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgbWV0YWRhdGEgZ3JvdXBlZCBieSBjb2xvclxuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcmV0dXJucyBSZWNvcmQgb2YgY29sb3JzIG1hcHBlZCB0byBhcnJheXMgb2Ygc3RhdHVzZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwU3RhdHVzZXNCeUNvbG9yRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4pOiBSZWNvcmQ8c3RyaW5nLCBTdGF0dXNUeXBlTWFwW1RdW10+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSk7XG4gIGNvbnN0IGdyb3VwZWQ6IFJlY29yZDxzdHJpbmcsIFN0YXR1c1R5cGVNYXBbVF1bXT4gPSB7fTtcblxuICBPYmplY3QuZW50cmllcyhtZXRhZGF0YSkuZm9yRWFjaCgoW3N0YXR1cywgbWV0YV0pID0+IHtcbiAgICBjb25zdCBtZXRhVHlwZWQgPSBtZXRhIGFzIFN0YXR1c01ldGFkYXRhO1xuICAgIGlmICghZ3JvdXBlZFttZXRhVHlwZWQuY29sb3JdKSB7XG4gICAgICBncm91cGVkW21ldGFUeXBlZC5jb2xvcl0gPSBbXTtcbiAgICB9XG4gICAgZ3JvdXBlZFttZXRhVHlwZWQuY29sb3JdLnB1c2goc3RhdHVzIGFzIFN0YXR1c1R5cGVNYXBbVF0pO1xuICB9KTtcblxuICByZXR1cm4gZ3JvdXBlZDtcbn1cblxuLyoqXG4gKiBHZXQgc3RhdHVzIG1ldGFkYXRhIGdyb3VwZWQgYnkgaWNvblxuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcmV0dXJucyBSZWNvcmQgb2YgaWNvbnMgbWFwcGVkIHRvIGFycmF5cyBvZiBzdGF0dXNlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBTdGF0dXNlc0J5SWNvbkZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KGZlYXR1cmU6IFQpOiBSZWNvcmQ8c3RyaW5nLCBTdGF0dXNUeXBlTWFwW1RdW10+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSk7XG4gIGNvbnN0IGdyb3VwZWQ6IFJlY29yZDxzdHJpbmcsIFN0YXR1c1R5cGVNYXBbVF1bXT4gPSB7fTtcblxuICBPYmplY3QuZW50cmllcyhtZXRhZGF0YSkuZm9yRWFjaCgoW3N0YXR1cywgbWV0YV0pID0+IHtcbiAgICBjb25zdCBtZXRhVHlwZWQgPSBtZXRhIGFzIFN0YXR1c01ldGFkYXRhO1xuICAgIGlmICghZ3JvdXBlZFttZXRhVHlwZWQuaWNvbl0pIHtcbiAgICAgIGdyb3VwZWRbbWV0YVR5cGVkLmljb25dID0gW107XG4gICAgfVxuICAgIGdyb3VwZWRbbWV0YVR5cGVkLmljb25dLnB1c2goc3RhdHVzIGFzIFN0YXR1c1R5cGVNYXBbVF0pO1xuICB9KTtcblxuICByZXR1cm4gZ3JvdXBlZDtcbn1cbiJdfQ==
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdHVzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7O0FBa0RILGtFQWVDO0FBUUQsMERBRUM7QUFRRCw0REFFQztBQVVELDREQVFDO0FBU0Qsd0VBTUM7QUFPRCx3RUFRQztBQU9ELDREQUdDO0FBUUQsMERBUUM7QUFRRCxvREFZQztBQWVELGtGQWVDO0FBU0QsMERBY0M7QUFPRCx3RUFlQztBQU9ELHNFQWFDO0FBM1FELHFEQUE2RDtBQUM3RCx1RUFBNkU7QUFDN0UscUVBQTJFO0FBQzNFLHFFQUEyRTtBQW9CM0U7O0dBRUc7QUFDSCxNQUFNLGlCQUFpQixHQUFtRTtJQUN4RixjQUFjLEVBQUUsd0RBQStCO0lBQy9DLGVBQWUsRUFBRSwwREFBZ0M7SUFDakQsY0FBYyxFQUFFLHdEQUErQjtJQUMvQyxLQUFLLEVBQUUsMENBQXlCLENBQUMsS0FBSztJQUN0QyxjQUFjLEVBQUUsMENBQXlCLENBQUMsY0FBYztJQUN4RCxlQUFlLEVBQUUsMENBQXlCLENBQUMsZUFBZTtJQUMxRCxZQUFZLEVBQUUsMENBQXlCLENBQUMsWUFBWTtDQUNyRCxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQ3pDLE9BQVUsRUFDVixNQUF3QjtJQUV4QixNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDLENB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QUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGF0dXMgdXRpbGl0aWVzIGZvciBleHRyYWN0aW5nIGFuZCBxdWVyeWluZyBzdGF0dXMgbWV0YWRhdGFcbiAqIFByb3ZpZGVzIGNvbW1vbiBmdW5jdGlvbnMgdG8gd29yayB3aXRoIHN0YXR1cyBjb25maWd1cmF0aW9uc1xuICovXG5cbmltcG9ydCB0eXBlIHsgQm9vbGVhblN0YXR1cywgQm9vbGVhblN0YXR1c1ByZXNldCB9IGZyb20gJy4vYm9vbGVhbi1zdGF0dXMnO1xuaW1wb3J0IHR5cGUgeyBBY2NvdW50TG9jYXRpb25TdGF0dXMgfSBmcm9tICcuL2FjY291bnQtbG9jYXRpb24tc3RhdHVzJztcbmltcG9ydCB0eXBlIHsgTWVkaWNhbEhpc3RvcnlTdGF0dXMgfSBmcm9tICcuL21lZGljYWwtaGlzdG9yeS1zdGF0dXMnO1xuaW1wb3J0IHR5cGUgeyBNZWRpY2FsU2VydmljZVN0YXR1cyB9IGZyb20gJy4vbWVkaWNhbC1zZXJ2aWNlLXN0YXR1cyc7XG5pbXBvcnQgdHlwZSB7IFN0YXR1c01ldGFkYXRhLCBMb2NhbGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEJPT0xFQU5fTUVUQURBVEFfUkVHSVNUUlkgfSBmcm9tICcuL2Jvb2xlYW4tc3RhdHVzJztcbmltcG9ydCB7IEFDQ09VTlRfTE9DQVRJT05fU1RBVFVTX01FVEFEQVRBIH0gZnJvbSAnLi9hY2NvdW50LWxvY2F0aW9uLXN0YXR1cyc7XG5pbXBvcnQgeyBNRURJQ0FMX0hJU1RPUllfU1RBVFVTX01FVEFEQVRBIH0gZnJvbSAnLi9tZWRpY2FsLWhpc3Rvcnktc3RhdHVzJztcbmltcG9ydCB7IE1FRElDQUxfU0VSVklDRV9TVEFUVVNfTUVUQURBVEEgfSBmcm9tICcuL21lZGljYWwtc2VydmljZS1zdGF0dXMnO1xuXG4vKipcbiAqIEZlYXR1cmUgdHlwZSBmb3Igc3RhdHVzIHNlbGVjdGlvblxuICovXG5leHBvcnQgdHlwZSBTdGF0dXNGZWF0dXJlID0gJ21lZGljYWxTZXJ2aWNlJyB8ICdhY2NvdW50TG9jYXRpb24nIHwgJ21lZGljYWxIaXN0b3J5JyB8IEJvb2xlYW5TdGF0dXNQcmVzZXQ7XG5cbi8qKlxuICogU3RhdHVzIHR5cGUgbWFwcGluZyBmb3IgZWFjaCBmZWF0dXJlXG4gKi9cbmV4cG9ydCB0eXBlIFN0YXR1c1R5cGVNYXAgPSB7XG4gIG1lZGljYWxTZXJ2aWNlOiBNZWRpY2FsU2VydmljZVN0YXR1cztcbiAgYWNjb3VudExvY2F0aW9uOiBBY2NvdW50TG9jYXRpb25TdGF0dXM7XG4gIG1lZGljYWxIaXN0b3J5OiBNZWRpY2FsSGlzdG9yeVN0YXR1cztcbiAgeWVzTm86IEJvb2xlYW5TdGF0dXM7XG4gIGFjdGl2ZUluYWN0aXZlOiBCb29sZWFuU3RhdHVzO1xuICBlbmFibGVkRGlzYWJsZWQ6IEJvb2xlYW5TdGF0dXM7XG4gIHZhbGlkSW52YWxpZDogQm9vbGVhblN0YXR1cztcbn07XG5cbi8qKlxuICogTWV0YWRhdGEgcmVnaXN0cnkgbWFwcGluZyBmZWF0dXJlcyB0byB0aGVpciBzdGF0dXMgY29uZmlndXJhdGlvbnNcbiAqL1xuY29uc3QgTUVUQURBVEFfUkVHSVNUUlk6IFJlY29yZDxTdGF0dXNGZWF0dXJlLCBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCBTdGF0dXNNZXRhZGF0YT4+ID0ge1xuICBtZWRpY2FsU2VydmljZTogTUVESUNBTF9TRVJWSUNFX1NUQVRVU19NRVRBREFUQSxcbiAgYWNjb3VudExvY2F0aW9uOiBBQ0NPVU5UX0xPQ0FUSU9OX1NUQVRVU19NRVRBREFUQSxcbiAgbWVkaWNhbEhpc3Rvcnk6IE1FRElDQUxfSElTVE9SWV9TVEFUVVNfTUVUQURBVEEsXG4gIHllc05vOiBCT09MRUFOX01FVEFEQVRBX1JFR0lTVFJZLnllc05vLFxuICBhY3RpdmVJbmFjdGl2ZTogQk9PTEVBTl9NRVRBREFUQV9SRUdJU1RSWS5hY3RpdmVJbmFjdGl2ZSxcbiAgZW5hYmxlZERpc2FibGVkOiBCT09MRUFOX01FVEFEQVRBX1JFR0lTVFJZLmVuYWJsZWREaXNhYmxlZCxcbiAgdmFsaWRJbnZhbGlkOiBCT09MRUFOX01FVEFEQVRBX1JFR0lTVFJZLnZhbGlkSW52YWxpZCxcbn07XG5cbi8qKlxuICogR2V0IHN0YXR1cyBtZXRhZGF0YSBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlIGFuZCBzdGF0dXNcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZSAoZS5nLiwgJ21lZGljYWxTZXJ2aWNlJywgJ2FjY291bnRMb2NhdGlvbicpXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHJldHVybnMgVGhlIGNvbXBsZXRlIFN0YXR1c01ldGFkYXRhIGZvciB0aGUgZ2l2ZW4gZmVhdHVyZSBhbmQgc3RhdHVzXG4gKiBAdGhyb3dzIEVycm9yIGlmIGZlYXR1cmUgb3Igc3RhdHVzIGlzIG5vdCBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbiAgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdLFxuKTogU3RhdHVzTWV0YWRhdGEge1xuICBjb25zdCByZWdpc3RyeSA9IE1FVEFEQVRBX1JFR0lTVFJZW2ZlYXR1cmVdO1xuICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHN0YXR1cyBmZWF0dXJlOiAke2ZlYXR1cmV9YCk7XG4gIH1cblxuICBjb25zdCBtZXRhZGF0YSA9IHJlZ2lzdHJ5W3N0YXR1c107XG4gIGlmICghbWV0YWRhdGEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc3RhdHVzIGZvciBmZWF0dXJlICR7ZmVhdHVyZX06ICR7c3RhdHVzfWApO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFkYXRhO1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgaWNvbiBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlIGFuZCBzdGF0dXNcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHBhcmFtIHN0YXR1cyAtIFRoZSBzdGF0dXMgdmFsdWVcbiAqIEByZXR1cm5zIFRoZSBNYXRlcmlhbCBpY29uIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0ljb25Gb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihmZWF0dXJlOiBULCBzdGF0dXM6IFN0YXR1c1R5cGVNYXBbVF0pOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0U3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlKGZlYXR1cmUsIHN0YXR1cykuaWNvbjtcbn1cblxuLyoqXG4gKiBHZXQgc3RhdHVzIGNvbG9yIGZvciBhIHNwZWNpZmljIGZlYXR1cmUgYW5kIHN0YXR1c1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHJldHVybnMgVGhlIGhleCBjb2xvciBjb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0dXNDb2xvckZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KGZlYXR1cmU6IFQsIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSwgc3RhdHVzKS5jb2xvcjtcbn1cblxuLyoqXG4gKiBHZXQgc3RhdHVzIGxhYmVsIGZvciBhIHNwZWNpZmljIGZlYXR1cmUgYW5kIHN0YXR1c1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHBhcmFtIGxvY2FsZSAtIFRoZSBsYW5ndWFnZSBsb2NhbGUgKGRlZmF1bHQ6ICd1cy1FTicpXG4gKiBAcGFyYW0gZm9ybWF0IC0gTGFiZWwgZm9ybWF0OiAnc2hvcnQnIG9yICdsb25nJyAoZGVmYXVsdDogJ3Nob3J0JylcbiAqIEByZXR1cm5zIFRoZSB0cmFuc2xhdGVkIGxhYmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0dXNMYWJlbEZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KFxuICBmZWF0dXJlOiBULFxuICBzdGF0dXM6IFN0YXR1c1R5cGVNYXBbVF0sXG4gIGxvY2FsZTogTG9jYWxlID0gJ3VzLUVOJyxcbiAgZm9ybWF0OiAnc2hvcnQnIHwgJ2xvbmcnID0gJ3Nob3J0Jyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IG1ldGFkYXRhID0gZ2V0U3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlKGZlYXR1cmUsIHN0YXR1cyk7XG4gIHJldHVybiBtZXRhZGF0YS5sYWJlbFtmb3JtYXRdW2xvY2FsZV07XG59XG5cbi8qKlxuICogR2V0IHN0YXR1cyBkZXNjcmlwdGlvbiBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlIGFuZCBzdGF0dXNcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHBhcmFtIHN0YXR1cyAtIFRoZSBzdGF0dXMgdmFsdWVcbiAqIEBwYXJhbSBsb2NhbGUgLSBUaGUgbGFuZ3VhZ2UgbG9jYWxlIChkZWZhdWx0OiAndXMtRU4nKVxuICogQHJldHVybnMgVGhlIHRyYW5zbGF0ZWQgZGVzY3JpcHRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0Rlc2NyaXB0aW9uRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4gIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSxcbiAgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nLFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlLCBzdGF0dXMpLmRlc2NyaXB0aW9uW2xvY2FsZV07XG59XG5cbi8qKlxuICogR2V0IGFsbCBtZXRhZGF0YSBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEByZXR1cm5zIFJlY29yZCBvZiBhbGwgc3RhdHVzZXMgYW5kIHRoZWlyIG1ldGFkYXRhIGZvciB0aGUgZmVhdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsU3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbik6IFJlY29yZDxTdGF0dXNUeXBlTWFwW1RdLCBTdGF0dXNNZXRhZGF0YT4ge1xuICBjb25zdCByZWdpc3RyeSA9IE1FVEFEQVRBX1JFR0lTVFJZW2ZlYXR1cmVdO1xuICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHN0YXR1cyBmZWF0dXJlOiAke2ZlYXR1cmV9YCk7XG4gIH1cbiAgcmV0dXJuIHJlZ2lzdHJ5IGFzIFJlY29yZDxTdGF0dXNUeXBlTWFwW1RdLCBTdGF0dXNNZXRhZGF0YT47XG59XG5cbi8qKlxuICogR2V0IGFsbCBzdGF0dXNlcyBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEByZXR1cm5zIEFycmF5IG9mIGFsbCBzdGF0dXMgdmFsdWVzIGZvciB0aGUgZmVhdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsU3RhdHVzZXNGb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihmZWF0dXJlOiBUKTogU3RhdHVzVHlwZU1hcFtUXVtdIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSk7XG4gIHJldHVybiBPYmplY3Qua2V5cyhtZXRhZGF0YSkgYXMgU3RhdHVzVHlwZU1hcFtUXVtdO1xufVxuXG4vKipcbiAqIEZpbHRlciBzdGF0dXNlcyBieSBjcml0ZXJpYVxuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gcHJlZGljYXRlIC0gRnVuY3Rpb24gdG8gdGVzdCBlYWNoIHN0YXR1cyBtZXRhZGF0YVxuICogQHJldHVybnMgQXJyYXkgb2Ygc3RhdHVzZXMgdGhhdCBtYXRjaCB0aGUgcHJlZGljYXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJTdGF0dXNlc0J5RmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4gIHByZWRpY2F0ZTogKG1ldGFkYXRhOiBTdGF0dXNNZXRhZGF0YSwgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdKSA9PiBib29sZWFuLFxuKTogU3RhdHVzVHlwZU1hcFtUXVtdIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSk7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhtZXRhZGF0YSlcbiAgICAuZmlsdGVyKChbc3RhdHVzLCBtZXRhXSkgPT4gcHJlZGljYXRlKG1ldGEgYXMgU3RhdHVzTWV0YWRhdGEsIHN0YXR1cyBhcyBTdGF0dXNUeXBlTWFwW1RdKSlcbiAgICAubWFwKChbc3RhdHVzXSkgPT4gc3RhdHVzIGFzIFN0YXR1c1R5cGVNYXBbVF0pO1xufVxuXG4vKipcbiAqIE1hcCBzdGF0dXNlcyB0byBhIHNwZWNpZmljIHZhbHVlIHVzaW5nIGEgdHJhbnNmb3JtIGZ1bmN0aW9uXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEBwYXJhbSB0cmFuc2Zvcm0gLSBGdW5jdGlvbiB0byB0cmFuc2Zvcm0gZWFjaCBzdGF0dXMgbWV0YWRhdGFcbiAqIEByZXR1cm5zIFJlY29yZCBvZiBzdGF0dXNlcyBtYXBwZWQgdG8gdGhlIHRyYW5zZm9ybWVkIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwU3RhdHVzZXNCeUZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmUsIFU+KFxuICBmZWF0dXJlOiBULFxuICB0cmFuc2Zvcm06IChtZXRhZGF0YTogU3RhdHVzTWV0YWRhdGEsIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSkgPT4gVSxcbik6IFJlY29yZDxTdGF0dXNUeXBlTWFwW1RdLCBVPiB7XG4gIGNvbnN0IG1ldGFkYXRhID0gZ2V0QWxsU3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlKGZlYXR1cmUpO1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFU+ID0ge307XG5cbiAgT2JqZWN0LmVudHJpZXMobWV0YWRhdGEpLmZvckVhY2goKFtzdGF0dXMsIG1ldGFdKSA9PiB7XG4gICAgcmVzdWx0W3N0YXR1c10gPSB0cmFuc2Zvcm0obWV0YSBhcyBTdGF0dXNNZXRhZGF0YSwgc3RhdHVzIGFzIFN0YXR1c1R5cGVNYXBbVF0pO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0IGFzIFJlY29yZDxTdGF0dXNUeXBlTWFwW1RdLCBVPjtcbn1cblxuLyoqXG4gKiBHZXQgc3RhdHVzIG1ldGFkYXRhIHdpdGggY29tcHV0ZWQgcHJvcGVydGllc1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHBhcmFtIGxvY2FsZSAtIFRoZSBsYW5ndWFnZSBsb2NhbGVcbiAqIEByZXR1cm5zIEV4dGVuZGVkIG1ldGFkYXRhIHdpdGggY29tcHV0ZWQgbGFiZWxzIGFuZCBkZXNjcmlwdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkU3RhdHVzTWV0YWRhdGEgZXh0ZW5kcyBPbWl0PFN0YXR1c01ldGFkYXRhLCAnZGVzY3JpcHRpb24nPiB7XG4gIHNob3J0TGFiZWw6IHN0cmluZztcbiAgbG9uZ0xhYmVsOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbmRlZFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4gIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSxcbiAgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nLFxuKTogRXh0ZW5kZWRTdGF0dXNNZXRhZGF0YSB7XG4gIGNvbnN0IG1ldGFkYXRhID0gZ2V0U3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlKGZlYXR1cmUsIHN0YXR1cyk7XG5cbiAgcmV0dXJuIHtcbiAgICBpY29uOiBtZXRhZGF0YS5pY29uLFxuICAgIGNvbG9yOiBtZXRhZGF0YS5jb2xvcixcbiAgICBsYWJlbDogbWV0YWRhdGEubGFiZWwsXG4gICAgc2hvcnRMYWJlbDogbWV0YWRhdGEubGFiZWwuc2hvcnRbbG9jYWxlXSxcbiAgICBsb25nTGFiZWw6IG1ldGFkYXRhLmxhYmVsLmxvbmdbbG9jYWxlXSxcbiAgICBkZXNjcmlwdGlvbjogbWV0YWRhdGEuZGVzY3JpcHRpb25bbG9jYWxlXSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZWFyY2ggc3RhdHVzZXMgYnkgbGFiZWxcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHBhcmFtIHNlYXJjaFRlcm0gLSBUaGUgc2VhcmNoIHRlcm0gKGNhc2UtaW5zZW5zaXRpdmUpXG4gKiBAcGFyYW0gbG9jYWxlIC0gVGhlIGxhbmd1YWdlIGxvY2FsZVxuICogQHJldHVybnMgQXJyYXkgb2Ygc3RhdHVzZXMgbWF0Y2hpbmcgdGhlIHNlYXJjaCB0ZXJtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hTdGF0dXNlc0J5RmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4gIHNlYXJjaFRlcm06IHN0cmluZyxcbiAgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nLFxuKTogU3RhdHVzVHlwZU1hcFtUXVtdIHtcbiAgY29uc3QgbG93ZXJTZWFyY2ggPSBzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCk7XG5cbiAgcmV0dXJuIGZpbHRlclN0YXR1c2VzQnlGZWF0dXJlKGZlYXR1cmUsIChtZXRhZGF0YSkgPT4ge1xuICAgIGNvbnN0IHNob3J0TGFiZWwgPSBtZXRhZGF0YS5sYWJlbC5zaG9ydFtsb2NhbGVdLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbG9uZ0xhYmVsID0gbWV0YWRhdGEubGFiZWwubG9uZ1tsb2NhbGVdLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBtZXRhZGF0YS5kZXNjcmlwdGlvbltsb2NhbGVdLnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gc2hvcnRMYWJlbC5pbmNsdWRlcyhsb3dlclNlYXJjaCkgfHwgbG9uZ0xhYmVsLmluY2x1ZGVzKGxvd2VyU2VhcmNoKSB8fCBkZXNjcmlwdGlvbi5pbmNsdWRlcyhsb3dlclNlYXJjaCk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgbWV0YWRhdGEgZ3JvdXBlZCBieSBjb2xvclxuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcmV0dXJucyBSZWNvcmQgb2YgY29sb3JzIG1hcHBlZCB0byBhcnJheXMgb2Ygc3RhdHVzZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwU3RhdHVzZXNCeUNvbG9yRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4pOiBSZWNvcmQ8c3RyaW5nLCBTdGF0dXNUeXBlTWFwW1RdW10+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSk7XG4gIGNvbnN0IGdyb3VwZWQ6IFJlY29yZDxzdHJpbmcsIFN0YXR1c1R5cGVNYXBbVF1bXT4gPSB7fTtcblxuICBPYmplY3QuZW50cmllcyhtZXRhZGF0YSkuZm9yRWFjaCgoW3N0YXR1cywgbWV0YV0pID0+IHtcbiAgICBjb25zdCBtZXRhVHlwZWQgPSBtZXRhIGFzIFN0YXR1c01ldGFkYXRhO1xuICAgIGlmICghZ3JvdXBlZFttZXRhVHlwZWQuY29sb3JdKSB7XG4gICAgICBncm91cGVkW21ldGFUeXBlZC5jb2xvcl0gPSBbXTtcbiAgICB9XG4gICAgZ3JvdXBlZFttZXRhVHlwZWQuY29sb3JdLnB1c2goc3RhdHVzIGFzIFN0YXR1c1R5cGVNYXBbVF0pO1xuICB9KTtcblxuICByZXR1cm4gZ3JvdXBlZDtcbn1cblxuLyoqXG4gKiBHZXQgc3RhdHVzIG1ldGFkYXRhIGdyb3VwZWQgYnkgaWNvblxuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcmV0dXJucyBSZWNvcmQgb2YgaWNvbnMgbWFwcGVkIHRvIGFycmF5cyBvZiBzdGF0dXNlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBTdGF0dXNlc0J5SWNvbkZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KGZlYXR1cmU6IFQpOiBSZWNvcmQ8c3RyaW5nLCBTdGF0dXNUeXBlTWFwW1RdW10+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSk7XG4gIGNvbnN0IGdyb3VwZWQ6IFJlY29yZDxzdHJpbmcsIFN0YXR1c1R5cGVNYXBbVF1bXT4gPSB7fTtcblxuICBPYmplY3QuZW50cmllcyhtZXRhZGF0YSkuZm9yRWFjaCgoW3N0YXR1cywgbWV0YV0pID0+IHtcbiAgICBjb25zdCBtZXRhVHlwZWQgPSBtZXRhIGFzIFN0YXR1c01ldGFkYXRhO1xuICAgIGlmICghZ3JvdXBlZFttZXRhVHlwZWQuaWNvbl0pIHtcbiAgICAgIGdyb3VwZWRbbWV0YVR5cGVkLmljb25dID0gW107XG4gICAgfVxuICAgIGdyb3VwZWRbbWV0YVR5cGVkLmljb25dLnB1c2goc3RhdHVzIGFzIFN0YXR1c1R5cGVNYXBbVF0pO1xuICB9KTtcblxuICByZXR1cm4gZ3JvdXBlZDtcbn1cbiJdfQ==
|