primeng 14.2.11-lts → 14.2.13-lts

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.
Files changed (60) hide show
  1. package/api/licensemanager.d.ts +1 -1
  2. package/calendar/calendar.d.ts +1 -0
  3. package/carousel/carousel.d.ts +2 -1
  4. package/esm2020/api/licensemanager.mjs +22 -4
  5. package/esm2020/autocomplete/autocomplete.mjs +6 -6
  6. package/esm2020/button/button.mjs +4 -3
  7. package/esm2020/calendar/calendar.mjs +24 -4
  8. package/esm2020/carousel/carousel.mjs +10 -3
  9. package/esm2020/dialog/dialog.mjs +2 -2
  10. package/esm2020/dropdown/dropdown.mjs +3 -2
  11. package/esm2020/fileupload/fileupload.mjs +2 -1
  12. package/esm2020/inputnumber/inputnumber.mjs +3 -3
  13. package/esm2020/picklist/picklist.mjs +8 -4
  14. package/esm2020/splitter/splitter.mjs +2 -2
  15. package/fesm2015/primeng-api.mjs +21 -3
  16. package/fesm2015/primeng-api.mjs.map +1 -1
  17. package/fesm2015/primeng-autocomplete.mjs +5 -5
  18. package/fesm2015/primeng-autocomplete.mjs.map +1 -1
  19. package/fesm2015/primeng-button.mjs +3 -2
  20. package/fesm2015/primeng-button.mjs.map +1 -1
  21. package/fesm2015/primeng-calendar.mjs +23 -3
  22. package/fesm2015/primeng-calendar.mjs.map +1 -1
  23. package/fesm2015/primeng-carousel.mjs +9 -2
  24. package/fesm2015/primeng-carousel.mjs.map +1 -1
  25. package/fesm2015/primeng-dialog.mjs +1 -1
  26. package/fesm2015/primeng-dialog.mjs.map +1 -1
  27. package/fesm2015/primeng-dropdown.mjs +2 -1
  28. package/fesm2015/primeng-dropdown.mjs.map +1 -1
  29. package/fesm2015/primeng-fileupload.mjs +1 -0
  30. package/fesm2015/primeng-fileupload.mjs.map +1 -1
  31. package/fesm2015/primeng-inputnumber.mjs +2 -2
  32. package/fesm2015/primeng-inputnumber.mjs.map +1 -1
  33. package/fesm2015/primeng-picklist.mjs +7 -3
  34. package/fesm2015/primeng-picklist.mjs.map +1 -1
  35. package/fesm2015/primeng-splitter.mjs +2 -2
  36. package/fesm2015/primeng-splitter.mjs.map +1 -1
  37. package/fesm2020/primeng-api.mjs +21 -3
  38. package/fesm2020/primeng-api.mjs.map +1 -1
  39. package/fesm2020/primeng-autocomplete.mjs +5 -5
  40. package/fesm2020/primeng-autocomplete.mjs.map +1 -1
  41. package/fesm2020/primeng-button.mjs +3 -2
  42. package/fesm2020/primeng-button.mjs.map +1 -1
  43. package/fesm2020/primeng-calendar.mjs +23 -3
  44. package/fesm2020/primeng-calendar.mjs.map +1 -1
  45. package/fesm2020/primeng-carousel.mjs +9 -2
  46. package/fesm2020/primeng-carousel.mjs.map +1 -1
  47. package/fesm2020/primeng-dialog.mjs +1 -1
  48. package/fesm2020/primeng-dialog.mjs.map +1 -1
  49. package/fesm2020/primeng-dropdown.mjs +2 -1
  50. package/fesm2020/primeng-dropdown.mjs.map +1 -1
  51. package/fesm2020/primeng-fileupload.mjs +1 -0
  52. package/fesm2020/primeng-fileupload.mjs.map +1 -1
  53. package/fesm2020/primeng-inputnumber.mjs +2 -2
  54. package/fesm2020/primeng-inputnumber.mjs.map +1 -1
  55. package/fesm2020/primeng-picklist.mjs +7 -3
  56. package/fesm2020/primeng-picklist.mjs.map +1 -1
  57. package/fesm2020/primeng-splitter.mjs +2 -2
  58. package/fesm2020/primeng-splitter.mjs.map +1 -1
  59. package/package.json +1 -1
  60. package/resources/components/splitter/splitter.css +1 -0
@@ -1,4 +1,4 @@
1
1
  export declare const LicenseManager: Readonly<{
2
- verify: (licenseKey: string, passKey: string) => void;
2
+ verify: (licenseKey: string, passKey: string, debug?: boolean) => void;
3
3
  check: () => Promise<boolean>;
4
4
  }>;
@@ -230,6 +230,7 @@ export declare class Calendar implements OnInit, OnDestroy, ControlValueAccessor
230
230
  isComparable(): boolean;
231
231
  isMonthSelected(month: any): boolean;
232
232
  isMonthDisabled(month: any): boolean;
233
+ isYearDisabled(year: any): boolean;
233
234
  isYearSelected(year: any): boolean;
234
235
  isDateEquals(value: any, dateMeta: any): boolean;
235
236
  isDateBetween(start: any, end: any, dateMeta: any): boolean;
@@ -86,7 +86,8 @@ export declare class Carousel implements AfterContentInit, AfterViewInit {
86
86
  onDotClick(e: any, index: any): void;
87
87
  step(dir: any, page: any): void;
88
88
  startAutoplay(): void;
89
- stopAutoplay(): void;
89
+ stopAutoplay(changeAllow?: boolean): void;
90
+ isPlaying(): boolean;
90
91
  onTransitionEnd(): void;
91
92
  onTouchStart(e: any): void;
92
93
  onTouchMove(e: any): void;
@@ -1,40 +1,56 @@
1
1
  const LicenseManagerImp = {
2
2
  licenseKey: undefined,
3
3
  passKey: undefined,
4
+ debug: false,
4
5
  valid: false,
5
6
  verified: false,
6
- verify: function (licenseKey, passKey) {
7
- [LicenseManagerImp.licenseKey, LicenseManagerImp.passKey] = [licenseKey, passKey];
7
+ verify: function (licenseKey, passKey, debug = false) {
8
+ [LicenseManagerImp.licenseKey, LicenseManagerImp.passKey, LicenseManagerImp.debug] = [licenseKey, passKey, debug];
8
9
  LicenseManagerImp.valid = LicenseManagerImp.verified = false;
9
10
  },
10
11
  check: async function () {
11
12
  if (!LicenseManagerImp.verified) {
12
13
  const isClient = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
13
14
  LicenseManagerImp.verified = isClient;
15
+ let debug = LicenseManagerImp.debug;
14
16
  let valid = false;
15
17
  try {
16
18
  const plaintext = await LicenseManagerImp.aesGcmDecrypt(LicenseManagerImp.licenseKey, LicenseManagerImp.passKey);
17
19
  const tokens = plaintext.split('_');
18
20
  const licenseDate = new Date(parseInt(tokens[2]));
19
21
  if (tokens.length !== 8) {
22
+ if (debug)
23
+ console.log('Error code: 1333');
20
24
  valid = false;
21
25
  }
22
26
  else if (tokens[0].length !== 2) {
27
+ if (debug)
28
+ console.log('Error code: 1334');
23
29
  valid = false;
24
30
  }
25
31
  else if (isNaN(parseInt(tokens[1]))) {
32
+ if (debug)
33
+ console.log('Error code: 1335');
26
34
  valid = false;
27
35
  }
28
36
  else if (tokens[3] !== 'PRIMENG') {
37
+ if (debug)
38
+ console.log('Error code: 1336');
29
39
  valid = false;
30
40
  }
31
41
  else if (tokens[5] === 'BASIC' && licenseDate <= new Date()) {
42
+ if (debug)
43
+ console.log('Error code: 1337');
32
44
  valid = false;
33
45
  }
34
- else if (tokens[6] !== '14') {
46
+ else if (tokens[6] !== '15') {
47
+ if (debug)
48
+ console.log('Error code: 1338');
35
49
  valid = false;
36
50
  }
37
51
  else if (tokens[7].length !== 6) {
52
+ if (debug)
53
+ console.log('Error code: 1339');
38
54
  valid = false;
39
55
  }
40
56
  else {
@@ -42,6 +58,8 @@ const LicenseManagerImp = {
42
58
  }
43
59
  }
44
60
  catch (e) {
61
+ if (debug)
62
+ console.log('Error code: 1440');
45
63
  valid = false;
46
64
  }
47
65
  if (!valid && isClient) {
@@ -93,4 +111,4 @@ export const LicenseManager = Object.freeze({
93
111
  verify: LicenseManagerImp.verify,
94
112
  check: LicenseManagerImp.check
95
113
  });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYXBpL2xpY2Vuc2VtYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsS0FBSyxFQUFFLEtBQUs7SUFDWixRQUFRLEVBQUUsS0FBSztJQUNmLE1BQU0sRUFBRSxVQUFVLFVBQWtCLEVBQUUsT0FBZTtRQUNqRCxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRixpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqRSxDQUFDO0lBQ0QsS0FBSyxFQUFFLEtBQUs7UUFDUixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFO1lBQzdCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkcsaUJBQWlCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUV0QyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbEIsSUFBSTtnQkFDQSxNQUFNLFNBQVMsR0FBRyxNQUFNLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pILE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxN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R0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRixJQUFJO1lBQ0EsTUFBTSxXQUFXLEdBQUcsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25FLE1BQU0sU0FBUyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO0lBQ2hDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO0NBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IExpY2Vuc2VNYW5hZ2VySW1wID0ge1xuICAgIGxpY2Vuc2VLZXk6IHVuZGVmaW5lZCxcbiAgICBwYXNzS2V5OiB1bmRlZmluZWQsXG4gICAgdmFsaWQ6IGZhbHNlLFxuICAgIHZlcmlmaWVkOiBmYWxzZSxcbiAgICB2ZXJpZnk6IGZ1bmN0aW9uIChsaWNlbnNlS2V5OiBzdHJpbmcsIHBhc3NLZXk6IHN0cmluZykge1xuICAgICAgICBbTGljZW5zZU1hbmFnZXJJbXAubGljZW5zZUtleSwgTGljZW5zZU1hbmFnZXJJbXAucGFzc0tleV0gPSBbbGljZW5zZUtleSwgcGFzc0tleV07XG4gICAgICAgIExpY2Vuc2VNYW5hZ2VySW1wLnZhbGlkID0gTGljZW5zZU1hbmFnZXJJbXAudmVyaWZpZWQgPSBmYWxzZTtcbiAgICB9LFxuICAgIGNoZWNrOiBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghTGljZW5zZU1hbmFnZXJJbXAudmVyaWZpZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzQ2xpZW50ID0gISEodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbiAgICAgICAgICAgIExpY2Vuc2VNYW5hZ2VySW1wLnZlcmlmaWVkID0gaXNDbGllbnQ7XG5cbiAgICAgICAgICAgIGxldCB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwbGFpbnRleHQgPSBhd2FpdCBMaWNlbnNlTWFuYWdlckltcC5hZXNHY21EZWNyeXB0KExpY2Vuc2VNYW5hZ2VySW1wLmxpY2Vuc2VLZXksIExpY2Vuc2VNYW5hZ2VySW1wLnBhc3NLZXkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VucyA9IHBsYWludGV4dC5zcGxpdCgnXycpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpY2Vuc2VEYXRlID0gbmV3IERhdGUocGFyc2VJbnQodG9rZW5zWzJdKSk7XG4gICAgICAgICAgICAgICAgaWYgKHRva2Vucy5sZW5ndGggIT09IDgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRva2Vuc1swXS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTmFOKHBhcnNlSW50KHRva2Vuc1sxXSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlbnNbM10gIT09ICdQUklNRU5HJykge1xuICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rZW5zWzVdID09PSAnQkFTSUMnICYmIGxpY2Vuc2VEYXRlIDw9IG5ldyBEYXRlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRva2Vuc1s2XSAhPT0gJzE0Jykge1xuICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rZW5zWzddLmxlbmd0aCAhPT0gNikge1xuICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF2YWxpZCAmJiBpc0NsaWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnaHR0cHM6Ly9wcmltZW5nLm9yZy9sdHMnKTtcbiAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3I6IHJlZCAhaW1wb3J0YW50OyBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OyBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50OyBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDsgei1pbmRleDogOTk5OTk5OTk5OSAhaW1wb3J0YW50OyB0b3A6IDAgIWltcG9ydGFudDsgbGVmdDogMCAhaW1wb3J0YW50OyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50OyBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7IHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21hcnF1ZWUnKTtcbiAgICAgICAgICAgICAgICBtc2cuc2V0QXR0cmlidXRlKCdiZWhhdmlvcicsICdhbHRlcm5hdGUnKTtcbiAgICAgICAgICAgICAgICBtc2cuaW5uZXJUZXh0ID0gJ1lvdSBhcmUgdXNpbmcgYW4gTFRTIHZlcnNpb24gb2YgUHJpbWVORyB3aXRoIGFuIGludmFsaWQgbGljZW5zZSwgeW91IG1heSBlaXRoZXIgc3dpdGNoIGJhY2sgdG8gYSBub24tTFRTIHZlcnNpb24gb3IgcHVyY2hhc2UgYSBsaWNlbnNlIGF0IFByaW1lU3RvcmUuJztcblxuICAgICAgICAgICAgICAgIGxpbmsuYXBwZW5kQ2hpbGQobXNnKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuXG4gICAgICAgICAgICAgICAgbGV0IGxpbmtPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciwgZG9jdW1lbnRPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcbiAgICAgICAgICAgICAgICBjb25zdCBvYnNlcnZlckNhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsaW5rT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgbGluayAmJiBsaW5rLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICBMaWNlbnNlTWFuYWdlckltcC52ZXJpZmllZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBMaWNlbnNlTWFuYWdlckltcC5jaGVjaygpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBsaW5rT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBvYnNlcnZlckNhbGxiYWNrKCkpO1xuICAgICAgICAgICAgICAgIGxpbmtPYnNlcnZlci5vYnNlcnZlKGxpbmssIHsgYXR0cmlidXRlczogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlIH0pO1xuXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChfKSA9PiBfLmZvckVhY2goKG11dGF0aW9uKSA9PiBtdXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoID4gMCAmJiBtdXRhdGlvbi5yZW1vdmVkTm9kZXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5pc1NhbWVOb2RlKGxpbmspICYmIG9ic2VydmVyQ2FsbGJhY2soKSkpKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudE9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIExpY2Vuc2VNYW5hZ2VySW1wLnZhbGlkID0gdmFsaWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTGljZW5zZU1hbmFnZXJJbXAudmFsaWQ7XG4gICAgfSxcbiAgICBhZXNHY21EZWNyeXB0OiBhc3luYyBmdW5jdGlvbiAoY2lwaGVydGV4dDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHB3VXRmOCA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShwYXNzd29yZCk7XG4gICAgICAgIGNvbnN0IHB3SGFzaCA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgcHdVdGY4KTtcblxuICAgICAgICBjb25zdCBpdlN0ciA9IGF0b2IoY2lwaGVydGV4dCkuc2xpY2UoMCwgMTIpO1xuICAgICAgICBjb25zdCBpdiA9IG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oaXZTdHIpLm1hcCgoY2gpID0+IGNoLmNoYXJDb2RlQXQoMCkpKTtcblxuICAgICAgICBjb25zdCBhbGcgPSB7IG5hbWU6ICdBRVMtR0NNJywgaXY6IGl2IH07XG5cbiAgICAgICAgY29uc3Qga2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoJ3JhdycsIHB3SGFzaCwgYWxnLCBmYWxzZSwgWydkZWNyeXB0J10pO1xuXG4gICAgICAgIGNvbnN0IGN0U3RyID0gYXRvYihjaXBoZXJ0ZXh0KS5zbGljZSgxMik7XG4gICAgICAgIGNvbnN0IGN0VWludDggPSBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGN0U3RyKS5tYXAoKGNoKSA9PiBjaC5jaGFyQ29kZUF0KDApKSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBsYWluQnVmZmVyID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5kZWNyeXB0KGFsZywga2V5LCBjdFVpbnQ4KTtcbiAgICAgICAgICAgIGNvbnN0IHBsYWludGV4dCA9IG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShwbGFpbkJ1ZmZlcik7XG4gICAgICAgICAgICByZXR1cm4gcGxhaW50ZXh0O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RlY3J5cHQgZmFpbGVkJyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgTGljZW5zZU1hbmFnZXIgPSBPYmplY3QuZnJlZXplKHtcbiAgICB2ZXJpZnk6IExpY2Vuc2VNYW5hZ2VySW1wLnZlcmlmeSxcbiAgICBjaGVjazogTGljZW5zZU1hbmFnZXJJbXAuY2hlY2tcbn0pO1xuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYXBpL2xpY2Vuc2VtYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsS0FBSyxFQUFFLEtBQUs7SUFDWixLQUFLLEVBQUUsS0FBSztJQUNaLFFBQVEsRUFBRSxLQUFLO0lBQ2YsTUFBTSxFQUFFLFVBQVUsVUFBa0IsRUFBRSxPQUFlLEVBQUUsUUFBaUIsS0FBSztRQUN6RSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xILGlCQUFpQixDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxLQUFLLEVBQUUsS0FBSztRQUNSLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7WUFDN0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBRXRDLElBQUksS0FBSyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQztZQUNwQyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbEIsSUFBSTtnQkFDQSxNQUFNLFNBQVMsR0FBRyxNQUFNLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFD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QWdCO1FBQy9ELE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTdELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sRUFBRSxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUzRSxNQUFNLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXhDLE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUVsRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRixJQUFJO1lBQ0EsTUFBTSxXQUFXLEdBQUcsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25FLE1BQU0sU0FBUyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDckM7SUFDTCxDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO0lBQ2hDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO0NBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IExpY2Vuc2VNYW5hZ2VySW1wID0ge1xuICAgIGxpY2Vuc2VLZXk6IHVuZGVmaW5lZCxcbiAgICBwYXNzS2V5OiB1bmRlZmluZWQsXG4gICAgZGVidWc6IGZhbHNlLFxuICAgIHZhbGlkOiBmYWxzZSxcbiAgICB2ZXJpZmllZDogZmFsc2UsXG4gICAgdmVyaWZ5OiBmdW5jdGlvbiAobGljZW5zZUtleTogc3RyaW5nLCBwYXNzS2V5OiBzdHJpbmcsIGRlYnVnOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgW0xpY2Vuc2VNYW5hZ2VySW1wLmxpY2Vuc2VLZXksIExpY2Vuc2VNYW5hZ2VySW1wLnBhc3NLZXksIExpY2Vuc2VNYW5hZ2VySW1wLmRlYnVnXSA9IFtsaWNlbnNlS2V5LCBwYXNzS2V5LCBkZWJ1Z107XG4gICAgICAgIExpY2Vuc2VNYW5hZ2VySW1wLnZhbGlkID0gTGljZW5zZU1hbmFnZXJJbXAudmVyaWZpZWQgPSBmYWxzZTtcbiAgICB9LFxuICAgIGNoZWNrOiBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghTGljZW5zZU1hbmFnZXJJbXAudmVyaWZpZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzQ2xpZW50ID0gISEodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbiAgICAgICAgICAgIExpY2Vuc2VNYW5hZ2VySW1wLnZlcmlmaWVkID0gaXNDbGllbnQ7XG5cbiAgICAgICAgICAgIGxldCBkZWJ1ZyA9IExpY2Vuc2VNYW5hZ2VySW1wLmRlYnVnO1xuICAgICAgICAgICAgbGV0IHZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBsYWludGV4dCA9IGF3YWl0IExpY2Vuc2VNYW5hZ2VySW1wLmFlc0djbURlY3J5cHQoTGljZW5zZU1hbmFnZXJJbXAubGljZW5zZUtleSwgTGljZW5zZU1hbmFnZXJJbXAucGFzc0tleSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW5zID0gcGxhaW50ZXh0LnNwbGl0KCdfJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGljZW5zZURhdGUgPSBuZXcgRGF0ZShwYXJzZUludCh0b2tlbnNbMl0pKTtcbiAgICAgICAgICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCAhPT0gOCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIGNvbnNvbGUubG9nKCdFcnJvciBjb2RlOiAxMzMzJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRva2Vuc1swXS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmxvZygnRXJyb3IgY29kZTogMTMzNCcpO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc05hTihwYXJzZUludCh0b2tlbnNbMV0pKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIGNvbnNvbGUubG9nKCdFcnJvciBjb2RlOiAxMzM1Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRva2Vuc1szXSAhPT0gJ1BSSU1FTkcnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWJ1ZykgY29uc29sZS5sb2coJ0Vycm9yIGNvZGU6IDEzMzYnKTtcblxuICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rZW5zWzVdID09PSAnQkFTSUMnICYmIGxpY2Vuc2VEYXRlIDw9IG5ldyBEYXRlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmxvZygnRXJyb3IgY29kZTogMTMzNycpO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlbnNbNl0gIT09ICcxNScpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmxvZygnRXJyb3IgY29kZTogMTMzOCcpO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlbnNbN10ubGVuZ3RoICE9PSA2KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWJ1ZykgY29uc29sZS5sb2coJ0Vycm9yIGNvZGU6IDEzMzknKTtcblxuICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmxvZygnRXJyb3IgY29kZTogMTQ0MCcpO1xuXG4gICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF2YWxpZCAmJiBpc0NsaWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnaHR0cHM6Ly9wcmltZW5nLm9yZy9sdHMnKTtcbiAgICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3I6IHJlZCAhaW1wb3J0YW50OyBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OyBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50OyBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDsgei1pbmRleDogOTk5OTk5OTk5OSAhaW1wb3J0YW50OyB0b3A6IDAgIWltcG9ydGFudDsgbGVmdDogMCAhaW1wb3J0YW50OyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50OyBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7IHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21hcnF1ZWUnKTtcbiAgICAgICAgICAgICAgICBtc2cuc2V0QXR0cmlidXRlKCdiZWhhdmlvcicsICdhbHRlcm5hdGUnKTtcbiAgICAgICAgICAgICAgICBtc2cuaW5uZXJUZXh0ID0gJ1lvdSBhcmUgdXNpbmcgYW4gTFRTIHZlcnNpb24gb2YgUHJpbWVORyB3aXRoIGFuIGludmFsaWQgbGljZW5zZSwgeW91IG1heSBlaXRoZXIgc3dpdGNoIGJhY2sgdG8gYSBub24tTFRTIHZlcnNpb24gb3IgcHVyY2hhc2UgYSBsaWNlbnNlIGF0IFByaW1lU3RvcmUuJztcblxuICAgICAgICAgICAgICAgIGxpbmsuYXBwZW5kQ2hpbGQobXNnKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuXG4gICAgICAgICAgICAgICAgbGV0IGxpbmtPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciwgZG9jdW1lbnRPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcbiAgICAgICAgICAgICAgICBjb25zdCBvYnNlcnZlckNhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsaW5rT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgbGluayAmJiBsaW5rLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICBMaWNlbnNlTWFuYWdlckltcC52ZXJpZmllZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBMaWNlbnNlTWFuYWdlckltcC5jaGVjaygpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBsaW5rT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBvYnNlcnZlckNhbGxiYWNrKCkpO1xuICAgICAgICAgICAgICAgIGxpbmtPYnNlcnZlci5vYnNlcnZlKGxpbmssIHsgYXR0cmlidXRlczogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlIH0pO1xuXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChfKSA9PiBfLmZvckVhY2goKG11dGF0aW9uKSA9PiBtdXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoID4gMCAmJiBtdXRhdGlvbi5yZW1vdmVkTm9kZXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5pc1NhbWVOb2RlKGxpbmspICYmIG9ic2VydmVyQ2FsbGJhY2soKSkpKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudE9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIExpY2Vuc2VNYW5hZ2VySW1wLnZhbGlkID0gdmFsaWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTGljZW5zZU1hbmFnZXJJbXAudmFsaWQ7XG4gICAgfSxcbiAgICBhZXNHY21EZWNyeXB0OiBhc3luYyBmdW5jdGlvbiAoY2lwaGVydGV4dDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHB3VXRmOCA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShwYXNzd29yZCk7XG4gICAgICAgIGNvbnN0IHB3SGFzaCA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgcHdVdGY4KTtcblxuICAgICAgICBjb25zdCBpdlN0ciA9IGF0b2IoY2lwaGVydGV4dCkuc2xpY2UoMCwgMTIpO1xuICAgICAgICBjb25zdCBpdiA9IG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oaXZTdHIpLm1hcCgoY2gpID0+IGNoLmNoYXJDb2RlQXQoMCkpKTtcblxuICAgICAgICBjb25zdCBhbGcgPSB7IG5hbWU6ICdBRVMtR0NNJywgaXY6IGl2IH07XG5cbiAgICAgICAgY29uc3Qga2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoJ3JhdycsIHB3SGFzaCwgYWxnLCBmYWxzZSwgWydkZWNyeXB0J10pO1xuXG4gICAgICAgIGNvbnN0IGN0U3RyID0gYXRvYihjaXBoZXJ0ZXh0KS5zbGljZSgxMik7XG4gICAgICAgIGNvbnN0IGN0VWludDggPSBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGN0U3RyKS5tYXAoKGNoKSA9PiBjaC5jaGFyQ29kZUF0KDApKSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBsYWluQnVmZmVyID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5kZWNyeXB0KGFsZywga2V5LCBjdFVpbnQ4KTtcbiAgICAgICAgICAgIGNvbnN0IHBsYWludGV4dCA9IG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShwbGFpbkJ1ZmZlcik7XG4gICAgICAgICAgICByZXR1cm4gcGxhaW50ZXh0O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RlY3J5cHQgZmFpbGVkJyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgTGljZW5zZU1hbmFnZXIgPSBPYmplY3QuZnJlZXplKHtcbiAgICB2ZXJpZnk6IExpY2Vuc2VNYW5hZ2VySW1wLnZlcmlmeSxcbiAgICBjaGVjazogTGljZW5zZU1hbmFnZXJJbXAuY2hlY2tcbn0pO1xuIl19