ng-zorro-antd-extension 16.1.0 → 16.3.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.
Files changed (37) hide show
  1. package/README.md +4 -3
  2. package/configurable-query/configurable-query.component.d.ts +14 -15
  3. package/configurable-query/type.d.ts +2 -2
  4. package/esm2022/configurable-query/configurable-query.component.mjs +65 -44
  5. package/esm2022/configurable-query/type.mjs +1 -1
  6. package/esm2022/print/nzx-print-content.directive.mjs +22 -0
  7. package/esm2022/print/nzx-print-v.component.mjs +301 -0
  8. package/esm2022/print/nzx-print.component.mjs +36 -26
  9. package/esm2022/print/nzx-print.directive.mjs +11 -7
  10. package/esm2022/print/nzx-print.module.mjs +20 -6
  11. package/esm2022/print/public-api.mjs +3 -1
  12. package/esm2022/table-select/page-table-select/page-table-select.component.mjs +3 -3
  13. package/esm2022/table-select/table-select/table-select.component.mjs +3 -3
  14. package/esm2022/util/lib/getElementByTag.mjs +31 -0
  15. package/esm2022/util/public-api.mjs +2 -1
  16. package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs +63 -42
  17. package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs.map +1 -1
  18. package/fesm2022/ng-zorro-antd-extension-print.mjs +371 -36
  19. package/fesm2022/ng-zorro-antd-extension-print.mjs.map +1 -1
  20. package/fesm2022/ng-zorro-antd-extension-table-select.mjs +4 -4
  21. package/fesm2022/ng-zorro-antd-extension-table-select.mjs.map +1 -1
  22. package/fesm2022/ng-zorro-antd-extension-util.mjs +32 -1
  23. package/fesm2022/ng-zorro-antd-extension-util.mjs.map +1 -1
  24. package/package.json +8 -7
  25. package/pipes/safe-url.pipe.d.ts +1 -1
  26. package/print/nzx-print-content.directive.d.ts +10 -0
  27. package/print/nzx-print-v.component.d.ts +45 -0
  28. package/print/nzx-print.component.d.ts +7 -7
  29. package/print/nzx-print.directive.d.ts +2 -1
  30. package/print/nzx-print.module.d.ts +7 -3
  31. package/print/public-api.d.ts +2 -0
  32. package/public-api.d.ts +1 -1
  33. package/timer-button/timer-button.directive.d.ts +1 -1
  34. package/util/lib/getElementByTag.d.ts +8 -0
  35. package/util/public-api.d.ts +1 -0
  36. package/esm2022/print/util.mjs +0 -9
  37. package/print/util.d.ts +0 -1
package/README.md CHANGED
@@ -61,10 +61,11 @@ export class AppModule {}
61
61
 
62
62
  | angular | ng-zorro-antd | ng-zorro-antd-extension | LTS ends |
63
63
  | ------- | ------------- | ----------------------- | ---------- |
64
- | ^13.0.0 | ^13.0.0 | ^13.0.0 | end |
65
- | ^14.0.0 | ^14.0.0 | ^14.0.0 | end |
66
- | ^15.0.0 | ^15.0.0 | ^15.0.0 | 2024-05-18 |
64
+ | ^17.0.0 | ^17.0.0 | ^15.6.0 | 2025-05-15 |
67
65
  | ^16.0.0 | ^16.0.0 | ^15.6.0 | 2024-11-08 |
66
+ | ^15.0.0 | ^15.0.0 | ^15.0.0 | 2024-05-18 |
67
+ | ^14.0.0 | ^14.0.0 | ^14.0.0 | end |
68
+ | ^13.0.0 | ^13.0.0 | ^13.0.0 | end |
68
69
 
69
70
  Install the specified version if required using:
70
71
 
@@ -1,4 +1,4 @@
1
- import { AfterContentInit, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges } from '@angular/core';
1
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges } from '@angular/core';
2
2
  import { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';
3
3
  import { NzxQueryI18nInterface } from 'ng-zorro-antd-extension/i18n';
4
4
  import { NzJustify } from 'ng-zorro-antd/grid';
@@ -10,7 +10,7 @@ import * as i0 from "@angular/core";
10
10
  * 查询组件
11
11
  * 支持模板自定义,在使用模板自定义时,要注意controlType应该设置为Template并且确保controlName与指令上的nzxControl应该相同
12
12
  */
13
- export declare class NzxConfigurableQueryComponent implements OnChanges, OnInit, AfterContentInit, OnDestroy {
13
+ export declare class NzxConfigurableQueryComponent implements OnChanges, OnInit, AfterViewInit, AfterContentInit, OnDestroy {
14
14
  private i18n;
15
15
  private fb;
16
16
  private cd;
@@ -24,8 +24,6 @@ export declare class NzxConfigurableQueryComponent implements OnChanges, OnInit,
24
24
  lineNumber: number;
25
25
  /** 操作按钮所占栅格数,24则换行 */
26
26
  nzxBtnSpan: number | null;
27
- /**启用折叠 */
28
- nzxCollapse: boolean;
29
27
  /** 初始化时,主动查询 */
30
28
  initQuery: boolean;
31
29
  /** 缺省 固定参数 */
@@ -34,25 +32,25 @@ export declare class NzxConfigurableQueryComponent implements OnChanges, OnInit,
34
32
  queryChange: EventEmitter<NzxQueryParams>;
35
33
  /** 重置时会触发抛出查询参数 */
36
34
  resetChange: EventEmitter<NzxQueryParams>;
37
- /** form 表单*/
38
- queryForm: FormGroup;
39
35
  /** 查询组件出参*/
40
36
  get queryParams(): any;
41
37
  set queryParams(value: any);
42
- get collapseText(): string;
43
- get collapseIcon(): "down" | "up";
38
+ get nzxCollapse(): boolean;
39
+ /** form 表单*/
40
+ queryForm: FormGroup;
44
41
  locale: NzxQueryI18nInterface;
45
- /**是否展开状态*/
46
- private isCollapse;
42
+ collapseIcon: string;
43
+ collapseText: string;
47
44
  private _queryParams;
48
45
  private defaultValue;
49
46
  private cacheParams;
50
47
  private destroy$;
51
- private _nzxBtnSpan;
48
+ private queyFormEl;
52
49
  controlTemplateList: QueryList<NzxControlDirective>;
53
50
  constructor(i18n: NzI18nService, fb: FormBuilder, cd: ChangeDetectorRef);
54
51
  ngOnChanges(changes: SimpleChanges): void;
55
52
  ngOnInit(): void;
53
+ ngAfterViewInit(): void;
56
54
  ngAfterContentInit(): void;
57
55
  /** 设置查询值进行回显 */
58
56
  setQueryParams(cacheParams: NzxQueryParams): void;
@@ -62,8 +60,10 @@ export declare class NzxConfigurableQueryComponent implements OnChanges, OnInit,
62
60
  setControl(controlName: string, config: Partial<NzxQueryControlOptions>): void;
63
61
  /**
64
62
  * 动态添加控件
63
+ * @param config 配置项
64
+ * @param position 添加位置 不传为末尾
65
65
  */
66
- addControl(config: NzxQueryControlOptions): void;
66
+ addControl(config: NzxQueryControlOptions, position?: number | undefined): void;
67
67
  /**
68
68
  * 根据控件名删除控件
69
69
  */
@@ -84,12 +84,11 @@ export declare class NzxConfigurableQueryComponent implements OnChanges, OnInit,
84
84
  /**展开、收起*/
85
85
  toggleCollapse(): void;
86
86
  ngOnDestroy(): void;
87
+ private calculateText;
87
88
  /** 清空表单控件 */
88
89
  private clearFormControl;
89
- /** 折叠 */
90
- private collapse;
91
90
  /** 生成表单 */
92
91
  private generateForm;
93
92
  static ɵfac: i0.ɵɵFactoryDeclaration<NzxConfigurableQueryComponent, never>;
94
- static ɵcmp: i0.ɵɵComponentDeclaration<NzxConfigurableQueryComponent, "nzx-configurable-query", ["NzxConfigurableQuery"], { "controls": { "alias": "controls"; "required": false; }; "nzxJustify": { "alias": "nzxJustify"; "required": false; }; "nzxGutter": { "alias": "nzxGutter"; "required": false; }; "lineNumber": { "alias": "lineNumber"; "required": false; }; "nzxBtnSpan": { "alias": "nzxBtnSpan"; "required": false; }; "nzxCollapse": { "alias": "nzxCollapse"; "required": false; }; "initQuery": { "alias": "initQuery"; "required": false; }; "fixedParams": { "alias": "fixedParams"; "required": false; }; }, { "queryChange": "queryChange"; "resetChange": "resetChange"; }, ["controlTemplateList"], ["*"], false, never>;
93
+ static ɵcmp: i0.ɵɵComponentDeclaration<NzxConfigurableQueryComponent, "nzx-configurable-query", ["NzxConfigurableQuery"], { "controls": { "alias": "controls"; "required": false; }; "nzxJustify": { "alias": "nzxJustify"; "required": false; }; "nzxGutter": { "alias": "nzxGutter"; "required": false; }; "lineNumber": { "alias": "lineNumber"; "required": false; }; "nzxBtnSpan": { "alias": "nzxBtnSpan"; "required": false; }; "initQuery": { "alias": "initQuery"; "required": false; }; "fixedParams": { "alias": "fixedParams"; "required": false; }; }, { "queryChange": "queryChange"; "resetChange": "resetChange"; }, ["controlTemplateList"], ["*"], false, never>;
95
94
  }
@@ -62,9 +62,9 @@ export interface NzxQueryControlOptions {
62
62
  */
63
63
  errorTip?: string;
64
64
  /**
65
- * 是否要折叠(nzxCollapse必须为true才生效)
65
+ * 折叠
66
66
  */
67
- collapse?: boolean;
67
+ collapse?: true;
68
68
  /**
69
69
  * 隐藏控件(主要用来携带查询参数但界面不可见)
70
70
  */
@@ -1,6 +1,6 @@
1
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
2
  import { updateControlStatus } from 'ng-zorro-antd-extension/util';
3
- import { Subject, takeUntil } from 'rxjs';
3
+ import { Subject, fromEvent, takeUntil } from 'rxjs';
4
4
  import { NzxControlDirective } from './control.directive';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "ng-zorro-antd/i18n";
@@ -25,11 +25,8 @@ export class NzxConfigurableQueryComponent {
25
25
  set queryParams(value) {
26
26
  this._queryParams = value;
27
27
  }
28
- get collapseText() {
29
- return this.isCollapse ? this.locale.expand : this.locale.collapse;
30
- }
31
- get collapseIcon() {
32
- return this.isCollapse ? 'down' : 'up';
28
+ get nzxCollapse() {
29
+ return this.controls.some((i) => i.hasOwnProperty('collapse'));
33
30
  }
34
31
  constructor(i18n, fb, cd) {
35
32
  this.i18n = i18n;
@@ -45,8 +42,6 @@ export class NzxConfigurableQueryComponent {
45
42
  this.lineNumber = 3;
46
43
  /** 操作按钮所占栅格数,24则换行 */
47
44
  this.nzxBtnSpan = null;
48
- /**启用折叠 */
49
- this.nzxCollapse = true;
50
45
  /** 初始化时,主动查询 */
51
46
  this.initQuery = false;
52
47
  /** 缺省 固定参数 */
@@ -55,13 +50,12 @@ export class NzxConfigurableQueryComponent {
55
50
  this.queryChange = new EventEmitter();
56
51
  /** 重置时会触发抛出查询参数 */
57
52
  this.resetChange = new EventEmitter();
58
- /**是否展开状态*/
59
- this.isCollapse = true;
53
+ this.collapseIcon = 'down';
54
+ this.collapseText = '';
60
55
  this._queryParams = {};
61
56
  this.defaultValue = {};
62
57
  this.cacheParams = {};
63
58
  this.destroy$ = new Subject();
64
- this._nzxBtnSpan = null;
65
59
  this.queryForm = this.fb.group({});
66
60
  }
67
61
  ngOnChanges(changes) {
@@ -85,7 +79,26 @@ export class NzxConfigurableQueryComponent {
85
79
  ...this.fixedParams,
86
80
  };
87
81
  });
88
- this._nzxBtnSpan = this.nzxBtnSpan;
82
+ }
83
+ ngAfterViewInit() {
84
+ if (this.queyFormEl) {
85
+ fromEvent(this.queyFormEl.nativeElement, 'keydown')
86
+ .pipe(takeUntil(this.destroy$))
87
+ .subscribe((event) => {
88
+ if (event.key === 'Enter') {
89
+ event.stopPropagation();
90
+ event.preventDefault();
91
+ this.search();
92
+ }
93
+ // 检查是否同时按下了Ctrl键(在Windows/Linux上)和S键
94
+ if ((event.ctrlKey || event.metaKey) && event.key === 'r') {
95
+ // 注意:event.metaKey用于兼容Mac的Command键
96
+ event.preventDefault(); // 阻止浏览器默认的保存行为
97
+ event.stopPropagation();
98
+ this.reset();
99
+ }
100
+ });
101
+ }
89
102
  }
90
103
  ngAfterContentInit() {
91
104
  this.generateForm(this.controls);
@@ -102,27 +115,34 @@ export class NzxConfigurableQueryComponent {
102
115
  * 根据controlName设置config值
103
116
  */
104
117
  setControl(controlName, config) {
105
- Promise.resolve().then(() => {
118
+ setTimeout(() => {
106
119
  const control = this.getControl(controlName);
107
120
  if (control) {
108
121
  Object.keys(config).forEach((key) => {
109
122
  control[key] = config[key];
110
123
  });
124
+ this.cd.markForCheck();
111
125
  }
112
- });
126
+ }, 0);
113
127
  }
114
128
  /**
115
129
  * 动态添加控件
130
+ * @param config 配置项
131
+ * @param position 添加位置 不传为末尾
116
132
  */
117
- addControl(config) {
133
+ addControl(config, position) {
118
134
  const control = this.getControl(config.controlName);
119
135
  if (!control) {
120
- this.collapse();
121
136
  if (config.controlName) {
122
137
  this.queryForm.addControl(config.controlName, config.controlInstance ?? this.fb.control(config.default ?? null));
123
138
  }
124
- this.controls.push(config);
125
- this.cd.markForCheck();
139
+ if (position === void 0 || position === null) {
140
+ this.controls.push(config);
141
+ }
142
+ else {
143
+ this.controls.splice(position - 1, 0, config);
144
+ }
145
+ this.calculateText();
126
146
  }
127
147
  else {
128
148
  throw `The control name: '${config.controlName}' already exists!`;
@@ -134,10 +154,9 @@ export class NzxConfigurableQueryComponent {
134
154
  removeControl(controlName) {
135
155
  const control = this.getControl(controlName);
136
156
  if (control) {
137
- this.collapse();
138
157
  this.queryForm.removeControl(controlName);
139
158
  this.controls = this.controls.filter((c) => c.controlName !== controlName);
140
- this.cd.markForCheck();
159
+ this.calculateText();
141
160
  }
142
161
  else {
143
162
  throw `The control name: '${controlName}' not find!`;
@@ -175,39 +194,39 @@ export class NzxConfigurableQueryComponent {
175
194
  }
176
195
  /**展开、收起*/
177
196
  toggleCollapse() {
178
- this.controls.forEach((config) => {
179
- if (this.isCollapse && config.collapse === true) {
180
- // 展开
197
+ for (let index = 0; index < this.controls.length; index++) {
198
+ const config = this.controls[index];
199
+ if (config.hasOwnProperty('collapse') && config.collapse === true) {
181
200
  config.collapse = false;
182
- this.nzxBtnSpan = 24;
183
201
  }
184
- if (!this.isCollapse && config.collapse === false) {
202
+ else if (config.hasOwnProperty('collapse') &&
203
+ config.collapse === false) {
185
204
  config.collapse = true;
186
- this.nzxBtnSpan = this._nzxBtnSpan;
187
205
  }
188
- });
189
- this.isCollapse = !this.isCollapse;
206
+ }
207
+ this.calculateText();
190
208
  }
191
209
  ngOnDestroy() {
192
210
  this.destroy$.next();
193
211
  this.destroy$.complete();
194
212
  }
213
+ calculateText() {
214
+ if (this.controls.some((i) => i.collapse === true)) {
215
+ this.collapseIcon = 'down';
216
+ this.collapseText = this.locale.expand;
217
+ }
218
+ else {
219
+ this.collapseIcon = 'up';
220
+ this.collapseText = this.locale.collapse;
221
+ }
222
+ this.cd.markForCheck();
223
+ }
195
224
  /** 清空表单控件 */
196
225
  clearFormControl() {
197
226
  Object.keys(this.queryForm.controls).forEach((key) => {
198
227
  this.queryForm.removeControl(key);
199
228
  });
200
229
  }
201
- /** 折叠 */
202
- collapse() {
203
- this.isCollapse = true;
204
- this.controls.forEach((config) => {
205
- if (config.collapse === false) {
206
- config.collapse = true;
207
- this.nzxBtnSpan = this._nzxBtnSpan;
208
- }
209
- });
210
- }
211
230
  /** 生成表单 */
212
231
  generateForm(controlConfigs) {
213
232
  this.clearFormControl();
@@ -227,13 +246,14 @@ export class NzxConfigurableQueryComponent {
227
246
  // 缓存回显查询条件
228
247
  this.queryForm.patchValue(this.cacheParams);
229
248
  }
249
+ this.calculateText();
230
250
  }
231
251
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NzxConfigurableQueryComponent, deps: [{ token: i1.NzI18nService }, { token: i2.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
232
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NzxConfigurableQueryComponent, selector: "nzx-configurable-query", inputs: { controls: "controls", nzxJustify: "nzxJustify", nzxGutter: "nzxGutter", lineNumber: "lineNumber", nzxBtnSpan: "nzxBtnSpan", nzxCollapse: "nzxCollapse", initQuery: "initQuery", fixedParams: "fixedParams" }, outputs: { queryChange: "queryChange", resetChange: "resetChange" }, queries: [{ propertyName: "controlTemplateList", predicate: NzxControlDirective, descendants: true }], exportAs: ["NzxConfigurableQuery"], usesOnChanges: true, ngImport: i0, template: "<form class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"nzxCollapse && config.collapse\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div class=\"nzx-query-btn\" nz-col [nzSpan]=\"nzxBtnSpan || 24 / lineNumber\">\n <div nz-row nzJustify=\"end\" nzAlign=\"middle\">\n <button nz-button nzType=\"primary\" type=\"button\" (click)=\"search()\">\n {{ locale[\"query\"] }}\n </button>\n <button nz-button type=\"button\" (click)=\"reset()\">\n {{ locale[\"reset\"] }}\n </button>\n <ng-content></ng-content>\n <a\n *ngIf=\"nzxCollapse\"\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </div>\n </div>\n </div>\n</form>\n", styles: [".nzx-query-container{padding:12px;background-color:#fff;border-radius:8px}.nzx-query-container [nz-form-label]{overflow:visible}.nzx-query-container .nzx-query-btn{flex-grow:2;max-width:none}.nzx-query-container .nzx-query-btn button{margin:0 4px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i5.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i6.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "directive", type: i9.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i10.NzxConfigurableQueryItemComponent, selector: "nzx-configurable-query-item", inputs: ["form", "control"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
252
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NzxConfigurableQueryComponent, selector: "nzx-configurable-query", inputs: { controls: "controls", nzxJustify: "nzxJustify", nzxGutter: "nzxGutter", lineNumber: "lineNumber", nzxBtnSpan: "nzxBtnSpan", initQuery: "initQuery", fixedParams: "fixedParams" }, outputs: { queryChange: "queryChange", resetChange: "resetChange" }, queries: [{ propertyName: "controlTemplateList", predicate: NzxControlDirective, descendants: true }], viewQueries: [{ propertyName: "queyFormEl", first: true, predicate: ["queyForm"], descendants: true }], exportAs: ["NzxConfigurableQuery"], usesOnChanges: true, ngImport: i0, template: "<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n class=\"nzx-query-btn\"\n nz-col\n [nzOrder]=\"controls.length\"\n [nzSpan]=\"nzxBtnSpan || 24 / lineNumber\"\n >\n <div nz-row nzJustify=\"end\" nzAlign=\"middle\">\n <button\n nz-button\n nzType=\"primary\"\n type=\"button\"\n title=\"Enter\"\n (click)=\"search()\"\n >\n {{ locale['query'] }}\n </button>\n <button nz-button type=\"button\" title=\"ctrl+r\" (click)=\"reset()\">\n {{ locale['reset'] }}\n </button>\n <ng-content></ng-content>\n <a\n *ngIf=\"nzxCollapse\"\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </div>\n </div>\n </div>\n</form>\n", styles: [".nzx-query-container{padding:12px;background-color:#fff;border-radius:8px}.nzx-query-container [nz-form-label]{overflow:visible}.nzx-query-container .nzx-query-btn{flex-grow:2;max-width:none}.nzx-query-container .nzx-query-btn button{margin:0 4px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i5.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i6.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "directive", type: i9.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i10.NzxConfigurableQueryItemComponent, selector: "nzx-configurable-query-item", inputs: ["form", "control"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
233
253
  }
234
254
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NzxConfigurableQueryComponent, decorators: [{
235
255
  type: Component,
236
- args: [{ selector: 'nzx-configurable-query', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'NzxConfigurableQuery', template: "<form class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"nzxCollapse && config.collapse\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div class=\"nzx-query-btn\" nz-col [nzSpan]=\"nzxBtnSpan || 24 / lineNumber\">\n <div nz-row nzJustify=\"end\" nzAlign=\"middle\">\n <button nz-button nzType=\"primary\" type=\"button\" (click)=\"search()\">\n {{ locale[\"query\"] }}\n </button>\n <button nz-button type=\"button\" (click)=\"reset()\">\n {{ locale[\"reset\"] }}\n </button>\n <ng-content></ng-content>\n <a\n *ngIf=\"nzxCollapse\"\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </div>\n </div>\n </div>\n</form>\n", styles: [".nzx-query-container{padding:12px;background-color:#fff;border-radius:8px}.nzx-query-container [nz-form-label]{overflow:visible}.nzx-query-container .nzx-query-btn{flex-grow:2;max-width:none}.nzx-query-container .nzx-query-btn button{margin:0 4px}\n"] }]
256
+ args: [{ selector: 'nzx-configurable-query', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'NzxConfigurableQuery', template: "<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n class=\"nzx-query-btn\"\n nz-col\n [nzOrder]=\"controls.length\"\n [nzSpan]=\"nzxBtnSpan || 24 / lineNumber\"\n >\n <div nz-row nzJustify=\"end\" nzAlign=\"middle\">\n <button\n nz-button\n nzType=\"primary\"\n type=\"button\"\n title=\"Enter\"\n (click)=\"search()\"\n >\n {{ locale['query'] }}\n </button>\n <button nz-button type=\"button\" title=\"ctrl+r\" (click)=\"reset()\">\n {{ locale['reset'] }}\n </button>\n <ng-content></ng-content>\n <a\n *ngIf=\"nzxCollapse\"\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </div>\n </div>\n </div>\n</form>\n", styles: [".nzx-query-container{padding:12px;background-color:#fff;border-radius:8px}.nzx-query-container [nz-form-label]{overflow:visible}.nzx-query-container .nzx-query-btn{flex-grow:2;max-width:none}.nzx-query-container .nzx-query-btn button{margin:0 4px}\n"] }]
237
257
  }], ctorParameters: function () { return [{ type: i1.NzI18nService }, { type: i2.FormBuilder }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { controls: [{
238
258
  type: Input
239
259
  }], nzxJustify: [{
@@ -244,8 +264,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
244
264
  type: Input
245
265
  }], nzxBtnSpan: [{
246
266
  type: Input
247
- }], nzxCollapse: [{
248
- type: Input
249
267
  }], initQuery: [{
250
268
  type: Input
251
269
  }], fixedParams: [{
@@ -254,8 +272,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
254
272
  type: Output
255
273
  }], resetChange: [{
256
274
  type: Output
275
+ }], queyFormEl: [{
276
+ type: ViewChild,
277
+ args: ['queyForm']
257
278
  }], controlTemplateList: [{
258
279
  type: ContentChildren,
259
280
  args: [NzxControlDirective, { descendants: true }]
260
281
  }] } });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLXF1ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLXF1ZXJ5L2NvbmZpZ3VyYWJsZS1xdWVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbmZpZ3VyYWJsZS1xdWVyeS9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxHQUlQLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7QUFHMUQ7OztHQUdHO0FBU0gsTUFBTSxPQUFPLDZCQUE2QjtJQTZCeEMsWUFBWTtJQUNaLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDckUsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7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SSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsV0FBVztZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7K0dBelFVLDZCQUE2QjttR0FBN0IsNkJBQTZCLCtYQXdEdkIsbUJBQW1CLHlHQy9GdEMsbXlDQXVDQTs7NEZEQWEsNkJBQTZCO2tCQVB6QyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxzQkFBc0I7OEpBTXZCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLFdBQVc7c0JBQXBCLE1BQU07Z0JBaUNQLG1CQUFtQjtzQkFEbEIsZUFBZTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTnp4UXVlcnlJMThuSW50ZXJmYWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vaTE4bic7XHJcbmltcG9ydCB7IHVwZGF0ZUNvbnRyb2xTdGF0dXMgfSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi91dGlsJztcclxuaW1wb3J0IHsgTnpKdXN0aWZ5IH0gZnJvbSAnbmctem9ycm8tYW50ZC9ncmlkJztcclxuaW1wb3J0IHsgTnpJMThuU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaTE4bic7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOenhDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9jb250cm9sLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE56eFF1ZXJ5Q29udHJvbE9wdGlvbnMsIE56eFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi90eXBlJztcclxuXHJcbi8qKlxyXG4gKiDmn6Xor6Lnu4Tku7ZcclxuICog5pSv5oyB5qih5p2/6Ieq5a6a5LmJ77yM5Zyo5L2/55So5qih5p2/6Ieq5a6a5LmJ5pe277yM6KaB5rOo5oSPY29udHJvbFR5cGXlupTor6Xorr7nva7kuLpUZW1wbGF0ZeW5tuS4lOehruS/nWNvbnRyb2xOYW1l5LiO5oyH5Luk5LiK55qEbnp4Q29udHJvbOW6lOivpeebuOWQjFxyXG4gKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbnp4LWNvbmZpZ3VyYWJsZS1xdWVyeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpZ3VyYWJsZS1xdWVyeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29uZmlndXJhYmxlLXF1ZXJ5LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZXhwb3J0QXM6ICdOenhDb25maWd1cmFibGVRdWVyeScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOenhDb25maWd1cmFibGVRdWVyeUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveVxyXG57XHJcbiAgLyoqIOmFjee9rumhuSAqL1xyXG4gIEBJbnB1dCgpIGNvbnRyb2xzOiBBcnJheTxOenhRdWVyeUNvbnRyb2xPcHRpb25zPiA9IFtdO1xyXG4gIC8qKiDmn6Xor6LooajljZXmjpLliJfmlrnlvI8gKi9cclxuICBASW5wdXQoKSBuenhKdXN0aWZ5OiBOekp1c3RpZnkgPSAnc3RhcnQnO1xyXG4gIC8qKiDmn6Xor6Lpobnpl7TpmpQgKi9cclxuICBASW5wdXQoKSBuenhHdXR0ZXI6IG51bWJlciA9IDg7XHJcbiAgLyoqIOS4gOihjOWxleekuuWkmuWwkeafpeivoumhuSAqL1xyXG4gIEBJbnB1dCgpIGxpbmVOdW1iZXI6IG51bWJlciA9IDM7XHJcbiAgLyoqIOaTjeS9nOaMiemSruaJgOWNoOagheagvOaVsO+8jDI05YiZ5o2i6KGMICovXHJcbiAgQElucHV0KCkgbnp4QnRuU3BhbjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgLyoq5ZCv55So5oqY5Y+gICovXHJcbiAgQElucHV0KCkgbnp4Q29sbGFwc2UgPSB0cnVlO1xyXG4gIC8qKiDliJ3lp4vljJbml7bvvIzkuLvliqjmn6Xor6IgKi9cclxuICBASW5wdXQoKSBpbml0UXVlcnkgPSBmYWxzZTtcclxuXHJcbiAgLyoqIOe8uuecgSDlm7rlrprlj4LmlbAgKi9cclxuICBASW5wdXQoKSBmaXhlZFBhcmFtcyA9IHt9O1xyXG5cclxuICAvKiog5p+l6K+i5pe25Lya6Kem5Y+R5oqb5Ye65p+l6K+i5Y+C5pWwICovXHJcbiAgQE91dHB1dCgpIHF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxOenhRdWVyeVBhcmFtcz4oKTtcclxuICAvKiog6YeN572u5pe25Lya6Kem5Y+R5oqb5Ye65p+l6K+i5Y+C5pWwICovXHJcbiAgQE91dHB1dCgpIHJlc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxOenhRdWVyeVBhcmFtcz4oKTtcclxuXHJcbiAgLyoqIGZvcm0g6KGo5Y2VKi9cclxuICBxdWVyeUZvcm0hOiBGb3JtR3JvdXA7XHJcblxyXG4gIC8qKiDmn6Xor6Lnu4Tku7blh7rlj4IqL1xyXG4gIGdldCBxdWVyeVBhcmFtcygpIHtcclxuICAgIHJldHVybiB0aGlzLl9xdWVyeVBhcmFtcztcclxuICB9XHJcblxyXG4gIHNldCBxdWVyeVBhcmFtcyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbGxhcHNlVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2UgPyB0aGlzLmxvY2FsZS5leHBhbmQgOiB0aGlzLmxvY2FsZS5jb2xsYXBzZTtcclxuICB9XHJcblxyXG4gIGdldCBjb2xsYXBzZUljb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0NvbGxhcHNlID8gJ2Rvd24nIDogJ3VwJztcclxuICB9XHJcblxyXG4gIGxvY2FsZSE6IE56eFF1ZXJ5STE4bkludGVyZmFjZTtcclxuXHJcbiAgLyoq5piv5ZCm5bGV5byA54q25oCBKi9cclxuICBwcml2YXRlIGlzQ29sbGFwc2UgPSB0cnVlO1xyXG4gIHByaXZhdGUgX3F1ZXJ5UGFyYW1zOiBOenhRdWVyeVBhcmFtcyA9IHt9O1xyXG4gIHByaXZhdGUgZGVmYXVsdFZhbHVlOiBOenhRdWVyeVBhcmFtcyA9IHt9O1xyXG4gIHByaXZhdGUgY2FjaGVQYXJhbXM6IE56eFF1ZXJ5UGFyYW1zID0ge307XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfbnp4QnRuU3BhbjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oTnp4Q29udHJvbERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxyXG4gIGNvbnRyb2xUZW1wbGF0ZUxpc3QhOiBRdWVyeUxpc3Q8Tnp4Q29udHJvbERpcmVjdGl2ZT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpMThuOiBOekkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5xdWVyeUZvcm0gPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydjb250cm9scyddICYmICFjaGFuZ2VzWydjb250cm9scyddLmlzRmlyc3RDaGFuZ2UoKSkge1xyXG4gICAgICBjb25zdCBjb250cm9scyA9IGNoYW5nZXNbJ2NvbnRyb2xzJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb250cm9scykpIHtcclxuICAgICAgICB0aGlzLmdlbmVyYXRlRm9ybShjb250cm9scyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2NhbGUgPSB0aGlzLmkxOG4uZ2V0TG9jYWxlRGF0YSgnUXVlcnknKTtcclxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucXVlcnlGb3JtLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3F1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICAgICAgLi4udmFsLFxyXG4gICAgICAgICAgLi4udGhpcy5maXhlZFBhcmFtcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9uenhCdG5TcGFuID0gdGhpcy5uenhCdG5TcGFuO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZW5lcmF0ZUZvcm0odGhpcy5jb250cm9scyk7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5pdFF1ZXJ5KSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiog6K6+572u5p+l6K+i5YC86L+b6KGM5Zue5pi+ICovXHJcbiAgc2V0UXVlcnlQYXJhbXMoY2FjaGVQYXJhbXM6IE56eFF1ZXJ5UGFyYW1zKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhY2hlUGFyYW1zID0gY2FjaGVQYXJhbXM7XHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS5wYXRjaFZhbHVlKGNhY2hlUGFyYW1zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNrmNvbnRyb2xOYW1l6K6+572uY29uZmln5YC8XHJcbiAgICovXHJcbiAgc2V0Q29udHJvbChcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmcsXHJcbiAgICBjb25maWc6IFBhcnRpYWw8Tnp4UXVlcnlDb250cm9sT3B0aW9ucz5cclxuICApOiB2b2lkIHtcclxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGNvbnRyb2xOYW1lKTtcclxuICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhjb25maWcpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgKGNvbnRyb2wgYXMgYW55KVtrZXldID0gKGNvbmZpZyBhcyBhbnkpW2tleV07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5Yqo5oCB5re75Yqg5o6n5Lu2XHJcbiAgICovXHJcbiAgYWRkQ29udHJvbChjb25maWc6IE56eFF1ZXJ5Q29udHJvbE9wdGlvbnMpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woY29uZmlnLmNvbnRyb2xOYW1lKTtcclxuICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICB0aGlzLmNvbGxhcHNlKCk7XHJcbiAgICAgIGlmIChjb25maWcuY29udHJvbE5hbWUpIHtcclxuICAgICAgICB0aGlzLnF1ZXJ5Rm9ybS5hZGRDb250cm9sKFxyXG4gICAgICAgICAgY29uZmlnLmNvbnRyb2xOYW1lLFxyXG4gICAgICAgICAgY29uZmlnLmNvbnRyb2xJbnN0YW5jZSA/PyB0aGlzLmZiLmNvbnRyb2woY29uZmlnLmRlZmF1bHQgPz8gbnVsbClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29udHJvbHMucHVzaChjb25maWcpO1xyXG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgYFRoZSBjb250cm9sIG5hbWU6ICcke2NvbmZpZy5jb250cm9sTmFtZX0nIGFscmVhZHkgZXhpc3RzIWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoLnmja7mjqfku7blkI3liKDpmaTmjqfku7ZcclxuICAgKi9cclxuICByZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woY29udHJvbE5hbWUpO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZSgpO1xyXG4gICAgICB0aGlzLnF1ZXJ5Rm9ybS5yZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lKTtcclxuICAgICAgdGhpcy5jb250cm9scyA9IHRoaXMuY29udHJvbHMuZmlsdGVyKFxyXG4gICAgICAgIChjKSA9PiBjLmNvbnRyb2xOYW1lICE9PSBjb250cm9sTmFtZVxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IGBUaGUgY29udHJvbCBuYW1lOiAnJHtjb250cm9sTmFtZX0nIG5vdCBmaW5kIWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoLnmja5jb250cm9sTmFtZeiOt+WPlmNvbmZpZ+mhuVxyXG4gICAqL1xyXG4gIGdldENvbnRyb2woXHJcbiAgICBjb250cm9sTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbiAgKTogTnp4UXVlcnlDb250cm9sT3B0aW9ucyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9scy5maW5kKChjb25maWcpID0+IGNvbmZpZy5jb250cm9sTmFtZSA9PT0gY29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qOA57Si57uZ5a6a5o6n5Lu25ZCN56ew5oiW6Lev5b6E55qE5a2Q5o6n5Lu244CCXHJcbiAgICog6L+Z5LiqIGdldEZvcm1Db250cm9sIOetvuWQjeaUr+aMgeWtl+espuS4suWSjCBjb25zdCDmlbDnu4TvvIguZ2V0Rm9ybUNvbnRyb2woWydmb28nLCAnYmFyJ10gYXMgY29uc3Qp77yJXHJcbiAgICovXHJcbiAgZ2V0Rm9ybUNvbnRyb2woXHJcbiAgICBwYXRoOiBzdHJpbmcgfCByZWFkb25seSAoc3RyaW5nIHwgbnVtYmVyKVtdXHJcbiAgKTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMucXVlcnlGb3JtLmdldChwYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKiDmn6Xor6IgKi9cclxuICBzZWFyY2goKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5xdWVyeUZvcm0uaW52YWxpZCkge1xyXG4gICAgICB1cGRhdGVDb250cm9sU3RhdHVzKHRoaXMucXVlcnlGb3JtKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5xdWVyeUNoYW5nZS5lbWl0KHRoaXMuX3F1ZXJ5UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIC8qKiDph43nva4gKi9cclxuICByZXNldCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnF1ZXJ5Rm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHVwZGF0ZUNvbnRyb2xTdGF0dXModGhpcy5xdWVyeUZvcm0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS5yZXNldCh0aGlzLmRlZmF1bHRWYWx1ZSk7XHJcbiAgICB0aGlzLnJlc2V0Q2hhbmdlLmVtaXQodGhpcy5fcXVlcnlQYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgLyoq5bGV5byA44CB5pS26LW3Ki9cclxuICB0b2dnbGVDb2xsYXBzZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbHMuZm9yRWFjaCgoY29uZmlnKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzQ29sbGFwc2UgJiYgY29uZmlnLmNvbGxhcHNlID09PSB0cnVlKSB7XHJcbiAgICAgICAgLy8g5bGV5byAXHJcbiAgICAgICAgY29uZmlnLmNvbGxhcHNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5uenhCdG5TcGFuID0gMjQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLmlzQ29sbGFwc2UgJiYgY29uZmlnLmNvbGxhcHNlID09PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbmZpZy5jb2xsYXBzZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5uenhCdG5TcGFuID0gdGhpcy5fbnp4QnRuU3BhbjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlzQ29sbGFwc2UgPSAhdGhpcy5pc0NvbGxhcHNlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIC8qKiDmuIXnqbrooajljZXmjqfku7YgKi9cclxuICBwcml2YXRlIGNsZWFyRm9ybUNvbnRyb2woKTogdm9pZCB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLnF1ZXJ5Rm9ybS5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIHRoaXMucXVlcnlGb3JtLnJlbW92ZUNvbnRyb2woa2V5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIOaKmOWPoCAqL1xyXG4gIHByaXZhdGUgY29sbGFwc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzQ29sbGFwc2UgPSB0cnVlO1xyXG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKChjb25maWcpID0+IHtcclxuICAgICAgaWYgKGNvbmZpZy5jb2xsYXBzZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICBjb25maWcuY29sbGFwc2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubnp4QnRuU3BhbiA9IHRoaXMuX256eEJ0blNwYW47XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIOeUn+aIkOihqOWNlSAqL1xyXG4gIHByaXZhdGUgZ2VuZXJhdGVGb3JtKGNvbnRyb2xDb25maWdzOiBBcnJheTxOenhRdWVyeUNvbnRyb2xPcHRpb25zPik6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhckZvcm1Db250cm9sKCk7XHJcblxyXG4gICAgZm9yIChjb25zdCBjb25maWcgb2YgY29udHJvbENvbmZpZ3MpIHtcclxuICAgICAgaWYgKGNvbmZpZy5jb250cm9sVHlwZSA9PT0gJ1RlbXBsYXRlJykge1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmNvbnRyb2xUZW1wbGF0ZUxpc3QuZmluZChcclxuICAgICAgICAgIChkaXJlY3RpdmUpID0+IGRpcmVjdGl2ZS5uenhDb250cm9sID09PSBjb25maWcuY29udHJvbE5hbWVcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgICBjb25maWcudGVtcGxhdGVSZWYgPSBpdGVtLnRlbXBsYXRlUmVmO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLmNvbnRyb2xOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5xdWVyeUZvcm0uYWRkQ29udHJvbChcclxuICAgICAgICAgIGNvbmZpZy5jb250cm9sTmFtZSxcclxuICAgICAgICAgIGNvbmZpZy5jb250cm9sSW5zdGFuY2UgPz8gdGhpcy5mYi5jb250cm9sKGNvbmZpZy5kZWZhdWx0ID8/IG51bGwpXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLnF1ZXJ5Rm9ybS5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgaWYgKHRoaXMuY2FjaGVQYXJhbXMpIHtcclxuICAgICAgLy8g57yT5a2Y5Zue5pi+5p+l6K+i5p2h5Lu2XHJcbiAgICAgIHRoaXMucXVlcnlGb3JtLnBhdGNoVmFsdWUodGhpcy5jYWNoZVBhcmFtcyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIGNsYXNzPVwibnp4LXF1ZXJ5LWNvbnRhaW5lclwiIG56LWZvcm0gW2Zvcm1Hcm91cF09XCJxdWVyeUZvcm1cIj5cbiAgPGRpdiBuei1yb3cgW256R3V0dGVyXT1cIm56eEd1dHRlclwiIFtuekp1c3RpZnldPVwibnp4SnVzdGlmeVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbmZpZyBvZiBjb250cm9sc1wiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIiFjb25maWcuaGlkZGVuXCJcbiAgICAgICAgbnotY29sXG4gICAgICAgIFtuelNwYW5dPVwiY29uZmlnLm56eFNwYW4gfHwgMjQgLyBsaW5lTnVtYmVyXCJcbiAgICAgICAgW2hpZGRlbl09XCJuenhDb2xsYXBzZSAmJiBjb25maWcuY29sbGFwc2VcIlxuICAgICAgPlxuICAgICAgICA8bnp4LWNvbmZpZ3VyYWJsZS1xdWVyeS1pdGVtXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuY29udHJvbE5hbWVcIlxuICAgICAgICAgIFtmb3JtXT1cInF1ZXJ5Rm9ybVwiXG4gICAgICAgICAgW2NvbnRyb2xdPVwiY29uZmlnXCJcbiAgICAgICAgPjwvbnp4LWNvbmZpZ3VyYWJsZS1xdWVyeS1pdGVtPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwibnp4LXF1ZXJ5LWJ0blwiIG56LWNvbCBbbnpTcGFuXT1cIm56eEJ0blNwYW4gfHwgMjQgLyBsaW5lTnVtYmVyXCI+XG4gICAgICA8ZGl2IG56LXJvdyBuekp1c3RpZnk9XCJlbmRcIiBuekFsaWduPVwibWlkZGxlXCI+XG4gICAgICAgIDxidXR0b24gbnotYnV0dG9uIG56VHlwZT1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNlYXJjaCgpXCI+XG4gICAgICAgICAge3sgbG9jYWxlW1wicXVlcnlcIl0gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbnotYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVzZXQoKVwiPlxuICAgICAgICAgIHt7IGxvY2FsZVtcInJlc2V0XCJdIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCJuenhDb2xsYXBzZVwiXG4gICAgICAgICAgbnotYnV0dG9uXG4gICAgICAgICAgbnpUeXBlPVwibGlua1wiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY29sbGFwc2VUZXh0IH19XG4gICAgICAgICAgPGkgbnotaWNvbiBbbnpUeXBlXT1cImNvbGxhcHNlSWNvblwiPjwvaT5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLXF1ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLXF1ZXJ5L2NvbmZpZ3VyYWJsZS1xdWVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbmZpZ3VyYWJsZS1xdWVyeS9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUduRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7OztBQUcxRDs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sNkJBQTZCO0lBdUJ4QyxZQUFZO0lBQ1osSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQWlCRCxZQUNVLElBQW1CLEVBQ25CLEVBQWUsRUFDZixFQUFxQjtRQUZyQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWxEL0IsVUFBVTtRQUNELGFBQVEsR0FBa0MsRUFBRSxDQUFDO1FBQ3RELGVBQWU7UUFDTixlQUFVLEdBQWMsT0FBTyxDQUFDO1FBQ3pDLFlBQVk7UUFDSCxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQy9CLGdCQUFnQjtRQUNQLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDaEMsc0JBQXNCO1FBQ2IsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFDMUMsZ0JBQWdCO1FBQ1AsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUMzQixjQUFjO1FBQ0wsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUIsbUJBQW1CO1FBQ1QsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUMzRCxtQkFBbUI7UUFDVCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBaUIzRCxpQkFBWSxHQUFXLE1BQU0sQ0FBQztRQUM5QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUVsQixpQkFBWSxHQUFtQixFQUFFLENBQUM7UUFDbEMsaUJBQVksR0FBbUIsRUFBRSxDQUFDO1FBQ2xDLGdCQUFXLEdBQW1CLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVdyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDL0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUNsRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0I7U0FDRjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFL0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWTthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHO2dCQUNsQixHQUFHLEdBQUc7Z0JBQ04sR0FBRyxJQUFJLENBQUMsV0FBVzthQUNwQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixTQUFTLENBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQztpQkFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzlCLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFO29CQUN6QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUNmO2dCQUNELHFDQUFxQztnQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFO29CQUN6RCxtQ0FBbUM7b0JBQ25DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLGVBQWU7b0JBQ3ZDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUNkO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFakMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixjQUFjLENBQUMsV0FBMkI7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUNSLFdBQW1CLEVBQ25CLE1BQXVDO1FBRXZDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdDLElBQUksT0FBTyxFQUFFO2dCQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2pDLE9BQWUsQ0FBQyxHQUFHLENBQUMsR0FBSSxNQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQy9DLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDeEI7UUFDSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FDUixNQUE4QixFQUM5QixRQUE2QjtRQUU3QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO2dCQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FDdkIsTUFBTSxDQUFDLFdBQVcsRUFDbEIsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUNsRSxDQUFDO2FBQ0g7WUFDRCxJQUFJLFFBQVEsS0FBSyxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO2dCQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUMvQztZQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjthQUFNO1lBQ0wsTUFBTSxzQkFBc0IsTUFBTSxDQUFDLFdBQVcsbUJBQW1CLENBQUM7U0FDbkU7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsV0FBbUI7UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ2xDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FDckMsQ0FBQztZQUVGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjthQUFNO1lBQ0wsTUFBTSxzQkFBc0IsV0FBVyxhQUFhLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQ1IsV0FBK0I7UUFFL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUNaLElBQTJDO1FBRTNDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVM7SUFDVCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtZQUMxQixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxTQUFTO0lBQ1QsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDMUIsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFVBQVU7SUFDVixjQUFjO1FBQ1osS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO2dCQUNoRSxNQUFNLENBQUMsUUFBb0IsR0FBRyxLQUFLLENBQUM7YUFDdEM7aUJBQU0sSUFDTCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLFFBQW9CLEtBQUssS0FBSyxFQUN0QztnQkFDQSxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUN4QjtTQUNGO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7WUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUN4QzthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUMxQztRQUNELElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGFBQWE7SUFDTCxnQkFBZ0I7UUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7SUFDSCxZQUFZLENBQUMsY0FBNkM7UUFDaEUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxjQUFjLEVBQUU7WUFDbkMsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRTtnQkFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDeEMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLFdBQVcsQ0FDM0QsQ0FBQztnQkFDRixJQUFJLElBQUksRUFBRTtvQkFDUixNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7aUJBQ3ZDO2FBQ0Y7WUFDRCxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUN2QixNQUFNLENBQUMsV0FBVyxFQUNsQixNQUFNLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQ2xFLENBQUM7YUFDSDtTQUNGO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixXQUFXO1lBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7K0dBOVJVLDZCQUE2QjttR0FBN0IsNkJBQTZCLG1XQStDdkIsbUJBQW1CLGlOQ3ZGdEMsbytDQW1EQTs7NEZEWGEsNkJBQTZCO2tCQVB6QyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxzQkFBc0I7OEpBTXZCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQXlCd0IsVUFBVTtzQkFBeEMsU0FBUzt1QkFBQyxVQUFVO2dCQUVyQixtQkFBbUI7c0JBRGxCLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBOenhRdWVyeUkxOG5JbnRlcmZhY2UgfSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi9pMThuJztcclxuaW1wb3J0IHsgdXBkYXRlQ29udHJvbFN0YXR1cyB9IGZyb20gJ25nLXpvcnJvLWFudGQtZXh0ZW5zaW9uL3V0aWwnO1xyXG5pbXBvcnQgeyBOekp1c3RpZnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2dyaWQnO1xyXG5pbXBvcnQgeyBOekkxOG5TZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pMThuJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTnp4Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOenhRdWVyeUNvbnRyb2xPcHRpb25zLCBOenhRdWVyeVBhcmFtcyB9IGZyb20gJy4vdHlwZSc7XHJcblxyXG4vKipcclxuICog5p+l6K+i57uE5Lu2XHJcbiAqIOaUr+aMgeaooeadv+iHquWumuS5ie+8jOWcqOS9v+eUqOaooeadv+iHquWumuS5ieaXtu+8jOimgeazqOaEj2NvbnRyb2xUeXBl5bqU6K+l6K6+572u5Li6VGVtcGxhdGXlubbkuJTnoa7kv51jb250cm9sTmFtZeS4juaMh+S7pOS4iueahG56eENvbnRyb2zlupTor6Xnm7jlkIxcclxuICovXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ256eC1jb25maWd1cmFibGUtcXVlcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpZ3VyYWJsZS1xdWVyeS5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGV4cG9ydEFzOiAnTnp4Q29uZmlndXJhYmxlUXVlcnknLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnp4Q29uZmlndXJhYmxlUXVlcnlDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gIC8qKiDphY3nva7pobkgKi9cclxuICBASW5wdXQoKSBjb250cm9sczogQXJyYXk8Tnp4UXVlcnlDb250cm9sT3B0aW9ucz4gPSBbXTtcclxuICAvKiog5p+l6K+i6KGo5Y2V5o6S5YiX5pa55byPICovXHJcbiAgQElucHV0KCkgbnp4SnVzdGlmeTogTnpKdXN0aWZ5ID0gJ3N0YXJ0JztcclxuICAvKiog5p+l6K+i6aG56Ze06ZqUICovXHJcbiAgQElucHV0KCkgbnp4R3V0dGVyOiBudW1iZXIgPSA4O1xyXG4gIC8qKiDkuIDooYzlsZXnpLrlpJrlsJHmn6Xor6LpobkgKi9cclxuICBASW5wdXQoKSBsaW5lTnVtYmVyOiBudW1iZXIgPSAzO1xyXG4gIC8qKiDmk43kvZzmjInpkq7miYDljaDmoIXmoLzmlbDvvIwyNOWImeaNouihjCAqL1xyXG4gIEBJbnB1dCgpIG56eEJ0blNwYW46IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIC8qKiDliJ3lp4vljJbml7bvvIzkuLvliqjmn6Xor6IgKi9cclxuICBASW5wdXQoKSBpbml0UXVlcnkgPSBmYWxzZTtcclxuICAvKiog57y655yBIOWbuuWumuWPguaVsCAqL1xyXG4gIEBJbnB1dCgpIGZpeGVkUGFyYW1zID0ge307XHJcblxyXG4gIC8qKiDmn6Xor6Lml7bkvJrop6blj5Hmipvlh7rmn6Xor6Llj4LmlbAgKi9cclxuICBAT3V0cHV0KCkgcXVlcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE56eFF1ZXJ5UGFyYW1zPigpO1xyXG4gIC8qKiDph43nva7ml7bkvJrop6blj5Hmipvlh7rmn6Xor6Llj4LmlbAgKi9cclxuICBAT3V0cHV0KCkgcmVzZXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE56eFF1ZXJ5UGFyYW1zPigpO1xyXG5cclxuICAvKiog5p+l6K+i57uE5Lu25Ye65Y+CKi9cclxuICBnZXQgcXVlcnlQYXJhbXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlQYXJhbXM7XHJcbiAgfVxyXG4gIHNldCBxdWVyeVBhcmFtcyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG56eENvbGxhcHNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbHMuc29tZSgoaSkgPT4gaS5oYXNPd25Qcm9wZXJ0eSgnY29sbGFwc2UnKSk7XHJcbiAgfVxyXG5cclxuICAvKiogZm9ybSDooajljZUqL1xyXG4gIHF1ZXJ5Rm9ybSE6IEZvcm1Hcm91cDtcclxuICBsb2NhbGUhOiBOenhRdWVyeUkxOG5JbnRlcmZhY2U7XHJcbiAgY29sbGFwc2VJY29uOiBzdHJpbmcgPSAnZG93bic7XHJcbiAgY29sbGFwc2VUZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfcXVlcnlQYXJhbXM6IE56eFF1ZXJ5UGFyYW1zID0ge307XHJcbiAgcHJpdmF0ZSBkZWZhdWx0VmFsdWU6IE56eFF1ZXJ5UGFyYW1zID0ge307XHJcbiAgcHJpdmF0ZSBjYWNoZVBhcmFtczogTnp4UXVlcnlQYXJhbXMgPSB7fTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgncXVleUZvcm0nKSBwcml2YXRlIHF1ZXlGb3JtRWwhOiBFbGVtZW50UmVmPEhUTUxGb3JtRWxlbWVudD47XHJcbiAgQENvbnRlbnRDaGlsZHJlbihOenhDb250cm9sRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXHJcbiAgY29udHJvbFRlbXBsYXRlTGlzdCE6IFF1ZXJ5TGlzdDxOenhDb250cm9sRGlyZWN0aXZlPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGkxOG46IE56STE4blNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe30pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2NvbnRyb2xzJ10gJiYgIWNoYW5nZXNbJ2NvbnRyb2xzJ10uaXNGaXJzdENoYW5nZSgpKSB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xzID0gY2hhbmdlc1snY29udHJvbHMnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbnRyb2xzKSkge1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVGb3JtKGNvbnRyb2xzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvY2FsZSA9IHRoaXMuaTE4bi5nZXRMb2NhbGVEYXRhKCdRdWVyeScpO1xyXG5cclxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucXVlcnlGb3JtLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3F1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICAgICAgLi4udmFsLFxyXG4gICAgICAgICAgLi4udGhpcy5maXhlZFBhcmFtcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnF1ZXlGb3JtRWwpIHtcclxuICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMucXVleUZvcm1FbC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8g5qOA5p+l5piv5ZCm5ZCM5pe25oyJ5LiL5LqGQ3RybOmUru+8iOWcqFdpbmRvd3MvTGludXjkuIrvvInlkoxT6ZSuXHJcbiAgICAgICAgICBpZiAoKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkgJiYgZXZlbnQua2V5ID09PSAncicpIHtcclxuICAgICAgICAgICAgLy8g5rOo5oSP77yaZXZlbnQubWV0YUtleeeUqOS6juWFvOWuuU1hY+eahENvbW1hbmTplK5cclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8g6Zi75q2i5rWP6KeI5Zmo6buY6K6k55qE5L+d5a2Y6KGM5Li6XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdlbmVyYXRlRm9ybSh0aGlzLmNvbnRyb2xzKTtcclxuXHJcbiAgICBpZiAodGhpcy5pbml0UXVlcnkpIHtcclxuICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiDorr7nva7mn6Xor6LlgLzov5vooYzlm57mmL4gKi9cclxuICBzZXRRdWVyeVBhcmFtcyhjYWNoZVBhcmFtczogTnp4UXVlcnlQYXJhbXMpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FjaGVQYXJhbXMgPSBjYWNoZVBhcmFtcztcclxuICAgIHRoaXMucXVlcnlGb3JtLnBhdGNoVmFsdWUoY2FjaGVQYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qC55o2uY29udHJvbE5hbWXorr7nva5jb25maWflgLxcclxuICAgKi9cclxuICBzZXRDb250cm9sKFxyXG4gICAgY29udHJvbE5hbWU6IHN0cmluZyxcclxuICAgIGNvbmZpZzogUGFydGlhbDxOenhRdWVyeUNvbnRyb2xPcHRpb25zPlxyXG4gICk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woY29udHJvbE5hbWUpO1xyXG4gICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbmZpZykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAoY29udHJvbCBhcyBhbnkpW2tleV0gPSAoY29uZmlnIGFzIGFueSlba2V5XTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWKqOaAgea3u+WKoOaOp+S7tlxyXG4gICAqIEBwYXJhbSBjb25maWcg6YWN572u6aG5XHJcbiAgICogQHBhcmFtIHBvc2l0aW9uIOa3u+WKoOS9jee9riDkuI3kvKDkuLrmnKvlsL5cclxuICAgKi9cclxuICBhZGRDb250cm9sKFxyXG4gICAgY29uZmlnOiBOenhRdWVyeUNvbnRyb2xPcHRpb25zLFxyXG4gICAgcG9zaXRpb24/OiBudW1iZXIgfCB1bmRlZmluZWRcclxuICApOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woY29uZmlnLmNvbnRyb2xOYW1lKTtcclxuICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICBpZiAoY29uZmlnLmNvbnRyb2xOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5xdWVyeUZvcm0uYWRkQ29udHJvbChcclxuICAgICAgICAgIGNvbmZpZy5jb250cm9sTmFtZSxcclxuICAgICAgICAgIGNvbmZpZy5jb250cm9sSW5zdGFuY2UgPz8gdGhpcy5mYi5jb250cm9sKGNvbmZpZy5kZWZhdWx0ID8/IG51bGwpXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocG9zaXRpb24gPT09IHZvaWQgMCB8fCBwb3NpdGlvbiA9PT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMucHVzaChjb25maWcpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMuc3BsaWNlKHBvc2l0aW9uIC0gMSwgMCwgY29uZmlnKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNhbGN1bGF0ZVRleHQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IGBUaGUgY29udHJvbCBuYW1lOiAnJHtjb25maWcuY29udHJvbE5hbWV9JyBhbHJlYWR5IGV4aXN0cyFgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qC55o2u5o6n5Lu25ZCN5Yig6Zmk5o6n5Lu2XHJcbiAgICovXHJcbiAgcmVtb3ZlQ29udHJvbChjb250cm9sTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGNvbnRyb2xOYW1lKTtcclxuICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgIHRoaXMucXVlcnlGb3JtLnJlbW92ZUNvbnRyb2woY29udHJvbE5hbWUpO1xyXG4gICAgICB0aGlzLmNvbnRyb2xzID0gdGhpcy5jb250cm9scy5maWx0ZXIoXHJcbiAgICAgICAgKGMpID0+IGMuY29udHJvbE5hbWUgIT09IGNvbnRyb2xOYW1lXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLmNhbGN1bGF0ZVRleHQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IGBUaGUgY29udHJvbCBuYW1lOiAnJHtjb250cm9sTmFtZX0nIG5vdCBmaW5kIWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoLnmja5jb250cm9sTmFtZeiOt+WPlmNvbmZpZ+mhuVxyXG4gICAqL1xyXG4gIGdldENvbnRyb2woXHJcbiAgICBjb250cm9sTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbiAgKTogTnp4UXVlcnlDb250cm9sT3B0aW9ucyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9scy5maW5kKChjb25maWcpID0+IGNvbmZpZy5jb250cm9sTmFtZSA9PT0gY29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qOA57Si57uZ5a6a5o6n5Lu25ZCN56ew5oiW6Lev5b6E55qE5a2Q5o6n5Lu244CCXHJcbiAgICog6L+Z5LiqIGdldEZvcm1Db250cm9sIOetvuWQjeaUr+aMgeWtl+espuS4suWSjCBjb25zdCDmlbDnu4TvvIguZ2V0Rm9ybUNvbnRyb2woWydmb28nLCAnYmFyJ10gYXMgY29uc3Qp77yJXHJcbiAgICovXHJcbiAgZ2V0Rm9ybUNvbnRyb2woXHJcbiAgICBwYXRoOiBzdHJpbmcgfCByZWFkb25seSAoc3RyaW5nIHwgbnVtYmVyKVtdXHJcbiAgKTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMucXVlcnlGb3JtLmdldChwYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKiDmn6Xor6IgKi9cclxuICBzZWFyY2goKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5xdWVyeUZvcm0uaW52YWxpZCkge1xyXG4gICAgICB1cGRhdGVDb250cm9sU3RhdHVzKHRoaXMucXVlcnlGb3JtKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5xdWVyeUNoYW5nZS5lbWl0KHRoaXMuX3F1ZXJ5UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIC8qKiDph43nva4gKi9cclxuICByZXNldCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnF1ZXJ5Rm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHVwZGF0ZUNvbnRyb2xTdGF0dXModGhpcy5xdWVyeUZvcm0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS5yZXNldCh0aGlzLmRlZmF1bHRWYWx1ZSk7XHJcbiAgICB0aGlzLnJlc2V0Q2hhbmdlLmVtaXQodGhpcy5fcXVlcnlQYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgLyoq5bGV5byA44CB5pS26LW3Ki9cclxuICB0b2dnbGVDb2xsYXBzZSgpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmNvbnRyb2xzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbnRyb2xzW2luZGV4XTtcclxuICAgICAgaWYgKGNvbmZpZy5oYXNPd25Qcm9wZXJ0eSgnY29sbGFwc2UnKSAmJiBjb25maWcuY29sbGFwc2UgPT09IHRydWUpIHtcclxuICAgICAgICAoY29uZmlnLmNvbGxhcHNlIGFzIGJvb2xlYW4pID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgY29uZmlnLmhhc093blByb3BlcnR5KCdjb2xsYXBzZScpICYmXHJcbiAgICAgICAgKGNvbmZpZy5jb2xsYXBzZSBhcyBib29sZWFuKSA9PT0gZmFsc2VcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uZmlnLmNvbGxhcHNlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVUZXh0KCkge1xyXG4gICAgaWYgKHRoaXMuY29udHJvbHMuc29tZSgoaSkgPT4gaS5jb2xsYXBzZSA9PT0gdHJ1ZSkpIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZUljb24gPSAnZG93bic7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VUZXh0ID0gdGhpcy5sb2NhbGUuZXhwYW5kO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZUljb24gPSAndXAnO1xyXG4gICAgICB0aGlzLmNvbGxhcHNlVGV4dCA9IHRoaXMubG9jYWxlLmNvbGxhcHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIC8qKiDmuIXnqbrooajljZXmjqfku7YgKi9cclxuICBwcml2YXRlIGNsZWFyRm9ybUNvbnRyb2woKTogdm9pZCB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLnF1ZXJ5Rm9ybS5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIHRoaXMucXVlcnlGb3JtLnJlbW92ZUNvbnRyb2woa2V5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIOeUn+aIkOihqOWNlSAqL1xyXG4gIHByaXZhdGUgZ2VuZXJhdGVGb3JtKGNvbnRyb2xDb25maWdzOiBBcnJheTxOenhRdWVyeUNvbnRyb2xPcHRpb25zPik6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhckZvcm1Db250cm9sKCk7XHJcblxyXG4gICAgZm9yIChjb25zdCBjb25maWcgb2YgY29udHJvbENvbmZpZ3MpIHtcclxuICAgICAgaWYgKGNvbmZpZy5jb250cm9sVHlwZSA9PT0gJ1RlbXBsYXRlJykge1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmNvbnRyb2xUZW1wbGF0ZUxpc3QuZmluZChcclxuICAgICAgICAgIChkaXJlY3RpdmUpID0+IGRpcmVjdGl2ZS5uenhDb250cm9sID09PSBjb25maWcuY29udHJvbE5hbWVcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgICBjb25maWcudGVtcGxhdGVSZWYgPSBpdGVtLnRlbXBsYXRlUmVmO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLmNvbnRyb2xOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5xdWVyeUZvcm0uYWRkQ29udHJvbChcclxuICAgICAgICAgIGNvbmZpZy5jb250cm9sTmFtZSxcclxuICAgICAgICAgIGNvbmZpZy5jb250cm9sSW5zdGFuY2UgPz8gdGhpcy5mYi5jb250cm9sKGNvbmZpZy5kZWZhdWx0ID8/IG51bGwpXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLnF1ZXJ5Rm9ybS5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgaWYgKHRoaXMuY2FjaGVQYXJhbXMpIHtcclxuICAgICAgLy8g57yT5a2Y5Zue5pi+5p+l6K+i5p2h5Lu2XHJcbiAgICAgIHRoaXMucXVlcnlGb3JtLnBhdGNoVmFsdWUodGhpcy5jYWNoZVBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtICNxdWV5Rm9ybSBjbGFzcz1cIm56eC1xdWVyeS1jb250YWluZXJcIiBuei1mb3JtIFtmb3JtR3JvdXBdPVwicXVlcnlGb3JtXCI+XG4gIDxkaXYgbnotcm93IFtuekd1dHRlcl09XCJuenhHdXR0ZXJcIiBbbnpKdXN0aWZ5XT1cIm56eEp1c3RpZnlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb25maWcgb2YgY29udHJvbHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCIhY29uZmlnLmhpZGRlblwiXG4gICAgICAgIG56LWNvbFxuICAgICAgICBbbnpTcGFuXT1cImNvbmZpZy5uenhTcGFuIHx8IDI0IC8gbGluZU51bWJlclwiXG4gICAgICAgIFtoaWRkZW5dPVwiY29uZmlnLmNvbGxhcHNlXCJcbiAgICAgICAgW256T3JkZXJdPVwiaVwiXG4gICAgICA+XG4gICAgICAgIDxuengtY29uZmlndXJhYmxlLXF1ZXJ5LWl0ZW1cbiAgICAgICAgICAqbmdJZj1cImNvbmZpZy5jb250cm9sTmFtZVwiXG4gICAgICAgICAgW2Zvcm1dPVwicXVlcnlGb3JtXCJcbiAgICAgICAgICBbY29udHJvbF09XCJjb25maWdcIlxuICAgICAgICA+PC9uengtY29uZmlndXJhYmxlLXF1ZXJ5LWl0ZW0+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibnp4LXF1ZXJ5LWJ0blwiXG4gICAgICBuei1jb2xcbiAgICAgIFtuek9yZGVyXT1cImNvbnRyb2xzLmxlbmd0aFwiXG4gICAgICBbbnpTcGFuXT1cIm56eEJ0blNwYW4gfHwgMjQgLyBsaW5lTnVtYmVyXCJcbiAgICA+XG4gICAgICA8ZGl2IG56LXJvdyBuekp1c3RpZnk9XCJlbmRcIiBuekFsaWduPVwibWlkZGxlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBuei1idXR0b25cbiAgICAgICAgICBuelR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICB0aXRsZT1cIkVudGVyXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VhcmNoKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgbG9jYWxlWydxdWVyeSddIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG56LWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGl0bGU9XCJjdHJsK3JcIiAoY2xpY2spPVwicmVzZXQoKVwiPlxuICAgICAgICAgIHt7IGxvY2FsZVsncmVzZXQnXSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8YVxuICAgICAgICAgICpuZ0lmPVwibnp4Q29sbGFwc2VcIlxuICAgICAgICAgIG56LWJ1dHRvblxuICAgICAgICAgIG56VHlwZT1cImxpbmtcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNvbGxhcHNlVGV4dCB9fVxuICAgICAgICAgIDxpIG56LWljb24gW256VHlwZV09XCJjb2xsYXBzZUljb25cIj48L2k+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLXF1ZXJ5L3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOenhPcHRpb25zIH0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vdHlwZXMnO1xuaW1wb3J0IHsgTnp4QWJzdHJhY3RDb250cm9sIH0gZnJvbSAnLi9jb250cm9scy9hYnN0cmFjdC5jb250cm9sJztcblxuLyoqXG4gKiDmn6Xor6Llj4LmlbBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOenhRdWVyeVBhcmFtcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxudHlwZSBDb250cm9sVHlwZSA9XG4gIHwgJ2lucHV0J1xuICB8ICdzZWxlY3QnXG4gIHwgJ2RhdGVQaWNrZXInXG4gIHwgJ3JhbmdlUGlja2VyJ1xuICB8ICdUZW1wbGF0ZSdcbiAgfCBzdHJpbmc7XG5cbi8qKlxuICog6YWN572u6aG5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnp4UXVlcnlDb250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiDmjqfku7blkI3lr7nlupTmn6Xor6Llj4LmlbDnmoRrZXlcbiAgICovXG4gIGNvbnRyb2xOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICog5o6n5Lu257G75Z6LXG4gICAqL1xuICBjb250cm9sVHlwZT86IENvbnRyb2xUeXBlO1xuXG4gIC8qKlxuICAgKiDmn6Xor6LmoYZsYWJlbFxuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiDmn6Xor6LmoYZwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiDmjqfku7bkuLpzZWxlY3Tml7bkuIvmi4npm4blkIhcbiAgICovXG4gIG1lbnVMaXN0PzogQXJyYXk8Tnp4T3B0aW9uczxhbnk+PjtcbiAgLyoqXG4gICAqIOaOp+S7tuS4unNlbGVjdOaXtuWFgeiuuOWNleeLrOa4heepulxuICAgKi9cbiAgbnp4QWxsb3dDbGVhcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiDmjqfku7bkuLpzZWxlY3Tml7blhYHorrjliY3nq6/mkJzntKJcbiAgICovXG4gIG56eFNob3dTZWFyY2g/OiBib29sZWFuO1xuICAvKipcbiAgICog5p+l6K+i6aG55omA5Y2g5qCF5qC85pWwXG4gICAqL1xuICBuenhTcGFuPzogbnVtYmVyO1xuICAvKipcbiAgICog5o6n5Lu26buY6K6k5YC877yM5rOo5oSP6buY6K6k5YC86YeN572u5pe25LiN5Lya5riF56m6XG4gICAqL1xuICBkZWZhdWx0PzogYW55O1xuICAvKipcbiAgICog5p+l6K+i6aG5bGFiZWzmiYDljaDmoIXmoLzmlbBcbiAgICovXG4gIG56eExTcGFuPzogbnVtYmVyO1xuICAvKipcbiAgICog5p+l6K+i6aG55o6n5Lu25omA5Y2g5qCF5qC85pWwXG4gICAqL1xuICBuenhSU3Bhbj86IG51bWJlcjtcbiAgLyoqXG4gICAqIOagoemqjOmUmeivr+aPkOekulxuICAgKi9cbiAgZXJyb3JUaXA/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiDmmK/lkKbopoHmipjlj6DvvIhuenhDb2xsYXBzZeW/hemhu+S4unRydWXmiY3nlJ/mlYjvvIlcbiAgICovXG4gIGNvbGxhcHNlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOmakOiXj+aOp+S7tijkuLvopoHnlKjmnaXmkLrluKbmn6Xor6Llj4LmlbDkvYbnlYzpnaLkuI3lj6/op4EpXG4gICAqL1xuICBoaWRkZW4/OiBib29sZWFuO1xuICAvKipcbiAgICog5o6n5Lu25a6e5L6L77yM5Y+v6YCJXG4gICAqL1xuICBjb250cm9sSW5zdGFuY2U/OiBBYnN0cmFjdENvbnRyb2w7XG4gIC8qKlxuICAgKiDoh6rlrprkuYnmqKHmnb9cbiAgICovXG4gIHRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE56eFF1ZXJ5Q29udHJvbFR5cGUge1xuICBrZXk6IHN0cmluZztcbiAgY29tcG9uZW50OiB0eXBlb2YgTnp4QWJzdHJhY3RDb250cm9sO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE56eFF1ZXJ5Q29uZmlnIHtcbiAgY29udHJvbFR5cGVzOiBOenhRdWVyeUNvbnRyb2xUeXBlW107XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLXF1ZXJ5L3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOenhPcHRpb25zIH0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vdHlwZXMnO1xuaW1wb3J0IHsgTnp4QWJzdHJhY3RDb250cm9sIH0gZnJvbSAnLi9jb250cm9scy9hYnN0cmFjdC5jb250cm9sJztcblxuLyoqXG4gKiDmn6Xor6Llj4LmlbBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOenhRdWVyeVBhcmFtcyB7XG5cdFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxudHlwZSBDb250cm9sVHlwZSA9XG5cdHwgJ2lucHV0J1xuXHR8ICdzZWxlY3QnXG5cdHwgJ2RhdGVQaWNrZXInXG5cdHwgJ3JhbmdlUGlja2VyJ1xuXHR8ICdUZW1wbGF0ZSdcblx0fCBzdHJpbmc7XG5cbi8qKlxuICog6YWN572u6aG5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnp4UXVlcnlDb250cm9sT3B0aW9ucyB7XG5cdC8qKlxuXHQgKiDmjqfku7blkI3lr7nlupTmn6Xor6Llj4LmlbDnmoRrZXlcblx0ICovXG5cdGNvbnRyb2xOYW1lPzogc3RyaW5nO1xuXHQvKipcblx0ICog5o6n5Lu257G75Z6LXG5cdCAqL1xuXHRjb250cm9sVHlwZT86IENvbnRyb2xUeXBlO1xuXG5cdC8qKlxuXHQgKiDmn6Xor6LmoYZsYWJlbFxuXHQgKi9cblx0bGFiZWw/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiDmn6Xor6LmoYZwbGFjZWhvbGRlclxuXHQgKi9cblx0cGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiDmjqfku7bkuLpzZWxlY3Tml7bkuIvmi4npm4blkIhcblx0ICovXG5cdG1lbnVMaXN0PzogQXJyYXk8Tnp4T3B0aW9uczxhbnk+Pjtcblx0LyoqXG5cdCAqIOaOp+S7tuS4unNlbGVjdOaXtuWFgeiuuOWNleeLrOa4heepulxuXHQgKi9cblx0bnp4QWxsb3dDbGVhcj86IGJvb2xlYW47XG5cdC8qKlxuXHQgKiDmjqfku7bkuLpzZWxlY3Tml7blhYHorrjliY3nq6/mkJzntKJcblx0ICovXG5cdG56eFNob3dTZWFyY2g/OiBib29sZWFuO1xuXHQvKipcblx0ICog5p+l6K+i6aG55omA5Y2g5qCF5qC85pWwXG5cdCAqL1xuXHRuenhTcGFuPzogbnVtYmVyO1xuXHQvKipcblx0ICog5o6n5Lu26buY6K6k5YC877yM5rOo5oSP6buY6K6k5YC86YeN572u5pe25LiN5Lya5riF56m6XG5cdCAqL1xuXHRkZWZhdWx0PzogYW55O1xuXHQvKipcblx0ICog5p+l6K+i6aG5bGFiZWzmiYDljaDmoIXmoLzmlbBcblx0ICovXG5cdG56eExTcGFuPzogbnVtYmVyO1xuXHQvKipcblx0ICog5p+l6K+i6aG55o6n5Lu25omA5Y2g5qCF5qC85pWwXG5cdCAqL1xuXHRuenhSU3Bhbj86IG51bWJlcjtcblx0LyoqXG5cdCAqIOagoemqjOmUmeivr+aPkOekulxuXHQgKi9cblx0ZXJyb3JUaXA/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiDmipjlj6Bcblx0ICovXG5cdGNvbGxhcHNlPzogdHJ1ZTtcblx0LyoqXG5cdCAqIOmakOiXj+aOp+S7tijkuLvopoHnlKjmnaXmkLrluKbmn6Xor6Llj4LmlbDkvYbnlYzpnaLkuI3lj6/op4EpXG5cdCAqL1xuXHRoaWRkZW4/OiBib29sZWFuO1xuXHQvKipcblx0ICog5o6n5Lu25a6e5L6L77yM5Y+v6YCJXG5cdCAqL1xuXHRjb250cm9sSW5zdGFuY2U/OiBBYnN0cmFjdENvbnRyb2w7XG5cdC8qKlxuXHQgKiDoh6rlrprkuYnmqKHmnb9cblx0ICovXG5cdHRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cblx0W2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE56eFF1ZXJ5Q29udHJvbFR5cGUge1xuXHRrZXk6IHN0cmluZztcblx0Y29tcG9uZW50OiB0eXBlb2YgTnp4QWJzdHJhY3RDb250cm9sO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE56eFF1ZXJ5Q29uZmlnIHtcblx0Y29udHJvbFR5cGVzOiBOenhRdWVyeUNvbnRyb2xUeXBlW107XG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { Directive, Input } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class NzxPrintContentDirective {
4
+ constructor(elementRef) {
5
+ this.elementRef = elementRef;
6
+ this.identifierStr = '';
7
+ this.customStyle = '';
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NzxPrintContentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NzxPrintContentDirective, selector: "[nzxPrintContent]", inputs: { identifierStr: "identifierStr", customStyle: "customStyle" }, ngImport: i0 }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NzxPrintContentDirective, decorators: [{
13
+ type: Directive,
14
+ args: [{
15
+ selector: '[nzxPrintContent]',
16
+ }]
17
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { identifierStr: [{
18
+ type: Input
19
+ }], customStyle: [{
20
+ type: Input
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnp4LXByaW50LWNvbnRlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wcmludC9uengtcHJpbnQtY29udGVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzdELE1BQU0sT0FBTyx3QkFBd0I7SUFHcEMsWUFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUZoQyxrQkFBYSxHQUFzQixFQUFFLENBQUM7UUFDdEMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7SUFDa0IsQ0FBQzsrR0FIakMsd0JBQXdCO21HQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG1CQUFtQjtpQkFDN0I7aUdBRVMsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tuenhQcmludENvbnRlbnRdJyxcbn0pXG5leHBvcnQgY2xhc3MgTnp4UHJpbnRDb250ZW50RGlyZWN0aXZlIHtcblx0QElucHV0KCkgaWRlbnRpZmllclN0cjogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcblx0QElucHV0KCkgY3VzdG9tU3R5bGUgPSAnJztcblx0Y29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG59XG4iXX0=