@esfaenza/es-table 11.2.22-beta9 → 11.2.23

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.
@@ -26,10 +26,13 @@ export class ItemsHandler {
26
26
  // Se faccio dei raggruppamenti ignoro la paginazione
27
27
  if (this.est.UseArrayModePaging && !allIfPossible) {
28
28
  // Se sono in modalità array ma la ricerca dipende da una view devo riallineare gli itemperpage
29
- if (this.est.SearchView)
29
+ if (this.est.SearchView) {
30
30
  this.est.ArraymodeItemsPerPage = this.est.SearchView.itemsperpageoverride;
31
+ this.est.arraymodePage = this.est.SearchView.page;
32
+ this.est.arraymodePages = this.est.SearchView.pages;
33
+ }
31
34
  // Devo chiamare il refresh page solo se vengo richiamato da un binding esterno
32
- if (refreshPaging)
35
+ else if (refreshPaging)
33
36
  this.refreshPaging(this.est.ArraymodeItemsPerPage);
34
37
  items = this.adaptViewToPaging();
35
38
  }
@@ -76,6 +79,8 @@ export class ItemsHandler {
76
79
  }
77
80
  else {
78
81
  let ret = this.est.SecondarySource ? this.est.View.items2 : this.est.TertiarySource ? this.est.View.items3 : this.est.View.items;
82
+ if (!ret)
83
+ ret = [];
79
84
  // Setto variabile interna per specificare che questo è un elemento normale, non un gruppo o altro
80
85
  ret.forEach(itm => { itm._item = true; });
81
86
  return ret;
@@ -84,9 +89,13 @@ export class ItemsHandler {
84
89
  /** Genera le informazioni di paginazione e taglia la View in modalità array per mostrare solo gli oggetti della pagina specificata */
85
90
  adaptViewToPaging() {
86
91
  let tmpItems = [];
87
- // Se ho una search view l'array pulsanti viene calcolato da lei, non devo prendere quello della modalità array
92
+ // Se ho una search view l'array pulsanti viene calcolato da lei, non devo prendere quello della modalità array,
93
+ // inoltre non ho bisogno di fare ragionamenti su quanti elementi ci sono e sulla pagina, dato che viene tutto gestito esternamente,
94
+ // unendo al risultato della view tutti gli oggetti addizionali
88
95
  if (!this.est.SearchView)
89
96
  this.est.arrayPulsanti = this.utilities.getPagesArray(6, this.est.arraymodePage, this.est.arraymodePages);
97
+ else
98
+ return this.est.View;
90
99
  // Poi per tutti i valori dopo compresi fra la pagina - 1 e la pagina
91
100
  for (let i = ((this.est.arraymodePage - 1) * this.est.ArraymodeItemsPerPage); i < this.est.arraymodePage * this.est.ArraymodeItemsPerPage; i++) {
92
101
  if (i <= this.est.View.length - 1)
@@ -118,4 +127,4 @@ export class ItemsHandler {
118
127
  this.est.arrayOrders.forEach(t => { this.est.boundSource = this.est.boundSource.sort((a, b) => (a[t.id] > b[t.id] ? 1 : -1) * (t.order == 'DESC' ? -1 : 1)); });
119
128
  }
120
129
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlbXNIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL2NsYXNzZXMvSXRlbXNIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLNUMsMkpBQTJKO0FBQzNKLE1BQU0sT0FBTyxZQUFZO0lBRXJCLDBCQUEwQjtJQUMxQixZQUFvQixHQUFxQixFQUFVLFNBQTJCO1FBQTFELFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBSSxDQUFDO0lBRW5GOzs7Ozs7OztPQVFHO0lBQ0ksY0FBYyxDQUFDLGVBQXdCLEtBQUssRUFBRSxnQkFBeUIsS0FBSyxFQUFFLGdCQUF5QixLQUFLO1FBQy9HLElBQUksS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksU0FBUyxDQUFDLEVBQUU7WUFDM0QsS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ3ZDO2FBQ0ksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRTtZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBELHFEQUFxRDtZQUNyRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBRS9DLCtGQUErRjtnQkFDL0YsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVU7b0JBQ25C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Q0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsRyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVELDBFQUEwRTtJQUNuRSx3QkFBd0I7UUFDM0IsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEssQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29tcG9uZW50aVxyXG5pbXBvcnQgeyBFc1RhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvZXMtdGFibGUvZXNfdGFibGUuY29tcG9uZW50XCJcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgQXBwU2VhcmNoIH0gZnJvbSBcIi4uLy4uLy4uL2RvbWFpblwiO1xyXG5cclxuLy8gVXRpbGl0aWVzXHJcbmltcG9ydCB7IFV0aWxpdGllc0hhbmRsZXIgfSBmcm9tIFwiLi9VdGlsaXRpZXNIYW5kbGVyXCI7XHJcblxyXG4vKiogQ2xhc3NlIGNoZSBzaSBvY2N1cGEgZGVsbGEgZ2VzdGlvbmUgZGVsIHJlY3VwZXJvIGRlZ2xpIG9nZ2V0dGksIHBhZ2luYXppb25lIGUgdHV0dG8gY2nDsiBpbiBjdWkgZ2xpIGVsZW1lbnRpIGNhcmljYXRpIHZlbmdvbm8gbWFuaXBvbGF0aSBkaXJldHRhbWVudGUgKi9cclxuZXhwb3J0IGNsYXNzIEl0ZW1zSGFuZGxlciB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXN0OiBFc1RhYmxlQ29tcG9uZW50LCBwcml2YXRlIHV0aWxpdGllczogVXRpbGl0aWVzSGFuZGxlcikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbiBiYXNlIGFsbGEgbW9kYWxpdMOgIHNwZWNpZmljYXRhIChBcnJheU1vZGUsIFZpZXdNb2RlLCBlY2MuLi4pIHF1ZXN0byBtZXRvZG8gcmVjdXBlcmEgbCdhcnJheSBkaSBvZ2dldHRpIGRhIGJpbmRhcmUgYWQgaW50ZXJmYWNjaWFcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9ubHlzZWxlY3RlZCBbZmFsc2VdIEluZGljYSBkaSBwcmVuZGVyZSBzb2xvIGdsaSBvZ2dldHRpIHNlbGV6aW9uYXRpXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJlZnJlc2hQYWdpbmcgW2ZhbHNlXSBJbmRpY2Egc2UgYWdnaW9ybmFyZSBsZSBpbmZvcm1hemlvbmkgZGkgcGFnaW5hemlvbmUgbyBtZW5vXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGFsbElmUG9zc2libGUgW2ZhbHNlXSBJbmRpY2Egc2UgcHJlbmRlcmUgdHV0dGkgZ2xpIG9nZ2V0dGkgcXVhb3JhIHBvc3NpYmlsZSwgdXNhdG8gc29sbyBpbiBBcnJheU1vZGVcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7YW55W119IExpc3RhIGRlZ2xpIG9nZ2V0dGkgc3UgY3VpIGVmZmV0dHVhcmUgaWwgYmluZCBsYXRvIGludGVyZmFjY2lhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRJdGVtc0J5TW9kZShvbmx5c2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZSwgcmVmcmVzaFBhZ2luZzogYm9vbGVhbiA9IGZhbHNlLCBhbGxJZlBvc3NpYmxlOiBib29sZWFuID0gZmFsc2UpOiBhbnlbXSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoKHRoaXMuZXN0LnZpZXdNb2RlICYmIHRoaXMuZXN0LlZpZXcgaW5zdGFuY2VvZiBBcHBTZWFyY2gpKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5nZXRWaWV3SXRlbXNCeVNvdXJjZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmVzdC5hcnJheU1vZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5lc3QuVmlldy5mb3JFYWNoKGl0bSA9PiB7IGl0bS5faXRlbSA9IHRydWU7IH0pO1xyXG5cclxuICAgICAgICAgICAgLy8gU2UgZmFjY2lvIGRlaSByYWdncnVwcGFtZW50aSBpZ25vcm8gbGEgcGFnaW5hemlvbmVcclxuICAgICAgICAgICAgaWYgKHRoaXMuZXN0LlVzZUFycmF5TW9kZVBhZ2luZyAmJiAhYWxsSWZQb3NzaWJsZSkge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFNlIHNvbm8gaW4gbW9kYWxpdMOgIGFycmF5IG1hIGxhIHJpY2VyY2EgZGlwZW5kZSBkYSB1bmEgdmlldyBkZXZvIHJpYWxsaW5lYXJlIGdsaSBpdGVtcGVycGFnZVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZXN0LlNlYXJjaFZpZXcpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlID0gdGhpcy5lc3QuU2VhcmNoVmlldy5pdGVtc3BlcnBhZ2VvdmVycmlkZTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBEZXZvIGNoaWFtYXJlIGlsIHJlZnJlc2ggcGFnZSBzb2xvIHNlIHZlbmdvIHJpY2hpYW1hdG8gZGEgdW4gYmluZGluZyBlc3Rlcm5vXHJcbiAgICAgICAgICAgICAgICBpZiAocmVmcmVzaFBhZ2luZylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hQYWdpbmcodGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpdGVtcyA9IHRoaXMuYWRhcHRWaWV3VG9QYWdpbmcoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5lc3QuVmlldyBhcyBhbnlbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2Ugdm9nbGlvIHNvbG8gaSBzZWxlemlvbmF0aSBmaWx0cm9cclxuICAgICAgICBpZiAob25seXNlbGVjdGVkKVxyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKHQgPT4gdC5fc2VsZWN0ZWQpO1xyXG5cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRvZG8gcGVyIGVmZmV0dHVhcmUgaWwgcmVmcmVzaCBkZWxsYSBwYWdpbmF6aW9uZSBzdWwgY2FtYmlhbWVudG8gZGVnbGkgb2dnZXR0aSBkYSB2aXN1YWxpenphcmUgaW4gdW5hIHNpbmdvbGEgcGFnaW5hLlxyXG4gICAgICpcclxuICAgICAqIFZhbGUgc29sbyBwZXIgbGEgbW9kYWxpdMOgIEFycmF5XHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHBhZ2VTaXplIERpbWVuc2lvbmUgZGVsbGEgcGFnaW5hXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWZyZXNoUGFnaW5nKHBhZ2VTaXplOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2UgPSBwYWdlU2l6ZTtcclxuICAgICAgICB0aGlzLmVzdC5hcnJheW1vZGVQYWdlcyA9IE1hdGguY2VpbCgodGhpcy5lc3QuVmlldyBhcyBhbnlbXSkubGVuZ3RoIC8gdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlKTtcclxuICAgICAgICB0aGlzLmVzdC5hcnJheW1vZGVQYWdlID0gMTtcclxuXHJcbiAgICAgICAgLy8gUmlmb3J6byBpbCB3cml0ZXZhbHVlIGluIG1vZG8gY2hlIGlsIGNvZGljZSBwYXNzaSBkYWxsYSBnZXN0aW9uZSBjb21lIHNlIGZvc3NlIGZhdHRhIHJpcGFydGlyZSB1bmEgcmljZXJjYVxyXG4gICAgICAgIHRoaXMuZXN0LmludGVybmFsV3JpdGVWYWx1ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBnbGkgb2dnZXR0aSBpbiBiYXNlIGFsbGEgc29yZ2VudGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRWaWV3SXRlbXNCeVNvdXJjZSgpOiBhbnlbXSB7XHJcbiAgICAgICAgbGV0IGNhc3RlZFZpZXcgPSB0aGlzLmVzdC5WaWV3IGFzIEFwcFNlYXJjaDxhbnk+O1xyXG4gICAgICAgIGxldCBncm91cEtleXMgPSBjYXN0ZWRWaWV3Lmdyb3VwaW5ncyA/IGNhc3RlZFZpZXcuZ3JvdXBpbmdzLmZpbHRlcih0ID0+ICF0LmFnZ3JlZ2F0aW9uKS5sZW5ndGggOiAwO1xyXG5cclxuICAgICAgICAvL0dydXBwaSBpbnRlcm1lZGlcclxuICAgICAgICBpZiAoKGNhc3RlZFZpZXcucmVxdWVzdGVkZ3JvdXBzPy5sZW5ndGggIT0gZ3JvdXBLZXlzIHx8IGNhc3RlZFZpZXcucmVxdWVzdGVkZ3JvdXBzPy5sZW5ndGggPT0gMCkgJiYgZ3JvdXBLZXlzID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgcmV0ID0gY2FzdGVkVmlldy5ncm91cHM7XHJcbiAgICAgICAgICAgIHJldC5mb3JFYWNoKGl0bSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gU2V0dG8gdmFyaWFiaWxlIGludGVybmEgcGVyIGNhcGlyZSBjaGUgcXVlc3RvIMOoIGluIHJlYWx0w6AgdW4gZ3J1cHBvXHJcbiAgICAgICAgICAgICAgICAoPGFueT5pdG0pLl9ncm91cCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gTGUgaW5mb3JtYXppb25pIHBhc3NhdGUgY29tZSBsaXN0YSBsZSBtZXR0byBkZW50cm8gYSB1bmEgY2FjaGUgcGVyIHZlbG9jaXp6YXJuZSBsJ2FjY2Vzc28gcXVhbmRvIGRldm8gdGlyYXJlIGZ1b3JpIGlsIGRpc3BsYXkgZGVsbGEgcHJvcHJpZXTDoFxyXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsaXRpZXMuY2FjaGVBZ2dyZWdhdGlvbnMoaXRtKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgcmV0ID0gdGhpcy5lc3QuU2Vjb25kYXJ5U291cmNlID8gKHRoaXMuZXN0LlZpZXcgYXMgYW55KS5pdGVtczIgOiB0aGlzLmVzdC5UZXJ0aWFyeVNvdXJjZSA/ICh0aGlzLmVzdC5WaWV3IGFzIGFueSkuaXRlbXMzIDogKHRoaXMuZXN0LlZpZXcgYXMgYW55KS5pdGVtcztcclxuICAgICAgICAgICAgLy8gU2V0dG8gdmFyaWFiaWxlIGludGVybmEgcGVyIHNwZWNpZmljYXJlIGNoZSBxdWVzdG8gw6ggdW4gZWxlbWVudG8gbm9ybWFsZSwgbm9uIHVuIGdydXBwbyBvIGFsdHJvXHJcbiAgICAgICAgICAgIHJldC5mb3JFYWNoKGl0bSA9PiB7ICg8YW55Pml0bSkuX2l0ZW0gPSB0cnVlOyB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEdlbmVyYSBsZSBpbmZvcm1hemlvbmkgZGkgcGFnaW5hemlvbmUgZSB0YWdsaWEgbGEgVmlldyBpbiBtb2RhbGl0w6AgYXJyYXkgcGVyIG1vc3RyYXJlIHNvbG8gZ2xpIG9nZ2V0dGkgZGVsbGEgcGFnaW5hIHNwZWNpZmljYXRhICovXHJcbiAgICBwcml2YXRlIGFkYXB0Vmlld1RvUGFnaW5nKCkge1xyXG4gICAgICAgIGxldCB0bXBJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgICAgICAgLy8gU2UgaG8gdW5hIHNlYXJjaCB2aWV3IGwnYXJyYXkgcHVsc2FudGkgdmllbmUgY2FsY29sYXRvIGRhIGxlaSwgbm9uIGRldm8gcHJlbmRlcmUgcXVlbGxvIGRlbGxhIG1vZGFsaXTDoCBhcnJheVxyXG4gICAgICAgIGlmICghdGhpcy5lc3QuU2VhcmNoVmlldylcclxuICAgICAgICAgICAgdGhpcy5lc3QuYXJyYXlQdWxzYW50aSA9IHRoaXMudXRpbGl0aWVzLmdldFBhZ2VzQXJyYXkoNiwgdGhpcy5lc3QuYXJyYXltb2RlUGFnZSwgdGhpcy5lc3QuYXJyYXltb2RlUGFnZXMpO1xyXG5cclxuICAgICAgICAvLyBQb2kgcGVyIHR1dHRpIGkgdmFsb3JpIGRvcG8gY29tcHJlc2kgZnJhIGxhIHBhZ2luYSAtIDEgZSBsYSBwYWdpbmFcclxuICAgICAgICBmb3IgKGxldCBpID0gKCh0aGlzLmVzdC5hcnJheW1vZGVQYWdlIC0gMSkgKiB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2UpOyBpIDwgdGhpcy5lc3QuYXJyYXltb2RlUGFnZSAqIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChpIDw9ICh0aGlzLmVzdC5WaWV3IGFzIGFueVtdKS5sZW5ndGggLSAxKVxyXG4gICAgICAgICAgICAgICAgdG1wSXRlbXMucHVzaCgodGhpcy5lc3QuVmlldyBhcyBhbnlbXSlbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdG1wSXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRvZG8gY2hlIHByZW5kZSB0dXR0aSBnbGkgb2dnZXR0aSBkaSBjdWkgZGlzcG9uZSBkaXZpc2kgaW4gYnVja2V0IGRhIDEwMCBlbGVtZW50aVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHthbnlbXVtdfSBNYXRyaWNlIGRpIGFycmF5IE54MTAwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRJdGVtU2xpY2VzKCk6IGFueVtdW10ge1xyXG4gICAgICAgIC8vIFNlIHNvbm8gcXVpIGRpIHNpY3VybyBub24gaG8gcm93Z3JvdXBpbmdcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLmdldEl0ZW1zQnlNb2RlKCk7XHJcbiAgICAgICAgaWYgKCFpdGVtcylcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG5cclxuICAgICAgICBsZXQgYXJyYXlCeTEwMCA9IFtdO1xyXG4gICAgICAgIGxldCBzbGljZXMgPSBNYXRoLmNlaWwoaXRlbXMubGVuZ3RoIC8gdGhpcy5lc3QuU2xpY2VTaXplKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWNlczsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBhcnJheVNsaWNlID0gaXRlbXMuc2xpY2UoaSAqIHRoaXMuZXN0LlNsaWNlU2l6ZSwgaSAqIHRoaXMuZXN0LlNsaWNlU2l6ZSArIHRoaXMuZXN0LlNsaWNlU2l6ZSk7XHJcbiAgICAgICAgICAgIGFycmF5QnkxMDAucHVzaChhcnJheVNsaWNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGFycmF5QnkxMDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFNlIGluIG1vZGFsaXTDoCBhcnJheSBhcHBsaWNhIGdsaSBvcmRpbmFtZW50aSBBU0MtREVTQyBkZWxsZSBjb2xvbm5lICovXHJcbiAgICBwdWJsaWMgYXJyYXlNb2RlUmV2aWV3T3JkZXJpbmdzKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmVzdC5hcnJheU9yZGVycy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICB0aGlzLmVzdC5hcnJheU9yZGVycy5mb3JFYWNoKHQgPT4geyB0aGlzLmVzdC5ib3VuZFNvdXJjZSA9IHRoaXMuZXN0LmJvdW5kU291cmNlLnNvcnQoKGEsIGIpID0+IChhW3QuaWRdID4gYlt0LmlkXSA/IDEgOiAtMSkgKiAodC5vcmRlciA9PSAnREVTQycgPyAtMSA6IDEpKTsgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlbXNIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb3JlL2hhbmRsZXJzL2NsYXNzZXMvSXRlbXNIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLNUMsMkpBQTJKO0FBQzNKLE1BQU0sT0FBTyxZQUFZO0lBRXJCLDBCQUEwQjtJQUMxQixZQUFvQixHQUFxQixFQUFVLFNBQTJCO1FBQTFELFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBSSxDQUFDO0lBRW5GOzs7Ozs7OztPQVFHO0lBQ0ksY0FBYyxDQUFDLGVBQXdCLEtBQUssRUFBRSxnQkFBeUIsS0FBSyxFQUFFLGdCQUF5QixLQUFLO1FBQy9HLElBQUksS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksU0FBUyxDQUFDLEVBQUU7WUFDM0QsS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ3ZDO2FBQ0ksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRTtZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBELHFEQUFxRDtZQUNyRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBRS9DLCtGQUErRjtnQkFDL0YsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFDdkI7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QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4SyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb21wb25lbnRpXHJcbmltcG9ydCB7IEVzVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnRcIlxyXG5cclxuLy8gTW9kZWxsaVxyXG5pbXBvcnQgeyBBcHBTZWFyY2ggfSBmcm9tIFwiLi4vLi4vLi4vZG9tYWluXCI7XHJcblxyXG4vLyBVdGlsaXRpZXNcclxuaW1wb3J0IHsgVXRpbGl0aWVzSGFuZGxlciB9IGZyb20gXCIuL1V0aWxpdGllc0hhbmRsZXJcIjtcclxuXHJcbi8qKiBDbGFzc2UgY2hlIHNpIG9jY3VwYSBkZWxsYSBnZXN0aW9uZSBkZWwgcmVjdXBlcm8gZGVnbGkgb2dnZXR0aSwgcGFnaW5hemlvbmUgZSB0dXR0byBjacOyIGluIGN1aSBnbGkgZWxlbWVudGkgY2FyaWNhdGkgdmVuZ29ubyBtYW5pcG9sYXRpIGRpcmV0dGFtZW50ZSAqL1xyXG5leHBvcnQgY2xhc3MgSXRlbXNIYW5kbGVyIHtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlc3Q6IEVzVGFibGVDb21wb25lbnQsIHByaXZhdGUgdXRpbGl0aWVzOiBVdGlsaXRpZXNIYW5kbGVyKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluIGJhc2UgYWxsYSBtb2RhbGl0w6Agc3BlY2lmaWNhdGEgKEFycmF5TW9kZSwgVmlld01vZGUsIGVjYy4uLikgcXVlc3RvIG1ldG9kbyByZWN1cGVyYSBsJ2FycmF5IGRpIG9nZ2V0dGkgZGEgYmluZGFyZSBhZCBpbnRlcmZhY2NpYVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gb25seXNlbGVjdGVkIFtmYWxzZV0gSW5kaWNhIGRpIHByZW5kZXJlIHNvbG8gZ2xpIG9nZ2V0dGkgc2VsZXppb25hdGlcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVmcmVzaFBhZ2luZyBbZmFsc2VdIEluZGljYSBzZSBhZ2dpb3JuYXJlIGxlIGluZm9ybWF6aW9uaSBkaSBwYWdpbmF6aW9uZSBvIG1lbm9cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gYWxsSWZQb3NzaWJsZSBbZmFsc2VdIEluZGljYSBzZSBwcmVuZGVyZSB0dXR0aSBnbGkgb2dnZXR0aSBxdWFvcmEgcG9zc2liaWxlLCB1c2F0byBzb2xvIGluIEFycmF5TW9kZVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHthbnlbXX0gTGlzdGEgZGVnbGkgb2dnZXR0aSBzdSBjdWkgZWZmZXR0dWFyZSBpbCBiaW5kIGxhdG8gaW50ZXJmYWNjaWFcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEl0ZW1zQnlNb2RlKG9ubHlzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlLCByZWZyZXNoUGFnaW5nOiBib29sZWFuID0gZmFsc2UsIGFsbElmUG9zc2libGU6IGJvb2xlYW4gPSBmYWxzZSk6IGFueVtdIHtcclxuICAgICAgICBsZXQgaXRlbXM6IGFueVtdID0gW107XHJcblxyXG4gICAgICAgIGlmICgodGhpcy5lc3Qudmlld01vZGUgJiYgdGhpcy5lc3QuVmlldyBpbnN0YW5jZW9mIEFwcFNlYXJjaCkpIHtcclxuICAgICAgICAgICAgaXRlbXMgPSB0aGlzLmdldFZpZXdJdGVtc0J5U291cmNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZXN0LmFycmF5TW9kZSkge1xyXG4gICAgICAgICAgICB0aGlzLmVzdC5WaWV3LmZvckVhY2goaXRtID0+IHsgaXRtLl9pdGVtID0gdHJ1ZTsgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBTZSBmYWNjaW8gZGVpIHJhZ2dydXBwYW1lbnRpIGlnbm9ybyBsYSBwYWdpbmF6aW9uZVxyXG4gICAgICAgICAgICBpZiAodGhpcy5lc3QuVXNlQXJyYXlNb2RlUGFnaW5nICYmICFhbGxJZlBvc3NpYmxlKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gU2Ugc29ubyBpbiBtb2RhbGl0w6AgYXJyYXkgbWEgbGEgcmljZXJjYSBkaXBlbmRlIGRhIHVuYSB2aWV3IGRldm8gcmlhbGxpbmVhcmUgZ2xpIGl0ZW1wZXJwYWdlXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5lc3QuU2VhcmNoVmlldylcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2UgPSB0aGlzLmVzdC5TZWFyY2hWaWV3Lml0ZW1zcGVycGFnZW92ZXJyaWRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2UgPSB0aGlzLmVzdC5TZWFyY2hWaWV3LnBhZ2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lc3QuYXJyYXltb2RlUGFnZXMgPSB0aGlzLmVzdC5TZWFyY2hWaWV3LnBhZ2VzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gRGV2byBjaGlhbWFyZSBpbCByZWZyZXNoIHBhZ2Ugc29sbyBzZSB2ZW5nbyByaWNoaWFtYXRvIGRhIHVuIGJpbmRpbmcgZXN0ZXJub1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmcmVzaFBhZ2luZylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hQYWdpbmcodGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpdGVtcyA9IHRoaXMuYWRhcHRWaWV3VG9QYWdpbmcoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5lc3QuVmlldyBhcyBhbnlbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2Ugdm9nbGlvIHNvbG8gaSBzZWxlemlvbmF0aSBmaWx0cm9cclxuICAgICAgICBpZiAob25seXNlbGVjdGVkKVxyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKHQgPT4gdC5fc2VsZWN0ZWQpO1xyXG5cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRvZG8gcGVyIGVmZmV0dHVhcmUgaWwgcmVmcmVzaCBkZWxsYSBwYWdpbmF6aW9uZSBzdWwgY2FtYmlhbWVudG8gZGVnbGkgb2dnZXR0aSBkYSB2aXN1YWxpenphcmUgaW4gdW5hIHNpbmdvbGEgcGFnaW5hLlxyXG4gICAgICpcclxuICAgICAqIFZhbGUgc29sbyBwZXIgbGEgbW9kYWxpdMOgIEFycmF5XHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHBhZ2VTaXplIERpbWVuc2lvbmUgZGVsbGEgcGFnaW5hXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWZyZXNoUGFnaW5nKHBhZ2VTaXplOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2UgPSBwYWdlU2l6ZTtcclxuICAgICAgICB0aGlzLmVzdC5hcnJheW1vZGVQYWdlcyA9IE1hdGguY2VpbCgodGhpcy5lc3QuVmlldyBhcyBhbnlbXSkubGVuZ3RoIC8gdGhpcy5lc3QuQXJyYXltb2RlSXRlbXNQZXJQYWdlKTtcclxuICAgICAgICB0aGlzLmVzdC5hcnJheW1vZGVQYWdlID0gMTtcclxuXHJcbiAgICAgICAgLy8gUmlmb3J6byBpbCB3cml0ZXZhbHVlIGluIG1vZG8gY2hlIGlsIGNvZGljZSBwYXNzaSBkYWxsYSBnZXN0aW9uZSBjb21lIHNlIGZvc3NlIGZhdHRhIHJpcGFydGlyZSB1bmEgcmljZXJjYVxyXG4gICAgICAgIHRoaXMuZXN0LmludGVybmFsV3JpdGVWYWx1ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBnbGkgb2dnZXR0aSBpbiBiYXNlIGFsbGEgc29yZ2VudGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRWaWV3SXRlbXNCeVNvdXJjZSgpOiBhbnlbXSB7XHJcbiAgICAgICAgbGV0IGNhc3RlZFZpZXcgPSB0aGlzLmVzdC5WaWV3IGFzIEFwcFNlYXJjaDxhbnk+O1xyXG4gICAgICAgIGxldCBncm91cEtleXMgPSBjYXN0ZWRWaWV3Lmdyb3VwaW5ncyA/IGNhc3RlZFZpZXcuZ3JvdXBpbmdzLmZpbHRlcih0ID0+ICF0LmFnZ3JlZ2F0aW9uKS5sZW5ndGggOiAwO1xyXG5cclxuICAgICAgICAvL0dydXBwaSBpbnRlcm1lZGlcclxuICAgICAgICBpZiAoKGNhc3RlZFZpZXcucmVxdWVzdGVkZ3JvdXBzPy5sZW5ndGggIT0gZ3JvdXBLZXlzIHx8IGNhc3RlZFZpZXcucmVxdWVzdGVkZ3JvdXBzPy5sZW5ndGggPT0gMCkgJiYgZ3JvdXBLZXlzID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgcmV0ID0gY2FzdGVkVmlldy5ncm91cHM7XHJcbiAgICAgICAgICAgIHJldC5mb3JFYWNoKGl0bSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gU2V0dG8gdmFyaWFiaWxlIGludGVybmEgcGVyIGNhcGlyZSBjaGUgcXVlc3RvIMOoIGluIHJlYWx0w6AgdW4gZ3J1cHBvXHJcbiAgICAgICAgICAgICAgICAoPGFueT5pdG0pLl9ncm91cCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gTGUgaW5mb3JtYXppb25pIHBhc3NhdGUgY29tZSBsaXN0YSBsZSBtZXR0byBkZW50cm8gYSB1bmEgY2FjaGUgcGVyIHZlbG9jaXp6YXJuZSBsJ2FjY2Vzc28gcXVhbmRvIGRldm8gdGlyYXJlIGZ1b3JpIGlsIGRpc3BsYXkgZGVsbGEgcHJvcHJpZXTDoFxyXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsaXRpZXMuY2FjaGVBZ2dyZWdhdGlvbnMoaXRtKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgcmV0ID0gdGhpcy5lc3QuU2Vjb25kYXJ5U291cmNlID8gKHRoaXMuZXN0LlZpZXcgYXMgYW55KS5pdGVtczIgOiB0aGlzLmVzdC5UZXJ0aWFyeVNvdXJjZSA/ICh0aGlzLmVzdC5WaWV3IGFzIGFueSkuaXRlbXMzIDogKHRoaXMuZXN0LlZpZXcgYXMgYW55KS5pdGVtcztcclxuICAgICAgICAgICAgaWYgKCFyZXQpIHJldCA9IFtdO1xyXG4gICAgICAgICAgICAvLyBTZXR0byB2YXJpYWJpbGUgaW50ZXJuYSBwZXIgc3BlY2lmaWNhcmUgY2hlIHF1ZXN0byDDqCB1biBlbGVtZW50byBub3JtYWxlLCBub24gdW4gZ3J1cHBvIG8gYWx0cm9cclxuICAgICAgICAgICAgcmV0LmZvckVhY2goaXRtID0+IHsgKDxhbnk+aXRtKS5faXRlbSA9IHRydWU7IH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogR2VuZXJhIGxlIGluZm9ybWF6aW9uaSBkaSBwYWdpbmF6aW9uZSBlIHRhZ2xpYSBsYSBWaWV3IGluIG1vZGFsaXTDoCBhcnJheSBwZXIgbW9zdHJhcmUgc29sbyBnbGkgb2dnZXR0aSBkZWxsYSBwYWdpbmEgc3BlY2lmaWNhdGEgKi9cclxuICAgIHByaXZhdGUgYWRhcHRWaWV3VG9QYWdpbmcoKSB7XHJcbiAgICAgICAgbGV0IHRtcEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICAvLyBTZSBobyB1bmEgc2VhcmNoIHZpZXcgbCdhcnJheSBwdWxzYW50aSB2aWVuZSBjYWxjb2xhdG8gZGEgbGVpLCBub24gZGV2byBwcmVuZGVyZSBxdWVsbG8gZGVsbGEgbW9kYWxpdMOgIGFycmF5LFxyXG4gICAgICAgIC8vIGlub2x0cmUgbm9uIGhvIGJpc29nbm8gZGkgZmFyZSByYWdpb25hbWVudGkgc3UgcXVhbnRpIGVsZW1lbnRpIGNpIHNvbm8gZSBzdWxsYSBwYWdpbmEsIGRhdG8gY2hlIHZpZW5lIHR1dHRvIGdlc3RpdG8gZXN0ZXJuYW1lbnRlLCBcclxuICAgICAgICAvLyB1bmVuZG8gYWwgcmlzdWx0YXRvIGRlbGxhIHZpZXcgdHV0dGkgZ2xpIG9nZ2V0dGkgYWRkaXppb25hbGlcclxuICAgICAgICBpZiAoIXRoaXMuZXN0LlNlYXJjaFZpZXcpXHJcbiAgICAgICAgICAgIHRoaXMuZXN0LmFycmF5UHVsc2FudGkgPSB0aGlzLnV0aWxpdGllcy5nZXRQYWdlc0FycmF5KDYsIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2UsIHRoaXMuZXN0LmFycmF5bW9kZVBhZ2VzKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVzdC5WaWV3IGFzIGFueVtdO1xyXG5cclxuICAgICAgICAvLyBQb2kgcGVyIHR1dHRpIGkgdmFsb3JpIGRvcG8gY29tcHJlc2kgZnJhIGxhIHBhZ2luYSAtIDEgZSBsYSBwYWdpbmFcclxuICAgICAgICBmb3IgKGxldCBpID0gKCh0aGlzLmVzdC5hcnJheW1vZGVQYWdlIC0gMSkgKiB0aGlzLmVzdC5BcnJheW1vZGVJdGVtc1BlclBhZ2UpOyBpIDwgdGhpcy5lc3QuYXJyYXltb2RlUGFnZSAqIHRoaXMuZXN0LkFycmF5bW9kZUl0ZW1zUGVyUGFnZTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChpIDw9ICh0aGlzLmVzdC5WaWV3IGFzIGFueVtdKS5sZW5ndGggLSAxKVxyXG4gICAgICAgICAgICAgICAgdG1wSXRlbXMucHVzaCgodGhpcy5lc3QuVmlldyBhcyBhbnlbXSlbaV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRtcEl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIGNoZSBwcmVuZGUgdHV0dGkgZ2xpIG9nZ2V0dGkgZGkgY3VpIGRpc3BvbmUgZGl2aXNpIGluIGJ1Y2tldCBkYSAxMDAgZWxlbWVudGlcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7YW55W11bXX0gTWF0cmljZSBkaSBhcnJheSBOeDEwMFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0SXRlbVNsaWNlcygpOiBhbnlbXVtdIHtcclxuICAgICAgICAvLyBTZSBzb25vIHF1aSBkaSBzaWN1cm8gbm9uIGhvIHJvd2dyb3VwaW5nXHJcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5nZXRJdGVtc0J5TW9kZSgpO1xyXG4gICAgICAgIGlmICghaXRlbXMpXHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuXHJcbiAgICAgICAgbGV0IGFycmF5QnkxMDAgPSBbXTtcclxuICAgICAgICBsZXQgc2xpY2VzID0gTWF0aC5jZWlsKGl0ZW1zLmxlbmd0aCAvIHRoaXMuZXN0LlNsaWNlU2l6ZSk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZXM7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYXJyYXlTbGljZSA9IGl0ZW1zLnNsaWNlKGkgKiB0aGlzLmVzdC5TbGljZVNpemUsIGkgKiB0aGlzLmVzdC5TbGljZVNpemUgKyB0aGlzLmVzdC5TbGljZVNpemUpO1xyXG4gICAgICAgICAgICBhcnJheUJ5MTAwLnB1c2goYXJyYXlTbGljZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnJheUJ5MTAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBTZSBpbiBtb2RhbGl0w6AgYXJyYXkgYXBwbGljYSBnbGkgb3JkaW5hbWVudGkgQVNDLURFU0MgZGVsbGUgY29sb25uZSAqL1xyXG4gICAgcHVibGljIGFycmF5TW9kZVJldmlld09yZGVyaW5ncygpIHtcclxuICAgICAgICBpZiAodGhpcy5lc3QuYXJyYXlPcmRlcnMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgdGhpcy5lc3QuYXJyYXlPcmRlcnMuZm9yRWFjaCh0ID0+IHsgdGhpcy5lc3QuYm91bmRTb3VyY2UgPSB0aGlzLmVzdC5ib3VuZFNvdXJjZS5zb3J0KChhLCBiKSA9PiAoYVt0LmlkXSA+IGJbdC5pZF0gPyAxIDogLTEpICogKHQub3JkZXIgPT0gJ0RFU0MnID8gLTEgOiAxKSk7IH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==