@sbb-esta/lyne-elements 1.11.0 → 1.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -189,7 +189,7 @@ const IS_FOCUSABLE_QUERY = [
189
189
  "details",
190
190
  "summary:not(:disabled)",
191
191
  "[tabindex]"
192
- ].map((selector) => `${selector}:not([disabled],[tabindex="-1"])`).join(",");
192
+ ].map((selector) => `${selector}:not([disabled]:not([disabled-interactive]),[tabindex="-1"])`).join(",");
193
193
  function getFocusableElements(elements, properties) {
194
194
  const focusableEls = /* @__PURE__ */ new Set();
195
195
  function getFocusables(elements2, filter) {
@@ -291,4 +291,4 @@ export {
291
291
  sbbInputModalityDetector,
292
292
  setModalityOnNextFocus
293
293
  };
294
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYTExeS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9hcnJvdy1uYXZpZ2F0aW9uLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvaW5wdXQtbW9kYWxpdHktZGV0ZWN0b3IudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ZvY3VzLXZpc2libGUtd2l0aGluLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ludGVyYWN0aXZpdHktY2hlY2tlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvZm9jdXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIFByZXZBbmROZXh0S2V5cyB7XG4gIHByZXZLZXk6IHN0cmluZztcbiAgbmV4dEtleTogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRQcmV2QW5kTmV4dEtleXMoKTogUHJldkFuZE5leHRLZXlzIHtcbiAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5tYXRjaGVzKCc6ZGlyKHJ0bCknKSkge1xuICAgIHJldHVybiB7IHByZXZLZXk6ICdBcnJvd1JpZ2h0JywgbmV4dEtleTogJ0Fycm93TGVmdCcgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBwcmV2S2V5OiAnQXJyb3dMZWZ0JywgbmV4dEtleTogJ0Fycm93UmlnaHQnIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUga2V5IHByZXNzZWQgaXMgYW1vbmcgdGhvc2UgYWxsb3dlZCBmb3IgbmF2aWdhdGlvbi5cbiAqIEBwYXJhbSBldmVudCBUaGUga2V5Ym9hcmQgZXZlbnQgdG8gY2hlY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gWydBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50LmtleSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIHNob3VsZCBtb3ZlIHRoZSBuYXZpZ2F0aW9uIHRvIHRoZSBuZXh0IGVsZW1lbnQuXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcmV2aW91c0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSBnZXRQcmV2QW5kTmV4dEtleXMoKS5wcmV2S2V5O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBrZXkgcHJlc3NlZCBzaG91bGQgbW92ZSB0aGUgbmF2aWdhdGlvbiB0byB0aGUgbmV4dCBlbGVtZW50LlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dEFycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5rZXkgPT09IGdldFByZXZBbmROZXh0S2V5cygpLm5leHRLZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIGlzIGFtb25nIHRob3NlIGFsbG93ZWQgZm9yIG5hdmlnYXRpb24uXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0Fycm93S2V5UHJlc3NlZChldmVudCkgfHwgWydQYWdlVXAnLCAnUGFnZURvd24nLCAnSG9tZScsICdFbmQnXS5pbmNsdWRlcyhldmVudC5rZXkpO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgaW5kZXggb2YgdGhlIG5leHQgZWxlbWVudCBiYXNlZCBvbiB0aGUgZ2l2ZW4gb2Zmc2V0LlxuICogQHBhcmFtIGN1cnJlbnRJbmRleCBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAqIEBwYXJhbSBtYXhJbmRleCBUaGUgbWF4aW11bSBwZXJtaXR0ZWQgdmFsdWUgKGUuZy4gYXJyYXkgc2l6ZSkuXG4gKiBAcGFyYW0gb2Zmc2V0IFRoZSBhbW91bnQgdG8gbW92ZSBieS5cbiAqL1xuZnVuY3Rpb24gY2FsY05leHRJbmRleEluUmFuZ2UoY3VycmVudEluZGV4OiBudW1iZXIsIG1heEluZGV4OiBudW1iZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIChjdXJyZW50SW5kZXggKyBvZmZzZXQgKyBtYXhJbmRleCkgJSBtYXhJbmRleDtcbn1cblxuZnVuY3Rpb24gZ2V0TGFzdEluZGV4KHNpemU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBzaXplIC0gMTtcbn1cblxuY29uc3QgZmlyc3RJbmRleCA9IDA7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gbW92ZSB0bywgYmFzZWQgb24gdGhlIGtleWJvYXJkIGlucHV0LCB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0IGFuZCB0aGUgbGlzdCBzaXplLlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqIEBwYXJhbSBjdXJyZW50IFRoZSBpbmRleCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0LlxuICogQHBhcmFtIHNpemUgVGhlIHNpemUgb2YgdGhlIGxpc3QuXG4gKiBAcmV0dXJucyBpZiBpdCBpcyBhICdwcmV2aW91cycgZXZlbnQsIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBwcmV2aW91cyBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9uZSBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHRoZSBmaXJzdCBpbiB0aGUgbGlzdDtcbiAqIGlmIGl0IGlzIGEgJ25leHQnIGV2ZW50LCByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbmV4dCBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvbmUsIGlmIHRoZSBjdXJyZW50IGlzIHRoZSBsYXN0IGluIHRoZSBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dEVsZW1lbnRJbmRleChldmVudDogS2V5Ym9hcmRFdmVudCwgY3VycmVudDogbnVtYmVyLCBzaXplOiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCB7IHByZXZLZXksIG5leHRLZXkgfSA9IGdldFByZXZBbmROZXh0S2V5cygpO1xuXG4gIGlmIChldmVudC5rZXkgPT09IHByZXZLZXkgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICByZXR1cm4gY3VycmVudCA8IGZpcnN0SW5kZXggPyBnZXRMYXN0SW5kZXgoc2l6ZSkgOiBjYWxjTmV4dEluZGV4SW5SYW5nZShjdXJyZW50LCBzaXplLCAtMSk7XG4gIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBuZXh0S2V5IHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICByZXR1cm4gY3VycmVudCA+PSBzaXplID8gZmlyc3RJbmRleCA6IGNhbGNOZXh0SW5kZXhJblJhbmdlKGN1cnJlbnQsIHNpemUsIDEpO1xuICB9XG4gIHJldHVybiBjdXJyZW50O1xufVxuIiwiLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYWluL3NyYy9jZGsvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50c1xuXG4vKiogR2V0cyB3aGV0aGVyIGFuIGV2ZW50IGNvdWxkIGJlIGEgZmFrZWQgYG1vdXNlZG93bmAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAvLyBTb21lIHNjcmVlbiByZWFkZXJzIHdpbGwgZGlzcGF0Y2ggYSBmYWtlIGBtb3VzZWRvd25gIGV2ZW50IHdoZW4gcHJlc3NpbmcgZW50ZXIgb3Igc3BhY2Ugb25cbiAgLy8gYSBjbGlja2FibGUgZWxlbWVudC4gV2UgY2FuIGRpc3Rpbmd1aXNoIHRoZXNlIGV2ZW50cyB3aGVuIGBldmVudC5idXR0b25zYCBpcyB6ZXJvLCBvclxuICAvLyBgZXZlbnQuZGV0YWlsYCBpcyB6ZXJvIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlcjpcbiAgLy8gLSBgZXZlbnQuYnV0dG9uc2Agd29ya3Mgb24gRmlyZWZveCwgYnV0IGZhaWxzIG9uIENocm9tZS5cbiAgLy8gLSBgZGV0YWlsYCB3b3JrcyBvbiBDaHJvbWUsIGJ1dCBmYWlscyBvbiBGaXJlZm94LlxuICByZXR1cm4gZXZlbnQuYnV0dG9ucyA9PT0gMCB8fCBldmVudC5kZXRhaWwgPT09IDA7XG59XG5cbi8qKiBHZXRzIHdoZXRoZXIgYW4gZXZlbnQgY291bGQgYmUgYSBmYWtlZCBgdG91Y2hzdGFydGAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlVG91Y2hzdGFydEZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IFRvdWNoRXZlbnQpOiBib29sZWFuIHtcbiAgY29uc3QgdG91Y2g6IFRvdWNoIHwgdW5kZWZpbmVkID1cbiAgICAoZXZlbnQudG91Y2hlcyAmJiBldmVudC50b3VjaGVzWzBdKSB8fCAoZXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0pO1xuXG4gIC8vIEEgZmFrZSBgdG91Y2hzdGFydGAgY2FuIGJlIGRpc3Rpbmd1aXNoZWQgZnJvbSBhIHJlYWwgb25lIGJ5IGxvb2tpbmcgYXQgdGhlIGBpZGVudGlmaWVyYFxuICAvLyB3aGljaCBpcyB0eXBpY2FsbHkgPj0gMCBvbiBhIHJlYWwgZGV2aWNlIHZlcnN1cyAtMSBmcm9tIGEgc2NyZWVuIHJlYWRlci4gSnVzdCB0byBiZSBzYWZlLFxuICAvLyB3ZSBjYW4gYWxzbyBsb29rIGF0IGByYWRpdXNYYCBhbmQgYHJhZGl1c1lgLiBUaGlzIGJlaGF2aW9yIHdhcyBvYnNlcnZlZCBhZ2FpbnN0IGEgV2luZG93cyAxMFxuICAvLyBkZXZpY2Ugd2l0aCBhIHRvdWNoIHNjcmVlbiBydW5uaW5nIE5WREEgdjIwMjAuNCBhbmQgRmlyZWZveCA4NSBvciBDaHJvbWUgODguXG4gIHJldHVybiAoXG4gICAgISF0b3VjaCAmJlxuICAgIHRvdWNoLmlkZW50aWZpZXIgPT09IC0xICYmXG4gICAgKHRvdWNoLnJhZGl1c1ggPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNYID09PSAxKSAmJlxuICAgICh0b3VjaC5yYWRpdXNZID09IG51bGwgfHwgdG91Y2gucmFkaXVzWSA9PT0gMSlcbiAgKTtcbn1cbiIsIi8vIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL2Nkay9hMTF5L2lucHV0LW1vZGFsaXR5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzXG5cbmltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgZ2V0RXZlbnRUYXJnZXQgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5cbmltcG9ydCB7XG4gIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIsXG4gIGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyLFxufSBmcm9tICcuL2Zha2UtZXZlbnQtZGV0ZWN0aW9uLmpzJztcblxuZXhwb3J0IHR5cGUgU2JiSW5wdXRNb2RhbGl0eSA9ICd0b3VjaCcgfCAnbW91c2UnIHwgJ2tleWJvYXJkJyB8ICdwcm9ncmFtJyB8IG51bGw7XG5cbi8qKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb2YgdGhlIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbmludGVyZmFjZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zIHtcbiAgLyoqIEtleXMgdG8gaWdub3JlIHdoZW4gZGV0ZWN0aW5nIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LiAqL1xuICBpZ25vcmVLZXlzPzogbnVtYmVyW107XG59XG5cbmNvbnN0IFNISUZUID0gMTY7XG5jb25zdCBDT05UUk9MID0gMTc7XG5jb25zdCBBTFQgPSAxODtcbmNvbnN0IE1FVEEgPSA5MTsgLy8gV0lOX0tFWV9MRUZUXG5jb25zdCBNQUNfTUVUQSA9IDIyNDtcblxuLyoqXG4gKiBEZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IuXG4gKlxuICogTW9kaWZpZXIga2V5cyBhcmUgaWdub3JlZCBieSBkZWZhdWx0IChpLmUuIHdoZW4gcHJlc3NlZCB3b24ndCBjYXVzZSB0aGUgc2VydmljZSB0byBkZXRlY3RcbiAqIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5KSBmb3IgdHdvIHJlYXNvbnM6XG4gKlxuICogMS4gTW9kaWZpZXIga2V5cyBhcmUgY29tbW9ubHkgdXNlZCB3aXRoIG1vdXNlIHRvIHBlcmZvcm0gYWN0aW9ucyBzdWNoIGFzICdyaWdodCBjbGljaycgb3IgJ29wZW5cbiAqICAgIGluIG5ldyB0YWInLCBhbmQgYXJlIHRodXMgbGVzcyByZXByZXNlbnRhdGl2ZSBvZiBhY3R1YWwga2V5Ym9hcmQgaW50ZXJhY3Rpb24uXG4gKiAyLiBWb2ljZU92ZXIgdHJpZ2dlcnMgc29tZSBrZXlib2FyZCBldmVudHMgd2hlbiBsaW5lYXJseSBuYXZpZ2F0aW5nIHdpdGggQ29udHJvbCArIE9wdGlvbiAoYnV0XG4gKiAgICBjb25mdXNpbmdseSBub3Qgd2l0aCBDYXBzIExvY2spLiBUaHVzLCB0byBoYXZlIHBhcml0eSB3aXRoIG90aGVyIHNjcmVlbiByZWFkZXJzLCB3ZSBpZ25vcmVcbiAqICAgIHRoZXNlIGtleXMgc28sIGFzIHRvIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkbyBub3QgYnkgZGVmYXVsdCBpZ25vcmUgdGhlIHJpZ2h0IE1ldGEga2V5IG9uIFNhZmFyaSBiZWNhdXNlIGl0IGhhcyB0aGUgc2FtZSBrZXlcbiAqIGNvZGUgYXMgdGhlIENvbnRleHRNZW51IGtleSBvbiBvdGhlciBicm93c2Vycy4gV2hlbiB3ZSBzd2l0Y2ggdG8gdXNpbmcgZXZlbnQua2V5LCB3ZSBjYW5cbiAqIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3by5cbiAqL1xuY29uc3QgaW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgaWdub3JlS2V5czogW0FMVCwgQ09OVFJPTCwgTUFDX01FVEEsIE1FVEEsIFNISUZUXSxcbn07XG5cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lIG5lZWRlZCB0byBwYXNzIGFmdGVyIGEgdG91Y2hzdGFydCBldmVudCBpbiBvcmRlciBmb3IgYSBzdWJzZXF1ZW50IG1vdXNlZG93blxuICogZXZlbnQgdG8gYmUgYXR0cmlidXRlZCBhcyBtb3VzZSBhbmQgbm90IHRvdWNoLlxuICpcbiAqIFRocm91Z2ggdHJpYWwgYW5kIGVycm9yIGl0IHdhcyBmb3VuZCB0aGF0IGEgdmFsdWUgb2YgYXJvdW5kIDY1MG1zIHNlZW1zIGFwcHJvcHJpYXRlLlxuICovXG5jb25zdCB0b3VjaEJ1ZmZlck1zID0gNjUwO1xuXG4vKipcbiAqIEV2ZW50IGxpc3RlbmVyIG9wdGlvbnMgdGhhdCBlbmFibGUgY2FwdHVyaW5nIGFuZCBhbHNvIG1hcmsgdGhlIGxpc3RlbmVyIGFzIHBhc3NpdmUgaWYgdGhlIGJyb3dzZXJcbiAqIHN1cHBvcnRzIGl0LlxuICovXG5jb25zdCBtb2RhbGl0eUV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICBwYXNzaXZlOiB0cnVlLFxuICBjYXB0dXJlOiB0cnVlLFxufTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgZGV0ZWN0cyB0aGUgdXNlcidzIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIFRoaXMgc2VydmljZSBkb2VzIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHdoZW4gYSB1c2VyIG5hdmlnYXRlcyB3aXRoIGEgc2NyZWVuIHJlYWRlclxuICogKGUuZy4gbGluZWFyIG5hdmlnYXRpb24gd2l0aCBWb2ljZU92ZXIsIG9iamVjdCBuYXZpZ2F0aW9uIC8gYnJvd3NlIG1vZGUgd2l0aCBOVkRBLCB2aXJ0dWFsIFBDXG4gKiBjdXJzb3IgbW9kZSB3aXRoIEpBV1MpLiBUaGlzIGlzIGluIHBhcnQgZHVlIHRvIHRlY2huaWNhbCBsaW1pdGF0aW9ucyAoaS5lLiBrZXlib2FyZCBldmVudHMgZG8gbm90XG4gKiBmaXJlIGFzIGV4cGVjdGVkIGluIHRoZXNlIG1vZGVzKSBidXQgaXMgYWxzbyBhcmd1YWJseSB0aGUgY29ycmVjdCBiZWhhdmlvci4gTmF2aWdhdGluZyB3aXRoIGFcbiAqIHNjcmVlbiByZWFkZXIgaXMgYWtpbiB0byB2aXN1YWxseSBzY2FubmluZyBhIHBhZ2UsIGFuZCBzaG91bGQgbm90IGJlIGludGVycHJldGVkIGFzIGFjdHVhbCB1c2VyXG4gKiBpbnB1dCBpbnRlcmFjdGlvbi5cbiAqXG4gKiBXaGVuIGEgdXNlciBpcyBub3QgbmF2aWdhdGluZyBidXQgKmludGVyYWN0aW5nKiB3aXRoIGEgc2NyZWVuIHJlYWRlciwgdGhpcyBzZXJ2aWNlIGF0dGVtcHRzIHRvXG4gKiB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHRvIGtleWJvYXJkLCBidXQgaW4gZ2VuZXJhbCB0aGlzIHNlcnZpY2UncyBiZWhhdmlvciBpcyBsYXJnZWx5XG4gKiB1bmRlZmluZWQuXG4gKi9cbmNsYXNzIFNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB7XG4gIC8qKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eS4gKi9cbiAgcHVibGljIGdldCBtb3N0UmVjZW50TW9kYWxpdHkoKTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1vc3QgcmVjZW50IG1vZGFsaXR5IG11c3QgYmUgaW5pdGlhbGlzZWQgd2l0aCB0aGUgdmFsdWUgJ21vdXNlJyB0byBjb3ZlciB0aGUgY2FzZSB3aGVyZSBhbiBhY3Rpb24gaXNcbiAgICogcGVyZm9ybWVkIGJ1dCBubyBtb3VzZSBvciBrZXlib2FyZCBldmVudCBoYXMgeWV0IG9jY3VycmVkIG9uIHRoZSBwYWdlIChlLmcuIGBzYmItcG9wb3ZlcmAgd2l0aCBob3ZlciB0cmlnZ2VyKS5cbiAgICovXG4gIHByaXZhdGUgX21vc3RSZWNlbnRNb2RhbGl0eTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwgPSAnbW91c2UnO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eSBldmVudCB0YXJnZXQuIElzIG51bGwgaWYgbm8gaW5wdXQgbW9kYWxpdHkgaGFzIGJlZW5cbiAgICogZGV0ZWN0ZWQgb3IgaWYgdGhlIGFzc29jaWF0ZWQgZXZlbnQgdGFyZ2V0IGlzIG51bGwgZm9yIHNvbWUgdW5rbm93biByZWFzb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1vc3RSZWNlbnRUYXJnZXQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbW9zdFJlY2VudFRhcmdldDtcbiAgfVxuICBwcml2YXRlIF9tb3N0UmVjZW50VGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPcHRpb25zIGZvciB0aGlzIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgICAuLi5pbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zLFxuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZXN0YW1wIG9mIHRoZSBsYXN0IHRvdWNoIGlucHV0IG1vZGFsaXR5LiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIG1vdXNlZG93biBldmVudHNcbiAgICogc2hvdWxkIGJlIGF0dHJpYnV0ZWQgdG8gbW91c2Ugb3IgdG91Y2guXG4gICAqL1xuICBwcml2YXRlIF9sYXN0VG91Y2hNcyA9IDA7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5fb25Nb3VzZWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuX29uVG91Y2hzdGFydCwgbW9kYWxpdHlFdmVudExpc3RlbmVyT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdtb3VzZSc7XG4gICAgdGhpcy5fbW9zdFJlY2VudFRhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fbGFzdFRvdWNoTXMgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMga2V5ZG93biBldmVudHMuIE11c3QgYmUgYW4gYXJyb3cgZnVuY3Rpb24gaW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGNvbnRleHQgd2hlbiBpdCBnZXRzXG4gICAqIGJvdW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgLy8gSWYgdGhpcyBpcyBvbmUgb2YgdGhlIGtleXMgd2Ugc2hvdWxkIGlnbm9yZSwgdGhlbiBpZ25vcmUgaXQgYW5kIGRvbid0IHVwZGF0ZSB0aGUgaW5wdXRcbiAgICAvLyBtb2RhbGl0eSB0byBrZXlib2FyZC5cbiAgICBpZiAodGhpcy5fb3B0aW9ucz8uaWdub3JlS2V5cz8uc29tZSgoa2V5Q29kZSkgPT4ga2V5Q29kZSA9PT0gZXZlbnQua2V5Q29kZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAna2V5Ym9hcmQnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbW91c2Vkb3duIGV2ZW50cy4gTXVzdCBiZSBhbiBhcnJvdyBmdW5jdGlvbiBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgY29udGV4dCB3aGVuIGl0XG4gICAqIGdldHMgYm91bmQuXG4gICAqL1xuICBwcml2YXRlIF9vbk1vdXNlZG93biA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFRvdWNoZXMgdHJpZ2dlciBib3RoIHRvdWNoIGFuZCBtb3VzZSBldmVudHMsIHNvIHdlIG5lZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBtb3VzZSBldmVudHNcbiAgICAvLyB0aGF0IHdlcmUgdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC4gVG8gZG8gc28sIGNoZWNrIGlmIHRoZSBtb3VzZSBldmVudCBvY2N1cnMgY2xvc2VseVxuICAgIC8vIGFmdGVyIHRoZSBwcmV2aW91cyB0b3VjaCBldmVudC5cbiAgICBpZiAoRGF0ZS5ub3coKSAtIHRoaXMuX2xhc3RUb3VjaE1zIDwgdG91Y2hCdWZmZXJNcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEZha2UgbW91c2Vkb3duIGV2ZW50cyBhcmUgZmlyZWQgYnkgc29tZSBzY3JlZW4gcmVhZGVycyB3aGVuIGNvbnRyb2xzIGFyZSBhY3RpdmF0ZWQgYnkgdGhlXG4gICAgLy8gc2NyZWVuIHJlYWRlci4gQXR0cmlidXRlIHRoZW0gdG8ga2V5Ym9hcmQgaW5wdXQgbW9kYWxpdHkuXG4gICAgdGhpcy5fbW9zdFJlY2VudE1vZGFsaXR5ID0gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudCkgPyAna2V5Ym9hcmQnIDogJ21vdXNlJztcbiAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRvdWNoc3RhcnQgZXZlbnRzLiBNdXN0IGJlIGFuIGFycm93IGZ1bmN0aW9uIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBjb250ZXh0IHdoZW4gaXRcbiAgICogZ2V0cyBib3VuZC5cbiAgICovXG4gIHByaXZhdGUgX29uVG91Y2hzdGFydCA9IChldmVudDogVG91Y2hFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFNhbWUgc2NlbmFyaW8gYXMgbWVudGlvbmVkIGluIF9vbk1vdXNlZG93biwgYnV0IG9uIHRvdWNoIHNjcmVlbiBkZXZpY2VzLCBmYWtlIHRvdWNoc3RhcnRcbiAgICAvLyBldmVudHMgYXJlIGZpcmVkLiBBZ2FpbiwgYXR0cmlidXRlIHRvIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LlxuICAgIGlmIChpc0Zha2VUb3VjaHN0YXJ0RnJvbVNjcmVlblJlYWRlcihldmVudCkpIHtcbiAgICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdrZXlib2FyZCc7XG4gICAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN0b3JlIHRoZSB0aW1lc3RhbXAgb2YgdGhpcyB0b3VjaCBldmVudCwgYXMgaXQncyB1c2VkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gbW91c2UgZXZlbnRzXG4gICAgLy8gdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC5cbiAgICB0aGlzLl9sYXN0VG91Y2hNcyA9IERhdGUubm93KCk7XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAndG91Y2gnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgPSBuZXcgU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yKCk7XG5cbi8vIFNldCB0aGUgaW5wdXQgbW9kYWxpdHkgaW4gb3JkZXIgdG8gYXZvaWQgc2hvd2luZyB0aGUgb3V0bGluZSBpbiBTYWZhcmkuXG5leHBvcnQgZnVuY3Rpb24gc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhlbGVtZW50VG9Gb2N1czogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gIGlmICghZWxlbWVudFRvRm9jdXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtb3N0UmVjZW50TW9kYWxpdHkgPSBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5O1xuXG4gIC8vIFNldCBmb2N1cyBvcmlnaW4gdG8gZWxlbWVudCB3aGljaCBzaG91bGQgcmVjZWl2ZSBmb2N1c1xuICBpZiAoIShlbGVtZW50VG9Gb2N1cyAmJiBtb3N0UmVjZW50TW9kYWxpdHkgIT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgJ2ZvY3VzJyxcbiAgICAoKSA9PiB7XG4gICAgICBlbGVtZW50VG9Gb2N1cy5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtb3JpZ2luJywgbW9zdFJlY2VudE1vZGFsaXR5KTtcbiAgICAgIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4gZWxlbWVudFRvRm9jdXMucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLW9yaWdpbicpLFxuICAgICAgICB7XG4gICAgICAgICAgb25jZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSxcbiAgICB7IG9uY2U6IHRydWUgfSxcbiAgKTtcbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi9pbnB1dC1tb2RhbGl0eS1kZXRlY3Rvci5qcyc7XG5cbi8vIERldGVybWluZSB3aGV0aGVyIHRoZSBlbGVtZW50IGhhcyBhIHZpc2libGUgZm9jdXMgd2l0aGluLlxuZXhwb3J0IGNsYXNzIFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXNpbkhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nLFxuICAgICAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyxcbiAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgX2ZvY3Vzb3V0SGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nKTtcbiAgfTtcblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cbn1cbiIsImV4cG9ydCBmdW5jdGlvbiBoYXNHZW9tZXRyeShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAvLyBVc2UgbG9naWMgZnJvbSBqUXVlcnkgdG8gY2hlY2sgZm9yIGFuIGludmlzaWJsZSBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9oaWRkZW5WaXNpYmxlU2VsZWN0b3JzLmpzI0wxMlxuICByZXR1cm4gISEoXG4gICAgZWxlbWVudC5vZmZzZXRXaWR0aCB8fFxuICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8XG4gICAgKHR5cGVvZiBlbGVtZW50LmdldENsaWVudFJlY3RzID09PSAnZnVuY3Rpb24nICYmIGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXIgaW1wbGVtZW50cyBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciB7XG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyB2aXNpYmxlIGZvciB0aGUgcHVycG9zZXMgb2YgaW50ZXJhY3Rpdml0eS5cbiAgICpcbiAgICogVGhpcyB3aWxsIGNhcHR1cmUgc3RhdGVzIGxpa2UgYGRpc3BsYXk6IG5vbmVgIGFuZCBgdmlzaWJpbGl0eTogaGlkZGVuYCwgYnV0IG5vdCB0aGluZ3MgbGlrZVxuICAgKiBiZWluZyBjbGlwcGVkIGJ5IGFuIGBvdmVyZmxvdzogaGlkZGVuYCBwYXJlbnQgb3IgYmVpbmcgb3V0c2lkZSB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzR2VvbWV0cnkoZWxlbWVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS52aXNpYmlsaXR5ID09PSAndmlzaWJsZSc7XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXJNb2NrIGltcGxlbWVudHMgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8vIEZvciB1bml0IHRlc3RzIHdlIG5lZWQgdG8gcHJldGVuZCB0aGF0IGFuIGVsZW1lbnQgaXMgYWx3YXlzIHZpc2libGUuXG4vLyBUaGlzIGNhbiBiZSBkb25lIGJ5IGNoZWNraW5nIGlmIHZpc2liaWxpdHkgcHJvcGVydHkgaXMgc2V0IHRvIGVtcHR5LlxuZXhwb3J0IGNvbnN0IGludGVyYWN0aXZpdHlDaGVja2VyOiBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciA9XG4gIHR5cGVvZiBnZXRDb21wdXRlZFN0eWxlID09PSAndW5kZWZpbmVkJyB8fFxuICBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkudmlzaWJpbGl0eSA9PT0gJydcbiAgICA/IG5ldyBJbnRlcmFjdGl2aXR5Q2hlY2tlck1vY2soKVxuICAgIDogbmV3IEludGVyYWN0aXZpdHlDaGVja2VyKCk7XG4iLCJpbXBvcnQgeyBpbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJy4vaW50ZXJhY3Rpdml0eS1jaGVja2VyLmpzJztcblxuZXhwb3J0IGNvbnN0IElTX0ZPQ1VTQUJMRV9RVUVSWSA9IFtcbiAgJ2J1dHRvbicsXG4gICdbaHJlZl0nLFxuICAnaW5wdXQnLFxuICAnc2VsZWN0JyxcbiAgJ3RleHRhcmVhJyxcbiAgJ2RldGFpbHMnLFxuICAnc3VtbWFyeTpub3QoOmRpc2FibGVkKScsXG4gICdbdGFiaW5kZXhdJyxcbl1cbiAgLm1hcCgoc2VsZWN0b3IpID0+IGAke3NlbGVjdG9yfTpub3QoW2Rpc2FibGVkXSxbdGFiaW5kZXg9XCItMVwiXSlgKVxuICAuam9pbignLCcpO1xuXG4vLyBOb3RlOiB0aGUgdXNlIG9mIHRoaXMgZnVuY3Rpb24gZm9yIG1vcmUgY29tcGxleCBzY2VuYXJpb3MgKHdpdGggbWFueSBuZXN0ZWQgZWxlbWVudHMpIG1heSBiZSBleHBlbnNpdmUuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoXG4gIGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLFxuICBwcm9wZXJ0aWVzPzoge1xuICAgIGZpbHRlcj86IChlbDogSFRNTEVsZW1lbnQpID0+IGJvb2xlYW47XG4gICAgZmluZEZpcnN0Rm9jdXNhYmxlPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlSW52aXNpYmxlRWxlbWVudHM/OiBib29sZWFuO1xuICB9LFxuKTogSFRNTEVsZW1lbnRbXSB7XG4gIGNvbnN0IGZvY3VzYWJsZUVscyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5cbiAgZnVuY3Rpb24gZ2V0Rm9jdXNhYmxlcyhlbGVtZW50czogSFRNTEVsZW1lbnRbXSwgZmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbik6IHZvaWQge1xuICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgIGlmIChmaWx0ZXIgJiYgIWZpbHRlcihlbCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbC5ub2RlTmFtZSA9PT0gJ1NMT1QnKSB7XG4gICAgICAgIGdldEZvY3VzYWJsZXMoXG4gICAgICAgICAgQXJyYXkuZnJvbSgoZWwgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZEVsZW1lbnRzKCkpIGFzIEhUTUxFbGVtZW50W10sXG4gICAgICAgICAgZmlsdGVyLFxuICAgICAgICApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBlbC5tYXRjaGVzKElTX0ZPQ1VTQUJMRV9RVUVSWSkgJiZcbiAgICAgICAgKHByb3BlcnRpZXM/LmluY2x1ZGVJbnZpc2libGVFbGVtZW50cyA/PyBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUoZWwpKVxuICAgICAgKSB7XG4gICAgICAgIGZvY3VzYWJsZUVscy5hZGQoZWwpO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcGVydGllcz8uZmluZEZpcnN0Rm9jdXNhYmxlICYmIGZvY3VzYWJsZUVscy5zaXplID4gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGVsLmNoaWxkcmVuLmxlbmd0aCB8fCBlbC5zaGFkb3dSb290Py5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5mcm9tKGVsLmNoaWxkcmVuKS5sZW5ndGhcbiAgICAgICAgICA/IChBcnJheS5mcm9tKGVsLmNoaWxkcmVuKSBhcyBIVE1MRWxlbWVudFtdKVxuICAgICAgICAgIDogKEFycmF5LmZyb20oZWwuc2hhZG93Um9vdCEuY2hpbGRyZW4pIGFzIEhUTUxFbGVtZW50W10pO1xuICAgICAgICBnZXRGb2N1c2FibGVzKGNoaWxkcmVuLCBmaWx0ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBnZXRGb2N1c2FibGVzKGVsZW1lbnRzLCBwcm9wZXJ0aWVzPy5maWx0ZXIpO1xuXG4gIHJldHVybiBbLi4uZm9jdXNhYmxlRWxzXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudChcbiAgZWxlbWVudHM6IEhUTUxFbGVtZW50W10sXG4gIGZpbHRlcj86IChlbDogSFRNTEVsZW1lbnQpID0+IGJvb2xlYW4sXG4pOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGdldEZvY3VzYWJsZUVsZW1lbnRzKGVsZW1lbnRzLCB7XG4gICAgZmlsdGVyLFxuICAgIGZpbmRGaXJzdEZvY3VzYWJsZTogdHJ1ZSxcbiAgfSk7XG4gIHJldHVybiBmb2N1c2FibGVFbGVtZW50cy5sZW5ndGggPyBmb2N1c2FibGVFbGVtZW50c1swXSA6IG51bGw7XG59XG5cbmV4cG9ydCBjbGFzcyBTYmJGb2N1c0hhbmRsZXIge1xuICBwcml2YXRlIF9jb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gZWxlbWVudCBpbiB3aGljaCB0aGUgZm9jdXMgc2hvdWxkIGJlIHRyYXBwZWQuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0gb3B0aW9ucy5maWx0ZXIgZmlsdGVyIGZ1bmN0aW9uIHdoaWNoIGlzIGFwcGxpZWQgZHVyaW5nIHNlYXJjaGluZyBmb3IgZm9jdXNhYmxlIGVsZW1lbnQuIElmIGFuIGVsZW1lbnQgaXMgZmlsdGVyZWQsIGFsc28gY2hpbGQgZWxlbWVudHMgYXJlIGZpbHRlcmVkLlxuICAgKiBAcGFyYW0gb3B0aW9ucy5wb3N0RmlsdGVyIGZpbHRlciBmdW5jdGlvbiB3aGljaCBpcyBhcHBsaWVkIGFmdGVyIGNvbGxlY3RpbmcgZm9jdXNhYmxlIGVsZW1lbnRzLlxuICAgKi9cbiAgcHVibGljIHRyYXAoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGZpbHRlcj86IChlbDogSFRNTEVsZW1lbnQpID0+IGJvb2xlYW47XG4gICAgICBwb3N0RmlsdGVyPzogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICB9LFxuICApOiB2b2lkIHtcbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ1RhYicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEeW5hbWljYWxseSBnZXQgZmlyc3QgYW5kIGxhc3QgZm9jdXNhYmxlIGVsZW1lbnQsIGFzIHRoaXMgbWlnaHQgaGF2ZSBjaGFuZ2VkIHNpbmNlIG9wZW5pbmcgb3ZlcmxheVxuICAgICAgICBjb25zdCBlbGVtZW50Q2hpbGRyZW46IEhUTUxFbGVtZW50W10gPSBBcnJheS5mcm9tKFxuICAgICAgICAgIGVsZW1lbnQuc2hhZG93Um9vdCEuY2hpbGRyZW4gfHwgW10sXG4gICAgICAgICkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBnZXRGb2N1c2FibGVFbGVtZW50cyhlbGVtZW50Q2hpbGRyZW4sIHtcbiAgICAgICAgICBmaWx0ZXI6IG9wdGlvbnM/LmZpbHRlcixcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRm9jdXNhYmxlRWxlbWVudHMgPSBmb2N1c2FibGVFbGVtZW50cy5maWx0ZXIoXG4gICAgICAgICAgb3B0aW9ucz8ucG9zdEZpbHRlciA/PyAoKCkgPT4gdHJ1ZSksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFmaWx0ZXJlZEZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50c1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZSA9IGZpbHRlcmVkRm9jdXNhYmxlRWxlbWVudHNbXG4gICAgICAgICAgZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50cy5sZW5ndGggLSAxXG4gICAgICAgIF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgW3Bpdm90LCBuZXh0XSA9IGV2ZW50LnNoaWZ0S2V5XG4gICAgICAgICAgPyBbZmlyc3RGb2N1c2FibGUsIGxhc3RGb2N1c2FibGVdXG4gICAgICAgICAgOiBbbGFzdEZvY3VzYWJsZSwgZmlyc3RGb2N1c2FibGVdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAoZmlyc3RGb2N1c2FibGUuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmFjdGl2ZUVsZW1lbnQgPT09IHBpdm90IHx8XG4gICAgICAgICAgKGxhc3RGb2N1c2FibGUuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmFjdGl2ZUVsZW1lbnQgPT09IHBpdm90XG4gICAgICAgICkge1xuICAgICAgICAgIG5leHQuZm9jdXMoKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBzaWduYWw6IHRoaXMuX2NvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICB0aGlzLl9jb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICB9XG59XG4iXSwibmFtZXMiOlsiZWxlbWVudHMiXSwibWFwcGluZ3MiOiI7O0FBS0EsU0FBUyxxQkFBc0M7QUFDN0MsTUFBSSxTQUFTLGdCQUFnQixRQUFRLFdBQVcsR0FBRztBQUNqRCxXQUFPLEVBQUUsU0FBUyxjQUFjLFNBQVMsWUFBWTtBQUFBLEVBQUEsT0FDaEQ7QUFDTCxXQUFPLEVBQUUsU0FBUyxhQUFhLFNBQVMsYUFBYTtBQUFBLEVBQ3ZEO0FBQ0Y7QUFNTyxTQUFTLGtCQUFrQixPQUErQjtBQUN4RCxTQUFBLENBQUMsY0FBYyxhQUFhLFdBQVcsV0FBVyxFQUFFLFNBQVMsTUFBTSxHQUFHO0FBQy9FO0FBTU8sU0FBUywwQkFBMEIsT0FBK0I7QUFDdkUsU0FBTyxNQUFNLFFBQVEsYUFBYSxNQUFNLFFBQVEsbUJBQXFCLEVBQUE7QUFDdkU7QUFNTyxTQUFTLHNCQUFzQixPQUErQjtBQUNuRSxTQUFPLE1BQU0sUUFBUSxlQUFlLE1BQU0sUUFBUSxtQkFBcUIsRUFBQTtBQUN6RTtBQU1PLFNBQVMsNEJBQTRCLE9BQStCO0FBQ2xFLFNBQUEsa0JBQWtCLEtBQUssS0FBSyxDQUFDLFVBQVUsWUFBWSxRQUFRLEtBQUssRUFBRSxTQUFTLE1BQU0sR0FBRztBQUM3RjtBQVFBLFNBQVMscUJBQXFCLGNBQXNCLFVBQWtCLFFBQXdCO0FBQ3BGLFVBQUEsZUFBZSxTQUFTLFlBQVk7QUFDOUM7QUFFQSxTQUFTLGFBQWEsTUFBc0I7QUFDMUMsU0FBTyxPQUFPO0FBQ2hCO0FBRUEsTUFBTSxhQUFhO0FBWUgsU0FBQSxvQkFBb0IsT0FBc0IsU0FBaUIsTUFBc0I7QUFDL0YsUUFBTSxFQUFFLFNBQVMsUUFBUSxJQUFJLG1CQUFtQjtBQUVoRCxNQUFJLE1BQU0sUUFBUSxXQUFXLE1BQU0sUUFBUSxXQUFXO0FBQzdDLFdBQUEsVUFBVSxhQUFhLGFBQWEsSUFBSSxJQUFJLHFCQUFxQixTQUFTLE1B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
294
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYTExeS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9hcnJvdy1uYXZpZ2F0aW9uLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvaW5wdXQtbW9kYWxpdHktZGV0ZWN0b3IudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ZvY3VzLXZpc2libGUtd2l0aGluLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9hMTF5L2ludGVyYWN0aXZpdHktY2hlY2tlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2ExMXkvZm9jdXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIFByZXZBbmROZXh0S2V5cyB7XG4gIHByZXZLZXk6IHN0cmluZztcbiAgbmV4dEtleTogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRQcmV2QW5kTmV4dEtleXMoKTogUHJldkFuZE5leHRLZXlzIHtcbiAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5tYXRjaGVzKCc6ZGlyKHJ0bCknKSkge1xuICAgIHJldHVybiB7IHByZXZLZXk6ICdBcnJvd1JpZ2h0JywgbmV4dEtleTogJ0Fycm93TGVmdCcgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBwcmV2S2V5OiAnQXJyb3dMZWZ0JywgbmV4dEtleTogJ0Fycm93UmlnaHQnIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUga2V5IHByZXNzZWQgaXMgYW1vbmcgdGhvc2UgYWxsb3dlZCBmb3IgbmF2aWdhdGlvbi5cbiAqIEBwYXJhbSBldmVudCBUaGUga2V5Ym9hcmQgZXZlbnQgdG8gY2hlY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gWydBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50LmtleSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIHNob3VsZCBtb3ZlIHRoZSBuYXZpZ2F0aW9uIHRvIHRoZSBuZXh0IGVsZW1lbnQuXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcmV2aW91c0Fycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSBnZXRQcmV2QW5kTmV4dEtleXMoKS5wcmV2S2V5O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBrZXkgcHJlc3NlZCBzaG91bGQgbW92ZSB0aGUgbmF2aWdhdGlvbiB0byB0aGUgbmV4dCBlbGVtZW50LlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dEFycm93S2V5UHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5rZXkgPT09IGdldFByZXZBbmROZXh0S2V5cygpLm5leHRLZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGtleSBwcmVzc2VkIGlzIGFtb25nIHRob3NlIGFsbG93ZWQgZm9yIG5hdmlnYXRpb24uXG4gKiBAcGFyYW0gZXZlbnQgVGhlIGtleWJvYXJkIGV2ZW50IHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0Fycm93S2V5UHJlc3NlZChldmVudCkgfHwgWydQYWdlVXAnLCAnUGFnZURvd24nLCAnSG9tZScsICdFbmQnXS5pbmNsdWRlcyhldmVudC5rZXkpO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgaW5kZXggb2YgdGhlIG5leHQgZWxlbWVudCBiYXNlZCBvbiB0aGUgZ2l2ZW4gb2Zmc2V0LlxuICogQHBhcmFtIGN1cnJlbnRJbmRleCBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAqIEBwYXJhbSBtYXhJbmRleCBUaGUgbWF4aW11bSBwZXJtaXR0ZWQgdmFsdWUgKGUuZy4gYXJyYXkgc2l6ZSkuXG4gKiBAcGFyYW0gb2Zmc2V0IFRoZSBhbW91bnQgdG8gbW92ZSBieS5cbiAqL1xuZnVuY3Rpb24gY2FsY05leHRJbmRleEluUmFuZ2UoY3VycmVudEluZGV4OiBudW1iZXIsIG1heEluZGV4OiBudW1iZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIChjdXJyZW50SW5kZXggKyBvZmZzZXQgKyBtYXhJbmRleCkgJSBtYXhJbmRleDtcbn1cblxuZnVuY3Rpb24gZ2V0TGFzdEluZGV4KHNpemU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBzaXplIC0gMTtcbn1cblxuY29uc3QgZmlyc3RJbmRleCA9IDA7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gbW92ZSB0bywgYmFzZWQgb24gdGhlIGtleWJvYXJkIGlucHV0LCB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0IGFuZCB0aGUgbGlzdCBzaXplLlxuICogQHBhcmFtIGV2ZW50IFRoZSBrZXlib2FyZCBldmVudCB0byBjaGVjay5cbiAqIEBwYXJhbSBjdXJyZW50IFRoZSBpbmRleCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGluIHRoZSBsaXN0LlxuICogQHBhcmFtIHNpemUgVGhlIHNpemUgb2YgdGhlIGxpc3QuXG4gKiBAcmV0dXJucyBpZiBpdCBpcyBhICdwcmV2aW91cycgZXZlbnQsIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBwcmV2aW91cyBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9uZSBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHRoZSBmaXJzdCBpbiB0aGUgbGlzdDtcbiAqIGlmIGl0IGlzIGEgJ25leHQnIGV2ZW50LCByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbmV4dCBlbGVtZW50LFxuICogb3IgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvbmUsIGlmIHRoZSBjdXJyZW50IGlzIHRoZSBsYXN0IGluIHRoZSBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dEVsZW1lbnRJbmRleChldmVudDogS2V5Ym9hcmRFdmVudCwgY3VycmVudDogbnVtYmVyLCBzaXplOiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCB7IHByZXZLZXksIG5leHRLZXkgfSA9IGdldFByZXZBbmROZXh0S2V5cygpO1xuXG4gIGlmIChldmVudC5rZXkgPT09IHByZXZLZXkgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICByZXR1cm4gY3VycmVudCA8IGZpcnN0SW5kZXggPyBnZXRMYXN0SW5kZXgoc2l6ZSkgOiBjYWxjTmV4dEluZGV4SW5SYW5nZShjdXJyZW50LCBzaXplLCAtMSk7XG4gIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBuZXh0S2V5IHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICByZXR1cm4gY3VycmVudCA+PSBzaXplID8gZmlyc3RJbmRleCA6IGNhbGNOZXh0SW5kZXhJblJhbmdlKGN1cnJlbnQsIHNpemUsIDEpO1xuICB9XG4gIHJldHVybiBjdXJyZW50O1xufVxuIiwiLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYWluL3NyYy9jZGsvYTExeS9mYWtlLWV2ZW50LWRldGVjdGlvbi50c1xuXG4vKiogR2V0cyB3aGV0aGVyIGFuIGV2ZW50IGNvdWxkIGJlIGEgZmFrZWQgYG1vdXNlZG93bmAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAvLyBTb21lIHNjcmVlbiByZWFkZXJzIHdpbGwgZGlzcGF0Y2ggYSBmYWtlIGBtb3VzZWRvd25gIGV2ZW50IHdoZW4gcHJlc3NpbmcgZW50ZXIgb3Igc3BhY2Ugb25cbiAgLy8gYSBjbGlja2FibGUgZWxlbWVudC4gV2UgY2FuIGRpc3Rpbmd1aXNoIHRoZXNlIGV2ZW50cyB3aGVuIGBldmVudC5idXR0b25zYCBpcyB6ZXJvLCBvclxuICAvLyBgZXZlbnQuZGV0YWlsYCBpcyB6ZXJvIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlcjpcbiAgLy8gLSBgZXZlbnQuYnV0dG9uc2Agd29ya3Mgb24gRmlyZWZveCwgYnV0IGZhaWxzIG9uIENocm9tZS5cbiAgLy8gLSBgZGV0YWlsYCB3b3JrcyBvbiBDaHJvbWUsIGJ1dCBmYWlscyBvbiBGaXJlZm94LlxuICByZXR1cm4gZXZlbnQuYnV0dG9ucyA9PT0gMCB8fCBldmVudC5kZXRhaWwgPT09IDA7XG59XG5cbi8qKiBHZXRzIHdoZXRoZXIgYW4gZXZlbnQgY291bGQgYmUgYSBmYWtlZCBgdG91Y2hzdGFydGAgZXZlbnQgZGlzcGF0Y2hlZCBieSBhIHNjcmVlbiByZWFkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlVG91Y2hzdGFydEZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IFRvdWNoRXZlbnQpOiBib29sZWFuIHtcbiAgY29uc3QgdG91Y2g6IFRvdWNoIHwgdW5kZWZpbmVkID1cbiAgICAoZXZlbnQudG91Y2hlcyAmJiBldmVudC50b3VjaGVzWzBdKSB8fCAoZXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0pO1xuXG4gIC8vIEEgZmFrZSBgdG91Y2hzdGFydGAgY2FuIGJlIGRpc3Rpbmd1aXNoZWQgZnJvbSBhIHJlYWwgb25lIGJ5IGxvb2tpbmcgYXQgdGhlIGBpZGVudGlmaWVyYFxuICAvLyB3aGljaCBpcyB0eXBpY2FsbHkgPj0gMCBvbiBhIHJlYWwgZGV2aWNlIHZlcnN1cyAtMSBmcm9tIGEgc2NyZWVuIHJlYWRlci4gSnVzdCB0byBiZSBzYWZlLFxuICAvLyB3ZSBjYW4gYWxzbyBsb29rIGF0IGByYWRpdXNYYCBhbmQgYHJhZGl1c1lgLiBUaGlzIGJlaGF2aW9yIHdhcyBvYnNlcnZlZCBhZ2FpbnN0IGEgV2luZG93cyAxMFxuICAvLyBkZXZpY2Ugd2l0aCBhIHRvdWNoIHNjcmVlbiBydW5uaW5nIE5WREEgdjIwMjAuNCBhbmQgRmlyZWZveCA4NSBvciBDaHJvbWUgODguXG4gIHJldHVybiAoXG4gICAgISF0b3VjaCAmJlxuICAgIHRvdWNoLmlkZW50aWZpZXIgPT09IC0xICYmXG4gICAgKHRvdWNoLnJhZGl1c1ggPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNYID09PSAxKSAmJlxuICAgICh0b3VjaC5yYWRpdXNZID09IG51bGwgfHwgdG91Y2gucmFkaXVzWSA9PT0gMSlcbiAgKTtcbn1cbiIsIi8vIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL2Nkay9hMTF5L2lucHV0LW1vZGFsaXR5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzXG5cbmltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgZ2V0RXZlbnRUYXJnZXQgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5cbmltcG9ydCB7XG4gIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIsXG4gIGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyLFxufSBmcm9tICcuL2Zha2UtZXZlbnQtZGV0ZWN0aW9uLmpzJztcblxuZXhwb3J0IHR5cGUgU2JiSW5wdXRNb2RhbGl0eSA9ICd0b3VjaCcgfCAnbW91c2UnIHwgJ2tleWJvYXJkJyB8ICdwcm9ncmFtJyB8IG51bGw7XG5cbi8qKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb2YgdGhlIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbmludGVyZmFjZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zIHtcbiAgLyoqIEtleXMgdG8gaWdub3JlIHdoZW4gZGV0ZWN0aW5nIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LiAqL1xuICBpZ25vcmVLZXlzPzogbnVtYmVyW107XG59XG5cbmNvbnN0IFNISUZUID0gMTY7XG5jb25zdCBDT05UUk9MID0gMTc7XG5jb25zdCBBTFQgPSAxODtcbmNvbnN0IE1FVEEgPSA5MTsgLy8gV0lOX0tFWV9MRUZUXG5jb25zdCBNQUNfTUVUQSA9IDIyNDtcblxuLyoqXG4gKiBEZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBTYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IuXG4gKlxuICogTW9kaWZpZXIga2V5cyBhcmUgaWdub3JlZCBieSBkZWZhdWx0IChpLmUuIHdoZW4gcHJlc3NlZCB3b24ndCBjYXVzZSB0aGUgc2VydmljZSB0byBkZXRlY3RcbiAqIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5KSBmb3IgdHdvIHJlYXNvbnM6XG4gKlxuICogMS4gTW9kaWZpZXIga2V5cyBhcmUgY29tbW9ubHkgdXNlZCB3aXRoIG1vdXNlIHRvIHBlcmZvcm0gYWN0aW9ucyBzdWNoIGFzICdyaWdodCBjbGljaycgb3IgJ29wZW5cbiAqICAgIGluIG5ldyB0YWInLCBhbmQgYXJlIHRodXMgbGVzcyByZXByZXNlbnRhdGl2ZSBvZiBhY3R1YWwga2V5Ym9hcmQgaW50ZXJhY3Rpb24uXG4gKiAyLiBWb2ljZU92ZXIgdHJpZ2dlcnMgc29tZSBrZXlib2FyZCBldmVudHMgd2hlbiBsaW5lYXJseSBuYXZpZ2F0aW5nIHdpdGggQ29udHJvbCArIE9wdGlvbiAoYnV0XG4gKiAgICBjb25mdXNpbmdseSBub3Qgd2l0aCBDYXBzIExvY2spLiBUaHVzLCB0byBoYXZlIHBhcml0eSB3aXRoIG90aGVyIHNjcmVlbiByZWFkZXJzLCB3ZSBpZ25vcmVcbiAqICAgIHRoZXNlIGtleXMgc28sIGFzIHRvIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkbyBub3QgYnkgZGVmYXVsdCBpZ25vcmUgdGhlIHJpZ2h0IE1ldGEga2V5IG9uIFNhZmFyaSBiZWNhdXNlIGl0IGhhcyB0aGUgc2FtZSBrZXlcbiAqIGNvZGUgYXMgdGhlIENvbnRleHRNZW51IGtleSBvbiBvdGhlciBicm93c2Vycy4gV2hlbiB3ZSBzd2l0Y2ggdG8gdXNpbmcgZXZlbnQua2V5LCB3ZSBjYW5cbiAqIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3by5cbiAqL1xuY29uc3QgaW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgaWdub3JlS2V5czogW0FMVCwgQ09OVFJPTCwgTUFDX01FVEEsIE1FVEEsIFNISUZUXSxcbn07XG5cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lIG5lZWRlZCB0byBwYXNzIGFmdGVyIGEgdG91Y2hzdGFydCBldmVudCBpbiBvcmRlciBmb3IgYSBzdWJzZXF1ZW50IG1vdXNlZG93blxuICogZXZlbnQgdG8gYmUgYXR0cmlidXRlZCBhcyBtb3VzZSBhbmQgbm90IHRvdWNoLlxuICpcbiAqIFRocm91Z2ggdHJpYWwgYW5kIGVycm9yIGl0IHdhcyBmb3VuZCB0aGF0IGEgdmFsdWUgb2YgYXJvdW5kIDY1MG1zIHNlZW1zIGFwcHJvcHJpYXRlLlxuICovXG5jb25zdCB0b3VjaEJ1ZmZlck1zID0gNjUwO1xuXG4vKipcbiAqIEV2ZW50IGxpc3RlbmVyIG9wdGlvbnMgdGhhdCBlbmFibGUgY2FwdHVyaW5nIGFuZCBhbHNvIG1hcmsgdGhlIGxpc3RlbmVyIGFzIHBhc3NpdmUgaWYgdGhlIGJyb3dzZXJcbiAqIHN1cHBvcnRzIGl0LlxuICovXG5jb25zdCBtb2RhbGl0eUV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICBwYXNzaXZlOiB0cnVlLFxuICBjYXB0dXJlOiB0cnVlLFxufTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgZGV0ZWN0cyB0aGUgdXNlcidzIGlucHV0IG1vZGFsaXR5LlxuICpcbiAqIFRoaXMgc2VydmljZSBkb2VzIG5vdCB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHdoZW4gYSB1c2VyIG5hdmlnYXRlcyB3aXRoIGEgc2NyZWVuIHJlYWRlclxuICogKGUuZy4gbGluZWFyIG5hdmlnYXRpb24gd2l0aCBWb2ljZU92ZXIsIG9iamVjdCBuYXZpZ2F0aW9uIC8gYnJvd3NlIG1vZGUgd2l0aCBOVkRBLCB2aXJ0dWFsIFBDXG4gKiBjdXJzb3IgbW9kZSB3aXRoIEpBV1MpLiBUaGlzIGlzIGluIHBhcnQgZHVlIHRvIHRlY2huaWNhbCBsaW1pdGF0aW9ucyAoaS5lLiBrZXlib2FyZCBldmVudHMgZG8gbm90XG4gKiBmaXJlIGFzIGV4cGVjdGVkIGluIHRoZXNlIG1vZGVzKSBidXQgaXMgYWxzbyBhcmd1YWJseSB0aGUgY29ycmVjdCBiZWhhdmlvci4gTmF2aWdhdGluZyB3aXRoIGFcbiAqIHNjcmVlbiByZWFkZXIgaXMgYWtpbiB0byB2aXN1YWxseSBzY2FubmluZyBhIHBhZ2UsIGFuZCBzaG91bGQgbm90IGJlIGludGVycHJldGVkIGFzIGFjdHVhbCB1c2VyXG4gKiBpbnB1dCBpbnRlcmFjdGlvbi5cbiAqXG4gKiBXaGVuIGEgdXNlciBpcyBub3QgbmF2aWdhdGluZyBidXQgKmludGVyYWN0aW5nKiB3aXRoIGEgc2NyZWVuIHJlYWRlciwgdGhpcyBzZXJ2aWNlIGF0dGVtcHRzIHRvXG4gKiB1cGRhdGUgdGhlIGlucHV0IG1vZGFsaXR5IHRvIGtleWJvYXJkLCBidXQgaW4gZ2VuZXJhbCB0aGlzIHNlcnZpY2UncyBiZWhhdmlvciBpcyBsYXJnZWx5XG4gKiB1bmRlZmluZWQuXG4gKi9cbmNsYXNzIFNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB7XG4gIC8qKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eS4gKi9cbiAgcHVibGljIGdldCBtb3N0UmVjZW50TW9kYWxpdHkoKTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1vc3QgcmVjZW50IG1vZGFsaXR5IG11c3QgYmUgaW5pdGlhbGlzZWQgd2l0aCB0aGUgdmFsdWUgJ21vdXNlJyB0byBjb3ZlciB0aGUgY2FzZSB3aGVyZSBhbiBhY3Rpb24gaXNcbiAgICogcGVyZm9ybWVkIGJ1dCBubyBtb3VzZSBvciBrZXlib2FyZCBldmVudCBoYXMgeWV0IG9jY3VycmVkIG9uIHRoZSBwYWdlIChlLmcuIGBzYmItcG9wb3ZlcmAgd2l0aCBob3ZlciB0cmlnZ2VyKS5cbiAgICovXG4gIHByaXZhdGUgX21vc3RSZWNlbnRNb2RhbGl0eTogU2JiSW5wdXRNb2RhbGl0eSB8IG51bGwgPSAnbW91c2UnO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9zdCByZWNlbnRseSBkZXRlY3RlZCBpbnB1dCBtb2RhbGl0eSBldmVudCB0YXJnZXQuIElzIG51bGwgaWYgbm8gaW5wdXQgbW9kYWxpdHkgaGFzIGJlZW5cbiAgICogZGV0ZWN0ZWQgb3IgaWYgdGhlIGFzc29jaWF0ZWQgZXZlbnQgdGFyZ2V0IGlzIG51bGwgZm9yIHNvbWUgdW5rbm93biByZWFzb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1vc3RSZWNlbnRUYXJnZXQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbW9zdFJlY2VudFRhcmdldDtcbiAgfVxuICBwcml2YXRlIF9tb3N0UmVjZW50VGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPcHRpb25zIGZvciB0aGlzIFNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uczogU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yT3B0aW9ucyA9IHtcbiAgICAuLi5pbnB1dE1vZGFsaXR5RGV0ZWN0b3JPcHRpb25zLFxuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZXN0YW1wIG9mIHRoZSBsYXN0IHRvdWNoIGlucHV0IG1vZGFsaXR5LiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIG1vdXNlZG93biBldmVudHNcbiAgICogc2hvdWxkIGJlIGF0dHJpYnV0ZWQgdG8gbW91c2Ugb3IgdG91Y2guXG4gICAqL1xuICBwcml2YXRlIF9sYXN0VG91Y2hNcyA9IDA7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5fb25Nb3VzZWRvd24sIG1vZGFsaXR5RXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuX29uVG91Y2hzdGFydCwgbW9kYWxpdHlFdmVudExpc3RlbmVyT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdtb3VzZSc7XG4gICAgdGhpcy5fbW9zdFJlY2VudFRhcmdldCA9IG51bGw7XG4gICAgdGhpcy5fbGFzdFRvdWNoTXMgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMga2V5ZG93biBldmVudHMuIE11c3QgYmUgYW4gYXJyb3cgZnVuY3Rpb24gaW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGNvbnRleHQgd2hlbiBpdCBnZXRzXG4gICAqIGJvdW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgLy8gSWYgdGhpcyBpcyBvbmUgb2YgdGhlIGtleXMgd2Ugc2hvdWxkIGlnbm9yZSwgdGhlbiBpZ25vcmUgaXQgYW5kIGRvbid0IHVwZGF0ZSB0aGUgaW5wdXRcbiAgICAvLyBtb2RhbGl0eSB0byBrZXlib2FyZC5cbiAgICBpZiAodGhpcy5fb3B0aW9ucz8uaWdub3JlS2V5cz8uc29tZSgoa2V5Q29kZSkgPT4ga2V5Q29kZSA9PT0gZXZlbnQua2V5Q29kZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAna2V5Ym9hcmQnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbW91c2Vkb3duIGV2ZW50cy4gTXVzdCBiZSBhbiBhcnJvdyBmdW5jdGlvbiBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgY29udGV4dCB3aGVuIGl0XG4gICAqIGdldHMgYm91bmQuXG4gICAqL1xuICBwcml2YXRlIF9vbk1vdXNlZG93biA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFRvdWNoZXMgdHJpZ2dlciBib3RoIHRvdWNoIGFuZCBtb3VzZSBldmVudHMsIHNvIHdlIG5lZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBtb3VzZSBldmVudHNcbiAgICAvLyB0aGF0IHdlcmUgdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC4gVG8gZG8gc28sIGNoZWNrIGlmIHRoZSBtb3VzZSBldmVudCBvY2N1cnMgY2xvc2VseVxuICAgIC8vIGFmdGVyIHRoZSBwcmV2aW91cyB0b3VjaCBldmVudC5cbiAgICBpZiAoRGF0ZS5ub3coKSAtIHRoaXMuX2xhc3RUb3VjaE1zIDwgdG91Y2hCdWZmZXJNcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEZha2UgbW91c2Vkb3duIGV2ZW50cyBhcmUgZmlyZWQgYnkgc29tZSBzY3JlZW4gcmVhZGVycyB3aGVuIGNvbnRyb2xzIGFyZSBhY3RpdmF0ZWQgYnkgdGhlXG4gICAgLy8gc2NyZWVuIHJlYWRlci4gQXR0cmlidXRlIHRoZW0gdG8ga2V5Ym9hcmQgaW5wdXQgbW9kYWxpdHkuXG4gICAgdGhpcy5fbW9zdFJlY2VudE1vZGFsaXR5ID0gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudCkgPyAna2V5Ym9hcmQnIDogJ21vdXNlJztcbiAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRvdWNoc3RhcnQgZXZlbnRzLiBNdXN0IGJlIGFuIGFycm93IGZ1bmN0aW9uIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBjb250ZXh0IHdoZW4gaXRcbiAgICogZ2V0cyBib3VuZC5cbiAgICovXG4gIHByaXZhdGUgX29uVG91Y2hzdGFydCA9IChldmVudDogVG91Y2hFdmVudCk6IHZvaWQgPT4ge1xuICAgIC8vIFNhbWUgc2NlbmFyaW8gYXMgbWVudGlvbmVkIGluIF9vbk1vdXNlZG93biwgYnV0IG9uIHRvdWNoIHNjcmVlbiBkZXZpY2VzLCBmYWtlIHRvdWNoc3RhcnRcbiAgICAvLyBldmVudHMgYXJlIGZpcmVkLiBBZ2FpbiwgYXR0cmlidXRlIHRvIGtleWJvYXJkIGlucHV0IG1vZGFsaXR5LlxuICAgIGlmIChpc0Zha2VUb3VjaHN0YXJ0RnJvbVNjcmVlblJlYWRlcihldmVudCkpIHtcbiAgICAgIHRoaXMuX21vc3RSZWNlbnRNb2RhbGl0eSA9ICdrZXlib2FyZCc7XG4gICAgICB0aGlzLl9tb3N0UmVjZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN0b3JlIHRoZSB0aW1lc3RhbXAgb2YgdGhpcyB0b3VjaCBldmVudCwgYXMgaXQncyB1c2VkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gbW91c2UgZXZlbnRzXG4gICAgLy8gdHJpZ2dlcmVkIHZpYSBtb3VzZSB2cyB0b3VjaC5cbiAgICB0aGlzLl9sYXN0VG91Y2hNcyA9IERhdGUubm93KCk7XG5cbiAgICB0aGlzLl9tb3N0UmVjZW50TW9kYWxpdHkgPSAndG91Y2gnO1xuICAgIHRoaXMuX21vc3RSZWNlbnRUYXJnZXQgPSBnZXRFdmVudFRhcmdldChldmVudCk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgPSBuZXcgU2JiSW5wdXRNb2RhbGl0eURldGVjdG9yKCk7XG5cbi8vIFNldCB0aGUgaW5wdXQgbW9kYWxpdHkgaW4gb3JkZXIgdG8gYXZvaWQgc2hvd2luZyB0aGUgb3V0bGluZSBpbiBTYWZhcmkuXG5leHBvcnQgZnVuY3Rpb24gc2V0TW9kYWxpdHlPbk5leHRGb2N1cyhlbGVtZW50VG9Gb2N1czogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gIGlmICghZWxlbWVudFRvRm9jdXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtb3N0UmVjZW50TW9kYWxpdHkgPSBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5O1xuXG4gIC8vIFNldCBmb2N1cyBvcmlnaW4gdG8gZWxlbWVudCB3aGljaCBzaG91bGQgcmVjZWl2ZSBmb2N1c1xuICBpZiAoIShlbGVtZW50VG9Gb2N1cyAmJiBtb3N0UmVjZW50TW9kYWxpdHkgIT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgJ2ZvY3VzJyxcbiAgICAoKSA9PiB7XG4gICAgICBlbGVtZW50VG9Gb2N1cy5zZXRBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtb3JpZ2luJywgbW9zdFJlY2VudE1vZGFsaXR5KTtcbiAgICAgIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4gZWxlbWVudFRvRm9jdXMucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLW9yaWdpbicpLFxuICAgICAgICB7XG4gICAgICAgICAgb25jZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSxcbiAgICB7IG9uY2U6IHRydWUgfSxcbiAgKTtcbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi9pbnB1dC1tb2RhbGl0eS1kZXRlY3Rvci5qcyc7XG5cbi8vIERldGVybWluZSB3aGV0aGVyIHRoZSBlbGVtZW50IGhhcyBhIHZpc2libGUgZm9jdXMgd2l0aGluLlxuZXhwb3J0IGNsYXNzIFNiYkZvY3VzVmlzaWJsZVdpdGhpbkNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXNpbkhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nLFxuICAgICAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyxcbiAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgX2ZvY3Vzb3V0SGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1oYXMtdmlzaWJsZS1mb2N1cy13aXRoaW4nKTtcbiAgfTtcblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9mb2N1c2luSGFuZGxlcik7XG4gICAgdGhpcy5faG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX2ZvY3Vzb3V0SGFuZGxlcik7XG4gIH1cbn1cbiIsImV4cG9ydCBmdW5jdGlvbiBoYXNHZW9tZXRyeShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAvLyBVc2UgbG9naWMgZnJvbSBqUXVlcnkgdG8gY2hlY2sgZm9yIGFuIGludmlzaWJsZSBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9oaWRkZW5WaXNpYmxlU2VsZWN0b3JzLmpzI0wxMlxuICByZXR1cm4gISEoXG4gICAgZWxlbWVudC5vZmZzZXRXaWR0aCB8fFxuICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8XG4gICAgKHR5cGVvZiBlbGVtZW50LmdldENsaWVudFJlY3RzID09PSAnZnVuY3Rpb24nICYmIGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXIgaW1wbGVtZW50cyBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciB7XG4gIC8qKlxuICAgKiBHZXRzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyB2aXNpYmxlIGZvciB0aGUgcHVycG9zZXMgb2YgaW50ZXJhY3Rpdml0eS5cbiAgICpcbiAgICogVGhpcyB3aWxsIGNhcHR1cmUgc3RhdGVzIGxpa2UgYGRpc3BsYXk6IG5vbmVgIGFuZCBgdmlzaWJpbGl0eTogaGlkZGVuYCwgYnV0IG5vdCB0aGluZ3MgbGlrZVxuICAgKiBiZWluZyBjbGlwcGVkIGJ5IGFuIGBvdmVyZmxvdzogaGlkZGVuYCBwYXJlbnQgb3IgYmVpbmcgb3V0c2lkZSB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzR2VvbWV0cnkoZWxlbWVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS52aXNpYmlsaXR5ID09PSAndmlzaWJsZSc7XG4gIH1cbn1cblxuY2xhc3MgSW50ZXJhY3Rpdml0eUNoZWNrZXJNb2NrIGltcGxlbWVudHMgSW50ZXJmYWNlSW50ZXJhY3Rpdml0eUNoZWNrZXIge1xuICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8vIEZvciB1bml0IHRlc3RzIHdlIG5lZWQgdG8gcHJldGVuZCB0aGF0IGFuIGVsZW1lbnQgaXMgYWx3YXlzIHZpc2libGUuXG4vLyBUaGlzIGNhbiBiZSBkb25lIGJ5IGNoZWNraW5nIGlmIHZpc2liaWxpdHkgcHJvcGVydHkgaXMgc2V0IHRvIGVtcHR5LlxuZXhwb3J0IGNvbnN0IGludGVyYWN0aXZpdHlDaGVja2VyOiBJbnRlcmZhY2VJbnRlcmFjdGl2aXR5Q2hlY2tlciA9XG4gIHR5cGVvZiBnZXRDb21wdXRlZFN0eWxlID09PSAndW5kZWZpbmVkJyB8fFxuICBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkudmlzaWJpbGl0eSA9PT0gJydcbiAgICA/IG5ldyBJbnRlcmFjdGl2aXR5Q2hlY2tlck1vY2soKVxuICAgIDogbmV3IEludGVyYWN0aXZpdHlDaGVja2VyKCk7XG4iLCJpbXBvcnQgeyBpbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJy4vaW50ZXJhY3Rpdml0eS1jaGVja2VyLmpzJztcblxuZXhwb3J0IGNvbnN0IElTX0ZPQ1VTQUJMRV9RVUVSWSA9IFtcbiAgJ2J1dHRvbicsXG4gICdbaHJlZl0nLFxuICAnaW5wdXQnLFxuICAnc2VsZWN0JyxcbiAgJ3RleHRhcmVhJyxcbiAgJ2RldGFpbHMnLFxuICAnc3VtbWFyeTpub3QoOmRpc2FibGVkKScsXG4gICdbdGFiaW5kZXhdJyxcbl1cbiAgLm1hcCgoc2VsZWN0b3IpID0+IGAke3NlbGVjdG9yfTpub3QoW2Rpc2FibGVkXTpub3QoW2Rpc2FibGVkLWludGVyYWN0aXZlXSksW3RhYmluZGV4PVwiLTFcIl0pYClcbiAgLmpvaW4oJywnKTtcblxuLy8gTm90ZTogdGhlIHVzZSBvZiB0aGlzIGZ1bmN0aW9uIGZvciBtb3JlIGNvbXBsZXggc2NlbmFyaW9zICh3aXRoIG1hbnkgbmVzdGVkIGVsZW1lbnRzKSBtYXkgYmUgZXhwZW5zaXZlLlxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvY3VzYWJsZUVsZW1lbnRzKFxuICBlbGVtZW50czogSFRNTEVsZW1lbnRbXSxcbiAgcHJvcGVydGllcz86IHtcbiAgICBmaWx0ZXI/OiAoZWw6IEhUTUxFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIGZpbmRGaXJzdEZvY3VzYWJsZT86IGJvb2xlYW47XG4gICAgaW5jbHVkZUludmlzaWJsZUVsZW1lbnRzPzogYm9vbGVhbjtcbiAgfSxcbik6IEhUTUxFbGVtZW50W10ge1xuICBjb25zdCBmb2N1c2FibGVFbHMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuXG4gIGZ1bmN0aW9uIGdldEZvY3VzYWJsZXMoZWxlbWVudHM6IEhUTUxFbGVtZW50W10sIGZpbHRlcj86IChlbDogSFRNTEVsZW1lbnQpID0+IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGVsIG9mIGVsZW1lbnRzKSB7XG4gICAgICBpZiAoZmlsdGVyICYmICFmaWx0ZXIoZWwpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWwubm9kZU5hbWUgPT09ICdTTE9UJykge1xuICAgICAgICBnZXRGb2N1c2FibGVzKFxuICAgICAgICAgIEFycmF5LmZyb20oKGVsIGFzIEhUTUxTbG90RWxlbWVudCkuYXNzaWduZWRFbGVtZW50cygpKSBhcyBIVE1MRWxlbWVudFtdLFxuICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgZWwubWF0Y2hlcyhJU19GT0NVU0FCTEVfUVVFUlkpICYmXG4gICAgICAgIChwcm9wZXJ0aWVzPy5pbmNsdWRlSW52aXNpYmxlRWxlbWVudHMgPz8gaW50ZXJhY3Rpdml0eUNoZWNrZXIuaXNWaXNpYmxlKGVsKSlcbiAgICAgICkge1xuICAgICAgICBmb2N1c2FibGVFbHMuYWRkKGVsKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BlcnRpZXM/LmZpbmRGaXJzdEZvY3VzYWJsZSAmJiBmb2N1c2FibGVFbHMuc2l6ZSA+IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbC5jaGlsZHJlbi5sZW5ndGggfHwgZWwuc2hhZG93Um9vdD8uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gQXJyYXkuZnJvbShlbC5jaGlsZHJlbikubGVuZ3RoXG4gICAgICAgICAgPyAoQXJyYXkuZnJvbShlbC5jaGlsZHJlbikgYXMgSFRNTEVsZW1lbnRbXSlcbiAgICAgICAgICA6IChBcnJheS5mcm9tKGVsLnNoYWRvd1Jvb3QhLmNoaWxkcmVuKSBhcyBIVE1MRWxlbWVudFtdKTtcbiAgICAgICAgZ2V0Rm9jdXNhYmxlcyhjaGlsZHJlbiwgZmlsdGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZ2V0Rm9jdXNhYmxlcyhlbGVtZW50cywgcHJvcGVydGllcz8uZmlsdGVyKTtcblxuICByZXR1cm4gWy4uLmZvY3VzYWJsZUVsc107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJzdEZvY3VzYWJsZUVsZW1lbnQoXG4gIGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLFxuICBmaWx0ZXI/OiAoZWw6IEhUTUxFbGVtZW50KSA9PiBib29sZWFuLFxuKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBnZXRGb2N1c2FibGVFbGVtZW50cyhlbGVtZW50cywge1xuICAgIGZpbHRlcixcbiAgICBmaW5kRmlyc3RGb2N1c2FibGU6IHRydWUsXG4gIH0pO1xuICByZXR1cm4gZm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoID8gZm9jdXNhYmxlRWxlbWVudHNbMF0gOiBudWxsO1xufVxuXG5leHBvcnQgY2xhc3MgU2JiRm9jdXNIYW5kbGVyIHtcbiAgcHJpdmF0ZSBfY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAvKipcbiAgICogQHBhcmFtIGVsZW1lbnQgaW4gd2hpY2ggdGhlIGZvY3VzIHNob3VsZCBiZSB0cmFwcGVkLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIG9wdGlvbnMuZmlsdGVyIGZpbHRlciBmdW5jdGlvbiB3aGljaCBpcyBhcHBsaWVkIGR1cmluZyBzZWFyY2hpbmcgZm9yIGZvY3VzYWJsZSBlbGVtZW50LiBJZiBhbiBlbGVtZW50IGlzIGZpbHRlcmVkLCBhbHNvIGNoaWxkIGVsZW1lbnRzIGFyZSBmaWx0ZXJlZC5cbiAgICogQHBhcmFtIG9wdGlvbnMucG9zdEZpbHRlciBmaWx0ZXIgZnVuY3Rpb24gd2hpY2ggaXMgYXBwbGllZCBhZnRlciBjb2xsZWN0aW5nIGZvY3VzYWJsZSBlbGVtZW50cy5cbiAgICovXG4gIHB1YmxpYyB0cmFwKFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBmaWx0ZXI/OiAoZWw6IEhUTUxFbGVtZW50KSA9PiBib29sZWFuO1xuICAgICAgcG9zdEZpbHRlcj86IChlbDogSFRNTEVsZW1lbnQpID0+IGJvb2xlYW47XG4gICAgfSxcbiAgKTogdm9pZCB7XG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2tleWRvd24nLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgIT09ICdUYWInKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRHluYW1pY2FsbHkgZ2V0IGZpcnN0IGFuZCBsYXN0IGZvY3VzYWJsZSBlbGVtZW50LCBhcyB0aGlzIG1pZ2h0IGhhdmUgY2hhbmdlZCBzaW5jZSBvcGVuaW5nIG92ZXJsYXlcbiAgICAgICAgY29uc3QgZWxlbWVudENoaWxkcmVuOiBIVE1MRWxlbWVudFtdID0gQXJyYXkuZnJvbShcbiAgICAgICAgICBlbGVtZW50LnNoYWRvd1Jvb3QhLmNoaWxkcmVuIHx8IFtdLFxuICAgICAgICApIGFzIEhUTUxFbGVtZW50W107XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnRzID0gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoZWxlbWVudENoaWxkcmVuLCB7XG4gICAgICAgICAgZmlsdGVyOiBvcHRpb25zPy5maWx0ZXIsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZEZvY3VzYWJsZUVsZW1lbnRzID0gZm9jdXNhYmxlRWxlbWVudHMuZmlsdGVyKFxuICAgICAgICAgIG9wdGlvbnM/LnBvc3RGaWx0ZXIgPz8gKCgpID0+IHRydWUpLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghZmlsdGVyZWRGb2N1c2FibGVFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IGZpbHRlcmVkRm9jdXNhYmxlRWxlbWVudHNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGUgPSBmaWx0ZXJlZEZvY3VzYWJsZUVsZW1lbnRzW1xuICAgICAgICAgIGZpbHRlcmVkRm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoIC0gMVxuICAgICAgICBdIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IFtwaXZvdCwgbmV4dF0gPSBldmVudC5zaGlmdEtleVxuICAgICAgICAgID8gW2ZpcnN0Rm9jdXNhYmxlLCBsYXN0Rm9jdXNhYmxlXVxuICAgICAgICAgIDogW2xhc3RGb2N1c2FibGUsIGZpcnN0Rm9jdXNhYmxlXTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgKGZpcnN0Rm9jdXNhYmxlLmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5hY3RpdmVFbGVtZW50ID09PSBwaXZvdCB8fFxuICAgICAgICAgIChsYXN0Rm9jdXNhYmxlLmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5hY3RpdmVFbGVtZW50ID09PSBwaXZvdFxuICAgICAgICApIHtcbiAgICAgICAgICBuZXh0LmZvY3VzKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgc2lnbmFsOiB0aGlzLl9jb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250cm9sbGVyLmFib3J0KCk7XG4gICAgdGhpcy5fY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImVsZW1lbnRzIl0sIm1hcHBpbmdzIjoiOztBQUtBLFNBQVMscUJBQXNDO0FBQzdDLE1BQUksU0FBUyxnQkFBZ0IsUUFBUSxXQUFXLEdBQUc7QUFDakQsV0FBTyxFQUFFLFNBQVMsY0FBYyxTQUFTLFlBQVk7QUFBQSxFQUFBLE9BQ2hEO0FBQ0wsV0FBTyxFQUFFLFNBQVMsYUFBYSxTQUFTLGFBQWE7QUFBQSxFQUN2RDtBQUNGO0FBTU8sU0FBUyxrQkFBa0IsT0FBK0I7QUFDeEQsU0FBQSxDQUFDLGNBQWMsYUFBYSxXQUFXLFdBQVcsRUFBRSxTQUFTLE1BQU0sR0FBRztBQUMvRTtBQU1PLFNBQVMsMEJBQTBCLE9BQStCO0FBQ3ZFLFNBQU8sTUFBTSxRQUFRLGFBQWEsTUFBTSxRQUFRLG1CQUFxQixFQUFBO0FBQ3ZFO0FBTU8sU0FBUyxzQkFBc0IsT0FBK0I7QUFDbkUsU0FBTyxNQUFNLFFBQVEsZUFBZSxNQUFNLFFBQVEsbUJBQXFCLEVBQUE7QUFDekU7QUFNTyxTQUFTLDRCQUE0QixPQUErQjtBQUNsRSxTQUFBLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxVQUFVLFlBQVksUUFBUSxLQUFLLEVBQUUsU0FBUyxNQUFNLEdBQUc7QUFDN0Y7QUFRQSxTQUFTLHFCQUFxQixjQUFzQixVQUFrQixRQUF3QjtBQUNwRixVQUFBLGVBQWUsU0FBUyxZQUFZO0FBQzlDO0FBRUEsU0FBUyxhQUFhLE1BQXNCO0FBQzFDLFNBQU8sT0FBTztBQUNoQjtBQUVBLE1BQU0sYUFBYTtBQVlILFNBQUEsb0JBQW9CLE9BQXNCLFNBQWlCLE1BQXNCO0FBQy9GLFFBQU0sRUFBRSxTQUFTLFFBQVEsSUFBSSxtQkFBbUI7QUFFaEQsTUFBSSxNQUFNLFFBQVEsV0FBVyxNQUFNLFFBQVEsV0FBVztBQUM3QyxXQUFBLFVBQVUsYUFBYSxh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
@@ -1 +1 @@
1
- {"version":3,"file":"action-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/action-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAgB5D,8BAGsB,oBAAqB,SAAQ,UAAU;IAC3D,SAAS,KAAK,aAAa,IAAI,OAAO,GAAG,SAAS,CAGjD;IAED,SAAS,KAAK,wBAAwB,IAAI,OAAO,GAAG,SAAS,CAE5D;IAEe,iBAAiB,IAAI,IAAI;IAezC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAexC,6DAA6D;IAC7D,SAAS,CAAC,cAAc,IAAI,cAAc;IAI1C,wDAAwD;cACrC,MAAM,IAAI,cAAc;CAO5C"}
1
+ {"version":3,"file":"action-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/action-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAe5D,8BAGsB,oBAAqB,SAAQ,UAAU;IAC3D,SAAS,KAAK,aAAa,IAAI,OAAO,GAAG,SAAS,CAGjD;IAED,SAAS,KAAK,wBAAwB,IAAI,OAAO,GAAG,SAAS,CAE5D;IAEe,iBAAiB,IAAI,IAAI;IAezC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAexC,6DAA6D;IAC7D,SAAS,CAAC,cAAc,IAAI,cAAc;IAI1C,wDAAwD;cACrC,MAAM,IAAI,cAAc;CAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"link-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/link-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAK1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,6BAA6B,CAAC;AAErC,0DAA0D;AAC1D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE,uBAAuB;AACvB,8BAGsB,kBAAmB,SAAQ,oBAAoB;IACnE,0CAA0C;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEjC,uCAAuC;IACpB,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;IAEpD,wEAAwE;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEhC,kEAAkE;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEvD,wEAAwE;IACjB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9F,SAAS,CAAC,QAAQ,wBAAmC;;IASrD,gBAAgB;IACA,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAI/D,gBAAgB;IACA,IAAI,IAAI,IAAI;IAI5B,gBAAgB;IACA,KAAK,IAAI,IAAI;IAI7B,OAAO,CAAC,qBAAqB,CAE3B;IAEF,mHAAmH;cAChG,MAAM,IAAI,cAAc;CAqB5C"}
1
+ {"version":3,"file":"link-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/link-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,6BAA6B,CAAC;AAErC,0DAA0D;AAC1D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAErE,uBAAuB;AACvB,8BAGsB,kBAAmB,SAAQ,oBAAoB;IACnE,0CAA0C;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEjC,uCAAuC;IACpB,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;IAEpD,wEAAwE;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEhC,kEAAkE;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEvD,wEAAwE;IACjB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9F,SAAS,CAAC,QAAQ,wBAAmC;;IASrD,gBAAgB;IACA,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAI/D,gBAAgB;IACA,IAAI,IAAI,IAAI;IAI5B,gBAAgB;IACA,KAAK,IAAI,IAAI;IAI7B,OAAO,CAAC,qBAAqB,CAE3B;IAEF,mHAAmH;cAChG,MAAM,IAAI,cAAc;CAqB5C"}
@@ -1,6 +1,5 @@
1
1
  import { LitElement, html, isServer, nothing } from "lit";
2
2
  import { hostAttributes } from "./decorators.js";
3
- import { getLocalName } from "./dom.js";
4
3
  import { property } from "lit/decorators.js";
5
4
  import { isEventPrevented, EventEmitter } from "./eventing.js";
6
5
  import { SbbLanguageController } from "./controllers.js";
@@ -54,11 +53,7 @@ let SbbActionBaseElement = class extends LitElement {
54
53
  }
55
54
  /** Default render method for button-like components. */
56
55
  render() {
57
- return html`
58
- <span class="sbb-action-base ${this.localName ?? getLocalName(this)}">
59
- ${this.renderTemplate()}
60
- </span>
61
- `;
56
+ return html` <span class="sbb-action-base ${this.localName}">${this.renderTemplate()}</span> `;
62
57
  }
63
58
  };
64
59
  SbbActionBaseElement = __decorateClass$2([
@@ -219,7 +214,7 @@ let SbbLinkBaseElement = class extends SbbActionBaseElement {
219
214
  render() {
220
215
  return html`
221
216
  <a
222
- class="sbb-action-base ${this.localName ?? getLocalName(this)}"
217
+ class="sbb-action-base ${this.localName}"
223
218
  href=${this.href || nothing}
224
219
  ?download=${this.download}
225
220
  target=${this.target || nothing}
@@ -302,4 +297,4 @@ export {
302
297
  SbbLinkBaseElement,
303
298
  SbbOpenCloseBaseElement
304
299
  };
305
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBnZXRMb2NhbE5hbWUgfSBmcm9tICcuLi9kb20uanMnO1xuXG4vKipcbiAqIFdoZW5ldmVyIGFuIGVsZW1lbnQgY2FuIGJlIGRpc2FibGVkIGl0IGhhcyBkaXNhYmxlZCBwcm9wZXJ0eVxuICogb3IgZm9ybURpc2FibGVkIGlmIGl0J3MgYSBmb3JtIGVsZW1lbnQuXG4gKiBCZWNhdXNlIHdlIGNhbid0IHVzZSB0eXBlcyBoZXJlIGRpcmVjdGx5IHdlIGNyZWF0ZWQgdGhpcyBoZWxwZXIgdHlwZS5cbiAqL1xudHlwZSBNYXliZURpc2FibGVkID0ge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGZvcm1EaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkSW50ZXJhY3RpdmU/OiBib29sZWFuO1xufTtcblxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgJ2RhdGEtYWN0aW9uJzogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYkFjdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgbWF5YmVEaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXliZURpc2FibGVkID0gdGhpcyBhcyBNYXliZURpc2FibGVkO1xuICAgIHJldHVybiBtYXliZURpc2FibGVkLmRpc2FibGVkIHx8IG1heWJlRGlzYWJsZWQuZm9ybURpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBtYXliZURpc2FibGVkSW50ZXJhY3RpdmUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICh0aGlzIGFzIE1heWJlRGlzYWJsZWQpLmRpc2FibGVkSW50ZXJhY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGlmIChcbiAgICAgIGltcG9ydC5tZXRhLmVudi5ERVYgJiZcbiAgICAgICh0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1saW5rJykgfHwgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtYnV0dG9uJykpICYmXG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTmVzdGVkIGFjdGlvbiBlbGVtZW50IGRldGVjdGVkICgke3RoaXMubG9jYWxOYW1lfSBpbnNpZGUgJHt0aGlzLnBhcmVudEVsZW1lbnQhLmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKSEubG9jYWxOYW1lfSkuIE1heWJlIHVzZSBhIHN0YXRpYyB2YXJpYW50IGZvciB0aGUgaW5uZXIgYWN0aW9uIGVsZW1lbnQ/YCxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYXliZURpc2FibGVkICYmICF0aGlzLm1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjYXB0dXJlIGlzIG5lY2Vzc2FyeSBoZXJlLCBhcyB0aGlzIGV2ZW50IGhhbmRsZXIgbmVlZHMgdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIGFueSBvdGhlclxuICAgICAgLy8gaW4gb3JkZXIgdG8gc3RvcCBpbW1lZGlhdGUgcHJvcGFnYXRpb24gaW4gdGhlIGRpc2FibGVkIGNhc2UuXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJlbmRlciB0aGUgY29tcG9uZW50IHRlbXBsYXRlLiAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcignSW1wbGVtZW50YXRpb24gbmVlZGVkIScpO1xuICB9XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgYnV0dG9uLWxpa2UgY29tcG9uZW50cy4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1hY3Rpb24tYmFzZSAke3RoaXMubG9jYWxOYW1lID8/IGdldExvY2FsTmFtZSh0aGlzKX1cIj5cbiAgICAgICAgJHt0aGlzLnJlbmRlclRlbXBsYXRlKCl9XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0V2ZW50UHJldmVudGVkIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbi8qKiBFbnVtZXJhdGlvbiBmb3IgdHlwZSBhdHRyaWJ1dGUgaW4gPGJ1dHRvbj4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBTYmJCdXR0b25UeXBlID0gJ2J1dHRvbicgfCAncmVzZXQnIHwgJ3N1Ym1pdCc7XG5cbi8qKiBCdXR0b24gYmFzZSBjbGFzcy4gKi9cbkBob3N0QXR0cmlidXRlcyh7XG4gIHJvbGU6ICdidXR0b24nLFxuICB0YWJpbmRleDogJzAnLFxuICAnZGF0YS1idXR0b24nOiAnJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJBY3Rpb25CYXNlRWxlbWVudCB7XG4gIC8qKiBUaGUgdHlwZSBhdHRyaWJ1dGUgdG8gdXNlIGZvciB0aGUgYnV0dG9uLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgdHlwZTogU2JiQnV0dG9uVHlwZSA9ICdidXR0b24nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYnV0dG9uIGVsZW1lbnQuXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEZXZlbG9wZXIgbm90ZTogSW4gdGhpcyBjYXNlIHVwZGF0aW5nIHRoZSBhdHRyaWJ1dGUgbXVzdCBiZSBzeW5jaHJvbm91cy5cbiAgICogRHVlIHRvIHRoaXMgaXQgaXMgaW1wbGVtZW50ZWQgYXMgYSBnZXR0ZXIvc2V0dGVyIGFuZCB0aGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKCkgaGFuZGxlcyB0aGUgZGlmZiBjaGVjay5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgbmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnbmFtZScsIGAke25hbWV9YCk7XG4gIH1cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJykgPz8gJyc7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBidXR0b24gZWxlbWVudC5cbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgKiBEdWUgdG8gdGhpcyBpdCBpcyBpbXBsZW1lbnRlZCBhcyBhIGdldHRlci9zZXR0ZXIgYW5kIHRoZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soKSBoYW5kbGVzIHRoZSBkaWZmIGNoZWNrLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgYCR7dmFsdWV9YCk7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA/PyAnJztcbiAgfVxuXG4gIC8qKiBUaGUgPGZvcm0+IGVsZW1lbnQgdG8gYXNzb2NpYXRlIHRoZSBidXR0b24gd2l0aC4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGZvcm0/OiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG5cbiAgICAgIGNvbnN0IHBhc3NpdmVPcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH07XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQnV0dG9uQ2xpY2spO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fcHJldmVudFNjcm9sbE9uU3BhY2VLZXlkb3duKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlciwgcGFzc2l2ZU9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5cHJlc3MnLFxuICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoQ2xpY2tFdmVudChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXNzaXZlT3B0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQnV0dG9uQ2xpY2sgPSBhc3luYyAoZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnYnV0dG9uJyB8fCAoYXdhaXQgaXNFdmVudFByZXZlbnRlZChldmVudCkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVXNlIHF1ZXJ5U2VsZWN0b3Igd2l0aCBmb3JtIGFuZCBpZCBzZWxlY3RvciwgYXMgdGhlIGZvcm0gcHJvcGVydHkgbXVzdFxuICAgIC8vIHJlZmVyZW5jZSBhIHZhbGlkIDxmb3JtPiBlbGVtZW50XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVxuICAgICAgPyAodGhpcy5vd25lckRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGZvcm0jJHt0aGlzLmZvcm19YCkgYXMgSFRNTEZvcm1FbGVtZW50KVxuICAgICAgOiB0aGlzLmNsb3Nlc3QoJ2Zvcm0nKTtcbiAgICBpZiAoIWZvcm0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3N1Ym1pdCcpIHtcbiAgICAgIC8vIGBmb3JtLnJlcXVlc3RTdWJtaXQoZWxlbWVudCk7YCBzZWVtcyBub3QgdG8gd29yayBmb3IgQ3VzdG9tRWxlbWVudHMsIHNvIHRoZSBgZWxlbWVudGAgcGFyYW1ldGVyIGhhcyBiZWVuIHJlbW92ZWQ7XG4gICAgICAvLyBUT0RPOiBDaGVjayBpZiBzb2x2ZWQgaW4gYW55IHdheSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL3dlYmNvbXBvbmVudHMvaXNzdWVzLzgxNCNpc3N1ZWNvbW1lbnQtMTIxODQ1MjEzN1xuICAgICAgZm9ybS5yZXF1ZXN0U3VibWl0KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdyZXNldCcpIHtcbiAgICAgIGZvcm0ucmVzZXQoKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFByZXZlbnRzIHNjcm9sbGluZyBmcm9tIHByZXNzaW5nIFNwYWNlLCB3aGVuIHRoZSBldmVudCB0YXJnZXQgaXMgYW4gYWN0aW9uIGVsZW1lbnQuXG4gICAqIEFsc28gc2V0cyBkYXRhLWFjdGl2ZSBhdHRyaWJ1dGUuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgb3JpZ2luIGV2ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfcHJldmVudFNjcm9sbE9uU3BhY2VLZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScsIHRydWUpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9yZW1vdmVBY3RpdmVNYXJrZXIgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGEgJ2NsaWNrJyBQb2ludGVyRXZlbnQgaWYgdGhlIG9yaWdpbmFsIGtleWJvYXJkIGV2ZW50IGlzIGEgJ1NwYWNlJyBwcmVzcy5cbiAgICogQXMgdmVyaWZpZWQgd2l0aCB0aGUgbmF0aXZlIGJ1dHRvbiwgd2hlbiAnU3BhY2UnIGlzIHByZXNzZWQsIGEgJ2NsaWNrJyBldmVudCBpcyBkaXNwYXRjaGVkXG4gICAqIGFmdGVyIHRoZSAna2V5dXAnIGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIG9yaWdpbiBldmVudC5cbiAgICovXG4gIHByaXZhdGUgX2Rpc3BhdGNoQ2xpY2tFdmVudE9uU3BhY2VLZXl1cCA9IChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgdGhpcy5fcmVtb3ZlQWN0aXZlTWFya2VyKGV2ZW50KTtcbiAgICAgIHRoaXMuX2Rpc3BhdGNoQ2xpY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX2Rpc3BhdGNoQ2xpY2tFdmVudCA9IChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHsgYWx0S2V5LCBjdHJsS2V5LCBtZXRhS2V5LCBzaGlmdEtleSB9ID0gZXZlbnQ7XG4gICAgKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IFBvaW50ZXJFdmVudCgnY2xpY2snLCB7XG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICBwb2ludGVySWQ6IC0xLFxuICAgICAgICBwb2ludGVyVHlwZTogJycsXG4gICAgICAgIGFsdEtleSxcbiAgICAgICAgY3RybEtleSxcbiAgICAgICAgbWV0YUtleSxcbiAgICAgICAgc2hpZnRLZXksXG4gICAgICB9KSxcbiAgICApO1xuICB9O1xuXG4gIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG9sZDogc3RyaW5nIHwgbnVsbCxcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFbJ25hbWUnLCAndmFsdWUnXS5pbmNsdWRlcyhuYW1lKSB8fCBvbGQgIT09IHZhbHVlKSB7XG4gICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGdldExvY2FsTmFtZSB9IGZyb20gJy4uL2RvbS5qcyc7XG5pbXBvcnQgeyBpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvdyB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxuLyoqIEVudW1lcmF0aW9uIGZvciAndGFyZ2V0JyBhdHRyaWJ1dGUgaW4gPGE+IEhUTUwgdGFnLiAqL1xuZXhwb3J0IHR5cGUgTGlua1RhcmdldFR5cGUgPSAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XG5cbi8qKiBMaW5rIGJhc2UgY2xhc3MuICovXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICAnZGF0YS1saW5rJzogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYkxpbmtCYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSBocmVmIHZhbHVlIHlvdSB3YW50IHRvIGxpbmsgdG8uICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBocmVmPzogc3RyaW5nO1xuXG4gIC8qKiBXaGVyZSB0byBkaXNwbGF5IHRoZSBsaW5rZWQgVVJMLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgdGFyZ2V0PzogTGlua1RhcmdldFR5cGUgfCBzdHJpbmc7XG5cbiAgLyoqIFRoZSByZWxhdGlvbnNoaXAgb2YgdGhlIGxpbmtlZCBVUkwgYXMgc3BhY2Utc2VwYXJhdGVkIGxpbmsgdHlwZXMuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyByZWw/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJyb3dzZXIgd2lsbCBzaG93IHRoZSBkb3dubG9hZCBkaWFsb2cgb24gY2xpY2suICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGRvd25sb2FkPzogYm9vbGVhbjtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBpbm5lciBhbmNob3IgZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uYmx1cigpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgY2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5jbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZXZhbHVhdGVSZWxBdHRyaWJ1dGUgPSAoKTogc3RyaW5nIHwgdHlwZW9mIG5vdGhpbmcgPT4ge1xuICAgIHJldHVybiB0aGlzLnJlbCA/IHRoaXMucmVsIDogdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnID8gJ2V4dGVybmFsIG5vb3BlbmVyIG5vZm9sbG93JyA6IG5vdGhpbmc7XG4gIH07XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgbGluay1saWtlIGNvbXBvbmVudHMuIENhbiBiZSBvdmVycmlkZGVuIGlmIHRoZSBMaW5rUmVuZGVyVmFyaWFibGVzIGFyZSBub3QgbmVlZGVkLiAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwic2JiLWFjdGlvbi1iYXNlICR7dGhpcy5sb2NhbE5hbWUgPz8gZ2V0TG9jYWxOYW1lKHRoaXMpfVwiXG4gICAgICAgIGhyZWY9JHt0aGlzLmhyZWYgfHwgbm90aGluZ31cbiAgICAgICAgP2Rvd25sb2FkPSR7dGhpcy5kb3dubG9hZH1cbiAgICAgICAgdGFyZ2V0PSR7dGhpcy50YXJnZXQgfHwgbm90aGluZ31cbiAgICAgICAgcmVsPSR7dGhpcy5fZXZhbHVhdGVSZWxBdHRyaWJ1dGUoKX1cbiAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUxhYmVsIHx8IG5vdGhpbmd9XG4gICAgICAgIHRhYmluZGV4PSR7dGhpcy5tYXliZURpc2FibGVkICYmICF0aGlzLm1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSA/ICctMScgOiBub3RoaW5nfVxuICAgICAgICBhcmlhLWRpc2FibGVkPSR7dGhpcy5tYXliZURpc2FibGVkID8gJ3RydWUnIDogbm90aGluZ31cbiAgICAgID5cbiAgICAgICAgJHt0aGlzLnJlbmRlclRlbXBsYXRlKCl9XG4gICAgICAgICR7ISF0aGlzLmhyZWYgJiYgdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnXG4gICAgICAgICAgPyBodG1sYDxzYmItc2NyZWVuLXJlYWRlci1vbmx5XG4gICAgICAgICAgICAgID4uICR7aTE4blRhcmdldE9wZW5zSW5OZXdXaW5kb3dbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgID5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9hPlxuICAgIGA7XG4gIH1cbn1cbiIsImltcG9ydCB7IExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wZW5lZENsb3NlZFN0YXRlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy5qcyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3Igb3ZlcmxheSBjb21wb25lbnRzLlxuICpcbiAqIEBldmVudCB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQgd2lsbENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB3aWxsT3BlbjogJ3dpbGxPcGVuJyxcbiAgICBkaWRPcGVuOiAnZGlkT3BlbicsXG4gICAgd2lsbENsb3NlOiAnd2lsbENsb3NlJyxcbiAgICBkaWRDbG9zZTogJ2RpZENsb3NlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIHByb3RlY3RlZCBzZXQgc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCBzdGF0ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldCBzdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgU2JiT3BlbmVkQ2xvc2VkU3RhdGU7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZWxlbWVudCBpcyBvcGVuLiAqL1xuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCc7XG4gIH1cblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIHdpbGxPcGVuOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLndpbGxPcGVuLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC4gKi9cbiAgcHJvdGVjdGVkIGRpZE9wZW46IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLmRpZE9wZW4pO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiAqL1xuICBwcm90ZWN0ZWQgd2lsbENsb3NlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLndpbGxDbG9zZSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuICovXG4gIHByb3RlY3RlZCBkaWRDbG9zZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy5kaWRDbG9zZSxcbiAgKTtcblxuICAvKiogT3BlbnMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIGFic3RyYWN0IG9wZW4oKTogdm9pZDtcbiAgLyoqIENsb3NlcyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvc2UoKTogdm9pZDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnN0YXRlIHx8PSAnY2xvc2VkJztcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIHdpbGxPcGVuOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICB3aWxsQ2xvc2U6IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICAgIGRpZE9wZW46IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICAgIGRpZENsb3NlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9fZGVjb3JhdGVDbGFzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJzQixJQUFBLHVCQUFmLGNBQTRDLFdBQVc7QUFBQSxFQUM1RCxJQUFjLGdCQUFxQztBQUNqRCxVQUFNLGdCQUFnQjtBQUNmLFdBQUEsY0FBYyxZQUFZLGNBQWM7QUFBQSxFQUNqRDtBQUFBLEVBRUEsSUFBYywyQkFBZ0Q7QUFDNUQsV0FBUSxLQUF1QjtBQUFBLEVBQ2pDO0FBQUEsRUFFZ0Isb0JBQTBCOztBQUN4QyxVQUFNLGtCQUFrQjtBQUV4QixTQUVHLEtBQUssYUFBYSxXQUFXLEtBQUssS0FBSyxhQUFhLGFBQWEsUUFDbEUsVUFBSyxrQkFBTCxtQkFBb0IsUUFBUSwyQ0FDNUI7QUFDUSxjQUFBO0FBQUEsUUFDTixtQ0FBbUMsS0FBSyxTQUFTLFdBQVcsS0FBSyxjQUFlLFFBQVEsdUNBQXVDLEVBQUcsU0FBUztBQUFBLFFBQzNJO0FBQUEsTUFBQTtBQUFBLElB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
300
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbi8qKlxuICogV2hlbmV2ZXIgYW4gZWxlbWVudCBjYW4gYmUgZGlzYWJsZWQgaXQgaGFzIGRpc2FibGVkIHByb3BlcnR5XG4gKiBvciBmb3JtRGlzYWJsZWQgaWYgaXQncyBhIGZvcm0gZWxlbWVudC5cbiAqIEJlY2F1c2Ugd2UgY2FuJ3QgdXNlIHR5cGVzIGhlcmUgZGlyZWN0bHkgd2UgY3JlYXRlZCB0aGlzIGhlbHBlciB0eXBlLlxuICovXG50eXBlIE1heWJlRGlzYWJsZWQgPSB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZm9ybURpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJbnRlcmFjdGl2ZT86IGJvb2xlYW47XG59O1xuXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICAnZGF0YS1hY3Rpb24nOiAnJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiQWN0aW9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHJvdGVjdGVkIGdldCBtYXliZURpc2FibGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1heWJlRGlzYWJsZWQgPSB0aGlzIGFzIE1heWJlRGlzYWJsZWQ7XG4gICAgcmV0dXJuIG1heWJlRGlzYWJsZWQuZGlzYWJsZWQgfHwgbWF5YmVEaXNhYmxlZC5mb3JtRGlzYWJsZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IG1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKHRoaXMgYXMgTWF5YmVEaXNhYmxlZCkuZGlzYWJsZWRJbnRlcmFjdGl2ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgaWYgKFxuICAgICAgaW1wb3J0Lm1ldGEuZW52LkRFViAmJlxuICAgICAgKHRoaXMuaGFzQXR0cmlidXRlKCdkYXRhLWxpbmsnKSB8fCB0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1idXR0b24nKSkgJiZcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnW2RhdGEtbGlua10sIFtkYXRhLWJ1dHRvbl0sIGEsIGJ1dHRvbicpXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBOZXN0ZWQgYWN0aW9uIGVsZW1lbnQgZGV0ZWN0ZWQgKCR7dGhpcy5sb2NhbE5hbWV9IGluc2lkZSAke3RoaXMucGFyZW50RWxlbWVudCEuY2xvc2VzdCgnW2RhdGEtbGlua10sIFtkYXRhLWJ1dHRvbl0sIGEsIGJ1dHRvbicpIS5sb2NhbE5hbWV9KS4gTWF5YmUgdXNlIGEgc3RhdGljIHZhcmlhbnQgZm9yIHRoZSBpbm5lciBhY3Rpb24gZWxlbWVudD9gLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBCYXNlRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY2xpY2snLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1heWJlRGlzYWJsZWQgJiYgIXRoaXMubWF5YmVEaXNhYmxlZEludGVyYWN0aXZlKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIGNhcHR1cmUgaXMgbmVjZXNzYXJ5IGhlcmUsIGFzIHRoaXMgZXZlbnQgaGFuZGxlciBuZWVkcyB0byBiZSBleGVjdXRlZCBiZWZvcmUgYW55IG90aGVyXG4gICAgICAvLyBpbiBvcmRlciB0byBzdG9wIGltbWVkaWF0ZSBwcm9wYWdhdGlvbiBpbiB0aGUgZGlzYWJsZWQgY2FzZS5cbiAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICAvKiogT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcmVuZGVyIHRoZSBjb21wb25lbnQgdGVtcGxhdGUuICovXG4gIHByb3RlY3RlZCByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbXBsZW1lbnRhdGlvbiBuZWVkZWQhJyk7XG4gIH1cblxuICAvKiogRGVmYXVsdCByZW5kZXIgbWV0aG9kIGZvciBidXR0b24tbGlrZSBjb21wb25lbnRzLiAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGAgPHNwYW4gY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIj4ke3RoaXMucmVuZGVyVGVtcGxhdGUoKX08L3NwYW4+IGA7XG4gIH1cbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNFdmVudFByZXZlbnRlZCB9IGZyb20gJy4uL2V2ZW50aW5nLmpzJztcblxuaW1wb3J0IHsgU2JiQWN0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuL2FjdGlvbi1iYXNlLWVsZW1lbnQuanMnO1xuXG4vKiogRW51bWVyYXRpb24gZm9yIHR5cGUgYXR0cmlidXRlIGluIDxidXR0b24+IEhUTUwgdGFnLiAqL1xuZXhwb3J0IHR5cGUgU2JiQnV0dG9uVHlwZSA9ICdidXR0b24nIHwgJ3Jlc2V0JyB8ICdzdWJtaXQnO1xuXG4vKiogQnV0dG9uIGJhc2UgY2xhc3MuICovXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAnYnV0dG9uJyxcbiAgdGFiaW5kZXg6ICcwJyxcbiAgJ2RhdGEtYnV0dG9uJzogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYkJ1dHRvbkJhc2VFbGVtZW50IGV4dGVuZHMgU2JiQWN0aW9uQmFzZUVsZW1lbnQge1xuICAvKiogVGhlIHR5cGUgYXR0cmlidXRlIHRvIHVzZSBmb3IgdGhlIGJ1dHRvbi4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHR5cGU6IFNiYkJ1dHRvblR5cGUgPSAnYnV0dG9uJztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGJ1dHRvbiBlbGVtZW50LlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBgJHtuYW1lfWApO1xuICB9XG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnbmFtZScpID8/ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGVsZW1lbnQuXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEZXZlbG9wZXIgbm90ZTogSW4gdGhpcyBjYXNlIHVwZGF0aW5nIHRoZSBhdHRyaWJ1dGUgbXVzdCBiZSBzeW5jaHJvbm91cy5cbiAgICogRHVlIHRvIHRoaXMgaXQgaXMgaW1wbGVtZW50ZWQgYXMgYSBnZXR0ZXIvc2V0dGVyIGFuZCB0aGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKCkgaGFuZGxlcyB0aGUgZGlmZiBjaGVjay5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGAke3ZhbHVlfWApO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPz8gJyc7XG4gIH1cblxuICAvKiogVGhlIDxmb3JtPiBlbGVtZW50IHRvIGFzc29jaWF0ZSB0aGUgYnV0dG9uIHdpdGguICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBmb3JtPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIHRoaXMuc2V0dXBCYXNlRXZlbnRIYW5kbGVycygpO1xuXG4gICAgICBjb25zdCBwYXNzaXZlT3B0aW9ucyA9IHsgcGFzc2l2ZTogdHJ1ZSB9O1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZUJ1dHRvbkNsaWNrKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX3ByZXZlbnRTY3JvbGxPblNwYWNlS2V5ZG93bik7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwLCBwYXNzaXZlT3B0aW9ucyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2tleXByZXNzJyxcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcGFzc2l2ZU9wdGlvbnMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUJ1dHRvbkNsaWNrID0gYXN5bmMgKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2J1dHRvbicgfHwgKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZXZlbnQpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFVzZSBxdWVyeVNlbGVjdG9yIHdpdGggZm9ybSBhbmQgaWQgc2VsZWN0b3IsIGFzIHRoZSBmb3JtIHByb3BlcnR5IG11c3RcbiAgICAvLyByZWZlcmVuY2UgYSB2YWxpZCA8Zm9ybT4gZWxlbWVudFxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1cbiAgICAgID8gKHRoaXMub3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBmb3JtIyR7dGhpcy5mb3JtfWApIGFzIEhUTUxGb3JtRWxlbWVudClcbiAgICAgIDogdGhpcy5jbG9zZXN0KCdmb3JtJyk7XG4gICAgaWYgKCFmb3JtKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdzdWJtaXQnKSB7XG4gICAgICAvLyBgZm9ybS5yZXF1ZXN0U3VibWl0KGVsZW1lbnQpO2Agc2VlbXMgbm90IHRvIHdvcmsgZm9yIEN1c3RvbUVsZW1lbnRzLCBzbyB0aGUgYGVsZW1lbnRgIHBhcmFtZXRlciBoYXMgYmVlbiByZW1vdmVkO1xuICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgc29sdmVkIGluIGFueSB3YXksIHNlZSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy93ZWJjb21wb25lbnRzL2lzc3Vlcy84MTQjaXNzdWVjb21tZW50LTEyMTg0NTIxMzdcbiAgICAgIGZvcm0ucmVxdWVzdFN1Ym1pdCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncmVzZXQnKSB7XG4gICAgICBmb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBQcmV2ZW50cyBzY3JvbGxpbmcgZnJvbSBwcmVzc2luZyBTcGFjZSwgd2hlbiB0aGUgZXZlbnQgdGFyZ2V0IGlzIGFuIGFjdGlvbiBlbGVtZW50LlxuICAgKiBBbHNvIHNldHMgZGF0YS1hY3RpdmUgYXR0cmlidXRlLlxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIG9yaWdpbiBldmVudC5cbiAgICovXG4gIHByaXZhdGUgX3ByZXZlbnRTY3JvbGxPblNwYWNlS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnLCB0cnVlKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlQWN0aXZlTWFya2VyID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnKTtcbiAgfTtcblxuICAvKipcbiAgICogRGlzcGF0Y2hlcyBhICdjbGljaycgUG9pbnRlckV2ZW50IGlmIHRoZSBvcmlnaW5hbCBrZXlib2FyZCBldmVudCBpcyBhICdTcGFjZScgcHJlc3MuXG4gICAqIEFzIHZlcmlmaWVkIHdpdGggdGhlIG5hdGl2ZSBidXR0b24sIHdoZW4gJ1NwYWNlJyBpcyBwcmVzc2VkLCBhICdjbGljaycgZXZlbnQgaXMgZGlzcGF0Y2hlZFxuICAgKiBhZnRlciB0aGUgJ2tleXVwJyBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIF9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlcihldmVudCk7XG4gICAgICB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnQoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9kaXNwYXRjaENsaWNrRXZlbnQgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCB7IGFsdEtleSwgY3RybEtleSwgbWV0YUtleSwgc2hpZnRLZXkgfSA9IGV2ZW50O1xuICAgIChldmVudC50YXJnZXQgYXMgRWxlbWVudCkuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBQb2ludGVyRXZlbnQoJ2NsaWNrJywge1xuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgcG9pbnRlcklkOiAtMSxcbiAgICAgICAgcG9pbnRlclR5cGU6ICcnLFxuICAgICAgICBhbHRLZXksXG4gICAgICAgIGN0cmxLZXksXG4gICAgICAgIG1ldGFLZXksXG4gICAgICAgIHNoaWZ0S2V5LFxuICAgICAgfSksXG4gICAgKTtcbiAgfTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmICghWyduYW1lJywgJ3ZhbHVlJ10uaW5jbHVkZXMobmFtZSkgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvdyB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxuLyoqIEVudW1lcmF0aW9uIGZvciAndGFyZ2V0JyBhdHRyaWJ1dGUgaW4gPGE+IEhUTUwgdGFnLiAqL1xuZXhwb3J0IHR5cGUgTGlua1RhcmdldFR5cGUgPSAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XG5cbi8qKiBMaW5rIGJhc2UgY2xhc3MuICovXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICAnZGF0YS1saW5rJzogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYkxpbmtCYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSBocmVmIHZhbHVlIHlvdSB3YW50IHRvIGxpbmsgdG8uICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBocmVmPzogc3RyaW5nO1xuXG4gIC8qKiBXaGVyZSB0byBkaXNwbGF5IHRoZSBsaW5rZWQgVVJMLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgdGFyZ2V0PzogTGlua1RhcmdldFR5cGUgfCBzdHJpbmc7XG5cbiAgLyoqIFRoZSByZWxhdGlvbnNoaXAgb2YgdGhlIGxpbmtlZCBVUkwgYXMgc3BhY2Utc2VwYXJhdGVkIGxpbmsgdHlwZXMuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyByZWw/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJyb3dzZXIgd2lsbCBzaG93IHRoZSBkb3dubG9hZCBkaWFsb2cgb24gY2xpY2suICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGRvd25sb2FkPzogYm9vbGVhbjtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBpbm5lciBhbmNob3IgZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uYmx1cigpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgY2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5jbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZXZhbHVhdGVSZWxBdHRyaWJ1dGUgPSAoKTogc3RyaW5nIHwgdHlwZW9mIG5vdGhpbmcgPT4ge1xuICAgIHJldHVybiB0aGlzLnJlbCA/IHRoaXMucmVsIDogdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnID8gJ2V4dGVybmFsIG5vb3BlbmVyIG5vZm9sbG93JyA6IG5vdGhpbmc7XG4gIH07XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgbGluay1saWtlIGNvbXBvbmVudHMuIENhbiBiZSBvdmVycmlkZGVuIGlmIHRoZSBMaW5rUmVuZGVyVmFyaWFibGVzIGFyZSBub3QgbmVlZGVkLiAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwic2JiLWFjdGlvbi1iYXNlICR7dGhpcy5sb2NhbE5hbWV9XCJcbiAgICAgICAgaHJlZj0ke3RoaXMuaHJlZiB8fCBub3RoaW5nfVxuICAgICAgICA/ZG93bmxvYWQ9JHt0aGlzLmRvd25sb2FkfVxuICAgICAgICB0YXJnZXQ9JHt0aGlzLnRhcmdldCB8fCBub3RoaW5nfVxuICAgICAgICByZWw9JHt0aGlzLl9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSgpfVxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgdGFiaW5kZXg9JHt0aGlzLm1heWJlRGlzYWJsZWQgJiYgIXRoaXMubWF5YmVEaXNhYmxlZEludGVyYWN0aXZlID8gJy0xJyA6IG5vdGhpbmd9XG4gICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLm1heWJlRGlzYWJsZWQgPyAndHJ1ZScgOiBub3RoaW5nfVxuICAgICAgPlxuICAgICAgICAke3RoaXMucmVuZGVyVGVtcGxhdGUoKX1cbiAgICAgICAgJHshIXRoaXMuaHJlZiAmJiB0aGlzLnRhcmdldCA9PT0gJ19ibGFuaydcbiAgICAgICAgICA/IGh0bWxgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgICAgPi4gJHtpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvd1t0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L2E+XG4gICAgYDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL2V2ZW50aW5nLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBvdmVybGF5IGNvbXBvbmVudHMuXG4gKlxuICogQGV2ZW50IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC5cbiAqIEBldmVudCB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQgZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHdpbGxPcGVuOiAnd2lsbE9wZW4nLFxuICAgIGRpZE9wZW46ICdkaWRPcGVuJyxcbiAgICB3aWxsQ2xvc2U6ICd3aWxsQ2xvc2UnLFxuICAgIGRpZENsb3NlOiAnZGlkQ2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsIHN0YXRlKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHN0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIG9wZW4uICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSAnb3BlbmVkJztcbiAgfVxuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICBwcm90ZWN0ZWQgd2lsbE9wZW46IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMud2lsbE9wZW4sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkLiAqL1xuICBwcm90ZWN0ZWQgZGlkT3BlbjogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcih0aGlzLCBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkT3Blbik7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uICovXG4gIHByb3RlY3RlZCB3aWxsQ2xvc2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMud2lsbENsb3NlLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC4gKi9cbiAgcHJvdGVjdGVkIGRpZENsb3NlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLmRpZENsb3NlLFxuICApO1xuXG4gIC8qKiBPcGVucyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgb3BlbigpOiB2b2lkO1xuICAvKiogQ2xvc2VzIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZSgpOiB2b2lkO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc3RhdGUgfHw9ICdjbG9zZWQnO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgd2lsbE9wZW46IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICAgIHdpbGxDbG9zZTogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gICAgZGlkT3BlbjogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gICAgZGlkQ2xvc2U6IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX19kZWNvcmF0ZUNsYXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQWtCc0IsSUFBQSx1QkFBZixjQUE0QyxXQUFXO0FBQUEsRUFDNUQsSUFBYyxnQkFBcUM7QUFDakQsVUFBTSxnQkFBZ0I7QUFDZixXQUFBLGNBQWMsWUFBWSxjQUFjO0FBQUEsRUFDakQ7QUFBQSxFQUVBLElBQWMsMkJBQWdEO0FBQzVELFdBQVEsS0FBdUI7QUFBQSxFQUNqQztBQUFBLEVBRWdCLG9CQUEwQjs7QUFDeEMsVUFBTSxrQkFBa0I7QUFFeEIsU0FFRyxLQUFLLGFBQWEsV0FBVyxLQUFLLEtBQUssYUFBYSxhQUFhLFFBQ2xFLFVBQUssa0JBQUwsbUJBQW9CLFFBQVEsMkNBQzVCO0FBQ1EsY0FBQTtBQUFBLFFBQ04sbUNBQW1DLEtBQUssU0FBUyxXQUFXLEtBQUssY0FBZSxRQUFRLHVDQUF1QyxFQUFHLFNBQVM7QUFBQSxRQUMzSTtBQUFBLE1BQUE7QUFBQSxJQUVKO0FBQUEsRUFDRjtBQUFBLEVBRVUseUJBQStCO0FBQ2xDLFNBQUE7QUFBQSxNQUNIO0FBQUEsTUFDQSxDQUFDLFVBQVU7QUFDVCxZQUFJLEtBQUssaUJBQWlCLENBQUMsS0FBSywwQkFBMEI7QUFDeEQsZ0JBQU0sZUFBZTtBQUNyQixnQkFBTSx5QkFBeUI7QUFBQSxRQUNqQztBQUFBLE1BQ0Y7QUFBQTtBQUFBO0FBQUEsTUFHQSxFQUFFLFNBQVMsS0FBSztBQUFBLElBQUE7QUFBQSxFQUVwQjtBQUFBO0FBQUEsRUFHVSxpQkFBaUM7QUFDbkMsVUFBQSxJQUFJLE1BQU0sd0JBQXdCO0FBQUEsRUFDMUM7QUFBQTtBQUFBLEVBR21CLFNBQXlCO0FBQzFDLFdBQU8scUNBQXFDLEtBQUssU0FBUyxLQUFLLEtBQUssZ0JBQWdCO0FBQUEsRUFDdEY7QUFDRjtBQWpEc0IsdUJBQWZBLGtCQUFBO0FBQUEsRUFITixlQUFlO0FBQUEsSUFDZCxlQUFlO0FBQUEsRUFBQSxDQUNoQjtBQUFBLEdBQ3FCLG9CQUFBOzs7Ozs7Ozs7OztBQ0RBLElBQUEsdUJBQWYsY0FBNEMscUJBQXFCO0FBQUEsRUFtQy9ELGNBQWM7QUFDYjtBQWxDSSxTQUFPLE9BQXNCO0FBdURqQyxTQUFBLHFCQUFxQixPQUFPLFVBQXFDO0FBQ3ZFLFVBQUksS0FBSyxTQUFTLFlBQWEsTUFBTSxpQkFBaUIsS0FBSyxHQUFJO0FBQzdEO0FBQUEsTUFDRjtBQUlBLFlBQU0sT0FBTyxLQUFLLE9BQ2IsS0FBSyxjQUFjLGNBQWMsUUFBUSxLQUFLLElBQUksRUFBRSxJQUNyRCxLQUFLLFFBQVEsTUFBTTtBQUN2QixVQUFJLENBQUMsTUFBTTtBQUNUO0FBQUEsTUFBQSxXQUNTLEtBQUssU0FBUyxVQUFVO0FBR2pDLGFBQUssY0FBYztBQUFBLE1BQUEsV0FDVixLQUFLLFNBQVMsU0FBUztBQUNoQyxhQUFLLE1BQU07QUFBQSxNQUNiO0FBQUEsSUFBQTtBQVFNLFNBQUEsK0JBQStCLENBQUMsVUFBK0I7QUFDakUsVUFBQSxNQUFNLFFBQVEsS0FBSztBQUNyQixjQUFNLGVBQWU7QUFDcEIsY0FBTSxPQUF1QixnQkFBZ0IsZUFBZSxJQUFJO0FBQUEsTUFDbkU7QUFBQSxJQUFBO0FBR00sU0FBQSxzQkFBc0IsQ0FBQyxVQUF1QjtBQUNuRCxZQUFNLE9BQXVCLGdCQUFnQixhQUFhO0FBQUEsSUFBQTtBQVNyRCxTQUFBLGtDQUFrQyxDQUFDLFVBQStCO0FBQ3BFLFVBQUEsTUFBTSxRQUFRLEtBQUs7QUFDckIsYUFBSyxvQkFBb0IsS0FBSztBQUM5QixhQUFLLG9CQUFvQixLQUFLO0FBQUEsTUFDaEM7QUFBQSxJQUFBO0FBR00sU0FBQSxzQkFBc0IsQ0FBQyxVQUErQjtBQUM1RCxZQUFNLEVBQUUsUUFBUSxTQUFTLFNBQVMsYUFBYTtBQUM5QyxZQUFNLE9BQW1CO0FBQUEsUUFDeEIsSUFBSSxhQUFhLFNBQVM7QUFBQSxVQUN4QixTQUFTO0FBQUEsVUFDVCxZQUFZO0FBQUEsVUFDWixVQUFVO0FBQUEsVUFDVixXQUFXO0FBQUEsVUFDWCxhQUFhO0FBQUEsVUFDYjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQUEsQ0FDRDtBQUFBLE1BQUE7QUFBQSxJQUNIO0FBcEZBLFFBQUksQ0FBQyxVQUFVO0FBQ2IsV0FBSyx1QkFBdUI7QUFFdEIsWUFBQSxpQkFBaUIsRUFBRSxTQUFTO0FBQzdCLFdBQUEsaUJBQWlCLFNBQVMsS0FBSyxrQkFBa0I7QUFDakQsV0FBQSxpQkFBaUIsV0FBVyxLQUFLLDRCQUE0QjtBQUNsRSxXQUFLLGlCQUFpQixTQUFTLEtBQUssaUNBQWlDLGNBQWM7QUFDbkYsV0FBSyxpQkFBaUIsUUFBUSxLQUFLLHFCQUFxQixjQUFjO0FBQ2pFLFdBQUE7QUFBQSxRQUNIO0FBQUEsUUFDQSxDQUFDLFVBQStCO0FBQzlCLGNBQUksTUFBTSxRQUFRLFdBQVcsTUFBTSxRQUFRLE1BQU07QUFDL0MsaUJBQUssb0JBQW9CLEtBQUs7QUFBQSxVQUNoQztBQUFBLFFBQ0Y7QUFBQSxRQUNBO0FBQUEsTUFBQTtBQUFBLElBRUo7QUFBQSxFQUNGO0FBQUEsRUE1Q0EsSUFBVyxLQUFLLE1BQWM7QUFDNUIsU0FBSyxhQUFhLFFBQVEsR0FBRyxJQUFJLEVBQUU7QUFBQSxFQUNyQztBQUFBLEVBQ0EsSUFBVyxPQUFlO0FBQ2pCLFdBQUEsS0FBSyxhQUFhLE1BQU0sS0FBSztBQUFBLEVBQ3RDO0FBQUEsRUFTQSxJQUFXLE1BQU0sT0FBZTtBQUM5QixTQUFLLGFBQWEsU0FBUyxHQUFHLEtBQUssRUFBRTtBQUFBLEVBQ3ZDO0FBQUEsRUFDQSxJQUFXLFFBQWdCO0FBQ2xCLFdBQUEsS0FBSyxhQUFhLE9BQU8sS0FBSztBQUFBLEVBQ3ZDO0FBQUEsRUE4RmdCLHlCQUNkLE1BQ0EsS0FDQSxPQUNNO0FBQ0YsUUFBQSxDQUFDLENBQUMsUUFBUSxPQUFPLEVBQUUsU0FBUyxJQUFJLEtBQUssUUFBUSxPQUFPO0FBQ2hELFlBQUEseUJBQXlCLE1BQU0sS0FBSyxLQUFLO0FBQUEsSUFDakQ7QUFBQSxFQUNGO0FBQ0Y7QUFuSXFCQSxrQkFBQTtBQUFBLEVBQWxCLFNBQVM7QUFBQSxHQUZVLHFCQUVELFdBQUEsUUFBQSxDQUFBO0FBU1JBLGtCQUFBO0FBQUEsRUFEVixTQUFTO0FBQUEsR0FWVSxxQkFXVCxXQUFBLFFBQUEsQ0FBQTtBQWNBQSxrQkFBQTtBQUFBLEVBRFYsU0FBUztBQUFBLEdBeEJVLHFCQXlCVCxXQUFBLFNBQUEsQ0FBQTtBQVFRQSxrQkFBQTtBQUFBLEVBQWxCLFNBQVM7QUFBQSxHQWpDVSxxQkFpQ0QsV0FBQSxRQUFBLENBQUE7QUFqQ0MsdUJBQWZBLGtCQUFBO0FBQUEsRUFMTixlQUFlO0FBQUEsSUFDZCxNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixlQUFlO0FBQUEsRUFBQSxDQUNoQjtBQUFBLEdBQ3FCLG9CQUFBOzs7Ozs7Ozs7OztBQ0NBLElBQUEscUJBQWYsY0FBMEMscUJBQXFCO0FBQUEsRUFrQjdELGNBQWM7QUFDYjtBQUhFLFNBQUEsV0FBVyxJQUFJLHNCQUFzQixJQUFJO0FBd0JuRCxTQUFRLHdCQUF3QixNQUErQjtBQUM3RCxhQUFPLEtBQUssTUFBTSxLQUFLLE1BQU0sS0FBSyxXQUFXLFdBQVcsK0JBQStCO0FBQUEsSUFBQTtBQXJCdkYsUUFBSSxDQUFDLFVBQVU7QUFDYixXQUFLLHVCQUF1QjtBQUFBLElBQzlCO0FBQUEsRUFDRjtBQUFBO0FBQUEsRUFHZ0IsTUFBTSxTQUEwQzs7QUFDOUQsZUFBSyxXQUFZLGNBQWlDLEdBQUcsTUFBckQsbUJBQXdELE1BQU07QUFBQSxFQUNoRTtBQUFBO0FBQUEsRUFHZ0IsT0FBYTs7QUFDM0IsZUFBSyxXQUFZLGNBQWlDLEdBQUcsTUFBckQsbUJBQXdEO0FBQUEsRUFDMUQ7QUFBQTtBQUFBLEVBR2dCLFFBQWM7O0FBQzVCLGVBQUssV0FBWSxjQUFpQyxHQUFHLE1BQXJELG1CQUF3RDtBQUFBLEVBQzFEO0FBQUE7QUFBQSxFQU9tQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQSxpQ0FFc0IsS0FBSyxTQUFTO0FBQUEsZUFDaEMsS0FBSyxRQUFRLE9BQU87QUFBQSxvQkFDZixLQUFLLFFBQVE7QUFBQSxpQkFDaEIsS0FBSyxVQUFVLE9BQU87QUFBQSxjQUN6QixLQUFLLHVCQUF1QjtBQUFBLHFCQUNyQixLQUFLLHNCQUFzQixPQUFPO0FBQUEsbUJBQ3BDLEtBQUssaUJBQWlCLENBQUMsS0FBSywyQkFBMkIsT0FBTyxPQUFPO0FBQUEsd0JBQ2hFLEtBQUssZ0JBQWdCLFNBQVMsT0FBTztBQUFBO0FBQUEsVUFFbkQsS0FBSyxnQkFBZ0I7QUFBQSxVQUNyQixDQUFDLENBQUMsS0FBSyxRQUFRLEtBQUssV0FBVyxXQUM3QjtBQUFBLG1CQUNPLDJCQUEyQixLQUFLLFNBQVMsT0FBTyxDQUFDO0FBQUEsaUJBRXhELE9BQU87QUFBQTtBQUFBO0FBQUEsRUFHakI7QUFDRjtBQWhFcUIsZ0JBQUE7QUFBQSxFQUFsQixTQUFTO0FBQUEsR0FGVSxtQkFFRCxXQUFBLFFBQUEsQ0FBQTtBQUdBLGdCQUFBO0FBQUEsRUFBbEIsU0FBUztBQUFBLEdBTFUsbUJBS0QsV0FBQSxVQUFBLENBQUE7QUFHQSxnQkFBQTtBQUFBLEVBQWxCLFNBQVM7QUFBQSxHQVJVLG1CQVFELFdBQUEsT0FBQSxDQUFBO0FBR2lCLGdCQUFBO0FBQUEsRUFBbkMsU0FBUyxFQUFFLE1BQU0sU0FBUztBQUFBLEdBWFAsbUJBV2dCLFdBQUEsWUFBQSxDQUFBO0FBR21CLGdCQUFBO0FBQUEsRUFBdEQsU0FBUyxFQUFFLFdBQVcsdUJBQXVCO0FBQUEsR0FkMUIsbUJBY21DLFdBQUEsc0JBQUEsQ0FBQTtBQWRuQyxxQkFBZixnQkFBQTtBQUFBLEVBSE4sZUFBZTtBQUFBLElBQ2QsYUFBYTtBQUFBLEVBQUEsQ0FDZDtBQUFBLEdBQ3FCLGtCQUFBO0FDTGYsTUFBZSwyQkFBZixNQUFlLGlDQUFnQyxXQUFXO0FBQUEsRUFBMUQsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBc0JMLFNBQVUsV0FBeUIsSUFBSTtBQUFBLE1BQ3JDO0FBQUEsTUFDQSx5QkFBd0IsT0FBTztBQUFBLElBQUE7QUFJakMsU0FBVSxVQUF3QixJQUFJLGFBQWEsTUFBTSx5QkFBd0IsT0FBTyxPQUFPO0FBRy9GLFNBQVUsWUFBMEIsSUFBSTtBQUFBLE1BQ3RDO0FBQUEsTUFDQSx5QkFBd0IsT0FBTztBQUFBLElBQUE7QUFJakMsU0FBVSxXQUF5QixJQUFJO0FBQUEsTUFDckM7QUFBQSxNQUNBLHlCQUF3QixPQUFPO0FBQUEsSUFBQTtBQUFBLEVBQ2pDO0FBQUE7QUFBQSxFQS9CQSxJQUFjLE1BQU0sT0FBNkI7QUFDMUMsU0FBQSxhQUFhLGNBQWMsS0FBSztBQUFBLEVBQ3ZDO0FBQUEsRUFDQSxJQUFjLFFBQThCO0FBQ25DLFdBQUEsS0FBSyxhQUFhLFlBQVk7QUFBQSxFQUN2QztBQUFBO0FBQUEsRUFHQSxJQUFXLFNBQWtCO0FBQzNCLFdBQU8sS0FBSyxVQUFVO0FBQUEsRUFDeEI7QUFBQSxFQTRCZ0Isb0JBQTBCO0FBQ3hDLFVBQU0sa0JBQWtCO0FBQ3hCLFNBQUssVUFBTCxLQUFLLFFBQVU7QUFBQSxFQUNqQjtBQUNGO0FBbERFLHlCQUF1QixTQUFTO0FBQUEsRUFDOUIsVUFBVTtBQUFBLEVBQ1YsU0FBUztBQUFBLEVBQ1QsV0FBVztBQUFBLEVBQ1gsVUFBVTtBQUFBO0FBTFAsSUFBZSwwQkFBZjsifQ==
@@ -6,6 +6,8 @@ import { LitElement } from 'lit';
6
6
  * https://github.com/lit/lit/blob/main/packages/labs/ssr-dom-shim/src.ts (See CustomElementRegistryShim)
7
7
  *
8
8
  * Can be removed once https://github.com/lit/lit/pull/4553 is merged/released.
9
+ *
10
+ * @deprecated Will be removed with next major version
9
11
  */
10
12
  export declare function getLocalName(element: LitElement): string;
11
13
  //# sourceMappingURL=ssr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/dom/ssr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAItC;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAcxD"}
1
+ {"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/dom/ssr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAItC;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAcxD"}
@@ -142,4 +142,4 @@ export {
142
142
  pageScrollDisabled,
143
143
  setOrRemoveAttribute
144
144
  };
145
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vYnJlYWtwb2ludC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RvbS9maW5kLXJlZmVyZW5jZWQtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RvbS9nZXQtZG9jdW1lbnQtd3JpdGluZy1tb2RlLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL2hvc3QtY29udGV4dC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RvbS9pbnB1dC1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3NldC1vci1yZW1vdmUtYXR0cmlidXRlLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3BsYXRmb3JtLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3Njcm9sbC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RvbS9zc3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuXG5leHBvcnQgY29uc3QgYnJlYWtwb2ludHMgPSBbJ3plcm8nLCAnbWljcm8nLCAnc21hbGwnLCAnbWVkaXVtJywgJ3dpZGUnLCAnbGFyZ2UnLCAndWx0cmEnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEJyZWFrcG9pbnQgPSAodHlwZW9mIGJyZWFrcG9pbnRzKVtudW1iZXJdO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBkb2N1bWVudCBtYXRjaGVzIGEgcGFydGljdWxhciBtZWRpYSBxdWVyeS5cbiAqIEl0IHdpbGwgcmVseSBvbiB0aGUgZ2xvYmFsIENTUyB2YXJpYWJsZXMgdG8gZGV0ZXJtaW5lIHRoZSB2YWx1ZSBvZiB0aGUgYnJlYWtwb2ludHMuXG4gKlxuICogQHBhcmFtIGZyb20gVGhlIGJyZWFrcG9pbnQgY29ycmVzcG9uZGluZyB0byB0aGUgYG1pbi13aWR0aGAgdmFsdWUgb2YgdGhlIG1lZGlhIHF1ZXJ5IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gdG8gVGhlIGJyZWFrcG9pbnQgY29ycmVzcG9uZGluZyB0byB0aGUgYG1heC13aWR0aGAgdmFsdWUgb2YgdGhlIG1lZGlhIHF1ZXJ5IChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB3aW5kb3cgbWF0Y2hlcyB0aGUgYnJlYWtwb2ludC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQnJlYWtwb2ludChcbiAgZnJvbT86IEJyZWFrcG9pbnQsXG4gIHRvPzogQnJlYWtwb2ludCxcbiAgcHJvcGVydGllcz86IHsgaW5jbHVkZU1heEJyZWFrcG9pbnQ6IGJvb2xlYW4gfSxcbik6IGJvb2xlYW4ge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAvLyBUT0RPOiBSZW1vdmUgYW5kIGRlY2lkZSBjYXNlIGJ5IGNhc2Ugd2hhdCBzaG91bGQgYmUgZG9uZSBvbiBjb25zdW1pbmcgZW5kXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcbiAgY29uc3QgYnJlYWtwb2ludE1pbiA9IGZyb20gPyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoYC0tc2JiLWJyZWFrcG9pbnQtJHtmcm9tfS1taW5gKSA6ICcnO1xuICBjb25zdCBicmVha3BvaW50TWF4ID0gdG9cbiAgICA/IGAke1xuICAgICAgICBwYXJzZUZsb2F0KFxuICAgICAgICAgIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAgIGAtLXNiYi1icmVha3BvaW50LSR7dG99LSR7cHJvcGVydGllcz8uaW5jbHVkZU1heEJyZWFrcG9pbnQgPyAnbWF4JyA6ICdtaW4nfWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSAtIChwcm9wZXJ0aWVzPy5pbmNsdWRlTWF4QnJlYWtwb2ludCA/IDAgOiAwLjA2MjUpXG4gICAgICB9cmVtYFxuICAgIDogJyc7IC8vIHN1YnRyYWN0IDFweCAoMC4wNjI1cmVtKSBmcm9tIHRoZSBtYXgtd2lkdGggYnJlYWtwb2ludFxuXG4gIGNvbnN0IG1pbldpZHRoID0gYnJlYWtwb2ludE1pbiAmJiBgKG1pbi13aWR0aDogJHticmVha3BvaW50TWlufSlgO1xuICBjb25zdCBtYXhXaWR0aCA9IGJyZWFrcG9pbnRNYXggJiYgYChtYXgtd2lkdGg6ICR7YnJlYWtwb2ludE1heH0pYDtcbiAgY29uc3QgYW5kID0gYnJlYWtwb2ludE1pbiAmJiBicmVha3BvaW50TWF4ICYmICcgYW5kICc7XG5cbiAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKGAke21pbldpZHRofSR7YW5kfSR7bWF4V2lkdGh9YCkubWF0Y2hlcztcbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiAgQ2hlY2sgd2hldGhlciBpdCdzIGEgc3RyaW5nIG9yIGFuIEhUTUxFbGVtZW50LCBpZiBpdCdzIGEgc3RyaW5nIHF1ZXJpZXMgdGhlIGVsZW1lbnQgd2l0aCB0aGVcbiAqICBjb3JyZXNwb25kaW5nIGlkLlxuICogIEBwYXJhbSByZWZlcmVuY2UgZWl0aGVyIHRoZSB3YW50ZWQgaWQgb3IgdGhlIEhUTUxFbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUmVmZXJlbmNlZEVsZW1lbnQ8VCBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+KFxuICByZWZlcmVuY2U6IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogVCB8IG51bGwge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZWZlcmVuY2UpIGFzIFQ7XG4gIH0gZWxzZSBpZiAocmVmZXJlbmNlIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcbiAgICByZXR1cm4gcmVmZXJlbmNlIGFzIFQ7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIDpkaXIoKSBzZWxlY3RvciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREb2N1bWVudFdyaXRpbmdNb2RlID0gKCk6IHN0cmluZyA9PlxuICAoIWlzU2VydmVyICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RpcicpKSB8fCAnbHRyJztcbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBMb29rcyBmb3IgdGhlIGNsb3Nlc3QgZWxlbWVudCBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VsZWN0b3Igc3RhcnRpbmcgZnJvbSB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqIFJldHVybnMgbnVsbCwgaWYgbm9uZSBvZiB0aGUgYW5jZXN0b3IgbWF0Y2guXG4gKlxuICogQHBhcmFtIHNlbGVjdG9yIFRoZSBzZWxlY3RvciB0byBtYXRjaCBhbmNlc3RvciBhZ2FpbnN0LlxuICogQHBhcmFtIGVsZW1lbnQgVGhlIGJhc2UgZWxlbWVudCBmcm9tIHdoaWNoIHRvIHN0YXJ0IHRoZSBzZWFyY2guXG4gKiBAcmV0dXJucyBUaGUgY2xvc2VzdCBlbGVtZW50IG1hdGNoaW5nIHRoZSBzZWxlY3RvciBvciBudWxsIGlmIG5vbmUgaXMgZm91bmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBob3N0Q29udGV4dChzZWxlY3Rvcjogc3RyaW5nLCBlbGVtZW50OiBFbGVtZW50KTogRWxlbWVudCB8IG51bGwge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBTdGFydCB3aXRoIHBhcmVudCBlbGVtZW50IGluIG9yZGVyIHRvIGF2b2lkIGZpbmRpbmcgZWxlbWVudCBpdHNlbGZcbiAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudCA/PyAoZWxlbWVudC5nZXRSb290Tm9kZSgpIGFzIFNoYWRvd1Jvb3QpLmhvc3Q7XG4gIHdoaWxlIChlbGVtZW50ICYmIChlbGVtZW50IGFzIGFueSkgIT09IGRvY3VtZW50ICYmIChlbGVtZW50IGFzIGFueSkgIT09IHdpbmRvdykge1xuICAgIGNvbnN0IG1hdGNoID0gZWxlbWVudC5jbG9zZXN0KHNlbGVjdG9yKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIHJldHVybiBtYXRjaDtcbiAgICB9XG5cbiAgICBlbGVtZW50ID0gKGVsZW1lbnQuZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KS5ob3N0O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vIEEgbGlzdCBvZiBlbGVtZW50cyB0aGF0IHNob3VsZCBub3QgYWxsb3cgYW5vdGhlciBhbmNob3Igb3IgYnV0dG9uIGVsZW1lbnQgaW5zaWRlIHRoZW0uXG4vLyBOZWVkcyB0byBiZSBleHRlbmRlZCBpZiBhZGRpdGlvbmFsIGVsZW1lbnRzIGZhbGwgaW50byB0aGlzIGNhdGVnb3J5LlxuZXhwb3J0IGNvbnN0IEFDVElPTl9FTEVNRU5UUyA9ICdhLGJ1dHRvbixzYmItdGVhc2VyLWhlcm8sc2JiLXRlYXNlcic7XG4iLCJpbXBvcnQgeyBmaW5kUmVmZXJlbmNlZEVsZW1lbnQgfSBmcm9tICcuL2ZpbmQtcmVmZXJlbmNlZC1lbGVtZW50LmpzJztcblxuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50LCByZXR1cm5zIHRoZSByZWxhdGVkIGlucHV0IHJlZmVyZW5jZSwgaWYgaXQgZXhpc3RzIHJlc3BlY3RpbmcgZm9sbG93aW5nIHByaW9yaXR5LlxuICogMS4gSW5wdXQgZmllbGQgaW4gYHNiYi1mb3JtLWZpZWxkYCAoaWYgdHJpZ2dlciBpcyB1bmRlZmllbmQpXG4gKiAyLiBJbnB1dCByZWZlcmVuY2VkIGJ5IGlkICh0cmlnZ2VyIGlzIHN0cmluZylcbiAqIDMuIElucHV0IHJlZmVyZW5jZWQgZGlyZWN0bHkgKHRyaWdnZXIgaXMgSFRNTEVsZW1lbnQpXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgc3RhcnRpbmcgU2JiRGF0ZXBpY2tlckVsZW1lbnQgZWxlbWVudC5cbiAqIEBwYXJhbSB0cmlnZ2VyIFRoZSBpZCBvciB0aGUgcmVmZXJlbmNlIG9mIHRoZSBpbnB1dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRJbnB1dChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIHRyaWdnZXI/OiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwsXG4pOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gIGlmICghdHJpZ2dlcikge1xuICAgIGNvbnN0IHBhcmVudCA9IGVsZW1lbnQuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpO1xuICAgIHJldHVybiBwYXJlbnQ/LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykgYXMgSFRNTElucHV0RWxlbWVudCB8IG51bGw7XG4gIH1cblxuICByZXR1cm4gZmluZFJlZmVyZW5jZWRFbGVtZW50PEhUTUxJbnB1dEVsZW1lbnQ+KHRyaWdnZXIpO1xufVxuIiwiLyoqXG4gKiBTZXQgdGhlIGF0dHJpYnV0ZSBvbmx5IGlmIHZhbHVlIGlzIG5vdCAnZmFsc2UnLCBvdGhlcndpc2UgcmVtb3ZlIGF0dHJpYnV0ZS5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IHRoYXQgd2lsbCBoYXZlIHRoZSBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBuYW1lXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGF0dHJpYnV0ZSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0T3JSZW1vdmVBdHRyaWJ1dGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSk6IHZvaWQge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgfVxufVxuIiwiLy8gVGhpcyBmaWxlIGlzIGZyZWVseSBpbnNwaXJlZCBieSBBbmd1bGFyIE1hdGVyaWFsIHNvbHV0aW9uLlxuLy8gUmVmZXJlbmNlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFpbi9zcmMvY2RrL3BsYXRmb3JtL3BsYXRmb3JtLnRzXG5pbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8vIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGxhdGZvcm0gc3VwcG9ydHMgdGhlIFY4IEJyZWFrIEl0ZXJhdG9yLiBUaGUgVjggY2hlY2tcbi8vIGlzIG5lY2Vzc2FyeSB0byBkZXRlY3QgYWxsIEJsaW5rIGJhc2VkIGJyb3dzZXJzLlxubGV0IGhhc1Y4QnJlYWtJdGVyYXRvcjogYm9vbGVhbjtcblxuLy8gV2UgbmVlZCBhIHRyeS9jYXRjaCBhcm91bmQgdGhlIHJlZmVyZW5jZSB0byBgSW50bGAsIGJlY2F1c2UgYWNjZXNzaW5nIGl0IGluIHNvbWUgY2FzZXMgY2FuXG4vLyBjYXVzZSBJRSB0byB0aHJvdy4gVGhlc2UgY2FzZXMgYXJlIHRpZWQgdG8gcGFydGljdWxhciB2ZXJzaW9ucyBvZiBXaW5kb3dzIGFuZCBjYW4gaGFwcGVuIGlmXG4vLyB0aGUgY29uc3VtZXIgaXMgcHJvdmlkaW5nIGEgcG9seWZpbGxlZCBgTWFwYC4gU2VlOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9DaGFrcmFDb3JlL2lzc3Vlcy8zMTg5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8xNTY4N1xudHJ5IHtcbiAgaGFzVjhCcmVha0l0ZXJhdG9yID0gdHlwZW9mIEludGwgIT09ICd1bmRlZmluZWQnICYmIChJbnRsIGFzIGFueSkudjhCcmVha0l0ZXJhdG9yO1xufSBjYXRjaCB7XG4gIGhhc1Y4QnJlYWtJdGVyYXRvciA9IGZhbHNlO1xufVxuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBicm93c2VyIGlzIE1pY3Jvc29mdCBFZGdlLiAqL1xuZXhwb3J0IGNvbnN0IGlzRWRnZSA9ICFpc1NlcnZlciAmJiAvKGVkZ2UpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGVuZ2luZSBpcyBNaWNyb3NvZnQgVHJpZGVudC4gKi9cbmV4cG9ydCBjb25zdCBpc1RyaWRlbnQgPSAhaXNTZXJ2ZXIgJiYgLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLy8gRWRnZUhUTUwgYW5kIFRyaWRlbnQgbW9jayBCbGluayBzcGVjaWZpYyB0aGluZ3MgYW5kIG5lZWQgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGlzIGNoZWNrLlxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGVuZ2luZSBpcyBCbGluay4gKi9cbmV4cG9ydCBjb25zdCBpc0JsaW5rID1cbiAgIWlzU2VydmVyICYmXG4gICEhKCh3aW5kb3cgYXMgYW55KS5jaHJvbWUgfHwgaGFzVjhCcmVha0l0ZXJhdG9yKSAmJlxuICB0eXBlb2YgQ1NTICE9PSAndW5kZWZpbmVkJyAmJlxuICAhaXNFZGdlICYmXG4gICFpc1RyaWRlbnQ7XG5cbi8vIFdlYmtpdCBpcyBwYXJ0IG9mIHRoZSB1c2VyQWdlbnQgaW4gRWRnZUhUTUwsIEJsaW5rIGFuZCBUcmlkZW50LiBUaGVyZWZvcmUsIHdlIG5lZWQgdG9cbi8vIGVuc3VyZSB0aGF0IFdlYmtpdCBydW5zIHN0YW5kYWxvbmUgYW5kIGlzIG5vdCB1c2VkIGFzIGFub3RoZXIgZW5naW5lJ3MgYmFzZS5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHJlbmRlcmluZyBlbmdpbmUgaXMgV2ViS2l0LiAqL1xuZXhwb3J0IGNvbnN0IGlzV2Via2l0ID1cbiAgIWlzU2VydmVyICYmIC9BcHBsZVdlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgIWlzQmxpbmsgJiYgIWlzRWRnZSAmJiAhaXNUcmlkZW50O1xuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBwbGF0Zm9ybSBpcyBBcHBsZSBpT1MuICovXG5leHBvcnQgY29uc3QgaXNJT1MgPVxuICAhaXNTZXJ2ZXIgJiYgL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgISgnTVNTdHJlYW0nIGluIHdpbmRvdyk7XG5cbi8vIEl0J3MgZGlmZmljdWx0IHRvIGRldGVjdCB0aGUgcGxhaW4gR2Vja28gZW5naW5lLCBiZWNhdXNlIG1vc3Qgb2YgdGhlIGJyb3dzZXJzIGlkZW50aWZ5XG4vLyB0aGVtIHNlbGYgYXMgR2Vja28tbGlrZSBicm93c2VycyBhbmQgbW9kaWZ5IHRoZSB1c2VyQWdlbnQncyBhY2NvcmRpbmcgdG8gdGhhdC5cbi8vIFNpbmNlIHdlIG9ubHkgY292ZXIgb25lIGV4cGxpY2l0IEZpcmVmb3ggY2FzZSwgd2UgY2FuIHNpbXBseSBjaGVjayBmb3IgRmlyZWZveFxuLy8gaW5zdGVhZCBvZiBoYXZpbmcgYW4gdW5zdGFibGUgY2hlY2sgZm9yIEdlY2tvLlxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgYnJvd3NlciBpcyBGaXJlZm94LiAqL1xuZXhwb3J0IGNvbnN0IGlzRmlyZWZveCA9ICFpc1NlcnZlciAmJiAvKGZpcmVmb3h8bWluZWZpZWxkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBsYXRmb3JtIGlzIEFuZHJvaWQuICovXG4vLyBUcmlkZW50IG9uIG1vYmlsZSBhZGRzIHRoZSBhbmRyb2lkIHBsYXRmb3JtIHRvIHRoZSB1c2VyQWdlbnQgdG8gdHJpY2sgZGV0ZWN0aW9ucy5cbmV4cG9ydCBjb25zdCBpc0FuZHJvaWQgPSAhaXNTZXJ2ZXIgJiYgL2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICFpc1RyaWRlbnQ7XG5cbi8vIFNhZmFyaSBicm93c2VycyB3aWxsIGluY2x1ZGUgdGhlIFNhZmFyaSBrZXl3b3JkIGluIHRoZWlyIHVzZXJBZ2VudC4gU29tZSBicm93c2VycyBtYXkgZmFrZVxuLy8gdGhpcyBhbmQganVzdCBwbGFjZSB0aGUgU2FmYXJpIGtleXdvcmQgaW4gdGhlIHVzZXJBZ2VudC4gVG8gYmUgbW9yZSBzYWZlIGFib3V0IFNhZmFyaSBldmVyeVxuLy8gU2FmYXJpIGJyb3dzZXIgc2hvdWxkIGFsc28gdXNlIFdlYmtpdCBhcyBpdHMgbGF5b3V0IGVuZ2luZS5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IGJyb3dzZXIgaXMgU2FmYXJpLiAqL1xuZXhwb3J0IGNvbnN0IGlzU2FmYXJpID0gIWlzU2VydmVyICYmIC9zYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIGlzV2Via2l0O1xuXG4vKipcbiAqIFdlIGp1c3QgY2hlY2sgZm9yIHRoZSBibGluayBlbmdpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Nocm9taXVtID0gaXNCbGluaztcblxuLyoqIFdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIGJlaW5nIHJlbmRlcmVkIGluIGEgTmV4dC5qcyBlbnZpcm9ubWVudC4gKi9cbmV4cG9ydCBjb25zdCBpc05leHRqcyA9ICgpOiBib29sZWFuID0+ICEhKGdsb2JhbFRoaXMgYXMgeyBuZXh0Pzogb2JqZWN0IH0pLm5leHQ7XG4iLCJleHBvcnQgZnVuY3Rpb24gcGFnZVNjcm9sbERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLXNjcm9sbC1kaXNhYmxlZCcpO1xufVxuXG4vKipcbiAqIEhhbmRsZSB0aGUgcGFnZSBzY3JvbGwsIGFsbG93aW5nIHRvIGRpc2FibGUvZW5hYmxlIHRoZSB3aW5kb3cgc2Nyb2xsIGF2b2lkaW5nIGEgcG90ZW50aWFsXG4gKiBjb250ZW50IHNoaWZ0IGNhdXNlZCBieSB0aGUgZGlzYXBwZWFyYW5jZS9hcHBlYXJhbmNlIG9mIHRoZSBzY3JvbGxiYXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTY3JvbGxIYW5kbGVyIHtcbiAgcHJpdmF0ZSBfcG9zaXRpb24hOiBzdHJpbmc7XG4gIHByaXZhdGUgX292ZXJmbG93ITogc3RyaW5nO1xuICBwcml2YXRlIF9tYXJnaW5JbmxpbmVFbmQhOiBzdHJpbmc7XG5cbiAgcHVibGljIGRpc2FibGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHBhZ2VTY3JvbGxEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2F2ZSBhbnkgcHJlLWV4aXN0aW5nIHN0eWxlcyB0byByZWFwcGx5IHRoZW0gdG8gdGhlIGJvZHkgd2hlbiBlbmFibGluZyB0aGUgc2Nyb2xsIGFnYWluLlxuICAgIHRoaXMuX3Bvc2l0aW9uID0gZG9jdW1lbnQuYm9keS5zdHlsZS5wb3NpdGlvbjtcbiAgICB0aGlzLl9vdmVyZmxvdyA9IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c7XG4gICAgdGhpcy5fbWFyZ2luSW5saW5lRW5kID0gZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW5JbmxpbmVFbmQ7XG5cbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luSW5saW5lRW5kID0gYCR7c2Nyb2xsYmFyV2lkdGh9cHhgO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXNjcm9sbGJhci13aWR0aCcsIGAke3Njcm9sbGJhcldpZHRofXB4YCk7XG5cbiAgICBkb2N1bWVudC5ib2R5LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItc2Nyb2xsLWRpc2FibGVkJywgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICghcGFnZVNjcm9sbERpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXZlcnQgYm9keSBpbmxpbmUgc3R5bGVzLlxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb24gPSB0aGlzLl9wb3NpdGlvbiB8fCAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gdGhpcy5fb3ZlcmZsb3cgfHwgJyc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW5JbmxpbmVFbmQgPSB0aGlzLl9tYXJnaW5JbmxpbmVFbmQgfHwgJyc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItc2Nyb2xsYmFyLXdpZHRoJywgJzAnKTtcblxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNiYi1zY3JvbGwtZGlzYWJsZWQnKTtcbiAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcblxuY29uc3QgbG9jYWxOYW1lQ2FjaGUgPSBuZXcgTWFwPHVua25vd24sIHN0cmluZz4oKTtcblxuLyoqXG4gKiBJbiBTU1IgdGhlIGxvY2FsL3RhZyBuYW1lIGlzIG5vdCBhdmFpbGFibGUgb24gdGhlIGNsYXNzIGluc3RhbmNlLCBidXQgaXQgaXMgYXZhaWxhYmxlXG4gKiBpbiB0aGUgc2hpbSBjdXN0b21FbGVtZW50cyByZWdpc3RyeS5cbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbGl0L2xpdC9ibG9iL21haW4vcGFja2FnZXMvbGFicy9zc3ItZG9tLXNoaW0vc3JjLnRzIChTZWUgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5U2hpbSlcbiAqXG4gKiBDYW4gYmUgcmVtb3ZlZCBvbmNlIGh0dHBzOi8vZ2l0aHViLmNvbS9saXQvbGl0L3B1bGwvNDU1MyBpcyBtZXJnZWQvcmVsZWFzZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbE5hbWUoZWxlbWVudDogTGl0RWxlbWVudCk6IHN0cmluZyB7XG4gIGlmIChsb2NhbE5hbWVDYWNoZS5oYXMoZWxlbWVudC5jb25zdHJ1Y3RvcikpIHtcbiAgICByZXR1cm4gbG9jYWxOYW1lQ2FjaGUuZ2V0KGVsZW1lbnQuY29uc3RydWN0b3IpITtcbiAgfVxuXG4gIGNvbnN0IGRlZmluaXRpb25zID0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgIChjdXN0b21FbGVtZW50cyBhcyB1bmtub3duIGFzIHsgX19kZWZpbml0aW9uczogTWFwPHN0cmluZywgeyBjdG9yOiB1bmtub3duIH0+IH0pLl9fZGVmaW5pdGlvbnM7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGRlZmluaXRpb25zKSB7XG4gICAgaWYgKHZhbHVlLmN0b3IgPT09IGVsZW1lbnQuY29uc3RydWN0b3IpIHtcbiAgICAgIGxvY2FsTmFtZUNhY2hlLnNldChlbGVtZW50LmNvbnN0cnVjdG9yLCBrZXkpO1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBHaXZlbiBlbGVtZW50ICR7ZWxlbWVudC5jb25zdHJ1Y3Rvci5uYW1lfSBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCB5ZXQuYCk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVhLE1BQUEsY0FBYyxDQUFDLFFBQVEsU0FBUyxTQUFTLFVBQVUsUUFBUSxTQUFTLE9BQU87QUFXeEUsU0FBQSxhQUNkLE1BQ0EsSUFDQSxZQUNTO0FBQ1QsTUFBSSxVQUFVO0FBRUwsV0FBQTtBQUFBLEVBQ1Q7QUFFTSxRQUFBLGdCQUFnQixpQkFB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
145
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vYnJlYWtwb2ludC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RvbS9maW5kLXJlZmVyZW5jZWQtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RvbS9nZXQtZG9jdW1lbnQtd3JpdGluZy1tb2RlLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL2hvc3QtY29udGV4dC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RvbS9pbnB1dC1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3NldC1vci1yZW1vdmUtYXR0cmlidXRlLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3BsYXRmb3JtLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3Njcm9sbC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RvbS9zc3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuXG5leHBvcnQgY29uc3QgYnJlYWtwb2ludHMgPSBbJ3plcm8nLCAnbWljcm8nLCAnc21hbGwnLCAnbWVkaXVtJywgJ3dpZGUnLCAnbGFyZ2UnLCAndWx0cmEnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEJyZWFrcG9pbnQgPSAodHlwZW9mIGJyZWFrcG9pbnRzKVtudW1iZXJdO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBkb2N1bWVudCBtYXRjaGVzIGEgcGFydGljdWxhciBtZWRpYSBxdWVyeS5cbiAqIEl0IHdpbGwgcmVseSBvbiB0aGUgZ2xvYmFsIENTUyB2YXJpYWJsZXMgdG8gZGV0ZXJtaW5lIHRoZSB2YWx1ZSBvZiB0aGUgYnJlYWtwb2ludHMuXG4gKlxuICogQHBhcmFtIGZyb20gVGhlIGJyZWFrcG9pbnQgY29ycmVzcG9uZGluZyB0byB0aGUgYG1pbi13aWR0aGAgdmFsdWUgb2YgdGhlIG1lZGlhIHF1ZXJ5IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gdG8gVGhlIGJyZWFrcG9pbnQgY29ycmVzcG9uZGluZyB0byB0aGUgYG1heC13aWR0aGAgdmFsdWUgb2YgdGhlIG1lZGlhIHF1ZXJ5IChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB3aW5kb3cgbWF0Y2hlcyB0aGUgYnJlYWtwb2ludC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQnJlYWtwb2ludChcbiAgZnJvbT86IEJyZWFrcG9pbnQsXG4gIHRvPzogQnJlYWtwb2ludCxcbiAgcHJvcGVydGllcz86IHsgaW5jbHVkZU1heEJyZWFrcG9pbnQ6IGJvb2xlYW4gfSxcbik6IGJvb2xlYW4ge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAvLyBUT0RPOiBSZW1vdmUgYW5kIGRlY2lkZSBjYXNlIGJ5IGNhc2Ugd2hhdCBzaG91bGQgYmUgZG9uZSBvbiBjb25zdW1pbmcgZW5kXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcbiAgY29uc3QgYnJlYWtwb2ludE1pbiA9IGZyb20gPyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoYC0tc2JiLWJyZWFrcG9pbnQtJHtmcm9tfS1taW5gKSA6ICcnO1xuICBjb25zdCBicmVha3BvaW50TWF4ID0gdG9cbiAgICA/IGAke1xuICAgICAgICBwYXJzZUZsb2F0KFxuICAgICAgICAgIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAgIGAtLXNiYi1icmVha3BvaW50LSR7dG99LSR7cHJvcGVydGllcz8uaW5jbHVkZU1heEJyZWFrcG9pbnQgPyAnbWF4JyA6ICdtaW4nfWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSAtIChwcm9wZXJ0aWVzPy5pbmNsdWRlTWF4QnJlYWtwb2ludCA/IDAgOiAwLjA2MjUpXG4gICAgICB9cmVtYFxuICAgIDogJyc7IC8vIHN1YnRyYWN0IDFweCAoMC4wNjI1cmVtKSBmcm9tIHRoZSBtYXgtd2lkdGggYnJlYWtwb2ludFxuXG4gIGNvbnN0IG1pbldpZHRoID0gYnJlYWtwb2ludE1pbiAmJiBgKG1pbi13aWR0aDogJHticmVha3BvaW50TWlufSlgO1xuICBjb25zdCBtYXhXaWR0aCA9IGJyZWFrcG9pbnRNYXggJiYgYChtYXgtd2lkdGg6ICR7YnJlYWtwb2ludE1heH0pYDtcbiAgY29uc3QgYW5kID0gYnJlYWtwb2ludE1pbiAmJiBicmVha3BvaW50TWF4ICYmICcgYW5kICc7XG5cbiAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKGAke21pbldpZHRofSR7YW5kfSR7bWF4V2lkdGh9YCkubWF0Y2hlcztcbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiAgQ2hlY2sgd2hldGhlciBpdCdzIGEgc3RyaW5nIG9yIGFuIEhUTUxFbGVtZW50LCBpZiBpdCdzIGEgc3RyaW5nIHF1ZXJpZXMgdGhlIGVsZW1lbnQgd2l0aCB0aGVcbiAqICBjb3JyZXNwb25kaW5nIGlkLlxuICogIEBwYXJhbSByZWZlcmVuY2UgZWl0aGVyIHRoZSB3YW50ZWQgaWQgb3IgdGhlIEhUTUxFbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUmVmZXJlbmNlZEVsZW1lbnQ8VCBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+KFxuICByZWZlcmVuY2U6IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogVCB8IG51bGwge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZWZlcmVuY2UpIGFzIFQ7XG4gIH0gZWxzZSBpZiAocmVmZXJlbmNlIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcbiAgICByZXR1cm4gcmVmZXJlbmNlIGFzIFQ7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIDpkaXIoKSBzZWxlY3RvciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREb2N1bWVudFdyaXRpbmdNb2RlID0gKCk6IHN0cmluZyA9PlxuICAoIWlzU2VydmVyICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RpcicpKSB8fCAnbHRyJztcbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBMb29rcyBmb3IgdGhlIGNsb3Nlc3QgZWxlbWVudCBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VsZWN0b3Igc3RhcnRpbmcgZnJvbSB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqIFJldHVybnMgbnVsbCwgaWYgbm9uZSBvZiB0aGUgYW5jZXN0b3IgbWF0Y2guXG4gKlxuICogQHBhcmFtIHNlbGVjdG9yIFRoZSBzZWxlY3RvciB0byBtYXRjaCBhbmNlc3RvciBhZ2FpbnN0LlxuICogQHBhcmFtIGVsZW1lbnQgVGhlIGJhc2UgZWxlbWVudCBmcm9tIHdoaWNoIHRvIHN0YXJ0IHRoZSBzZWFyY2guXG4gKiBAcmV0dXJucyBUaGUgY2xvc2VzdCBlbGVtZW50IG1hdGNoaW5nIHRoZSBzZWxlY3RvciBvciBudWxsIGlmIG5vbmUgaXMgZm91bmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBob3N0Q29udGV4dChzZWxlY3Rvcjogc3RyaW5nLCBlbGVtZW50OiBFbGVtZW50KTogRWxlbWVudCB8IG51bGwge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBTdGFydCB3aXRoIHBhcmVudCBlbGVtZW50IGluIG9yZGVyIHRvIGF2b2lkIGZpbmRpbmcgZWxlbWVudCBpdHNlbGZcbiAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudCA/PyAoZWxlbWVudC5nZXRSb290Tm9kZSgpIGFzIFNoYWRvd1Jvb3QpLmhvc3Q7XG4gIHdoaWxlIChlbGVtZW50ICYmIChlbGVtZW50IGFzIGFueSkgIT09IGRvY3VtZW50ICYmIChlbGVtZW50IGFzIGFueSkgIT09IHdpbmRvdykge1xuICAgIGNvbnN0IG1hdGNoID0gZWxlbWVudC5jbG9zZXN0KHNlbGVjdG9yKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIHJldHVybiBtYXRjaDtcbiAgICB9XG5cbiAgICBlbGVtZW50ID0gKGVsZW1lbnQuZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KS5ob3N0O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vIEEgbGlzdCBvZiBlbGVtZW50cyB0aGF0IHNob3VsZCBub3QgYWxsb3cgYW5vdGhlciBhbmNob3Igb3IgYnV0dG9uIGVsZW1lbnQgaW5zaWRlIHRoZW0uXG4vLyBOZWVkcyB0byBiZSBleHRlbmRlZCBpZiBhZGRpdGlvbmFsIGVsZW1lbnRzIGZhbGwgaW50byB0aGlzIGNhdGVnb3J5LlxuZXhwb3J0IGNvbnN0IEFDVElPTl9FTEVNRU5UUyA9ICdhLGJ1dHRvbixzYmItdGVhc2VyLWhlcm8sc2JiLXRlYXNlcic7XG4iLCJpbXBvcnQgeyBmaW5kUmVmZXJlbmNlZEVsZW1lbnQgfSBmcm9tICcuL2ZpbmQtcmVmZXJlbmNlZC1lbGVtZW50LmpzJztcblxuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50LCByZXR1cm5zIHRoZSByZWxhdGVkIGlucHV0IHJlZmVyZW5jZSwgaWYgaXQgZXhpc3RzIHJlc3BlY3RpbmcgZm9sbG93aW5nIHByaW9yaXR5LlxuICogMS4gSW5wdXQgZmllbGQgaW4gYHNiYi1mb3JtLWZpZWxkYCAoaWYgdHJpZ2dlciBpcyB1bmRlZmllbmQpXG4gKiAyLiBJbnB1dCByZWZlcmVuY2VkIGJ5IGlkICh0cmlnZ2VyIGlzIHN0cmluZylcbiAqIDMuIElucHV0IHJlZmVyZW5jZWQgZGlyZWN0bHkgKHRyaWdnZXIgaXMgSFRNTEVsZW1lbnQpXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgc3RhcnRpbmcgU2JiRGF0ZXBpY2tlckVsZW1lbnQgZWxlbWVudC5cbiAqIEBwYXJhbSB0cmlnZ2VyIFRoZSBpZCBvciB0aGUgcmVmZXJlbmNlIG9mIHRoZSBpbnB1dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRJbnB1dChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIHRyaWdnZXI/OiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwsXG4pOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gIGlmICghdHJpZ2dlcikge1xuICAgIGNvbnN0IHBhcmVudCA9IGVsZW1lbnQuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpO1xuICAgIHJldHVybiBwYXJlbnQ/LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykgYXMgSFRNTElucHV0RWxlbWVudCB8IG51bGw7XG4gIH1cblxuICByZXR1cm4gZmluZFJlZmVyZW5jZWRFbGVtZW50PEhUTUxJbnB1dEVsZW1lbnQ+KHRyaWdnZXIpO1xufVxuIiwiLyoqXG4gKiBTZXQgdGhlIGF0dHJpYnV0ZSBvbmx5IGlmIHZhbHVlIGlzIG5vdCAnZmFsc2UnLCBvdGhlcndpc2UgcmVtb3ZlIGF0dHJpYnV0ZS5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IHRoYXQgd2lsbCBoYXZlIHRoZSBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBuYW1lXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGF0dHJpYnV0ZSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0T3JSZW1vdmVBdHRyaWJ1dGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSk6IHZvaWQge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgfVxufVxuIiwiLy8gVGhpcyBmaWxlIGlzIGZyZWVseSBpbnNwaXJlZCBieSBBbmd1bGFyIE1hdGVyaWFsIHNvbHV0aW9uLlxuLy8gUmVmZXJlbmNlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFpbi9zcmMvY2RrL3BsYXRmb3JtL3BsYXRmb3JtLnRzXG5pbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8vIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGxhdGZvcm0gc3VwcG9ydHMgdGhlIFY4IEJyZWFrIEl0ZXJhdG9yLiBUaGUgVjggY2hlY2tcbi8vIGlzIG5lY2Vzc2FyeSB0byBkZXRlY3QgYWxsIEJsaW5rIGJhc2VkIGJyb3dzZXJzLlxubGV0IGhhc1Y4QnJlYWtJdGVyYXRvcjogYm9vbGVhbjtcblxuLy8gV2UgbmVlZCBhIHRyeS9jYXRjaCBhcm91bmQgdGhlIHJlZmVyZW5jZSB0byBgSW50bGAsIGJlY2F1c2UgYWNjZXNzaW5nIGl0IGluIHNvbWUgY2FzZXMgY2FuXG4vLyBjYXVzZSBJRSB0byB0aHJvdy4gVGhlc2UgY2FzZXMgYXJlIHRpZWQgdG8gcGFydGljdWxhciB2ZXJzaW9ucyBvZiBXaW5kb3dzIGFuZCBjYW4gaGFwcGVuIGlmXG4vLyB0aGUgY29uc3VtZXIgaXMgcHJvdmlkaW5nIGEgcG9seWZpbGxlZCBgTWFwYC4gU2VlOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9DaGFrcmFDb3JlL2lzc3Vlcy8zMTg5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8xNTY4N1xudHJ5IHtcbiAgaGFzVjhCcmVha0l0ZXJhdG9yID0gdHlwZW9mIEludGwgIT09ICd1bmRlZmluZWQnICYmIChJbnRsIGFzIGFueSkudjhCcmVha0l0ZXJhdG9yO1xufSBjYXRjaCB7XG4gIGhhc1Y4QnJlYWtJdGVyYXRvciA9IGZhbHNlO1xufVxuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBicm93c2VyIGlzIE1pY3Jvc29mdCBFZGdlLiAqL1xuZXhwb3J0IGNvbnN0IGlzRWRnZSA9ICFpc1NlcnZlciAmJiAvKGVkZ2UpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGVuZ2luZSBpcyBNaWNyb3NvZnQgVHJpZGVudC4gKi9cbmV4cG9ydCBjb25zdCBpc1RyaWRlbnQgPSAhaXNTZXJ2ZXIgJiYgLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLy8gRWRnZUhUTUwgYW5kIFRyaWRlbnQgbW9jayBCbGluayBzcGVjaWZpYyB0aGluZ3MgYW5kIG5lZWQgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGlzIGNoZWNrLlxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGVuZ2luZSBpcyBCbGluay4gKi9cbmV4cG9ydCBjb25zdCBpc0JsaW5rID1cbiAgIWlzU2VydmVyICYmXG4gICEhKCh3aW5kb3cgYXMgYW55KS5jaHJvbWUgfHwgaGFzVjhCcmVha0l0ZXJhdG9yKSAmJlxuICB0eXBlb2YgQ1NTICE9PSAndW5kZWZpbmVkJyAmJlxuICAhaXNFZGdlICYmXG4gICFpc1RyaWRlbnQ7XG5cbi8vIFdlYmtpdCBpcyBwYXJ0IG9mIHRoZSB1c2VyQWdlbnQgaW4gRWRnZUhUTUwsIEJsaW5rIGFuZCBUcmlkZW50LiBUaGVyZWZvcmUsIHdlIG5lZWQgdG9cbi8vIGVuc3VyZSB0aGF0IFdlYmtpdCBydW5zIHN0YW5kYWxvbmUgYW5kIGlzIG5vdCB1c2VkIGFzIGFub3RoZXIgZW5naW5lJ3MgYmFzZS5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHJlbmRlcmluZyBlbmdpbmUgaXMgV2ViS2l0LiAqL1xuZXhwb3J0IGNvbnN0IGlzV2Via2l0ID1cbiAgIWlzU2VydmVyICYmIC9BcHBsZVdlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgIWlzQmxpbmsgJiYgIWlzRWRnZSAmJiAhaXNUcmlkZW50O1xuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBwbGF0Zm9ybSBpcyBBcHBsZSBpT1MuICovXG5leHBvcnQgY29uc3QgaXNJT1MgPVxuICAhaXNTZXJ2ZXIgJiYgL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgISgnTVNTdHJlYW0nIGluIHdpbmRvdyk7XG5cbi8vIEl0J3MgZGlmZmljdWx0IHRvIGRldGVjdCB0aGUgcGxhaW4gR2Vja28gZW5naW5lLCBiZWNhdXNlIG1vc3Qgb2YgdGhlIGJyb3dzZXJzIGlkZW50aWZ5XG4vLyB0aGVtIHNlbGYgYXMgR2Vja28tbGlrZSBicm93c2VycyBhbmQgbW9kaWZ5IHRoZSB1c2VyQWdlbnQncyBhY2NvcmRpbmcgdG8gdGhhdC5cbi8vIFNpbmNlIHdlIG9ubHkgY292ZXIgb25lIGV4cGxpY2l0IEZpcmVmb3ggY2FzZSwgd2UgY2FuIHNpbXBseSBjaGVjayBmb3IgRmlyZWZveFxuLy8gaW5zdGVhZCBvZiBoYXZpbmcgYW4gdW5zdGFibGUgY2hlY2sgZm9yIEdlY2tvLlxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgYnJvd3NlciBpcyBGaXJlZm94LiAqL1xuZXhwb3J0IGNvbnN0IGlzRmlyZWZveCA9ICFpc1NlcnZlciAmJiAvKGZpcmVmb3h8bWluZWZpZWxkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBsYXRmb3JtIGlzIEFuZHJvaWQuICovXG4vLyBUcmlkZW50IG9uIG1vYmlsZSBhZGRzIHRoZSBhbmRyb2lkIHBsYXRmb3JtIHRvIHRoZSB1c2VyQWdlbnQgdG8gdHJpY2sgZGV0ZWN0aW9ucy5cbmV4cG9ydCBjb25zdCBpc0FuZHJvaWQgPSAhaXNTZXJ2ZXIgJiYgL2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICFpc1RyaWRlbnQ7XG5cbi8vIFNhZmFyaSBicm93c2VycyB3aWxsIGluY2x1ZGUgdGhlIFNhZmFyaSBrZXl3b3JkIGluIHRoZWlyIHVzZXJBZ2VudC4gU29tZSBicm93c2VycyBtYXkgZmFrZVxuLy8gdGhpcyBhbmQganVzdCBwbGFjZSB0aGUgU2FmYXJpIGtleXdvcmQgaW4gdGhlIHVzZXJBZ2VudC4gVG8gYmUgbW9yZSBzYWZlIGFib3V0IFNhZmFyaSBldmVyeVxuLy8gU2FmYXJpIGJyb3dzZXIgc2hvdWxkIGFsc28gdXNlIFdlYmtpdCBhcyBpdHMgbGF5b3V0IGVuZ2luZS5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IGJyb3dzZXIgaXMgU2FmYXJpLiAqL1xuZXhwb3J0IGNvbnN0IGlzU2FmYXJpID0gIWlzU2VydmVyICYmIC9zYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIGlzV2Via2l0O1xuXG4vKipcbiAqIFdlIGp1c3QgY2hlY2sgZm9yIHRoZSBibGluayBlbmdpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Nocm9taXVtID0gaXNCbGluaztcblxuLyoqIFdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIGJlaW5nIHJlbmRlcmVkIGluIGEgTmV4dC5qcyBlbnZpcm9ubWVudC4gKi9cbmV4cG9ydCBjb25zdCBpc05leHRqcyA9ICgpOiBib29sZWFuID0+ICEhKGdsb2JhbFRoaXMgYXMgeyBuZXh0Pzogb2JqZWN0IH0pLm5leHQ7XG4iLCJleHBvcnQgZnVuY3Rpb24gcGFnZVNjcm9sbERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLXNjcm9sbC1kaXNhYmxlZCcpO1xufVxuXG4vKipcbiAqIEhhbmRsZSB0aGUgcGFnZSBzY3JvbGwsIGFsbG93aW5nIHRvIGRpc2FibGUvZW5hYmxlIHRoZSB3aW5kb3cgc2Nyb2xsIGF2b2lkaW5nIGEgcG90ZW50aWFsXG4gKiBjb250ZW50IHNoaWZ0IGNhdXNlZCBieSB0aGUgZGlzYXBwZWFyYW5jZS9hcHBlYXJhbmNlIG9mIHRoZSBzY3JvbGxiYXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTY3JvbGxIYW5kbGVyIHtcbiAgcHJpdmF0ZSBfcG9zaXRpb24hOiBzdHJpbmc7XG4gIHByaXZhdGUgX292ZXJmbG93ITogc3RyaW5nO1xuICBwcml2YXRlIF9tYXJnaW5JbmxpbmVFbmQhOiBzdHJpbmc7XG5cbiAgcHVibGljIGRpc2FibGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHBhZ2VTY3JvbGxEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2F2ZSBhbnkgcHJlLWV4aXN0aW5nIHN0eWxlcyB0byByZWFwcGx5IHRoZW0gdG8gdGhlIGJvZHkgd2hlbiBlbmFibGluZyB0aGUgc2Nyb2xsIGFnYWluLlxuICAgIHRoaXMuX3Bvc2l0aW9uID0gZG9jdW1lbnQuYm9keS5zdHlsZS5wb3NpdGlvbjtcbiAgICB0aGlzLl9vdmVyZmxvdyA9IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c7XG4gICAgdGhpcy5fbWFyZ2luSW5saW5lRW5kID0gZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW5JbmxpbmVFbmQ7XG5cbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luSW5saW5lRW5kID0gYCR7c2Nyb2xsYmFyV2lkdGh9cHhgO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXNjcm9sbGJhci13aWR0aCcsIGAke3Njcm9sbGJhcldpZHRofXB4YCk7XG5cbiAgICBkb2N1bWVudC5ib2R5LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItc2Nyb2xsLWRpc2FibGVkJywgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICghcGFnZVNjcm9sbERpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXZlcnQgYm9keSBpbmxpbmUgc3R5bGVzLlxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb24gPSB0aGlzLl9wb3NpdGlvbiB8fCAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gdGhpcy5fb3ZlcmZsb3cgfHwgJyc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW5JbmxpbmVFbmQgPSB0aGlzLl9tYXJnaW5JbmxpbmVFbmQgfHwgJyc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItc2Nyb2xsYmFyLXdpZHRoJywgJzAnKTtcblxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNiYi1zY3JvbGwtZGlzYWJsZWQnKTtcbiAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcblxuY29uc3QgbG9jYWxOYW1lQ2FjaGUgPSBuZXcgTWFwPHVua25vd24sIHN0cmluZz4oKTtcblxuLyoqXG4gKiBJbiBTU1IgdGhlIGxvY2FsL3RhZyBuYW1lIGlzIG5vdCBhdmFpbGFibGUgb24gdGhlIGNsYXNzIGluc3RhbmNlLCBidXQgaXQgaXMgYXZhaWxhYmxlXG4gKiBpbiB0aGUgc2hpbSBjdXN0b21FbGVtZW50cyByZWdpc3RyeS5cbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbGl0L2xpdC9ibG9iL21haW4vcGFja2FnZXMvbGFicy9zc3ItZG9tLXNoaW0vc3JjLnRzIChTZWUgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5U2hpbSlcbiAqXG4gKiBDYW4gYmUgcmVtb3ZlZCBvbmNlIGh0dHBzOi8vZ2l0aHViLmNvbS9saXQvbGl0L3B1bGwvNDU1MyBpcyBtZXJnZWQvcmVsZWFzZWQuXG4gKlxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIHdpdGggbmV4dCBtYWpvciB2ZXJzaW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbE5hbWUoZWxlbWVudDogTGl0RWxlbWVudCk6IHN0cmluZyB7XG4gIGlmIChsb2NhbE5hbWVDYWNoZS5oYXMoZWxlbWVudC5jb25zdHJ1Y3RvcikpIHtcbiAgICByZXR1cm4gbG9jYWxOYW1lQ2FjaGUuZ2V0KGVsZW1lbnQuY29uc3RydWN0b3IpITtcbiAgfVxuXG4gIGNvbnN0IGRlZmluaXRpb25zID0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgIChjdXN0b21FbGVtZW50cyBhcyB1bmtub3duIGFzIHsgX19kZWZpbml0aW9uczogTWFwPHN0cmluZywgeyBjdG9yOiB1bmtub3duIH0+IH0pLl9fZGVmaW5pdGlvbnM7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGRlZmluaXRpb25zKSB7XG4gICAgaWYgKHZhbHVlLmN0b3IgPT09IGVsZW1lbnQuY29uc3RydWN0b3IpIHtcbiAgICAgIGxvY2FsTmFtZUNhY2hlLnNldChlbGVtZW50LmNvbnN0cnVjdG9yLCBrZXkpO1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBHaXZlbiBlbGVtZW50ICR7ZWxlbWVudC5jb25zdHJ1Y3Rvci5uYW1lfSBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCB5ZXQuYCk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVhLE1BQUEsY0FBYyxDQUFDLFFBQVEsU0FBUyxTQUFTLFVBQVUsUUFBUSxTQUFTLE9BQU87QUFXeEUsU0FBQSxhQUNkLE1BQ0EsSUFDQSxZ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
@@ -1 +1 @@
1
- {"version":3,"file":"named-slot-list-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/named-slot-list-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAW,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAK1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,6BAA6B,CAAC;AAKrC,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,EACtC,CAAC,SAAS,WAAW,GAAG,WAAW,IACjC,CAAC,GAAG;IAAE,YAAY,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC;AAE9B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,yBAAyB,CACrD,CAAC,SAAS,WAAW,CACrB,SAAQ,qBAAqB;IAC7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IACjD,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC,UAAU,CAClB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,EACD,kBAAkB,CAAC,EAAE;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;KAChC,GACA,cAAc;IACjB,SAAS,CAAC,eAAe,IAAI,sBAAsB,EAAE;IACrD,SAAS,CAAC,gBAAgB,IAAI,cAAc;CAC7C;AAGD,eAAO,MAAM,qBAAqB,GAChC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,cAE7B,CAAC,KACZ,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,CAsItD,CAAC"}
1
+ {"version":3,"file":"named-slot-list-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/named-slot-list-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAW,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,6BAA6B,CAAC;AAKrC,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,EACtC,CAAC,SAAS,WAAW,GAAG,WAAW,IACjC,CAAC,GAAG;IAAE,YAAY,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC;AAE9B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,yBAAyB,CACrD,CAAC,SAAS,WAAW,CACrB,SAAQ,qBAAqB;IAC7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IACjD,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC,UAAU,CAClB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,EACD,kBAAkB,CAAC,EAAE;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;KAChC,GACA,cAAc;IACjB,SAAS,CAAC,eAAe,IAAI,sBAAsB,EAAE;IACrD,SAAS,CAAC,gBAAgB,IAAI,cAAc;CAC7C;AAGD,eAAO,MAAM,qBAAqB,GAChC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,cAE7B,CAAC,KACZ,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,CAsItD,CAAC"}