dts-backoffice-util 15.0.0 → 15.2.0

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.
package/README.md CHANGED
@@ -12,7 +12,7 @@ Segue abaixo as últimas versões da Biblioteca, conforme a versão do PO-UI e A
12
12
 
13
13
  | PO-UI | Angular | Versão dtsBackofficeUtil |
14
14
  |-|-| -|
15
- | v15 | v15 | 15.0.0 |
15
+ | v15 | v15 | 15.2.0 |
16
16
  | v14 | v14 | 14.4.1 |
17
17
  | v6 | v13 | 6.0.2 |
18
18
  | v5 | v12 | 5.0.1 |
@@ -104,7 +104,8 @@ Métodos:
104
104
  | Nome | Descrição |
105
105
  |-|-|
106
106
  | callProgress | Executa uma tela Progress que esteja cadastrada no menu.<br>**Importante:** Este método realiza uma integração direta com o Menu do Datasul (parte HTML do Menu). Portanto, ele somente funciona quando o projeto está sendo executado por dentro do Menu do Datasul.<br>**Parâmetros:**<br>- program (object): Objeto com os seguintes atributos:<br>prg (string): Nome do programa no menu.<br>params (Array(object)): Array de Objetos de Parâmetros. O objeto possui dois atributos: "type" com o tipo de dado (character, integer, logical, etc...). E "value" com o conteúdo.<br>**Retorno:** Não há. |
107
- | openPath | Executa uma tela PO-UI que esteja cadastrada no menu.<br>**Importante:** Este método realiza uma integração direta com o Menu do Datasul (parte HTML do Menu). Portanto, ele somente funciona quando o projeto está sendo executado por dentro do Menu do Datasul.<br>**Parâmetros:**<br>- programName (string): Nome interno do Programa, no cadastro de menu.<br>- params (string): Parâmetros que serão adicionados na URL.<br>- parent (boolean): Indica se a tela deve abrir na mesma Aba do Navegador (valor: **true**) ou em outra Aba do Navegador (valor: **false**). **Obs:** Quando a tela abrir na mesma Aba do Navegador, irá abrir em outra Aba do Menu do Datasul.<br>**Retorno:** Não há. |
107
+ | openTHF | Executa uma tela construídas em THF1 que esteja cadastrada no menu.<br>**Importante:** Este método realiza uma integração direta com o Menu do Datasul (parte HTML do Menu). Portanto, ele somente funciona quando o projeto está sendo executado por dentro do Menu do Datasul.<br>**Parâmetros:**<br>- externalName (string): Nome EXTERNO do Programa, cadastro de menu.<br>- params (string): Parâmetros que serão adicionados na URL.<br>- parent (boolean): Indica se a tela deve abrir na mesma Aba do Navegador (valor: **true**) ou em outra Aba do Navegador (valor: **false**). **Obs:** Quando a tela abrir na mesma Aba do Navegador, irá abrir em outra Aba do Menu do Datasul.<br>**Retorno:** Não há. |
108
+ | openPath | Executa uma tela PO-UI que esteja cadastrada no menu.<br>**Importante:** Este método realiza uma integração direta com o Menu do Datasul (parte HTML do Menu). Portanto, ele somente funciona quando o projeto está sendo executado por dentro do Menu do Datasul.<br>**Parâmetros:**<br>- programName (string): Nome INTERNO do Programa, código do programa cadastro de menu.<br>- params (string): Parâmetros que serão adicionados na URL.<br>- parent (boolean): Indica se a tela deve abrir na mesma Aba do Navegador (valor: **true**) ou em outra Aba do Navegador (valor: **false**). **Obs:** Quando a tela abrir na mesma Aba do Navegador, irá abrir em outra Aba do Menu do Datasul.<br>**Retorno:** Não há. |
108
109
  | sendNotification | Apresenta uma notificação ao usuário.<br>**Importante:** Este método realiza uma integração direta com o Menu do Datasul (parte HTML do Menu). Portanto, ele somente funciona quando o projeto está sendo executado por dentro do Menu do Datasul.<br>**Parâmetros:**<br>- notification (object): Objeto com os seguintes atributos:<br>type (string): Tipo de notificação (success, warning, error).<br>title (string): Título da Notificação.<br>detail (string): Descrição da Notificação.<br>**Retorno:** Não há. |
109
110
  | programSecurity | Verifica a Segurança do Menu, identificando se o usuário corrente possui acesso a um ou mais programas.<br>**Parâmetros:**<br>- programName (string ou Array): Nome do Programa cadastro no Menu, que se deseja consultar a segurança. Podendo ser informado uma string simples com o Nome do Programa, ou um Array de strings com a lista de Programas.<br>**Retorno:** response (Observable(Array)): Array com as informações dos Programas pesquisados. O objeto contido no Array terá dois atributos:<br>programName (string): Nome do Programa no Menu.<br>hasAccess (boolean): Valor "TRUE" ou "FALSE", indicando se o usuário tem acesso ao programa. **Obs:** Se o programa não estiver cadastro no Menu, o retorno deste atributo será "FALSE". |
110
111
  ---
@@ -121,8 +122,11 @@ program = {
121
122
  };
122
123
  this.menuDatasulService.callProgress(program);
123
124
 
124
- // Executando uma Tela HTML
125
- this.menuDatasulService.openPath('html.inquiryItem', '1509;10;1', true);
125
+ // Executando uma Tela THF1
126
+ this.menuDatasulService.openTHF('dts/mab/activities', '', true);
127
+
128
+ // Executando uma Tela PO-UI
129
+ this.menuDatasulService.openPath('html.creditCardOperator', '1509;10;1', true);
126
130
 
127
131
  // Disparando uma Notificação
128
132
  notification = {
@@ -703,6 +707,7 @@ Métodos:
703
707
  | downloadFile | Realiza o Download de um arquivo que foi enviado do backEnd.<br>**Parâmetros:**<br>- data (any): Conteúdo do Arquivo, podendo estar no formato Base64 ou Blob.<br>- fileName (string): Nome do Arquivo, podendo ser diferente do nome original. O valor informado, será o nome que o arquivo terá, quando for realizado o download.<br>- contentType (string): Tipo do Arquivo no formato [**MIME Type**](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types). Este parâmetro é opcional, mas quando não informado, deve-se garantir que a extensão do arquivo, informado no nome do arquivo, esteja correta.<br>- base64 (boolean): Indica se o conteúdo do arquivo está no formato Base64. Se o parâmetro não for informado ou for igual a **"true"**, será considerado como Base64. Se for informado **"false"**, será considerado o formato Blob.<br>**Retorno:** não há. |
704
708
  | downloadData | Realiza a criação e o download de um arquivo CSV gerado a partir de um listagem de dados (criada diretamente no FrontEnd ou retornada do BackEnd). Este método pode ser utilizado para, por exemplo, exportar os dados de um Grid.<br>**Parâmetros:**<br>- data (Array): Um Array com a listagem de dados, por exemplo, uma lista de clientes.<br>- dwldDataParam (IDownloadDataParams): Parâmetros de configuração do arquivo. Este parâmetro é opcional, caso ele não seja informado, serão assumidos valores padrões de configuração, conforme descrito na inteface **IDownloadDataParams**.<br>**Retorno:** não há. |
705
709
  | fileToB64 | Realiza a conversão de um arquivo para o formato Base64.<br>**Parâmetros:**<br>- file (File): Objeto do Tipo "File".<br>**Retorno:**<br>- content (string): Conteúdo do arquivo no formato Base64. |
710
+ | b64toBlob | Realiza a conversão de um arquivo que está no formato Base64, para o formato Blob.<br>**Parâmetros:**<br>- b64Data (any): Conteúdo do Arquivo no formato Base64.<br>- contentType (string): Tipo do Arquivo no formato [**MIME Type**](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types). Este parâmetro é opcional.<br>**Retorno:**<br>- content (Blob): Conteúdo do arquivo no formato Blob. |
706
711
 
707
712
  ---
708
713
 
@@ -28,6 +28,14 @@ export class MenuDatasulService {
28
28
  openPath(programName, params, parent = true) {
29
29
  const datasulPath = document.referrer.indexOf('totvs-menu') > 0 ? 'totvs-menu' : 'menu-html';
30
30
  let baseUrl = `/${datasulPath}/#/${datasulPath}/program-html/${programName}/#`;
31
+ this.openHTMLProgram(baseUrl, params, parent);
32
+ }
33
+ openTHF(externalName, params, parent = true) {
34
+ const datasulPath = document.referrer.indexOf('totvs-menu') > 0 ? 'totvs-menu' : 'menu-html';
35
+ let baseUrl = `/${datasulPath}/#/${externalName}/#`;
36
+ this.openHTMLProgram(baseUrl, params, parent);
37
+ }
38
+ openHTMLProgram(baseUrl, params, parent) {
31
39
  if (params) {
32
40
  baseUrl = `${baseUrl}/${params}`;
33
41
  }
@@ -93,4 +101,4 @@ export class MenuDatasulService {
93
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: MenuDatasulService, decorators: [{
94
102
  type: Injectable
95
103
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kYXRhc3VsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvc2VydmljZXMvbWVudS1kYXRhc3VsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHMUIsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRjVCLG9CQUFlLEdBQUcsMERBQTBELENBQUM7SUFFN0MsQ0FBQztJQUV6Qzs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLE9BQU87UUFDdkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGdCQUFnQixDQUFDLFlBQVk7UUFDaEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxRQUFRLENBQUMsV0FBbUIsRUFBRSxNQUFXLEVBQUUsTUFBTSxHQUFHLElBQUk7UUFDM0QsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUM3RixJQUFJLE9BQU8sR0FBRyxJQUFJLFdBQVcsTUFBTSxXQUFXLGlCQUFpQixXQUFXLElBQUksQ0FBQztRQUUvRSxJQUFJLE1BQU0sRUFBRTtZQUNSLE9BQU8sR0FBRyxHQUFHLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztTQUNwQztRQUVELElBQUksTUFBTSxFQUFFO1lBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRU0sZUFBZSxDQUFDLFdBQW1DO1FBQ3RELElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDNUIsV0FBVyxHQUFHLFdBQVcsQ0FBQztTQUM3QjthQUFNO1lBQ0gsSUFBSSxXQUFXLElBQUksV0FBVyxLQUFLLEVBQUUsRUFBRTtnQkFDbkMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqQztTQUNKO1FBRUQsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQyxPQUFPLEVBQUUsQ0FBQztnQkFDTixJQUFJLEVBQUUsR0FBRztnQkFDVCxPQUFPLEVBQUUsbUVBQW1FO2dCQUM1RSxlQUFlLEVBQUUsc0ZBQXNGO2FBQzFHLENBQUMsQ0FBQztTQUNOO1FBRUQsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBUyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQUUsT0FBTyxRQUFRLENBQUM7YUFBRTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFBRSxPQUFPLFFBQVEsQ0FBQzthQUFFO1lBRWxELE1BQU0sY0FBYyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7WUFFM0MsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUVyQixJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsUUFBUTtvQkFDckMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO29CQUNwQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBRWxDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNqQyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRCQUMvQixRQUFRLEdBQUcsSUFBSSxDQUFDO3lCQUNuQjtvQkFDTCxDQUFDLENBQUMsQ0FBQztpQkFDTjtnQkFFRCxjQUFjLENBQUMsSUFBSSxDQUFDO29CQUNoQixXQUFXLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQztvQkFDN0IsU0FBUyxFQUFFLFFBQVE7aUJBQ3RCLENBQUMsQ0FBQzthQUNOO1lBRUQsT0FBTyxjQUFjLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7O2tJQTlGUSxrQkFBa0I7c0lBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNZW51RGF0YXN1bFNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgdXJsTWVudVByb2dyYW1zID0gJy9kdHMvZGF0YXN1bC1yZXN0L3Jlc291cmNlcy9wcmcvZndrL3YxL21lbnVQcm9ncmFtcy9saXN0JztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogdmFyIHByb2dyYW0gPSB7fTtcclxuICAgICAqIHByb2dyYW1bJ3ByZyddID0gXCJjZDAyMTBcIjtcclxuICAgICAqIHByb2dyYW1bJ3BhcmFtcyddID0gJzAxfDEyMzQ1NidcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhbGxQcm9ncmVzcyhwcm9ncmFtKSB7XHJcbiAgICAgICAgcGFyZW50LnBvc3RNZXNzYWdlKHsgcHJvZ3JhbSB9LCAnKicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogdmFyIG5vdGlmaWNhdGlvbiA9IHt9O1xyXG4gICAgICogbm90aWZpY2F0aW9uWyd0eXBlJ10gPSAnc3VjY2Vzcyc7XHJcbiAgICAgKiBub3RpZmljYXRpb25bJ3RpdGxlJ10gPSAnTm90aWZpY2F0aW9uIFRpdGxlJ1xyXG4gICAgICogbm90aWZpY2F0aW9uWydkZXRhaWwnXSA9ICdOb3RpZmljYXRpb24gRGV0YWlsJ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VuZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pIHtcclxuICAgICAgICBwYXJlbnQucG9zdE1lc3NhZ2UoeyBub3RpZmljYXRpb24gfSwgJyonKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlblBhdGgocHJvZ3JhbU5hbWU6IHN0cmluZywgcGFyYW1zOiBhbnksIHBhcmVudCA9IHRydWUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkYXRhc3VsUGF0aCA9IGRvY3VtZW50LnJlZmVycmVyLmluZGV4T2YoJ3RvdHZzLW1lbnUnKSA+IDAgPyAndG90dnMtbWVudScgOiAnbWVudS1odG1sJztcclxuICAgICAgICBsZXQgYmFzZVVybCA9IGAvJHtkYXRhc3VsUGF0aH0vIy8ke2RhdGFzdWxQYXRofS9wcm9ncmFtLWh0bWwvJHtwcm9ncmFtTmFtZX0vI2A7XHJcblxyXG4gICAgICAgIGlmIChwYXJhbXMpIHtcclxuICAgICAgICAgICAgYmFzZVVybCA9IGAke2Jhc2VVcmx9LyR7cGFyYW1zfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuKGJhc2VVcmwsICdfcGFyZW50Jyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgd2luZG93Lm9wZW4oYmFzZVVybCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwcm9ncmFtU2VjdXJpdHkocHJvZ3JhbU5hbWU6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPE9iamVjdD4ge1xyXG4gICAgICAgIGxldCBwcm9ncmFtTGlzdCA9IFtdO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb2dyYW1OYW1lKSkge1xyXG4gICAgICAgICAgICBwcm9ncmFtTGlzdCA9IHByb2dyYW1OYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChwcm9ncmFtTmFtZSAmJiBwcm9ncmFtTmFtZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHByb2dyYW1MaXN0LnB1c2gocHJvZ3JhbU5hbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXByb2dyYW1MaXN0IHx8IHByb2dyYW1MaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2Yoe1xyXG4gICAgICAgICAgICAgICAgY29kZTogNDAwLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ07Do28gZm9pIHBvc3PDrXZlbCB2YWxpZGFyIGEgU2VndXJhbsOnYSBkb3MgUHJvZ3JhbWFzLCBsaXN0YSB2YXppYSAhJyxcclxuICAgICAgICAgICAgICAgIGRldGFpbGVkTWVzc2FnZTogJ0EgbGlzdGEgZGUgcHJvZ3JhbWFzIGluZGljYWRvcyBwYXJhIHZhbGlkYcOnw6NvIGRlIHNlZ3VyYW7Dp2Egw6kgaW52w6FsaWRhIG91IGVzdMOhIHZhemlhLidcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBhUmVxdWVzdCA9IFtdO1xyXG4gICAgICAgIHByb2dyYW1MaXN0LmZvckVhY2gocHJvZ3JhbVNlYXJjaCA9PiB7XHJcbiAgICAgICAgICAgIGFSZXF1ZXN0LnB1c2godGhpcy5odHRwLnBvc3Q8T2JqZWN0Pih0aGlzLnVybE1lbnVQcm9ncmFtcywgeyBzZWFyY2g6IHByb2dyYW1TZWFyY2ggfSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oYVJlcXVlc3QpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IE9iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH1cclxuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZXNwb25zZSkpIHsgcmV0dXJuIHJlc3BvbnNlOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VSZXR1cm4gPSBuZXcgQXJyYXk8T2JqZWN0PigpO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHByb2dyYW1MaXN0Lmxlbmd0aDsgaWR4KyspIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZVByb2cgPSByZXNwb25zZVtpZHhdO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBoYXNBY2VzcyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VQcm9nICYmIHJlc3BvbnNlUHJvZy5wcm9ncmFtcyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlUHJvZy5wcm9ncmFtcykgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VQcm9nLnByb2dyYW1zLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlUHJvZy5wcm9ncmFtcy5mb3JFYWNoKHByb2cgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb2cucHJnID09PSBwcm9ncmFtTGlzdFtpZHhdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQWNlc3MgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlUmV0dXJuLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtTmFtZTogcHJvZ3JhbUxpc3RbaWR4XSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzQWNjZXNzOiBoYXNBY2Vzc1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZVJldHVybjtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kYXRhc3VsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvc2VydmljZXMvbWVudS1kYXRhc3VsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHMUIsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRjVCLG9CQUFlLEdBQUcsMERBQTBELENBQUM7SUFFN0MsQ0FBQztJQUV6Qzs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLE9BQU87UUFDdkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGdCQUFnQixDQUFDLFlBQVk7UUFDaEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxRQUFRLENBQUMsV0FBbUIsRUFBRSxNQUFXLEVBQUUsTUFBTSxHQUFHLElBQUk7UUFDM0QsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUM3RixJQUFJLE9BQU8sR0FBRyxJQUFJLFdBQVcsTUFBTSxXQUFXLGlCQUFpQixXQUFXLElBQUksQ0FBQztRQUUvRSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxZQUFvQixFQUFFLE1BQVcsRUFBRSxNQUFNLEdBQUcsSUFBSTtRQUMzRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQzdGLElBQUksT0FBTyxHQUFHLElBQUksV0FBVyxNQUFNLFlBQVksSUFBSSxDQUFDO1FBRXBELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQWUsRUFBRSxNQUFXLEVBQUUsTUFBZTtRQUNqRSxJQUFJLE1BQU0sRUFBRTtZQUNSLE9BQU8sR0FBRyxHQUFHLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztTQUNwQztRQUVELElBQUksTUFBTSxFQUFFO1lBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRU0sZUFBZSxDQUFDLFdBQW1DO1FBQ3RELElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDNUIsV0FBVyxHQUFHLFdBQVcsQ0FBQztTQUM3QjthQUFNO1lBQ0gsSUFBSSxXQUFXLElBQUksV0FBVyxLQUFLLEVBQUUsRUFBRTtnQkFDbkMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqQztTQUNKO1FBRUQsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQyxPQUFPLEVBQUUsQ0FBQztnQkFDTixJQUFJLEVBQUUsR0FBRztnQkFDVCxPQUFPLEVBQUUsbUVBQW1FO2dCQUM1RSxlQUFlLEVBQUUsc0ZBQXNGO2FBQzFHLENBQUMsQ0FBQztTQUNOO1FBRUQsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBUyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQUUsT0FBTyxRQUFRLENBQUM7YUFBRTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFBRSxPQUFPLFFBQVEsQ0FBQzthQUFFO1lBRWxELE1BQU0sY0FBYyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7WUFFM0MsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUVyQixJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsUUFBUTtvQkFDckMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO29CQUNwQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBRWxDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNqQyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRCQUMvQixRQUFRLEdBQUcsSUFBSSxDQUFDO3lCQUNuQjtvQkFDTCxDQUFDLENBQUMsQ0FBQztpQkFDTjtnQkFFRCxjQUFjLENBQUMsSUFBSSxDQUFDO29CQUNoQixXQUFXLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQztvQkFDN0IsU0FBUyxFQUFFLFFBQVE7aUJBQ3RCLENBQUMsQ0FBQzthQUNOO1lBRUQsT0FBTyxjQUFjLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7O2tJQXpHUSxrQkFBa0I7c0lBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNZW51RGF0YXN1bFNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgdXJsTWVudVByb2dyYW1zID0gJy9kdHMvZGF0YXN1bC1yZXN0L3Jlc291cmNlcy9wcmcvZndrL3YxL21lbnVQcm9ncmFtcy9saXN0JztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogdmFyIHByb2dyYW0gPSB7fTtcclxuICAgICAqIHByb2dyYW1bJ3ByZyddID0gXCJjZDAyMTBcIjtcclxuICAgICAqIHByb2dyYW1bJ3BhcmFtcyddID0gJzAxfDEyMzQ1NidcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhbGxQcm9ncmVzcyhwcm9ncmFtKSB7XHJcbiAgICAgICAgcGFyZW50LnBvc3RNZXNzYWdlKHsgcHJvZ3JhbSB9LCAnKicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogdmFyIG5vdGlmaWNhdGlvbiA9IHt9O1xyXG4gICAgICogbm90aWZpY2F0aW9uWyd0eXBlJ10gPSAnc3VjY2Vzcyc7XHJcbiAgICAgKiBub3RpZmljYXRpb25bJ3RpdGxlJ10gPSAnTm90aWZpY2F0aW9uIFRpdGxlJ1xyXG4gICAgICogbm90aWZpY2F0aW9uWydkZXRhaWwnXSA9ICdOb3RpZmljYXRpb24gRGV0YWlsJ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VuZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pIHtcclxuICAgICAgICBwYXJlbnQucG9zdE1lc3NhZ2UoeyBub3RpZmljYXRpb24gfSwgJyonKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlblBhdGgocHJvZ3JhbU5hbWU6IHN0cmluZywgcGFyYW1zOiBhbnksIHBhcmVudCA9IHRydWUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkYXRhc3VsUGF0aCA9IGRvY3VtZW50LnJlZmVycmVyLmluZGV4T2YoJ3RvdHZzLW1lbnUnKSA+IDAgPyAndG90dnMtbWVudScgOiAnbWVudS1odG1sJztcclxuICAgICAgICBsZXQgYmFzZVVybCA9IGAvJHtkYXRhc3VsUGF0aH0vIy8ke2RhdGFzdWxQYXRofS9wcm9ncmFtLWh0bWwvJHtwcm9ncmFtTmFtZX0vI2A7XHJcblxyXG4gICAgICAgIHRoaXMub3BlbkhUTUxQcm9ncmFtKGJhc2VVcmwsIHBhcmFtcywgcGFyZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlblRIRihleHRlcm5hbE5hbWU6IHN0cmluZywgcGFyYW1zOiBhbnksIHBhcmVudCA9IHRydWUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkYXRhc3VsUGF0aCA9IGRvY3VtZW50LnJlZmVycmVyLmluZGV4T2YoJ3RvdHZzLW1lbnUnKSA+IDAgPyAndG90dnMtbWVudScgOiAnbWVudS1odG1sJztcclxuICAgICAgICBsZXQgYmFzZVVybCA9IGAvJHtkYXRhc3VsUGF0aH0vIy8ke2V4dGVybmFsTmFtZX0vI2A7XHJcblxyXG4gICAgICAgIHRoaXMub3BlbkhUTUxQcm9ncmFtKGJhc2VVcmwsIHBhcmFtcywgcGFyZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9wZW5IVE1MUHJvZ3JhbShiYXNlVXJsOiBzdHJpbmcsIHBhcmFtczogYW55LCBwYXJlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAocGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGJhc2VVcmwgPSBgJHtiYXNlVXJsfS8ke3BhcmFtc31gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgICB3aW5kb3cub3BlbihiYXNlVXJsLCAnX3BhcmVudCcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuKGJhc2VVcmwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcHJvZ3JhbVNlY3VyaXR5KHByb2dyYW1OYW1lOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxPYmplY3Q+IHtcclxuICAgICAgICBsZXQgcHJvZ3JhbUxpc3QgPSBbXTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9ncmFtTmFtZSkpIHtcclxuICAgICAgICAgICAgcHJvZ3JhbUxpc3QgPSBwcm9ncmFtTmFtZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAocHJvZ3JhbU5hbWUgJiYgcHJvZ3JhbU5hbWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9ncmFtTGlzdC5wdXNoKHByb2dyYW1OYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFwcm9ncmFtTGlzdCB8fCBwcm9ncmFtTGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHtcclxuICAgICAgICAgICAgICAgIGNvZGU6IDQwMCxcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdOw6NvIGZvaSBwb3Nzw612ZWwgdmFsaWRhciBhIFNlZ3VyYW7Dp2EgZG9zIFByb2dyYW1hcywgbGlzdGEgdmF6aWEgIScsXHJcbiAgICAgICAgICAgICAgICBkZXRhaWxlZE1lc3NhZ2U6ICdBIGxpc3RhIGRlIHByb2dyYW1hcyBpbmRpY2Fkb3MgcGFyYSB2YWxpZGHDp8OjbyBkZSBzZWd1cmFuw6dhIMOpIGludsOhbGlkYSBvdSBlc3TDoSB2YXppYS4nXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYVJlcXVlc3QgPSBbXTtcclxuICAgICAgICBwcm9ncmFtTGlzdC5mb3JFYWNoKHByb2dyYW1TZWFyY2ggPT4ge1xyXG4gICAgICAgICAgICBhUmVxdWVzdC5wdXNoKHRoaXMuaHR0cC5wb3N0PE9iamVjdD4odGhpcy51cmxNZW51UHJvZ3JhbXMsIHsgc2VhcmNoOiBwcm9ncmFtU2VhcmNoIH0pKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKGFSZXF1ZXN0KS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBPYmplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlOyB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVzcG9uc2UpKSB7IHJldHVybiByZXNwb25zZTsgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlUmV0dXJuID0gbmV3IEFycmF5PE9iamVjdD4oKTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBwcm9ncmFtTGlzdC5sZW5ndGg7IGlkeCsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VQcm9nID0gcmVzcG9uc2VbaWR4XTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaGFzQWNlc3MgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlUHJvZyAmJiByZXNwb25zZVByb2cucHJvZ3JhbXMgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZVByb2cucHJvZ3JhbXMpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlUHJvZy5wcm9ncmFtcy5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZVByb2cucHJvZ3JhbXMuZm9yRWFjaChwcm9nID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9nLnByZyA9PT0gcHJvZ3JhbUxpc3RbaWR4XSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0FjZXNzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVJldHVybi5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbU5hbWU6IHByb2dyYW1MaXN0W2lkeF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc0FjY2VzczogaGFzQWNlc3NcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VSZXR1cm47XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG5cclxuIl19
@@ -148,4 +148,4 @@ export class FileUtil {
148
148
  }
149
149
  export class DownloadDataParams {
150
150
  }
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2ZpbGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUVqQixnQkFDSSxDQUFDO0lBRUwsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxXQUFvQixFQUFFLE1BQWdCO1FBQ25GLE1BQU0sR0FBRyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQWdCLEVBQUUsZ0JBQXFDLElBQUk7UUFDM0UsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU87U0FBRTtRQUV0QixJQUFJLENBQUMsYUFBYSxFQUFFO1lBQUUsYUFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztTQUFFO1FBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQUUsYUFBYSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7U0FBRTtRQUNyRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUFFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUU7WUFBRSxhQUFhLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztTQUFFO1FB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RUgsT0FBTyxVQUFVLEdBQUcsYUFBYSxDQUFDO1FBRXRDLENBQUMsRUFBRSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUM7UUFFakMsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBVTtRQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUzQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDakIsSUFBSSxPQUFZLENBQUM7Z0JBQ2pCLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNWLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO29CQUNsQyxPQUFPO2lCQUNWO2dCQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3BCO3FCQUFNO29CQUNILE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2lCQUNyQztZQUVMLENBQUMsQ0FBQztZQUVGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUFVRCxNQUFNLE9BQU8sa0JBQWtCO0NBTTlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEZpbGVVdGlsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICkgeyB9XHJcblxyXG4gICAgc3RhdGljIGRvd25sb2FkRmlsZShkYXRhOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcsIGNvbnRlbnRUeXBlPzogc3RyaW5nLCBiYXNlNjQ/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgYmFzZTY0ID0gKGJhc2U2NCA9PT0gZmFsc2UpID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGRhdGFCbG9iID0gYmFzZTY0ID8gdGhpcy5iNjR0b0Jsb2IoZGF0YSwgY29udGVudFR5cGUpIDogZGF0YTtcclxuICAgICAgICB0aGlzLmRvd25sb2FkKGRhdGFCbG9iLCBmaWxlTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRvd25sb2FkRGF0YShkYXRhOiBBcnJheTxhbnk+LCBkd2xkRGF0YVBhcmFtOiBJRG93bmxvYWREYXRhUGFyYW1zID0gbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghZGF0YSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtKSB7IGR3bGREYXRhUGFyYW0gPSBuZXcgRG93bmxvYWREYXRhUGFyYW1zKCk7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uZmlsZU5hbWUpIHsgZHdsZERhdGFQYXJhbS5maWxlTmFtZSA9ICdkYXRhLmNzdic7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0ubGl0ZXJhbHMpIHsgZHdsZERhdGFQYXJhbS5saXRlcmFscyA9IHt9OyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlcikgeyBkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlciA9ICc7JzsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0KSB7IGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdCA9IFtdOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUpIHsgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlID0gW107IH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0YWI2NCA9IGJ0b2EodGhpcy5qc29uVG9TdHJpbmcoZGF0YSwgZHdsZERhdGFQYXJhbSkpO1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKGRhdGFiNjQsIGR3bGREYXRhUGFyYW0uZmlsZU5hbWUsICd0ZXh0L2NzdicpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGRvd25sb2FkKGZpbGU6IEJsb2IsIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBiaW5hcnlEYXRhID0gW2ZpbGVdO1xyXG4gICAgICAgIGNvbnN0IGRvd25sb2FkTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICBjb25zdCB1cmxEb3dubG9hZCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKGJpbmFyeURhdGEsIHsgdHlwZTogZmlsZS50eXBlIH0pKTtcclxuXHJcbiAgICAgICAgLyogVmVyaWZpY2Egc2Ugw6kgaWUgb3UgZWRnZSwgcG9pcyBvIG1lc21vIHRlbSB0cmF0YW1lbnRvIHByw7NwcmlvIHBhcmEgYXJxdWl2b3MgYmxvYiAqL1xyXG4gICAgICAgIGNvbnN0IG5hdiA9ICh3aW5kb3cubmF2aWdhdG9yIGFzIGFueSk7XHJcbiAgICAgICAgaWYgKG5hdiAmJiBuYXYubXNTYXZlT3JPcGVuQmxvYikge1xyXG4gICAgICAgICAgICBuYXYubXNTYXZlT3JPcGVuQmxvYihmaWxlLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSB1cmxEb3dubG9hZDtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRMaW5rKTtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybERvd25sb2FkKTtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBiNjR0b0Jsb2IoYjY0RGF0YTogYW55LCBjb250ZW50VHlwZT86IHN0cmluZywgc2xpY2VTaXplPzogbnVtYmVyKTogQmxvYiB7XHJcbiAgICAgICAgY29udGVudFR5cGUgPSBjb250ZW50VHlwZSB8fCAnJztcclxuICAgICAgICBzbGljZVNpemUgPSBzbGljZVNpemUgfHwgNTEyO1xyXG5cclxuICAgICAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoYjY0RGF0YSk7XHJcbiAgICAgICAgY29uc3QgYnl0ZUFycmF5cyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7IG9mZnNldCArPSBzbGljZVNpemUpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2xpY2UgPSBieXRlQ2hhcmFjdGVycy5zbGljZShvZmZzZXQsIG9mZnNldCArIHNsaWNlU2l6ZSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShzbGljZS5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWNlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBieXRlTnVtYmVyc1tpXSA9IHNsaWNlLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGJ5dGVOdW1iZXJzKTtcclxuICAgICAgICAgICAgYnl0ZUFycmF5cy5wdXNoKGJ5dGVBcnJheSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoYnl0ZUFycmF5cywgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcclxuICAgICAgICByZXR1cm4gYmxvYjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBqc29uVG9TdHJpbmcoanNvbkRhdGE6IEFycmF5PGFueT4sIGR3bGREYXRhUGFyYW06IElEb3dubG9hZERhdGFQYXJhbXMpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghanNvbkRhdGEgfHwganNvbkRhdGEubGVuZ3RoID09PSAwKSB7IHJldHVybiAnJzsgfVxyXG5cclxuICAgICAgICBjb25zdCBsaW5lRGVsaW1pdGVyID0gJ1xcbic7XHJcblxyXG4gICAgICAgIGxldCBjb2x1bW5PcmlnID0gbnVsbDtcclxuICAgICAgICBsZXQgY29sdW1uSGVhZGVyID0gbnVsbDtcclxuICAgICAgICBjb25zdCBrZXlzID0gW107XHJcbiAgICAgICAgbGV0IGluY2x1ZGVLZXk6IGJvb2xlYW47XHJcblxyXG4gICAgICAgIGlmIChkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QgJiZcclxuICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29sdW1uT3JpZyA9IGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb2x1bW5PcmlnID0gT2JqZWN0LmtleXMoanNvbkRhdGFbMF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29sdW1uT3JpZy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIGluY2x1ZGVLZXkgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgaWYgKGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZSAmJlxyXG4gICAgICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgIGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZS5pbmRleE9mKGtleSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBpbmNsdWRlS2V5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpbmNsdWRlS2V5KSB7XHJcbiAgICAgICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcclxuICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlciA9ICghY29sdW1uSGVhZGVyKSA/ICcnIDogY29sdW1uSGVhZGVyICsgZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXI7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXIgKz0gKGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNba2V5XSkgPyBkd2xkRGF0YVBhcmFtLmxpdGVyYWxzW2tleV0gOiBrZXk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgbGluZVN0ciA9IGpzb25EYXRhLnJlZHVjZSgoYWNjTGluZVN0ciwgY3VycmVudEl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgbGV0IGNvbHVtblZhbHVlID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFmaXJzdCkgeyBhY2NMaW5lU3RyICs9IGR3bGREYXRhUGFyYW0uY29sdW1uRGVsaW1pdGVyOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBjdXJyZW50SXRlbVtrZXldO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtblZhbHVlID09PSBudWxsIHx8IGNvbHVtblZhbHVlID09PSB1bmRlZmluZWQpIHsgY29sdW1uVmFsdWUgPSAnJzsgfVxyXG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlb2YgKGNvbHVtblZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gY29sdW1uVmFsdWUudG9Mb2NhbGVTdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gKGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNbYCR7Y29sdW1uVmFsdWV9YF0pID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNbYCR7Y29sdW1uVmFsdWV9YF0gOiBjb2x1bW5WYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBKU09OLnN0cmluZ2lmeShjb2x1bW5WYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhY2NMaW5lU3RyICs9IGNvbHVtblZhbHVlO1xyXG5cclxuICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGFjY0xpbmVTdHIgKyBsaW5lRGVsaW1pdGVyO1xyXG5cclxuICAgICAgICB9LCBjb2x1bW5IZWFkZXIgKyBsaW5lRGVsaW1pdGVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGxpbmVTdHI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGZpbGVUb0I2NChmaWxlOiBGaWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcblxyXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGNudEZpbGU6IGFueTtcclxuICAgICAgICAgICAgICAgIGNudEZpbGUgPSByZWFkZXIucmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjbnRGaWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdGaWxlIG5vdCBmb3VuZCBvciBFbXB0eScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBhQ250ID0gY250RmlsZS5zcGxpdCgnLCcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGFDbnQgJiYgYUNudC5sZW5ndGggPj0gMikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYUNudFsxXSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdCgnRmlsZSBub3QgZm91bmQgb3IgRW1wdHknKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICByZWFkZXIub25lcnJvciA9IGVycm9yID0+IHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURvd25sb2FkRGF0YVBhcmFtcyB7XHJcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgbGl0ZXJhbHM6IGFueTtcclxuICAgIGNvbHVtbkRlbGltaXRlcjogc3RyaW5nO1xyXG4gICAgY29sdW1uTGlzdDogQXJyYXk8c3RyaW5nPjtcclxuICAgIGNvbHVtbkV4Y2x1ZGU6IEFycmF5PHN0cmluZz47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEb3dubG9hZERhdGFQYXJhbXMgaW1wbGVtZW50cyBJRG93bmxvYWREYXRhUGFyYW1zIHtcclxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICBsaXRlcmFsczogYW55O1xyXG4gICAgY29sdW1uRGVsaW1pdGVyOiBzdHJpbmc7XHJcbiAgICBjb2x1bW5MaXN0OiBBcnJheTxzdHJpbmc+O1xyXG4gICAgY29sdW1uRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcclxufVxyXG4iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2ZpbGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUVqQixnQkFDSSxDQUFDO0lBRUwsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxXQUFvQixFQUFFLE1BQWdCO1FBQ25GLE1BQU0sR0FBRyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQWdCLEVBQUUsZ0JBQXFDLElBQUk7UUFDM0UsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU87U0FBRTtRQUV0QixJQUFJLENBQUMsYUFBYSxFQUFFO1lBQUUsYUFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztTQUFFO1FBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQUUsYUFBYSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7U0FBRTtRQUNyRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUFFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUU7WUFBRSxhQUFhLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztTQUFFO1FBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFO1lBQUUsYUFBYSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7U0FBRTtRQUNqRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRTtZQUFFLGFBQWEsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFFdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFVLEVBQUUsUUFBZ0I7UUFDaEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTFGLHNGQUFzRjtRQUN0RixNQUFNLEdBQUcsR0FBSSxNQUFNLENBQUMsU0FBaUIsQ0FBQztRQUN0QyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEVBQUU7WUFDN0IsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0gsWUFBWSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7WUFDaEMsWUFBWSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDaEQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN6QjtJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQVksRUFBRSxXQUFvQixFQUFFLFNBQWtCO1FBQ25FLFdBQVcsR0FBRyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQ2hDLFNBQVMsR0FBRyxTQUFTLElBQUksR0FBRyxDQUFDO1FBRTdCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFdEIsS0FBSyxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRTtZQUN0RSxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUM7WUFFL0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNuQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4QztZQUVELE1BQU0sU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUI7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFvQixFQUFFLGFBQWtDO1FBQ2hGLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFBRSxPQUFPLEVBQUUsQ0FBQztTQUFFO1FBRXRELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQztRQUUzQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLFVBQW1CLENBQUM7UUFFeEIsSUFBSSxhQUFhLENBQUMsVUFBVTtZQUN4QixhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7U0FDekM7YUFBTTtZQUNILFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQixVQUFVLEdBQUcsSUFBSSxDQUFDO1lBRWxCLElBQUksYUFBYSxDQUFDLGFBQWE7Z0JBQzNCLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ3RDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNqRCxVQUFVLEdBQUcsS0FBSyxDQUFDO2FBQ3RCO1lBRUQsSUFBSSxVQUFVLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDZixZQUFZLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDO2dCQUNuRixZQUFZLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQzthQUNyRjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUN4RCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBRXZCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFBRSxVQUFVLElBQUksYUFBYSxDQUFDLGVBQWUsQ0FBQztpQkFBRTtnQkFFNUQsV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxXQUFXLEtBQUssSUFBSSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7b0JBQUUsV0FBVyxHQUFHLEVBQUUsQ0FBQztpQkFBRTtnQkFDNUUsUUFBUSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQzFCLEtBQUssUUFBUTt3QkFDVCxXQUFXLEdBQUcsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUMzQyxNQUFNO29CQUNWLEtBQUssU0FBUzt3QkFDVixXQUFXLEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ3RELGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7d0JBQzNELE1BQU07b0JBQ1YsS0FBSyxRQUFRO3dCQUNULFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUNqRDtnQkFDRCxVQUFVLElBQUksV0FBVyxDQUFDO2dCQUUxQixLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxVQUFVLEdBQUcsYUFBYSxDQUFDO1FBRXRDLENBQUMsRUFBRSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUM7UUFFakMsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBVTtRQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUzQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDakIsSUFBSSxPQUFZLENBQUM7Z0JBQ2pCLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNWLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO29CQUNsQyxPQUFPO2lCQUNWO2dCQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3BCO3FCQUFNO29CQUNILE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2lCQUNyQztZQUVMLENBQUMsQ0FBQztZQUVGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUFVRCxNQUFNLE9BQU8sa0JBQWtCO0NBTTlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEZpbGVVdGlsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICkgeyB9XHJcblxyXG4gICAgc3RhdGljIGRvd25sb2FkRmlsZShkYXRhOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcsIGNvbnRlbnRUeXBlPzogc3RyaW5nLCBiYXNlNjQ/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgYmFzZTY0ID0gKGJhc2U2NCA9PT0gZmFsc2UpID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGRhdGFCbG9iID0gYmFzZTY0ID8gdGhpcy5iNjR0b0Jsb2IoZGF0YSwgY29udGVudFR5cGUpIDogZGF0YTtcclxuICAgICAgICB0aGlzLmRvd25sb2FkKGRhdGFCbG9iLCBmaWxlTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRvd25sb2FkRGF0YShkYXRhOiBBcnJheTxhbnk+LCBkd2xkRGF0YVBhcmFtOiBJRG93bmxvYWREYXRhUGFyYW1zID0gbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghZGF0YSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtKSB7IGR3bGREYXRhUGFyYW0gPSBuZXcgRG93bmxvYWREYXRhUGFyYW1zKCk7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uZmlsZU5hbWUpIHsgZHdsZERhdGFQYXJhbS5maWxlTmFtZSA9ICdkYXRhLmNzdic7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0ubGl0ZXJhbHMpIHsgZHdsZERhdGFQYXJhbS5saXRlcmFscyA9IHt9OyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlcikgeyBkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlciA9ICc7JzsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0KSB7IGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdCA9IFtdOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUpIHsgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlID0gW107IH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0YWI2NCA9IGJ0b2EodGhpcy5qc29uVG9TdHJpbmcoZGF0YSwgZHdsZERhdGFQYXJhbSkpO1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKGRhdGFiNjQsIGR3bGREYXRhUGFyYW0uZmlsZU5hbWUsICd0ZXh0L2NzdicpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGRvd25sb2FkKGZpbGU6IEJsb2IsIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBiaW5hcnlEYXRhID0gW2ZpbGVdO1xyXG4gICAgICAgIGNvbnN0IGRvd25sb2FkTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICBjb25zdCB1cmxEb3dubG9hZCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKGJpbmFyeURhdGEsIHsgdHlwZTogZmlsZS50eXBlIH0pKTtcclxuXHJcbiAgICAgICAgLyogVmVyaWZpY2Egc2Ugw6kgaWUgb3UgZWRnZSwgcG9pcyBvIG1lc21vIHRlbSB0cmF0YW1lbnRvIHByw7NwcmlvIHBhcmEgYXJxdWl2b3MgYmxvYiAqL1xyXG4gICAgICAgIGNvbnN0IG5hdiA9ICh3aW5kb3cubmF2aWdhdG9yIGFzIGFueSk7XHJcbiAgICAgICAgaWYgKG5hdiAmJiBuYXYubXNTYXZlT3JPcGVuQmxvYikge1xyXG4gICAgICAgICAgICBuYXYubXNTYXZlT3JPcGVuQmxvYihmaWxlLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSB1cmxEb3dubG9hZDtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRMaW5rKTtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybERvd25sb2FkKTtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYjY0dG9CbG9iKGI2NERhdGE6IGFueSwgY29udGVudFR5cGU/OiBzdHJpbmcsIHNsaWNlU2l6ZT86IG51bWJlcik6IEJsb2Ige1xyXG4gICAgICAgIGNvbnRlbnRUeXBlID0gY29udGVudFR5cGUgfHwgJyc7XHJcbiAgICAgICAgc2xpY2VTaXplID0gc2xpY2VTaXplIHx8IDUxMjtcclxuXHJcbiAgICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGI2NERhdGEpO1xyXG4gICAgICAgIGNvbnN0IGJ5dGVBcnJheXMgPSBbXTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBvZmZzZXQgKz0gc2xpY2VTaXplKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNsaWNlID0gYnl0ZUNoYXJhY3RlcnMuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBzbGljZVNpemUpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoc2xpY2UubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgYnl0ZU51bWJlcnNbaV0gPSBzbGljZS5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XHJcbiAgICAgICAgICAgIGJ5dGVBcnJheXMucHVzaChieXRlQXJyYXkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudFR5cGUgfSk7XHJcbiAgICAgICAgcmV0dXJuIGJsb2I7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMganNvblRvU3RyaW5nKGpzb25EYXRhOiBBcnJheTxhbnk+LCBkd2xkRGF0YVBhcmFtOiBJRG93bmxvYWREYXRhUGFyYW1zKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWpzb25EYXRhIHx8IGpzb25EYXRhLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gJyc7IH1cclxuXHJcbiAgICAgICAgY29uc3QgbGluZURlbGltaXRlciA9ICdcXG4nO1xyXG5cclxuICAgICAgICBsZXQgY29sdW1uT3JpZyA9IG51bGw7XHJcbiAgICAgICAgbGV0IGNvbHVtbkhlYWRlciA9IG51bGw7XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IFtdO1xyXG4gICAgICAgIGxldCBpbmNsdWRlS2V5OiBib29sZWFuO1xyXG5cclxuICAgICAgICBpZiAoZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0ICYmXHJcbiAgICAgICAgICAgIGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbk9yaWcgPSBkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3Q7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29sdW1uT3JpZyA9IE9iamVjdC5rZXlzKGpzb25EYXRhWzBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbHVtbk9yaWcuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICBpbmNsdWRlS2V5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIGlmIChkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUgJiZcclxuICAgICAgICAgICAgICAgIGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZS5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgICBkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUuaW5kZXhPZihrZXkpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgaW5jbHVkZUtleSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaW5jbHVkZUtleSkge1xyXG4gICAgICAgICAgICAgICAga2V5cy5wdXNoKGtleSk7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXIgPSAoIWNvbHVtbkhlYWRlcikgPyAnJyA6IGNvbHVtbkhlYWRlciArIGR3bGREYXRhUGFyYW0uY29sdW1uRGVsaW1pdGVyO1xyXG4gICAgICAgICAgICAgICAgY29sdW1uSGVhZGVyICs9IChkd2xkRGF0YVBhcmFtLmxpdGVyYWxzW2tleV0pID8gZHdsZERhdGFQYXJhbS5saXRlcmFsc1trZXldIDoga2V5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGxpbmVTdHIgPSBqc29uRGF0YS5yZWR1Y2UoKGFjY0xpbmVTdHIsIGN1cnJlbnRJdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBmaXJzdCA9IHRydWU7XHJcbiAgICAgICAgICAgIGxldCBjb2x1bW5WYWx1ZSA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghZmlyc3QpIHsgYWNjTGluZVN0ciArPSBkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlcjsgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gY3VycmVudEl0ZW1ba2V5XTtcclxuICAgICAgICAgICAgICAgIGlmIChjb2x1bW5WYWx1ZSA9PT0gbnVsbCB8fCBjb2x1bW5WYWx1ZSA9PT0gdW5kZWZpbmVkKSB7IGNvbHVtblZhbHVlID0gJyc7IH1cclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIChjb2x1bW5WYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZSA9IGNvbHVtblZhbHVlLnRvTG9jYWxlU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZSA9IChkd2xkRGF0YVBhcmFtLmxpdGVyYWxzW2Ake2NvbHVtblZhbHVlfWBdKSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd2xkRGF0YVBhcmFtLmxpdGVyYWxzW2Ake2NvbHVtblZhbHVlfWBdIDogY29sdW1uVmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gSlNPTi5zdHJpbmdpZnkoY29sdW1uVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYWNjTGluZVN0ciArPSBjb2x1bW5WYWx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBhY2NMaW5lU3RyICsgbGluZURlbGltaXRlcjtcclxuXHJcbiAgICAgICAgfSwgY29sdW1uSGVhZGVyICsgbGluZURlbGltaXRlcik7XHJcblxyXG4gICAgICAgIHJldHVybiBsaW5lU3RyO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBmaWxlVG9CNjQoZmlsZTogRmlsZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG5cclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBjbnRGaWxlOiBhbnk7XHJcbiAgICAgICAgICAgICAgICBjbnRGaWxlID0gcmVhZGVyLnJlc3VsdDtcclxuICAgICAgICAgICAgICAgIGlmICghY250RmlsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdCgnRmlsZSBub3QgZm91bmQgb3IgRW1wdHknKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgYUNudCA9IGNudEZpbGUuc3BsaXQoJywnKTtcclxuICAgICAgICAgICAgICAgIGlmIChhQ250ICYmIGFDbnQubGVuZ3RoID49IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGFDbnRbMV0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZWplY3QoJ0ZpbGUgbm90IGZvdW5kIG9yIEVtcHR5Jyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSBlcnJvciA9PiByZWplY3QoZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEb3dubG9hZERhdGFQYXJhbXMge1xyXG4gICAgZmlsZU5hbWU6IHN0cmluZztcclxuICAgIGxpdGVyYWxzOiBhbnk7XHJcbiAgICBjb2x1bW5EZWxpbWl0ZXI6IHN0cmluZztcclxuICAgIGNvbHVtbkxpc3Q6IEFycmF5PHN0cmluZz47XHJcbiAgICBjb2x1bW5FeGNsdWRlOiBBcnJheTxzdHJpbmc+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRG93bmxvYWREYXRhUGFyYW1zIGltcGxlbWVudHMgSURvd25sb2FkRGF0YVBhcmFtcyB7XHJcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgbGl0ZXJhbHM6IGFueTtcclxuICAgIGNvbHVtbkRlbGltaXRlcjogc3RyaW5nO1xyXG4gICAgY29sdW1uTGlzdDogQXJyYXk8c3RyaW5nPjtcclxuICAgIGNvbHVtbkV4Y2x1ZGU6IEFycmF5PHN0cmluZz47XHJcbn1cclxuIl19
@@ -268,6 +268,14 @@ class MenuDatasulService {
268
268
  openPath(programName, params, parent = true) {
269
269
  const datasulPath = document.referrer.indexOf('totvs-menu') > 0 ? 'totvs-menu' : 'menu-html';
270
270
  let baseUrl = `/${datasulPath}/#/${datasulPath}/program-html/${programName}/#`;
271
+ this.openHTMLProgram(baseUrl, params, parent);
272
+ }
273
+ openTHF(externalName, params, parent = true) {
274
+ const datasulPath = document.referrer.indexOf('totvs-menu') > 0 ? 'totvs-menu' : 'menu-html';
275
+ let baseUrl = `/${datasulPath}/#/${externalName}/#`;
276
+ this.openHTMLProgram(baseUrl, params, parent);
277
+ }
278
+ openHTMLProgram(baseUrl, params, parent) {
271
279
  if (params) {
272
280
  baseUrl = `${baseUrl}/${params}`;
273
281
  }