@esfaenza/core 15.2.166 → 15.2.168

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.
@@ -9,6 +9,8 @@ export declare class RedirecterComponent {
9
9
  private redirectMap;
10
10
  private emb;
11
11
  Error: string;
12
+ tenant: string;
13
+ private wrongTenant;
12
14
  constructor(_state: AppState, route: ActivatedRoute, router: Router, redirectMap: {
13
15
  [index: string]: {
14
16
  url: string;
@@ -7,7 +7,6 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@esfaenza/core/services";
8
8
  import * as i2 from "@angular/router";
9
9
  import * as i3 from "@esfaenza/extensions";
10
- // TODO: loc.ts
11
10
  export class RedirecterComponent {
12
11
  constructor(_state, route, router, redirectMap, emb) {
13
12
  this._state = _state;
@@ -16,28 +15,39 @@ export class RedirecterComponent {
16
15
  this.redirectMap = redirectMap;
17
16
  this.emb = emb;
18
17
  this.Error = "";
18
+ this.wrongTenant = false;
19
+ this.tenant = route.snapshot.params["tenant"];
20
+ if (this.tenant && this._state.getJaceIDentity().Idtenant != this.tenant) {
21
+ console.error("tenant mismatch in redirector");
22
+ this.router.navigate(["login"]);
23
+ this.wrongTenant = true;
24
+ }
19
25
  }
20
26
  ngOnInit() {
27
+ if (this.wrongTenant)
28
+ return;
21
29
  let url = this.route.snapshot.params["url"];
22
30
  //§ = 167... non so perché ma scrivendolo esplicitamente non funziona
23
- let parts = url.split(String.fromCharCode(167)).filter(s => !!s);
31
+ let parts = url.includes(String.fromCharCode(167)) ? url.split(String.fromCharCode(167)).filter(s => !!s) : url.split('+').filter(s => !!s);
24
32
  if (parts.length < 2) {
25
33
  this.Error = "L'url passato è incompleto. Impossibile riconoscerlo";
26
34
  return;
27
35
  }
28
36
  else {
29
- var redirect = this.redirectMap[parts[0]];
30
- if (!redirect) {
37
+ var redirectItem = this.redirectMap[parts[0]];
38
+ if (!redirectItem) {
31
39
  this.Error = "L'url passato fa riferimento a un oggetto non navigabile. Impossibile procedere";
32
40
  return;
33
41
  }
34
- if (redirect.params.length != parts.length - 1) {
42
+ if (redirectItem.params.length != parts.length - 1) {
35
43
  this.Error = "Il numero di parametri richiesti per navigare all'entità richiesta è diverso dal numero di parametri passato";
36
44
  return;
37
45
  }
46
+ let url = (this.emb.Embedded ? "pages_ext/" : "pages/") + redirectItem.url;
38
47
  let parObject = {};
39
- redirect.params.forEach((t, i) => parObject[t] = parts[i + 1]);
40
- this.router.navigate([(this.emb.Embedded ? "pages_ext/" : "pages/") + redirect.url, parObject]);
48
+ redirectItem.params.forEach((t, i) => parObject[t] = parts[i + 1]);
49
+ console.log(`Navigating to ${url} with the current parameters: ${JSON.stringify(parObject)}`);
50
+ this.router.navigate([url, parObject]);
41
51
  }
42
52
  }
43
53
  }
@@ -52,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
52
62
  type: Inject,
53
63
  args: [REDIRECT_MAP]
54
64
  }] }, { type: i3.AppEmbeddingExtensions }]; } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3JlZGlyZWN0ZXIvcmVkaXJlY3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3JlZGlyZWN0ZXIvcmVkaXJlY3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU12QyxlQUFlO0FBQ2YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQUVyRCxlQUFlO0FBUWYsTUFBTSxPQUFPLG1CQUFtQjtJQUk1QixZQUFtQixNQUFnQixFQUFVLEtBQXFCLEVBQVMsTUFBYyxFQUE0QyxXQUFtRSxFQUFVLEdBQTJCO1FBQTFOLFdBQU0sR0FBTixNQUFNLENBQVU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBNEMsZ0JBQVcsR0FBWCxXQUFXLENBQXdEO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFGdE8sVUFBSyxHQUFXLEVBQUUsQ0FBQztJQUV1TixDQUFDO0lBRWxQLFFBQVE7UUFDSixJQUFJLEdBQUcsR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQscUVBQXFFO1FBQ3JFLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsc0RBQXNELENBQUM7WUFDcEUsT0FBTztTQUNWO2FBQ0k7WUFDRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxpRkFBaUYsQ0FBQztnQkFDL0YsT0FBTzthQUNWO1lBRUQsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyw4R0FBOEcsQ0FBQztnQkFDNUgsT0FBTzthQUNWO1lBRUQsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ25CLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ25HO0lBQ0wsQ0FBQzs7Z0hBL0JRLG1CQUFtQiw4RkFJbUYsWUFBWTtvR0FKbEgsbUJBQW1CLHNFQ3BCaEMsc0NBQWtDLDRDRGtCcEIsSUFBSTsyRkFFTCxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0ksWUFBWSxpQkFDUCxpQkFBaUIsQ0FBQyxJQUFJLGNBRXpCLElBQUksV0FDUCxDQUFDLElBQUksQ0FBQzs7MEJBTTZFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBBcHBTdGF0ZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBBcHBFbWJlZGRpbmdFeHRlbnNpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgUkVESVJFQ1RfTUFQIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5cclxuLy8gVE9ETzogbG9jLnRzXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwicmVkaXJlY3RlclwiLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vcmVkaXJlY3Rlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtOZ0lmXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RlckNvbXBvbmVudCB7XHJcblxyXG4gICAgcHVibGljIEVycm9yOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBfc3RhdGU6IEFwcFN0YXRlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHVibGljIHJvdXRlcjogUm91dGVyLCBAT3B0aW9uYWwoKSBASW5qZWN0KFJFRElSRUNUX01BUCkgcHJpdmF0ZSByZWRpcmVjdE1hcDogeyBbaW5kZXg6IHN0cmluZ106IHsgdXJsOiBzdHJpbmcsIHBhcmFtczogc3RyaW5nW10gfSB9LCBwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucykgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgbGV0IHVybDogc3RyaW5nID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJ1cmxcIl07XHJcbiAgICAgICAgLy/CpyA9IDE2Ny4uLiBub24gc28gcGVyY2jDqSBtYSBzY3JpdmVuZG9sbyBlc3BsaWNpdGFtZW50ZSBub24gZnVuemlvbmFcclxuICAgICAgICBsZXQgcGFydHMgPSB1cmwuc3BsaXQoU3RyaW5nLmZyb21DaGFyQ29kZSgxNjcpKS5maWx0ZXIocyA9PiAhIXMpO1xyXG5cclxuICAgICAgICBpZiAocGFydHMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgICB0aGlzLkVycm9yID0gXCJMJ3VybCBwYXNzYXRvIMOoIGluY29tcGxldG8uIEltcG9zc2liaWxlIHJpY29ub3NjZXJsb1wiO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YXIgcmVkaXJlY3QgPSB0aGlzLnJlZGlyZWN0TWFwW3BhcnRzWzBdXTtcclxuICAgICAgICAgICAgaWYgKCFyZWRpcmVjdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5FcnJvciA9IFwiTCd1cmwgcGFzc2F0byBmYSByaWZlcmltZW50byBhIHVuIG9nZ2V0dG8gbm9uIG5hdmlnYWJpbGUuIEltcG9zc2liaWxlIHByb2NlZGVyZVwiO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVkaXJlY3QucGFyYW1zLmxlbmd0aCAhPSBwYXJ0cy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkVycm9yID0gXCJJbCBudW1lcm8gZGkgcGFyYW1ldHJpIHJpY2hpZXN0aSBwZXIgbmF2aWdhcmUgYWxsJ2VudGl0w6AgcmljaGllc3RhIMOoIGRpdmVyc28gZGFsIG51bWVybyBkaSBwYXJhbWV0cmkgcGFzc2F0b1wiO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgcGFyT2JqZWN0ID0ge307XHJcbiAgICAgICAgICAgIHJlZGlyZWN0LnBhcmFtcy5mb3JFYWNoKCh0LCBpKSA9PiBwYXJPYmplY3RbdF0gPSBwYXJ0c1tpICsgMV0pO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbKHRoaXMuZW1iLkVtYmVkZGVkID8gXCJwYWdlc19leHQvXCIgOiBcInBhZ2VzL1wiKSArIHJlZGlyZWN0LnVybCwgcGFyT2JqZWN0XSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiPGRpdiAqbmdJZj1cIkVycm9yXCI+e3tFcnJvcn19PC9kaXY+Il19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3JlZGlyZWN0ZXIvcmVkaXJlY3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3JlZGlyZWN0ZXIvcmVkaXJlY3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU12QyxlQUFlO0FBQ2YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVNyRCxNQUFNLE9BQU8sbUJBQW1CO0lBTTVCLFlBQW1CLE1BQWdCLEVBQVUsS0FBcUIsRUFBUyxNQUFjLEVBQTRDLFdBQW1FLEVBQVUsR0FBMkI7UUFBMU4sV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUE0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBd0Q7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUp0TyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRWxCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdEUsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsV0FBVztZQUNoQixPQUFPO1FBRVgsSUFBSSxHQUFHLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELHFFQUFxRTtRQUNyRSxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1SSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsc0RBQXNELENBQUM7WUFDcEUsT0FBTztTQUNWO2FBQ0k7WUFDRCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxpRkFBaUYsQ0FBQztnQkFDL0YsT0FBTzthQUNWO1lBRUQsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyw4R0FBOEcsQ0FBQztnQkFDNUgsT0FBTzthQUNWO1lBRUQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDO1lBQzNFLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNuQixZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxpQ0FBaUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDN0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUMxQztJQUNMLENBQUM7O2dIQS9DUSxtQkFBbUIsOEZBTW1GLFlBQVk7b0dBTmxILG1CQUFtQixzRUNuQmhDLHNDQUFrQyw0Q0RpQnBCLElBQUk7MkZBRUwsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLFlBQVksaUJBQ1AsaUJBQWlCLENBQUMsSUFBSSxjQUV6QixJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUM7OzBCQVE2RSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQXBwU3RhdGUgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuaW1wb3J0IHsgQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucyB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IFJFRElSRUNUX01BUCB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwicmVkaXJlY3RlclwiLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vcmVkaXJlY3Rlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtOZ0lmXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RlckNvbXBvbmVudCB7XHJcblxyXG4gICAgcHVibGljIEVycm9yOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgcHVibGljIHRlbmFudDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSB3cm9uZ1RlbmFudCA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBfc3RhdGU6IEFwcFN0YXRlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHVibGljIHJvdXRlcjogUm91dGVyLCBAT3B0aW9uYWwoKSBASW5qZWN0KFJFRElSRUNUX01BUCkgcHJpdmF0ZSByZWRpcmVjdE1hcDogeyBbaW5kZXg6IHN0cmluZ106IHsgdXJsOiBzdHJpbmcsIHBhcmFtczogc3RyaW5nW10gfSB9LCBwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucykge1xyXG4gICAgICAgIHRoaXMudGVuYW50ID0gcm91dGUuc25hcHNob3QucGFyYW1zW1widGVuYW50XCJdO1xyXG5cclxuICAgICAgICBpZiAodGhpcy50ZW5hbnQgJiYgdGhpcy5fc3RhdGUuZ2V0SmFjZUlEZW50aXR5KCkuSWR0ZW5hbnQgIT0gdGhpcy50ZW5hbnQpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcInRlbmFudCBtaXNtYXRjaCBpbiByZWRpcmVjdG9yXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJsb2dpblwiXSk7XHJcbiAgICAgICAgICAgIHRoaXMud3JvbmdUZW5hbnQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBpZiAodGhpcy53cm9uZ1RlbmFudClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1tcInVybFwiXTtcclxuICAgICAgICAvL8KnID0gMTY3Li4uIG5vbiBzbyBwZXJjaMOpIG1hIHNjcml2ZW5kb2xvIGVzcGxpY2l0YW1lbnRlIG5vbiBmdW56aW9uYVxyXG4gICAgICAgIGxldCBwYXJ0cyA9IHVybC5pbmNsdWRlcyhTdHJpbmcuZnJvbUNoYXJDb2RlKDE2NykpID8gdXJsLnNwbGl0KFN0cmluZy5mcm9tQ2hhckNvZGUoMTY3KSkuZmlsdGVyKHMgPT4gISFzKSA6IHVybC5zcGxpdCgnKycpLmZpbHRlcihzID0+ICEhcyk7XHJcblxyXG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRXJyb3IgPSBcIkwndXJsIHBhc3NhdG8gw6ggaW5jb21wbGV0by4gSW1wb3NzaWJpbGUgcmljb25vc2NlcmxvXCI7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciByZWRpcmVjdEl0ZW0gPSB0aGlzLnJlZGlyZWN0TWFwW3BhcnRzWzBdXTtcclxuICAgICAgICAgICAgaWYgKCFyZWRpcmVjdEl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuRXJyb3IgPSBcIkwndXJsIHBhc3NhdG8gZmEgcmlmZXJpbWVudG8gYSB1biBvZ2dldHRvIG5vbiBuYXZpZ2FiaWxlLiBJbXBvc3NpYmlsZSBwcm9jZWRlcmVcIjtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlZGlyZWN0SXRlbS5wYXJhbXMubGVuZ3RoICE9IHBhcnRzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuRXJyb3IgPSBcIklsIG51bWVybyBkaSBwYXJhbWV0cmkgcmljaGllc3RpIHBlciBuYXZpZ2FyZSBhbGwnZW50aXTDoCByaWNoaWVzdGEgw6ggZGl2ZXJzbyBkYWwgbnVtZXJvIGRpIHBhcmFtZXRyaSBwYXNzYXRvXCI7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCB1cmwgPSAodGhpcy5lbWIuRW1iZWRkZWQgPyBcInBhZ2VzX2V4dC9cIiA6IFwicGFnZXMvXCIpICsgcmVkaXJlY3RJdGVtLnVybDtcclxuICAgICAgICAgICAgbGV0IHBhck9iamVjdCA9IHt9O1xyXG4gICAgICAgICAgICByZWRpcmVjdEl0ZW0ucGFyYW1zLmZvckVhY2goKHQsIGkpID0+IHBhck9iamVjdFt0XSA9IHBhcnRzW2kgKyAxXSk7XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgTmF2aWdhdGluZyB0byAke3VybH0gd2l0aCB0aGUgY3VycmVudCBwYXJhbWV0ZXJzOiAke0pTT04uc3RyaW5naWZ5KHBhck9iamVjdCl9YClcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybCwgcGFyT2JqZWN0XSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiPGRpdiAqbmdJZj1cIkVycm9yXCI+e3tFcnJvcn19PC9kaXY+Il19