ngx-edu-sharing-ui 9.2.0 → 10.0.1

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 (131) hide show
  1. package/assets/scss/mixins.scss +4 -4
  2. package/assets/scss/variables-scss.scss +5 -1
  3. package/assets/scss/variables.scss +1 -3
  4. package/esm2022/lib/actionbar/actionbar.component.mjs +38 -20
  5. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +8 -5
  6. package/esm2022/lib/directives/border-box-observer.directive.mjs +6 -6
  7. package/esm2022/lib/directives/check-text-overflow.directive.mjs +5 -5
  8. package/esm2022/lib/directives/drag-nodes/nodes-drag-source.directive.mjs +4 -4
  9. package/esm2022/lib/directives/drag-nodes/nodes-drag.directive.mjs +4 -4
  10. package/esm2022/lib/directives/drag-nodes/nodes-drop-target.directive.mjs +4 -4
  11. package/esm2022/lib/directives/focus-state.directive.mjs +4 -4
  12. package/esm2022/lib/directives/icon.directive.mjs +26 -9
  13. package/esm2022/lib/directives/infinite-scroll.directive.mjs +4 -4
  14. package/esm2022/lib/dropdown/dropdown.component.mjs +25 -12
  15. package/esm2022/lib/edu-sharing-ui-configuration.mjs +4 -4
  16. package/esm2022/lib/edu-sharing-ui.module.mjs +5 -5
  17. package/esm2022/lib/index.mjs +88 -0
  18. package/esm2022/lib/list-items/format-duration.pipe.mjs +4 -4
  19. package/esm2022/lib/list-items/list-base/list-base.component.mjs +4 -4
  20. package/esm2022/lib/list-items/list-collection-info/list-collection-info.component.mjs +4 -4
  21. package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +4 -4
  22. package/esm2022/lib/list-items/list-items.module.mjs +5 -5
  23. package/esm2022/lib/list-items/list-node-license/list-node-license.component.mjs +4 -4
  24. package/esm2022/lib/list-items/list-node-replication-source/list-node-replication-source.component.mjs +4 -4
  25. package/esm2022/lib/list-items/list-node-workflow/list-node-workflow.component.mjs +5 -5
  26. package/esm2022/lib/list-items/list-text/list-text.component.mjs +11 -11
  27. package/esm2022/lib/list-items/list-widget.mjs +4 -4
  28. package/esm2022/lib/list-items/node-row/node-row.component.mjs +4 -4
  29. package/esm2022/lib/list-items/node-source.pipe.mjs +4 -4
  30. package/esm2022/lib/mds/mds-helper.service.mjs +4 -4
  31. package/esm2022/lib/mds/mds.module.mjs +5 -5
  32. package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +5 -5
  33. package/esm2022/lib/node-entries/entries-model.mjs +1 -1
  34. package/esm2022/lib/node-entries/list-item-label.pipe.mjs +11 -8
  35. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +9 -25
  36. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +45 -38
  37. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +7 -8
  38. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +5 -5
  39. package/esm2022/lib/node-entries/node-entries-global.service.mjs +4 -4
  40. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +4 -4
  41. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +51 -56
  42. package/esm2022/lib/node-entries/node-entries-templates.service.mjs +4 -4
  43. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +60 -22
  44. package/esm2022/lib/node-entries/node-entries.component.mjs +5 -5
  45. package/esm2022/lib/node-entries/node-entries.module.mjs +5 -5
  46. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +4 -4
  47. package/esm2022/lib/node-entries/node-stats-badges/node-stats-badges.component.mjs +4 -4
  48. package/esm2022/lib/node-entries/node-type-badge/node-type-badge.component.mjs +4 -4
  49. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +11 -9
  50. package/esm2022/lib/node-entries/preview-image/preview-image.component.mjs +4 -4
  51. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +5 -5
  52. package/esm2022/lib/node-url/node-url.component.mjs +4 -4
  53. package/esm2022/lib/pipes/file-size.pipe.mjs +9 -8
  54. package/esm2022/lib/pipes/format-date.pipe.mjs +4 -4
  55. package/esm2022/lib/pipes/node-icon.pipe.mjs +4 -4
  56. package/esm2022/lib/pipes/node-image-size.pipe.mjs +4 -4
  57. package/esm2022/lib/pipes/node-image.pipe.mjs +4 -4
  58. package/esm2022/lib/pipes/node-license.pipe.mjs +24 -0
  59. package/esm2022/lib/pipes/node-person-name.pipe.mjs +4 -4
  60. package/esm2022/lib/pipes/node-title.pipe.mjs +21 -6
  61. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +6 -6
  62. package/esm2022/lib/pipes/property-slug.pipe.mjs +4 -4
  63. package/esm2022/lib/pipes/replace-chars.pipe.mjs +4 -4
  64. package/esm2022/lib/pipes/vcard-name.pipe.mjs +10 -4
  65. package/esm2022/lib/services/abstract/keyboard-shortcuts.service.mjs +4 -4
  66. package/esm2022/lib/services/abstract/options-helper.service.mjs +1 -1
  67. package/esm2022/lib/services/accessibility.service.mjs +4 -4
  68. package/esm2022/lib/services/app-container.service.mjs +7 -4
  69. package/esm2022/lib/services/local-events.service.mjs +11 -4
  70. package/esm2022/lib/services/node-entries.service.mjs +31 -11
  71. package/esm2022/lib/services/node-helper.service.mjs +38 -6
  72. package/esm2022/lib/services/nodes-drag-drop.service.mjs +4 -4
  73. package/esm2022/lib/services/options-helper-data.service.mjs +7 -7
  74. package/esm2022/lib/services/render-helper.service.mjs +114 -0
  75. package/esm2022/lib/services/repo-url.service.mjs +4 -4
  76. package/esm2022/lib/services/search-helper.service.mjs +52 -0
  77. package/esm2022/lib/services/temporary-storage.service.mjs +4 -4
  78. package/esm2022/lib/services/ui.service.mjs +21 -6
  79. package/esm2022/lib/sort-dropdown/sort-dropdown.component.mjs +8 -8
  80. package/esm2022/lib/spinner/spinner.component.mjs +4 -4
  81. package/esm2022/lib/translations/translation-loader.mjs +54 -16
  82. package/esm2022/lib/translations/translations.module.mjs +8 -6
  83. package/esm2022/lib/translations/translations.service.mjs +36 -10
  84. package/esm2022/lib/types/api-models.mjs +1 -1
  85. package/esm2022/lib/types/injection-tokens.mjs +10 -1
  86. package/esm2022/lib/types/list-item.mjs +1 -1
  87. package/esm2022/lib/types/option-item.mjs +23 -7
  88. package/esm2022/lib/util/VCard.mjs +2 -2
  89. package/esm2022/ngx-edu-sharing-ui.mjs +2 -2
  90. package/esm2022/public-api.mjs +2 -0
  91. package/fesm2022/ngx-edu-sharing-ui.mjs +1004 -577
  92. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  93. package/index.d.ts +1 -1
  94. package/lib/actionbar/actionbar.component.d.ts +15 -4
  95. package/lib/common/edu-sharing-ui-common.module.d.ts +17 -16
  96. package/lib/directives/icon.directive.d.ts +5 -3
  97. package/lib/dropdown/dropdown.component.d.ts +10 -6
  98. package/lib/index.d.ts +84 -0
  99. package/lib/list-items/list-text/list-text.component.d.ts +4 -5
  100. package/lib/node-entries/entries-model.d.ts +4 -1
  101. package/lib/node-entries/list-item-label.pipe.d.ts +3 -1
  102. package/lib/node-entries/node-entries-card/node-entries-card.component.d.ts +1 -1
  103. package/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.d.ts +4 -2
  104. package/lib/node-entries/node-entries-card-small/node-entries-card-small.component.d.ts +1 -3
  105. package/lib/node-entries/node-entries-table/node-entries-table.component.d.ts +3 -1
  106. package/lib/node-entries/node-entries-wrapper.component.d.ts +9 -2
  107. package/lib/node-entries/option-button/option-button.component.d.ts +2 -1
  108. package/lib/pipes/node-license.pipe.d.ts +14 -0
  109. package/lib/pipes/node-title.pipe.d.ts +4 -1
  110. package/lib/pipes/option-tooltip.pipe.d.ts +1 -1
  111. package/lib/pipes/vcard-name.pipe.d.ts +1 -1
  112. package/lib/services/abstract/options-helper.service.d.ts +2 -2
  113. package/lib/services/app-container.service.d.ts +2 -1
  114. package/lib/services/local-events.service.d.ts +7 -0
  115. package/lib/services/node-entries.service.d.ts +10 -3
  116. package/lib/services/node-helper.service.d.ts +11 -2
  117. package/lib/services/options-helper-data.service.d.ts +7 -7
  118. package/lib/services/render-helper.service.d.ts +24 -0
  119. package/lib/services/search-helper.service.d.ts +21 -0
  120. package/lib/services/ui.service.d.ts +9 -2
  121. package/lib/sort-dropdown/sort-dropdown.component.d.ts +2 -2
  122. package/lib/translations/translation-loader.d.ts +3 -1
  123. package/lib/translations/translations.service.d.ts +6 -2
  124. package/lib/types/api-models.d.ts +9 -0
  125. package/lib/types/injection-tokens.d.ts +9 -0
  126. package/lib/types/list-item.d.ts +2 -2
  127. package/lib/types/option-item.d.ts +27 -10
  128. package/package.json +7 -7
  129. package/public-api.d.ts +1 -0
  130. package/esm2022/module.mjs +0 -84
  131. package/module.d.ts +0 -80
@@ -35,6 +35,15 @@ export class OptionItem {
35
35
  * @type {boolean}
36
36
  */
37
37
  this.isToggle = false;
38
+ /**
39
+ * Only when @isToggle. is the toggle currently visible
40
+ */
41
+ this.isToggleVisible = true;
42
+ /**
43
+ * Only when @isToggle. Where to place the toggle, before or after all other actions
44
+ * @type {boolean}
45
+ */
46
+ this.togglePosition = 'after';
38
47
  /**
39
48
  * If true, shows a line at the top.
40
49
  *
@@ -54,6 +63,11 @@ export class OptionItem {
54
63
  * @type {boolean}
55
64
  */
56
65
  this.onlyMobile = false;
66
+ /**
67
+ * custom aria-label
68
+ * @type {string}
69
+ */
70
+ this.ariaLabel = '';
57
71
  /**
58
72
  * If true, only displayed on a desktop device (based on the navigator agent)
59
73
  * @type {boolean}
@@ -109,6 +123,7 @@ export var Scope;
109
123
  Scope["CreateMenu"] = "CreateMenu";
110
124
  Scope["MediacenterNodesList"] = "MediacenterNodesList";
111
125
  Scope["Admin"] = "Admin";
126
+ Scope["DebugShowAll"] = "DebugShowAll";
112
127
  })(Scope || (Scope = {}));
113
128
  export var ElementType;
114
129
  (function (ElementType) {
@@ -116,12 +131,13 @@ export var ElementType;
116
131
  ElementType[ElementType["NodeChild"] = 1] = "NodeChild";
117
132
  ElementType[ElementType["MapRef"] = 2] = "MapRef";
118
133
  ElementType[ElementType["NodePublishedCopy"] = 3] = "NodePublishedCopy";
119
- ElementType[ElementType["NodeBlockedImport"] = 4] = "NodeBlockedImport";
120
- ElementType[ElementType["NodeProposal"] = 5] = "NodeProposal";
121
- ElementType[ElementType["Person"] = 6] = "Person";
122
- ElementType[ElementType["Group"] = 7] = "Group";
123
- ElementType[ElementType["SavedSearch"] = 8] = "SavedSearch";
124
- ElementType[ElementType["Unknown"] = 9] = "Unknown";
134
+ ElementType[ElementType["NodeRevoked"] = 4] = "NodeRevoked";
135
+ ElementType[ElementType["NodeBlockedImport"] = 5] = "NodeBlockedImport";
136
+ ElementType[ElementType["NodeProposal"] = 6] = "NodeProposal";
137
+ ElementType[ElementType["Person"] = 7] = "Person";
138
+ ElementType[ElementType["Group"] = 8] = "Group";
139
+ ElementType[ElementType["SavedSearch"] = 9] = "SavedSearch";
140
+ ElementType[ElementType["Unknown"] = 10] = "Unknown";
125
141
  })(ElementType || (ElementType = {}));
126
142
  export class OptionGroup {
127
143
  /**
@@ -172,4 +188,4 @@ export var Target;
172
188
  Target[Target["Actionbar"] = 2] = "Actionbar";
173
189
  Target[Target["CreateMenu"] = 3] = "CreateMenu";
174
190
  })(Target || (Target = {}));
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3R5cGVzL29wdGlvbi1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIsdUVBQXVFO0lBQ3ZFLHFEQUFLLENBQUE7SUFDTCxxSEFBcUg7SUFDckgsNkRBQVMsQ0FBQTtBQUNiLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUNELE1BQU0sT0FBTyxVQUFVO0lBc0huQjs7Ozs7OztPQU9HO0lBQ0gsWUFDVyxJQUFZLEVBQ1osSUFBWTtJQUNuQiw2REFBNkQ7SUFDdEQsUUFBaUU7UUFIakUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFNBQUksR0FBSixJQUFJLENBQVE7UUFFWixhQUFRLEdBQVIsUUFBUSxDQUF5RDtRQWpJNUU7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7O1dBR0c7UUFDSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCOzs7OztXQUtHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7Ozs7V0FLRztRQUNJLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUI7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVkzQjs7O1dBR0c7UUFDSSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBbUN4Qjs7V0FFRztRQUNJLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFhdkI7O1dBRUc7UUFDSSxnQkFBVyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR2pDLG9CQUFlLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FB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O0lBQ04sdURBQVcsQ0FBQTtJQUNYLGtFQUFnQixDQUFBO0lBQ2hCLHNEQUFVLENBQUE7SUFDViw4REFBYyxDQUFBO0lBQ2QsMENBQUksQ0FBQTtJQUNKLGdEQUFPLENBQUE7SUFDUCxvREFBUyxDQUFBO0lBQ1QsZ0RBQU8sQ0FBQTtBQUNYLENBQUMsRUFsQlcsU0FBUyxLQUFULFNBQVMsUUFrQnBCO0FBRUQsTUFBTSxDQUFOLElBQVksTUFLWDtBQUxELFdBQVksTUFBTTtJQUNkLG1DQUFJLENBQUE7SUFDSixtREFBWSxDQUFBO0lBQ1osNkNBQVMsQ0FBQTtJQUNULCtDQUFVLENBQUE7QUFDZCxDQUFDLEVBTFcsTUFBTSxLQUFOLE1BQU0sUUFLakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgb3B0aW9uIGZyb20gdGhlIGFjdGlvbmJhcitkcm9wZG93biBtZW51XG4gKiBFeGFtcGxlOlxuIHRoaXMub3B0aW9ucy5wdXNoKG5ldyBPcHRpb25JdGVtKFwiUkVTVE9SRV9TSU5HTEVcIixcInVuZG9cIiwgKG5vZGUpID0+IHRoaXMucmVzdG9yZVNpbmdsZShub2RlKSkpO1xuIHRoaXMub3B0aW9ucy5wdXNoKG5ldyBPcHRpb25JdGVtKFwiREVMRVRFX1NJTkdMRVwiLFwiYXJjaGl2ZURlbGV0ZVwiLCAobm9kZSkgPT4gdGhpcy5kZWxldGVTaW5nbGUobm9kZSkpKTtcblxuICovXG5pbXBvcnQgeyBLZXlib2FyZFNob3J0Y3V0Q29uZGl0aW9uIH0gZnJvbSAnLi4vdHlwZXMva2V5Ym9hcmQtc2hvcnRjdXRzJztcblxuZXhwb3J0IGVudW0gTm9kZXNSaWdodE1vZGUge1xuICAgIC8vIHJpZ2h0cyBvbiB0aGUgY3VycmVudCBub2RlLCBubyBtYXR0ZXIgaWYgaXRzIGEgcmVmZXJlbmNlIG9yIG9yaWdpYW5sXG4gICAgTG9jYWwsXG4gICAgLy8gZWZmZWN0aXZlIHJpZ2h0cyBvbiB0aGUgY3VycmVudCBub2RlLCBvbmx5IHJlbGV2YW50IGZvciBjb2xsZWN0aW9uIHJlZmVyZW5jZXMgKGZvciBub24tcmVmcywgdGhpcyBlcXVhbHMgdG8gbG9jYWwpXG4gICAgRWZmZWN0aXZlLFxufVxuZXhwb3J0IGNsYXNzIE9wdGlvbkl0ZW0ge1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoaXMgb3B0aW9uIHdpbGwgYmUgc2hvd24gYWxsIHRoZSB0aW1lIGluIHRoZSBub2RlIHRhYmxlXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIHNob3dBbHdheXMgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGlzIG9wdGlvbiB3aWxsIGJlIHNob3duIGFzIGFuIGFjdGlvbiAoaWYgcm9vbSkuIElmIG5vbmUgb2YgdGhlIGl0ZW1zIGhhcyBzaG93QXNBY3Rpb24gc2V0LCB0aGUgZmlyc3QgaXRlbXMgd2lsbCBhbHdheXMgYmUgc2hvd24gYXMgYWN0aW9uXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIHNob3dBc0FjdGlvbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoaXMgb3B0aW9uIHdpbGwgYmUgc2hvd24gYXMgYSB0b2dnbGUgb24gdGhlIHJpZ2h0IHNpZGUgKHByb3ZpZGUgaWNvblRvZ2dsZSBhcyBhIHRvZ2dsZSBpY29uKVxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1RvZ2dsZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHNob3dzIGEgbGluZSBhdCB0aGUgdG9wLlxuICAgICAqXG4gICAgICogVGhpcyBmZWF0dXJlIGlzIHVzdWFsbHkgaGFuZGxlZCBub3cgYnkgYXNzb2NpYXRpbmcgYW4gZW50cnkgdG8gYSBgZ3JvdXBgXG4gICAgICogbm93LiBIb3dldmVyIGBpc1NlcGFyYXRlYCBpcyBrZXB0IGFzIGZhbGxiYWNrIGZvciBub3cuXG4gICAgICovXG4gICAgcHVibGljIGlzU2VwYXJhdGUgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBUaGUgaXRlbSB3aWxsIGJlIGluZGljYXRlZCB3aXRoIGFuIGFjY2VudCBjb2xvciBpbiB0aGUgbWVudS5cbiAgICAgKlxuICAgICAqIFVzZWQgYnkgdGhlIGRyb3Bkb3duIHZhcmlhbnQgb2YgdGhlIG1haW4gbWVudSB0byBpbmRpY2F0ZSB0aGUgY3VycmVudGx5XG4gICAgICogYWN0aXZlIHNjb3BlLlxuICAgICAqL1xuICAgIHB1YmxpYyBpc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgb25seSBkaXNwbGF5ZWQgb24gYSBtb2JpbGUgZGV2aWNlIChiYXNlZCBvbiB0aGUgbmF2aWdhdG9yIGFnZW50KVxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHB1YmxpYyBvbmx5TW9iaWxlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgb25seSBkaXNwbGF5ZWQgb24gYSBkZXNrdG9wIGRldmljZSAoYmFzZWQgb24gdGhlIG5hdmlnYXRvciBhZ2VudClcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb25seURlc2t0b3AgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBZb3UgY2FuIHNldCBhIG1lZGlhLXF1ZXJ5IHNpbWlsYXIgdG8gQ1NTLCBzZWUgdGhlIE1FRElBX1FVRVJZIGNvbnN0YW50cyBpbiB1aS1jb25zdGFudHNcbiAgICAgKiBVc2UgaW4gY29tYmluYXRpb24gd2l0aCBtZWRpYVF1ZXJ5VmFsdWVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgbWVkaWFRdWVyeVR5cGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgZm9yIHRoZSBkZWZpbmVkIG1lZGlhIHF1ZXJ5XG4gICAgICovXG4gICAgcHVibGljIG1lZGlhUXVlcnlWYWx1ZTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHRvIGZhbHNlIGlmIHRoZSBhY3Rpb24gc2hvdWxkIGJlIHNob3duLCBidXQgc2hvdWxkIG5vdCBiZSBjbGlja2FibGVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNFbmFibGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBzaG91bGQgYmUgbWFudWFsbHkgbWFya2VkIGFzIHByaW1hcnkgYWN0aW9uIHdoZW4gYWx3YXlzIHZpc2libGUgb24gYW5cbiAgICAgKiBgYWN0aW9uYmFyYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgbm9kZVxuICAgICAqIElzIGhhbmRsZWQgYnkgb3B0aW9uc0hlbHBlciBhbmQgbWF5IG5vdCBiZSB1c2VkIG90aGVyd2lzZVxuICAgICAqIFBsZWFzZSB1c2UgQGN1c3RvbVNob3dDYWxsYmFjayBpbnN0ZWFkXG4gICAgICovXG4gICAgcHVibGljIHNob3dDYWxsYmFjazogKG5vZGU/OiBOb2RlIHwgYW55KSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggdGhlIG5vZGUgYXMgcGFybSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgbm9kZVxuICAgICAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBvcHRpb25zSGVscGVyXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbVNob3dDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdIHwgYW55W10pID0+IFByb21pc2U8Ym9vbGVhbj47XG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICAgKiBJcyBoYW5kbGVkIGJ5IG9wdGlvbnNIZWxwZXIgYW5kIG1heSBub3QgYmUgdXNlZCBvdGhlcndpc2VcbiAgICAgKiBQbGVhc2UgdXNlIEBjdXN0b21FbmFibGVkQ2FsbGJhY2sgaW5zdGVhZFxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVkQ2FsbGJhY2s6IChub2RlPzogTm9kZSB8IGFueSkgPT4gYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIGNhbGxlZCB3aXRoIHRoZSBub2RlIGFzIHBhcmFtIHdoaWNoIHNob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSBpZiB0aGUgb3B0aW9uIHNob3VsZCBiZSBlbmFibGVkIG9yIG5vdFxuICAgICAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBvcHRpb25zSGVscGVyXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbUVuYWJsZWRDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdIHwgYW55W10pID0+IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiAgIE9wdGlvbmFsOiBBIGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBvcHRpb24gd2hlbiBpdCdzIGN1cnJlbnRseSBkaXNhYmxlZCAoZ3JleWVkIG91dClcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzYWJsZWRDYWxsYmFjazogKG5vZGU/OiBOb2RlIHwgYW55KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqICAgU2hvdyB0aGUgZ2l2ZW4gbmFtZSAoaWYgZmFsc2UsIG9ubHkgaWNvbiB3aWxsIHNob3cpXG4gICAgICovXG4gICAgcHVibGljIHNob3dOYW1lID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIGVsZW1lbnQgd2l0aCAwIGhhcyBoaWdoZXN0IHByaW9yaXR5IGluIGl0J3MgZ3JvdXAsIGhpZ2hlciB2YWx1ZXMgbWVhbiBsb3dlciBwcmlvcml0eVxuICAgICAqL1xuICAgIHB1YmxpYyBwcmlvcml0eTogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIHRoZSBncm91cCB0aGlzIG9wdGlvbiBiZWxvbmdzIHRvXG4gICAgICovXG4gICAgcHVibGljIGdyb3VwOiBPcHRpb25Hcm91cDtcblxuICAgIHB1YmxpYyBrZXlib2FyZFNob3J0Y3V0OiBLZXlib2FyZFNob3J0Y3V0Q29uZGl0aW9uO1xuXG4gICAgLyoqXG4gICAgICogT3IgY29uY2F0IG9mIHN1cHBvcnRlZCBlbGVtZW50IHR5cGVzIGZvciB0aGUgYWN0aW9uXG4gICAgICovXG4gICAgcHVibGljIGVsZW1lbnRUeXBlID0gW0VsZW1lbnRUeXBlLk5vZGVdO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgcHVibGljIGNvbnN0cmFpbnM6IENvbnN0cmFpbltdO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uc01vZGUgPSBIaWRlTW9kZS5EaXNhYmxlO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uc1JpZ2h0TW9kZSA9IE5vZGVzUmlnaHRNb2RlLkxvY2FsO1xuICAgIHB1YmxpYyB0b29scGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgIHB1YmxpYyB0b29scGVybWlzc2lvbnNNb2RlID0gSGlkZU1vZGUuRGlzYWJsZTtcbiAgICBwdWJsaWMgc2NvcGVzOiBTY29wZVtdO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSB0aGUgb3B0aW9uIG5hbWUsIHdoaWNoIGlzIHVzZWQgZm9yIHRoZSB0cmFuc2xhdGlvblxuICAgICAqIEBwYXJhbSBpY29uIEEgbWF0ZXJpYWwgaWNvbiBuYW1lXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIEEgZnVuY3Rpb24gY2FsbGJhY2sgd2hlbiB0aGlzIG9wdGlvbiBpcyBjaG9zZW4uIFdpbGwgZ2V0IHRoZSBjdXJyZW50IG5vZGVcbiAgICAgKiBwYXNzZWQgYXMgYW4gYXJndW1lbnQuIElmIGF2YWlsYWJsZSwgdGhlIHJlbGV2YW50IG5vZGVzIGFyZSBwYXNzZWQgYXMgc2Vjb25kIGFyZ3VtZW50LFxuICAgICAqIGkuZS4sIHRoZSBzZWxlY3Rpb24sIGlmIGFueSwgb3IgdGhlIGN1cnJlbnQgbm9kZSBhcyBzaW5nbGUtaXRlbSBhcnJheSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBpY29uOiBzdHJpbmcsXG4gICAgICAgIC8vIFRPRE86IE1heWJlIHN3aXRjaCB0byBvbmx5IHByb3ZpZGluZyB0aGUgc2Vjb25kIHBhcmFtZXRlci5cbiAgICAgICAgcHVibGljIGNhbGxiYWNrOiAob2JqZWN0PzogTm9kZSB8IGFueSwgb2JqZWN0cz86IChOb2RlIHwgYW55KVtdKSA9PiB2b2lkLFxuICAgICkge31cbn1cbmV4cG9ydCBjbGFzcyBDdXN0b21PcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBhbGwgZXhpc3Rpbmcgb3IgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIHRoZSBvYmplY3Qgc3RheVxuICAgICAqIElmIGZhbHNlLCBubyBvcHRpb25zIHdpbGwgYmUgc2V0LCBvbmx5IHRoZSBvcHRpb25zIGluIFwiYWRkT3B0aW9uc1wiIGFyZSB1c2VkXG4gICAgICovXG4gICAgcHVibGljIHVzZURlZmF1bHRPcHRpb25zPyA9IHRydWU7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBpZHMgb2Ygb3B0aW9ucyB0byBleHBsaWNpdGx5IHN1cHBvcnRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3VwcG9ydGVkT3B0aW9ucz86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgaWRzIG9mIG9wdGlvbnMgdG8gZXhwbGljaXRseSByZW1vdmVcbiAgICAgKiBPbmx5IHN1cHBvcnRlZCBpZiBzdXBwb3J0ZWRPcHRpb25zIGlzIGVtcHR5XG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZU9wdGlvbnM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25zIHRvIGFkZC9pbnNlcnQgaW50byB0aGUgbWVudVxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRPcHRpb25zPzogT3B0aW9uSXRlbVtdO1xufVxuZXhwb3J0IGVudW0gSGlkZU1vZGUge1xuICAgIERpc2FibGUsXG4gICAgSGlkZSxcbn1cbmV4cG9ydCBlbnVtIFNjb3BlIHtcbiAgICBSZW5kZXIgPSAnUmVuZGVyJyxcbiAgICBTZWFyY2ggPSAnU2VhcmNoJyxcbiAgICBTZWFyY2hDb2xsZWN0aW9ucyA9ICdTZWFyY2hDb2xsZWN0aW9ucycsXG4gICAgU2F2ZWRTZWFyY2hlcyA9ICdTYXZlZFNlYXJjaGVzJyxcbiAgICBDb2xsZWN0aW9uc1JlZmVyZW5jZXMgPSAnQ29sbGVjdGlvbnNSZWZlcmVuY2VzJyxcbiAgICBDb2xsZWN0aW9uc1Byb3Bvc2FscyA9ICdDb2xsZWN0aW9uc1Byb3Bvc2FscycsXG4gICAgQ29sbGVjdGlvbnNDb2xsZWN0aW9uID0gJ0NvbGxlY3Rpb25zQ29sbGVjdGlvbicsXG4gICAgV29ya3NwYWNlTGlzdCA9ICdXb3Jrc3BhY2VMaXN0JyxcbiAgICBXb3Jrc3BhY2VUcmVlID0gJ1dvcmtzcGFjZVRyZWUnLFxuICAgIFNoYXJpbmcgPSAnU2hhcmluZycsXG4gICAgT2VyID0gJ09lcicsXG4gICAgVXNlck1hbmFnZW1lbnQgPSAnVXNlck1hbmFnZW1lbnQnLFxuICAgIFN0cmVhbSA9ICdTdHJlYW0nLFxuICAgIENyZWF0ZU1lbnUgPSAnQ3JlYXRlTWVudScsXG5cbiAgICBNZWRpYWNlbnRlck5vZGVzTGlzdCA9ICdNZWRpYWNlbnRlck5vZGVzTGlzdCcsXG4gICAgQWRtaW4gPSAnQWRtaW4nLCAvLyBBZG1pbiBUb29scyAvIERlYnVnZ2luZ1xufVxuZXhwb3J0IGVudW0gRWxlbWVudFR5cGUge1xuICAgIE5vZGUsXG4gICAgTm9kZUNoaWxkLCAvLyBDaGlsZCBvYmplY3RcbiAgICBNYXBSZWYsIC8vIE1hcCByZWYgKGxpbmsgdG8gYW5vdGhlciBtYXApXG4gICAgTm9kZVB1Ymxpc2hlZENvcHksXG4gICAgTm9kZUJsb2NrZWRJbXBvcnQsIC8vIG5vZGUgd2l0aCBwcm9wZXJ0eSBjY206aW1wb3J0YmxvY2tlZCA9PSB0cnVlXG4gICAgTm9kZVByb3Bvc2FsLCAvLyBub2RlIHByb3Bvc2FsIGZvciBhIGNvbGxlY3Rpb25cbiAgICBQZXJzb24sXG4gICAgR3JvdXAsXG4gICAgU2F2ZWRTZWFyY2gsXG4gICAgVW5rbm93bixcbn1cbmV4cG9ydCBjbGFzcyBPcHRpb25Hcm91cCB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGlkIFRoZSBncm91cCBpZGVudGlmaWVyLiBVc2VkIHRvIHNlcGVyYXRlIGVsZW1lbnRzIGJhc2VkIG9uIHRoZSBncm91cFxuICAgICAqIEBwYXJhbSBwcmlvcml0eSBHcm91cCB3aXRoIDAgaGFzIGhpZ2hlc3QgcHJpb3JpdHksIGhpZ2hlciB2YWx1ZXMgbWVhbiBsb3dlciBwcmlvcml0eVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBpZDogc3RyaW5nLCBwdWJsaWMgcHJpb3JpdHk6IG51bWJlcikge31cbn1cbmV4cG9ydCBjbGFzcyBEZWZhdWx0R3JvdXBzIHtcbiAgICBzdGF0aWMgUHJpbWFyeSA9IG5ldyBPcHRpb25Hcm91cCgnUHJpbWFyeScsIDEwKTtcbiAgICBzdGF0aWMgQ3JlYXRlID0gbmV3IE9wdGlvbkdyb3VwKCdDcmVhdGUnLCAxNSk7XG4gICAgc3RhdGljIFZpZXcgPSBuZXcgT3B0aW9uR3JvdXAoJ1ZpZXcnLCAyMCk7XG4gICAgc3RhdGljIENyZWF0ZUNvbm5lY3RvciA9IG5ldyBPcHRpb25Hcm91cCgnQ3JlYXRlQ29ubmVjdG9yJywgMjUpO1xuICAgIHN0YXRpYyBDcmVhdGVMdGlUb29scyA9IG5ldyBPcHRpb25Hcm91cCgnQ3JlYXRlTHRpVG9vbHMnLCAyOCk7XG4gICAgc3RhdGljIFJldXNlID0gbmV3IE9wdGlvbkdyb3VwKCdSZXVzZScsIDMwKTtcbiAgICBzdGF0aWMgRWRpdCA9IG5ldyBPcHRpb25Hcm91cCgnRWRpdCcsIDQwKTtcbiAgICBzdGF0aWMgRmlsZU9wZXJhdGlvbnMgPSBuZXcgT3B0aW9uR3JvdXAoJ0ZpbGVPcGVyYXRpb25zJywgNTApO1xuICAgIHN0YXRpYyBEZWxldGUgPSBuZXcgT3B0aW9uR3JvdXAoJ0RlbGV0ZScsIDYwKTtcbiAgICBzdGF0aWMgVG9nZ2xlcyA9IG5ldyBPcHRpb25Hcm91cCgnVG9nZ2xlcycsIDcwKTtcbn1cbmV4cG9ydCBlbnVtIENvbnN0cmFpbiB7XG4gICAgQ29sbGVjdGlvblJlZmVyZW5jZSwgLy8gb3B0aW9uIGlzIG9ubHkgdmlzaWJsZSBmb3IgY29sbGVjdGlvbiByZWZlcmVuY2VzXG4gICAgTm9Db2xsZWN0aW9uUmVmZXJlbmNlLCAvLyBvcHRpb24gaXMgb25seSB2aXNpYmxlIGZvciBub24tY29sbGVjdGlvbiByZWZlcmVuY2VzXG4gICAgRGlyZWN0b3J5LCAvLyBvbmx5IHZpc2libGUgZm9yIGRpcmVjdG9yaWVzIChjY206bWFwKVxuICAgIENvbGxlY3Rpb25zLCAvLyBvbmx5IHZpc2libGUgZm9yIGNvbGxlY3Rpb25zXG4gICAgRmlsZXMsIC8vIG9ubHkgdmlzaWJsZSBmb3IgZmlsZXMgKGNjbTppbylcbiAgICBGaWxlc0FuZERpcmVjdG9yaWVzLCAvLyBvbmx5IHZpc2libGUgZm9yIGZpbGVzIGFuZCBkaXJlY3RvcmllcyAoY2NtOmlvIC8gY2NtOm1hcCkgLSBubyBjb2xsZWN0aW9ucyFcbiAgICBBZG1pbiwgLy8gb25seSB2aXNpYmxlIGlmIHVzZXIgaXMgYWRtaW4gb3IgZXNEZWJ1ZyBpcyBlbmFibGVkIG9uIHdpbmRvdyBjb21wb25lbnRcbiAgICBBZG1pbk9yRGVidWcsIC8vIG9ubHkgdmlzaWJsZSBpZiB1c2VyIGlzIGFkbWluIG9yIGVzRGVidWcgaXMgZW5hYmxlZCBvbiB3aW5kb3cgY29tcG9uZW50XG4gICAgTm9CdWxrLCAvLyBObyBzdXBwb3J0IGZvciBidWxrIChtdWx0aXBsZSBvYmplY3RzKVxuICAgIE5vU2VsZWN0aW9uLCAvLyBPbmx5IHZpc2libGUgd2hlbiBjdXJyZW50bHkgbm8gZWxlbWVudCBpcyBzZWxlY3RlZFxuICAgIENsaXBib2FyZENvbnRlbnQsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIHRoZSBjbGlwYm9hcmQgaGFzIGNvbnRlbnRcbiAgICBBZGRPYmplY3RzLCAvLyBPbmx5IHZpc2libGUgd2hlbiBpdCBpcyBwb3NzaWJsZSB0byBhZGQgb2JqZWN0cyBpbnRvIHRoZSBjdXJyZW50IGxpc3RcbiAgICBIb21lUmVwb3NpdG9yeSwgLy8gT25seSB2aXNpYmxlIHdoZW4gdGhlIG5vZGVzIGFyZSBmcm9tIHRoZSBsb2NhbCAoaG9tZSkgcmVwb3NpdG9yeVxuICAgIFVzZXIsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGEgdXNlciBpcyBwcmVzZW50IGFuZCBsb2dnZWQgaW5cbiAgICBOb1Njb3BlLCAvLyBPbmx5IHZpc2libGUgd2hlbiBubyBjdXJyZW50IHNjb3BlIChpLmUgXCJzYWZlXCIgc2NvcGUpIGlzIHNldFxuICAgIFJldXJsTW9kZSwgLy8gT25seSB2aXNpYmxlIHdoZW4gYSByZXVybCBpcyBwcmVzZW50IChjYWxsZWQgdG8gcGljayBvYmplY3QgZnJvbSBsbXMpXG4gICAgTFRJTW9kZSwgLy8gT25seSB2aXNpYmxlIHdoZW4gYSBsdGkgc2Vzc2lvbiBpcyBwcmVzZW50IChjYWxsZWQgdG8gcGljayBvYmplY3QgZnJvbSBsdGkgcGxhdGZvcm0pXG59XG5cbmV4cG9ydCBlbnVtIFRhcmdldCB7XG4gICAgTGlzdCwgLy8gVGFyZ2V0IGlzIHRoZSBMaXN0VGFibGVDb21wb25lbnRcbiAgICBMaXN0RHJvcGRvd24sXG4gICAgQWN0aW9uYmFyLFxuICAgIENyZWF0ZU1lbnUsXG59XG4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3R5cGVzL29wdGlvbi1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIsdUVBQXVFO0lBQ3ZFLHFEQUFLLENBQUE7SUFDTCxxSEFBcUg7SUFDckgsNkRBQVMsQ0FBQTtBQUNiLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUNELE1BQU0sT0FBTyxVQUFVO0lBb0luQjs7Ozs7OztPQU9HO0lBQ0gsWUFDVyxJQUFZLEVBQ1osSUFBWTtJQUNuQiw2REFBNkQ7SUFDdEQsUUFBaUU7UUFIakUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFNBQUksR0FBSixJQUFJLENBQVE7UUFFWixhQUFRLEdBQVIsUUFBUSxDQUF5RDtRQS9JNUU7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7O1dBR0c7UUFDSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCOztXQUVHO1FBQ0ksb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDOUI7OztXQUdHO1FBQ0ksbUJBQWMsR0FBdUIsT0FBTyxDQUFDO1FBQ3BEOzs7OztXQUtHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7Ozs7V0FLRztRQUNJLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUI7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCOzs7V0FHRztRQUNJLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBWTNCOzs7V0FHRztRQUNJLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFtQ3hCOztXQUVHO1FB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QUNqQix1RUFBbUIsQ0FBQTtJQUNuQiwyRUFBcUIsQ0FBQTtJQUNyQixtREFBUyxDQUFBO0lBQ1QsdURBQVcsQ0FBQTtJQUNYLDJDQUFLLENBQUE7SUFDTCx1RUFBbUIsQ0FBQTtJQUNuQiwyQ0FBSyxDQUFBO0lBQ0wseURBQVksQ0FBQTtJQUNaLDZDQUFNLENBQUE7SUFDTix1REFBVyxDQUFBO0lBQ1gsa0VBQWdCLENBQUE7SUFDaEIsc0RBQVUsQ0FBQTtJQUNWLDhEQUFjLENBQUE7SUFDZCwwQ0FBSSxDQUFBO0lBQ0osZ0RBQU8sQ0FBQTtJQUNQLG9EQUFTLENBQUE7SUFDVCxnREFBTyxDQUFBO0FBQ1gsQ0FBQyxFQWxCVyxTQUFTLEtBQVQsU0FBUyxRQWtCcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxNQUtYO0FBTEQsV0FBWSxNQUFNO0lBQ2QsbUNBQUksQ0FBQTtJQUNKLG1EQUFZLENBQUE7SUFDWiw2Q0FBUyxDQUFBO0lBQ1QsK0NBQVUsQ0FBQTtBQUNkLENBQUMsRUFMVyxNQUFNLEtBQU4sTUFBTSxRQUtqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBvcHRpb24gZnJvbSB0aGUgYWN0aW9uYmFyK2Ryb3Bkb3duIG1lbnVcbiAqIEV4YW1wbGU6XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJSRVNUT1JFX1NJTkdMRVwiLFwidW5kb1wiLCAobm9kZSkgPT4gdGhpcy5yZXN0b3JlU2luZ2xlKG5vZGUpKSk7XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJERUxFVEVfU0lOR0xFXCIsXCJhcmNoaXZlRGVsZXRlXCIsIChub2RlKSA9PiB0aGlzLmRlbGV0ZVNpbmdsZShub2RlKSkpO1xuXG4gKi9cbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRDb25kaXRpb24gfSBmcm9tICcuLi90eXBlcy9rZXlib2FyZC1zaG9ydGN1dHMnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuXG5leHBvcnQgZW51bSBOb2Rlc1JpZ2h0TW9kZSB7XG4gICAgLy8gcmlnaHRzIG9uIHRoZSBjdXJyZW50IG5vZGUsIG5vIG1hdHRlciBpZiBpdHMgYSByZWZlcmVuY2Ugb3Igb3JpZ2lhbmxcbiAgICBMb2NhbCxcbiAgICAvLyBlZmZlY3RpdmUgcmlnaHRzIG9uIHRoZSBjdXJyZW50IG5vZGUsIG9ubHkgcmVsZXZhbnQgZm9yIGNvbGxlY3Rpb24gcmVmZXJlbmNlcyAoZm9yIG5vbi1yZWZzLCB0aGlzIGVxdWFscyB0byBsb2NhbClcbiAgICBFZmZlY3RpdmUsXG59XG5leHBvcnQgY2xhc3MgT3B0aW9uSXRlbSB7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhbGwgdGhlIHRpbWUgaW4gdGhlIG5vZGUgdGFibGVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0Fsd2F5cyA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoaXMgb3B0aW9uIHdpbGwgYmUgc2hvd24gYXMgYW4gYWN0aW9uIChpZiByb29tKS4gSWYgbm9uZSBvZiB0aGUgaXRlbXMgaGFzIHNob3dBc0FjdGlvbiBzZXQsIHRoZSBmaXJzdCBpdGVtcyB3aWxsIGFsd2F5cyBiZSBzaG93biBhcyBhY3Rpb25cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0FzQWN0aW9uID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhcyBhIHRvZ2dsZSBvbiB0aGUgcmlnaHQgc2lkZSAocHJvdmlkZSBpY29uVG9nZ2xlIGFzIGEgdG9nZ2xlIGljb24pXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIGlzVG9nZ2xlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogT25seSB3aGVuIEBpc1RvZ2dsZS4gaXMgdGhlIHRvZ2dsZSBjdXJyZW50bHkgdmlzaWJsZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1RvZ2dsZVZpc2libGUgPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIE9ubHkgd2hlbiBAaXNUb2dnbGUuIFdoZXJlIHRvIHBsYWNlIHRoZSB0b2dnbGUsIGJlZm9yZSBvciBhZnRlciBhbGwgb3RoZXIgYWN0aW9uc1xuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHB1YmxpYyB0b2dnbGVQb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInID0gJ2FmdGVyJztcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBzaG93cyBhIGxpbmUgYXQgdGhlIHRvcC5cbiAgICAgKlxuICAgICAqIFRoaXMgZmVhdHVyZSBpcyB1c3VhbGx5IGhhbmRsZWQgbm93IGJ5IGFzc29jaWF0aW5nIGFuIGVudHJ5IHRvIGEgYGdyb3VwYFxuICAgICAqIG5vdy4gSG93ZXZlciBgaXNTZXBhcmF0ZWAgaXMga2VwdCBhcyBmYWxsYmFjayBmb3Igbm93LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc1NlcGFyYXRlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogVGhlIGl0ZW0gd2lsbCBiZSBpbmRpY2F0ZWQgd2l0aCBhbiBhY2NlbnQgY29sb3IgaW4gdGhlIG1lbnUuXG4gICAgICpcbiAgICAgKiBVc2VkIGJ5IHRoZSBkcm9wZG93biB2YXJpYW50IG9mIHRoZSBtYWluIG1lbnUgdG8gaW5kaWNhdGUgdGhlIGN1cnJlbnRseVxuICAgICAqIGFjdGl2ZSBzY29wZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIG9ubHkgZGlzcGxheWVkIG9uIGEgbW9iaWxlIGRldmljZSAoYmFzZWQgb24gdGhlIG5hdmlnYXRvciBhZ2VudClcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb25seU1vYmlsZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIGN1c3RvbSBhcmlhLWxhYmVsXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBwdWJsaWMgYXJpYUxhYmVsID0gJyc7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgb25seSBkaXNwbGF5ZWQgb24gYSBkZXNrdG9wIGRldmljZSAoYmFzZWQgb24gdGhlIG5hdmlnYXRvciBhZ2VudClcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb25seURlc2t0b3AgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBZb3UgY2FuIHNldCBhIG1lZGlhLXF1ZXJ5IHNpbWlsYXIgdG8gQ1NTLCBzZWUgdGhlIE1FRElBX1FVRVJZIGNvbnN0YW50cyBpbiB1aS1jb25zdGFudHNcbiAgICAgKiBVc2UgaW4gY29tYmluYXRpb24gd2l0aCBtZWRpYVF1ZXJ5VmFsdWVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgbWVkaWFRdWVyeVR5cGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgZm9yIHRoZSBkZWZpbmVkIG1lZGlhIHF1ZXJ5XG4gICAgICovXG4gICAgcHVibGljIG1lZGlhUXVlcnlWYWx1ZTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHRvIGZhbHNlIGlmIHRoZSBhY3Rpb24gc2hvdWxkIGJlIHNob3duLCBidXQgc2hvdWxkIG5vdCBiZSBjbGlja2FibGVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNFbmFibGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBzaG91bGQgYmUgbWFudWFsbHkgbWFya2VkIGFzIHByaW1hcnkgYWN0aW9uIHdoZW4gYWx3YXlzIHZpc2libGUgb24gYW5cbiAgICAgKiBgYWN0aW9uYmFyYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgbm9kZVxuICAgICAqIElzIGhhbmRsZWQgYnkgb3B0aW9uc0hlbHBlciBhbmQgbWF5IG5vdCBiZSB1c2VkIG90aGVyd2lzZVxuICAgICAqIFBsZWFzZSB1c2UgQGN1c3RvbVNob3dDYWxsYmFjayBpbnN0ZWFkXG4gICAgICovXG4gICAgcHVibGljIHNob3dDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggdGhlIG5vZGUgYXMgcGFybSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgbm9kZVxuICAgICAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBvcHRpb25zSGVscGVyXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbVNob3dDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdIHwgYW55W10pID0+IFByb21pc2U8Ym9vbGVhbj47XG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICAgKiBJcyBoYW5kbGVkIGJ5IG9wdGlvbnNIZWxwZXIgYW5kIG1heSBub3QgYmUgdXNlZCBvdGhlcndpc2VcbiAgICAgKiBQbGVhc2UgdXNlIEBjdXN0b21FbmFibGVkQ2FsbGJhY2sgaW5zdGVhZFxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVkQ2FsbGJhY2s6IChub2Rlcz86IE5vZGVbXSkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIGNhbGxlZCB3aXRoIHRoZSBub2RlIGFzIHBhcmFtIHdoaWNoIHNob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSBpZiB0aGUgb3B0aW9uIHNob3VsZCBiZSBlbmFibGVkIG9yIG5vdFxuICAgICAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBvcHRpb25zSGVscGVyXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbUVuYWJsZWRDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdIHwgYW55W10pID0+IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICAgKiAgIE9wdGlvbmFsOiBBIGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBvcHRpb24gd2hlbiBpdCdzIGN1cnJlbnRseSBkaXNhYmxlZCAoZ3JleWVkIG91dClcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzYWJsZWRDYWxsYmFjazogKG5vZGU/OiBOb2RlIHwgYW55KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqICAgU2hvdyB0aGUgZ2l2ZW4gbmFtZSAoaWYgZmFsc2UsIG9ubHkgaWNvbiB3aWxsIHNob3cpXG4gICAgICovXG4gICAgcHVibGljIHNob3dOYW1lID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIGVsZW1lbnQgd2l0aCAwIGhhcyBoaWdoZXN0IHByaW9yaXR5IGluIGl0J3MgZ3JvdXAsIGhpZ2hlciB2YWx1ZXMgbWVhbiBsb3dlciBwcmlvcml0eVxuICAgICAqL1xuICAgIHB1YmxpYyBwcmlvcml0eTogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIHRoZSBncm91cCB0aGlzIG9wdGlvbiBiZWxvbmdzIHRvXG4gICAgICovXG4gICAgcHVibGljIGdyb3VwOiBPcHRpb25Hcm91cDtcblxuICAgIHB1YmxpYyBrZXlib2FyZFNob3J0Y3V0OiBLZXlib2FyZFNob3J0Y3V0Q29uZGl0aW9uO1xuXG4gICAgLyoqXG4gICAgICogT3IgY29uY2F0IG9mIHN1cHBvcnRlZCBlbGVtZW50IHR5cGVzIGZvciB0aGUgYWN0aW9uXG4gICAgICovXG4gICAgcHVibGljIGVsZW1lbnRUeXBlID0gW0VsZW1lbnRUeXBlLk5vZGVdO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgcHVibGljIGNvbnN0cmFpbnM6IENvbnN0cmFpbltdO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uc01vZGUgPSBIaWRlTW9kZS5EaXNhYmxlO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uc1JpZ2h0TW9kZSA9IE5vZGVzUmlnaHRNb2RlLkxvY2FsO1xuICAgIHB1YmxpYyB0b29scGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgIHB1YmxpYyB0b29scGVybWlzc2lvbnNNb2RlID0gSGlkZU1vZGUuRGlzYWJsZTtcbiAgICBwdWJsaWMgc2NvcGVzOiBTY29wZVtdO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSB0aGUgb3B0aW9uIG5hbWUsIHdoaWNoIGlzIHVzZWQgZm9yIHRoZSB0cmFuc2xhdGlvblxuICAgICAqIEBwYXJhbSBpY29uIEEgbWF0ZXJpYWwgaWNvbiBuYW1lXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIEEgZnVuY3Rpb24gY2FsbGJhY2sgd2hlbiB0aGlzIG9wdGlvbiBpcyBjaG9zZW4uIFdpbGwgZ2V0IHRoZSBjdXJyZW50IG5vZGVcbiAgICAgKiBwYXNzZWQgYXMgYW4gYXJndW1lbnQuIElmIGF2YWlsYWJsZSwgdGhlIHJlbGV2YW50IG5vZGVzIGFyZSBwYXNzZWQgYXMgc2Vjb25kIGFyZ3VtZW50LFxuICAgICAqIGkuZS4sIHRoZSBzZWxlY3Rpb24sIGlmIGFueSwgb3IgdGhlIGN1cnJlbnQgbm9kZSBhcyBzaW5nbGUtaXRlbSBhcnJheSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBpY29uOiBzdHJpbmcsXG4gICAgICAgIC8vIFRPRE86IE1heWJlIHN3aXRjaCB0byBvbmx5IHByb3ZpZGluZyB0aGUgc2Vjb25kIHBhcmFtZXRlci5cbiAgICAgICAgcHVibGljIGNhbGxiYWNrOiAob2JqZWN0PzogTm9kZSB8IGFueSwgb2JqZWN0cz86IChOb2RlIHwgYW55KVtdKSA9PiB2b2lkLFxuICAgICkge31cbn1cbmV4cG9ydCBjbGFzcyBDdXN0b21PcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBhbGwgZXhpc3Rpbmcgb3IgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIHRoZSBvYmplY3Qgc3RheVxuICAgICAqIElmIGZhbHNlLCBubyBvcHRpb25zIHdpbGwgYmUgc2V0LCBvbmx5IHRoZSBvcHRpb25zIGluIFwiYWRkT3B0aW9uc1wiIGFyZSB1c2VkXG4gICAgICovXG4gICAgcHVibGljIHVzZURlZmF1bHRPcHRpb25zPyA9IHRydWU7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBpZHMgb2Ygb3B0aW9ucyB0byBleHBsaWNpdGx5IHN1cHBvcnRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3VwcG9ydGVkT3B0aW9ucz86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgaWRzIG9mIG9wdGlvbnMgdG8gZXhwbGljaXRseSByZW1vdmVcbiAgICAgKiBPbmx5IHN1cHBvcnRlZCBpZiBzdXBwb3J0ZWRPcHRpb25zIGlzIGVtcHR5XG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZU9wdGlvbnM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25zIHRvIGFkZC9pbnNlcnQgaW50byB0aGUgbWVudVxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRPcHRpb25zPzogT3B0aW9uSXRlbVtdO1xufVxuZXhwb3J0IGVudW0gSGlkZU1vZGUge1xuICAgIERpc2FibGUsXG4gICAgSGlkZSxcbn1cbmV4cG9ydCBlbnVtIFNjb3BlIHtcbiAgICBSZW5kZXIgPSAnUmVuZGVyJyxcbiAgICBTZWFyY2ggPSAnU2VhcmNoJyxcbiAgICBTZWFyY2hDb2xsZWN0aW9ucyA9ICdTZWFyY2hDb2xsZWN0aW9ucycsXG4gICAgU2F2ZWRTZWFyY2hlcyA9ICdTYXZlZFNlYXJjaGVzJyxcbiAgICBDb2xsZWN0aW9uc1JlZmVyZW5jZXMgPSAnQ29sbGVjdGlvbnNSZWZlcmVuY2VzJyxcbiAgICBDb2xsZWN0aW9uc1Byb3Bvc2FscyA9ICdDb2xsZWN0aW9uc1Byb3Bvc2FscycsXG4gICAgQ29sbGVjdGlvbnNDb2xsZWN0aW9uID0gJ0NvbGxlY3Rpb25zQ29sbGVjdGlvbicsXG4gICAgV29ya3NwYWNlTGlzdCA9ICdXb3Jrc3BhY2VMaXN0JyxcbiAgICBXb3Jrc3BhY2VUcmVlID0gJ1dvcmtzcGFjZVRyZWUnLFxuICAgIFNoYXJpbmcgPSAnU2hhcmluZycsXG4gICAgT2VyID0gJ09lcicsXG4gICAgVXNlck1hbmFnZW1lbnQgPSAnVXNlck1hbmFnZW1lbnQnLFxuICAgIFN0cmVhbSA9ICdTdHJlYW0nLFxuICAgIENyZWF0ZU1lbnUgPSAnQ3JlYXRlTWVudScsXG5cbiAgICBNZWRpYWNlbnRlck5vZGVzTGlzdCA9ICdNZWRpYWNlbnRlck5vZGVzTGlzdCcsXG4gICAgQWRtaW4gPSAnQWRtaW4nLCAvLyBBZG1pbiBUb29scyAvIERlYnVnZ2luZ1xuICAgIERlYnVnU2hvd0FsbCA9ICdEZWJ1Z1Nob3dBbGwnLCAvLyBGdWxsIGRlYnVnIG1vZGUgd2hpY2ggZW5hYmxlcyBhbGwgb3B0aW9uc1xufVxuZXhwb3J0IGVudW0gRWxlbWVudFR5cGUge1xuICAgIE5vZGUsXG4gICAgTm9kZUNoaWxkLCAvLyBDaGlsZCBvYmplY3RcbiAgICBNYXBSZWYsIC8vIE1hcCByZWYgKGxpbmsgdG8gYW5vdGhlciBtYXApXG4gICAgTm9kZVB1Ymxpc2hlZENvcHksXG4gICAgTm9kZVJldm9rZWQsIC8vIHJldm9rZWQgY29weSAvIHJldm9rZWQgcHVibGlzaGVkIG5vZGVcbiAgICBOb2RlQmxvY2tlZEltcG9ydCwgLy8gbm9kZSB3aXRoIHByb3BlcnR5IGNjbTppbXBvcnRibG9ja2VkID09IHRydWVcbiAgICBOb2RlUHJvcG9zYWwsIC8vIG5vZGUgcHJvcG9zYWwgZm9yIGEgY29sbGVjdGlvblxuICAgIFBlcnNvbixcbiAgICBHcm91cCxcbiAgICBTYXZlZFNlYXJjaCxcbiAgICBVbmtub3duLFxufVxuZXhwb3J0IGNsYXNzIE9wdGlvbkdyb3VwIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gaWQgVGhlIGdyb3VwIGlkZW50aWZpZXIuIFVzZWQgdG8gc2VwZXJhdGUgZWxlbWVudHMgYmFzZWQgb24gdGhlIGdyb3VwXG4gICAgICogQHBhcmFtIHByaW9yaXR5IEdyb3VwIHdpdGggMCBoYXMgaGlnaGVzdCBwcmlvcml0eSwgaGlnaGVyIHZhbHVlcyBtZWFuIGxvd2VyIHByaW9yaXR5XG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGlkOiBzdHJpbmcsIHB1YmxpYyBwcmlvcml0eTogbnVtYmVyKSB7fVxufVxuZXhwb3J0IGNsYXNzIERlZmF1bHRHcm91cHMge1xuICAgIHN0YXRpYyBQcmltYXJ5ID0gbmV3IE9wdGlvbkdyb3VwKCdQcmltYXJ5JywgMTApO1xuICAgIHN0YXRpYyBDcmVhdGUgPSBuZXcgT3B0aW9uR3JvdXAoJ0NyZWF0ZScsIDE1KTtcbiAgICBzdGF0aWMgVmlldyA9IG5ldyBPcHRpb25Hcm91cCgnVmlldycsIDIwKTtcbiAgICBzdGF0aWMgQ3JlYXRlQ29ubmVjdG9yID0gbmV3IE9wdGlvbkdyb3VwKCdDcmVhdGVDb25uZWN0b3InLCAyNSk7XG4gICAgc3RhdGljIENyZWF0ZUx0aVRvb2xzID0gbmV3IE9wdGlvbkdyb3VwKCdDcmVhdGVMdGlUb29scycsIDI4KTtcbiAgICBzdGF0aWMgUmV1c2UgPSBuZXcgT3B0aW9uR3JvdXAoJ1JldXNlJywgMzApO1xuICAgIHN0YXRpYyBFZGl0ID0gbmV3IE9wdGlvbkdyb3VwKCdFZGl0JywgNDApO1xuICAgIHN0YXRpYyBGaWxlT3BlcmF0aW9ucyA9IG5ldyBPcHRpb25Hcm91cCgnRmlsZU9wZXJhdGlvbnMnLCA1MCk7XG4gICAgc3RhdGljIERlbGV0ZSA9IG5ldyBPcHRpb25Hcm91cCgnRGVsZXRlJywgNjApO1xuICAgIHN0YXRpYyBUb2dnbGVzID0gbmV3IE9wdGlvbkdyb3VwKCdUb2dnbGVzJywgNzApO1xufVxuZXhwb3J0IGVudW0gQ29uc3RyYWluIHtcbiAgICBDb2xsZWN0aW9uUmVmZXJlbmNlLCAvLyBvcHRpb24gaXMgb25seSB2aXNpYmxlIGZvciBjb2xsZWN0aW9uIHJlZmVyZW5jZXNcbiAgICBOb0NvbGxlY3Rpb25SZWZlcmVuY2UsIC8vIG9wdGlvbiBpcyBvbmx5IHZpc2libGUgZm9yIG5vbi1jb2xsZWN0aW9uIHJlZmVyZW5jZXNcbiAgICBEaXJlY3RvcnksIC8vIG9ubHkgdmlzaWJsZSBmb3IgZGlyZWN0b3JpZXMgKGNjbTptYXApXG4gICAgQ29sbGVjdGlvbnMsIC8vIG9ubHkgdmlzaWJsZSBmb3IgY29sbGVjdGlvbnNcbiAgICBGaWxlcywgLy8gb25seSB2aXNpYmxlIGZvciBmaWxlcyAoY2NtOmlvKVxuICAgIEZpbGVzQW5kRGlyZWN0b3JpZXMsIC8vIG9ubHkgdmlzaWJsZSBmb3IgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIChjY206aW8gLyBjY206bWFwKSAtIG5vIGNvbGxlY3Rpb25zIVxuICAgIEFkbWluLCAvLyBvbmx5IHZpc2libGUgaWYgdXNlciBpcyBhZG1pbiBvciBlc0RlYnVnIGlzIGVuYWJsZWQgb24gd2luZG93IGNvbXBvbmVudFxuICAgIEFkbWluT3JEZWJ1ZywgLy8gb25seSB2aXNpYmxlIGlmIHVzZXIgaXMgYWRtaW4gb3IgZXNEZWJ1ZyBpcyBlbmFibGVkIG9uIHdpbmRvdyBjb21wb25lbnRcbiAgICBOb0J1bGssIC8vIE5vIHN1cHBvcnQgZm9yIGJ1bGsgKG11bHRpcGxlIG9iamVjdHMpXG4gICAgTm9TZWxlY3Rpb24sIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGN1cnJlbnRseSBubyBlbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgQ2xpcGJvYXJkQ29udGVudCwgLy8gT25seSB2aXNpYmxlIHdoZW4gdGhlIGNsaXBib2FyZCBoYXMgY29udGVudFxuICAgIEFkZE9iamVjdHMsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGl0IGlzIHBvc3NpYmxlIHRvIGFkZCBvYmplY3RzIGludG8gdGhlIGN1cnJlbnQgbGlzdFxuICAgIEhvbWVSZXBvc2l0b3J5LCAvLyBPbmx5IHZpc2libGUgd2hlbiB0aGUgbm9kZXMgYXJlIGZyb20gdGhlIGxvY2FsIChob21lKSByZXBvc2l0b3J5XG4gICAgVXNlciwgLy8gT25seSB2aXNpYmxlIHdoZW4gYSB1c2VyIGlzIHByZXNlbnQgYW5kIGxvZ2dlZCBpblxuICAgIE5vU2NvcGUsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIG5vIGN1cnJlbnQgc2NvcGUgKGkuZSBcInNhZmVcIiBzY29wZSkgaXMgc2V0XG4gICAgUmV1cmxNb2RlLCAvLyBPbmx5IHZpc2libGUgd2hlbiBhIHJldXJsIGlzIHByZXNlbnQgKGNhbGxlZCB0byBwaWNrIG9iamVjdCBmcm9tIGxtcylcbiAgICBMVElNb2RlLCAvLyBPbmx5IHZpc2libGUgd2hlbiBhIGx0aSBzZXNzaW9uIGlzIHByZXNlbnQgKGNhbGxlZCB0byBwaWNrIG9iamVjdCBmcm9tIGx0aSBwbGF0Zm9ybSlcbn1cblxuZXhwb3J0IGVudW0gVGFyZ2V0IHtcbiAgICBMaXN0LCAvLyBUYXJnZXQgaXMgdGhlIExpc3RUYWJsZUNvbXBvbmVudFxuICAgIExpc3REcm9wZG93bixcbiAgICBBY3Rpb25iYXIsXG4gICAgQ3JlYXRlTWVudSxcbn1cbiJdfQ==
@@ -165,7 +165,7 @@ export class VCard {
165
165
  getDisplayName() {
166
166
  const string = (this.title ?? '') + ' ' + (this.givenname ?? '') + ' ' + (this.surname ?? '');
167
167
  if (string.trim() === '') {
168
- return this.org || '';
168
+ return this.org || this.get('FN') || '';
169
169
  }
170
170
  return string;
171
171
  }
@@ -275,4 +275,4 @@ export class VCard {
275
275
  : VCard.TYPE_PERSON;
276
276
  }
277
277
  }
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVkNhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3V0aWwvVkNhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxNQUFNLE9BQU8sS0FBSzthQUNBLGdCQUFXLEdBQUcsQ0FBQyxBQUFKLENBQUs7YUFDaEIsYUFBUSxHQUFHLENBQUMsQUFBSixDQUFLO0lBSTNCLFlBQVksUUFBZ0IsSUFBSTtRQUhoQyx3QkFBd0I7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUdwQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLHFCQUFxQjtZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPO1FBQ1YsZ0RBQWdEO1FBQ2hELE9BQU8sQ0FDSCxJQUFJLENBQUMsU0FBUztZQUNkLElBQUksQ0FBQyxPQUFPO1lBQ1osSUFBSSxDQUFDLEdBQUc7WUFDUixJQUFJLENBQUMsTUFBTTtZQUNYLElBQUksQ0FBQyxJQUFJO1lBQ1QsSUFBSSxDQUFDLEdBQUc7WUFDUixJQUFJLENBQUMsT0FBTyxDQUNmLENBQUM7SUFDTixDQUFDO0lBQ0QsSUFBVyxTQUFTLENBQUMsSUFBWTtRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsSUFBWTtRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxHQUFHLENBQUMsSUFBWTtRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUFXLEdBQUcsQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFXLEtBQUssQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELElBQVcsR0FBRyxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLElBQVk7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQVcsR0FBRyxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLElBQVk7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLElBQVk7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsR0FBRyxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsT0FBTyxDQUFDLElBQVk7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsY0FBYyxDQUFDLElBQVk7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLGNBQWM7UUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3BELElBQUksTUFBTTtZQUFFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELElBQVcsR0FBRztRQUNWLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsa0NBQWtDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsa0NBQWtDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNNLGFBQWE7UUFDaEIsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDTSxjQUFjO1FBQ2pCLE1BQU0sTUFBTSxHQUNSLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkYsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUNNLEdBQUcsQ0FBQyxHQUFXLEVBQUUsVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQW1CLElBQUk7UUFDNUQsSUFBSSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbkIsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNmLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDckIsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNmLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZCxDQUFDO1FBQ0QsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEQsSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDO29CQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFDTSxNQUFNLENBQUMsR0FBVztRQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN6QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNNLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYSxFQUFFLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbEQseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDcEMsSUFBSSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbkIsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNmLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDckIsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNmLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDbkIsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3ZDLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO3FCQUFNLENBQUM7b0JBQ0osU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDOUQsT0FBTztZQUNYLENBQUM7WUFDRCxDQUFDLEVBQUUsQ0FBQztRQUNSLENBQUM7UUFDRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2xCLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDZixPQUFPLFNBQVMsQ0FBQyxNQUFNLEdBQUcsVUFBVTtnQkFBRSxTQUFTLElBQUksR0FBRyxDQUFDO1lBQ3ZELFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxXQUFXO2dCQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxDQUFDLEVBQUUsQ0FBQztRQUNSLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ08sUUFBUSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxLQUFLLElBQUksSUFBSTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ08sTUFBTSxDQUFDLEtBQWE7UUFDeEIsSUFBSSxLQUFLLElBQUksSUFBSTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTSxJQUFJO1FBQ1AsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLEtBQVk7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPO2dCQUM1QixDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVc7Z0JBQ25CLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDcmVhdGVkIGJ5IFRvcnN0ZW4gb24gMjguMDIuMjAxNy5cbiAqL1xuXG5leHBvcnQgY2xhc3MgVkNhcmQge1xuICAgIHB1YmxpYyBzdGF0aWMgVFlQRV9QRVJTT04gPSAwO1xuICAgIHB1YmxpYyBzdGF0aWMgVFlQRV9PUkcgPSAxO1xuICAgIC8vIHdhcyB0aGUgdmNhcmQgYWx0ZXJlZFxuICAgIHByaXZhdGUgaXNEaXJ0eSA9IGZhbHNlO1xuICAgIHByaXZhdGUgbGluZXM6IHN0cmluZ1tdO1xuICAgIGNvbnN0cnVjdG9yKHZjYXJkOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgICAgIGlmICh2Y2FyZCkge1xuICAgICAgICAgICAgdGhpcy5saW5lcyA9IHZjYXJkLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgIC8vIHRoaXMucmVtb3ZlKFwiRk5cIik7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZ2V0KCdCRUdJTicpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lcy5zcGxpY2UoMCwgMCwgJ0JFR0lOOlZDQVJEJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuZ2V0KCdWRVJTSU9OJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVzLnNwbGljZSgxLCAwLCAnVkVSU0lPTjozLjAnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5nZXQoJ0VORCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lcy5zcGxpY2UodGhpcy5saW5lcy5sZW5ndGgsIDAsICdFTkQ6VkNBUkQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxpbmVzID0gW107XG4gICAgICAgICAgICB0aGlzLmxpbmVzLnB1c2goJ0JFR0lOOlZDQVJEJyk7XG4gICAgICAgICAgICB0aGlzLmxpbmVzLnB1c2goJ1ZFUlNJT046My4wJyk7XG4gICAgICAgICAgICB0aGlzLmxpbmVzLnB1c2goJ0VORDpWQ0FSRCcpO1xuICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHRydWUgaWYgdGhpcyB2Y2FyZCBzZWVtcyB0byBoYXZlIHZhbGlkIGRhdGFcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1ZhbGlkKCkge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5saW5lcyE9bnVsbCAmJiB0aGlzLmxpbmVzLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuZ2l2ZW5uYW1lIHx8XG4gICAgICAgICAgICB0aGlzLnN1cm5hbWUgfHxcbiAgICAgICAgICAgIHRoaXMub3JnIHx8XG4gICAgICAgICAgICB0aGlzLnN0cmVldCB8fFxuICAgICAgICAgICAgdGhpcy5jaXR5IHx8XG4gICAgICAgICAgICB0aGlzLnppcCB8fFxuICAgICAgICAgICAgdGhpcy5jb3VudHJ5XG4gICAgICAgICk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZ2l2ZW5uYW1lKGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnR2l2ZW5uYW1lJywgZGF0YSk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgc3VybmFtZShkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ1N1cm5hbWUnLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIHNldCB0aXRsZShkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ1RJVExFJywgZGF0YSk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgb3JnKGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnT1JHJywgZGF0YSk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgb3JnUGhvbmUoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdURUw7VFlQRT1XT1JLLFZPSUNFJywgZGF0YSk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgdXJsKGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnVVJMJywgZGF0YSk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZW1haWwoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdFTUFJTDtUWVBFPVBSRUYsSU5URVJORVQnLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIHNldCB1aWQoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdVSUQ6dXJuOnV1aWQnLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIHNldCBvcmNpZChkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ1gtT1JDSUQnLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIHNldCBnbmR1cmkoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdYLUdORC1VUkknLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIHNldCByb3IoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdYLVJPUicsIGRhdGEpO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHdpa2lkYXRhKGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnWC1XaWtpZGF0YScsIGRhdGEpO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHN0cmVldChkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ0FEUjtUWVBFPWludGwscG9zdGFsLHBhcmNlbCx3b3JrJywgZGF0YSwgMik7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgY2l0eShkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ0FEUjtUWVBFPWludGwscG9zdGFsLHBhcmNlbCx3b3JrJywgZGF0YSwgMyk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgcmVnaW9uKGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnQURSO1RZUEU9aW50bCxwb3N0YWwscGFyY2VsLHdvcmsnLCBkYXRhLCA0KTtcbiAgICB9XG4gICAgcHVibGljIHNldCB6aXAoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdBRFI7VFlQRT1pbnRsLHBvc3RhbCxwYXJjZWwsd29yaycsIGRhdGEsIDUpO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGNvdW50cnkoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdBRFI7VFlQRT1pbnRsLHBvc3RhbCxwYXJjZWwsd29yaycsIGRhdGEsIDYpO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGNvbnRyaWJ1dGVEYXRlKGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnWC1FUy1MT00tQ09OVFJJQlVURS1EQVRFJywgZGF0YSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZ2l2ZW5uYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ0dpdmVubmFtZScpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHN1cm5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnU3VybmFtZScpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IG9yY2lkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ1gtT1JDSUQnKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBnbmR1cmkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnWC1HTkQtVVJJJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcm9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ1gtUk9SJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgd2lraWRhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnWC1XaWtpZGF0YScpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ1RJVExFJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgb3JnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ09SRycpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGNvbnRyaWJ1dGVEYXRlKCkge1xuICAgICAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldCgnWC1FUy1MT00tQ09OVFJJQlVURS1EQVRFJyk7XG4gICAgICAgIGlmIChzdHJpbmcpIHJldHVybiBzdHJpbmcuc3BsaXQoJ1QnKVswXTtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG4gICAgcHVibGljIGdldCB1cmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnVVJMJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgb3JnUGhvbmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnVEVMO1RZUEU9V09SSyxWT0lDRScpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGVtYWlsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ0VNQUlMO1RZUEU9UFJFRixJTlRFUk5FVCcpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHVpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdVSUQ6dXJuOnV1aWQnKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBzdHJlZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnQURSO1RZUEU9aW50bCxwb3N0YWwscGFyY2VsLHdvcmsnLCAyKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBjaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ0FEUjtUWVBFPWludGwscG9zdGFsLHBhcmNlbCx3b3JrJywgMyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcmVnaW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ0FEUjtUWVBFPWludGwscG9zdGFsLHBhcmNlbCx3b3JrJywgNCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgemlwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ0FEUjtUWVBFPWludGwscG9zdGFsLHBhcmNlbCx3b3JrJywgNSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY291bnRyeSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdBRFI7VFlQRT1pbnRsLHBvc3RhbCxwYXJjZWwsd29yaycsIDYpO1xuICAgIH1cbiAgICBwdWJsaWMgdG9WQ2FyZFN0cmluZygpIHtcbiAgICAgICAgLy8gdW5hbHRlcmVkIC0+IHNvIHJldHVybiBhIG51bGwgdmFsdWVcbiAgICAgICAgaWYgKCF0aGlzLmlzRGlydHkpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAodGhpcy5nZXQoJ0dpdmVubmFtZScpIHx8IHRoaXMuZ2V0KCdTdXJuYW1lJykpXG4gICAgICAgICAgICB0aGlzLnNldCgnRk4nLCB0aGlzLmdldCgnR2l2ZW5uYW1lJywgLTEsICcnKSArICcgJyArIHRoaXMuZ2V0KCdTdXJuYW1lJywgLTEsICcnKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmVzLmpvaW4oJ1xcbicpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0RGlzcGxheU5hbWUoKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZyA9XG4gICAgICAgICAgICAodGhpcy50aXRsZSA/PyAnJykgKyAnICcgKyAodGhpcy5naXZlbm5hbWUgPz8gJycpICsgJyAnICsgKHRoaXMuc3VybmFtZSA/PyAnJyk7XG4gICAgICAgIGlmIChzdHJpbmcudHJpbSgpID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3JnIHx8ICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcsIHNwbGl0SW5kZXggPSAtMSwgZmFsbGJhY2s6IHN0cmluZyA9IG51bGwpIHtcbiAgICAgICAgaWYgKGtleSA9PSAnU3VybmFtZScpIHtcbiAgICAgICAgICAgIHNwbGl0SW5kZXggPSAwO1xuICAgICAgICAgICAga2V5ID0gJ04nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT0gJ0dpdmVubmFtZScpIHtcbiAgICAgICAgICAgIHNwbGl0SW5kZXggPSAxO1xuICAgICAgICAgICAga2V5ID0gJ04nO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGxpbmUgb2YgdGhpcy5saW5lcykge1xuICAgICAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpO1xuICAgICAgICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aChrZXkgKyAnOicpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBsaW5lLnN1YnN0cmluZyhrZXkubGVuZ3RoICsgMSkudHJpbSgpO1xuICAgICAgICAgICAgICAgIGlmIChzcGxpdEluZGV4ICE9IC0xKSByZXR1cm4gdGhpcy5kZUVzY2FwZSh2YWx1ZS5zcGxpdCgnOycpW3NwbGl0SW5kZXhdKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZUVzY2FwZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrO1xuICAgIH1cbiAgICBwdWJsaWMgcmVtb3ZlKGtleTogc3RyaW5nKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5saW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMubGluZXNbaV0uc3RhcnRzV2l0aChrZXkgKyAnOicpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBzcGxpdEluZGV4ID0gLTEpIHtcbiAgICAgICAgLy8gbm8gdmFsdWUgYW5kIGVtcHR5IHZjYXJkIC0+IGRvIG5vdGhpbmdcbiAgICAgICAgaWYgKCF0aGlzLmlzRGlydHkgJiYgIXZhbHVlKSByZXR1cm47XG4gICAgICAgIGlmIChrZXkgPT0gJ1N1cm5hbWUnKSB7XG4gICAgICAgICAgICBzcGxpdEluZGV4ID0gMDtcbiAgICAgICAgICAgIGtleSA9ICdOJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09ICdHaXZlbm5hbWUnKSB7XG4gICAgICAgICAgICBzcGxpdEluZGV4ID0gMTtcbiAgICAgICAgICAgIGtleSA9ICdOJztcbiAgICAgICAgfVxuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGZvciAobGV0IGxpbmUgb2YgdGhpcy5saW5lcykge1xuICAgICAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpO1xuICAgICAgICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aChrZXkgKyAnOicpKSB7XG4gICAgICAgICAgICAgICAgbGV0IGxpbmVWYWx1ZSA9IGxpbmUuc3Vic3RyaW5nKGtleS5sZW5ndGggKyAxKS50cmltKCk7XG4gICAgICAgICAgICAgICAgaWYgKHNwbGl0SW5kZXggIT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BsaXQgPSBsaW5lVmFsdWUuc3BsaXQoJzsnKTtcbiAgICAgICAgICAgICAgICAgICAgc3BsaXRbc3BsaXRJbmRleF0gPSB0aGlzLmVzY2FwZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVWYWx1ZSA9IHNwbGl0LmpvaW4oJzsnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsaW5lVmFsdWUgPSB0aGlzLmVzY2FwZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubGluZXNbaV0gPSBsaW5lLnN1YnN0cmluZygwLCBrZXkubGVuZ3RoICsgMSkgKyBsaW5lVmFsdWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsaW5lVmFsdWUgPSB0aGlzLmVzY2FwZSh2YWx1ZSk7XG4gICAgICAgIGlmIChzcGxpdEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGxpbmVWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgd2hpbGUgKGxpbmVWYWx1ZS5sZW5ndGggPCBzcGxpdEluZGV4KSBsaW5lVmFsdWUgKz0gJzsnO1xuICAgICAgICAgICAgbGluZVZhbHVlICs9IHRoaXMuZXNjYXBlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpbmVzLnNwbGljZSh0aGlzLmdldE5leHRMaW5lKCksIDAsIGtleSArICc6JyArIGxpbmVWYWx1ZSk7XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXh0TGluZSgpIHtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgdGhpcy5saW5lcykge1xuICAgICAgICAgICAgaWYgKGxpbmUudHJpbSgpID09ICdFTkQ6VkNBUkQnKSByZXR1cm4gaSAtIDE7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubGluZXMubGVuZ3RoIC0gMTtcbiAgICB9XG4gICAgcHJpdmF0ZSBkZUVzY2FwZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gJyc7XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnXFxcXCcpLnJlcGxhY2UoL1xcXFwsL2csICcsJyk7XG4gICAgfVxuICAgIHByaXZhdGUgZXNjYXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiAnJztcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1xcXFwvZywgJ1xcXFxcXFxcJykucmVwbGFjZSgvLC9nLCAnXFxcXCwnKS5yZXBsYWNlKC87L2csICcgJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHkoKSB7XG4gICAgICAgIHJldHVybiBuZXcgVkNhcmQodGhpcy50b1ZDYXJkU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwcGx5IGFsbCBkYXRhIGZyb20gYW4gb3RoZXIgdmNhcmQgdG8gdGhpcyBvYmplY3RcbiAgICAgKiBAcGFyYW0gb3RoZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgYXBwbHkob3RoZXI6IFZDYXJkKSB7XG4gICAgICAgIHRoaXMubGluZXMgPSBvdGhlci5saW5lcztcbiAgICB9XG5cbiAgICBnZXRUeXBlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKVxuICAgICAgICAgICAgPyB0aGlzLmdpdmVubmFtZSB8fCB0aGlzLnN1cm5hbWVcbiAgICAgICAgICAgICAgICA/IFZDYXJkLlRZUEVfUEVSU09OXG4gICAgICAgICAgICAgICAgOiBWQ2FyZC5UWVBFX09SR1xuICAgICAgICAgICAgOiBWQ2FyZC5UWVBFX1BFUlNPTjtcbiAgICB9XG59XG4iXX0=
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVkNhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3V0aWwvVkNhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxNQUFNLE9BQU8sS0FBSzthQUNBLGdCQUFXLEdBQUcsQ0FBQyxBQUFKLENBQUs7YUFDaEIsYUFBUSxHQUFHLENBQUMsQUFBSixDQUFLO0lBSTNCLFlBQVksUUFBZ0IsSUFBSTtRQUhoQyx3QkFBd0I7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUdwQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLHFCQUFxQjtZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPO1FBQ1YsZ0RBQWdEO1FBQ2hELE9BQU8sQ0FDSCxJQUFJLENBQUMsU0FBUztZQUNkLElBQUksQ0FBQyxPQUFPO1lBQ1osSUFBSSxDQUFDLEdBQUc7WUFDUixJQUFJLENBQUMsTUFBTTtZQUNYLElBQUksQ0FBQyxJQUFJO1lBQ1QsSUFBSSxDQUFDLEdBQUc7WUFDUixJQUFJLENBQUMsT0FBTyxDQUNmLENBQUM7SUFDTixDQUFDO0lBQ0QsSUFBVyxTQUFTLENBQUMsSUFBWTtRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsSUFBWTtRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxHQUFHLENBQUMsSUFBWTtRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUFXLEdBQUcsQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFXLEtBQUssQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELElBQVcsR0FBRyxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLElBQVk7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQVcsR0FBRyxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLElBQVk7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLElBQVk7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsR0FBRyxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsT0FBTyxDQUFDLElBQVk7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsY0FBYyxDQUFDLElBQVk7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLGNBQWM7UUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3BELElBQUksTUFBTTtZQUFFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELElBQVcsR0FBRztRQUNWLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsa0NBQWtDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsa0NBQWtDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNNLGFBQWE7UUFDaEIsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDTSxjQUFjO1FBQ2pCLE1BQU0sTUFBTSxHQUNSLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkYsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ00sR0FBRyxDQUFDLEdBQVcsRUFBRSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBbUIsSUFBSTtRQUM1RCxJQUFJLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNuQixVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNyQixVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLENBQUM7UUFDRCxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNwRCxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUM7b0JBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDekUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUNNLE1BQU0sQ0FBQyxHQUFXO1FBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ00sR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNsRCx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNwQyxJQUFJLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNuQixVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNyQixVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0RCxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNuQixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNuQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdkMsU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hDLENBQUM7cUJBQU0sQ0FBQztvQkFDSixTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsQ0FBQztnQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO2dCQUM5RCxPQUFPO1lBQ1gsQ0FBQztZQUNELENBQUMsRUFBRSxDQUFDO1FBQ1IsQ0FBQztRQUNELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEIsU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNmLE9BQU8sU0FBUyxDQUFDLE1BQU0sR0FBRyxVQUFVO2dCQUFFLFNBQVMsSUFBSSxHQUFHLENBQUM7WUFDdkQsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLFdBQVc7Z0JBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdDLENBQUMsRUFBRSxDQUFDO1FBQ1IsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDTyxRQUFRLENBQUMsS0FBYTtRQUMxQixJQUFJLEtBQUssSUFBSSxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFDTyxNQUFNLENBQUMsS0FBYTtRQUN4QixJQUFJLEtBQUssSUFBSSxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVNLElBQUk7UUFDUCxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsS0FBWTtRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU87Z0JBQzVCLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVztnQkFDbkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZWQgYnkgVG9yc3RlbiBvbiAyOC4wMi4yMDE3LlxuICovXG5cbmV4cG9ydCBjbGFzcyBWQ2FyZCB7XG4gICAgcHVibGljIHN0YXRpYyBUWVBFX1BFUlNPTiA9IDA7XG4gICAgcHVibGljIHN0YXRpYyBUWVBFX09SRyA9IDE7XG4gICAgLy8gd2FzIHRoZSB2Y2FyZCBhbHRlcmVkXG4gICAgcHJpdmF0ZSBpc0RpcnR5ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBsaW5lczogc3RyaW5nW107XG4gICAgY29uc3RydWN0b3IodmNhcmQ6IHN0cmluZyA9IG51bGwpIHtcbiAgICAgICAgaWYgKHZjYXJkKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmVzID0gdmNhcmQuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgLy8gdGhpcy5yZW1vdmUoXCJGTlwiKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5nZXQoJ0JFR0lOJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVzLnNwbGljZSgwLCAwLCAnQkVHSU46VkNBUkQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5nZXQoJ1ZFUlNJT04nKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGluZXMuc3BsaWNlKDEsIDAsICdWRVJTSU9OOjMuMCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLmdldCgnRU5EJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVzLnNwbGljZSh0aGlzLmxpbmVzLmxlbmd0aCwgMCwgJ0VORDpWQ0FSRCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGluZXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMubGluZXMucHVzaCgnQkVHSU46VkNBUkQnKTtcbiAgICAgICAgICAgIHRoaXMubGluZXMucHVzaCgnVkVSU0lPTjozLjAnKTtcbiAgICAgICAgICAgIHRoaXMubGluZXMucHVzaCgnRU5EOlZDQVJEJyk7XG4gICAgICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdHJ1ZSBpZiB0aGlzIHZjYXJkIHNlZW1zIHRvIGhhdmUgdmFsaWQgZGF0YVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhXG4gICAgICovXG4gICAgcHVibGljIGlzVmFsaWQoKSB7XG4gICAgICAgIC8vIHJldHVybiB0aGlzLmxpbmVzIT1udWxsICYmIHRoaXMubGluZXMubGVuZ3RoO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5naXZlbm5hbWUgfHxcbiAgICAgICAgICAgIHRoaXMuc3VybmFtZSB8fFxuICAgICAgICAgICAgdGhpcy5vcmcgfHxcbiAgICAgICAgICAgIHRoaXMuc3RyZWV0IHx8XG4gICAgICAgICAgICB0aGlzLmNpdHkgfHxcbiAgICAgICAgICAgIHRoaXMuemlwIHx8XG4gICAgICAgICAgICB0aGlzLmNvdW50cnlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcHVibGljIHNldCBnaXZlbm5hbWUoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdHaXZlbm5hbWUnLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIHNldCBzdXJuYW1lKGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnU3VybmFtZScsIGRhdGEpO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHRpdGxlKGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnVElUTEUnLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIHNldCBvcmcoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdPUkcnLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIHNldCBvcmdQaG9uZShkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ1RFTDtUWVBFPVdPUkssVk9JQ0UnLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIHNldCB1cmwoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdVUkwnLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIHNldCBlbWFpbChkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ0VNQUlMO1RZUEU9UFJFRixJTlRFUk5FVCcsIGRhdGEpO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHVpZChkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ1VJRDp1cm46dXVpZCcsIGRhdGEpO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IG9yY2lkKGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnWC1PUkNJRCcsIGRhdGEpO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGduZHVyaShkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ1gtR05ELVVSSScsIGRhdGEpO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHJvcihkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ1gtUk9SJywgZGF0YSk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgd2lraWRhdGEoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdYLVdpa2lkYXRhJywgZGF0YSk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgc3RyZWV0KGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnQURSO1RZUEU9aW50bCxwb3N0YWwscGFyY2VsLHdvcmsnLCBkYXRhLCAyKTtcbiAgICB9XG4gICAgcHVibGljIHNldCBjaXR5KGRhdGE6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCgnQURSO1RZUEU9aW50bCxwb3N0YWwscGFyY2VsLHdvcmsnLCBkYXRhLCAzKTtcbiAgICB9XG4gICAgcHVibGljIHNldCByZWdpb24oZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdBRFI7VFlQRT1pbnRsLHBvc3RhbCxwYXJjZWwsd29yaycsIGRhdGEsIDQpO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHppcChkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ0FEUjtUWVBFPWludGwscG9zdGFsLHBhcmNlbCx3b3JrJywgZGF0YSwgNSk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgY291bnRyeShkYXRhOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoJ0FEUjtUWVBFPWludGwscG9zdGFsLHBhcmNlbCx3b3JrJywgZGF0YSwgNik7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgY29udHJpYnV0ZURhdGUoZGF0YTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KCdYLUVTLUxPTS1DT05UUklCVVRFLURBVEUnLCBkYXRhKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBnaXZlbm5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnR2l2ZW5uYW1lJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgc3VybmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdTdXJuYW1lJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgb3JjaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnWC1PUkNJRCcpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGduZHVyaSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdYLUdORC1VUkknKTtcbiAgICB9XG4gICAgcHVibGljIGdldCByb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnWC1ST1InKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB3aWtpZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdYLVdpa2lkYXRhJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnVElUTEUnKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBvcmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnT1JHJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY29udHJpYnV0ZURhdGUoKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0KCdYLUVTLUxPTS1DT05UUklCVVRFLURBVEUnKTtcbiAgICAgICAgaWYgKHN0cmluZykgcmV0dXJuIHN0cmluZy5zcGxpdCgnVCcpWzBdO1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdVUkwnKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBvcmdQaG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdURUw7VFlQRT1XT1JLLFZPSUNFJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZW1haWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnRU1BSUw7VFlQRT1QUkVGLElOVEVSTkVUJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdWlkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ1VJRDp1cm46dXVpZCcpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHN0cmVldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdBRFI7VFlQRT1pbnRsLHBvc3RhbCxwYXJjZWwsd29yaycsIDIpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGNpdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnQURSO1RZUEU9aW50bCxwb3N0YWwscGFyY2VsLHdvcmsnLCAzKTtcbiAgICB9XG4gICAgcHVibGljIGdldCByZWdpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnQURSO1RZUEU9aW50bCxwb3N0YWwscGFyY2VsLHdvcmsnLCA0KTtcbiAgICB9XG4gICAgcHVibGljIGdldCB6aXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnQURSO1RZUEU9aW50bCxwb3N0YWwscGFyY2VsLHdvcmsnLCA1KTtcbiAgICB9XG4gICAgcHVibGljIGdldCBjb3VudHJ5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ0FEUjtUWVBFPWludGwscG9zdGFsLHBhcmNlbCx3b3JrJywgNik7XG4gICAgfVxuICAgIHB1YmxpYyB0b1ZDYXJkU3RyaW5nKCkge1xuICAgICAgICAvLyB1bmFsdGVyZWQgLT4gc28gcmV0dXJuIGEgbnVsbCB2YWx1ZVxuICAgICAgICBpZiAoIXRoaXMuaXNEaXJ0eSkgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmICh0aGlzLmdldCgnR2l2ZW5uYW1lJykgfHwgdGhpcy5nZXQoJ1N1cm5hbWUnKSlcbiAgICAgICAgICAgIHRoaXMuc2V0KCdGTicsIHRoaXMuZ2V0KCdHaXZlbm5hbWUnLCAtMSwgJycpICsgJyAnICsgdGhpcy5nZXQoJ1N1cm5hbWUnLCAtMSwgJycpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubGluZXMuam9pbignXFxuJyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXREaXNwbGF5TmFtZSgpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID1cbiAgICAgICAgICAgICh0aGlzLnRpdGxlID8/ICcnKSArICcgJyArICh0aGlzLmdpdmVubmFtZSA/PyAnJykgKyAnICcgKyAodGhpcy5zdXJuYW1lID8/ICcnKTtcbiAgICAgICAgaWYgKHN0cmluZy50cmltKCkgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcmcgfHwgdGhpcy5nZXQoJ0ZOJykgfHwgJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG4gICAgcHVibGljIGdldChrZXk6IHN0cmluZywgc3BsaXRJbmRleCA9IC0xLCBmYWxsYmFjazogc3RyaW5nID0gbnVsbCkge1xuICAgICAgICBpZiAoa2V5ID09ICdTdXJuYW1lJykge1xuICAgICAgICAgICAgc3BsaXRJbmRleCA9IDA7XG4gICAgICAgICAgICBrZXkgPSAnTic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PSAnR2l2ZW5uYW1lJykge1xuICAgICAgICAgICAgc3BsaXRJbmRleCA9IDE7XG4gICAgICAgICAgICBrZXkgPSAnTic7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgbGluZSBvZiB0aGlzLmxpbmVzKSB7XG4gICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7XG4gICAgICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKGtleSArICc6JykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGxpbmUuc3Vic3RyaW5nKGtleS5sZW5ndGggKyAxKS50cmltKCk7XG4gICAgICAgICAgICAgICAgaWYgKHNwbGl0SW5kZXggIT0gLTEpIHJldHVybiB0aGlzLmRlRXNjYXBlKHZhbHVlLnNwbGl0KCc7Jylbc3BsaXRJbmRleF0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRlRXNjYXBlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsbGJhY2s7XG4gICAgfVxuICAgIHB1YmxpYyByZW1vdmUoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5saW5lc1tpXS5zdGFydHNXaXRoKGtleSArICc6JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIHNwbGl0SW5kZXggPSAtMSkge1xuICAgICAgICAvLyBubyB2YWx1ZSBhbmQgZW1wdHkgdmNhcmQgLT4gZG8gbm90aGluZ1xuICAgICAgICBpZiAoIXRoaXMuaXNEaXJ0eSAmJiAhdmFsdWUpIHJldHVybjtcbiAgICAgICAgaWYgKGtleSA9PSAnU3VybmFtZScpIHtcbiAgICAgICAgICAgIHNwbGl0SW5kZXggPSAwO1xuICAgICAgICAgICAga2V5ID0gJ04nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT0gJ0dpdmVubmFtZScpIHtcbiAgICAgICAgICAgIHNwbGl0SW5kZXggPSAxO1xuICAgICAgICAgICAga2V5ID0gJ04nO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgZm9yIChsZXQgbGluZSBvZiB0aGlzLmxpbmVzKSB7XG4gICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7XG4gICAgICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKGtleSArICc6JykpIHtcbiAgICAgICAgICAgICAgICBsZXQgbGluZVZhbHVlID0gbGluZS5zdWJzdHJpbmcoa2V5Lmxlbmd0aCArIDEpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICBpZiAoc3BsaXRJbmRleCAhPSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGxpdCA9IGxpbmVWYWx1ZS5zcGxpdCgnOycpO1xuICAgICAgICAgICAgICAgICAgICBzcGxpdFtzcGxpdEluZGV4XSA9IHRoaXMuZXNjYXBlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZVZhbHVlID0gc3BsaXQuam9pbignOycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVWYWx1ZSA9IHRoaXMuZXNjYXBlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lc1tpXSA9IGxpbmUuc3Vic3RyaW5nKDAsIGtleS5sZW5ndGggKyAxKSArIGxpbmVWYWx1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxpbmVWYWx1ZSA9IHRoaXMuZXNjYXBlKHZhbHVlKTtcbiAgICAgICAgaWYgKHNwbGl0SW5kZXggPj0gMCkge1xuICAgICAgICAgICAgbGluZVZhbHVlID0gJyc7XG4gICAgICAgICAgICB3aGlsZSAobGluZVZhbHVlLmxlbmd0aCA8IHNwbGl0SW5kZXgpIGxpbmVWYWx1ZSArPSAnOyc7XG4gICAgICAgICAgICBsaW5lVmFsdWUgKz0gdGhpcy5lc2NhcGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGluZXMuc3BsaWNlKHRoaXMuZ2V0TmV4dExpbmUoKSwgMCwga2V5ICsgJzonICsgbGluZVZhbHVlKTtcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5leHRMaW5lKCkge1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiB0aGlzLmxpbmVzKSB7XG4gICAgICAgICAgICBpZiAobGluZS50cmltKCkgPT0gJ0VORDpWQ0FSRCcpIHJldHVybiBpIC0gMTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5saW5lcy5sZW5ndGggLSAxO1xuICAgIH1cbiAgICBwcml2YXRlIGRlRXNjYXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiAnJztcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1xcXFxcXFxcL2csICdcXFxcJykucmVwbGFjZSgvXFxcXCwvZywgJywnKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBlc2NhcGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuICcnO1xuICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvXFxcXC9nLCAnXFxcXFxcXFwnKS5yZXBsYWNlKC8sL2csICdcXFxcLCcpLnJlcGxhY2UoLzsvZywgJyAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWQ2FyZCh0aGlzLnRvVkNhcmRTdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBwbHkgYWxsIGRhdGEgZnJvbSBhbiBvdGhlciB2Y2FyZCB0byB0aGlzIG9iamVjdFxuICAgICAqIEBwYXJhbSBvdGhlclxuICAgICAqL1xuICAgIHB1YmxpYyBhcHBseShvdGhlcjogVkNhcmQpIHtcbiAgICAgICAgdGhpcy5saW5lcyA9IG90aGVyLmxpbmVzO1xuICAgIH1cblxuICAgIGdldFR5cGUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpXG4gICAgICAgICAgICA/IHRoaXMuZ2l2ZW5uYW1lIHx8IHRoaXMuc3VybmFtZVxuICAgICAgICAgICAgICAgID8gVkNhcmQuVFlQRV9QRVJTT05cbiAgICAgICAgICAgICAgICA6IFZDYXJkLlRZUEVfT1JHXG4gICAgICAgICAgICA6IFZDYXJkLlRZUEVfUEVSU09OO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- export * from './module';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVkdS1zaGFyaW5nLXVpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL25neC1lZHUtc2hhcmluZy11aS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XG4iXX0=
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVkdS1zaGFyaW5nLXVpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL25neC1lZHUtc2hhcmluZy11aS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './lib/index';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW5kZXgnO1xuIl19