@sbb-esta/lyne-elements-dev 4.11.0-dev.1776937132 → 4.11.0-dev.1776937282

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 (55) hide show
  1. package/custom-elements.json +417 -417
  2. package/development/block-link-common-COY1RI1I.js +1 -1
  3. package/development/breadcrumb-group.component-DZslNBlB.js +1 -1
  4. package/development/button-common-7dmrUx4A.js +1 -1
  5. package/development/calendar-cell-base-element-BXohfDSl.js +1 -1
  6. package/development/calendar.component-Dg3D2A7k.js +1 -1
  7. package/development/card-action-common-1FDHbfeR.js +1 -1
  8. package/development/carousel-list.component-L-nYpHcN.js +1 -1
  9. package/development/carousel.component-Dl48ROSf.js +1 -1
  10. package/development/checkbox-common-Dd5uup8K.js +1 -1
  11. package/development/checkbox-group/checkbox-group.component.js +1 -1
  12. package/development/chip-group.component-BVfHWX2-.js +1 -1
  13. package/development/core/a11y/input-modality-detector.js +1 -1
  14. package/development/core/base-elements/element.js +1 -1
  15. package/development/core/controllers/media-matchers-controller.js +1 -1
  16. package/development/core/datetime/date-adapter.js +1 -1
  17. package/development/core/datetime/native-date-adapter.js +1 -1
  18. package/development/core/datetime/temporal-date-adapter.js +1 -1
  19. package/development/core/mixins/disabled-mixin.js +1 -1
  20. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  21. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  22. package/development/core/mixins/form-associated-mixin.js +1 -1
  23. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  24. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  25. package/development/core/mixins/negative-mixin.js +1 -1
  26. package/development/core/mixins/readonly-mixin.js +1 -1
  27. package/development/core/mixins/required-mixin.js +1 -1
  28. package/development/core/testing/event-spy.js +1 -1
  29. package/development/datepicker-button-CUPeoQgH.js +1 -1
  30. package/development/file-selector-common-C82QR3zb.js +1 -1
  31. package/development/header-action-common-MTYV0dqA.js +1 -1
  32. package/development/icon/icon-name-mixin.js +1 -1
  33. package/development/image.component-BD0jc-u-.js +1 -1
  34. package/development/link-common-DJ2FfG_Q.js +1 -1
  35. package/development/link-list-base-CKMNz30d.js +1 -1
  36. package/development/mini-calendar.component-BufzKw74.js +1 -1
  37. package/development/navigation-action-common-Hjr4dI9J.js +1 -1
  38. package/development/navigation-section.component-CnVrRETN.js +1 -1
  39. package/development/navigation.component-CTNQ1dix.js +1 -1
  40. package/development/option/option/option-base-element.js +1 -1
  41. package/development/paginator/common/paginator-common.js +1 -1
  42. package/development/panel-mixin-Dj_rsgL9.js +1 -1
  43. package/development/popover.component-BCMdJBUR.js +1 -1
  44. package/development/radio-button-common--d3WX-ZM.js +1 -1
  45. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  46. package/development/sidebar-container.component-BDSoDAym.js +1 -1
  47. package/development/sidebar.component-BLqO52nH.js +1 -1
  48. package/development/stepper.component-CxOBayI1.js +1 -1
  49. package/development/sticky-bar.component-Dzrdsnxu.js +1 -1
  50. package/development/styles-D8-q-irv.js +1 -1
  51. package/development/tab-group.component-DldBA45K.js +1 -1
  52. package/development/teaser-product-common-DYX370pm.js +1 -1
  53. package/development/time-input.component-BtdSR8kB.js +1 -1
  54. package/development/toggle.component-BJpD1b9H.js +1 -1
  55. package/package.json +2 -2
@@ -148,4 +148,4 @@ var DateAdapter = class {
148
148
  //#endregion
149
149
  export { DAYS_PER_ROW, DateAdapter, FORMAT_DATE, FRIDAY, ISO8601_FORMAT_DATE, MONDAY, MONTHS_PER_PAGE, MONTHS_PER_ROW, SATURDAY, SUNDAY, THURSDAY, TUESDAY, WEDNESDAY, YEARS_PER_PAGE, YEARS_PER_ROW };
150
150
 
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRk9STUFUX0RBVEUgPVxuICAvKDA/WzEtOV18WzEyXVswLTldfDNbMDFdKVsuLFxcXFwvXFwtXFxzXSgwP1sxLTldfDFbMC0yXSlbLixcXFxcL1xcLVxcc10oWzAtOV17MSw0fSQpPy87XG5leHBvcnQgY29uc3QgSVNPODYwMV9GT1JNQVRfREFURSA9IC9eKFswLTldezR9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMS0zXVswLTldKSQvO1xuZXhwb3J0IGNvbnN0IE1PTkRBWSA9IDE7XG5leHBvcnQgY29uc3QgVFVFU0RBWSA9IDI7XG5leHBvcnQgY29uc3QgV0VETkVTREFZID0gMztcbmV4cG9ydCBjb25zdCBUSFVSU0RBWSA9IDQ7XG5leHBvcnQgY29uc3QgRlJJREFZID0gNTtcbmV4cG9ydCBjb25zdCBTQVRVUkRBWSA9IDY7XG5leHBvcnQgY29uc3QgU1VOREFZID0gMDtcblxuLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBNb3ZlIHRoZXNlIHZhcmlhYmxlcyB0byBjYWxlbmRhclxuZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IE1PTlRIU19QRVJfUEFHRTogbnVtYmVyID0gMTI7XG5leHBvcnQgY29uc3QgWUVBUlNfUEVSX1BBR0U6IG51bWJlciA9IDI0O1xuXG4vKipcbiAqIEFic3RyYWN0IGRhdGUgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL21hdGVyaWFsL2NvcmUvZGF0ZXRpbWUvZGF0ZS1hZGFwdGVyLnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlQWRhcHRlcjxUID0gYW55PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1dG9mZlllYXJPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIGN1dG9mZlllYXJPZmZzZXQgVGhlIHRocmVzaG9sZCBvbiB3aGV0aGVyIGEgdHdvLWRpZ2l0IHllYXJcbiAgICogc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmVsb25naW5nIHRvIDIwMDAgb3IgMTkwMC4gZS5nLiB3aXRoIDE1IChkZWZhdWx0KVxuICAgKiB0aGUgY3VycmVudCB5ZWFyIHBsdXMgMTUgd2lsbCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwLCBhbmQgdGhlIHJlc3QgdG8gMTkwMC5cbiAgICogU28gZS5nLiB3aXRoIHRoZSBjdXJyZW50IHllYXIgMjAyNSwgNDAgd2lsbCBiZSB0cmVhdGVkIGFzIDIwNDAsIHdoaWxlIDQxIHdpbGwgYmUgdHJlYXRlZCBhcyAxOTQxLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGN1dG9mZlllYXJPZmZzZXQ6IG51bWJlciA9IDE1KSB7XG4gICAgdGhpcy5fY3V0b2ZmWWVhck9mZnNldCA9IGN1dG9mZlllYXJPZmZzZXQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFllYXIoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQXR0ZW50aW9uOiBUaGlzIHJldHVybnMgMS0xMiBhbmQgbWl0aWdhdGVzIHRoZSBkZWZhdWx0IEphdmFTY3JpcHQgRGF0ZSBiZWhhdmlvci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZShkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIERheSBvZiB0aGUgd2VlayBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWsoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKiogR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE51bURheXNJbk1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSBtb250aHMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqIEdldCBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlTmFtZXMoKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSB3ZWVrIGRheXMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIGFic3RyYWN0IHRvZGF5KCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gYGRhdGVgIGlzIHZhbGlkLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzVmFsaWQoZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF5XG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxuICAgKiBkZXNlcmlhbGl6ZSBzaG91bGQgb25seSBhY2NlcHQgbm9uLWFtYmlndW91cywgbG9jYWxlLWluZGVwZW5kZW50IGZvcm1hdHMgKGUuZy4gYSBJU08gODYwMVxuICAgKiBzdHJpbmcpLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBhbGxvdyBhbnkgZGVzZXJpYWxpemF0aW9uLCBpdCBzaW1wbHkgY2hlY2tzIHRoYXRcbiAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLlxuICAgKiBAcGFyYW0gdmFsdWUgRWl0aGVyIGEgZGF0ZSBvYmplY3QsIElTTyBzdHJpbmcgb3IgYW4gZW1wdHkgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBkYXRlIGlmIHRoZSBpbnB1dCBpcyB2YWxpZCwgYG51bGxgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBkZXNlcmlhbGl6ZSh2YWx1ZTogVCB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBUIHwgbnVsbCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgPT0gbnVsbCB8fFxuICAgICAgKHRoaXMuaXNEYXRlSW5zdGFuY2UodmFsdWUpICYmIHRoaXMuaXNWYWxpZCh2YWx1ZSBhcyBUIHwgbnVsbCB8IHVuZGVmaW5lZCkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdmFsdWUgYXMgVCB8IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmludmFsaWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogVCwgeWVhcnM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIG1vbnRocyBUaGUgbnVtYmVyIG9mIG1vbnRocyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogVCwgbW9udGhzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gZGF5cyBUaGUgbnVtYmVyIG9mIGRheXMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyRGF5cyhkYXRlOiBULCBkYXlzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRhdGUgaW4gdGhlIGxvY2FsIGZvcm1hdC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gZm9ybWF0XG4gICAqIEByZXR1cm5zIFRoZSBgZGF0ZWAgaW4gdGhlIGxvY2FsIGZvcm1hdCBhcyBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWNjZXNzaWJpbGl0eUZvcm1hdERhdGUoZGF0ZTogVCB8IHN0cmluZyk6IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IHRoZSBnaXZlbiBzdHJpbmcgYXMgRGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBkYXRlIGluIHRoZSBmb3JtYXQgREQuTU0uWVlZWS5cbiAgICovXG4gIHB1YmxpYyBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZTogVCB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IGlzb01hdGNoID0gdmFsdWUubWF0Y2goSVNPODYwMV9GT1JNQVRfREFURSk7XG4gICAgdHJ5IHtcbiAgICAgIGRhdGUgPSBpc29NYXRjaCA/IHRoaXMuY3JlYXRlRGF0ZSgraXNvTWF0Y2hbMV0sICtpc29NYXRjaFsyXSwgK2lzb01hdGNoWzNdKSA6IG51bGw7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBlbXB0eSAqL1xuICAgIH1cbiAgICBpZiAodGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpcHBlZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFxEL2csICcgJykudHJpbSgpO1xuXG4gICAgY29uc3QgbWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHwgdW5kZWZpbmVkID0gc3RyaXBwZWRWYWx1ZT8ubWF0Y2goRk9STUFUX0RBVEUpO1xuICAgIGlmIChcbiAgICAgICFtYXRjaCB8fFxuICAgICAgbWF0Y2guaW5kZXggIT09IDAgfHxcbiAgICAgIG1hdGNoLmxlbmd0aCA8PSAyIHx8XG4gICAgICBtYXRjaC5zb21lKChlKSA9PiBlID09PSB1bmRlZmluZWQpIHx8XG4gICAgICAhdGhpcy5pc1ZhbGlkKHRoaXMuY3JlYXRlRGF0ZSgrbWF0Y2hbM10sICttYXRjaFsyXSwgK21hdGNoWzFdKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSB0aGlzLmdldFllYXIodGhpcy50b2RheSgpKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGUoeWVhciwgK21hdGNoWzJdLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgZ2l2ZW4gZGF0ZSBhcyBzdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBvYmplY3Qgd2l0aCB3ZWVrZGF5U3R5bGUgYXMgcHJvcGVydHlcbiAgICovXG4gIHB1YmxpYyBmb3JtYXQoXG4gICAgZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IHsgd2Vla2RheVN0eWxlPzogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnIHwgJ25vbmUnIH0sXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBEYXRlKHRoaXMudG9Jc284NjAxKGRhdGUhKSArICdUMDA6MDA6MDAnKTtcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2RlLUNIJywge1xuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnM/LndlZWtkYXlTdHlsZSA9PT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdlZWtkYXlTdHlsZSA9IG9wdGlvbnM/LndlZWtkYXlTdHlsZSA/PyAnc2hvcnQnO1xuICAgIGxldCB3ZWVrZGF5ID0gdGhpcy5nZXREYXlPZldlZWtOYW1lcyh3ZWVrZGF5U3R5bGUpW3RoaXMuZ2V0RGF5T2ZXZWVrKGRhdGUhKV07XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LnN1YnN0cmluZygxKTtcbiAgICAvLyBXZSBoYXZlIHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50IGZvciBkYXRlIGZvcm1hdHMgYXQgU0JCLCB3aGVyZSB0aGUgc2hvcnQgZm9ybVxuICAgIC8vIGZvciB3ZWVrZGF5cyBzaG91bGQgYmUgdHdvIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICAgIGlmICh3ZWVrZGF5U3R5bGUgPT09ICdzaG9ydCcpIHtcbiAgICAgIHdlZWtkYXkgPSB3ZWVrZGF5LnN1YnN0cmluZygwLCAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7d2Vla2RheX0sICR7ZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKDcgKyB0aGlzLmdldERheU9mV2VlayhmaXJzdE9mTW9udGgpIC0gdGhpcy5nZXRGaXJzdERheU9mV2VlaygpKSAlIDc7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IGRhdGUgaXMgbGF0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZURhdGUoZmlyc3Q6IFQsIHNlY29uZDogVCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0WWVhcihmaXJzdCkgLSB0aGlzLmdldFllYXIoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXRNb250aChmaXJzdCkgLSB0aGlzLmdldE1vbnRoKHNlY29uZCkgfHxcbiAgICAgIHRoaXMuZ2V0RGF0ZShmaXJzdCkgLSB0aGlzLmdldERhdGUoc2Vjb25kKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIGRhdGVzIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIG90aGVyIG51bGwgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgc2FtZURhdGUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgY29uc3QgZmlyc3RWYWxpZCA9IHRoaXMuaXNWYWxpZChmaXJzdCk7XG4gICAgICBjb25zdCBzZWNvbmRWYWxpZCA9IHRoaXMuaXNWYWxpZChzZWNvbmQpO1xuICAgICAgaWYgKGZpcnN0VmFsaWQgJiYgc2Vjb25kVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpcnN0VmFsaWQgPT0gc2Vjb25kVmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xhbXAgdGhlIGdpdmVuIGRhdGUgYmV0d2VlbiBtaW4gYW5kIG1heCBkYXRlcy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY2xhbXAuXG4gICAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtaW4gaXMgZW5mb3JjZWQuXG4gICAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtYXggaXMgZW5mb3JjZWQuXG4gICAqIEByZXR1cm5zIGBtaW5gIGlmIGBkYXRlYCBpcyBsZXNzIHRoYW4gYG1pbmAsIGBtYXhgIGlmIGRhdGUgaXMgZ3JlYXRlciB0aGFuIGBtYXhgLFxuICAgKiAgICAgb3RoZXJ3aXNlIGBkYXRlYC5cbiAgICovXG4gIHB1YmxpYyBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVEYXRlKGRhdGUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFhLGNBQ1g7QUFDRixJQUFhLHNCQUFzQjtBQUNuQyxJQUFhLFNBQVM7QUFDdEIsSUFBYSxVQUFVO0FBQ3ZCLElBQWEsWUFBWTtBQUN6QixJQUFhLFdBQVc7QUFDeEIsSUFBYSxTQUFTO0FBQ3RCLElBQWEsV0FBVztBQUN4QixJQUFhLFNBQVM7QUFHdEIsSUFBYSxlQUF1QjtBQUNwQyxJQUFhLGlCQUF5QjtBQUN0QyxJQUFhLGdCQUF3QjtBQUNyQyxJQUFhLGtCQUEwQjtBQUN2QyxJQUFhLGlCQUF5Qjs7Ozs7O0FBT3RDLElBQXNCLGNBQXRCLE1BQWlDOzs7Ozs7O0NBUy9CLFlBQW1CLG1CQUEyQixJQUFFO0FBQzlDLE9BQUssb0JBQW9COzs7Ozs7Ozs7O0NBbUZwQixZQUFZLE9BQW9DO0FBQ3JELE1BQ0UsU0FBUyxRQUNSLEtBQUssZUFBZSxNQUFNLElBQUksS0FBSyxRQUFRLE1BQThCLENBRTFFLFFBQU87QUFFVCxTQUFPLEtBQUssU0FBUzs7Ozs7O0NBcUNoQixNQUFNLE9BQWdDO0FBQzNDLE1BQUksQ0FBQyxNQUNILFFBQU87RUFHVCxJQUFJLE9BQWlCO0VBQ3JCLE1BQU0sV0FBVyxNQUFNLE1BQU0sb0JBQW9CO0FBQ2pELE1BQUk7QUFDRixVQUFPLFdBQVcsS0FBSyxXQUFXLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUc7VUFDeEU7QUFHUixNQUFJLEtBQUssUUFBUSxLQUFLLENBQ3BCLFFBQU87RUFLVCxNQUFNLFFBRmdCLE1BQU0sUUFBUSxPQUFPLElBQUksQ0FBQyxNQUFNLEVBRVksTUFBTSxZQUFZO0FBQ3BGLE1BQ0UsQ0FBQyxTQUNE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
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRk9STUFUX0RBVEUgPVxuICAvKDA/WzEtOV18WzEyXVswLTldfDNbMDFdKVsuLFxcXFwvXFwtXFxzXSgwP1sxLTldfDFbMC0yXSlbLixcXFxcL1xcLVxcc10oWzAtOV17MSw0fSQpPy87XG5leHBvcnQgY29uc3QgSVNPODYwMV9GT1JNQVRfREFURSA9IC9eKFswLTldezR9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMS0zXVswLTldKSQvO1xuZXhwb3J0IGNvbnN0IE1PTkRBWSA9IDE7XG5leHBvcnQgY29uc3QgVFVFU0RBWSA9IDI7XG5leHBvcnQgY29uc3QgV0VETkVTREFZID0gMztcbmV4cG9ydCBjb25zdCBUSFVSU0RBWSA9IDQ7XG5leHBvcnQgY29uc3QgRlJJREFZID0gNTtcbmV4cG9ydCBjb25zdCBTQVRVUkRBWSA9IDY7XG5leHBvcnQgY29uc3QgU1VOREFZID0gMDtcblxuLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBNb3ZlIHRoZXNlIHZhcmlhYmxlcyB0byBjYWxlbmRhclxuZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IE1PTlRIU19QRVJfUEFHRTogbnVtYmVyID0gMTI7XG5leHBvcnQgY29uc3QgWUVBUlNfUEVSX1BBR0U6IG51bWJlciA9IDI0O1xuXG4vKipcbiAqIEFic3RyYWN0IGRhdGUgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL21hdGVyaWFsL2NvcmUvZGF0ZXRpbWUvZGF0ZS1hZGFwdGVyLnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlQWRhcHRlcjxUID0gYW55PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1dG9mZlllYXJPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIGN1dG9mZlllYXJPZmZzZXQgVGhlIHRocmVzaG9sZCBvbiB3aGV0aGVyIGEgdHdvLWRpZ2l0IHllYXJcbiAgICogc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmVsb25naW5nIHRvIDIwMDAgb3IgMTkwMC4gZS5nLiB3aXRoIDE1IChkZWZhdWx0KVxuICAgKiB0aGUgY3VycmVudCB5ZWFyIHBsdXMgMTUgd2lsbCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwLCBhbmQgdGhlIHJlc3QgdG8gMTkwMC5cbiAgICogU28gZS5nLiB3aXRoIHRoZSBjdXJyZW50IHllYXIgMjAyNSwgNDAgd2lsbCBiZSB0cmVhdGVkIGFzIDIwNDAsIHdoaWxlIDQxIHdpbGwgYmUgdHJlYXRlZCBhcyAxOTQxLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGN1dG9mZlllYXJPZmZzZXQ6IG51bWJlciA9IDE1KSB7XG4gICAgdGhpcy5fY3V0b2ZmWWVhck9mZnNldCA9IGN1dG9mZlllYXJPZmZzZXQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFllYXIoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQXR0ZW50aW9uOiBUaGlzIHJldHVybnMgMS0xMiBhbmQgbWl0aWdhdGVzIHRoZSBkZWZhdWx0IEphdmFTY3JpcHQgRGF0ZSBiZWhhdmlvci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZShkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIERheSBvZiB0aGUgd2VlayBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWsoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKiogR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE51bURheXNJbk1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSBtb250aHMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqIEdldCBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlTmFtZXMoKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSB3ZWVrIGRheXMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIGFic3RyYWN0IHRvZGF5KCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gYGRhdGVgIGlzIHZhbGlkLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzVmFsaWQoZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF5XG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxuICAgKiBkZXNlcmlhbGl6ZSBzaG91bGQgb25seSBhY2NlcHQgbm9uLWFtYmlndW91cywgbG9jYWxlLWluZGVwZW5kZW50IGZvcm1hdHMgKGUuZy4gYSBJU08gODYwMVxuICAgKiBzdHJpbmcpLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBhbGxvdyBhbnkgZGVzZXJpYWxpemF0aW9uLCBpdCBzaW1wbHkgY2hlY2tzIHRoYXRcbiAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLlxuICAgKiBAcGFyYW0gdmFsdWUgRWl0aGVyIGEgZGF0ZSBvYmplY3QsIElTTyBzdHJpbmcgb3IgYW4gZW1wdHkgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBkYXRlIGlmIHRoZSBpbnB1dCBpcyB2YWxpZCwgYG51bGxgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBkZXNlcmlhbGl6ZSh2YWx1ZTogVCB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBUIHwgbnVsbCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgPT0gbnVsbCB8fFxuICAgICAgKHRoaXMuaXNEYXRlSW5zdGFuY2UodmFsdWUpICYmIHRoaXMuaXNWYWxpZCh2YWx1ZSBhcyBUIHwgbnVsbCB8IHVuZGVmaW5lZCkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdmFsdWUgYXMgVCB8IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmludmFsaWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogVCwgeWVhcnM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIG1vbnRocyBUaGUgbnVtYmVyIG9mIG1vbnRocyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogVCwgbW9udGhzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gZGF5cyBUaGUgbnVtYmVyIG9mIGRheXMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyRGF5cyhkYXRlOiBULCBkYXlzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRhdGUgaW4gdGhlIGxvY2FsIGZvcm1hdC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gZm9ybWF0XG4gICAqIEByZXR1cm5zIFRoZSBgZGF0ZWAgaW4gdGhlIGxvY2FsIGZvcm1hdCBhcyBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWNjZXNzaWJpbGl0eUZvcm1hdERhdGUoZGF0ZTogVCB8IHN0cmluZyk6IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IHRoZSBnaXZlbiBzdHJpbmcgYXMgRGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBkYXRlIGluIHRoZSBmb3JtYXQgREQuTU0uWVlZWS5cbiAgICovXG4gIHB1YmxpYyBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZTogVCB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IGlzb01hdGNoID0gdmFsdWUubWF0Y2goSVNPODYwMV9GT1JNQVRfREFURSk7XG4gICAgdHJ5IHtcbiAgICAgIGRhdGUgPSBpc29NYXRjaCA/IHRoaXMuY3JlYXRlRGF0ZSgraXNvTWF0Y2hbMV0sICtpc29NYXRjaFsyXSwgK2lzb01hdGNoWzNdKSA6IG51bGw7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBlbXB0eSAqL1xuICAgIH1cbiAgICBpZiAodGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpcHBlZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFxEL2csICcgJykudHJpbSgpO1xuXG4gICAgY29uc3QgbWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHwgdW5kZWZpbmVkID0gc3RyaXBwZWRWYWx1ZT8ubWF0Y2goRk9STUFUX0RBVEUpO1xuICAgIGlmIChcbiAgICAgICFtYXRjaCB8fFxuICAgICAgbWF0Y2guaW5kZXggIT09IDAgfHxcbiAgICAgIG1hdGNoLmxlbmd0aCA8PSAyIHx8XG4gICAgICBtYXRjaC5zb21lKChlKSA9PiBlID09PSB1bmRlZmluZWQpIHx8XG4gICAgICAhdGhpcy5pc1ZhbGlkKHRoaXMuY3JlYXRlRGF0ZSgrbWF0Y2hbM10sICttYXRjaFsyXSwgK21hdGNoWzFdKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSB0aGlzLmdldFllYXIodGhpcy50b2RheSgpKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGUoeWVhciwgK21hdGNoWzJdLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgZ2l2ZW4gZGF0ZSBhcyBzdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBvYmplY3Qgd2l0aCB3ZWVrZGF5U3R5bGUgYXMgcHJvcGVydHlcbiAgICovXG4gIHB1YmxpYyBmb3JtYXQoXG4gICAgZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IHsgd2Vla2RheVN0eWxlPzogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnIHwgJ25vbmUnIH0sXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBEYXRlKHRoaXMudG9Jc284NjAxKGRhdGUhKSArICdUMDA6MDA6MDAnKTtcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2RlLUNIJywge1xuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnM/LndlZWtkYXlTdHlsZSA9PT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdlZWtkYXlTdHlsZSA9IG9wdGlvbnM/LndlZWtkYXlTdHlsZSA/PyAnc2hvcnQnO1xuICAgIGxldCB3ZWVrZGF5ID0gdGhpcy5nZXREYXlPZldlZWtOYW1lcyh3ZWVrZGF5U3R5bGUpW3RoaXMuZ2V0RGF5T2ZXZWVrKGRhdGUhKV07XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LnN1YnN0cmluZygxKTtcbiAgICAvLyBXZSBoYXZlIHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50IGZvciBkYXRlIGZvcm1hdHMgYXQgU0JCLCB3aGVyZSB0aGUgc2hvcnQgZm9ybVxuICAgIC8vIGZvciB3ZWVrZGF5cyBzaG91bGQgYmUgdHdvIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICAgIGlmICh3ZWVrZGF5U3R5bGUgPT09ICdzaG9ydCcpIHtcbiAgICAgIHdlZWtkYXkgPSB3ZWVrZGF5LnN1YnN0cmluZygwLCAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7d2Vla2RheX0sICR7ZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKDcgKyB0aGlzLmdldERheU9mV2VlayhmaXJzdE9mTW9udGgpIC0gdGhpcy5nZXRGaXJzdERheU9mV2VlaygpKSAlIDc7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IGRhdGUgaXMgbGF0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZURhdGUoZmlyc3Q6IFQsIHNlY29uZDogVCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0WWVhcihmaXJzdCkgLSB0aGlzLmdldFllYXIoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXRNb250aChmaXJzdCkgLSB0aGlzLmdldE1vbnRoKHNlY29uZCkgfHxcbiAgICAgIHRoaXMuZ2V0RGF0ZShmaXJzdCkgLSB0aGlzLmdldERhdGUoc2Vjb25kKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIGRhdGVzIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIG90aGVyIG51bGwgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgc2FtZURhdGUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgY29uc3QgZmlyc3RWYWxpZCA9IHRoaXMuaXNWYWxpZChmaXJzdCk7XG4gICAgICBjb25zdCBzZWNvbmRWYWxpZCA9IHRoaXMuaXNWYWxpZChzZWNvbmQpO1xuICAgICAgaWYgKGZpcnN0VmFsaWQgJiYgc2Vjb25kVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpcnN0VmFsaWQgPT0gc2Vjb25kVmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xhbXAgdGhlIGdpdmVuIGRhdGUgYmV0d2VlbiBtaW4gYW5kIG1heCBkYXRlcy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY2xhbXAuXG4gICAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtaW4gaXMgZW5mb3JjZWQuXG4gICAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtYXggaXMgZW5mb3JjZWQuXG4gICAqIEByZXR1cm5zIGBtaW5gIGlmIGBkYXRlYCBpcyBsZXNzIHRoYW4gYG1pbmAsIGBtYXhgIGlmIGRhdGUgaXMgZ3JlYXRlciB0aGFuIGBtYXhgLFxuICAgKiAgICAgb3RoZXJ3aXNlIGBkYXRlYC5cbiAgICovXG4gIHB1YmxpYyBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVEYXRlKGRhdGUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFhLGNBQ1g7QUFDRixJQUFhLHNCQUFzQjtBQUNuQyxJQUFhLFNBQVM7QUFDdEIsSUFBYSxVQUFVO0FBQ3ZCLElBQWEsWUFBWTtBQUN6QixJQUFhLFdBQVc7QUFDeEIsSUFBYSxTQUFTO0FBQ3RCLElBQWEsV0FBVztBQUN4QixJQUFhLFNBQVM7QUFHdEIsSUFBYSxlQUF1QjtBQUNwQyxJQUFhLGlCQUF5QjtBQUN0QyxJQUFhLGdCQUF3QjtBQUNyQyxJQUFhLGtCQUEwQjtBQUN2QyxJQUFhLGlCQUF5Qjs7Ozs7O0FBT3RDLElBQXNCLGNBQXRCLE1BQWlDOzs7Ozs7O0NBUy9CLFlBQW1CLG1CQUEyQixJQUFFO0FBQzlDLE9BQUssb0JBQW9COzs7Ozs7Ozs7O0NBbUZwQixZQUFZLE9BQW9DO0FBQ3JELE1BQ0UsU0FBUyxRQUNSLEtBQUssZUFBZSxNQUFNLElBQUksS0FBSyxRQUFRLE1BQThCLENBRTFFLFFBQU87QUFFVCxTQUFPLEtBQUssU0FBUzs7Ozs7O0NBcUNoQixNQUFNLE9BQWdDO0FBQzNDLE1BQUksQ0FBQyxNQUNILFFBQU87RUFHVCxJQUFJLE9BQWlCO0VBQ3JCLE1BQU0sV0FBVyxNQUFNLE1BQU0sb0JBQW9CO0FBQ2pELE1BQUk7QUFDRixVQUFPLFdBQVcsS0FBSyxXQUFXLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUc7VUFDeEU7QUFHUixNQUFJLEtBQUssUUFBUSxLQUFLLENBQ3BCLFFBQU87RUFLVCxNQUFNLFFBRmdCLE1BQU0sUUFBUSxPQUFPLElBQUksQ0FBQyxNQUVHLEVBQWUsTUFBTSxZQUFZO0FBQ3BGLE1BQ0UsQ0FBQyxTQUNE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
@@ -141,4 +141,4 @@ var defaultDateAdapter = new NativeDateAdapter();
141
141
  //#endregion
142
142
  export { NativeDateAdapter, defaultDateAdapter };
143
143
 
144
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS9uYXRpdmUtZGF0ZS1hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtYWRhcHRlci50cyc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbmQgd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmVzIHdoaWNoIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvKiogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBnaXZlbiB0aGUgeWVhciBhbmQgdGhlIG1vbnRoLiAqL1xuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcihkYXRlKSwgdGhpcy5nZXRNb250aChkYXRlKSwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0SG91cnMoMCwgMCwgMCwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IERhdGUge1xuICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyIGNyZWF0aW5nIHRoZSBEYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIgZm9yIG1vbnRoIFwiJHttb250aH1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuICovXG4gIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBEYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGRhdGUgaXMgRGF0ZSB7XG4gICAgcmV0dXJuICEhZGF0ZSAmJiAhaXNOYU4oZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF0ZSwgeWVhcnM6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKGRhdGUsIHllYXJzICogMTIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXRlLCBtb250aHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHRhcmdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgbW9udGhzO1xuICAgIGNvbnN0IGRhdGVXaXRoQ29ycmVjdE1vbnRoID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCB0YXJnZXRNb250aCwgMSwgMCwgMCwgMCwgMCk7XG4gICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmdldE51bURheXNJbk1vbnRoKGRhdGVXaXRoQ29ycmVjdE1vbnRoKTtcbiAgICAvLyBBZGFwdCB0aGUgbGFzdCBkYXkgb2YgbW9udGggZm9yIHNob3J0ZXIgbW9udGhzXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2xvbmUoZGF0ZSkuc2V0TW9udGgodGFyZ2V0TW9udGgsIE1hdGgubWluKGRheXNJbk1vbnRoLCBkYXRlLmdldERhdGUoKSkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0RGF5ID0gZGF0ZS5nZXREYXRlKCkgKyBkYXlzO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgdGFyZ2V0RGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKERhdGUgb3IgSVNPIHN0cmluZykuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgLy8gVGhlIGBEYXRlYCBjb25zdHJ1Y3RvciBhY2NlcHRzIGZvcm1hdHMgb3RoZXIgdGhhbiBJU08gODYwMSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlXG4gICAgICAgIC8vIHN0cmluZyBpcyB0aGUgcmlnaHQgZm9ybWF0IGZpcnN0LlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZERhdGVPck51bGwobmV3IERhdGUoZGF0ZS5pbmNsdWRlcygnVCcpID8gZGF0ZSA6IGRhdGUgKyAnVDAwOjAwOjAwJykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBkYXRlIGJ1dCBhbGxvd3MgdGhlIG1vbnRoIGFuZCBkYXRlIHRvIG92ZXJmbG93LiAqL1xuICBwcml2YXRlIF9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUpO1xuICAgIC8vIFdlIG5lZWQgdG8gY29ycmVjdCBmb3IgdGhlIGZhY3QgdGhhdCBKUyBuYXRpdmUgRGF0ZSB0cmVhdHMgeWVhcnMgaW4gcmFuZ2UgWzAsIDk5XSBhc1xuICAgIC8vIGFiYnJldmlhdGlvbnMgZm9yIDE5eHguXG4gICAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgICByZXN1bHQuc2V0RnVsbFllYXIodGhpcy5nZXRZZWFyKHJlc3VsdCkgLSAxOTAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGVBZGFwdGVyID0gbmV3IE5hdGl2ZURhdGVBZGFwdGVyKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBU0EsSUFBTSxpQkFDSjtBQUVGLElBQWEsb0JBQWIsY0FBdUMsWUFBaUI7O0NBRS9DLFFBQVEsTUFBVTtBQUN2QixTQUFPLEtBQUssYUFBYTs7O0NBSXBCLFNBQVMsTUFBVTtBQUN4QixTQUFPLEtBQUssVUFBVSxHQUFHOzs7Q0FJcEIsUUFBUSxNQUFVO0FBQ3ZCLFNBQU8sS0FBSyxTQUFT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
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS9uYXRpdmUtZGF0ZS1hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtYWRhcHRlci50cyc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbmQgd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmVzIHdoaWNoIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvKiogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBnaXZlbiB0aGUgeWVhciBhbmQgdGhlIG1vbnRoLiAqL1xuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcihkYXRlKSwgdGhpcy5nZXRNb250aChkYXRlKSwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0SG91cnMoMCwgMCwgMCwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IERhdGUge1xuICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyIGNyZWF0aW5nIHRoZSBEYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIgZm9yIG1vbnRoIFwiJHttb250aH1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuICovXG4gIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBEYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGRhdGUgaXMgRGF0ZSB7XG4gICAgcmV0dXJuICEhZGF0ZSAmJiAhaXNOYU4oZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF0ZSwgeWVhcnM6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKGRhdGUsIHllYXJzICogMTIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXRlLCBtb250aHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHRhcmdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgbW9udGhzO1xuICAgIGNvbnN0IGRhdGVXaXRoQ29ycmVjdE1vbnRoID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCB0YXJnZXRNb250aCwgMSwgMCwgMCwgMCwgMCk7XG4gICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmdldE51bURheXNJbk1vbnRoKGRhdGVXaXRoQ29ycmVjdE1vbnRoKTtcbiAgICAvLyBBZGFwdCB0aGUgbGFzdCBkYXkgb2YgbW9udGggZm9yIHNob3J0ZXIgbW9udGhzXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2xvbmUoZGF0ZSkuc2V0TW9udGgodGFyZ2V0TW9udGgsIE1hdGgubWluKGRheXNJbk1vbnRoLCBkYXRlLmdldERhdGUoKSkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0RGF5ID0gZGF0ZS5nZXREYXRlKCkgKyBkYXlzO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgdGFyZ2V0RGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKERhdGUgb3IgSVNPIHN0cmluZykuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgLy8gVGhlIGBEYXRlYCBjb25zdHJ1Y3RvciBhY2NlcHRzIGZvcm1hdHMgb3RoZXIgdGhhbiBJU08gODYwMSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlXG4gICAgICAgIC8vIHN0cmluZyBpcyB0aGUgcmlnaHQgZm9ybWF0IGZpcnN0LlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZERhdGVPck51bGwobmV3IERhdGUoZGF0ZS5pbmNsdWRlcygnVCcpID8gZGF0ZSA6IGRhdGUgKyAnVDAwOjAwOjAwJykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBkYXRlIGJ1dCBhbGxvd3MgdGhlIG1vbnRoIGFuZCBkYXRlIHRvIG92ZXJmbG93LiAqL1xuICBwcml2YXRlIF9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUpO1xuICAgIC8vIFdlIG5lZWQgdG8gY29ycmVjdCBmb3IgdGhlIGZhY3QgdGhhdCBKUyBuYXRpdmUgRGF0ZSB0cmVhdHMgeWVhcnMgaW4gcmFuZ2UgWzAsIDk5XSBhc1xuICAgIC8vIGFiYnJldmlhdGlvbnMgZm9yIDE5eHguXG4gICAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgICByZXN1bHQuc2V0RnVsbFllYXIodGhpcy5nZXRZZWFyKHJlc3VsdCkgLSAxOTAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGVBZGFwdGVyID0gbmV3IE5hdGl2ZURhdGVBZGFwdGVyKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBU0EsSUFBTSxpQkFDSjtBQUVGLElBQWEsb0JBQWIsY0FBdUMsWUFBaUI7O0NBRS9DLFFBQVEsTUFBVTtBQUN2QixTQUFPLEtBQUssYUFBYTs7O0NBSXBCLFNBQVMsTUFBVTtBQUN4QixTQUFPLEtBQUssVUFBVSxHQUFHOzs7Q0FJcEIsUUFBUSxNQUFVO0FBQ3ZCLFNBQU8sS0FBSyxTQUFT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
@@ -161,4 +161,4 @@ var TemporalDateAdapter = class extends DateAdapter {
161
161
  //#endregion
162
162
  export { TemporalDateAdapter };
163
163
 
164
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtZGF0ZS1hZGFwdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL3RlbXBvcmFsLWRhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cInRlbXBvcmFsLXBvbHlmaWxsL2dsb2JhbFwiIC8+XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtYWRhcHRlci50cyc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbmQgd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIFRlbXBvcmFsRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxUZW1wb3JhbC5QbGFpbkRhdGU+IHtcbiAgLyoqXG4gICAqIEBwYXJhbSBjdXRvZmZZZWFyT2Zmc2V0IFRoZSB0aHJlc2hvbGQgb24gd2hldGhlciBhIHR3by1kaWdpdCB5ZWFyXG4gICAqIHNob3VsZCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwIG9yIDE5MDAuIGUuZy4gd2l0aCAxNSAoZGVmYXVsdClcbiAgICogdGhlIGN1cnJlbnQgeWVhciBwbHVzIDE1IHdpbGwgYmUgdHJlYXRlZCBhcyBiZWxvbmdpbmcgdG8gMjAwMCwgYW5kIHRoZSByZXN0IHRvIDE5MDAuXG4gICAqIFNvIGUuZy4gd2l0aCB0aGUgY3VycmVudCB5ZWFyIDIwMjUsIDQwIHdpbGwgYmUgdHJlYXRlZCBhcyAyMDQwLCB3aGlsZSA0MSB3aWxsIGJlIHRyZWF0ZWQgYXMgMTk0MS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihjdXRvZmZZZWFyT2Zmc2V0PzogbnVtYmVyKSB7XG4gICAgc3VwZXIoY3V0b2ZmWWVhck9mZnNldCk7XG4gICAgaWYgKHR5cGVvZiBUZW1wb3JhbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RlbXBvcmFsIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuIFBsZWFzZSBtYWtlIHN1cmUgdG8gaW5jbHVkZSB0aGUgdGVtcG9yYWwgcG9seWZpbGwuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEdldHMgdGhlIHllYXIgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXRZZWFyKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUueWVhcjtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUubW9udGg7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmRheTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWsoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogbnVtYmVyIHtcbiAgICAvLyBPdXIgZXhwZWN0YXRpb24gaXMgMCA9IFN1bmRheSBidXQgVGVtcG9yYWwuUGxhaW5EYXRlLmRheU9mV2VlayByZXR1cm5zIDcgPSBTdW5kYXlcbiAgICAvLyBUT0RPOiBSZW1vdmUgdGhpcyB3aXRoIGEgZnV0dXJlIHJlbGVhc2UuXG4gICAgcmV0dXJuIGRhdGUuZGF5T2ZXZWVrICUgNztcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvbnM6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemUoZGF0ZSkhLnRvTG9jYWxlU3RyaW5nKFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT5cbiAgICAgIGZvcm1hdHRlci5mb3JtYXQoVGVtcG9yYWwuUGxhaW5EYXRlLmZyb20oeyB5ZWFyOiAyMDE3LCBtb250aDogaSArIDEsIGRheTogMSB9KSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gMzEsIGZpbGxlZCB3aXRoIHRoZSBkYXlzIGluIGEgbW9udGgsIHN0YXJ0aW5nIGZyb20gMS4gKi9cbiAgcHVibGljIGdldERhdGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgZGF5OiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDMxLCAoaSkgPT5cbiAgICAgIGZvcm1hdHRlci5mb3JtYXQoVGVtcG9yYWwuUGxhaW5EYXRlLmZyb20oeyB5ZWFyOiAyMDE3LCBtb250aDogMSwgZGF5OiBpICsgMSB9KSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gNywgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIGRheXMgaW4gYSB3ZWVrIHN0YXJ0aW5nIGZyb20gU3VuZGF5LCBpbiB0aGUgZG9jdW1lbnQgbGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBzdHlsZSBTZWUgYHdlZWtkYXlgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgIC0gJ2xvbmcnIGZvciBmdWxsIG5hbWUsICdzaG9ydCcgZm9yIHNob3J0IG5hbWUsICduYXJyb3cnIGZvciBzaW5nbGUgbGV0dGVyO1xuICAgKiBFLmcuLCB3aXRoIE1vbmRheSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJNb25kYXlcIiwgYHNob3J0YCByZXR1cm5zIFwiTW9uXCIsIGBuYXJyb3dgIHJldHVybnMgXCJNXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyB3ZWVrZGF5OiBzdHlsZSB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoNywgKGkpID0+XG4gICAgICBmb3JtYXR0ZXIuZm9ybWF0KFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhcjogMjAxNywgbW9udGg6IDEsIGRheTogaSArIDEgfSkpLFxuICAgICk7XG4gIH1cblxuICAvKiogRGVmaW5lcyB3aGljaCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggZ2l2ZW4gdGhlIHllYXIgYW5kIHRoZSBtb250aC4gKi9cbiAgcHVibGljIGdldE51bURheXNJbk1vbnRoKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZGF5c0luTW9udGg7XG4gIH1cblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyB0b2RheSgpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBUZW1wb3JhbC5Ob3cucGxhaW5EYXRlSVNPKCk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlLCBnaXZlbiBkYXksIG1vbnRoIGFuZCB5ZWFyOyB0aGUgbWV0aG9kIGRvZXNuJ3QgYWxsb3cgZGF0ZSdzIG92ZXJmbG93LiAqL1xuICBwdWJsaWMgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICAvLyBDaGVjayBmb3IgaW52YWxpZCBtb250aCBhbmQgZGF0ZSAoZXhjZXB0IHVwcGVyIGJvdW5kIG9uIGRhdGUgd2hpY2ggd2UgaGF2ZSB0byBjaGVjayBhZnRlciBjcmVhdGluZyB0aGUgVGVtcG9yYWwuUGxhaW5EYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhciwgbW9udGgsIGRheTogZGF5IH0sIHsgb3ZlcmZsb3c6ICdyZWplY3QnIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF5fVwiIGZvciBtb250aCB3aXRoIGluZGV4IFwiJHttb250aH1cIi5gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgVGVtcG9yYWwuUGxhaW5EYXRlLiAqL1xuICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgVGVtcG9yYWwuUGxhaW5EYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBUZW1wb3JhbC5QbGFpbkRhdGUuICovXG4gIHB1YmxpYyBpc1ZhbGlkKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaXNEYXRlSW5zdGFuY2UoZGF0ZSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGNsb25pbmcgdGhlIGdpdmVuIG9uZS4gKi9cbiAgcHVibGljIGNsb25lKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKGRhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUsIHllYXJzOiBudW1iZXIpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBkYXRlLmFkZCh7IHllYXJzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBUZW1wb3JhbC5QbGFpbkRhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IFRlbXBvcmFsLlBsYWluRGF0ZSgyMDIyLCAxLCAyOCkuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlLCBtb250aHM6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIGRhdGUuYWRkKHsgbW9udGhzIH0pO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC4gKi9cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUsIGRheXM6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIGRhdGUuYWRkKHsgZGF5cyB9KTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgVGVtcG9yYWwuUGxhaW5EYXRlIGZyb20gYSB2YWxpZCBpbnB1dCAoVGVtcG9yYWwuUGxhaW5EYXRlIG9yIElTTyBzdHJpbmcpLiAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZGVzZXJpYWxpemUoXG4gICAgZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgKTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBlbHNlIGlmIChJU09fODYwMV9SRUdFWC50ZXN0KGRhdGUpKSB7XG4gICAgICAgIC8vIGBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbWAgb25seSBhY2NlcHRzIElTTyA4NjAxIGRhdGUgc3RyaW5ncyB3aXRob3V0IHRpbWUgY29tcG9uZW50cy5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKGRhdGUuc3BsaXQoJ1QnKVswXSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBjcmVhdGUgYW4gaW52YWxpZCBUZW1wb3JhbC5QbGFpbkRhdGUsIHNvIHdlIHJldHVybiBudWxsLlxuICAgIHJldHVybiBudWxsITtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b0lzbzg2MDEoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZS50b0pTT04oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBV0EsSUFBTSxpQkFDSjtBQUVGLElBQWEsc0JBQWIsY0FBeUMsWUFBK0I7Ozs7Ozs7Q0FPdEUsWUFBbUIsa0JBQXlCO0FBQzFDLFFBQU0saUJBQWlCO0FBQ3ZCLE1BQUksT0FBTyxhQUFhLFNBQ3RCLE9BQU0sSUFBSSxNQUNSLDJHQUNEOzs7Q0FLRSxRQUFRLE1BQXdCO0FBQ3JDLFNBQU8sS0FBSzs7O0NBSVAsU0FBUyxNQUF3QjtBQUN0QyxTQUFPLEtBQUs7OztDQUlQLFFBQVEsTUFBd0I7QUFDckMsU0FBTyxLQUFLOzs7Q0FJUCxhQUFhLE1BQXdCO0FBRzFDLFNBQU8sS0FBSyxZQUFZOzs7Q0FJbkIsMkJBQTJCLE1BQWlDO0FBTWpFLFNBQU8sS0FBSyxZQUFZLEtBQU0sQ0FBQyxlQUFlLHNCQUFzQixTQUx4QjtHQUMxQyxNQUFNO0dBQ04sT0FBTztHQUNQLEtBQUs7R0FDTixDQUNvRjs7Ozs7OztDQVFoRixjQUFjLE9BQWtDO0VBQ3JELE1BQU0sWUFBWSxJQUFJLEtBQUssZUFBZSxzQkFBc0IsU0FBUyxFQUFFLE9BQU8sT0FBTyxDQUFDO0FBQzFGLFNBQU8sS0FBSyxPQUFPLEtBQUssTUFDdEIsVUFBVSxPQUFPLFNBQVMsVUFBVSxLQUFLO0dBQUUsTUFBTTtHQUFNLE9BQU8sSUFBSTtHQUFHLEtBQUs7R0FBRyxDQUFDLENBQUMsQ0FDaEY7OztDQUlJLGVBQVk7RUFDakIsTUFBTSxZQUFZLElBQUksS0FBSyxlQUFlLHNCQUFzQixTQUFTLEVBQUUsS0FBSyxXQUFXLENBQUM7QUFDNUYsU0FBTyxLQUFLLE9BQU8sS0FBSyxNQUN0QixVQUFVLE9BQU8sU0FBUyxVQUFVLEtBQUs7R0FBRSxNQUFNO0dBQU0sT0FBTztHQUFHLEtBQUssSUFBSTtHQUFHLENBQUMsQ0FBQyxDQUNoRjs7Ozs7OztDQVFJLGtCQUFrQixPQUFrQztFQUN6RCxNQUFNLFlBQVksSUFBSSxLQUFLLGVBQWUsc0JBQXNCLFNBQVMsRUFBRSxTQUFTLE9BQU8sQ0FBQztBQUM1RixTQUFPLEtBQUssT0FBTyxJQUFJLE1BQ3JCLFVBQVUsT0FBTyxTQUFTLFVBQVUsS0FBSztHQUFFLE1BQU07R0FBTSxPQUFPO0dBQUcsS0FBSyxJQUFJO0dBQUcsQ0FBQyxDQUFDLENBQ2hGOzs7Q0FJSSxvQkFBaUI7QUFDdEIsU0FBTzs7O0NBSUYsa0JBQWtCLE1BQXdCO0FBQy9DLFNBQU8sS0FBSzs7O0NBSVAsUUFBSztBQUNWLFNBQU8sU0FBUyxJQUFJLGNBQWM7OztDQUk3QixXQUFXLE1BQWMsT0FBZSxLQUFXO0FBRXhELE1BQUksUUFBUSxLQUFLLFFBQVEsR0FDdkIsT0FBTSxNQUFNLGtCQUFrQixNQUFLLHNDQUF1QztXQUNqRSxNQUFNLEVBQ2YsT0FBTSxNQUFNLGdCQUFnQixJQUFHLGtDQUFtQztBQUdwRSxNQUFJO0FBQ0YsVUFBTyxTQUFTLFVBQVUsS0FBSztJQUFFO0lBQU07SUFBWTtJQUFLLEVBQUUsRUFBRSxVQUFVLFVBQVUsQ0FBQztVQUMzRTtBQUNOLFNBQU0sTUFBTSxpQkFBaUIsSUFBRywwQkFBMkIsTUFBSyxJQUFLOzs7O0NBS2xFLGVBQWUsS0FBUTtBQUM1QixTQUFPLGVBQWUsU0FBUzs7O0NBSTFCLFFBQVEsTUFBMkM7QUFDeEQsU0FBTyxLQUFLLGVBQWUsS0FBSzs7O0NBSTNCLE1BQU0sTUFBd0I7QUFDbkMsU0FBTyxTQUFTLFVBQVUsS0FBSyxLQUFLOzs7Ozs7O0NBUS9CLGlCQUFpQixNQUEwQixPQUFhO0FBQzdELFNBQU8sS0FBSyxJQUFJLEVBQUUsT0FBTyxDQUFDOzs7Ozs7O0NBUXJCLGtCQUFrQixNQUEwQixRQUFjO0FBQy9ELFNBQU8sS0FBSyxJQUFJLEVBQUUsUUFBUSxDQUFDOzs7Q0FJdEIsZ0JBQWdCLE1BQTBCLE1BQVk7QUFDM0QsU0FBTyxLQUFLLElBQUksRUFBRSxNQUFNLENBQUM7OztDQUlYLFlBQ2QsTUFBb0Q7QUFFcEQsTUFBSSxPQUFPLFNBQVM7T0FDZCxDQUFDLEtBQ0gsUUFBTztZQUNFLGVBQWUsS0FBSyxLQUFLLENBRWxDLFFBQU8sS0FBSyxtQkFBbUIsU0FBUyxVQUFVLEtBQUssS0FBSyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUM7O0FBRy9FLFNBQU8sTUFBTSxZQUFZLEtBQUs7O0NBR2hCLFVBQU87QUFFckIsU0FBTzs7Q0FHTyxVQUFVLE1BQXdCO0FBQ2hELFNBQU8sS0FBSyxRQUFROzs7Ozs7O0NBUWQsT0FBVSxRQUFnQixlQUFtQztBQUNuRSxTQUFPLE1BQU0sS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLGNBQWMsRUFBRSxDQUFDIn0=
164
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtZGF0ZS1hZGFwdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL3RlbXBvcmFsLWRhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cInRlbXBvcmFsLXBvbHlmaWxsL2dsb2JhbFwiIC8+XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtYWRhcHRlci50cyc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbmQgd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIFRlbXBvcmFsRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxUZW1wb3JhbC5QbGFpbkRhdGU+IHtcbiAgLyoqXG4gICAqIEBwYXJhbSBjdXRvZmZZZWFyT2Zmc2V0IFRoZSB0aHJlc2hvbGQgb24gd2hldGhlciBhIHR3by1kaWdpdCB5ZWFyXG4gICAqIHNob3VsZCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwIG9yIDE5MDAuIGUuZy4gd2l0aCAxNSAoZGVmYXVsdClcbiAgICogdGhlIGN1cnJlbnQgeWVhciBwbHVzIDE1IHdpbGwgYmUgdHJlYXRlZCBhcyBiZWxvbmdpbmcgdG8gMjAwMCwgYW5kIHRoZSByZXN0IHRvIDE5MDAuXG4gICAqIFNvIGUuZy4gd2l0aCB0aGUgY3VycmVudCB5ZWFyIDIwMjUsIDQwIHdpbGwgYmUgdHJlYXRlZCBhcyAyMDQwLCB3aGlsZSA0MSB3aWxsIGJlIHRyZWF0ZWQgYXMgMTk0MS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihjdXRvZmZZZWFyT2Zmc2V0PzogbnVtYmVyKSB7XG4gICAgc3VwZXIoY3V0b2ZmWWVhck9mZnNldCk7XG4gICAgaWYgKHR5cGVvZiBUZW1wb3JhbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RlbXBvcmFsIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuIFBsZWFzZSBtYWtlIHN1cmUgdG8gaW5jbHVkZSB0aGUgdGVtcG9yYWwgcG9seWZpbGwuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEdldHMgdGhlIHllYXIgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXRZZWFyKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUueWVhcjtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUubW9udGg7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmRheTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWsoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogbnVtYmVyIHtcbiAgICAvLyBPdXIgZXhwZWN0YXRpb24gaXMgMCA9IFN1bmRheSBidXQgVGVtcG9yYWwuUGxhaW5EYXRlLmRheU9mV2VlayByZXR1cm5zIDcgPSBTdW5kYXlcbiAgICAvLyBUT0RPOiBSZW1vdmUgdGhpcyB3aXRoIGEgZnV0dXJlIHJlbGVhc2UuXG4gICAgcmV0dXJuIGRhdGUuZGF5T2ZXZWVrICUgNztcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvbnM6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemUoZGF0ZSkhLnRvTG9jYWxlU3RyaW5nKFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT5cbiAgICAgIGZvcm1hdHRlci5mb3JtYXQoVGVtcG9yYWwuUGxhaW5EYXRlLmZyb20oeyB5ZWFyOiAyMDE3LCBtb250aDogaSArIDEsIGRheTogMSB9KSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gMzEsIGZpbGxlZCB3aXRoIHRoZSBkYXlzIGluIGEgbW9udGgsIHN0YXJ0aW5nIGZyb20gMS4gKi9cbiAgcHVibGljIGdldERhdGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgZGF5OiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDMxLCAoaSkgPT5cbiAgICAgIGZvcm1hdHRlci5mb3JtYXQoVGVtcG9yYWwuUGxhaW5EYXRlLmZyb20oeyB5ZWFyOiAyMDE3LCBtb250aDogMSwgZGF5OiBpICsgMSB9KSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gNywgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIGRheXMgaW4gYSB3ZWVrIHN0YXJ0aW5nIGZyb20gU3VuZGF5LCBpbiB0aGUgZG9jdW1lbnQgbGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBzdHlsZSBTZWUgYHdlZWtkYXlgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgIC0gJ2xvbmcnIGZvciBmdWxsIG5hbWUsICdzaG9ydCcgZm9yIHNob3J0IG5hbWUsICduYXJyb3cnIGZvciBzaW5nbGUgbGV0dGVyO1xuICAgKiBFLmcuLCB3aXRoIE1vbmRheSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJNb25kYXlcIiwgYHNob3J0YCByZXR1cm5zIFwiTW9uXCIsIGBuYXJyb3dgIHJldHVybnMgXCJNXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyB3ZWVrZGF5OiBzdHlsZSB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoNywgKGkpID0+XG4gICAgICBmb3JtYXR0ZXIuZm9ybWF0KFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhcjogMjAxNywgbW9udGg6IDEsIGRheTogaSArIDEgfSkpLFxuICAgICk7XG4gIH1cblxuICAvKiogRGVmaW5lcyB3aGljaCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggZ2l2ZW4gdGhlIHllYXIgYW5kIHRoZSBtb250aC4gKi9cbiAgcHVibGljIGdldE51bURheXNJbk1vbnRoKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZGF5c0luTW9udGg7XG4gIH1cblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyB0b2RheSgpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBUZW1wb3JhbC5Ob3cucGxhaW5EYXRlSVNPKCk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlLCBnaXZlbiBkYXksIG1vbnRoIGFuZCB5ZWFyOyB0aGUgbWV0aG9kIGRvZXNuJ3QgYWxsb3cgZGF0ZSdzIG92ZXJmbG93LiAqL1xuICBwdWJsaWMgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICAvLyBDaGVjayBmb3IgaW52YWxpZCBtb250aCBhbmQgZGF0ZSAoZXhjZXB0IHVwcGVyIGJvdW5kIG9uIGRhdGUgd2hpY2ggd2UgaGF2ZSB0byBjaGVjayBhZnRlciBjcmVhdGluZyB0aGUgVGVtcG9yYWwuUGxhaW5EYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhciwgbW9udGgsIGRheTogZGF5IH0sIHsgb3ZlcmZsb3c6ICdyZWplY3QnIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF5fVwiIGZvciBtb250aCB3aXRoIGluZGV4IFwiJHttb250aH1cIi5gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgVGVtcG9yYWwuUGxhaW5EYXRlLiAqL1xuICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgVGVtcG9yYWwuUGxhaW5EYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBUZW1wb3JhbC5QbGFpbkRhdGUuICovXG4gIHB1YmxpYyBpc1ZhbGlkKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaXNEYXRlSW5zdGFuY2UoZGF0ZSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGNsb25pbmcgdGhlIGdpdmVuIG9uZS4gKi9cbiAgcHVibGljIGNsb25lKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKGRhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUsIHllYXJzOiBudW1iZXIpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBkYXRlLmFkZCh7IHllYXJzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBUZW1wb3JhbC5QbGFpbkRhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IFRlbXBvcmFsLlBsYWluRGF0ZSgyMDIyLCAxLCAyOCkuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlLCBtb250aHM6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIGRhdGUuYWRkKHsgbW9udGhzIH0pO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC4gKi9cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUsIGRheXM6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIGRhdGUuYWRkKHsgZGF5cyB9KTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgVGVtcG9yYWwuUGxhaW5EYXRlIGZyb20gYSB2YWxpZCBpbnB1dCAoVGVtcG9yYWwuUGxhaW5EYXRlIG9yIElTTyBzdHJpbmcpLiAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZGVzZXJpYWxpemUoXG4gICAgZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgKTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBlbHNlIGlmIChJU09fODYwMV9SRUdFWC50ZXN0KGRhdGUpKSB7XG4gICAgICAgIC8vIGBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbWAgb25seSBhY2NlcHRzIElTTyA4NjAxIGRhdGUgc3RyaW5ncyB3aXRob3V0IHRpbWUgY29tcG9uZW50cy5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKGRhdGUuc3BsaXQoJ1QnKVswXSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBjcmVhdGUgYW4gaW52YWxpZCBUZW1wb3JhbC5QbGFpbkRhdGUsIHNvIHdlIHJldHVybiBudWxsLlxuICAgIHJldHVybiBudWxsITtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b0lzbzg2MDEoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZS50b0pTT04oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBV0EsSUFBTSxpQkFDSjtBQUVGLElBQWEsc0JBQWIsY0FBeUMsWUFBK0I7Ozs7Ozs7Q0FPdEUsWUFBbUIsa0JBQXlCO0FBQzFDLFFBQU0saUJBQWlCO0FBQ3ZCLE1BQUksT0FBTyxhQUFhLFNBQ3RCLE9BQU0sSUFBSSxNQUNSLDJHQUNEOzs7Q0FLRSxRQUFRLE1BQXdCO0FBQ3JDLFNBQU8sS0FBSzs7O0NBSVAsU0FBUyxNQUF3QjtBQUN0QyxTQUFPLEtBQUs7OztDQUlQLFFBQVEsTUFBd0I7QUFDckMsU0FBTyxLQUFLOzs7Q0FJUCxhQUFhLE1BQXdCO0FBRzFDLFNBQU8sS0FBSyxZQUFZOzs7Q0FJbkIsMkJBQTJCLE1BQWlDO0FBTWpFLFNBQU8sS0FBSyxZQUFZLEtBQU0sQ0FBQyxlQUFlLHNCQUFzQixTQUFTO0dBSjNFLE1BQU07R0FDTixPQUFPO0dBQ1AsS0FBSztHQUVzRSxDQUFROzs7Ozs7O0NBUWhGLGNBQWMsT0FBa0M7RUFDckQsTUFBTSxZQUFZLElBQUksS0FBSyxlQUFlLHNCQUFzQixTQUFTLEVBQUUsT0FBTyxPQUFPLENBQUM7QUFDMUYsU0FBTyxLQUFLLE9BQU8sS0FBSyxNQUN0QixVQUFVLE9BQU8sU0FBUyxVQUFVLEtBQUs7R0FBRSxNQUFNO0dBQU0sT0FBTyxJQUFJO0dBQUcsS0FBSztHQUFHLENBQUMsQ0FBQyxDQUNoRjs7O0NBSUksZUFBWTtFQUNqQixNQUFNLFlBQVksSUFBSSxLQUFLLGVBQWUsc0JBQXNCLFNBQVMsRUFBRSxLQUFLLFdBQVcsQ0FBQztBQUM1RixTQUFPLEtBQUssT0FBTyxLQUFLLE1BQ3RCLFVBQVUsT0FBTyxTQUFTLFVBQVUsS0FBSztHQUFFLE1BQU07R0FBTSxPQUFPO0dBQUcsS0FBSyxJQUFJO0dBQUcsQ0FBQyxDQUFDLENBQ2hGOzs7Ozs7O0NBUUksa0JBQWtCLE9BQWtDO0VBQ3pELE1BQU0sWUFBWSxJQUFJLEtBQUssZUFBZSxzQkFBc0IsU0FBUyxFQUFFLFNBQVMsT0FBTyxDQUFDO0FBQzVGLFNBQU8sS0FBSyxPQUFPLElBQUksTUFDckIsVUFBVSxPQUFPLFNBQVMsVUFBVSxLQUFLO0dBQUUsTUFBTTtHQUFNLE9BQU87R0FBRyxLQUFLLElBQUk7R0FBRyxDQUFDLENBQUMsQ0FDaEY7OztDQUlJLG9CQUFpQjtBQUN0QixTQUFPOzs7Q0FJRixrQkFBa0IsTUFBd0I7QUFDL0MsU0FBTyxLQUFLOzs7Q0FJUCxRQUFLO0FBQ1YsU0FBTyxTQUFTLElBQUksY0FBYzs7O0NBSTdCLFdBQVcsTUFBYyxPQUFlLEtBQVc7QUFFeEQsTUFBSSxRQUFRLEtBQUssUUFBUSxHQUN2QixPQUFNLE1BQU0sa0JBQWtCLE1BQUssc0NBQXVDO1dBQ2pFLE1BQU0sRUFDZixPQUFNLE1BQU0sZ0JBQWdCLElBQUcsa0NBQW1DO0FBR3BFLE1BQUk7QUFDRixVQUFPLFNBQVMsVUFBVSxLQUFLO0lBQUU7SUFBTTtJQUFZO0lBQUssRUFBRSxFQUFFLFVBQVUsVUFBVSxDQUFDO1VBQzNFO0FBQ04sU0FBTSxNQUFNLGlCQUFpQixJQUFHLDBCQUEyQixNQUFLLElBQUs7Ozs7Q0FLbEUsZUFBZSxLQUFRO0FBQzVCLFNBQU8sZUFBZSxTQUFTOzs7Q0FJMUIsUUFBUSxNQUEyQztBQUN4RCxTQUFPLEtBQUssZUFBZSxLQUFLOzs7Q0FJM0IsTUFBTSxNQUF3QjtBQUNuQyxTQUFPLFNBQVMsVUFBVSxLQUFLLEtBQUs7Ozs7Ozs7Q0FRL0IsaUJBQWlCLE1BQTBCLE9BQWE7QUFDN0QsU0FBTyxLQUFLLElBQUksRUFBRSxPQUFPLENBQUM7Ozs7Ozs7Q0FRckIsa0JBQWtCLE1BQTBCLFFBQWM7QUFDL0QsU0FBTyxLQUFLLElBQUksRUFBRSxRQUFRLENBQUM7OztDQUl0QixnQkFBZ0IsTUFBMEIsTUFBWTtBQUMzRCxTQUFPLEtBQUssSUFBSSxFQUFFLE1BQU0sQ0FBQzs7O0NBSVgsWUFDZCxNQUFvRDtBQUVwRCxNQUFJLE9BQU8sU0FBUztPQUNkLENBQUMsS0FDSCxRQUFPO1lBQ0UsZUFBZSxLQUFLLEtBQUssQ0FFbEMsUUFBTyxLQUFLLG1CQUFtQixTQUFTLFVBQVUsS0FBSyxLQUFLLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQzs7QUFHL0UsU0FBTyxNQUFNLFlBQVksS0FBSzs7Q0FHaEIsVUFBTztBQUVyQixTQUFPOztDQUdPLFVBQVUsTUFBd0I7QUFDaEQsU0FBTyxLQUFLLFFBQVE7Ozs7Ozs7Q0FRZCxPQUFVLFFBQWdCLGVBQW1DO0FBQ25FLFNBQU8sTUFBTSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sY0FBYyxFQUFFLENBQUMifQ==
@@ -127,4 +127,4 @@ var SbbDisabledTabIndexActionMixin = (superClass) => {
127
127
  //#endregion
128
128
  export { SbbDisabledInteractiveMixin, SbbDisabledMixin, SbbDisabledTabIndexActionMixin };
129
129
 
130
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL2Rpc2FibGVkLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCwgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJy4uL2RlY29yYXRvcnMudHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4udHMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJEaXNhYmxlZE1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBkaXNhYmxlZDogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGUge1xuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWRJbnRlcmFjdGl2ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmhhbmNlIHlvdXIgY29tcG9uZW50IHdpdGggYSBkaXNhYmxlZCBwcm9wZXJ0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkRpc2FibGVkTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRFbGVtZW50IGV4dGVuZHMgc3VwZXJDbGFzcyBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRGlzYWJsZWRNaXhpblR5cGU+IHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgZGlzYWJsZWQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICAvLyBUT0RPOiByZW1vdmUgcmVmbGVjdDogdHJ1ZSBhbmQgbWFuYWdlIG9ubHkgaW4gc2V0dGVyLlxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLiNkaXNhYmxlZCA9ICEhdmFsdWU7XG5cbiAgICAgIC8vIFRoZSBhdHRyaWJ1dGUgbmVlZHMgdG8gYmUgcmVmbGVjdGVkIHN5bmNocm9ub3VzbHkgKGxpa2UgbmF0aXZlKVxuICAgICAgLy8gVE9ETzogb25seSBkaXNhYmxlZCBvZiB0aGUgYWN0dWFsIGNvbXBvbmVudCBzaG91bGQgYmUgcmVmbGVjdGVkLCB3aXRob3V0IGNvbnNpZGVyaW5nIHRoaXMuaXNEaXNhYmxlZEV4dGVybmFsbHkoKVxuICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy4jZGlzYWJsZWQgfHwgdGhpcy5pc0Rpc2FibGVkRXh0ZXJuYWxseSgpO1xuICAgIH1cbiAgICAjZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdpbGwgYmUgdXNlZCBhcyAnb3InIGNoZWNrIHRvIHRoZSBjdXJyZW50IGRpc2FibGVkIHN0YXRlLlxuICAgICAqIENhbiBlLmcuIGJlIHVzZWQgdG8gcmVhZCBkaXNhYmxlZCBzdGF0ZSBvZiBhIGdyb3VwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRGlzYWJsZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZE1peGluVHlwZT4gJiBUO1xufTtcblxuLyoqXG4gKiBFbmhhbmNlIHlvdXIgY29tcG9uZW50IHdpdGggYSBkaXNhYmxlZCBpbnRlcmFjdGl2ZSBwcm9wZXJ0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpbiA9IDxcbiAgVCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudCAmIFNiYkRpc2FibGVkTWl4aW5UeXBlPixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGU+XG4gIHtcbiAgICAvKiogV2hldGhlciB0aGUgYnV0dG9uIHNob3VsZCBiZSBhcmlhLWRpc2FibGVkIGJ1dCBzdGF5IGludGVyYWN0aXZlLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGVkLWludGVyYWN0aXZlJywgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBkaXNhYmxlZEludGVyYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZUVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb25NaXhpbiA9IDxcbiAgVCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudCAmIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGUgJiBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uXG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW4oU2JiRGlzYWJsZWRNaXhpbihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFNiYkRpc2FibGVkTWl4aW5UeXBlLCBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlXG4gIHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZEludGVyYWN0aXZlJykpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZEludGVyYWN0aXZlID8gJ3RydWUnIDogbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbiBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFxuICAgIFNiYkRpc2FibGVkTWl4aW5UeXBlICYgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZVxuICA+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQXFCQSxJQUFhLG9CQUNYLGVBQ2lEO0FBNkJqRCxlQTVCaUM7b0JBQVM7OztlQUEzQiwyQkFBMkIsWUFBVTs7O2dDQU1qRCxTQUFTO0tBQUUsTUFBTTtLQUFTLFNBQVM7S0FBTSxDQUFDLENBQUE7QUFDM0MsaUJBQUEsTUFBQSxNQUFBLDBCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsY0FBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxXQUFROztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTs7Ozs7Ozs7Ozs7O0dBQW5CLElBQVcsU0FBUyxPQUFjO0FBQ2hDLFVBQUEsV0FBaUIsQ0FBQyxDQUFDO0FBSW5CLFNBQUssZ0JBQWdCLFlBQVksS0FBSyxTQUFTOztHQUVqRCxJQUFXLFdBQVE7QUFDakIsV0FBTyxNQUFBLFlBQWtCLEtBQUssc0JBQXNCOztHQUV0RCxhQWpCYSxrQkFBQSxNQUFBLDJCQUFrQixFQWlCbkI7Ozs7O0dBTUYsdUJBQW9CO0FBQzVCLFdBQU87Ozs7Ozs7O0FBV2IsSUFBYSwrQkFHWCxlQUM0RDtBQVc1RCxlQVY0QztvQkFDbEM7Ozs7ZUFESyxzQ0FDTCxZQUFVOzs7dUNBSWpCLFdBQVcsRUFDWCxTQUFTO0tBQUUsV0FBVztLQUF3QixNQUFNO0tBQVMsU0FBUztLQUFNLENBQUMsQ0FBQTtBQUM5RSxpQkFBQSxNQUFBLE1BQUEsaUNBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSx5QkFBQTtNQUFBLE1BQUEsUUFBQSxJQUFnQjtNQUFtQixNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQW5CLHNCQUFtQjs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLG1DQUFBLHVDQUFBOzs7Ozs7OztHQUFuQyx3Q0FBQSxrQkFBQSxNQUFBLG1DQUErQyxNQUFLOztHQUFwRCxJQUFnQixzQkFBbUI7QUFBQSxXQUFBLE1BQUE7O0dBQW5DLElBQWdCLG9CQUFtQixPQUFBO0FBQUEsVUFBQSx1Q0FBQTs7Ozs7Ozs7O0FBUXZDLElBQWEsa0NBR1gsZUFDbUY7Q0FDbkYsTUFBZSxrQ0FDTCw0QkFBNEIsaUJBQWlCLFdBQVcsQ0FBQyxDQUFBO0VBRzlDLFdBQVcsbUJBQXVDO0FBQ25FLFNBQU0sV0FBVyxrQkFBa0I7QUFFbkMsT0FBSSxrQkFBa0IsSUFBSSxzQkFBc0IsQ0FDOUMsTUFBSyxVQUFVLGVBQWUsS0FBSyxzQkFBc0IsU0FBUztBQUdwRSxPQUFJLENBQUMsa0JBQWtCLElBQUksV0FBVyxDQUNwQztBQUdGLE9BQUksQ0FBQyxLQUFLLFNBQ1IsTUFBSyxhQUFhLFlBQVksSUFBSTtPQUVsQyxNQUFLLGdCQUFnQixXQUFXOzs7QUFJdEMsUUFBTyJ9
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL2Rpc2FibGVkLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCwgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJy4uL2RlY29yYXRvcnMudHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4udHMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJEaXNhYmxlZE1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBkaXNhYmxlZDogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGUge1xuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWRJbnRlcmFjdGl2ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmhhbmNlIHlvdXIgY29tcG9uZW50IHdpdGggYSBkaXNhYmxlZCBwcm9wZXJ0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkRpc2FibGVkTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRFbGVtZW50IGV4dGVuZHMgc3VwZXJDbGFzcyBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRGlzYWJsZWRNaXhpblR5cGU+IHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgZGlzYWJsZWQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICAvLyBUT0RPOiByZW1vdmUgcmVmbGVjdDogdHJ1ZSBhbmQgbWFuYWdlIG9ubHkgaW4gc2V0dGVyLlxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLiNkaXNhYmxlZCA9ICEhdmFsdWU7XG5cbiAgICAgIC8vIFRoZSBhdHRyaWJ1dGUgbmVlZHMgdG8gYmUgcmVmbGVjdGVkIHN5bmNocm9ub3VzbHkgKGxpa2UgbmF0aXZlKVxuICAgICAgLy8gVE9ETzogb25seSBkaXNhYmxlZCBvZiB0aGUgYWN0dWFsIGNvbXBvbmVudCBzaG91bGQgYmUgcmVmbGVjdGVkLCB3aXRob3V0IGNvbnNpZGVyaW5nIHRoaXMuaXNEaXNhYmxlZEV4dGVybmFsbHkoKVxuICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy4jZGlzYWJsZWQgfHwgdGhpcy5pc0Rpc2FibGVkRXh0ZXJuYWxseSgpO1xuICAgIH1cbiAgICAjZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdpbGwgYmUgdXNlZCBhcyAnb3InIGNoZWNrIHRvIHRoZSBjdXJyZW50IGRpc2FibGVkIHN0YXRlLlxuICAgICAqIENhbiBlLmcuIGJlIHVzZWQgdG8gcmVhZCBkaXNhYmxlZCBzdGF0ZSBvZiBhIGdyb3VwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRGlzYWJsZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZE1peGluVHlwZT4gJiBUO1xufTtcblxuLyoqXG4gKiBFbmhhbmNlIHlvdXIgY29tcG9uZW50IHdpdGggYSBkaXNhYmxlZCBpbnRlcmFjdGl2ZSBwcm9wZXJ0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpbiA9IDxcbiAgVCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudCAmIFNiYkRpc2FibGVkTWl4aW5UeXBlPixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGU+XG4gIHtcbiAgICAvKiogV2hldGhlciB0aGUgYnV0dG9uIHNob3VsZCBiZSBhcmlhLWRpc2FibGVkIGJ1dCBzdGF5IGludGVyYWN0aXZlLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGVkLWludGVyYWN0aXZlJywgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBkaXNhYmxlZEludGVyYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZUVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb25NaXhpbiA9IDxcbiAgVCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudCAmIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGUgJiBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uXG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW4oU2JiRGlzYWJsZWRNaXhpbihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFNiYkRpc2FibGVkTWl4aW5UeXBlLCBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlXG4gIHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZEludGVyYWN0aXZlJykpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZEludGVyYWN0aXZlID8gJ3RydWUnIDogbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbiBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFxuICAgIFNiYkRpc2FibGVkTWl4aW5UeXBlICYgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZVxuICA+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQXFCQSxJQUFhLG9CQUNYLGVBQ2lEO0FBNkJqRCxlQTVCaUM7b0JBQVM7OztlQUEzQiwyQkFBMkIsWUFBVTs7O2dDQU1qRCxTQUFTO0tBQUUsTUFBTTtLQUFTLFNBQVM7S0FBTSxDQUFDLENBQUE7QUFDM0MsaUJBQUEsTUFBQSxNQUFBLDBCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsY0FBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxXQUFROztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTs7Ozs7Ozs7Ozs7O0dBQW5CLElBQVcsU0FBUyxPQUFjO0FBQ2hDLFVBQUEsV0FBaUIsQ0FBQyxDQUFDO0FBSW5CLFNBQUssZ0JBQWdCLFlBQVksS0FBSyxTQUFTOztHQUVqRCxJQUFXLFdBQVE7QUFDakIsV0FBTyxNQUFBLFlBQWtCLEtBQUssc0JBQXNCOztHQUV0RCxhQWpCYSxrQkFBQSxNQUFBLDJCQUFrQixFQWlCbkI7Ozs7O0dBTUYsdUJBQW9CO0FBQzVCLFdBQU87OztLQUlKOzs7OztBQU9ULElBQWEsK0JBR1gsZUFDNEQ7QUFXNUQsZUFWNEM7b0JBQ2xDOzs7O2VBREssc0NBQ0wsWUFBVTs7O3VDQUlqQixXQUFXLEVBQ1gsU0FBUztLQUFFLFdBQVc7S0FBd0IsTUFBTTtLQUFTLFNBQVM7S0FBTSxDQUFDLENBQUE7QUFDOUUsaUJBQUEsTUFBQSxNQUFBLGlDQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEseUJBQUE7TUFBQSxNQUFBLFFBQUEsSUFBZ0I7TUFBbUIsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFuQixzQkFBbUI7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxtQ0FBQSx1Q0FBQTs7Ozs7Ozs7R0FBbkMsd0NBQUEsa0JBQUEsTUFBQSxtQ0FBK0MsTUFBSzs7R0FBcEQsSUFBZ0Isc0JBQW1CO0FBQUEsV0FBQSxNQUFBOztHQUFuQyxJQUFnQixvQkFBbUIsT0FBQTtBQUFBLFVBQUEsdUNBQUE7Ozs7Ozs7S0FHOUI7O0FBS1QsSUFBYSxrQ0FHWCxlQUNtRjtDQUNuRixNQUFlLGtDQUNMLDRCQUE0QixpQkFBaUIsV0FBVyxDQUFDLENBQUE7RUFHOUMsV0FBVyxtQkFBdUM7QUFDbkUsU0FBTSxXQUFXLGtCQUFrQjtBQUVuQyxPQUFJLGtCQUFrQixJQUFJLHNCQUFzQixDQUM5QyxNQUFLLFVBQVUsZUFBZSxLQUFLLHNCQUFzQixTQUFTO0FBR3BFLE9BQUksQ0FBQyxrQkFBa0IsSUFBSSxXQUFXLENBQ3BDO0FBR0YsT0FBSSxDQUFDLEtBQUssU0FDUixNQUFLLGFBQWEsWUFBWSxJQUFJO09BRWxDLE1BQUssZ0JBQWdCLFdBQVc7OztBQUl0QyxRQUFPIn0=
@@ -164,4 +164,4 @@ var SbbFormAssociatedCheckboxMixin = (superClass) => {
164
164
  //#endregion
165
165
  export { SbbFormAssociatedCheckboxMixin };
166
166
 
167
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtY2hlY2tib3gtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdENvbnZlcnRlciwgdHlwZSBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgcHJldmVudFNjcm9sbE9uU3BhY2ViYXJQcmVzcyB9IGZyb20gJy4uL2V2ZW50aW5nLnRzJztcbmltcG9ydCB7IGkxOG5DaGVja2JveFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4vZGlzYWJsZWQtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgU2JiRWxlbWVudEludGVybmFsc01peGluLFxuICB0eXBlIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUsXG4gIHR5cGUgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yLFxufSBmcm9tICcuL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLnRzJztcbmltcG9ydCB7XG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbn0gZnJvbSAnLi9mb3JtLWFzc29jaWF0ZWQtbWl4aW4udHMnO1xuaW1wb3J0IHsgU2JiUmVxdWlyZWRNaXhpbiB9IGZyb20gJy4vcmVxdWlyZWQtbWl4aW4udHMnO1xuXG5pbnRlcmZhY2UgQ2hlY2tlZFNldHRlclZhbHVlIHtcbiAgdmFsdWU6IGJvb2xlYW47XG4gIGF0dHJpYnV0ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluVHlwZSBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpKSxcbikge1xuICBwdWJsaWMgYWNjZXNzb3IgY2hlY2tlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgd2l0aFVzZXJJbnRlcmFjdGlvbj8oKTogdm9pZDtcbiAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW4gZW5hYmxlcyBuYXRpdmUgZm9ybSBzdXBwb3J0IGZvciBjaGVja2JveCBjb250cm9scy5cbiAqXG4gKiBJbmhlcml0ZWQgY2xhc3NlcyBNVVNUIGltcGxlbWVudCB0aGUgYXJpYUNoZWNrZWQgc3RhdGUgKEVsZW1lbnRJbnRlcm5hbHMpIHRoZW1zZWx2ZXMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmIFQgPT4ge1xuICAvLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IFJlbW92ZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gYW5kIGRlcGVuZCBvbiBTYmJFbGVtZW50IGFzIGJhc2UgY2xhc3MgaW5zdGVhZCBvZiBMaXRFbGVtZW50XG4gIGNvbnN0IGNvbmRpdGlvbmFsU3VwZXJDbGFzcyA9IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pWydfJHNiYkVsZW1lbnQkJ11cbiAgICA/IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPiAmXG4gICAgICAgIFQgJlxuICAgICAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IpXG4gICAgOiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oc3VwZXJDbGFzcyk7XG5cbiAgQGhvc3RBdHRyaWJ1dGVzKHtcbiAgICB0YWJpbmRleDogJzAnLFxuICB9KVxuICBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94RWxlbWVudFxuICAgIGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oY29uZGl0aW9uYWxTdXBlckNsYXNzKSkpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnY2hlY2tib3gnO1xuXG4gICAgcHJpdmF0ZSBfYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLiAqL1xuICAgIEBwcm9wZXJ0eSh7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgY29udmVydGVyOiB7XG4gICAgICAgIC4uLmRlZmF1bHRDb252ZXJ0ZXIsXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiB0byB0aGUgc2V0dGVyIHNvIHRoYXQgd2Uga25vdyBpdCB3YXMgY2FsbGVkIGJ5IGF0dHJpYnV0ZSBjaGFuZ2UuXG4gICAgICAgIGZyb21BdHRyaWJ1dGU6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCwgdHlwZT86IHVua25vd24pOiBDaGVja2VkU2V0dGVyVmFsdWUgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRlZmF1bHRDb252ZXJ0ZXIuZnJvbUF0dHJpYnV0ZT8uKHZhbHVlLCB0eXBlKTtcbiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcmVzdWx0LCBhdHRyaWJ1dGU6IHRydWUgfSBhcyBDaGVja2VkU2V0dGVyVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVTZXR0ZXIgPVxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gKHZhbHVlIGFzIHVua25vd24gYXMgQ2hlY2tlZFNldHRlclZhbHVlKS5hdHRyaWJ1dGUgOiBmYWxzZTtcbiAgICAgIGlmIChhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdmFsdWUgPSAodmFsdWUgYXMgdW5rbm93biBhcyBDaGVja2VkU2V0dGVyVmFsdWUpLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBcyBzb29uIGFzIG11dGF0aW9uIHdhcyBkb25lIG5vdCBieSBzZXR0aW5nIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIG5lZWQgdG8gYmxvY2sgc3luY2luZyBhdHRyaWJ1dGUuXG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmICFhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAnY2hlY2tib3gnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ2NoZWNrYm94JztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgcHJldmVudFNjcm9sbE9uU3BhY2ViYXJQcmVzcyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5dXAnLCB0aGlzLl9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvLyBBdHRyaWJ1dGUgc2hvdWxkIG5vdCBiZSBpbnRlcnByZXRlZCBhZnRlciBwcm9ncmFtbWF0aWMgb3IgbWFudWFsIHN0YXRlIGNoYW5nZS5cbiAgICAgIGlmIChuYW1lICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBzdGF0ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgbG9naWMgd2hpY2ggaXMgYmVpbmcgZXhlY3V0ZWQgd2hlbiB1c2VyXG4gICAgICogaW50ZXJhY3Rpb24gaGFwcGVucyBhbmQgc3RhdGUgaXMgbm90IGRpc2FibGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aXRoVXNlckludGVyYWN0aW9uPygpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZvcm1TdGF0ZSgpOiBGb3JtUmVzdG9yZVN0YXRlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAnY2hlY2tlZCcgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICBpMThuQ2hlY2tib3hSZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24ga2V5Ym9hcmQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZUtleWJvYXJkSW50ZXJhY3Rpb24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLl9oYW5kbGVVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24gdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVVzZXJJbnRlcmFjdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMud2l0aFVzZXJJbnRlcmFjdGlvbj8uKCk7XG4gICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOENBLElBQWEsa0NBQ1gsZUFDK0Q7Q0FFL0QsTUFBTSx3QkFBeUIsV0FBa0QsbUJBQzVFLGFBR0QseUJBQXlCLFdBQVc7QUEySnhDLGVBdEorQzswQkFIOUMsZUFBZSxFQUNkLFVBQVUsS0FDWCxDQUFDLENBQUE7Ozs7b0JBRVEsaUJBQWlCLGlCQUFpQix1QkFBdUIsc0JBQXNCLENBQUMsQ0FBQzs7O3VEQUFqRixZQUFpRjs7Ozs7OytCQVN4RixTQUFTO0tBQ1IsTUFBTTtLQUNOLFdBQVc7TUFDVCxHQUFHO01BRUgsZ0JBQWdCLE9BQXNCLFNBQXNDO0FBRTFFLGNBQU87UUFBRSxPQURNLGlCQUFpQixnQkFBZ0IsT0FBTyxLQUFLO1FBQ3BDLFdBQVc7UUFBNEI7OztLQUdwRSxDQUFDLENBQUE7QUFDRixpQkFBQSxNQUFBLE1BQUEseUJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxhQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFXLFVBQU87O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxNQUFBLDJCQUFBO0FBckJwQixpQkFBQSxNQUFBLG1CQUFBLEVBQUEsT0FBQSxZQUFBLEVBQUEsa0JBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQSxXQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSx3QkFBQTs7Ozs7Ozs7OztBQUlrQyxTQUFBLE9BQU87OztHQWlCdkMsSUFBVyxRQUFRLE9BQWM7SUFDL0IsTUFBTSxrQkFDSixPQUFPLFVBQVUsV0FBWSxNQUF3QyxZQUFZO0FBQ25GLFFBQUksZ0JBQ0YsU0FBUyxNQUF3QztBQUtuRCxRQUFJLEtBQUssY0FBYyxDQUFDLGdCQUN0QixNQUFLLDRCQUE0QjtBQUVuQyxTQUFLLFdBQVcsUUFBUSxNQUFNO0FBQzlCLFNBQUssaUJBQWlCOztHQUV4QixJQUFXLFVBQU87QUFDaEIsV0FBTyxLQUFLOzs7Ozs7R0FRZCxJQUFvQixPQUFJO0FBQ3RCLFdBQU87O0dBR1QsY0FBQTtBQUNFLFdBQU87QUE1Q0QsU0FBQSw2QkFOSyxrQkFBQSxNQUFBLDJCQUFnQyxFQU1UO0FBQzVCLFNBQUEsc0JBQXNCLElBQUksc0JBQXNCLEtBQUs7QUFnQ3JELFNBQUEsV0FBb0I7O0FBMkZwQixTQUFBLDhCQUE4QixVQUE4QjtBQUNsRSxTQUFJLE1BQU0sUUFBUSxJQUNoQixNQUFLLHdCQUF3Qjs7O0FBS3pCLFNBQUEsK0JBQW9DO0FBQzFDLFNBQUksS0FBSyxTQUNQO0FBRUYsVUFBSyx1QkFBdUI7QUFDNUIsVUFBSyxVQUFVLENBQUMsS0FBSztBQUNyQixVQUFLLDRCQUE0QjtBQUVqQyxVQUFLLGNBQWMsSUFBSSxXQUFXLFNBQVM7TUFBRSxVQUFVO01BQU0sU0FBUztNQUFNLENBQUMsQ0FBQztBQUM5RSxVQUFLLGNBQWMsSUFBSSxNQUFNLFVBQVUsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFDOztBQS9GMUQsU0FBSyxtQkFBbUIsU0FBUyxLQUFLLHVCQUF1QjtBQUM3RCxTQUFLLG1CQUFtQixXQUFXLDZCQUE2QjtBQUNoRSxTQUFLLG1CQUFtQixTQUFTLEtBQUssMkJBQTJCOztHQUduRCx5QkFDZCxNQUNBLEtBQ0EsT0FBb0I7QUFHcEIsUUFBSSxTQUFTLGFBQWEsQ0FBQyxLQUFLLDBCQUM5QixPQUFNLHlCQUF5QixNQUFNLEtBQUssTUFBTTs7Ozs7OztHQVNwQyxvQkFBaUI7QUFDL0IsU0FBSyxVQUFVLEtBQUssYUFBYSxVQUFVO0FBQzNDLFNBQUssNEJBQTRCOzs7Ozs7Ozs7OztHQVluQix5QkFDZCxPQUNBLFNBQTBCO0FBRTFCLFFBQUksTUFDRixNQUFLLFVBQVUsVUFBVTs7R0FVVixrQkFBZTtBQUNoQyxRQUFJLEtBQUssUUFDUCxPQUFNLGlCQUFpQjtRQUV2QixNQUFLLFVBQVUsYUFBYSxLQUFLOztHQUlsQixZQUFTO0FBQzFCLFdBQU8sR0FBRyxLQUFLOztHQUdFLGVBQWUsTUFBNkI7QUFDN0QsV0FBTyxNQUFNLGVBQWUsS0FBSyxJQUFJLFNBQVMsYUFBYSxTQUFTOztHQUduRCxXQUFRO0FBQ3pCLFVBQU0sVUFBVTtBQUNoQixRQUFJLEtBQUssWUFBWSxDQUFDLEtBQUssUUFDekIsTUFBSyxnQkFDSCxnQkFDQSxxQkFBcUIsS0FBSyxvQkFBb0IsU0FDL0M7UUFFRCxNQUFLLG1CQUFtQixlQUFlOzs7QUE3SDlCLHNCQUFBLFlBQUEsd0JBQUEifQ==
167
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtY2hlY2tib3gtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdENvbnZlcnRlciwgdHlwZSBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgcHJldmVudFNjcm9sbE9uU3BhY2ViYXJQcmVzcyB9IGZyb20gJy4uL2V2ZW50aW5nLnRzJztcbmltcG9ydCB7IGkxOG5DaGVja2JveFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4vZGlzYWJsZWQtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgU2JiRWxlbWVudEludGVybmFsc01peGluLFxuICB0eXBlIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUsXG4gIHR5cGUgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yLFxufSBmcm9tICcuL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLnRzJztcbmltcG9ydCB7XG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbn0gZnJvbSAnLi9mb3JtLWFzc29jaWF0ZWQtbWl4aW4udHMnO1xuaW1wb3J0IHsgU2JiUmVxdWlyZWRNaXhpbiB9IGZyb20gJy4vcmVxdWlyZWQtbWl4aW4udHMnO1xuXG5pbnRlcmZhY2UgQ2hlY2tlZFNldHRlclZhbHVlIHtcbiAgdmFsdWU6IGJvb2xlYW47XG4gIGF0dHJpYnV0ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluVHlwZSBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpKSxcbikge1xuICBwdWJsaWMgYWNjZXNzb3IgY2hlY2tlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgd2l0aFVzZXJJbnRlcmFjdGlvbj8oKTogdm9pZDtcbiAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW4gZW5hYmxlcyBuYXRpdmUgZm9ybSBzdXBwb3J0IGZvciBjaGVja2JveCBjb250cm9scy5cbiAqXG4gKiBJbmhlcml0ZWQgY2xhc3NlcyBNVVNUIGltcGxlbWVudCB0aGUgYXJpYUNoZWNrZWQgc3RhdGUgKEVsZW1lbnRJbnRlcm5hbHMpIHRoZW1zZWx2ZXMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmIFQgPT4ge1xuICAvLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IFJlbW92ZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gYW5kIGRlcGVuZCBvbiBTYmJFbGVtZW50IGFzIGJhc2UgY2xhc3MgaW5zdGVhZCBvZiBMaXRFbGVtZW50XG4gIGNvbnN0IGNvbmRpdGlvbmFsU3VwZXJDbGFzcyA9IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pWydfJHNiYkVsZW1lbnQkJ11cbiAgICA/IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPiAmXG4gICAgICAgIFQgJlxuICAgICAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IpXG4gICAgOiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oc3VwZXJDbGFzcyk7XG5cbiAgQGhvc3RBdHRyaWJ1dGVzKHtcbiAgICB0YWJpbmRleDogJzAnLFxuICB9KVxuICBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94RWxlbWVudFxuICAgIGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oY29uZGl0aW9uYWxTdXBlckNsYXNzKSkpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnY2hlY2tib3gnO1xuXG4gICAgcHJpdmF0ZSBfYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLiAqL1xuICAgIEBwcm9wZXJ0eSh7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgY29udmVydGVyOiB7XG4gICAgICAgIC4uLmRlZmF1bHRDb252ZXJ0ZXIsXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiB0byB0aGUgc2V0dGVyIHNvIHRoYXQgd2Uga25vdyBpdCB3YXMgY2FsbGVkIGJ5IGF0dHJpYnV0ZSBjaGFuZ2UuXG4gICAgICAgIGZyb21BdHRyaWJ1dGU6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCwgdHlwZT86IHVua25vd24pOiBDaGVja2VkU2V0dGVyVmFsdWUgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRlZmF1bHRDb252ZXJ0ZXIuZnJvbUF0dHJpYnV0ZT8uKHZhbHVlLCB0eXBlKTtcbiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcmVzdWx0LCBhdHRyaWJ1dGU6IHRydWUgfSBhcyBDaGVja2VkU2V0dGVyVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVTZXR0ZXIgPVxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gKHZhbHVlIGFzIHVua25vd24gYXMgQ2hlY2tlZFNldHRlclZhbHVlKS5hdHRyaWJ1dGUgOiBmYWxzZTtcbiAgICAgIGlmIChhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdmFsdWUgPSAodmFsdWUgYXMgdW5rbm93biBhcyBDaGVja2VkU2V0dGVyVmFsdWUpLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBcyBzb29uIGFzIG11dGF0aW9uIHdhcyBkb25lIG5vdCBieSBzZXR0aW5nIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIG5lZWQgdG8gYmxvY2sgc3luY2luZyBhdHRyaWJ1dGUuXG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmICFhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAnY2hlY2tib3gnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ2NoZWNrYm94JztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgcHJldmVudFNjcm9sbE9uU3BhY2ViYXJQcmVzcyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5dXAnLCB0aGlzLl9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvLyBBdHRyaWJ1dGUgc2hvdWxkIG5vdCBiZSBpbnRlcnByZXRlZCBhZnRlciBwcm9ncmFtbWF0aWMgb3IgbWFudWFsIHN0YXRlIGNoYW5nZS5cbiAgICAgIGlmIChuYW1lICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBzdGF0ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgbG9naWMgd2hpY2ggaXMgYmVpbmcgZXhlY3V0ZWQgd2hlbiB1c2VyXG4gICAgICogaW50ZXJhY3Rpb24gaGFwcGVucyBhbmQgc3RhdGUgaXMgbm90IGRpc2FibGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aXRoVXNlckludGVyYWN0aW9uPygpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZvcm1TdGF0ZSgpOiBGb3JtUmVzdG9yZVN0YXRlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAnY2hlY2tlZCcgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICBpMThuQ2hlY2tib3hSZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24ga2V5Ym9hcmQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZUtleWJvYXJkSW50ZXJhY3Rpb24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLl9oYW5kbGVVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24gdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVVzZXJJbnRlcmFjdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMud2l0aFVzZXJJbnRlcmFjdGlvbj8uKCk7XG4gICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOENBLElBQWEsa0NBQ1gsZUFDK0Q7Q0FFL0QsTUFBTSx3QkFBeUIsV0FBa0QsbUJBQzVFLGFBR0QseUJBQXlCLFdBQVc7QUEySnhDLGVBdEorQzswQkFIOUMsZUFBZSxFQUNkLFVBQVUsS0FDWCxDQUFDLENBQUE7Ozs7b0JBRVEsaUJBQWlCLGlCQUFpQix1QkFBdUIsc0JBQXNCLENBQUMsQ0FBQzs7O3VEQUFqRixZQUFpRjs7Ozs7OytCQVN4RixTQUFTO0tBQ1IsTUFBTTtLQUNOLFdBQVc7TUFDVCxHQUFHO01BRUgsZ0JBQWdCLE9BQXNCLFNBQXNDO0FBRTFFLGNBQU87UUFBRSxPQURNLGlCQUFpQixnQkFBZ0IsT0FBTyxLQUFLO1FBQ3BDLFdBQVc7UUFBNEI7OztLQUdwRSxDQUFDLENBQUE7QUFDRixpQkFBQSxNQUFBLE1BQUEseUJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxhQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFXLFVBQU87O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxNQUFBLDJCQUFBO0FBckJwQixpQkFBQSxNQUFBLG1CQUFBLEVBQUEsT0FBQSxZQUFBLEVBQUEsa0JBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQSxXQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSx3QkFBQTs7Ozs7Ozs7OztBQUlrQyxTQUFBLE9BQU87OztHQWlCdkMsSUFBVyxRQUFRLE9BQWM7SUFDL0IsTUFBTSxrQkFDSixPQUFPLFVBQVUsV0FBWSxNQUF3QyxZQUFZO0FBQ25GLFFBQUksZ0JBQ0YsU0FBUyxNQUF3QztBQUtuRCxRQUFJLEtBQUssY0FBYyxDQUFDLGdCQUN0QixNQUFLLDRCQUE0QjtBQUVuQyxTQUFLLFdBQVcsUUFBUSxNQUFNO0FBQzlCLFNBQUssaUJBQWlCOztHQUV4QixJQUFXLFVBQU87QUFDaEIsV0FBTyxLQUFLOzs7Ozs7R0FRZCxJQUFvQixPQUFJO0FBQ3RCLFdBQU87O0dBR1QsY0FBQTtBQUNFLFdBQU87QUE1Q0QsU0FBQSw2QkFOSyxrQkFBQSxNQUFBLDJCQUFnQyxFQU1UO0FBQzVCLFNBQUEsc0JBQXNCLElBQUksc0JBQXNCLEtBQUs7QUFnQ3JELFNBQUEsV0FBb0I7O0FBMkZwQixTQUFBLDhCQUE4QixVQUE4QjtBQUNsRSxTQUFJLE1BQU0sUUFBUSxJQUNoQixNQUFLLHdCQUF3Qjs7O0FBS3pCLFNBQUEsK0JBQW9DO0FBQzFDLFNBQUksS0FBSyxTQUNQO0FBRUYsVUFBSyx1QkFBdUI7QUFDNUIsVUFBSyxVQUFVLENBQUMsS0FBSztBQUNyQixVQUFLLDRCQUE0QjtBQUVqQyxVQUFLLGNBQWMsSUFBSSxXQUFXLFNBQVM7TUFBRSxVQUFVO01BQU0sU0FBUztNQUFNLENBQUMsQ0FBQztBQUM5RSxVQUFLLGNBQWMsSUFBSSxNQUFNLFVBQVUsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFDOztBQS9GMUQsU0FBSyxtQkFBbUIsU0FBUyxLQUFLLHVCQUF1QjtBQUM3RCxTQUFLLG1CQUFtQixXQUFXLDZCQUE2QjtBQUNoRSxTQUFLLG1CQUFtQixTQUFTLEtBQUssMkJBQTJCOztHQUduRCx5QkFDZCxNQUNBLEtBQ0EsT0FBb0I7QUFHcEIsUUFBSSxTQUFTLGFBQWEsQ0FBQyxLQUFLLDBCQUM5QixPQUFNLHlCQUF5QixNQUFNLEtBQUssTUFBTTs7Ozs7OztHQVNwQyxvQkFBaUI7QUFDL0IsU0FBSyxVQUFVLEtBQUssYUFBYSxVQUFVO0FBQzNDLFNBQUssNEJBQTRCOzs7Ozs7Ozs7OztHQVluQix5QkFDZCxPQUNBLFNBQTBCO0FBRTFCLFFBQUksTUFDRixNQUFLLFVBQVUsVUFBVTs7R0FVVixrQkFBZTtBQUNoQyxRQUFJLEtBQUssUUFDUCxPQUFNLGlCQUFpQjtRQUV2QixNQUFLLFVBQVUsYUFBYSxLQUFLOztHQUlsQixZQUFTO0FBQzFCLFdBQU8sR0FBRyxLQUFLOztHQUdFLGVBQWUsTUFBNkI7QUFDN0QsV0FBTyxNQUFNLGVBQWUsS0FBSyxJQUFJLFNBQVMsYUFBYSxTQUFTOztHQUduRCxXQUFRO0FBQ3pCLFVBQU0sVUFBVTtBQUNoQixRQUFJLEtBQUssWUFBWSxDQUFDLEtBQUssUUFDekIsTUFBSyxnQkFDSCxnQkFDQSxxQkFBcUIsS0FBSyxvQkFBb0IsU0FDL0M7UUFFRCxNQUFLLG1CQUFtQixlQUFlOzs7QUE3SDlCLHNCQUFBLFlBQUEsd0JBQUE7Ozs7S0FzSlIifQ==
@@ -337,4 +337,4 @@ var SbbFormAssociatedInputMixin = (superClass) => {
337
337
  //#endregion
338
338
  export { SbbFormAssociatedInputMixin };
339
339
 
340
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgTGl0RWxlbWVudCxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgZXZlbnRPcHRpb25zLCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi4vYTExeS50cyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsIFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlIH0gZnJvbSAnLi4vY29udHJvbGxlcnMudHMnO1xuaW1wb3J0IHsgaXNCbGluaywgaXNXZWJraXQgfSBmcm9tICcuLi9kb20udHMnO1xuaW1wb3J0IHsgaTE4bklucHV0UmVxdWlyZWQgfSBmcm9tICcuLi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sXG4gIHR5cGUgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSxcbiAgdHlwZSBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IsXG59IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZWFkb25seU1peGluIH0gZnJvbSAnLi9yZWFkb25seS1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGUgZXh0ZW5kcyBTYmJSZXF1aXJlZE1peGluKFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmIFQgPT4ge1xuICAvLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IFJlbW92ZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gYW5kIGRlcGVuZCBvbiBTYmJFbGVtZW50IGFzIGJhc2UgY2xhc3MgaW5zdGVhZCBvZiBMaXRFbGVtZW50XG4gIGNvbnN0IGNvbmRpdGlvbmFsU3VwZXJDbGFzcyA9IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pWydfJHNiYkVsZW1lbnQkJ11cbiAgICA/IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPiAmXG4gICAgICAgIFQgJlxuICAgICAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IpXG4gICAgOiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oc3VwZXJDbGFzcyk7XG5cbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oXG4gICAgICBTYmJEaXNhYmxlZE1peGluKFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihjb25kaXRpb25hbFN1cGVyQ2xhc3MpKSksXG4gICAgKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3RleHRib3gnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZm9ybUZpZWxkQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBBbiBlbGVtZW50IHdpdGggY29udGVudGVkaXRhYmxlIHdpbGwgbm90IGVtaXQgYSBjaGFuZ2UgZXZlbnQuIFRvIGFjaGlldmUgcGFyaXR5XG4gICAgICogd2l0aCBhIG5hdGl2ZSB0ZXh0IGlucHV0LCB3ZSBuZWVkIHRvIHRyYWNrIHdoZXRoZXIgYSBjaGFuZ2UgZXZlbnQgc2hvdWxkIGJlXG4gICAgICogZW1pdHRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQSBuYXRpdmUgdGV4dCBpbnB1dCBhdHRlbXB0cyB0byBzdWJtaXQgdGhlIGZvcm0gd2hlbiBwcmVzc2luZyBFbnRlci5cbiAgICAgKiBUaGlzIGNhbiBiZSBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2ZW50RGVmYXVsdCBvbiB0aGUga2V5ZG93biBldmVudC5cbiAgICAgKiBXZSB0cmFjayB3aGV0aGVyIHRvIHJlcXVlc3Qgc3VibWl0LCB3aGljaCBzaG91bGQgb2NjdXIgYmVmb3JlIHRoZSBrZXl1cFxuICAgICAqIGV2ZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAndGV4dCdcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBpbnB1dC4gUmVmbGVjdHMgdGhlIGN1cnJlbnQgdGV4dCB2YWx1ZSBvZiB0aGlzIGlucHV0LlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh2YWx1ZSk7XG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Rpc3BsYXl2YWx1ZWNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWUgPz8gJyc7XG4gICAgfVxuICAgIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFQbGFjZWhvbGRlciA9IHZhbHVlID8gdmFsdWUgOiBudWxsO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgPz8gJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIC8vIFdlIHByaW1hcmlseSB1c2UgY2FwdHVyZSBldmVudCBsaXN0ZW5lcnMsIGFzIHdlIHdhbnRcbiAgICAgIC8vIG91ciBsaXN0ZW5lcnMgdG8gb2NjdXIgYmVmb3JlIGNvbnN1bWVyIGV2ZW50IGxpc3RlbmVycy5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnaW5wdXQnLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh0aGlzLnRleHRDb250ZW50ID8/ICcnKTtcbiAgICAgICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoJ3ZhbHVlJywgb2xkVmFsdWUpO1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2ludGVyYWN0ZWQnKTtcbiAgICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NoYW5nZScsICgpID0+ICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2UpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gV2UgcHJldmVudCByZWN1cnNpdmUgZXZlbnRzIGJ5IGNoZWNraW5nIHRoZSBvcmlnaW5hbCBldmVudCBmb3IgaXNUcnVzdGVkXG4gICAgICAgICAgLy8gd2hpY2ggaXMgZmFsc2UgZm9yIG1hbnVhbGx5IGRpc3BhdGNoZWQgZXZlbnRzICh3aGljaCB3ZSBkaXNwYXRjaCBiZWxvdykuXG4gICAgICAgICAgaWYgKChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnXFxuJykgJiYgZXZlbnQuaXNUcnVzdGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0ID0gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgaXNXZWJraXQgJiZcbiAgICAgICAgICAgIHRoaXMudmFsdWUgJiZcbiAgICAgICAgICAgIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnIHx8IGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpICYmXG4gICAgICAgICAgICBldmVudC5pc1RydXN0ZWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEluIFdlYmtpdCBwcmVzc2luZyBCYWNrc3BhY2Ugb3IgRGVsZXRlIGNvbXBsZXRlbHkgcmVtb3ZlcyBhbGwgdGhlIGNvbnRlbnRcbiAgICAgICAgICAgIC8vIGlmIGNvbnRlbnRlZGl0YWJsZSBpcyBzZXQgb24gYSB3ZWIgY29tcG9uZW50IGhvc3QuXG4gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIHJlcGxpY2F0ZSB0aGUgbm9ybWFsIGRlbGV0ZSBiZWhhdmlvci5cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCBldmVudCkpKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRSYW5nZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCkge1xuICAgICAgICAgICAgICAvLyBJZiBhIHRleHQgcmFuZ2UgaXMgc2VsZWN0ZWQsIHRoZW4gZGVsZXRlIHRoaXMgcmFuZ2VcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyAmJiBzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0ID4gMCkge1xuICAgICAgICAgICAgICAvLyBXaGVuIHByZXNzaW5nIEJhY2tzcGFjZSwgd2Ugc2VsZWN0IHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0IC0gMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScgJiYgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQgPCB0aGlzLnZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAvLyBXaGVuIHByZXNzaW5nIERlbGV0ZSwgd2Ugc2VsZWN0IHRoZSBuZXh0IGNoYXJhY3RlciBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBhbmQgZGVsZXRlIGl0LlxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLnNldEVuZChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQgKyAxKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5dXAnLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFuZ2VJZk5lY2Vzc2FyeSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQpIHtcbiAgICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmZvcm0/LnJlcXVlc3RTdWJtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIC8vIGNvbnRlbnRlZGl0YWJsZSBhbGxvd3MgcGFzdGluZyByaWNoIGNvbnRlbnQgaW50byBpdHMgaG9zdC5cbiAgICAgIC8vIFdlIHByZXZlbnQgdGhpcyBieSBsaXN0ZW5pbmcgdG8gdGhlIHBhc3RlIGV2ZW50IGFuZFxuICAgICAgLy8gZXh0cmFjdGluZyB0aGUgcGxhaW4gdGV4dCBmcm9tIHRoZSBwYXN0ZWQgY29udGVudFxuICAgICAgLy8gYW5kIGluc2VydGluZyBpdCBpbnRvIHRoZSBzZWxlY3RlZCByYW5nZSAoY3Vyc29yIHBvc2l0aW9uXG4gICAgICAvLyBvciBzZWxlY3Rpb24pLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3Bhc3RlJywgKGUpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5fY2xlYW5UZXh0KGUuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpID8/ICcnKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSYW5nZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlIHx8ICF0ZXh0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICBzZWxlY3RlZFJhbmdlLmluc2VydE5vZGUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy5wcmVwYXJlUGFzdGVkVGV4dCh0ZXh0KSkpO1xuICAgICAgICBzZWxlY3RlZFJhbmdlLnNldFN0YXJ0KHNlbGVjdGVkUmFuZ2UuZW5kQ29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCk7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgfSk7XG4gICAgICAvLyBXaGVuIGZvY3VzaW5nIGEgdGV4dCBpbnB1dCB2aWEga2V5Ym9hcmQsIHRoZSB0ZXh0IGNvbnRlbnQgc2hvdWxkIGJlIHNlbGVjdGVkLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgIC8vIFRPRE86IFRoaXMgZG9lcyBub3Qgc2VlbSB0byB3b3JrIGluIEZpcmVmb3ggd2l0aCByZWFkb25seS5cbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCd0b3VjaGVuZCcsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJyZuYnNwOycpO1xuICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpICYmIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICd0b3VjaCcpIHtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIE9uIGJsdXIgdGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHNjcm9sbHMgdGhlIHRleHQgdG8gdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LlxuICAgICAgLy8gV2UgbWltaWMgdGhhdCBieSByZXNldHRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi5cbiAgICAgIC8vIFdlIGFsc28gdW5zZXQgYW55IHNlbGVjdGlvbiB0byBhbGlnbiB3aXRoIHRoZSBuYXRpdmUgdGV4dCBpbnB1dC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnYmx1cicsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICB0aGlzLnNjcm9sbExlZnQgPSAwO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTXVsdGlMaW5lID0gJ2ZhbHNlJztcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIHJlcGxhY2UgYW55IGNvbnRlbnQgYnkganVzdCB0aGUgdGV4dCBjb250ZW50LlxuICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZvY3VzKG9wdGlvbnMpO1xuICAgICAgLy8gQnkgZGVmYXVsdCwgd2hlbiBjYWxsaW5nIGZvY3VzIG9uIGFuIGlucHV0IGVsZW1lbnQsIHRoZSBjdXJzb3IgaXMgcGxhY2VkXG4gICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCB0ZXh0LiBIb3dldmVyLCB3aXRoIGNvbnRlbnRlZGl0YWJsZSwgdGhlIGN1cnNvclxuICAgICAgLy8gaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcsIHNvIHdlIG1vdmUgaXQgdG8gdGhlIGVuZCwgaWYgdGhhdCBpcyB0aGUgY2FzZS5cbiAgICAgIGlmICh0aGlzLl9jYW5TZWxlY3QoKSkge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCh0aGlzLnRleHRDb250ZW50IS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IGNoYW5nZXMgdGhlIHZhbHVlIHByb3BlcnR5IHdoZW4gdGhlIHZhbHVlIGF0dHJpYnV0ZSBpc1xuICAgICAgICogY2hhbmdlZCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgbm8gaW5wdXQgZXZlbnQgaGFzIG9jY3VycmVkIHNpbmNlIGNyZWF0aW9uXG4gICAgICAgKiBvciB0aGUgbGFzdCBmb3JtIHJlc2V0LlxuICAgICAgICovXG4gICAgICBpZiAobmFtZSAhPT0gJ3ZhbHVlJyB8fCAhdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcygnaW50ZXJhY3RlZCcpKSB7XG4gICAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdpbnRlcmFjdGVkJyk7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIENhbGxlZCB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byByZXN0b3JlIGVsZW1lbnTigJlzIHN0YXRlIHRvIHN0YXRlIGluIHdoaWNoIGNhc2VcbiAgICAgKiAgcmVhc29uIGlzIFwicmVzdG9yZVwiLCBvciB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byBmdWxmaWxsIGF1dG9maWxsIG9uIGJlaGFsZiBvZlxuICAgICAqICB1c2VyIGluIHdoaWNoIGNhc2UgcmVhc29uIGlzIFwiYXV0b2NvbXBsZXRlXCIuXG4gICAgICogIEluIHRoZSBjYXNlIG9mIFwicmVzdG9yZVwiLCBzdGF0ZSBpcyBhIHN0cmluZywgRmlsZSwgb3IgRm9ybURhdGEgb2JqZWN0XG4gICAgICogIHByZXZpb3VzbHkgc2V0IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gc2V0Rm9ybVZhbHVlLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQge1xuICAgICAgaWYgKHN0YXRlICYmIHR5cGVvZiBzdGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHN0YXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgICAqXG4gICAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0XG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uc2VsZWN0QWxsQ2hpbGRyZW4odGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIC8vIElmIHRoZSB2YWx1ZSB3YXMgYXNzaWduZWQgYmVmb3JlIGZpcnN0VXBkYXRlLCB3ZSBoYXZlIHRvXG4gICAgICAvLyB3cml0ZSBpdCB0aGUgZG9jdW1lbnQgdG8gYmUgdmlzdWFsbHkgc2VlblxuICAgICAgaWYgKHRoaXMudmFsdWUgJiYgIXRoaXMuaW5uZXJIVE1MLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaXNDb25uZWN0ZWQgJiZcbiAgICAgICAgKG5hbWUgPT09ICdkaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ2Zvcm1EaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ3JlYWRPbmx5JylcbiAgICAgICkge1xuICAgICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAndmFsdWUnIHx8IG5hbWUgPT09ICdyZXF1aXJlZCc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF0aGlzLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnLCBpMThuSW5wdXRSZXF1aXJlZFt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlcXVpcmVzRW1wdHlQYXRjaCgpOiBib29sZWFuIHtcbiAgICAgIC8vIEluIEJsaW5rLCBhIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50IHdpdGggZW1wdHkgY29udGVudCB3aWxsIGNyYXNoXG4gICAgICAvLyB1cG9uIHJlY2VpdmluZyBmb2N1cywgd2hlbiBpbiBNb2JpbGUgbW9kZS5cbiAgICAgIC8vIFRvIHByZXZlbnQgdGhpcywgd2UgcGF0Y2ggdGhlIGVtcHR5IHN0YXRlIGJ5IGluc2VydGluZyBhIG5vbi1icmVha2luZyBzcGFjZS5cbiAgICAgIHJldHVybiBpc1NlcnZlclxuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDogaXNCbGluayAmJiB0aGlzLnZhbHVlID09PSAnJyAmJiB3aW5kb3cubWF0Y2hNZWRpYShTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSkubWF0Y2hlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hc3NpZ25WYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICB0aGlzLmlubmVySFRNTCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEN1cnNvckF0KHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgcmFuZ2Uuc2V0U3RhcnQodGhpcy5maXJzdENoaWxkISwgcG9zaXRpb24pO1xuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NsZWFuVGV4dCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIC8vIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCByZW1vdmVzIGFsbCBuZXdsaW5lIGNoYXJhY3RlcnMgaWYgcGFzc2VkIHRvIHRoZSB2YWx1ZSBwcm9wZXJ0eVxuICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsID8gJycgOiBgJHt2YWx1ZX1gLnJlcGxhY2UoL1tcXG5cXHJdKy9nLCAnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzcGF0Y2hJbnB1dEV2ZW50KCk6IHZvaWQge1xuICAgICAgLyoqIFRoZSBpbnB1dCBldmVudCBmaXJlcyB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLiAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIEBldmVudE9wdGlvbnMoeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfY2xlYW5DaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkRWxlbWVudENvdW50KSB7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpOiB2b2lkIHtcbiAgICAgIGlmICghaXNTZXJ2ZXIgJiYgdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhUmVhZE9ubHkgPSB0aGlzLnJlYWRPbmx5ID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIC8vIFRPRE8oMjAyNik6IEZpcmVmb3ggc3VwcG9ydHMgcGxhaW50ZXh0LW9ubHkgc2luY2UgdmVyc2lvbiAxMzYgKE1hcmNoIDIwMjUpLlxuICAgICAgICAvLyBVbnRpbCB0aGlzIGlzIHBhcnQgb2Ygb3VyIGJhc2VsaW5lLCB3ZSBzaG91bGQgZmVhdHVyZSBjaGVjayB0byBlbmFibGUgaXQuXG4gICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICB0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZE9ubHlcbiAgICAgICAgICAgID8gJ2ZhbHNlJ1xuICAgICAgICAgICAgOiBwbGFpbnRleHRPbmx5U3VwcG9ydGVkXG4gICAgICAgICAgICAgID8gJ3BsYWludGV4dC1vbmx5J1xuICAgICAgICAgICAgICA6ICd0cnVlJztcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsIHZhbHVlKTtcbiAgICAgICAgLy8gSW4gdGhlIHJlYWRvbmx5IGNhc2UsIHdlIGRpc2FibGUgY29udGVudGVkaXRhYmxlLCBidXQgaXQgc3RpbGxcbiAgICAgICAgLy8gbmVlZHMgdG8gYmUgZm9jdXNhYmxlLiBXZSBhY2hpZXZlIHRoaXMgYnkgc2V0dGluZyB0YWJpbmRleCBpbiB0aGF0IGNhc2UuXG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2VtaXRDaGFuZ2VJZk5lY2Vzc2FyeSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlKSB7XG4gICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgLyoqIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZCBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS4gKi9cbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW5TZWxlY3QoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIWlzU2VydmVyICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5ICYmICEhdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IHVua25vd24ge1xuICAgICAgcmV0dXJuIGh0bWxgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jbGVhbkNoaWxkcmVufT48L3Nsb3Q+YDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQTREQSxJQUFNLGtDQUEwQztBQUM5QyxLQUFJLFNBQ0YsUUFBTztDQUdULE1BQU0sTUFBTSxTQUFTLGNBQWMsTUFBTTtBQUN6QyxLQUFJLGFBQWEsbUJBQW1CLGlCQUFpQjtBQUlyRCxRQUFPLElBQUksb0JBQW9COztBQUVqQyxJQUFNLHlCQUF5QiwyQkFBMkI7Ozs7QUFNMUQsSUFBYSwrQkFDWCxlQUM0RDtDQUU1RCxNQUFNLHdCQUF5QixXQUFrRCxtQkFDNUUsYUFHRCx5QkFBeUIsV0FBVztBQWtheEMsZUFoYTRDO29CQUNsQyxpQkFDTixpQkFBaUIsaUJBQWlCLHVCQUF1QixzQkFBc0IsQ0FBQyxDQUFDLENBQ2xGOzs7OztlQUhZ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
340
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgTGl0RWxlbWVudCxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgZXZlbnRPcHRpb25zLCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi4vYTExeS50cyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsIFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlIH0gZnJvbSAnLi4vY29udHJvbGxlcnMudHMnO1xuaW1wb3J0IHsgaXNCbGluaywgaXNXZWJraXQgfSBmcm9tICcuLi9kb20udHMnO1xuaW1wb3J0IHsgaTE4bklucHV0UmVxdWlyZWQgfSBmcm9tICcuLi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4sXG4gIHR5cGUgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSxcbiAgdHlwZSBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IsXG59IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZWFkb25seU1peGluIH0gZnJvbSAnLi9yZWFkb25seS1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGUgZXh0ZW5kcyBTYmJSZXF1aXJlZE1peGluKFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmIFQgPT4ge1xuICAvLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IFJlbW92ZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gYW5kIGRlcGVuZCBvbiBTYmJFbGVtZW50IGFzIGJhc2UgY2xhc3MgaW5zdGVhZCBvZiBMaXRFbGVtZW50XG4gIGNvbnN0IGNvbmRpdGlvbmFsU3VwZXJDbGFzcyA9IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pWydfJHNiYkVsZW1lbnQkJ11cbiAgICA/IChzdXBlckNsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPiAmXG4gICAgICAgIFQgJlxuICAgICAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IpXG4gICAgOiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oc3VwZXJDbGFzcyk7XG5cbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oXG4gICAgICBTYmJEaXNhYmxlZE1peGluKFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihjb25kaXRpb25hbFN1cGVyQ2xhc3MpKSksXG4gICAgKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3RleHRib3gnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZm9ybUZpZWxkQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBBbiBlbGVtZW50IHdpdGggY29udGVudGVkaXRhYmxlIHdpbGwgbm90IGVtaXQgYSBjaGFuZ2UgZXZlbnQuIFRvIGFjaGlldmUgcGFyaXR5XG4gICAgICogd2l0aCBhIG5hdGl2ZSB0ZXh0IGlucHV0LCB3ZSBuZWVkIHRvIHRyYWNrIHdoZXRoZXIgYSBjaGFuZ2UgZXZlbnQgc2hvdWxkIGJlXG4gICAgICogZW1pdHRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQSBuYXRpdmUgdGV4dCBpbnB1dCBhdHRlbXB0cyB0byBzdWJtaXQgdGhlIGZvcm0gd2hlbiBwcmVzc2luZyBFbnRlci5cbiAgICAgKiBUaGlzIGNhbiBiZSBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2ZW50RGVmYXVsdCBvbiB0aGUga2V5ZG93biBldmVudC5cbiAgICAgKiBXZSB0cmFjayB3aGV0aGVyIHRvIHJlcXVlc3Qgc3VibWl0LCB3aGljaCBzaG91bGQgb2NjdXIgYmVmb3JlIHRoZSBrZXl1cFxuICAgICAqIGV2ZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAndGV4dCdcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBpbnB1dC4gUmVmbGVjdHMgdGhlIGN1cnJlbnQgdGV4dCB2YWx1ZSBvZiB0aGlzIGlucHV0LlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh2YWx1ZSk7XG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Rpc3BsYXl2YWx1ZWNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWUgPz8gJyc7XG4gICAgfVxuICAgIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFQbGFjZWhvbGRlciA9IHZhbHVlID8gdmFsdWUgOiBudWxsO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgPz8gJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIC8vIFdlIHByaW1hcmlseSB1c2UgY2FwdHVyZSBldmVudCBsaXN0ZW5lcnMsIGFzIHdlIHdhbnRcbiAgICAgIC8vIG91ciBsaXN0ZW5lcnMgdG8gb2NjdXIgYmVmb3JlIGNvbnN1bWVyIGV2ZW50IGxpc3RlbmVycy5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnaW5wdXQnLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh0aGlzLnRleHRDb250ZW50ID8/ICcnKTtcbiAgICAgICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoJ3ZhbHVlJywgb2xkVmFsdWUpO1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2ludGVyYWN0ZWQnKTtcbiAgICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NoYW5nZScsICgpID0+ICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2UpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gV2UgcHJldmVudCByZWN1cnNpdmUgZXZlbnRzIGJ5IGNoZWNraW5nIHRoZSBvcmlnaW5hbCBldmVudCBmb3IgaXNUcnVzdGVkXG4gICAgICAgICAgLy8gd2hpY2ggaXMgZmFsc2UgZm9yIG1hbnVhbGx5IGRpc3BhdGNoZWQgZXZlbnRzICh3aGljaCB3ZSBkaXNwYXRjaCBiZWxvdykuXG4gICAgICAgICAgaWYgKChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnXFxuJykgJiYgZXZlbnQuaXNUcnVzdGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0ID0gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgaXNXZWJraXQgJiZcbiAgICAgICAgICAgIHRoaXMudmFsdWUgJiZcbiAgICAgICAgICAgIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnIHx8IGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpICYmXG4gICAgICAgICAgICBldmVudC5pc1RydXN0ZWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEluIFdlYmtpdCBwcmVzc2luZyBCYWNrc3BhY2Ugb3IgRGVsZXRlIGNvbXBsZXRlbHkgcmVtb3ZlcyBhbGwgdGhlIGNvbnRlbnRcbiAgICAgICAgICAgIC8vIGlmIGNvbnRlbnRlZGl0YWJsZSBpcyBzZXQgb24gYSB3ZWIgY29tcG9uZW50IGhvc3QuXG4gICAgICAgICAgICAvLyBXZSBoYXZlIHRvIHJlcGxpY2F0ZSB0aGUgbm9ybWFsIGRlbGV0ZSBiZWhhdmlvci5cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCBldmVudCkpKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRSYW5nZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCkge1xuICAgICAgICAgICAgICAvLyBJZiBhIHRleHQgcmFuZ2UgaXMgc2VsZWN0ZWQsIHRoZW4gZGVsZXRlIHRoaXMgcmFuZ2VcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyAmJiBzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0ID4gMCkge1xuICAgICAgICAgICAgICAvLyBXaGVuIHByZXNzaW5nIEJhY2tzcGFjZSwgd2Ugc2VsZWN0IHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLnN0YXJ0Q29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLnN0YXJ0T2Zmc2V0IC0gMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScgJiYgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQgPCB0aGlzLnZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAvLyBXaGVuIHByZXNzaW5nIERlbGV0ZSwgd2Ugc2VsZWN0IHRoZSBuZXh0IGNoYXJhY3RlciBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBhbmQgZGVsZXRlIGl0LlxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLnNldEVuZChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQgKyAxKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5dXAnLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFuZ2VJZk5lY2Vzc2FyeSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQpIHtcbiAgICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmZvcm0/LnJlcXVlc3RTdWJtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIC8vIGNvbnRlbnRlZGl0YWJsZSBhbGxvd3MgcGFzdGluZyByaWNoIGNvbnRlbnQgaW50byBpdHMgaG9zdC5cbiAgICAgIC8vIFdlIHByZXZlbnQgdGhpcyBieSBsaXN0ZW5pbmcgdG8gdGhlIHBhc3RlIGV2ZW50IGFuZFxuICAgICAgLy8gZXh0cmFjdGluZyB0aGUgcGxhaW4gdGV4dCBmcm9tIHRoZSBwYXN0ZWQgY29udGVudFxuICAgICAgLy8gYW5kIGluc2VydGluZyBpdCBpbnRvIHRoZSBzZWxlY3RlZCByYW5nZSAoY3Vyc29yIHBvc2l0aW9uXG4gICAgICAvLyBvciBzZWxlY3Rpb24pLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3Bhc3RlJywgKGUpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5fY2xlYW5UZXh0KGUuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpID8/ICcnKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSYW5nZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlIHx8ICF0ZXh0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICBzZWxlY3RlZFJhbmdlLmluc2VydE5vZGUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy5wcmVwYXJlUGFzdGVkVGV4dCh0ZXh0KSkpO1xuICAgICAgICBzZWxlY3RlZFJhbmdlLnNldFN0YXJ0KHNlbGVjdGVkUmFuZ2UuZW5kQ29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCk7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgfSk7XG4gICAgICAvLyBXaGVuIGZvY3VzaW5nIGEgdGV4dCBpbnB1dCB2aWEga2V5Ym9hcmQsIHRoZSB0ZXh0IGNvbnRlbnQgc2hvdWxkIGJlIHNlbGVjdGVkLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgIC8vIFRPRE86IFRoaXMgZG9lcyBub3Qgc2VlbSB0byB3b3JrIGluIEZpcmVmb3ggd2l0aCByZWFkb25seS5cbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCd0b3VjaGVuZCcsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJyZuYnNwOycpO1xuICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpICYmIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICd0b3VjaCcpIHtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIE9uIGJsdXIgdGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHNjcm9sbHMgdGhlIHRleHQgdG8gdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LlxuICAgICAgLy8gV2UgbWltaWMgdGhhdCBieSByZXNldHRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi5cbiAgICAgIC8vIFdlIGFsc28gdW5zZXQgYW55IHNlbGVjdGlvbiB0byBhbGlnbiB3aXRoIHRoZSBuYXRpdmUgdGV4dCBpbnB1dC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnYmx1cicsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICB0aGlzLnNjcm9sbExlZnQgPSAwO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTXVsdGlMaW5lID0gJ2ZhbHNlJztcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIHJlcGxhY2UgYW55IGNvbnRlbnQgYnkganVzdCB0aGUgdGV4dCBjb250ZW50LlxuICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZvY3VzKG9wdGlvbnMpO1xuICAgICAgLy8gQnkgZGVmYXVsdCwgd2hlbiBjYWxsaW5nIGZvY3VzIG9uIGFuIGlucHV0IGVsZW1lbnQsIHRoZSBjdXJzb3IgaXMgcGxhY2VkXG4gICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCB0ZXh0LiBIb3dldmVyLCB3aXRoIGNvbnRlbnRlZGl0YWJsZSwgdGhlIGN1cnNvclxuICAgICAgLy8gaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcsIHNvIHdlIG1vdmUgaXQgdG8gdGhlIGVuZCwgaWYgdGhhdCBpcyB0aGUgY2FzZS5cbiAgICAgIGlmICh0aGlzLl9jYW5TZWxlY3QoKSkge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCh0aGlzLnRleHRDb250ZW50IS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IGNoYW5nZXMgdGhlIHZhbHVlIHByb3BlcnR5IHdoZW4gdGhlIHZhbHVlIGF0dHJpYnV0ZSBpc1xuICAgICAgICogY2hhbmdlZCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgbm8gaW5wdXQgZXZlbnQgaGFzIG9jY3VycmVkIHNpbmNlIGNyZWF0aW9uXG4gICAgICAgKiBvciB0aGUgbGFzdCBmb3JtIHJlc2V0LlxuICAgICAgICovXG4gICAgICBpZiAobmFtZSAhPT0gJ3ZhbHVlJyB8fCAhdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcygnaW50ZXJhY3RlZCcpKSB7XG4gICAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdpbnRlcmFjdGVkJyk7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIENhbGxlZCB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byByZXN0b3JlIGVsZW1lbnTigJlzIHN0YXRlIHRvIHN0YXRlIGluIHdoaWNoIGNhc2VcbiAgICAgKiAgcmVhc29uIGlzIFwicmVzdG9yZVwiLCBvciB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byBmdWxmaWxsIGF1dG9maWxsIG9uIGJlaGFsZiBvZlxuICAgICAqICB1c2VyIGluIHdoaWNoIGNhc2UgcmVhc29uIGlzIFwiYXV0b2NvbXBsZXRlXCIuXG4gICAgICogIEluIHRoZSBjYXNlIG9mIFwicmVzdG9yZVwiLCBzdGF0ZSBpcyBhIHN0cmluZywgRmlsZSwgb3IgRm9ybURhdGEgb2JqZWN0XG4gICAgICogIHByZXZpb3VzbHkgc2V0IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gc2V0Rm9ybVZhbHVlLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQge1xuICAgICAgaWYgKHN0YXRlICYmIHR5cGVvZiBzdGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHN0YXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgICAqXG4gICAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0XG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uc2VsZWN0QWxsQ2hpbGRyZW4odGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIC8vIElmIHRoZSB2YWx1ZSB3YXMgYXNzaWduZWQgYmVmb3JlIGZpcnN0VXBkYXRlLCB3ZSBoYXZlIHRvXG4gICAgICAvLyB3cml0ZSBpdCB0aGUgZG9jdW1lbnQgdG8gYmUgdmlzdWFsbHkgc2VlblxuICAgICAgaWYgKHRoaXMudmFsdWUgJiYgIXRoaXMuaW5uZXJIVE1MLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaXNDb25uZWN0ZWQgJiZcbiAgICAgICAgKG5hbWUgPT09ICdkaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ2Zvcm1EaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ3JlYWRPbmx5JylcbiAgICAgICkge1xuICAgICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAndmFsdWUnIHx8IG5hbWUgPT09ICdyZXF1aXJlZCc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF0aGlzLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnLCBpMThuSW5wdXRSZXF1aXJlZFt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlcXVpcmVzRW1wdHlQYXRjaCgpOiBib29sZWFuIHtcbiAgICAgIC8vIEluIEJsaW5rLCBhIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50IHdpdGggZW1wdHkgY29udGVudCB3aWxsIGNyYXNoXG4gICAgICAvLyB1cG9uIHJlY2VpdmluZyBmb2N1cywgd2hlbiBpbiBNb2JpbGUgbW9kZS5cbiAgICAgIC8vIFRvIHByZXZlbnQgdGhpcywgd2UgcGF0Y2ggdGhlIGVtcHR5IHN0YXRlIGJ5IGluc2VydGluZyBhIG5vbi1icmVha2luZyBzcGFjZS5cbiAgICAgIHJldHVybiBpc1NlcnZlclxuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDogaXNCbGluayAmJiB0aGlzLnZhbHVlID09PSAnJyAmJiB3aW5kb3cubWF0Y2hNZWRpYShTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSkubWF0Y2hlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hc3NpZ25WYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICB0aGlzLmlubmVySFRNTCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEN1cnNvckF0KHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgcmFuZ2Uuc2V0U3RhcnQodGhpcy5maXJzdENoaWxkISwgcG9zaXRpb24pO1xuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NsZWFuVGV4dCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIC8vIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCByZW1vdmVzIGFsbCBuZXdsaW5lIGNoYXJhY3RlcnMgaWYgcGFzc2VkIHRvIHRoZSB2YWx1ZSBwcm9wZXJ0eVxuICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsID8gJycgOiBgJHt2YWx1ZX1gLnJlcGxhY2UoL1tcXG5cXHJdKy9nLCAnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzcGF0Y2hJbnB1dEV2ZW50KCk6IHZvaWQge1xuICAgICAgLyoqIFRoZSBpbnB1dCBldmVudCBmaXJlcyB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLiAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIEBldmVudE9wdGlvbnMoeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfY2xlYW5DaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkRWxlbWVudENvdW50KSB7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpOiB2b2lkIHtcbiAgICAgIGlmICghaXNTZXJ2ZXIgJiYgdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhUmVhZE9ubHkgPSB0aGlzLnJlYWRPbmx5ID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIC8vIFRPRE8oMjAyNik6IEZpcmVmb3ggc3VwcG9ydHMgcGxhaW50ZXh0LW9ubHkgc2luY2UgdmVyc2lvbiAxMzYgKE1hcmNoIDIwMjUpLlxuICAgICAgICAvLyBVbnRpbCB0aGlzIGlzIHBhcnQgb2Ygb3VyIGJhc2VsaW5lLCB3ZSBzaG91bGQgZmVhdHVyZSBjaGVjayB0byBlbmFibGUgaXQuXG4gICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICB0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZE9ubHlcbiAgICAgICAgICAgID8gJ2ZhbHNlJ1xuICAgICAgICAgICAgOiBwbGFpbnRleHRPbmx5U3VwcG9ydGVkXG4gICAgICAgICAgICAgID8gJ3BsYWludGV4dC1vbmx5J1xuICAgICAgICAgICAgICA6ICd0cnVlJztcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsIHZhbHVlKTtcbiAgICAgICAgLy8gSW4gdGhlIHJlYWRvbmx5IGNhc2UsIHdlIGRpc2FibGUgY29udGVudGVkaXRhYmxlLCBidXQgaXQgc3RpbGxcbiAgICAgICAgLy8gbmVlZHMgdG8gYmUgZm9jdXNhYmxlLiBXZSBhY2hpZXZlIHRoaXMgYnkgc2V0dGluZyB0YWJpbmRleCBpbiB0aGF0IGNhc2UuXG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2VtaXRDaGFuZ2VJZk5lY2Vzc2FyeSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlKSB7XG4gICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgLyoqIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZCBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS4gKi9cbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW5TZWxlY3QoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIWlzU2VydmVyICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5ICYmICEhdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IHVua25vd24ge1xuICAgICAgcmV0dXJuIGh0bWxgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jbGVhbkNoaWxkcmVufT48L3Nsb3Q+YDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQTREQSxJQUFNLGtDQUEwQztBQUM5QyxLQUFJLFNBQ0YsUUFBTztDQUdULE1BQU0sTUFBTSxTQUFTLGNBQWMsTUFBTTtBQUN6QyxLQUFJLGFBQWEsbUJBQW1CLGlCQUFpQjtBQUlyRCxRQUFPLElBQUksb0JBQW9COztBQUVqQyxJQUFNLHlCQUF5QiwyQkFBMkI7Ozs7QUFNMUQsSUFBYSwrQkFDWCxlQUM0RDtDQUU1RCxNQUFNLHdCQUF5QixXQUFrRCxtQkFDNUUsYUFHRCx5QkFBeUIsV0FBVztBQWtheEMsZUFoYTRDO29CQUNsQyxpQkFDTixpQkFBaUIsaUJBQWlCLHVCQUF1QixzQkFBc0IsQ0FBQyxDQUFDLENBQ2xGOzs7OztlQUhZ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