@elderbyte/ngx-starter 16.0.1 → 16.0.2
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/esm2022/lib/common/time/interval.mjs +23 -3
- package/esm2022/lib/common/time/period-duration.mjs +5 -2
- package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +3 -3
- package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -18
- package/esm2022/lib/components/time/date-formats/locale-date-formats.mjs +28 -0
- package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +19 -12
- package/fesm2022/elderbyte-ngx-starter.mjs +129 -90
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/time/interval.d.ts +1 -0
- package/lib/common/time/period-duration.d.ts +1 -0
- package/lib/components/time/date-adapters/custom-date-adapter.d.ts +0 -3
- package/lib/components/time/date-formats/locale-date-formats.d.ts +15 -0
- package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +4 -2
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Duration, Instant, LocalDate, nativeJs, Period, ZoneId } from '@js-joda/core';
|
|
2
2
|
import { TimeUtil } from './time-util';
|
|
3
3
|
import { PeriodDuration } from './period-duration';
|
|
4
|
+
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
4
5
|
export class Interval {
|
|
5
6
|
/***************************************************************************
|
|
6
7
|
* *
|
|
@@ -10,6 +11,7 @@ export class Interval {
|
|
|
10
11
|
constructor(start, end) {
|
|
11
12
|
this.start = start;
|
|
12
13
|
this.end = end;
|
|
14
|
+
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
13
15
|
}
|
|
14
16
|
/***************************************************************************
|
|
15
17
|
* *
|
|
@@ -116,16 +118,34 @@ export class Interval {
|
|
|
116
118
|
* *
|
|
117
119
|
**************************************************************************/
|
|
118
120
|
toDuration() {
|
|
119
|
-
|
|
121
|
+
if (!this.start || !this.end)
|
|
122
|
+
return Duration.ZERO;
|
|
123
|
+
try {
|
|
124
|
+
return Duration.between(this.start, this.end);
|
|
125
|
+
}
|
|
126
|
+
catch (e) {
|
|
127
|
+
this.log.error('Could not convert to Duration! Error: ', e);
|
|
128
|
+
return Duration.ZERO;
|
|
129
|
+
}
|
|
120
130
|
}
|
|
121
131
|
toPeriodDuration(zone) {
|
|
132
|
+
if (!this.start || !this.end)
|
|
133
|
+
return PeriodDuration.zero();
|
|
122
134
|
return PeriodDuration.between(this.start?.atZone(zone), this.end?.atZone(zone));
|
|
123
135
|
}
|
|
124
136
|
toString() {
|
|
125
137
|
return this.toDurationString();
|
|
126
138
|
}
|
|
127
139
|
toInstantString() {
|
|
128
|
-
|
|
140
|
+
let instantString = "";
|
|
141
|
+
if (this.start) {
|
|
142
|
+
instantString = instantString + this.start.toString();
|
|
143
|
+
}
|
|
144
|
+
instantString = instantString + "/";
|
|
145
|
+
if (this.end) {
|
|
146
|
+
instantString = instantString + this.end.toString();
|
|
147
|
+
}
|
|
148
|
+
return instantString;
|
|
129
149
|
}
|
|
130
150
|
toDurationString() {
|
|
131
151
|
return this.start?.toString() + '/' + this.toDuration().toString();
|
|
@@ -416,4 +436,4 @@ export class Interval {
|
|
|
416
436
|
return this.start?.compareTo(other.start);
|
|
417
437
|
}
|
|
418
438
|
}
|
|
419
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdGltZS9pbnRlcnZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBUWpELE1BQU0sT0FBTyxRQUFRO0lBR25COzs7O2dGQUk0RTtJQUU1RSxZQUNrQixLQUFjLEVBQ2QsR0FBWTtRQURaLFVBQUssR0FBTCxLQUFLLENBQVM7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFTO0lBQzFCLENBQUM7SUFFTDs7OztnRkFJNEU7SUFFNUU7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQ2pCLEdBQW1CO1FBRW5CLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ3pFO1FBRUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEIsc0VBQXNFO1FBRXRFLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lB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QUksR0FBRyxZQUFZLFFBQVEsRUFBRTtZQUMzQixNQUFNLEtBQUssR0FBYyxHQUFHLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxTQUFTLENBQUMsS0FBZTtRQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uLCBJbnN0YW50LCBMb2NhbERhdGUsIG5hdGl2ZUpzLCBQZXJpb2QsIFRlbXBvcmFsQW1vdW50LCBab25lSWR9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuaW1wb3J0IHtUaW1lVXRpbH0gZnJvbSAnLi90aW1lLXV0aWwnO1xuaW1wb3J0IHtQZXJpb2REdXJhdGlvbn0gZnJvbSAnLi9wZXJpb2QtZHVyYXRpb24nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gSVNPLTg2MDEgaW50ZXJ2YWwgc3RyaW5nLlxuICogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAqL1xuZXhwb3J0IHR5cGUgSXNvSW50ZXJ2YWxTdHIgPSBzdHJpbmc7XG5cbmV4cG9ydCBjbGFzcyBJbnRlcnZhbCB7XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhcnQ6IEluc3RhbnQsXG4gICAgcHVibGljIHJlYWRvbmx5IGVuZDogSW5zdGFudFxuICApIHsgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdGF0aWMgQnVpbGRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBQYXJzZXMgYW4gSVNPLTg2MDEgaW50ZXJ2YWwgc3RyaW5nLlxuICAgKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFsc1xuICAgKiBAcGFyYW0gaXNvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlKFxuICAgIGlzbzogSXNvSW50ZXJ2YWxTdHJcbiAgKTogSW50ZXJ2YWwge1xuICAgIGNvbnN0IHBhcnRzID0gaXNvLnNwbGl0KCcvJyk7XG5cbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBnaXZlbiBzdHJpbmcgaXMgbm90IGEgdmFsaWQgaXNvIGludGVydmFsOiAnICsgaXNvKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9IEluc3RhbnQucGFyc2UocGFydHNbMF0pO1xuXG4gICAgY29uc3QgZW5kU3RyID0gcGFydHNbMV07XG5cbiAgICAvLyBUaGUgJ2VuZCcgcGFydCBjYW4gZWl0aGVyIGJlIGFuIGluc3RhbnQgb3IgYSBkdXJhdGlvbiBpbiBpc28gZm9ybWF0XG5cbiAgICBpZiAoZW5kU3RyLnN0YXJ0c1dpdGgoJ1AnKSB8fCBlbmRTdHIuc3RhcnRzV2l0aCgnLVAnKSkge1xuXG4gICAgICBjb25zdCBkdXJhdGlvbiA9IER1cmF0aW9uLnBhcnNlKGVuZFN0cik7XG5cbiAgICAgIHJldHVybiBJbnRlcnZhbC5vZlN0YXJ0QW5kT2Zmc2V0KFxuICAgICAgICBzdGFydCxcbiAgICAgICAgZHVyYXRpb25cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIEluc3RhbnQucGFyc2UoZW5kU3RyKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHllc3RlcmRheSh6b25lSWQ6IFpvbmVJZCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2ZEYXkoXG4gICAgICBMb2NhbERhdGUubm93KCkubWludXNEYXlzKDEpLFxuICAgICAgem9uZUlkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgIHRvbW9ycm93KHpvbmVJZDogWm9uZUlkKTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZkRheShcbiAgICAgIExvY2FsRGF0ZS5ub3coKS5wbHVzRGF5cygxKSxcbiAgICAgIHpvbmVJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRvZGF5KHpvbmVJZDogWm9uZUlkKTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZkRheShMb2NhbERhdGUubm93KCksIHpvbmVJZCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEludGVydmFsIGZyb20gYSBEYXRlIGJ5IHNwcmVhZGluZyBpdCB0byB0aGUgYmVnaW4gYW5kIGVuZCBvZiBpdHMgZGF5LlxuICAgKiBAcGFyYW0gZGF0ZSBEYXRlIHRvIHNwcmVhZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZkRheURhdGUoZGF0ZTogRGF0ZSk6IEludGVydmFsIHtcbiAgICBjb25zdCBsb2NhbERhdGUgPSBMb2NhbERhdGUuZnJvbShuYXRpdmVKcyhkYXRlKSk7XG4gICAgcmV0dXJuIEludGVydmFsLm9mRGF5KGxvY2FsRGF0ZSwgWm9uZUlkLnN5c3RlbURlZmF1bHQoKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mRGF5KGRheTogTG9jYWxEYXRlLCB6b25lSWQ6IFpvbmVJZCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwuYmV0d2VlbkRheXMoXG4gICAgICBkYXksXG4gICAgICBkYXkucGx1c0RheXMoMSksXG4gICAgICB6b25lSWRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBiZXR3ZWVuRGF5cyhcbiAgICBzdGFydERheUluY2x1c2l2ZTogTG9jYWxEYXRlLFxuICAgIGVuZERheUV4Y2x1c2l2ZTogTG9jYWxEYXRlLFxuICAgIHpvbmVJZDogWm9uZUlkXG4gICkge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHN0YXJ0RGF5SW5jbHVzaXZlLmF0U3RhcnRPZkRheSh6b25lSWQpLnRvSW5zdGFudCgpLFxuICAgICAgZW5kRGF5RXhjbHVzaXZlLmF0U3RhcnRPZkRheSh6b25lSWQpLnRvSW5zdGFudCgpXG4gICAgKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnRlcnZhbCB3aXRoIHRoZSBnaXZlbiBzdGFydCB0aW1lIHBvaW50XG4gICAqIGFuZCBhIG9mZnNldCBmcm9tIHRoZSBzdGFydC5cbiAgICpcbiAgICogTm90ZSB0aGF0IHlvdSBzaG91bGQgdXNlIFBlcmlvZCBmb3IgZGF5cyB0byBhY2NvdW50IGZvciB6b25lIHNwZWNpZmljXG4gICAqIHRoaW5ncyBsaWtlIGRheWxpZ2h0IHNhdmluZy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXJ0SW5jbHVzaXZlXG4gICAqIEBwYXJhbSBvZmZzZXRFeGNsdXNpdmUgQSBQZXJpb2Qgb3IgRHVyYXRpb24gb2Zmc2V0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZlN0YXJ0QW5kT2Zmc2V0KHN0YXJ0SW5jbHVzaXZlOiBJbnN0YW50LCBvZmZzZXRFeGNsdXNpdmU6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHN0YXJ0SW5jbHVzaXZlLFxuICAgICAgc3RhcnRJbmNsdXNpdmUucGx1cyhvZmZzZXRFeGNsdXNpdmUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2YoXG4gICAgc3RhcnRJbmNsdXNpdmU6IEluc3RhbnQsXG4gICAgZW5kRXhjbHVzaXZlOiBJbnN0YW50XG4gICk6IEludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IEludGVydmFsKFxuICAgICAgc3RhcnRJbmNsdXNpdmUsXG4gICAgICBlbmRFeGNsdXNpdmVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZkRhdGUoXG4gICAgc3RhcnRJbmNsdXNpdmU6IERhdGUgfCBzdHJpbmcsXG4gICAgZW5kRXhjbHVzaXZlOiBEYXRlIHwgc3RyaW5nXG4gICk6IEludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IEludGVydmFsKFxuICAgICAgVGltZVV0aWwuaW5zdGFudChzdGFydEluY2x1c2l2ZSksXG4gICAgICBUaW1lVXRpbC5pbnN0YW50KGVuZEV4Y2x1c2l2ZSlcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgcmFuZ2UgaXMgZW1wdHkuXG4gICAqIDxwPlxuICAgKiBBbiBlbXB0eSByYW5nZSBvY2N1cnMgd2hlbiB0aGUgc3RhcnQgZGF0ZSBlcXVhbHMgdGhlIGluY2x1c2l2ZSBlbmQgZGF0ZS5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSByYW5nZSBpcyBlbXB0eVxuICAgKi9cbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmVxdWFscyh0aGlzLmVuZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBzdGFydCBvZiB0aGUgaW50ZXJ2YWwgaXMgdW5ib3VuZGVkLlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgc3RhcnQgaXMgdW5ib3VuZGVkXG4gICAqL1xuICBwdWJsaWMgaXNVbmJvdW5kZWRTdGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8uZXF1YWxzKEluc3RhbnQuTUlOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGVuZCBvZiB0aGUgaW50ZXJ2YWwgaXMgdW5ib3VuZGVkLlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgZW5kIGlzIHVuYm91bmRlZFxuICAgKi9cbiAgcHVibGljIGlzVW5ib3VuZGVkRW5kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVuZD8uZXF1YWxzKEluc3RhbnQuTUFYKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB0b0R1cmF0aW9uKCk6IER1cmF0aW9uIHtcbiAgICByZXR1cm4gRHVyYXRpb24uYmV0d2Vlbih0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XG4gIH1cblxuICBwdWJsaWMgdG9QZXJpb2REdXJhdGlvbih6b25lOiBab25lSWQpOiBQZXJpb2REdXJhdGlvbiB7XG4gICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLmJldHdlZW4oXG4gICAgICB0aGlzLnN0YXJ0Py5hdFpvbmUoem9uZSksXG4gICAgICB0aGlzLmVuZD8uYXRab25lKHpvbmUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpOiBJc29JbnRlcnZhbFN0ciB7XG4gICAgcmV0dXJuIHRoaXMudG9EdXJhdGlvblN0cmluZygpO1xuICB9XG5cbiAgcHVibGljIHRvSW5zdGFudFN0cmluZygpOiBJc29JbnRlcnZhbFN0ciB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LnRvU3RyaW5nKCkgKyAnLycgKyB0aGlzLmVuZD8udG9TdHJpbmcoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0R1cmF0aW9uU3RyaW5nKCk6IElzb0ludGVydmFsU3RyIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8udG9TdHJpbmcoKSArICcvJyArIHRoaXMudG9EdXJhdGlvbigpLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIE1vZGlmaWNhdGlvbiBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNvcHkgb2YgdGhpcyByYW5nZSB3aXRoIHRoZSBzcGVjaWZpZWQgc3RhcnQgaW5zdGFudC5cbiAgICpcbiAgICogQHBhcmFtIHN0YXJ0ICB0aGUgc3RhcnQgaW5zdGFudCBmb3IgdGhlIG5ldyBpbnRlcnZhbCwgbm90IG51bGxcbiAgICogQHJldHVybiBhbiBpbnRlcnZhbCB3aXRoIHRoZSBlbmQgZnJvbSB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIHN0YXJ0XG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVFeGNlcHRpb24gaWYgdGhlIHJlc3VsdGluZyBpbnRlcnZhbCBoYXMgZW5kIGJlZm9yZSBzdGFydFxuICAgKi9cbiAgcHVibGljIHdpdGhTdGFydChzdGFydDogSW5zdGFudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2Yoc3RhcnQsIHRoaXMuZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGlzIHJhbmdlIHdpdGggdGhlIHNwZWNpZmllZCBlbmQgaW5zdGFudC5cbiAgICpcbiAgICogQHBhcmFtIGVuZCAgdGhlIGVuZCBpbnN0YW50IGZvciB0aGUgbmV3IGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIGFuIGludGVydmFsIHdpdGggdGhlIHN0YXJ0IGZyb20gdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBlbmRcbiAgICogQHRocm93cyBEYXRlVGltZUV4Y2VwdGlvbiBpZiB0aGUgcmVzdWx0aW5nIGludGVydmFsIGhhcyBlbmQgYmVmb3JlIHN0YXJ0XG4gICAqL1xuICBwdWJsaWMgd2l0aEVuZChlbmQ6IEluc3RhbnQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mKHRoaXMuc3RhcnQsIGVuZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJ2YWwgdGhhdCBpcyB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGlzIGZpbmRzIHRoZSBpbnRlcnNlY3Rpb24gb2YgdHdvIGludGVydmFscy5cbiAgICogVGhpcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSB0d28gaW50ZXJ2YWxzIGFyZSBub3Qge0BsaW5rcGxhaW4gI2lzQ29ubmVjdGVkKEludGVydmFsKSBjb25uZWN0ZWR9LlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjaGVjayBmb3IsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGludGVydmFsIHRoYXQgaXMgdGhlIGludGVyc2VjdGlvbiBvZiB0aGUgdHdvIGludGVydmFsc1xuICAgKiBAdGhyb3dzIERhdGVUaW1lRXhjZXB0aW9uIGlmIHRoZSBpbnRlcnZhbHMgZG8gbm90IGNvbm5lY3RcbiAgICovXG4gIHB1YmxpYyBpbnRlcnNlY3Rpb24ob3RoZXI6IEludGVydmFsKTogSW50ZXJ2YWwge1xuICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKG90aGVyKSA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW50ZXJ2YWxzIGRvIG5vdCBjb25uZWN0OiAnICsgdGhpcyArICcgYW5kICcgKyBvdGhlcik7XG4gICAgfVxuICAgIGNvbnN0IGNtcFN0YXJ0ID0gdGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLnN0YXJ0KTtcbiAgICBjb25zdCBjbXBFbmQgPSB0aGlzLmVuZD8uY29tcGFyZVRvKG90aGVyLmVuZCk7XG4gICAgaWYgKGNtcFN0YXJ0ID49IDAgJiYgY21wRW5kIDw9IDApIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0gZWxzZSBpZiAoY21wU3RhcnQgPD0gMCAmJiBjbXBFbmQgPj0gMCkge1xuICAgICAgcmV0dXJuIG90aGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdTdGFydCA9IChjbXBTdGFydCA+PSAwID8gdGhpcy5zdGFydCA6IG90aGVyLnN0YXJ0KTtcbiAgICAgIGNvbnN0IG5ld0VuZCA9IChjbXBFbmQgPD0gMCA/IHRoaXMuZW5kIDogb3RoZXIuZW5kKTtcbiAgICAgIHJldHVybiBJbnRlcnZhbC5vZihuZXdTdGFydCwgbmV3RW5kKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJ2YWwgdGhhdCBpcyB0aGUgdW5pb24gb2YgdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoaXMgZmluZHMgdGhlIHVuaW9uIG9mIHR3byBpbnRlcnZhbHMuXG4gICAqIFRoaXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgdHdvIGludGVydmFscyBhcmUgbm90IHtAbGlua3BsYWluICNpc0Nvbm5lY3RlZChJbnRlcnZhbCkgY29ubmVjdGVkfS5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyICB0aGUgb3RoZXIgaW50ZXJ2YWwgdG8gY2hlY2sgZm9yLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRoZSBpbnRlcnZhbCB0aGF0IGlzIHRoZSB1bmlvbiBvZiB0aGUgdHdvIGludGVydmFsc1xuICAgKiBAdGhyb3dzIERhdGVUaW1lRXhjZXB0aW9uIGlmIHRoZSBpbnRlcnZhbHMgZG8gbm90IGNvbm5lY3RcbiAgICovXG4gIHB1YmxpYyB1bmlvbihvdGhlcjogSW50ZXJ2YWwpOiBJbnRlcnZhbCB7XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQob3RoZXIpID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcnZhbHMgZG8gbm90IGNvbm5lY3Q6ICcgKyB0aGlzICsgJyBhbmQgJyArIG90aGVyKTtcbiAgICB9XG4gICAgY29uc3QgY21wU3RhcnQgPSB0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuc3RhcnQpO1xuICAgIGNvbnN0IGNtcEVuZCA9IHRoaXMuZW5kPy5jb21wYXJlVG8ob3RoZXIuZW5kKTtcbiAgICBpZiAoY21wU3RhcnQgPj0gMCAmJiBjbXBFbmQgPD0gMCkge1xuICAgICAgcmV0dXJuIG90aGVyO1xuICAgIH0gZWxzZSBpZiAoY21wU3RhcnQgPD0gMCAmJiBjbXBFbmQgPj0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld1N0YXJ0ID0gKGNtcFN0YXJ0ID49IDAgPyBvdGhlci5zdGFydCA6IHRoaXMuc3RhcnQpO1xuICAgICAgY29uc3QgbmV3RW5kID0gKGNtcEVuZCA8PSAwID8gb3RoZXIuZW5kIDogdGhpcy5lbmQpO1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mKG5ld1N0YXJ0LCBuZXdFbmQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBzbWFsbGVzdCBpbnRlcnZhbCB0aGF0IGVuY2xvc2VzIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IG9mIHRoaXMgbWV0aG9kIHdpbGwge0BsaW5rcGxhaW4gI2VuY2xvc2VzKEludGVydmFsKSBlbmNsb3NlfVxuICAgKiB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjaGVjayBmb3IsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGludGVydmFsIHRoYXQgc3BhbnMgdGhlIHR3byBpbnRlcnZhbHNcbiAgICovXG4gIHB1YmxpYyBzcGFuKG90aGVyOiBJbnRlcnZhbCk6IEludGVydmFsIHtcbiAgICBjb25zdCBjbXBTdGFydCA9IHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCk7XG4gICAgY29uc3QgY21wRW5kID0gdGhpcy5lbmQ/LmNvbXBhcmVUbyhvdGhlci5lbmQpO1xuICAgIGNvbnN0IG5ld1N0YXJ0ID0gKGNtcFN0YXJ0ID49IDAgPyBvdGhlci5zdGFydCA6IHRoaXMuc3RhcnQpO1xuICAgIGNvbnN0IG5ld0VuZCA9IChjbXBFbmQgPD0gMCA/IG90aGVyLmVuZCA6IHRoaXMuZW5kKTtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YobmV3U3RhcnQsIG5ld0VuZCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBTaGlmdCB0aGUgd2hvbGUgaW50ZXJ2YWwgYnkgdGhlIGdpdmVuIGRheXMgcGVyaW9kLlxuICAgKiBAcGFyYW0gZGF5c1xuICAgKi9cbiAgcHVibGljIHNoaWZ0RGF5cyhkYXlzOiBudW1iZXIpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIHRoaXMuc2hpZnQoUGVyaW9kLm9mRGF5cyhkYXlzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2hpZnQgdGhlIHdob2xlIGludGVydmFsIGJ5IHRoZSBnaXZlbiB0ZW1wb3JhbCBhbW91bnQuXG4gICAqIE5vdGUgdGhhdCBvbmx5IFBlcmlvZCB3aWxsIGFjY291bnQgZm9yIHpvbmUgc3BlY2lmaWMgdGhpbmdzIHN1Y2ggYXMgZGF5bGlnaHQgc2F2aW5ncy5cbiAgICogVXNlIER1cmF0aW9uIG9ubHkgaWYgeW91IGFyZSBiZWxvdyBkYXlzLlxuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqL1xuICBwdWJsaWMgc2hpZnQob2Zmc2V0OiBUZW1wb3JhbEFtb3VudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YoXG4gICAgICB0aGlzLnN0YXJ0Py5wbHVzKG9mZnNldCksXG4gICAgICB0aGlzLmVuZD8ucGx1cyhvZmZzZXQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlU3RhcnQob2Zmc2V0OiBUZW1wb3JhbEFtb3VudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YoXG4gICAgICB0aGlzLnN0YXJ0Py5wbHVzKG9mZnNldCksXG4gICAgICB0aGlzLmVuZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbW92ZUVuZChvZmZzZXQ6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHRoaXMuc3RhcnQsXG4gICAgICB0aGlzLmVuZD8ucGx1cyhvZmZzZXQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcnZhbCBRdWVyeSBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gVGltZUZyYW1lIG92ZXJsYXBzIHdpdGggdGhpcyBvbmUuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciBUaW1lRnJhbWUgdG8gY2hlY2sgYWdhaW5zdFxuICAgKiBAcmV0dXJuIFJldHVybnMge0Bjb2RlIHRydWV9IGlmIHRoZSB0d28gY2FuZGlkYXRlcyBvdmVybGFwLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHB1YmxpYyBvdmVybGFwcyhvdGhlcjogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb3RoZXIuZXF1YWxzKHRoaXMpIHx8ICh0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuZW5kKSA8IDAgJiYgb3RoZXIuc3RhcnQ/LmNvbXBhcmVUbyh0aGlzLmVuZCkgPCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaXQgdGhlIGdpdmVuIGxvY2FsRGF0ZSBvdmVybGFwcyB3aXRoIHRoZSBnaXZlbiBUaW1lRnJhbWUuXG4gICAqXG4gICAqIEBwYXJhbSB0aW1lRnJhbWUgVGltZUZyYW1lIHRvIGNoZWNrIGFnYWluc3RcbiAgICogQHBhcmFtIGxvY2FsRGF0ZSBMb2NhbERhdGUgdG8gY2hlY2tcbiAgICovXG4gIHB1YmxpYyBvdmVybGFwc1dpdGhMb2NhbERhdGUoXG4gICAgbG9jYWxEYXRlOiBEYXRlXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXBzKEludGVydmFsLm9mRGF5RGF0ZShsb2NhbERhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBjb250YWlucyB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIDxwPlxuICAgKiBUaGlzIGNoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGluc3RhbnQgaXMgd2l0aGluIHRoZSBib3VuZHMgb2YgdGhpcyBpbnRlcnZhbC5cbiAgICogSWYgdGhpcyByYW5nZSBoYXMgYW4gdW5ib3VuZGVkIHN0YXJ0IHRoZW4ge0Bjb2RlIGNvbnRhaW5zKEluc3RhbnQjTUlOKX0gcmV0dXJucyB0cnVlLlxuICAgKiBJZiB0aGlzIHJhbmdlIGhhcyBhbiB1bmJvdW5kZWQgZW5kIHRoZW4ge0Bjb2RlIGNvbnRhaW5zKEluc3RhbnQjTUFYKX0gcmV0dXJucyB0cnVlLlxuICAgKiBJZiB0aGlzIHJhbmdlIGlzIGVtcHR5IHRoZW4gdGhpcyBtZXRob2QgYWx3YXlzIHJldHVybnMgZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW50ICB0aGUgaW5zdGFudCwgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW50ZXJ2YWwgY29udGFpbnMgdGhlIGluc3RhbnRcbiAgICovXG4gIHB1YmxpYyAgY29udGFpbnMoaW5zdGFudDogSW5zdGFudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8oaW5zdGFudCkgPD0gMCAmJiAoaW5zdGFudC5jb21wYXJlVG8odGhpcy5lbmQpIDwgMCB8fCB0aGlzLmlzVW5ib3VuZGVkRW5kKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGVuY2xvc2VzIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGlzIGNoZWNrcyBpZiB0aGUgYm91bmRzIG9mIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwgYXJlIHdpdGhpbiB0aGUgYm91bmRzIG9mIHRoaXMgaW50ZXJ2YWwuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGVuY2xvc2VzIGl0c2VsZi5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyICB0aGUgb3RoZXIgaW50ZXJ2YWwsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGludGVydmFsIGNvbnRhaW5zIHRoZSBvdGhlciBpbnRlcnZhbFxuICAgKi9cbiAgcHVibGljIGVuY2xvc2VzKG90aGVyOiBJbnRlcnZhbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuc3RhcnQpIDw9IDAgJiYgb3RoZXIuZW5kPy5jb21wYXJlVG8odGhpcy5lbmQpIDw9IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgYWJ1dHMgKGlzIG5leHQgdG8gb3IgaGFzIGEgY29tbW9uIGJvdW5kYXJ5IHdpdGgpIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhlIGVuZCBvZiB0aGlzIGludGVydmFsIGlzIHRoZSBzdGFydCBvZiB0aGUgb3RoZXIsIG9yIHZpY2UgdmVyc2EuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGRvZXMgbm90IGFidXQgaXRzZWxmLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCwgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW50ZXJ2YWwgYWJ1dHMgdGhlIG90aGVyIGludGVydmFsXG4gICAqL1xuICBwdWJsaWMgYWJ1dHMob3RoZXI6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kPy5lcXVhbHMob3RoZXIuc3RhcnQpICE9PSB0aGlzLnN0YXJ0Py5lcXVhbHMob3RoZXIuZW5kKTsgLy8gIT09IG1lYW5zIFhPUlxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGNvbm5lY3RlZCB0byB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKiA8cD5cbiAgICogVGhlIHJlc3VsdCBpcyB0cnVlIGlmIHRoZSB0d28gaW50ZXJ2YWxzIGhhdmUgYW4gZW5jbG9zZWQgaW50ZXJ2YWwgaW4gY29tbW9uLCBldmVuIGlmIHRoYXQgaW50ZXJ2YWwgaXMgZW1wdHkuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGlzIGNvbm5lY3RlZCB0byBpdHNlbGYuXG4gICAqIDxwPlxuICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8ge0Bjb2RlIChvdmVybGFwcyhvdGhlcikgfHwgYWJ1dHMob3RoZXIpKX0uXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnRlcnZhbCBpcyBjb25uZWN0ZWQgdG8gdGhlIG90aGVyIGludGVydmFsXG4gICAqL1xuICBwdWJsaWMgaXNDb25uZWN0ZWQob3RoZXI6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXF1YWxzKG90aGVyKSB8fCAodGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLmVuZCkgPD0gMCAmJiBvdGhlci5zdGFydD8uY29tcGFyZVRvKHRoaXMuZW5kKSA8PSAwKTtcbiAgfVxuXG4gIC8vIC0tLVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhpcyBpbnN0YW50IHN0YXJ0cyBhZnRlciB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGJlaGF2ZXMgYXMgdGhvdWdoIGl0IGlzIGFuIGluc3RhbnQgZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW50ICB0aGUgb3RoZXIgaW5zdGFudCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0YXJ0IG9mIHRoaXMgaW50ZXJ2YWwgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNBZnRlckluc3RhbnQoaW5zdGFudDogSW5zdGFudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8oaW5zdGFudCkgPiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhpcyBpbnN0YW50IGVuZHMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogU2luY2UgaW50ZXJ2YWxzIGRvIG5vdCBpbmNsdWRlIHRoZWlyIGVuZCBwb2ludHMsIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGVcbiAgICogaW5zdGFudCBlcXVhbHMgdGhlIGVuZCBvZiB0aGUgaW50ZXJ2YWwuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGJlaGF2ZXMgYXMgdGhvdWdoIGl0IGlzIGFuIGluc3RhbnQgZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW50ICB0aGUgb3RoZXIgaW5zdGFudCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0YXJ0IG9mIHRoaXMgaW50ZXJ2YWwgaXMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgaW5zdGFudFxuICAgKi9cbiAgcHVibGljIGlzQmVmb3JlSW5zdGFudChpbnN0YW50OiBJbnN0YW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kPy5jb21wYXJlVG8oaW5zdGFudCkgPD0gMCAmJiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8oaW5zdGFudCkgPCAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhpcyBpbnN0YW50IHN0YXJ0cyBhZnRlciB0aGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIFNpbmNlIGludGVydmFscyBkbyBub3QgaW5jbHVkZSB0aGVpciBlbmQgcG9pbnRzLCB0aGlzIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlXG4gICAqIGluc3RhbnQgZXF1YWxzIHRoZSBlbmQgb2YgdGhlIGludGVydmFsLlxuICAgKiBBbiBlbXB0eSBpbnRlcnZhbCBiZWhhdmVzIGFzIHRob3VnaCBpdCBpcyBhbiBpbnN0YW50IGZvciBjb21wYXJpc29uIHB1cnBvc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gaW50ZXJ2YWwgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnN0YW50IGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW5zdGFudFxuICAgKi9cbiAgcHVibGljIGlzQWZ0ZXIoaW50ZXJ2YWw6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnRlcnZhbC5lbmQpID49IDAgJiYgIWludGVydmFsLmVxdWFscyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgZW5kcyBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIFNpbmNlIGludGVydmFscyBkbyBub3QgaW5jbHVkZSB0aGVpciBlbmQgcG9pbnRzLCB0aGlzIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlXG4gICAqIHR3byBpbnRlcnZhbHMgYWJ1dC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgYmVoYXZlcyBhcyB0aG91Z2ggaXQgaXMgYW4gaW5zdGFudCBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGludGVydmFsICB0aGUgb3RoZXIgaW50ZXJ2YWwgdG8gY29tcGFyZSB0bywgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW5zdGFudCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNCZWZvcmUoaW50ZXJ2YWw6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kPy5jb21wYXJlVG8oaW50ZXJ2YWwuc3RhcnQpIDw9IDAgJiYgIWludGVydmFsLmVxdWFscyh0aGlzKTtcbiAgfVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEVxdWFsaXR5ICYgSGFzaGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGVxdWFsIHRvIGFub3RoZXIgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBDb21wYXJlcyB0aGlzIHtAY29kZSBJbnRlcnZhbH0gd2l0aCBhbm90aGVyIGVuc3VyaW5nIHRoYXQgdGhlIHR3byBpbnN0YW50cyBhcmUgdGhlIHNhbWUuXG4gICAqIE9ubHkgb2JqZWN0cyBvZiB0eXBlIHtAY29kZSBJbnRlcnZhbH0gYXJlIGNvbXBhcmVkLCBvdGhlciB0eXBlcyByZXR1cm4gZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSBvYmogIHRoZSBvYmplY3QgdG8gY2hlY2ssIG51bGwgcmV0dXJucyBmYWxzZVxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpcyBlcXVhbCB0byB0aGUgb3RoZXIgaW50ZXJ2YWxcbiAgICovXG4gIHB1YmxpYyBlcXVhbHMob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcyA9PT0gb2JqKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIEludGVydmFsKSB7XG4gICAgICBjb25zdCBvdGhlciA9IDxJbnRlcnZhbD4gb2JqO1xuICAgICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmVxdWFscyhvdGhlci5zdGFydCkgJiYgdGhpcy5lbmQ/LmVxdWFscyhvdGhlci5lbmQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdGhpcyBJbnRlcnZhbCB0byB0aGUgZ2l2ZW4gSW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgY29tcGFyaXNvbiBpcyBiYXNlZCBvbiB0aGUgdGltZS1saW5lIHBvc2l0aW9uIG9mIHRoZSBsb3dlciBib3VuZCBpbnN0YW50cyAoSW50ZXJ2YWwgc3RhcnQpLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgdGhlIG90aGVyIEludGVydmFsIHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGNvbXBhcmF0b3IgdmFsdWUsIG5lZ2F0aXZlIGlmIGxlc3MsIHBvc2l0aXZlIGlmIGdyZWF0ZXJcbiAgICogQHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBvdGhlciBpcyBudWxsXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZVRvKG90aGVyOiBJbnRlcnZhbCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCk7XG4gIH1cblxuXG59XG4iXX0=
|
|
439
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdGltZS9pbnRlcnZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQVFuRCxNQUFNLE9BQU8sUUFBUTtJQUluQjs7OztnRkFJNEU7SUFFNUUsWUFDa0IsS0FBYyxFQUNkLEdBQVk7UUFEWixVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ2QsUUFBRyxHQUFILEdBQUcsQ0FBUztRQVZiLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFXbEUsQ0FBQztJQUVMOzs7O2dGQUk0RTtJQUU1RTs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FDakIsR0FBbUI7UUFFbkIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDekU7UUFFRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QixzRUFBc0U7UUFFdEUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFFckQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV4QyxPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDOUIsS0FBSyxFQUNMLFFBQVEsQ0FDVCxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FDaEIsS0FBSyxFQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQ3RCLENBQUM7U0FDSDtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQWM7UUFDcEMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUNuQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUM1QixNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUUsUUFBUSxDQUFDLE1BQWM7UUFDcEMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUNuQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUMzQixNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQWM7UUFDaEMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFVO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakQsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFjLEVBQUUsTUFBYztRQUNoRCxPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQ3pCLEdBQUcsRUFDSCxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUNmLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLGlCQUE0QixFQUM1QixlQUEwQixFQUMxQixNQUFjO1FBRWQsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUNoQixpQkFBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQ2xELGVBQWUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQ2pELENBQUM7SUFDSixDQUFDO0lBSUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQXVCLEVBQUUsZUFBK0I7UUFDckYsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUNoQixjQUFjLEVBQ2QsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBRSxDQUNkLGNBQXVCLEVBQ3ZCLFlBQXFCO1FBRXJCLE9BQU8sSUFBSSxRQUFRLENBQ2pCLGNBQWMsRUFDZCxZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUNsQixjQUE2QixFQUM3QixZQUEyQjtRQUUzQixPQUFPLElBQUksUUFBUSxDQUNqQixRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUNoQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7Ozs7O09BTUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsVUFBVTtRQUNmLElBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFFbEQsSUFBSTtZQUNGLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEVBQUMsQ0FBQyxDQUFFLENBQUM7WUFDNUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQixDQUFDLElBQVk7UUFDbEMsSUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTFELE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FDM0IsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQ3hCLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxhQUFhLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdkQ7UUFDRCxhQUFhLEdBQUcsYUFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixhQUFhLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDckQ7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLEtBQWM7UUFDN0IsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE9BQU8sQ0FBQyxHQUFZO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxZQUFZLENBQUMsS0FBZTtRQUNqQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxHQUFHLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQztTQUN4RTtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDaEMsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3ZDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTTtZQUNMLE1BQU0sUUFBUSxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksS0FBSyxDQUFDLEtBQWU7UUFDMUIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixHQUFHLElBQUksR0FBRyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7U0FDeEU7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTSxJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsRUFBRTtZQUN2QyxPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxNQUFNLFFBQVEsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRCxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksSUFBSSxDQUFDLEtBQWU7UUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFHRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsSUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxNQUFzQjtRQUNqQyxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUN4QixJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBc0I7UUFDckMsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVNLE9BQU8sQ0FBQyxNQUFzQjtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRzVFOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUFDLEtBQWU7UUFDN0IsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0kscUJBQXFCLENBQzFCLFNBQWU7UUFFZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ssUUFBUSxDQUFDLE9BQWdCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFFBQVEsQ0FBQyxLQUFlO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxLQUFlO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtJQUMxRixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFdBQVcsQ0FBQyxLQUFlO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFRCxNQUFNO0lBRU47Ozs7Ozs7O09BUUc7SUFDSSxjQUFjLENBQUMsT0FBZ0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxlQUFlLENBQUMsT0FBZ0I7UUFDckMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksT0FBTyxDQUFDLFFBQWtCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxRQUFRLENBQUMsUUFBa0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBSUg7Ozs7a0ZBSThFO0lBRTVFOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLEdBQVE7UUFDcEIsSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLEdBQUcsWUFBWSxRQUFRLEVBQUU7WUFDM0IsTUFBTSxLQUFLLEdBQWMsR0FBRyxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2RTtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksU0FBUyxDQUFDLEtBQWU7UUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbiwgSW5zdGFudCwgTG9jYWxEYXRlLCBuYXRpdmVKcywgUGVyaW9kLCBUZW1wb3JhbEFtb3VudCwgWm9uZUlkfSBmcm9tICdAanMtam9kYS9jb3JlJztcbmltcG9ydCB7VGltZVV0aWx9IGZyb20gJy4vdGltZS11dGlsJztcbmltcG9ydCB7UGVyaW9kRHVyYXRpb259IGZyb20gJy4vcGVyaW9kLWR1cmF0aW9uJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gSVNPLTg2MDEgaW50ZXJ2YWwgc3RyaW5nLlxuICogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAqL1xuZXhwb3J0IHR5cGUgSXNvSW50ZXJ2YWxTdHIgPSBzdHJpbmc7XG5cbmV4cG9ydCBjbGFzcyBJbnRlcnZhbCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBzdGFydDogSW5zdGFudCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZW5kOiBJbnN0YW50XG4gICkgeyB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBCdWlsZGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFBhcnNlcyBhbiBJU08tODYwMSBpbnRlcnZhbCBzdHJpbmcuXG4gICAqIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gICAqIEBwYXJhbSBpc29cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2UoXG4gICAgaXNvOiBJc29JbnRlcnZhbFN0clxuICApOiBJbnRlcnZhbCB7XG4gICAgY29uc3QgcGFydHMgPSBpc28uc3BsaXQoJy8nKTtcblxuICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGdpdmVuIHN0cmluZyBpcyBub3QgYSB2YWxpZCBpc28gaW50ZXJ2YWw6ICcgKyBpc28pO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0ID0gSW5zdGFudC5wYXJzZShwYXJ0c1swXSk7XG5cbiAgICBjb25zdCBlbmRTdHIgPSBwYXJ0c1sxXTtcblxuICAgIC8vIFRoZSAnZW5kJyBwYXJ0IGNhbiBlaXRoZXIgYmUgYW4gaW5zdGFudCBvciBhIGR1cmF0aW9uIGluIGlzbyBmb3JtYXRcblxuICAgIGlmIChlbmRTdHIuc3RhcnRzV2l0aCgnUCcpIHx8IGVuZFN0ci5zdGFydHNXaXRoKCctUCcpKSB7XG5cbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gRHVyYXRpb24ucGFyc2UoZW5kU3RyKTtcblxuICAgICAgcmV0dXJuIEludGVydmFsLm9mU3RhcnRBbmRPZmZzZXQoXG4gICAgICAgIHN0YXJ0LFxuICAgICAgICBkdXJhdGlvblxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mKFxuICAgICAgICBzdGFydCxcbiAgICAgICAgSW5zdGFudC5wYXJzZShlbmRTdHIpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgeWVzdGVyZGF5KHpvbmVJZDogWm9uZUlkKTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZkRheShcbiAgICAgIExvY2FsRGF0ZS5ub3coKS5taW51c0RheXMoMSksXG4gICAgICB6b25lSWRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyAgdG9tb3Jyb3coem9uZUlkOiBab25lSWQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mRGF5KFxuICAgICAgTG9jYWxEYXRlLm5vdygpLnBsdXNEYXlzKDEpLFxuICAgICAgem9uZUlkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9kYXkoem9uZUlkOiBab25lSWQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mRGF5KExvY2FsRGF0ZS5ub3coKSwgem9uZUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgSW50ZXJ2YWwgZnJvbSBhIERhdGUgYnkgc3ByZWFkaW5nIGl0IHRvIHRoZSBiZWdpbiBhbmQgZW5kIG9mIGl0cyBkYXkuXG4gICAqIEBwYXJhbSBkYXRlIERhdGUgdG8gc3ByZWFkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mRGF5RGF0ZShkYXRlOiBEYXRlKTogSW50ZXJ2YWwge1xuICAgIGNvbnN0IGxvY2FsRGF0ZSA9IExvY2FsRGF0ZS5mcm9tKG5hdGl2ZUpzKGRhdGUpKTtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2ZEYXkobG9jYWxEYXRlLCBab25lSWQuc3lzdGVtRGVmYXVsdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2ZEYXkoZGF5OiBMb2NhbERhdGUsIHpvbmVJZDogWm9uZUlkKTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5iZXR3ZWVuRGF5cyhcbiAgICAgIGRheSxcbiAgICAgIGRheS5wbHVzRGF5cygxKSxcbiAgICAgIHpvbmVJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGJldHdlZW5EYXlzKFxuICAgIHN0YXJ0RGF5SW5jbHVzaXZlOiBMb2NhbERhdGUsXG4gICAgZW5kRGF5RXhjbHVzaXZlOiBMb2NhbERhdGUsXG4gICAgem9uZUlkOiBab25lSWRcbiAgKSB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mKFxuICAgICAgc3RhcnREYXlJbmNsdXNpdmUuYXRTdGFydE9mRGF5KHpvbmVJZCkudG9JbnN0YW50KCksXG4gICAgICBlbmREYXlFeGNsdXNpdmUuYXRTdGFydE9mRGF5KHpvbmVJZCkudG9JbnN0YW50KClcbiAgICApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGludGVydmFsIHdpdGggdGhlIGdpdmVuIHN0YXJ0IHRpbWUgcG9pbnRcbiAgICogYW5kIGEgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0LlxuICAgKlxuICAgKiBOb3RlIHRoYXQgeW91IHNob3VsZCB1c2UgUGVyaW9kIGZvciBkYXlzIHRvIGFjY291bnQgZm9yIHpvbmUgc3BlY2lmaWNcbiAgICogdGhpbmdzIGxpa2UgZGF5bGlnaHQgc2F2aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gc3RhcnRJbmNsdXNpdmVcbiAgICogQHBhcmFtIG9mZnNldEV4Y2x1c2l2ZSBBIFBlcmlvZCBvciBEdXJhdGlvbiBvZmZzZXQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mU3RhcnRBbmRPZmZzZXQoc3RhcnRJbmNsdXNpdmU6IEluc3RhbnQsIG9mZnNldEV4Y2x1c2l2ZTogVGVtcG9yYWxBbW91bnQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mKFxuICAgICAgc3RhcnRJbmNsdXNpdmUsXG4gICAgICBzdGFydEluY2x1c2l2ZS5wbHVzKG9mZnNldEV4Y2x1c2l2ZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZihcbiAgICBzdGFydEluY2x1c2l2ZTogSW5zdGFudCxcbiAgICBlbmRFeGNsdXNpdmU6IEluc3RhbnRcbiAgKTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBuZXcgSW50ZXJ2YWwoXG4gICAgICBzdGFydEluY2x1c2l2ZSxcbiAgICAgIGVuZEV4Y2x1c2l2ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mRGF0ZShcbiAgICBzdGFydEluY2x1c2l2ZTogRGF0ZSB8IHN0cmluZyxcbiAgICBlbmRFeGNsdXNpdmU6IERhdGUgfCBzdHJpbmdcbiAgKTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBuZXcgSW50ZXJ2YWwoXG4gICAgICBUaW1lVXRpbC5pbnN0YW50KHN0YXJ0SW5jbHVzaXZlKSxcbiAgICAgIFRpbWVVdGlsLmluc3RhbnQoZW5kRXhjbHVzaXZlKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSByYW5nZSBpcyBlbXB0eS5cbiAgICogPHA+XG4gICAqIEFuIGVtcHR5IHJhbmdlIG9jY3VycyB3aGVuIHRoZSBzdGFydCBkYXRlIGVxdWFscyB0aGUgaW5jbHVzaXZlIGVuZCBkYXRlLlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHJhbmdlIGlzIGVtcHR5XG4gICAqL1xuICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8uZXF1YWxzKHRoaXMuZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHN0YXJ0IG9mIHRoZSBpbnRlcnZhbCBpcyB1bmJvdW5kZWQuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiBzdGFydCBpcyB1bmJvdW5kZWRcbiAgICovXG4gIHB1YmxpYyBpc1VuYm91bmRlZFN0YXJ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5lcXVhbHMoSW5zdGFudC5NSU4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgZW5kIG9mIHRoZSBpbnRlcnZhbCBpcyB1bmJvdW5kZWQuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiBlbmQgaXMgdW5ib3VuZGVkXG4gICAqL1xuICBwdWJsaWMgaXNVbmJvdW5kZWRFbmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kPy5lcXVhbHMoSW5zdGFudC5NQVgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHRvRHVyYXRpb24oKTogRHVyYXRpb24ge1xuICAgIGlmKCF0aGlzLnN0YXJ0IHx8ICF0aGlzLmVuZCkgcmV0dXJuIER1cmF0aW9uLlpFUk87XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmJldHdlZW4odGhpcy5zdGFydCwgdGhpcy5lbmQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmVycm9yKCdDb3VsZCBub3QgY29udmVydCB0byBEdXJhdGlvbiEgRXJyb3I6ICcsZSApO1xuICAgICAgcmV0dXJuIER1cmF0aW9uLlpFUk87XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvUGVyaW9kRHVyYXRpb24oem9uZTogWm9uZUlkKTogUGVyaW9kRHVyYXRpb24ge1xuICAgIGlmKCF0aGlzLnN0YXJ0IHx8ICF0aGlzLmVuZCkgcmV0dXJuIFBlcmlvZER1cmF0aW9uLnplcm8oKTtcblxuICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5iZXR3ZWVuKFxuICAgICAgdGhpcy5zdGFydD8uYXRab25lKHpvbmUpLFxuICAgICAgdGhpcy5lbmQ/LmF0Wm9uZSh6b25lKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKTogSXNvSW50ZXJ2YWxTdHIge1xuICAgIHJldHVybiB0aGlzLnRvRHVyYXRpb25TdHJpbmcoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0luc3RhbnRTdHJpbmcoKTogSXNvSW50ZXJ2YWxTdHIge1xuICAgIGxldCBpbnN0YW50U3RyaW5nID0gXCJcIjtcbiAgICBpZiAodGhpcy5zdGFydCkge1xuICAgICAgaW5zdGFudFN0cmluZyA9IGluc3RhbnRTdHJpbmcgKyB0aGlzLnN0YXJ0LnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIGluc3RhbnRTdHJpbmcgPSBpbnN0YW50U3RyaW5nICsgXCIvXCI7XG4gICAgaWYgKHRoaXMuZW5kKSB7XG4gICAgICBpbnN0YW50U3RyaW5nID0gaW5zdGFudFN0cmluZyArIHRoaXMuZW5kLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW50U3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHRvRHVyYXRpb25TdHJpbmcoKTogSXNvSW50ZXJ2YWxTdHIge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py50b1N0cmluZygpICsgJy8nICsgdGhpcy50b0R1cmF0aW9uKCkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgTW9kaWZpY2F0aW9uIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGlzIHJhbmdlIHdpdGggdGhlIHNwZWNpZmllZCBzdGFydCBpbnN0YW50LlxuICAgKlxuICAgKiBAcGFyYW0gc3RhcnQgIHRoZSBzdGFydCBpbnN0YW50IGZvciB0aGUgbmV3IGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIGFuIGludGVydmFsIHdpdGggdGhlIGVuZCBmcm9tIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgc3RhcnRcbiAgICogQHRocm93cyBEYXRlVGltZUV4Y2VwdGlvbiBpZiB0aGUgcmVzdWx0aW5nIGludGVydmFsIGhhcyBlbmQgYmVmb3JlIHN0YXJ0XG4gICAqL1xuICBwdWJsaWMgd2l0aFN0YXJ0KHN0YXJ0OiBJbnN0YW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihzdGFydCwgdGhpcy5lbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb3B5IG9mIHRoaXMgcmFuZ2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGVuZCBpbnN0YW50LlxuICAgKlxuICAgKiBAcGFyYW0gZW5kICB0aGUgZW5kIGluc3RhbnQgZm9yIHRoZSBuZXcgaW50ZXJ2YWwsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gYW4gaW50ZXJ2YWwgd2l0aCB0aGUgc3RhcnQgZnJvbSB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIGVuZFxuICAgKiBAdGhyb3dzIERhdGVUaW1lRXhjZXB0aW9uIGlmIHRoZSByZXN1bHRpbmcgaW50ZXJ2YWwgaGFzIGVuZCBiZWZvcmUgc3RhcnRcbiAgICovXG4gIHB1YmxpYyB3aXRoRW5kKGVuZDogSW5zdGFudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YodGhpcy5zdGFydCwgZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBpbnRlcnZhbCB0aGF0IGlzIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoaXMgZmluZHMgdGhlIGludGVyc2VjdGlvbiBvZiB0d28gaW50ZXJ2YWxzLlxuICAgKiBUaGlzIHRocm93cyBhbiBleGNlcHRpb24gaWYgdGhlIHR3byBpbnRlcnZhbHMgYXJlIG5vdCB7QGxpbmtwbGFpbiAjaXNDb25uZWN0ZWQoSW50ZXJ2YWwpIGNvbm5lY3RlZH0uXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsIHRvIGNoZWNrIGZvciwgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgaW50ZXJ2YWwgdGhhdCBpcyB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSB0d28gaW50ZXJ2YWxzXG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVFeGNlcHRpb24gaWYgdGhlIGludGVydmFscyBkbyBub3QgY29ubmVjdFxuICAgKi9cbiAgcHVibGljIGludGVyc2VjdGlvbihvdGhlcjogSW50ZXJ2YWwpOiBJbnRlcnZhbCB7XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQob3RoZXIpID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcnZhbHMgZG8gbm90IGNvbm5lY3Q6ICcgKyB0aGlzICsgJyBhbmQgJyArIG90aGVyKTtcbiAgICB9XG4gICAgY29uc3QgY21wU3RhcnQgPSB0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuc3RhcnQpO1xuICAgIGNvbnN0IGNtcEVuZCA9IHRoaXMuZW5kPy5jb21wYXJlVG8ob3RoZXIuZW5kKTtcbiAgICBpZiAoY21wU3RhcnQgPj0gMCAmJiBjbXBFbmQgPD0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIGlmIChjbXBTdGFydCA8PSAwICYmIGNtcEVuZCA+PSAwKSB7XG4gICAgICByZXR1cm4gb3RoZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld1N0YXJ0ID0gKGNtcFN0YXJ0ID49IDAgPyB0aGlzLnN0YXJ0IDogb3RoZXIuc3RhcnQpO1xuICAgICAgY29uc3QgbmV3RW5kID0gKGNtcEVuZCA8PSAwID8gdGhpcy5lbmQgOiBvdGhlci5lbmQpO1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mKG5ld1N0YXJ0LCBuZXdFbmQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBpbnRlcnZhbCB0aGF0IGlzIHRoZSB1bmlvbiBvZiB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKiA8cD5cbiAgICogVGhpcyBmaW5kcyB0aGUgdW5pb24gb2YgdHdvIGludGVydmFscy5cbiAgICogVGhpcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSB0d28gaW50ZXJ2YWxzIGFyZSBub3Qge0BsaW5rcGxhaW4gI2lzQ29ubmVjdGVkKEludGVydmFsKSBjb25uZWN0ZWR9LlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjaGVjayBmb3IsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGludGVydmFsIHRoYXQgaXMgdGhlIHVuaW9uIG9mIHRoZSB0d28gaW50ZXJ2YWxzXG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVFeGNlcHRpb24gaWYgdGhlIGludGVydmFscyBkbyBub3QgY29ubmVjdFxuICAgKi9cbiAgcHVibGljIHVuaW9uKG90aGVyOiBJbnRlcnZhbCk6IEludGVydmFsIHtcbiAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZChvdGhlcikgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludGVydmFscyBkbyBub3QgY29ubmVjdDogJyArIHRoaXMgKyAnIGFuZCAnICsgb3RoZXIpO1xuICAgIH1cbiAgICBjb25zdCBjbXBTdGFydCA9IHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCk7XG4gICAgY29uc3QgY21wRW5kID0gdGhpcy5lbmQ/LmNvbXBhcmVUbyhvdGhlci5lbmQpO1xuICAgIGlmIChjbXBTdGFydCA+PSAwICYmIGNtcEVuZCA8PSAwKSB7XG4gICAgICByZXR1cm4gb3RoZXI7XG4gICAgfSBlbHNlIGlmIChjbXBTdGFydCA8PSAwICYmIGNtcEVuZCA+PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3U3RhcnQgPSAoY21wU3RhcnQgPj0gMCA/IG90aGVyLnN0YXJ0IDogdGhpcy5zdGFydCk7XG4gICAgICBjb25zdCBuZXdFbmQgPSAoY21wRW5kIDw9IDAgPyBvdGhlci5lbmQgOiB0aGlzLmVuZCk7XG4gICAgICByZXR1cm4gSW50ZXJ2YWwub2YobmV3U3RhcnQsIG5ld0VuZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHNtYWxsZXN0IGludGVydmFsIHRoYXQgZW5jbG9zZXMgdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgb2YgdGhpcyBtZXRob2Qgd2lsbCB7QGxpbmtwbGFpbiAjZW5jbG9zZXMoSW50ZXJ2YWwpIGVuY2xvc2V9XG4gICAqIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsIHRvIGNoZWNrIGZvciwgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgaW50ZXJ2YWwgdGhhdCBzcGFucyB0aGUgdHdvIGludGVydmFsc1xuICAgKi9cbiAgcHVibGljIHNwYW4ob3RoZXI6IEludGVydmFsKTogSW50ZXJ2YWwge1xuICAgIGNvbnN0IGNtcFN0YXJ0ID0gdGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLnN0YXJ0KTtcbiAgICBjb25zdCBjbXBFbmQgPSB0aGlzLmVuZD8uY29tcGFyZVRvKG90aGVyLmVuZCk7XG4gICAgY29uc3QgbmV3U3RhcnQgPSAoY21wU3RhcnQgPj0gMCA/IG90aGVyLnN0YXJ0IDogdGhpcy5zdGFydCk7XG4gICAgY29uc3QgbmV3RW5kID0gKGNtcEVuZCA8PSAwID8gb3RoZXIuZW5kIDogdGhpcy5lbmQpO1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihuZXdTdGFydCwgbmV3RW5kKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNoaWZ0IHRoZSB3aG9sZSBpbnRlcnZhbCBieSB0aGUgZ2l2ZW4gZGF5cyBwZXJpb2QuXG4gICAqIEBwYXJhbSBkYXlzXG4gICAqL1xuICBwdWJsaWMgc2hpZnREYXlzKGRheXM6IG51bWJlcik6IEludGVydmFsIHtcbiAgICByZXR1cm4gdGhpcy5zaGlmdChQZXJpb2Qub2ZEYXlzKGRheXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaGlmdCB0aGUgd2hvbGUgaW50ZXJ2YWwgYnkgdGhlIGdpdmVuIHRlbXBvcmFsIGFtb3VudC5cbiAgICogTm90ZSB0aGF0IG9ubHkgUGVyaW9kIHdpbGwgYWNjb3VudCBmb3Igem9uZSBzcGVjaWZpYyB0aGluZ3Mgc3VjaCBhcyBkYXlsaWdodCBzYXZpbmdzLlxuICAgKiBVc2UgRHVyYXRpb24gb25seSBpZiB5b3UgYXJlIGJlbG93IGRheXMuXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICovXG4gIHB1YmxpYyBzaGlmdChvZmZzZXQ6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHRoaXMuc3RhcnQ/LnBsdXMob2Zmc2V0KSxcbiAgICAgIHRoaXMuZW5kPy5wbHVzKG9mZnNldClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1vdmVTdGFydChvZmZzZXQ6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHRoaXMuc3RhcnQ/LnBsdXMob2Zmc2V0KSxcbiAgICAgIHRoaXMuZW5kXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlRW5kKG9mZnNldDogVGVtcG9yYWxBbW91bnQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mKFxuICAgICAgdGhpcy5zdGFydCxcbiAgICAgIHRoaXMuZW5kPy5wbHVzKG9mZnNldClcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEludGVydmFsIFF1ZXJ5IEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBUaW1lRnJhbWUgb3ZlcmxhcHMgd2l0aCB0aGlzIG9uZS5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyIFRpbWVGcmFtZSB0byBjaGVjayBhZ2FpbnN0XG4gICAqIEByZXR1cm4gUmV0dXJucyB7QGNvZGUgdHJ1ZX0gaWYgdGhlIHR3byBjYW5kaWRhdGVzIG92ZXJsYXAsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIG92ZXJsYXBzKG90aGVyOiBJbnRlcnZhbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvdGhlci5lcXVhbHModGhpcykgfHwgKHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5lbmQpIDwgMCAmJiBvdGhlci5zdGFydD8uY29tcGFyZVRvKHRoaXMuZW5kKSA8IDApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpdCB0aGUgZ2l2ZW4gbG9jYWxEYXRlIG92ZXJsYXBzIHdpdGggdGhlIGdpdmVuIFRpbWVGcmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHRpbWVGcmFtZSBUaW1lRnJhbWUgdG8gY2hlY2sgYWdhaW5zdFxuICAgKiBAcGFyYW0gbG9jYWxEYXRlIExvY2FsRGF0ZSB0byBjaGVja1xuICAgKi9cbiAgcHVibGljIG92ZXJsYXBzV2l0aExvY2FsRGF0ZShcbiAgICBsb2NhbERhdGU6IERhdGVcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxhcHMoSW50ZXJ2YWwub2ZEYXlEYXRlKGxvY2FsRGF0ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogPHA+XG4gICAqIFRoaXMgY2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgaW5zdGFudCBpcyB3aXRoaW4gdGhlIGJvdW5kcyBvZiB0aGlzIGludGVydmFsLlxuICAgKiBJZiB0aGlzIHJhbmdlIGhhcyBhbiB1bmJvdW5kZWQgc3RhcnQgdGhlbiB7QGNvZGUgY29udGFpbnMoSW5zdGFudCNNSU4pfSByZXR1cm5zIHRydWUuXG4gICAqIElmIHRoaXMgcmFuZ2UgaGFzIGFuIHVuYm91bmRlZCBlbmQgdGhlbiB7QGNvZGUgY29udGFpbnMoSW5zdGFudCNNQVgpfSByZXR1cm5zIHRydWUuXG4gICAqIElmIHRoaXMgcmFuZ2UgaXMgZW1wdHkgdGhlbiB0aGlzIG1ldGhvZCBhbHdheXMgcmV0dXJucyBmYWxzZS5cbiAgICpcbiAgICogQHBhcmFtIGluc3RhbnQgIHRoZSBpbnN0YW50LCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnRlcnZhbCBjb250YWlucyB0aGUgaW5zdGFudFxuICAgKi9cbiAgcHVibGljICBjb250YWlucyhpbnN0YW50OiBJbnN0YW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnN0YW50KSA8PSAwICYmIChpbnN0YW50LmNvbXBhcmVUbyh0aGlzLmVuZCkgPCAwIHx8IHRoaXMuaXNVbmJvdW5kZWRFbmQoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgZW5jbG9zZXMgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoaXMgY2hlY2tzIGlmIHRoZSBib3VuZHMgb2YgdGhlIHNwZWNpZmllZCBpbnRlcnZhbCBhcmUgd2l0aGluIHRoZSBib3VuZHMgb2YgdGhpcyBpbnRlcnZhbC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgZW5jbG9zZXMgaXRzZWxmLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCwgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW50ZXJ2YWwgY29udGFpbnMgdGhlIG90aGVyIGludGVydmFsXG4gICAqL1xuICBwdWJsaWMgZW5jbG9zZXMob3RoZXI6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCkgPD0gMCAmJiBvdGhlci5lbmQ/LmNvbXBhcmVUbyh0aGlzLmVuZCkgPD0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBhYnV0cyAoaXMgbmV4dCB0byBvciBoYXMgYSBjb21tb24gYm91bmRhcnkgd2l0aCkgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGUgZW5kIG9mIHRoaXMgaW50ZXJ2YWwgaXMgdGhlIHN0YXJ0IG9mIHRoZSBvdGhlciwgb3IgdmljZSB2ZXJzYS5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgZG9lcyBub3QgYWJ1dCBpdHNlbGYuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnRlcnZhbCBhYnV0cyB0aGUgb3RoZXIgaW50ZXJ2YWxcbiAgICovXG4gIHB1YmxpYyBhYnV0cyhvdGhlcjogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmVxdWFscyhvdGhlci5zdGFydCkgIT09IHRoaXMuc3RhcnQ/LmVxdWFscyhvdGhlci5lbmQpOyAvLyAhPT0gbWVhbnMgWE9SXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgY29ubmVjdGVkIHRvIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhlIHR3byBpbnRlcnZhbHMgaGF2ZSBhbiBlbmNsb3NlZCBpbnRlcnZhbCBpbiBjb21tb24sIGV2ZW4gaWYgdGhhdCBpbnRlcnZhbCBpcyBlbXB0eS5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgaXMgY29ubmVjdGVkIHRvIGl0c2VsZi5cbiAgICogPHA+XG4gICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byB7QGNvZGUgKG92ZXJsYXBzKG90aGVyKSB8fCBhYnV0cyhvdGhlcikpfS5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyICB0aGUgb3RoZXIgaW50ZXJ2YWwsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGludGVydmFsIGlzIGNvbm5lY3RlZCB0byB0aGUgb3RoZXIgaW50ZXJ2YWxcbiAgICovXG4gIHB1YmxpYyBpc0Nvbm5lY3RlZChvdGhlcjogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcXVhbHMob3RoZXIpIHx8ICh0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuZW5kKSA8PSAwICYmIG90aGVyLnN0YXJ0Py5jb21wYXJlVG8odGhpcy5lbmQpIDw9IDApO1xuICB9XG5cbiAgLy8gLS0tXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgc3RhcnRzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgYmVoYXZlcyBhcyB0aG91Z2ggaXQgaXMgYW4gaW5zdGFudCBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGluc3RhbnQgIHRoZSBvdGhlciBpbnN0YW50IHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3RhcnQgb2YgdGhpcyBpbnRlcnZhbCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIGluc3RhbnRcbiAgICovXG4gIHB1YmxpYyBpc0FmdGVySW5zdGFudChpbnN0YW50OiBJbnN0YW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnN0YW50KSA+IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgZW5kcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnN0YW50LlxuICAgKiBTaW5jZSBpbnRlcnZhbHMgZG8gbm90IGluY2x1ZGUgdGhlaXIgZW5kIHBvaW50cywgdGhpcyB3aWxsIHJldHVybiB0cnVlIGlmIHRoZVxuICAgKiBpbnN0YW50IGVxdWFscyB0aGUgZW5kIG9mIHRoZSBpbnRlcnZhbC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgYmVoYXZlcyBhcyB0aG91Z2ggaXQgaXMgYW4gaW5zdGFudCBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGluc3RhbnQgIHRoZSBvdGhlciBpbnN0YW50IHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3RhcnQgb2YgdGhpcyBpbnRlcnZhbCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNCZWZvcmVJbnN0YW50KGluc3RhbnQ6IEluc3RhbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmNvbXBhcmVUbyhpbnN0YW50KSA8PSAwICYmIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnN0YW50KSA8IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgc3RhcnRzIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogU2luY2UgaW50ZXJ2YWxzIGRvIG5vdCBpbmNsdWRlIHRoZWlyIGVuZCBwb2ludHMsIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGVcbiAgICogaW5zdGFudCBlcXVhbHMgdGhlIGVuZCBvZiB0aGUgaW50ZXJ2YWwuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGJlaGF2ZXMgYXMgdGhvdWdoIGl0IGlzIGFuIGluc3RhbnQgZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpbnRlcnZhbCAgdGhlIG90aGVyIGludGVydmFsIHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGluc3RhbnQgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNBZnRlcihpbnRlcnZhbDogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8uY29tcGFyZVRvKGludGVydmFsLmVuZCkgPj0gMCAmJiAhaW50ZXJ2YWwuZXF1YWxzKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKiA8cD5cbiAgICogVGhlIHJlc3VsdCBpcyB0cnVlIGlmIHRoaXMgaW5zdGFudCBlbmRzIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogU2luY2UgaW50ZXJ2YWxzIGRvIG5vdCBpbmNsdWRlIHRoZWlyIGVuZCBwb2ludHMsIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGVcbiAgICogdHdvIGludGVydmFscyBhYnV0LlxuICAgKiBBbiBlbXB0eSBpbnRlcnZhbCBiZWhhdmVzIGFzIHRob3VnaCBpdCBpcyBhbiBpbnN0YW50IGZvciBjb21wYXJpc29uIHB1cnBvc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gaW50ZXJ2YWwgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnN0YW50IGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGluc3RhbnRcbiAgICovXG4gIHB1YmxpYyBpc0JlZm9yZShpbnRlcnZhbDogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmNvbXBhcmVUbyhpbnRlcnZhbC5zdGFydCkgPD0gMCAmJiAhaW50ZXJ2YWwuZXF1YWxzKHRoaXMpO1xuICB9XG5cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRXF1YWxpdHkgJiBIYXNoY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgZXF1YWwgdG8gYW5vdGhlciBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIENvbXBhcmVzIHRoaXMge0Bjb2RlIEludGVydmFsfSB3aXRoIGFub3RoZXIgZW5zdXJpbmcgdGhhdCB0aGUgdHdvIGluc3RhbnRzIGFyZSB0aGUgc2FtZS5cbiAgICogT25seSBvYmplY3RzIG9mIHR5cGUge0Bjb2RlIEludGVydmFsfSBhcmUgY29tcGFyZWQsIG90aGVyIHR5cGVzIHJldHVybiBmYWxzZS5cbiAgICpcbiAgICogQHBhcmFtIG9iaiAgdGhlIG9iamVjdCB0byBjaGVjaywgbnVsbCByZXR1cm5zIGZhbHNlXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGlzIGVxdWFsIHRvIHRoZSBvdGhlciBpbnRlcnZhbFxuICAgKi9cbiAgcHVibGljIGVxdWFscyhvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzID09PSBvYmopIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgSW50ZXJ2YWwpIHtcbiAgICAgIGNvbnN0IG90aGVyID0gPEludGVydmFsPiBvYmo7XG4gICAgICByZXR1cm4gdGhpcy5zdGFydD8uZXF1YWxzKG90aGVyLnN0YXJ0KSAmJiB0aGlzLmVuZD8uZXF1YWxzKG90aGVyLmVuZCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0aGlzIEludGVydmFsIHRvIHRoZSBnaXZlbiBJbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSBjb21wYXJpc29uIGlzIGJhc2VkIG9uIHRoZSB0aW1lLWxpbmUgcG9zaXRpb24gb2YgdGhlIGxvd2VyIGJvdW5kIGluc3RhbnRzIChJbnRlcnZhbCBzdGFydCkuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciB0aGUgb3RoZXIgSW50ZXJ2YWwgdG8gY29tcGFyZSB0bywgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgY29tcGFyYXRvciB2YWx1ZSwgbmVnYXRpdmUgaWYgbGVzcywgcG9zaXRpdmUgaWYgZ3JlYXRlclxuICAgKiBAdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIG90aGVyIGlzIG51bGxcbiAgICovXG4gIHB1YmxpYyBjb21wYXJlVG8ob3RoZXI6IEludGVydmFsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLnN0YXJ0KTtcbiAgfVxuXG5cbn1cbiJdfQ==
|
|
@@ -121,10 +121,13 @@ export class PeriodDuration {
|
|
|
121
121
|
if (!period) {
|
|
122
122
|
throw new Error('Parameter period must not be null!');
|
|
123
123
|
}
|
|
124
|
-
if (!
|
|
124
|
+
if (!duration) {
|
|
125
125
|
throw new Error('Parameter duration must not be null!');
|
|
126
126
|
}
|
|
127
127
|
return new PeriodDuration(period, duration);
|
|
128
128
|
}
|
|
129
|
+
static zero() {
|
|
130
|
+
return this.of(Period.ZERO, Duration.ZERO);
|
|
131
|
+
}
|
|
129
132
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyaW9kLWR1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3RpbWUvcGVyaW9kLWR1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQWEsU0FBUyxFQUFFLE1BQU0sRUFBWSxlQUFlLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFaEcsTUFBTSxPQUFPLGNBQWM7SUFXekI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsTUFBYyxFQUNkLFFBQWtCO1FBRWxCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBDRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBWTtRQUM5Qix3Q0FBd0M7UUFDeEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7YUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsTUFBTSxHQUFHLEdBQUcsQ0FBQztTQUNkO1FBQ0QseURBQXlEO1FBQ3pELElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQixP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QztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbiwgTG9jYWxEYXRlLCBMb2NhbFRpbWUsIFBlcmlvZCwgVGVtcG9yYWwsIFRlbXBvcmFsUXVlcmllc30gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBQZXJpb2REdXJhdGlvbiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHJlYWRvbmx5IHBlcmlvZDogUGVyaW9kO1xuICBwdWJsaWMgcmVhZG9ubHkgZHVyYXRpb246IER1cmF0aW9uO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcGVyaW9kOiBQZXJpb2QsXG4gICAgZHVyYXRpb246IER1cmF0aW9uXG4gICkge1xuICAgIHRoaXMucGVyaW9kID0gcGVyaW9kO1xuICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbjtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdGF0aWMgQnVpbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPYnRhaW5zIGFuIGluc3RhbmNlIGZyb20gYSB0ZXh0IHN0cmluZyBzdWNoIGFzIHtAY29kZSBQblluTW5EVG5Ibk1uU30uXG4gICAqIDxwPlxuICAgKiBUaGlzIHdpbGwgcGFyc2UgdGhlIHN0cmluZyBwcm9kdWNlZCBieSB7QGNvZGUgdG9TdHJpbmcoKX0gd2hpY2ggaXNcbiAgICogYmFzZWQgb24gdGhlIElTTy04NjAxIHBlcmlvZCBmb3JtYXRzIHtAY29kZSBQblluTW5EVG5Ibk1uU30gYW5kIHtAY29kZSBQbld9LlxuICAgKiA8cD5cbiAgICogVGhlIHN0cmluZyBzdGFydHMgd2l0aCBhbiBvcHRpb25hbCBzaWduLCBkZW5vdGVkIGJ5IHRoZSBBU0NJSSBuZWdhdGl2ZVxuICAgKiBvciBwb3NpdGl2ZSBzeW1ib2wuIElmIG5lZ2F0aXZlLCB0aGUgd2hvbGUgYW1vdW50IGlzIG5lZ2F0ZWQuXG4gICAqIFRoZSBBU0NJSSBsZXR0ZXIgXCJQXCIgaXMgbmV4dCBpbiB1cHBlciBvciBsb3dlciBjYXNlLlxuICAgKiBUaGVyZSBhcmUgdGhlbiBhIG51bWJlciBvZiBzZWN0aW9ucywgZWFjaCBjb25zaXN0aW5nIG9mIGEgbnVtYmVyIGFuZCBhIHN1ZmZpeC5cbiAgICogQXQgbGVhc3Qgb25lIG9mIHRoZSBzZWN0aW9ucyBtdXN0IGJlIHByZXNlbnQuXG4gICAqIFRoZSBzZWN0aW9ucyBoYXZlIHN1ZmZpeGVzIGluIEFTQ0lJIG9mIFwiWVwiIGZvciB5ZWFycywgXCJNXCIgZm9yIG1vbnRocyxcbiAgICogXCJXXCIgZm9yIHdlZWtzLCBcIkRcIiBmb3IgZGF5cywgXCJIXCIgZm9yIGhvdXJzLCBcIk1cIiBmb3IgbWludXRlcywgXCJTXCIgZm9yIHNlY29uZHMsXG4gICAqIGFjY2VwdGVkIGluIHVwcGVyIG9yIGxvd2VyIGNhc2UuIE5vdGUgdGhhdCB0aGUgQVNDSUkgbGV0dGVyIFwiVFwiIHNlcGFyYXRlc1xuICAgKiB0aGUgZGF0ZSBhbmQgdGltZSBwYXJ0cyBhbmQgbXVzdCBiZSBwcmVzZW50IGlmIGFueSB0aW1lIHBhcnQgaXMgcHJlc2VudC5cbiAgICogVGhlIHN1ZmZpeGVzIG11c3Qgb2NjdXIgaW4gb3JkZXIuXG4gICAqIFRoZSBudW1iZXIgcGFydCBvZiBlYWNoIHNlY3Rpb24gbXVzdCBjb25zaXN0IG9mIEFTQ0lJIGRpZ2l0cy5cbiAgICogVGhlIG51bWJlciBtYXkgYmUgcHJlZml4ZWQgYnkgdGhlIEFTQ0lJIG5lZ2F0aXZlIG9yIHBvc2l0aXZlIHN5bWJvbC5cbiAgICogVGhlIG51bWJlciBtdXN0IHBhcnNlIHRvIGFuIHtAY29kZSBpbnR9LlxuICAgKiBBbnkgd2Vlay1iYXNlZCBpbnB1dCBpcyBtdWx0aXBsaWVkIGJ5IDcgYW5kIHRyZWF0ZWQgYXMgYSBudW1iZXIgb2YgZGF5cy5cbiAgICogPHA+XG4gICAqIFRoZSBsZWFkaW5nIHBsdXMvbWludXMgc2lnbiwgYW5kIG5lZ2F0aXZlIHZhbHVlcyBmb3Igd2Vla3MgYW5kIGRheXMgYXJlXG4gICAqIG5vdCBwYXJ0IG9mIHRoZSBJU08tODYwMSBzdGFuZGFyZC5cbiAgICogPHA+XG4gICAqIE5vdGUgdGhhdCB0aGUgZGF0ZSBzdHlsZSBmb3JtYXQge0Bjb2RlIFBZWVlZLU1NLUREVEhIOk1NOlNTfSBpcyBub3Qgc3VwcG9ydGVkLlxuICAgKiA8cD5cbiAgICogRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgYXJlIHZhbGlkIGlucHV0czpcbiAgICogPHByZT5cbiAgICogICBcIlAyWVwiICAgICAgICAgICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZlllYXJzKDIpKVxuICAgKiAgIFwiUDNNXCIgICAgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mTW9udGhzKDMpKVxuICAgKiAgIFwiUDRXXCIgICAgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mV2Vla3MoNCkpXG4gICAqICAgXCJQNURcIiAgICAgICAgICAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2Qub2ZEYXlzKDUpKVxuICAgKiAgIFwiUFQ2SFwiICAgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoRHVyYXRpb24ub2ZIb3Vycyg2KSlcbiAgICogICBcIlAxWTJNM0RcIiAgICAgICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZigxLCAyLCAzKSlcbiAgICogICBcIlAxWTJNM1c0RFQ4SFwiICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZigxLCAyLCAyNSksIER1cmF0aW9uLm9mSG91cnMoOCkpXG4gICAqICAgXCJQLTFZMk1cIiAgICAgICAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2Qub2YoLTEsIDIsIDApKVxuICAgKiAgIFwiLVAxWTJNXCIgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mKC0xLCAtMiwgMCkpXG4gICAqIDwvcHJlPlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAgdGhlIHRleHQgdG8gcGFyc2UsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIHBhcnNlZCBwZXJpb2QsIG5vdCBudWxsXG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVQYXJzZUV4Y2VwdGlvbiBpZiB0aGUgdGV4dCBjYW5ub3QgYmUgcGFyc2VkIHRvIGEgcGVyaW9kXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlKHRleHQ6IHN0cmluZyk6IFBlcmlvZER1cmF0aW9uIHtcbiAgICAvLyBPYmplY3RzLnJlcXVpcmVOb25OdWxsKHRleHQsIFwidGV4dFwiKTtcbiAgICBsZXQgdXBwZXIgPSB0ZXh0LnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTtcbiAgICBsZXQgbmVnYXRlID0gJyc7XG4gICAgaWYgKHVwcGVyLnN0YXJ0c1dpdGgoJysnKSkge1xuICAgICAgdXBwZXIgPSB1cHBlci5zdWJzdHJpbmcoMSk7XG4gICAgfSBlbHNlIGlmICh1cHBlci5zdGFydHNXaXRoKCctJykpIHtcbiAgICAgIHVwcGVyID0gdXBwZXIuc3Vic3RyaW5nKDEpO1xuICAgICAgbmVnYXRlID0gJy0nO1xuICAgIH1cbiAgICAvLyBkdXJhdGlvbiBvbmx5LCBwYXJzZSBvcmlnaW5hbCB0ZXh0IHNvIGl0IGRvZXMgbmVnYXRpb25cbiAgICBpZiAodXBwZXIuc3RhcnRzV2l0aCgnUFQnKSkge1xuICAgICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLm9mRHVyYXRpb24oRHVyYXRpb24ucGFyc2UodGV4dCkpO1xuICAgIH1cbiAgICAvLyBwZXJpb2Qgb25seSwgcGFyc2Ugb3JpZ2luYWwgdGV4dCBzbyBpdCBkb2VzIG5lZ2F0aW9uXG4gICAgY29uc3QgdHBvcyA9IHVwcGVyLmluZGV4T2YoJ1QnKTtcbiAgICBpZiAodHBvcyA8IDApIHtcbiAgICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZlBlcmlvZChQZXJpb2QucGFyc2UodGV4dCkpO1xuICAgIH1cbiAgICAvLyBwZXJpb2QgYW5kIGR1cmF0aW9uXG4gICAgY29uc3QgcGVyaW9kID0gUGVyaW9kLnBhcnNlKG5lZ2F0ZSArIHVwcGVyLnN1YnN0cmluZygwLCB0cG9zKSk7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEdXJhdGlvbi5wYXJzZShuZWdhdGUgKyAnUCcgKyB1cHBlci5zdWJzdHJpbmcodHBvcykpO1xuICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZihwZXJpb2QsIGR1cmF0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRhaW5zIGFuIGluc3RhbmNlIGNvbnNpc3Rpbmcgb2YgdGhlIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gdHdvIHRlbXBvcmFscy5cbiAgICogPHA+XG4gICAqIFRoZSBzdGFydCBpcyBpbmNsdWRlZCwgYnV0IHRoZSBlbmQgaXMgbm90LlxuICAgKiBUaGUgcmVzdWx0IG9mIHRoaXMgbWV0aG9kIGNhbiBiZSBuZWdhdGl2ZSBpZiB0aGUgZW5kIGlzIGJlZm9yZSB0aGUgc3RhcnQuXG4gICAqIDxwPlxuICAgKiBUaGUgY2FsY3VsYXRpb24gZXhhbWluZXMgdGhlIHRlbXBvcmFscyBhbmQgZXh0cmFjdHMge0BsaW5rIExvY2FsRGF0ZX0gYW5kIHtAbGluayBMb2NhbFRpbWV9LlxuICAgKiBJZiB0aGUgdGltZSBpcyBtaXNzaW5nLCBpdCB3aWxsIGJlIGRlZmF1bHRlZCB0byBtaWRuaWdodC5cbiAgICogSWYgb25lIGRhdGUgaXMgbWlzc2luZywgaXQgd2lsbCBiZSBkZWZhdWx0ZWQgdG8gdGhlIG90aGVyIGRhdGUuXG4gICAqIEl0IHRoZW4gZmluZHMgdGhlIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gdGhlIHR3byBkYXRlcyBhbmQgYmV0d2VlbiB0aGUgdHdvIHRpbWVzLlxuICAgKlxuICAgKiBAcGFyYW0gc3RhcnRJbmNsdXNpdmUgIHRoZSBzdGFydCwgaW5jbHVzaXZlLCBub3QgbnVsbFxuICAgKiBAcGFyYW0gZW5kRXhjbHVzaXZlICB0aGUgZW5kLCBleGNsdXNpdmUsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGJldHdlZW4gdGhpcyBkYXRlIGFuZCB0aGUgZW5kIGRhdGUsIG5vdCBudWxsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJldHdlZW4oc3RhcnRJbmNsdXNpdmU6IFRlbXBvcmFsLCBlbmRFeGNsdXNpdmU6IFRlbXBvcmFsKTogUGVyaW9kRHVyYXRpb24ge1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHN0YXJ0SW5jbHVzaXZlLnF1ZXJ5KFRlbXBvcmFsUXVlcmllcy5sb2NhbERhdGUoKSk7XG4gICAgY29uc3QgZW5kRGF0ZSA9IGVuZEV4Y2x1c2l2ZS5xdWVyeShUZW1wb3JhbFF1ZXJpZXMubG9jYWxEYXRlKCkpO1xuICAgIGxldCBwZXJpb2QgPSBQZXJpb2QuWkVSTztcbiAgICBpZiAoc3RhcnREYXRlICE9IG51bGwgJiYgZW5kRGF0ZSAhPSBudWxsKSB7XG4gICAgICBwZXJpb2QgPSBQZXJpb2QuYmV0d2VlbihzdGFydERhdGUsIGVuZERhdGUpO1xuICAgIH1cbiAgICBsZXQgc3RhcnRUaW1lID0gc3RhcnRJbmNsdXNpdmUucXVlcnkoVGVtcG9yYWxRdWVyaWVzLmxvY2FsVGltZSgpKTtcbiAgICBsZXQgZW5kVGltZSA9IGVuZEV4Y2x1c2l2ZS5xdWVyeShUZW1wb3JhbFF1ZXJpZXMubG9jYWxUaW1lKCkpO1xuICAgIHN0YXJ0VGltZSA9IHN0YXJ0VGltZSAhPSBudWxsID8gc3RhcnRUaW1lIDogTG9jYWxUaW1lLk1JRE5JR0hUO1xuICAgIGVuZFRpbWUgPSBlbmRUaW1lICE9IG51bGwgPyBlbmRUaW1lIDogTG9jYWxUaW1lLk1JRE5JR0hUO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gRHVyYXRpb24uYmV0d2VlbihzdGFydFRpbWUsIGVuZFRpbWUpO1xuICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZihwZXJpb2QsIGR1cmF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2ZQZXJpb2QocGVyaW9kOiBQZXJpb2QpOiBQZXJpb2REdXJhdGlvbiB7XG4gICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLm9mKHBlcmlvZCwgRHVyYXRpb24uWkVSTyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mRHVyYXRpb24oZHVyYXRpb246IER1cmF0aW9uKTogUGVyaW9kRHVyYXRpb24ge1xuICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2QuWkVSTywgZHVyYXRpb24pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZihwZXJpb2Q6IFBlcmlvZCwgZHVyYXRpb246IER1cmF0aW9uKTogUGVyaW9kRHVyYXRpb24ge1xuXG4gICAgaWYgKCFwZXJpb2QpIHsgdGhyb3cgbmV3IEVycm9yKCdQYXJhbWV0ZXIgcGVyaW9kIG11c3Qgbm90IGJlIG51bGwhJyk7IH1cbiAgICBpZiAoIXBlcmlvZCkgeyB0aHJvdyBuZXcgRXJyb3IoJ1BhcmFtZXRlciBkdXJhdGlvbiBtdXN0IG5vdCBiZSBudWxsIScpOyB9XG5cbiAgICByZXR1cm4gbmV3IFBlcmlvZER1cmF0aW9uKHBlcmlvZCwgZHVyYXRpb24pO1xuICB9XG59XG4iXX0=
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyaW9kLWR1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3RpbWUvcGVyaW9kLWR1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQWEsU0FBUyxFQUFFLE1BQU0sRUFBWSxlQUFlLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFaEcsTUFBTSxPQUFPLGNBQWM7SUFXekI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsTUFBYyxFQUNkLFFBQWtCO1FBRWxCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBDRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBWTtRQUM5Qix3Q0FBd0M7UUFDeEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7YUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsTUFBTSxHQUFHLEdBQUcsQ0FBQztTQUNkO1FBQ0QseURBQXlEO1FBQ3pELElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQixP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QztJQUVNLE1BQU0sQ0FBQyxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uLCBMb2NhbERhdGUsIExvY2FsVGltZSwgUGVyaW9kLCBUZW1wb3JhbCwgVGVtcG9yYWxRdWVyaWVzfSBmcm9tICdAanMtam9kYS9jb3JlJztcblxuZXhwb3J0IGNsYXNzIFBlcmlvZER1cmF0aW9uIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVhZG9ubHkgcGVyaW9kOiBQZXJpb2Q7XG4gIHB1YmxpYyByZWFkb25seSBkdXJhdGlvbjogRHVyYXRpb247XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwZXJpb2Q6IFBlcmlvZCxcbiAgICBkdXJhdGlvbjogRHVyYXRpb25cbiAgKSB7XG4gICAgdGhpcy5wZXJpb2QgPSBwZXJpb2Q7XG4gICAgdGhpcy5kdXJhdGlvbiA9IGR1cmF0aW9uO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9idGFpbnMgYW4gaW5zdGFuY2UgZnJvbSBhIHRleHQgc3RyaW5nIHN1Y2ggYXMge0Bjb2RlIFBuWW5NbkRUbkhuTW5TfS5cbiAgICogPHA+XG4gICAqIFRoaXMgd2lsbCBwYXJzZSB0aGUgc3RyaW5nIHByb2R1Y2VkIGJ5IHtAY29kZSB0b1N0cmluZygpfSB3aGljaCBpc1xuICAgKiBiYXNlZCBvbiB0aGUgSVNPLTg2MDEgcGVyaW9kIGZvcm1hdHMge0Bjb2RlIFBuWW5NbkRUbkhuTW5TfSBhbmQge0Bjb2RlIFBuV30uXG4gICAqIDxwPlxuICAgKiBUaGUgc3RyaW5nIHN0YXJ0cyB3aXRoIGFuIG9wdGlvbmFsIHNpZ24sIGRlbm90ZWQgYnkgdGhlIEFTQ0lJIG5lZ2F0aXZlXG4gICAqIG9yIHBvc2l0aXZlIHN5bWJvbC4gSWYgbmVnYXRpdmUsIHRoZSB3aG9sZSBhbW91bnQgaXMgbmVnYXRlZC5cbiAgICogVGhlIEFTQ0lJIGxldHRlciBcIlBcIiBpcyBuZXh0IGluIHVwcGVyIG9yIGxvd2VyIGNhc2UuXG4gICAqIFRoZXJlIGFyZSB0aGVuIGEgbnVtYmVyIG9mIHNlY3Rpb25zLCBlYWNoIGNvbnNpc3Rpbmcgb2YgYSBudW1iZXIgYW5kIGEgc3VmZml4LlxuICAgKiBBdCBsZWFzdCBvbmUgb2YgdGhlIHNlY3Rpb25zIG11c3QgYmUgcHJlc2VudC5cbiAgICogVGhlIHNlY3Rpb25zIGhhdmUgc3VmZml4ZXMgaW4gQVNDSUkgb2YgXCJZXCIgZm9yIHllYXJzLCBcIk1cIiBmb3IgbW9udGhzLFxuICAgKiBcIldcIiBmb3Igd2Vla3MsIFwiRFwiIGZvciBkYXlzLCBcIkhcIiBmb3IgaG91cnMsIFwiTVwiIGZvciBtaW51dGVzLCBcIlNcIiBmb3Igc2Vjb25kcyxcbiAgICogYWNjZXB0ZWQgaW4gdXBwZXIgb3IgbG93ZXIgY2FzZS4gTm90ZSB0aGF0IHRoZSBBU0NJSSBsZXR0ZXIgXCJUXCIgc2VwYXJhdGVzXG4gICAqIHRoZSBkYXRlIGFuZCB0aW1lIHBhcnRzIGFuZCBtdXN0IGJlIHByZXNlbnQgaWYgYW55IHRpbWUgcGFydCBpcyBwcmVzZW50LlxuICAgKiBUaGUgc3VmZml4ZXMgbXVzdCBvY2N1ciBpbiBvcmRlci5cbiAgICogVGhlIG51bWJlciBwYXJ0IG9mIGVhY2ggc2VjdGlvbiBtdXN0IGNvbnNpc3Qgb2YgQVNDSUkgZGlnaXRzLlxuICAgKiBUaGUgbnVtYmVyIG1heSBiZSBwcmVmaXhlZCBieSB0aGUgQVNDSUkgbmVnYXRpdmUgb3IgcG9zaXRpdmUgc3ltYm9sLlxuICAgKiBUaGUgbnVtYmVyIG11c3QgcGFyc2UgdG8gYW4ge0Bjb2RlIGludH0uXG4gICAqIEFueSB3ZWVrLWJhc2VkIGlucHV0IGlzIG11bHRpcGxpZWQgYnkgNyBhbmQgdHJlYXRlZCBhcyBhIG51bWJlciBvZiBkYXlzLlxuICAgKiA8cD5cbiAgICogVGhlIGxlYWRpbmcgcGx1cy9taW51cyBzaWduLCBhbmQgbmVnYXRpdmUgdmFsdWVzIGZvciB3ZWVrcyBhbmQgZGF5cyBhcmVcbiAgICogbm90IHBhcnQgb2YgdGhlIElTTy04NjAxIHN0YW5kYXJkLlxuICAgKiA8cD5cbiAgICogTm90ZSB0aGF0IHRoZSBkYXRlIHN0eWxlIGZvcm1hdCB7QGNvZGUgUFlZWVktTU0tRERUSEg6TU06U1N9IGlzIG5vdCBzdXBwb3J0ZWQuXG4gICAqIDxwPlxuICAgKiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBhcmUgdmFsaWQgaW5wdXRzOlxuICAgKiA8cHJlPlxuICAgKiAgIFwiUDJZXCIgICAgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mWWVhcnMoMikpXG4gICAqICAgXCJQM01cIiAgICAgICAgICAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2Qub2ZNb250aHMoMykpXG4gICAqICAgXCJQNFdcIiAgICAgICAgICAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2Qub2ZXZWVrcyg0KSlcbiAgICogICBcIlA1RFwiICAgICAgICAgICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZkRheXMoNSkpXG4gICAqICAgXCJQVDZIXCIgICAgICAgICAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihEdXJhdGlvbi5vZkhvdXJzKDYpKVxuICAgKiAgIFwiUDFZMk0zRFwiICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mKDEsIDIsIDMpKVxuICAgKiAgIFwiUDFZMk0zVzREVDhIXCIgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mKDEsIDIsIDI1KSwgRHVyYXRpb24ub2ZIb3Vycyg4KSlcbiAgICogICBcIlAtMVkyTVwiICAgICAgICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZigtMSwgMiwgMCkpXG4gICAqICAgXCItUDFZMk1cIiAgICAgICAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2Qub2YoLTEsIC0yLCAwKSlcbiAgICogPC9wcmU+XG4gICAqXG4gICAqIEBwYXJhbSB0ZXh0ICB0aGUgdGV4dCB0byBwYXJzZSwgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgcGFyc2VkIHBlcmlvZCwgbm90IG51bGxcbiAgICogQHRocm93cyBEYXRlVGltZVBhcnNlRXhjZXB0aW9uIGlmIHRoZSB0ZXh0IGNhbm5vdCBiZSBwYXJzZWQgdG8gYSBwZXJpb2RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2UodGV4dDogc3RyaW5nKTogUGVyaW9kRHVyYXRpb24ge1xuICAgIC8vIE9iamVjdHMucmVxdWlyZU5vbk51bGwodGV4dCwgXCJ0ZXh0XCIpO1xuICAgIGxldCB1cHBlciA9IHRleHQudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpO1xuICAgIGxldCBuZWdhdGUgPSAnJztcbiAgICBpZiAodXBwZXIuc3RhcnRzV2l0aCgnKycpKSB7XG4gICAgICB1cHBlciA9IHVwcGVyLnN1YnN0cmluZygxKTtcbiAgICB9IGVsc2UgaWYgKHVwcGVyLnN0YXJ0c1dpdGgoJy0nKSkge1xuICAgICAgdXBwZXIgPSB1cHBlci5zdWJzdHJpbmcoMSk7XG4gICAgICBuZWdhdGUgPSAnLSc7XG4gICAgfVxuICAgIC8vIGR1cmF0aW9uIG9ubHksIHBhcnNlIG9yaWdpbmFsIHRleHQgc28gaXQgZG9lcyBuZWdhdGlvblxuICAgIGlmICh1cHBlci5zdGFydHNXaXRoKCdQVCcpKSB7XG4gICAgICByZXR1cm4gUGVyaW9kRHVyYXRpb24ub2ZEdXJhdGlvbihEdXJhdGlvbi5wYXJzZSh0ZXh0KSk7XG4gICAgfVxuICAgIC8vIHBlcmlvZCBvbmx5LCBwYXJzZSBvcmlnaW5hbCB0ZXh0IHNvIGl0IGRvZXMgbmVnYXRpb25cbiAgICBjb25zdCB0cG9zID0gdXBwZXIuaW5kZXhPZignVCcpO1xuICAgIGlmICh0cG9zIDwgMCkge1xuICAgICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLm9mUGVyaW9kKFBlcmlvZC5wYXJzZSh0ZXh0KSk7XG4gICAgfVxuICAgIC8vIHBlcmlvZCBhbmQgZHVyYXRpb25cbiAgICBjb25zdCBwZXJpb2QgPSBQZXJpb2QucGFyc2UobmVnYXRlICsgdXBwZXIuc3Vic3RyaW5nKDAsIHRwb3MpKTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IER1cmF0aW9uLnBhcnNlKG5lZ2F0ZSArICdQJyArIHVwcGVyLnN1YnN0cmluZyh0cG9zKSk7XG4gICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLm9mKHBlcmlvZCwgZHVyYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGFpbnMgYW4gaW5zdGFuY2UgY29uc2lzdGluZyBvZiB0aGUgYW1vdW50IG9mIHRpbWUgYmV0d2VlbiB0d28gdGVtcG9yYWxzLlxuICAgKiA8cD5cbiAgICogVGhlIHN0YXJ0IGlzIGluY2x1ZGVkLCBidXQgdGhlIGVuZCBpcyBub3QuXG4gICAqIFRoZSByZXN1bHQgb2YgdGhpcyBtZXRob2QgY2FuIGJlIG5lZ2F0aXZlIGlmIHRoZSBlbmQgaXMgYmVmb3JlIHRoZSBzdGFydC5cbiAgICogPHA+XG4gICAqIFRoZSBjYWxjdWxhdGlvbiBleGFtaW5lcyB0aGUgdGVtcG9yYWxzIGFuZCBleHRyYWN0cyB7QGxpbmsgTG9jYWxEYXRlfSBhbmQge0BsaW5rIExvY2FsVGltZX0uXG4gICAqIElmIHRoZSB0aW1lIGlzIG1pc3NpbmcsIGl0IHdpbGwgYmUgZGVmYXVsdGVkIHRvIG1pZG5pZ2h0LlxuICAgKiBJZiBvbmUgZGF0ZSBpcyBtaXNzaW5nLCBpdCB3aWxsIGJlIGRlZmF1bHRlZCB0byB0aGUgb3RoZXIgZGF0ZS5cbiAgICogSXQgdGhlbiBmaW5kcyB0aGUgYW1vdW50IG9mIHRpbWUgYmV0d2VlbiB0aGUgdHdvIGRhdGVzIGFuZCBiZXR3ZWVuIHRoZSB0d28gdGltZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzdGFydEluY2x1c2l2ZSAgdGhlIHN0YXJ0LCBpbmNsdXNpdmUsIG5vdCBudWxsXG4gICAqIEBwYXJhbSBlbmRFeGNsdXNpdmUgIHRoZSBlbmQsIGV4Y2x1c2l2ZSwgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgYmV0d2VlbiB0aGlzIGRhdGUgYW5kIHRoZSBlbmQgZGF0ZSwgbm90IG51bGxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYmV0d2VlbihzdGFydEluY2x1c2l2ZTogVGVtcG9yYWwsIGVuZEV4Y2x1c2l2ZTogVGVtcG9yYWwpOiBQZXJpb2REdXJhdGlvbiB7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gc3RhcnRJbmNsdXNpdmUucXVlcnkoVGVtcG9yYWxRdWVyaWVzLmxvY2FsRGF0ZSgpKTtcbiAgICBjb25zdCBlbmREYXRlID0gZW5kRXhjbHVzaXZlLnF1ZXJ5KFRlbXBvcmFsUXVlcmllcy5sb2NhbERhdGUoKSk7XG4gICAgbGV0IHBlcmlvZCA9IFBlcmlvZC5aRVJPO1xuICAgIGlmIChzdGFydERhdGUgIT0gbnVsbCAmJiBlbmREYXRlICE9IG51bGwpIHtcbiAgICAgIHBlcmlvZCA9IFBlcmlvZC5iZXR3ZWVuKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG4gICAgfVxuICAgIGxldCBzdGFydFRpbWUgPSBzdGFydEluY2x1c2l2ZS5xdWVyeShUZW1wb3JhbFF1ZXJpZXMubG9jYWxUaW1lKCkpO1xuICAgIGxldCBlbmRUaW1lID0gZW5kRXhjbHVzaXZlLnF1ZXJ5KFRlbXBvcmFsUXVlcmllcy5sb2NhbFRpbWUoKSk7XG4gICAgc3RhcnRUaW1lID0gc3RhcnRUaW1lICE9IG51bGwgPyBzdGFydFRpbWUgOiBMb2NhbFRpbWUuTUlETklHSFQ7XG4gICAgZW5kVGltZSA9IGVuZFRpbWUgIT0gbnVsbCA/IGVuZFRpbWUgOiBMb2NhbFRpbWUuTUlETklHSFQ7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEdXJhdGlvbi5iZXR3ZWVuKHN0YXJ0VGltZSwgZW5kVGltZSk7XG4gICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLm9mKHBlcmlvZCwgZHVyYXRpb24pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZlBlcmlvZChwZXJpb2Q6IFBlcmlvZCk6IFBlcmlvZER1cmF0aW9uIHtcbiAgICByZXR1cm4gUGVyaW9kRHVyYXRpb24ub2YocGVyaW9kLCBEdXJhdGlvbi5aRVJPKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2ZEdXJhdGlvbihkdXJhdGlvbjogRHVyYXRpb24pOiBQZXJpb2REdXJhdGlvbiB7XG4gICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5aRVJPLCBkdXJhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mKHBlcmlvZDogUGVyaW9kLCBkdXJhdGlvbjogRHVyYXRpb24pOiBQZXJpb2REdXJhdGlvbiB7XG5cbiAgICBpZiAoIXBlcmlvZCkgeyB0aHJvdyBuZXcgRXJyb3IoJ1BhcmFtZXRlciBwZXJpb2QgbXVzdCBub3QgYmUgbnVsbCEnKTsgfVxuICAgIGlmICghZHVyYXRpb24pIHsgdGhyb3cgbmV3IEVycm9yKCdQYXJhbWV0ZXIgZHVyYXRpb24gbXVzdCBub3QgYmUgbnVsbCEnKTsgfVxuXG4gICAgcmV0dXJuIG5ldyBQZXJpb2REdXJhdGlvbihwZXJpb2QsIGR1cmF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgemVybygpOiBQZXJpb2REdXJhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMub2YoUGVyaW9kLlpFUk8sIER1cmF0aW9uLlpFUk8pO1xuICB9XG59XG4iXX0=
|
|
@@ -25,15 +25,15 @@ export class ElderBadgeComponent {
|
|
|
25
25
|
this.elementClass = [];
|
|
26
26
|
}
|
|
27
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: ElderBadgeComponent, selector: "elder-badge", inputs: { content: "content", setCssClass: ["cssClass", "setCssClass"] }, ngImport: i0, template: "<mat-chip elderChipLabel
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: ElderBadgeComponent, selector: "elder-badge", inputs: { content: "content", setCssClass: ["cssClass", "setCssClass"] }, ngImport: i0, template: "<mat-chip elderChipLabel\n [color]=\"getColor()\"\n [class]=\"'elder-badge ' + elementClass\"\n *ngIf=\"content$ | async as count\">\n {{count}}\n</mat-chip>\n", styles: [".elder-badge{position:absolute!important;width:unset!important;max-width:unset!important;box-sizing:border-box;font-weight:600}.elder-badge .mdc-evolution-chip,.elder-badge .mdc-evolution-chip__cell,.elder-badge .mdc-evolution-chip__action{justify-content:center}.mat-badge-small .elder-badge.mat-badge-content{border-radius:16px;min-width:16px}.mat-badge-small.mat-badge-above .elder-badge.mat-badge-content{top:-7px!important}.mat-badge-small.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-small.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-small .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 3px!important}.mat-badge-small .elder-badge.mat-badge-content{line-height:14px!important}.mat-badge-medium .elder-badge.mat-badge-content{border-radius:22px;min-width:22px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-medium.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-medium .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-medium .elder-badge.mat-badge-content{line-height:20px!important}.mat-badge-large .elder-badge.mat-badge-content{border-radius:28px;min-width:28px}.mat-badge-large.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-large.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-large .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-large .elder-badge.mat-badge-content{line-height:26px!important}.elder-badge.mat-badge-content{transform:unset!important}\n"], dependencies: [{ kind: "component", type: i1.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "role", "id", "aria-label", "aria-description", "value", "removable", "highlighted"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i2.ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
29
29
|
}
|
|
30
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderBadgeComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
|
-
args: [{ selector: 'elder-badge', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-chip elderChipLabel
|
|
32
|
+
args: [{ selector: 'elder-badge', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-chip elderChipLabel\n [color]=\"getColor()\"\n [class]=\"'elder-badge ' + elementClass\"\n *ngIf=\"content$ | async as count\">\n {{count}}\n</mat-chip>\n", styles: [".elder-badge{position:absolute!important;width:unset!important;max-width:unset!important;box-sizing:border-box;font-weight:600}.elder-badge .mdc-evolution-chip,.elder-badge .mdc-evolution-chip__cell,.elder-badge .mdc-evolution-chip__action{justify-content:center}.mat-badge-small .elder-badge.mat-badge-content{border-radius:16px;min-width:16px}.mat-badge-small.mat-badge-above .elder-badge.mat-badge-content{top:-7px!important}.mat-badge-small.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-small.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-small .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 3px!important}.mat-badge-small .elder-badge.mat-badge-content{line-height:14px!important}.mat-badge-medium .elder-badge.mat-badge-content{border-radius:22px;min-width:22px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-medium.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-medium .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-medium .elder-badge.mat-badge-content{line-height:20px!important}.mat-badge-large .elder-badge.mat-badge-content{border-radius:28px;min-width:28px}.mat-badge-large.mat-badge-overlap.mat-badge-after .elder-badge.mat-badge-content{right:-5px;transform:translate(100%)!important}.mat-badge-large.mat-badge-overlap.mat-badge-before .elder-badge.mat-badge-content{left:-5px;transform:translate(-100%)!important}.mat-badge-large .elder-badge.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding:0 6px!important}.mat-badge-large .elder-badge.mat-badge-content{line-height:26px!important}.elder-badge.mat-badge-content{transform:unset!important}\n"] }]
|
|
33
33
|
}], ctorParameters: function () { return []; }, propDecorators: { content: [{
|
|
34
34
|
type: Input
|
|
35
35
|
}], setCssClass: [{
|
|
36
36
|
type: Input,
|
|
37
37
|
args: ['cssClass']
|
|
38
38
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9iYWRnZS9lbGRlci1iYWRnZS9lbGRlci1iYWRnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2JhZGdlL2VsZGVyLWJhZGdlL2VsZGVyLWJhZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBV3ZDLE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsSUFDVyxPQUFPLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBS00sV0FBVyxDQUFDLEdBQVc7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBRyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsRUFBRTtZQUMzQyxPQUFPLFNBQVMsQ0FBQTtTQUNqQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGlDQUFpQztRQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUVEO1FBekJnQixhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFPcEQsaUJBQVksR0FBYSxFQUFFLENBQUM7SUFtQm5DLENBQUM7OEdBNUJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDZIQ1poQyw2TEFNQTs7MkZETWEsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTswRUFRMUIsT0FBTztzQkFEakIsS0FBSztnQkFRQyxXQUFXO3NCQURqQixLQUFLO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWJhZGdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLWJhZGdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItYmFkZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcblxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckJhZGdlQ29tcG9uZW50IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29udGVudChjb3VudDogc3RyaW5nKSB7XG4gICAgdGhpcy5jb250ZW50JC5uZXh0KGNvdW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbGVtZW50Q2xhc3M6IHN0cmluZ1tdID0gW107XG5cbiAgQElucHV0KCdjc3NDbGFzcycpXG4gIHB1YmxpYyBzZXRDc3NDbGFzcyh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuZWxlbWVudENsYXNzID0gdmFsLnNwbGl0KCcgJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sb3IoKTogVGhlbWVQYWxldHRlIHtcbiAgICBpZih0aGlzLmlzQ29udGVudEFOdW1iZXJBbmRCaWdnZXJUaGFuWmVybygpKSB7XG4gICAgICByZXR1cm4gJ3ByaW1hcnknXG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbnRlbnRBTnVtYmVyQW5kQmlnZ2VyVGhhblplcm8oKSB7XG4gICAgcmV0dXJuICFpc05hTigrdGhpcy5jb250ZW50JC5nZXRWYWx1ZSgpKSAmJiArdGhpcy5jb250ZW50JC5nZXRWYWx1ZSgpID4gMFxuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxufVxuIiwiPG1hdC1jaGlwIGVsZGVyQ2hpcExhYmVsXG4gICAgICAgICAgW2NvbG9yXT1cImdldENvbG9yKClcIlxuICAgICAgICAgIFtjbGFzc109XCInZWxkZXItYmFkZ2UgJyArIGVsZW1lbnRDbGFzc1wiXG4gICAgICAgICAgKm5nSWY9XCJjb250ZW50JCB8IGFzeW5jIGFzIGNvdW50XCI+XG4gIHt7Y291bnR9fVxuPC9tYXQtY2hpcD5cbiJdfQ==
|
|
@@ -3,6 +3,7 @@ import { MAT_DATE_LOCALE, NativeDateAdapter } from '@angular/material/core';
|
|
|
3
3
|
import { Inject, Injectable } from '@angular/core';
|
|
4
4
|
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
5
5
|
import { convert, DateTimeFormatter, LocalDate } from '@js-joda/core';
|
|
6
|
+
import { LocaleDateFormats } from '../date-formats/locale-date-formats';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
/**
|
|
8
9
|
* Makes week starting at monday. For example MatDatePicker.
|
|
@@ -11,20 +12,13 @@ export class CustomDateAdapter extends NativeDateAdapter {
|
|
|
11
12
|
constructor(matDateLocale) {
|
|
12
13
|
super(matDateLocale);
|
|
13
14
|
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
14
|
-
this.fallbackDateFormats = ['MM/dd/yyyy', 'MM/dd/yy'];
|
|
15
|
-
this.dateFormats = new Map([
|
|
16
|
-
["de-CH", ['dd.MM.yyyy', 'dd.MM.yy']],
|
|
17
|
-
["de-DE", ['dd.MM.yyyy', 'dd.MM.yy']],
|
|
18
|
-
["en-UK", ['dd/MM/yyyy', 'dd/MM/yy']],
|
|
19
|
-
["en-US", this.fallbackDateFormats]
|
|
20
|
-
]);
|
|
21
15
|
this.matDateLocale = matDateLocale;
|
|
22
16
|
}
|
|
23
17
|
getFirstDayOfWeek() {
|
|
24
18
|
return 1;
|
|
25
19
|
}
|
|
26
20
|
parse(value, parseFormat) {
|
|
27
|
-
const formats =
|
|
21
|
+
const formats = LocaleDateFormats.getFormatsOfLocale(this.matDateLocale);
|
|
28
22
|
for (let i = 0; i < formats.length; i++) {
|
|
29
23
|
try {
|
|
30
24
|
const formatter = DateTimeFormatter.ofPattern(formats[i]);
|
|
@@ -34,17 +28,9 @@ export class CustomDateAdapter extends NativeDateAdapter {
|
|
|
34
28
|
// ignore
|
|
35
29
|
}
|
|
36
30
|
}
|
|
37
|
-
this.logger.
|
|
31
|
+
this.logger.trace('Could not parse "' + value + '" to date!');
|
|
38
32
|
return null;
|
|
39
33
|
}
|
|
40
|
-
getFormatsOfLocale() {
|
|
41
|
-
if (this.dateFormats.has(this.matDateLocale)) {
|
|
42
|
-
return this.dateFormats.get(this.matDateLocale);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
return this.fallbackDateFormats;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: CustomDateAdapter, deps: [{ token: MAT_DATE_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
49
35
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: CustomDateAdapter }); }
|
|
50
36
|
}
|
|
@@ -54,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
54
40
|
type: Inject,
|
|
55
41
|
args: [MAT_DATE_LOCALE]
|
|
56
42
|
}] }]; } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRhdGUtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9kYXRlLWFkYXB0ZXJzL2N1c3RvbS1kYXRlLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0ZBQXdGO0FBQ3hGLE9BQU8sRUFBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQTRCLFNBQVMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7O0FBRXRFOztHQUVHO0FBRUgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGlCQUFpQjtJQUt0RCxZQUFxQyxhQUFxQjtRQUN4RCxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFKTixXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBS3ZFLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBVSxFQUFFLFdBQWlCO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV6RSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxJQUFJO2dCQUNGLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUQsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUM1RDtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLFNBQVM7YUFDVjtTQUNGO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBQzlELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0E1QlUsaUJBQWlCLGtCQUtSLGVBQWU7a0hBTHhCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVTs7MEJBTUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEFkYXB0cyB0aGUgbmF0aXZlIEpTIERhdGUgZm9yIHVzZSB3aXRoIGNkay1iYXNlZCBjb21wb25lbnRzIHRoYXQgd29yayB3aXRoIGRhdGVzLiAqL1xuaW1wb3J0IHtNQVRfREFURV9MT0NBTEUsIE5hdGl2ZURhdGVBZGFwdGVyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7Y29udmVydCwgRGF0ZVRpbWVGb3JtYXR0ZXIsIERhdGVUaW1lRm9ybWF0dGVyQnVpbGRlciwgTG9jYWxEYXRlLCBSZXNvbHZlclN0eWxlfSBmcm9tICdAanMtam9kYS9jb3JlJztcbmltcG9ydCB7TG9jYWxlRGF0ZUZvcm1hdHN9IGZyb20gJy4uL2RhdGUtZm9ybWF0cy9sb2NhbGUtZGF0ZS1mb3JtYXRzJztcblxuLyoqXG4gKiBNYWtlcyB3ZWVrIHN0YXJ0aW5nIGF0IG1vbmRheS4gRm9yIGV4YW1wbGUgTWF0RGF0ZVBpY2tlci5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEN1c3RvbURhdGVBZGFwdGVyIGV4dGVuZHMgTmF0aXZlRGF0ZUFkYXB0ZXIge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBtYXREYXRlTG9jYWxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChNQVRfREFURV9MT0NBTEUpIG1hdERhdGVMb2NhbGU6IHN0cmluZykge1xuICAgIHN1cGVyKG1hdERhdGVMb2NhbGUpO1xuICAgIHRoaXMubWF0RGF0ZUxvY2FsZSA9IG1hdERhdGVMb2NhbGU7XG4gIH1cblxuICBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgcGFyc2UodmFsdWU6IGFueSwgcGFyc2VGb3JtYXQ/OiBhbnkpOiBEYXRlIHwgbnVsbCB7XG4gICAgY29uc3QgZm9ybWF0cyA9IExvY2FsZURhdGVGb3JtYXRzLmdldEZvcm1hdHNPZkxvY2FsZSh0aGlzLm1hdERhdGVMb2NhbGUpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtYXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSBEYXRlVGltZUZvcm1hdHRlci5vZlBhdHRlcm4oZm9ybWF0c1tpXSk7XG4gICAgICAgIHJldHVybiBjb252ZXJ0KExvY2FsRGF0ZS5wYXJzZSh2YWx1ZSwgZm9ybWF0dGVyKSkudG9EYXRlKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGlnbm9yZVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubG9nZ2VyLnRyYWNlKCdDb3VsZCBub3QgcGFyc2UgXCInICsgdmFsdWUgKyAnXCIgdG8gZGF0ZSEnKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class LocaleDateFormats {
|
|
2
|
+
/***************************************************************************
|
|
3
|
+
* *
|
|
4
|
+
* Fields *
|
|
5
|
+
* *
|
|
6
|
+
**************************************************************************/
|
|
7
|
+
static { this.fallbackDateFormats = ['MM/dd/yyyy', 'MM/dd/yy']; }
|
|
8
|
+
static { this.dateFormats = new Map([
|
|
9
|
+
["de-CH", ['dd.MM.yyyy', 'dd.MM.yy']],
|
|
10
|
+
["de-DE", ['dd.MM.yyyy', 'dd.MM.yy']],
|
|
11
|
+
["en-UK", ['dd/MM/yyyy', 'dd/MM/yy']],
|
|
12
|
+
["en-US", this.fallbackDateFormats]
|
|
13
|
+
]); }
|
|
14
|
+
/***************************************************************************
|
|
15
|
+
* *
|
|
16
|
+
* Public API *
|
|
17
|
+
* *
|
|
18
|
+
**************************************************************************/
|
|
19
|
+
static getFormatsOfLocale(locale) {
|
|
20
|
+
if (this.dateFormats.has(locale)) {
|
|
21
|
+
return this.dateFormats.get(locale);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return this.fallbackDateFormats;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWRhdGUtZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9kYXRlLWZvcm1hdHMvbG9jYWxlLWRhdGUtZm9ybWF0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8saUJBQWlCO0lBRTVCOzs7O2dGQUk0RTthQUVwRCx3QkFBbUIsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQzthQUNqRCxnQkFBVyxHQUFHLElBQUksR0FBRyxDQUFDO1FBQzVDLENBQUUsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFFO1FBQ3ZDLENBQUUsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFFO1FBQ3ZDLENBQUUsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFFO1FBQ3ZDLENBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBRTtLQUN0QyxDQUFDLENBQUM7SUFFSDs7OztnRkFJNEU7SUFFckUsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQWM7UUFDN0MsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztTQUNqQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTG9jYWxlRGF0ZUZvcm1hdHMge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGZhbGxiYWNrRGF0ZUZvcm1hdHMgPSBbJ01NL2RkL3l5eXknLCAnTU0vZGQveXknXTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZGF0ZUZvcm1hdHMgPSBuZXcgTWFwKFtcbiAgICBbIFwiZGUtQ0hcIiwgWydkZC5NTS55eXl5JywgJ2RkLk1NLnl5J10gXSxcbiAgICBbIFwiZGUtREVcIiwgWydkZC5NTS55eXl5JywgJ2RkLk1NLnl5J10gXSxcbiAgICBbIFwiZW4tVUtcIiwgWydkZC9NTS95eXl5JywgJ2RkL01NL3l5J10gXSxcbiAgICBbIFwiZW4tVVNcIiwgdGhpcy5mYWxsYmFja0RhdGVGb3JtYXRzIF1cbiAgXSk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBnZXRGb3JtYXRzT2ZMb2NhbGUobG9jYWxlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuZGF0ZUZvcm1hdHMuaGFzKGxvY2FsZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGVGb3JtYXRzLmdldChsb2NhbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5mYWxsYmFja0RhdGVGb3JtYXRzO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|