raise-common-lib-new 0.0.20 → 0.0.21

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 (125) hide show
  1. package/assets/language/fr.d.ts +3377 -0
  2. package/assets/language/ja.d.ts +3351 -0
  3. package/assets/language/ko.d.ts +3351 -0
  4. package/assets/language/zh-CN.d.ts +3064 -0
  5. package/assets/language/zh-TW.d.ts +3354 -0
  6. package/esm2022/assets/language/fr.mjs +3378 -0
  7. package/esm2022/assets/language/ja.mjs +3352 -0
  8. package/esm2022/assets/language/ko.mjs +3352 -0
  9. package/esm2022/assets/language/zh-CN.mjs +3065 -0
  10. package/esm2022/assets/language/zh-TW.mjs +3355 -0
  11. package/esm2022/lib/commentary/constants.mjs +2 -0
  12. package/esm2022/lib/commentary/index.component.mjs +146 -0
  13. package/esm2022/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.mjs +44 -0
  14. package/esm2022/lib/common-grid/grid-action/grid-action.component.mjs +18 -0
  15. package/esm2022/lib/common-grid/index.component.mjs +52 -30
  16. package/esm2022/lib/dialog/common-delete-dialog/index.component.mjs +2 -2
  17. package/esm2022/lib/dialog/common-dialog/index.component.mjs +4 -4
  18. package/esm2022/lib/form/checkbox-group/index.component.mjs +2 -2
  19. package/esm2022/lib/form/drawer-form/constants.mjs +10 -0
  20. package/esm2022/lib/form/drawer-form/drawer-form.component.mjs +336 -0
  21. package/esm2022/lib/form/encrypted-input/index.component.mjs +35 -0
  22. package/esm2022/lib/form/radio-group/index.component.mjs +2 -2
  23. package/esm2022/lib/form/switch-input/index.component.mjs +2 -2
  24. package/esm2022/lib/form/tag-input/index.component.mjs +31 -11
  25. package/esm2022/lib/form/toolbar-item/index.component.mjs +56 -0
  26. package/esm2022/lib/layout/drawer/index.component.mjs +165 -0
  27. package/esm2022/lib/layout/grid-box/index.component.mjs +37 -12
  28. package/esm2022/lib/layout/main-container/index.component.mjs +47 -9
  29. package/esm2022/lib/layout/multi-tab/index.component.mjs +135 -30
  30. package/esm2022/lib/layout/nav-card-group/constants.mjs +2 -0
  31. package/esm2022/lib/layout/nav-card-group/index.component.mjs +37 -0
  32. package/esm2022/lib/layout/page-list/index.component.mjs +38 -8
  33. package/esm2022/lib/layout/page-tab/index.component.mjs +25 -6
  34. package/esm2022/lib/layout/rs-aside/index.component.mjs +54 -9
  35. package/esm2022/lib/layout/rs-footer/index.component.mjs +2 -2
  36. package/esm2022/lib/layout/rs-header/index.component.mjs +38 -29
  37. package/esm2022/lib/layout/toolbar/constants.mjs +2 -0
  38. package/esm2022/lib/layout/toolbar/index.component.mjs +79 -0
  39. package/esm2022/lib/raise-common-lib.module.mjs +76 -7
  40. package/esm2022/lib/service/common-function.service.mjs +87 -1
  41. package/esm2022/lib/service/dialog.service.mjs +5 -5
  42. package/esm2022/lib/service/drawer.service.mjs +111 -0
  43. package/esm2022/lib/service/keep-alive.service.mjs +51 -12
  44. package/esm2022/lib/service/translation.service.mjs +98 -0
  45. package/esm2022/lib/utils/decorator.mjs +14 -0
  46. package/esm2022/public-api.mjs +35 -20
  47. package/fesm2022/raise-common-lib-new.mjs +18749 -676
  48. package/fesm2022/raise-common-lib-new.mjs.map +1 -1
  49. package/lib/commentary/constants.d.ts +15 -0
  50. package/lib/commentary/index.component.d.ts +38 -0
  51. package/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.d.ts +10 -0
  52. package/lib/common-grid/grid-action/grid-action.component.d.ts +14 -0
  53. package/lib/common-grid/index.component.d.ts +8 -5
  54. package/lib/form/drawer-form/constants.d.ts +34 -0
  55. package/lib/form/drawer-form/drawer-form.component.d.ts +67 -0
  56. package/lib/form/encrypted-input/index.component.d.ts +14 -0
  57. package/lib/form/tag-input/index.component.d.ts +9 -3
  58. package/lib/form/toolbar-item/index.component.d.ts +17 -0
  59. package/lib/layout/drawer/index.component.d.ts +45 -0
  60. package/lib/layout/grid-box/index.component.d.ts +9 -5
  61. package/lib/layout/main-container/index.component.d.ts +10 -1
  62. package/lib/layout/multi-tab/index.component.d.ts +19 -6
  63. package/lib/layout/nav-card-group/constants.d.ts +14 -0
  64. package/lib/layout/nav-card-group/index.component.d.ts +16 -0
  65. package/lib/layout/page-list/index.component.d.ts +9 -3
  66. package/lib/layout/page-tab/index.component.d.ts +6 -2
  67. package/lib/layout/rs-aside/index.component.d.ts +8 -3
  68. package/lib/layout/rs-header/index.component.d.ts +12 -12
  69. package/lib/layout/toolbar/constants.d.ts +8 -0
  70. package/lib/layout/toolbar/index.component.d.ts +22 -0
  71. package/lib/raise-common-lib.module.d.ts +48 -37
  72. package/lib/service/common-function.service.d.ts +9 -0
  73. package/lib/service/drawer.service.d.ts +46 -0
  74. package/lib/service/keep-alive.service.d.ts +4 -0
  75. package/lib/service/translation.service.d.ts +12 -0
  76. package/lib/utils/decorator.d.ts +1 -0
  77. package/package.json +1 -1
  78. package/public-api.d.ts +34 -19
  79. package/src/assets/img/comment-cancel.svg +4 -0
  80. package/src/assets/img/comment-check.svg +5 -0
  81. package/src/assets/img/down-arrow.svg +3 -0
  82. package/src/assets/img/drawer-back.svg +4 -0
  83. package/src/assets/img/eye-close.svg +4 -0
  84. package/src/assets/img/eye-open.svg +4 -0
  85. package/src/assets/img/grid-action-copy.svg +6 -0
  86. package/src/assets/img/grid-action-delete.svg +14 -0
  87. package/src/assets/img/grid-action-detail.svg +7 -0
  88. package/src/assets/img/grid-action-download.svg +7 -0
  89. package/src/assets/img/grid-action-edit.svg +4 -0
  90. package/src/assets/img/grid-action-export.svg +12 -0
  91. package/src/assets/img/grid-action-move.svg +8 -0
  92. package/src/assets/img/grid-action-note.svg +10 -0
  93. package/src/assets/img/grid-action-send.svg +5 -0
  94. package/src/assets/img/grid-action-settle.svg +13 -0
  95. package/src/assets/img/grid-menu-arrow-right.svg +3 -0
  96. package/src/assets/img/grid-pager-arrow-left.svg +3 -0
  97. package/src/assets/img/grid-pager-arrows-left.svg +4 -0
  98. package/src/assets/img/more.svg +5 -0
  99. package/src/assets/img/table-column-menu.svg +5 -0
  100. package/src/assets/img/table-sort-arrow.svg +6 -0
  101. package/src/assets/img/toolbar-action-add.svg +4 -0
  102. package/src/assets/img/toolbar-action-delete.svg +14 -0
  103. package/src/assets/img/toolbar-action-download.svg +5 -0
  104. package/src/assets/img/toolbar-action-duplicate.svg +6 -0
  105. package/src/assets/img/toolbar-action-export.svg +5 -0
  106. package/src/assets/img/toolbar-action-import.svg +5 -0
  107. package/src/assets/img/toolbar-action-refresh.svg +14 -0
  108. package/src/assets/img/toolbar-action-upload.svg +5 -0
  109. package/src/assets/img/tooltip-icon.svg +4 -0
  110. package/src/assets/language/fr.ts +3603 -0
  111. package/src/assets/language/ja.ts +3501 -0
  112. package/src/assets/language/ko.ts +3478 -0
  113. package/src/assets/language/zh-CN.ts +3115 -0
  114. package/src/assets/language/zh-TW.ts +3411 -0
  115. package/src/assets/style/reset/button.scss +41 -8
  116. package/src/assets/style/reset/checkbox.scss +33 -0
  117. package/src/assets/style/reset/dropdown.scss +42 -10
  118. package/src/assets/style/reset/grid.scss +733 -132
  119. package/src/assets/style/reset/input.scss +45 -12
  120. package/src/assets/style/reset/mat-dialog.scss +6 -2
  121. package/src/assets/style/reset/radio.scss +37 -0
  122. package/src/assets/style/reset/switch.scss +32 -0
  123. package/src/assets/style/style.scss +6 -0
  124. package/src/assets/style/syncfusion.min.css +1 -1
  125. package/src/assets/style/variables.scss +4 -4
@@ -0,0 +1,79 @@
1
+ // 组件类
2
+ import { Component, HostListener, Input, ViewChild, ViewChildren, } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/router";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/menu";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "../../form/toolbar-item/index.component";
9
+ export class RSToolbarComponent {
10
+ router;
11
+ ref;
12
+ buttons = [];
13
+ disabledOptions = {};
14
+ toolbarContainer;
15
+ buttonElements;
16
+ constructor(router, ref) {
17
+ this.router = router;
18
+ this.ref = ref;
19
+ }
20
+ ngAfterViewInit() {
21
+ this.updateButtonVisibility();
22
+ }
23
+ visibleButtons = [];
24
+ hiddenButtons = [];
25
+ updateButtonVisibility() {
26
+ if (!this.toolbarContainer || !this.buttonElements)
27
+ return;
28
+ const buttonRefs = this.buttonElements.toArray();
29
+ const containerWidth = this.toolbarContainer.nativeElement.offsetWidth - 50;
30
+ // console.log("containerWidth", containerWidth);
31
+ let totalWidth = 0;
32
+ const menuButtonWidth = 60;
33
+ this.visibleButtons = [];
34
+ this.hiddenButtons = [];
35
+ for (let i = 0; i < buttonRefs.length; i++) {
36
+ const buttonWidth = buttonRefs[i].nativeElement.getBoundingClientRect().width;
37
+ // console.log("buttonWidth", buttonWidth);
38
+ if (totalWidth +
39
+ 4 + // 4px margin between buttons
40
+ buttonWidth +
41
+ (i < buttonRefs.length - 1 ? menuButtonWidth : 0) <=
42
+ containerWidth) {
43
+ this.visibleButtons.push(this.buttons[i]);
44
+ buttonRefs[i].nativeElement.classList.remove("temp-hidden");
45
+ totalWidth += buttonWidth;
46
+ }
47
+ else {
48
+ buttonRefs[i].nativeElement.classList.add("temp-hidden");
49
+ this.hiddenButtons.push(this.buttons[i]);
50
+ }
51
+ }
52
+ // console.log("visibleButtons", this.visibleButtons);
53
+ // console.log("hiddenButtons", this.hiddenButtons);
54
+ this.ref.detectChanges();
55
+ }
56
+ onWindowResize() {
57
+ this.updateButtonVisibility();
58
+ }
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSToolbarComponent, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
60
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSToolbarComponent, selector: "rs-toolbar", inputs: { buttons: "buttons", disabledOptions: "disabledOptions" }, host: { listeners: { "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true }, { propertyName: "buttonElements", predicate: ["toolbarItem"], descendants: true }], ngImport: i0, template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.rs-toolbar-container{width:100%;display:flex;align-items:center}.rs-toolbar-container .temp-hidden{visibility:hidden;position:absolute}.rs-toolbar-container .action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.rs-toolbar-container .action-toggle:hover{background:#d6e3f533}.rs-toolbar-container .action-toggle .mat-button-wrapper{max-height:24px;height:24px}.rs-toolbar-container .action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.ToolbarItemComponent, selector: "rs-toolbar-item", inputs: ["image", "text", "disabled", "children", "disabledOptions"] }] });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSToolbarComponent, decorators: [{
63
+ type: Component,
64
+ args: [{ selector: "rs-toolbar", template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.rs-toolbar-container{width:100%;display:flex;align-items:center}.rs-toolbar-container .temp-hidden{visibility:hidden;position:absolute}.rs-toolbar-container .action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.rs-toolbar-container .action-toggle:hover{background:#d6e3f533}.rs-toolbar-container .action-toggle .mat-button-wrapper{max-height:24px;height:24px}.rs-toolbar-container .action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}\n"] }]
65
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { buttons: [{
66
+ type: Input
67
+ }], disabledOptions: [{
68
+ type: Input
69
+ }], toolbarContainer: [{
70
+ type: ViewChild,
71
+ args: ["toolbarContainer", { static: false }]
72
+ }], buttonElements: [{
73
+ type: ViewChildren,
74
+ args: ["toolbarItem"]
75
+ }], onWindowResize: [{
76
+ type: HostListener,
77
+ args: ["window:resize"]
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC90b29sYmFyL2luZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhaXNlLWNvbW1vbi1saWIvc3JjL2xpYi9sYXlvdXQvdG9vbGJhci9pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQ04sT0FBTyxFQUdMLFNBQVMsRUFHVCxZQUFZLEVBQ1osS0FBSyxFQUlMLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFTdkIsTUFBTSxPQUFPLGtCQUFrQjtJQVNWO0lBQXdCO0lBUmxDLE9BQU8sR0FBb0IsRUFBRSxDQUFDO0lBQzlCLGVBQWUsR0FBMkIsRUFBRSxDQUFDO0lBR3RELGdCQUFnQixDQUFjO0lBRUQsY0FBYyxDQUF5QjtJQUVwRSxZQUFtQixNQUFjLEVBQVUsR0FBc0I7UUFBOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUcsQ0FBQztJQUNyRSxlQUFlO1FBQ2IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWMsR0FBb0IsRUFBRSxDQUFDO0lBQ3JDLGFBQWEsR0FBb0IsRUFBRSxDQUFDO0lBRTdCLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPO1FBRTNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQzVFLGlEQUFpRDtRQUNqRCxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXhCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFDLE1BQU0sV0FBVyxHQUNmLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDNUQsMkNBQTJDO1lBQzNDLElBQ0UsVUFBVTtnQkFDUixDQUFDLEdBQUcsNkJBQTZCO2dCQUNqQyxXQUFXO2dCQUNYLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkQsY0FBYyxFQUNkO2dCQUNBLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM1RCxVQUFVLElBQUksV0FBVyxDQUFDO2FBQzNCO2lCQUFNO2dCQUNMLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1NBQ0Y7UUFDRCxzREFBc0Q7UUFDdEQsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3dHQXhEVSxrQkFBa0I7NEZBQWxCLGtCQUFrQiw2WEN2Qi9CLHM2Q0F5Q0E7OzRGRGxCYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsWUFBWTs2SEFLYixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR25CLGNBQWM7c0JBQTFDLFlBQVk7dUJBQUMsYUFBYTtnQkErQzNCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy10b29sYmFyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJTVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGJ1dHRvbnM6IFRvb2xiYXJCdXR0b25bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkT3B0aW9uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cclxuICBAVmlld0NoaWxkKFwidG9vbGJhckNvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICB0b29sYmFyQ29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihcInRvb2xiYXJJdGVtXCIpIGJ1dHRvbkVsZW1lbnRzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUJ1dHRvblZpc2liaWxpdHkoKTtcclxuICB9XHJcblxyXG4gIHZpc2libGVCdXR0b25zOiBUb29sYmFyQnV0dG9uW10gPSBbXTtcclxuICBoaWRkZW5CdXR0b25zOiBUb29sYmFyQnV0dG9uW10gPSBbXTtcclxuXHJcbiAgcHVibGljIHVwZGF0ZUJ1dHRvblZpc2liaWxpdHkoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudG9vbGJhckNvbnRhaW5lciB8fCAhdGhpcy5idXR0b25FbGVtZW50cykgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGJ1dHRvblJlZnMgPSB0aGlzLmJ1dHRvbkVsZW1lbnRzLnRvQXJyYXkoKTtcclxuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy50b29sYmFyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSA1MDtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiY29udGFpbmVyV2lkdGhcIiwgY29udGFpbmVyV2lkdGgpO1xyXG4gICAgbGV0IHRvdGFsV2lkdGggPSAwO1xyXG4gICAgY29uc3QgbWVudUJ1dHRvbldpZHRoID0gNjA7XHJcblxyXG4gICAgdGhpcy52aXNpYmxlQnV0dG9ucyA9IFtdO1xyXG4gICAgdGhpcy5oaWRkZW5CdXR0b25zID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBidXR0b25SZWZzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGJ1dHRvbldpZHRoID1cclxuICAgICAgICBidXR0b25SZWZzW2ldLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnV0dG9uV2lkdGhcIiwgYnV0dG9uV2lkdGgpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdG90YWxXaWR0aCArXHJcbiAgICAgICAgICA0ICsgLy8gNHB4IG1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnNcclxuICAgICAgICAgIGJ1dHRvbldpZHRoICtcclxuICAgICAgICAgIChpIDwgYnV0dG9uUmVmcy5sZW5ndGggLSAxID8gbWVudUJ1dHRvbldpZHRoIDogMCkgPD1cclxuICAgICAgICBjb250YWluZXJXaWR0aFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnZpc2libGVCdXR0b25zLnB1c2godGhpcy5idXR0b25zW2ldKTtcclxuICAgICAgICBidXR0b25SZWZzW2ldLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcInRlbXAtaGlkZGVuXCIpO1xyXG4gICAgICAgIHRvdGFsV2lkdGggKz0gYnV0dG9uV2lkdGg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYnV0dG9uUmVmc1tpXS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJ0ZW1wLWhpZGRlblwiKTtcclxuICAgICAgICB0aGlzLmhpZGRlbkJ1dHRvbnMucHVzaCh0aGlzLmJ1dHRvbnNbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInZpc2libGVCdXR0b25zXCIsIHRoaXMudmlzaWJsZUJ1dHRvbnMpO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJoaWRkZW5CdXR0b25zXCIsIHRoaXMuaGlkZGVuQnV0dG9ucyk7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxyXG4gIG9uV2luZG93UmVzaXplKCkge1xyXG4gICAgdGhpcy51cGRhdGVCdXR0b25WaXNpYmlsaXR5KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI3Rvb2xiYXJDb250YWluZXIgY2xhc3M9XCJycy10b29sYmFyLWNvbnRhaW5lclwiPlxyXG4gIDwhLS0g5Y+v6KeB5oyJ6ZKuIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBidXR0b25zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGVtcC1oaWRkZW5cIiAjdG9vbGJhckl0ZW0+XHJcbiAgICAgIDxycy10b29sYmFyLWl0ZW1cclxuICAgICAgICBbaW1hZ2VdPVwiYnV0dG9uLmltYWdlXCJcclxuICAgICAgICBbdGV4dF09XCJidXR0b24udGV4dFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIihidXR0b24ua2V5ICYmIGRpc2FibGVkT3B0aW9uc1tidXR0b24ua2V5XSkgfHwgZmFsc2VcIlxyXG4gICAgICAgIChjbGljayk9XCJidXR0b24uYWN0aW9uICYmIGJ1dHRvbi5hY3Rpb24oKVwiXHJcbiAgICAgICAgW2NoaWxkcmVuXT1cImJ1dHRvbi5jaGlsZHJlbiB8fCBbXVwiXHJcbiAgICAgICAgW2Rpc2FibGVkT3B0aW9uc109XCJkaXNhYmxlZE9wdGlvbnNcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvcnMtdG9vbGJhci1pdGVtPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0g5LiL5ouJ6I+c5Y2V77yI5aaC5p6c5pyJ6ZqQ6JeP5oyJ6ZKu77yJIC0tPlxyXG4gIDxidXR0b25cclxuICAgICpuZ0lmPVwiaGlkZGVuQnV0dG9ucy5sZW5ndGggPiAwXCJcclxuICAgIG1hdC1idXR0b25cclxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgICNtZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCJcclxuICAgIGNsYXNzPVwiYWN0aW9uLXRvZ2dsZVwiXHJcbiAgPlxyXG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJtb3JlXCI+PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuXHJcbiAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGhpZGRlbkJ1dHRvbnNcIj5cclxuICAgICAgPHJzLXRvb2xiYXItaXRlbVxyXG4gICAgICAgIFtpbWFnZV09XCJidXR0b24uaW1hZ2VcIlxyXG4gICAgICAgIFt0ZXh0XT1cImJ1dHRvbi50ZXh0XCJcclxuICAgICAgICAoY2xpY2spPVwiYnV0dG9uLmFjdGlvbiAmJiBidXR0b24uYWN0aW9uKClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZE9wdGlvbnNbYnV0dG9uLmtleV0gfHwgZmFsc2VcIlxyXG4gICAgICAgIFtjaGlsZHJlbl09XCJidXR0b24uY2hpbGRyZW4gfHwgW11cIlxyXG4gICAgICAgIFtkaXNhYmxlZE9wdGlvbnNdPVwiZGlzYWJsZWRPcHRpb25zXCJcclxuICAgICAgPlxyXG4gICAgICA8L3JzLXRvb2xiYXItaXRlbT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbWF0LW1lbnU+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- import { NgModule } from "@angular/core";
1
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
2
2
  import { ReactiveFormsModule, FormsModule } from "@angular/forms";
3
3
  import { HttpClientModule } from "@angular/common/http";
4
4
  import { CommonModule } from "@angular/common";
@@ -19,12 +19,16 @@ import { RichTextEditorAllModule, HtmlEditorService, ToolbarService as RichEdito
19
19
  import { MatSnackBarModule } from "@angular/material/snack-bar";
20
20
  import { MatDialogModule } from "@angular/material/dialog";
21
21
  import { MatIconModule } from "@angular/material/icon";
22
+ import { MatMenuModule } from '@angular/material/menu';
23
+ import { MatTooltipModule } from "@angular/material/tooltip";
22
24
  // services
23
25
  import { CommonFunctionService } from "./service/common-function.service";
24
26
  import { IconLoaderService } from "./service/icon-loader.service";
25
27
  import { DialogService } from "./service/dialog.service";
26
- import { KeepAliveService } from "./service/keep-alive.service";
28
+ import { TranslationService } from "./service/translation.service";
27
29
  import { CommonGridComponent } from "./common-grid/index.component";
30
+ import { GridActionComponent } from "./common-grid/grid-action/grid-action.component";
31
+ import { GridActionItemComponent } from "./common-grid/grid-action/grid-action-item/grid-action-item.component";
28
32
  import { FloatBoxComponent } from "./float-box/index.component";
29
33
  import { RsPageListComponent } from "./layout/page-list/index.component";
30
34
  import { RsPageTabComponent } from "./layout/page-tab/index.component";
@@ -34,17 +38,26 @@ import { RSHeaderComponent } from "./layout/rs-header/index.component";
34
38
  import { RSFooterComponent } from "./layout/rs-footer/index.component";
35
39
  import { RSAsideComponent } from "./layout/rs-aside/index.component";
36
40
  import { MultiTabComponent } from "./layout/multi-tab/index.component";
41
+ import { DrawerComponent } from "./layout/drawer/index.component";
37
42
  import { TagInputComponent } from "./form/tag-input/index.component";
38
43
  import { RadioGroupComponent } from "./form/radio-group/index.component";
39
44
  import { CheckboxGroupComponent } from "./form/checkbox-group/index.component";
40
45
  import { SwitchInputComponent } from "./form/switch-input/index.component";
46
+ import { EncryptedInputComponent } from "./form/encrypted-input/index.component";
41
47
  import { NewActionNotificationComponent } from "./dialog/new-action-notification/new-action-notification.component";
42
48
  import { CommonDialogComponent } from "./dialog/common-dialog/index.component";
43
49
  import { CommonDeleteComponent } from "./dialog/common-delete-dialog/index.component";
50
+ import { DrawerFormComponent } from "./form/drawer-form/drawer-form.component";
51
+ import { ToolbarItemComponent } from "./form/toolbar-item/index.component";
52
+ import { RsCommentaryComponent } from "./commentary/index.component";
53
+ import { RSNavCardGroupComponent } from "./layout/nav-card-group/index.component";
54
+ import { RSToolbarComponent } from "./layout/toolbar/index.component";
44
55
  import * as i0 from "@angular/core";
45
56
  export class RaiseCommonLibModule {
46
57
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RaiseCommonLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
47
58
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: RaiseCommonLibModule, declarations: [CommonGridComponent,
59
+ GridActionComponent,
60
+ GridActionItemComponent,
48
61
  FloatBoxComponent,
49
62
  RsPageListComponent,
50
63
  RsPageTabComponent,
@@ -58,13 +71,22 @@ export class RaiseCommonLibModule {
58
71
  RadioGroupComponent,
59
72
  CheckboxGroupComponent,
60
73
  SwitchInputComponent,
74
+ EncryptedInputComponent,
61
75
  NewActionNotificationComponent,
62
76
  CommonDialogComponent,
63
- CommonDeleteComponent], imports: [CommonModule,
77
+ CommonDeleteComponent,
78
+ DrawerComponent,
79
+ DrawerFormComponent,
80
+ ToolbarItemComponent,
81
+ RsCommentaryComponent,
82
+ RSNavCardGroupComponent,
83
+ RSToolbarComponent], imports: [CommonModule,
64
84
  HttpClientModule,
65
85
  ReactiveFormsModule,
66
86
  FormsModule,
67
87
  MatSnackBarModule,
88
+ MatMenuModule,
89
+ MatTooltipModule,
68
90
  MatDialogModule,
69
91
  MatIconModule,
70
92
  GridModule,
@@ -107,7 +129,10 @@ export class RaiseCommonLibModule {
107
129
  ReactiveFormsModule,
108
130
  FormsModule,
109
131
  MatSnackBarModule,
132
+ MatMenuModule,
133
+ MatTooltipModule,
110
134
  MatDialogModule,
135
+ MatIconModule,
111
136
  GridModule,
112
137
  PagerModule,
113
138
  GridAllModule,
@@ -145,6 +170,8 @@ export class RaiseCommonLibModule {
145
170
  SplitButtonModule,
146
171
  RichTextEditorAllModule,
147
172
  CommonGridComponent,
173
+ GridActionComponent,
174
+ GridActionItemComponent,
148
175
  FloatBoxComponent,
149
176
  RsPageListComponent,
150
177
  RsPageTabComponent,
@@ -157,7 +184,17 @@ export class RaiseCommonLibModule {
157
184
  TagInputComponent,
158
185
  RadioGroupComponent,
159
186
  CheckboxGroupComponent,
160
- SwitchInputComponent] });
187
+ SwitchInputComponent,
188
+ EncryptedInputComponent,
189
+ DrawerComponent,
190
+ DrawerFormComponent,
191
+ ToolbarItemComponent,
192
+ RsCommentaryComponent,
193
+ RSNavCardGroupComponent,
194
+ RSToolbarComponent,
195
+ NewActionNotificationComponent,
196
+ CommonDialogComponent,
197
+ CommonDeleteComponent] });
161
198
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RaiseCommonLibModule, providers: [
162
199
  PageService,
163
200
  SortService,
@@ -191,12 +228,14 @@ export class RaiseCommonLibModule {
191
228
  CommonFunctionService,
192
229
  IconLoaderService,
193
230
  DialogService,
194
- KeepAliveService,
231
+ TranslationService,
195
232
  ], imports: [CommonModule,
196
233
  HttpClientModule,
197
234
  ReactiveFormsModule,
198
235
  FormsModule,
199
236
  MatSnackBarModule,
237
+ MatMenuModule,
238
+ MatTooltipModule,
200
239
  MatDialogModule,
201
240
  MatIconModule,
202
241
  GridModule,
@@ -239,7 +278,10 @@ export class RaiseCommonLibModule {
239
278
  ReactiveFormsModule,
240
279
  FormsModule,
241
280
  MatSnackBarModule,
281
+ MatMenuModule,
282
+ MatTooltipModule,
242
283
  MatDialogModule,
284
+ MatIconModule,
243
285
  GridModule,
244
286
  PagerModule,
245
287
  GridAllModule,
@@ -282,6 +324,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
282
324
  args: [{
283
325
  declarations: [
284
326
  CommonGridComponent,
327
+ GridActionComponent,
328
+ GridActionItemComponent,
285
329
  FloatBoxComponent,
286
330
  RsPageListComponent,
287
331
  RsPageTabComponent,
@@ -295,9 +339,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
295
339
  RadioGroupComponent,
296
340
  CheckboxGroupComponent,
297
341
  SwitchInputComponent,
342
+ EncryptedInputComponent,
298
343
  NewActionNotificationComponent,
299
344
  CommonDialogComponent,
300
345
  CommonDeleteComponent,
346
+ DrawerComponent,
347
+ DrawerFormComponent,
348
+ ToolbarItemComponent,
349
+ RsCommentaryComponent,
350
+ RSNavCardGroupComponent,
351
+ RSToolbarComponent
301
352
  ],
302
353
  imports: [
303
354
  CommonModule,
@@ -305,6 +356,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
305
356
  ReactiveFormsModule,
306
357
  FormsModule,
307
358
  MatSnackBarModule,
359
+ MatMenuModule,
360
+ MatTooltipModule,
308
361
  MatDialogModule,
309
362
  MatIconModule,
310
363
  GridModule,
@@ -377,7 +430,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
377
430
  CommonFunctionService,
378
431
  IconLoaderService,
379
432
  DialogService,
380
- KeepAliveService,
433
+ TranslationService,
381
434
  ],
382
435
  exports: [
383
436
  CommonModule,
@@ -385,7 +438,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
385
438
  ReactiveFormsModule,
386
439
  FormsModule,
387
440
  MatSnackBarModule,
441
+ MatMenuModule,
442
+ MatTooltipModule,
388
443
  MatDialogModule,
444
+ MatIconModule,
389
445
  GridModule,
390
446
  PagerModule,
391
447
  GridAllModule,
@@ -423,6 +479,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
423
479
  SplitButtonModule,
424
480
  RichTextEditorAllModule,
425
481
  CommonGridComponent,
482
+ GridActionComponent,
483
+ GridActionItemComponent,
426
484
  FloatBoxComponent,
427
485
  RsPageListComponent,
428
486
  RsPageTabComponent,
@@ -436,7 +494,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
436
494
  RadioGroupComponent,
437
495
  CheckboxGroupComponent,
438
496
  SwitchInputComponent,
497
+ EncryptedInputComponent,
498
+ DrawerComponent,
499
+ DrawerFormComponent,
500
+ ToolbarItemComponent,
501
+ RsCommentaryComponent,
502
+ RSNavCardGroupComponent,
503
+ RSToolbarComponent,
504
+ NewActionNotificationComponent,
505
+ CommonDialogComponent,
506
+ CommonDeleteComponent,
439
507
  ],
508
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
440
509
  }]
441
510
  }] });
442
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFpc2UtY29tbW9uLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvcmFpc2UtY29tbW9uLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFDTCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFdBQVcsRUFDWCxhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLFlBQVksRUFDWixhQUFhLEdBQ2QsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsWUFBWSxHQUNiLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsb0JBQW9CLEdBQ3JCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUNMLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9B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Q2xCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBHcmlkTW9kdWxlLFxyXG4gIFBhZ2VTZXJ2aWNlLFxyXG4gIFNvcnRTZXJ2aWNlLFxyXG4gIEZpbHRlclNlcnZpY2UsXHJcbiAgRXhjZWxFeHBvcnRTZXJ2aWNlLFxyXG4gIEVkaXRTZXJ2aWNlLFxyXG4gIFJlc2l6ZVNlcnZpY2UsXHJcbiAgVG9vbGJhclNlcnZpY2UsXHJcbiAgQ29sdW1uQ2hvb3NlclNlcnZpY2UsXHJcbiAgQWdncmVnYXRlU2VydmljZSxcclxuICBDb2x1bW5NZW51U2VydmljZSxcclxuICBEZXRhaWxSb3dTZXJ2aWNlLFxyXG4gIFNlbGVjdGlvblNlcnZpY2UsXHJcbiAgUGFnZXJNb2R1bGUsXHJcbiAgR3JvdXBTZXJ2aWNlLFxyXG4gIEdyaWRBbGxNb2R1bGUsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWdyaWRzXCI7XHJcbmltcG9ydCB7XHJcbiAgU3dpdGNoTW9kdWxlLFxyXG4gIENoZWNrQm94TW9kdWxlLFxyXG4gIFJhZGlvQnV0dG9uTW9kdWxlLFxyXG4gIEJ1dHRvbk1vZHVsZSxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYnV0dG9uc1wiO1xyXG5pbXBvcnQgeyBEaWFncmFtTW9kdWxlIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRpYWdyYW1zXCI7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUsIERpYWxvZ01vZHVsZSB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1wb3B1cHNcIjtcclxuaW1wb3J0IHtcclxuICBEYXRlUGlja2VyTW9kdWxlLFxyXG4gIERhdGVSYW5nZVBpY2tlck1vZHVsZSxcclxuICBEYXRlVGltZVBpY2tlck1vZHVsZSxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2FsZW5kYXJzXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gIFRleHRCb3hNb2R1bGUsXHJcbiAgQ29sb3JQaWNrZXJNb2R1bGUsXHJcbiAgVXBsb2FkZXJNb2R1bGUsXHJcbiAgTnVtZXJpY1RleHRCb3hNb2R1bGUsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWlucHV0c1wiO1xyXG5pbXBvcnQge1xyXG4gIERyb3BEb3duTGlzdE1vZHVsZSxcclxuICBNdWx0aVNlbGVjdEFsbE1vZHVsZSxcclxuICBBdXRvQ29tcGxldGVNb2R1bGUsXHJcbiAgRHJvcERvd25UcmVlTW9kdWxlLFxyXG4gIExpc3RCb3hNb2R1bGUsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRyb3Bkb3duc1wiO1xyXG5pbXBvcnQge1xyXG4gIFBpdm90Vmlld0FsbE1vZHVsZSxcclxuICBQaXZvdEZpZWxkTGlzdEFsbE1vZHVsZSxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcGl2b3R2aWV3XCI7XHJcbmltcG9ydCB7XHJcbiAgQ2hhcnRBbGxNb2R1bGUsXHJcbiAgQWNjdW11bGF0aW9uQ2hhcnRBbGxNb2R1bGUsXHJcbiAgUmFuZ2VOYXZpZ2F0b3JBbGxNb2R1bGUsXHJcbiAgQWNjdW11bGF0aW9uQ2hhcnRNb2R1bGUsXHJcbiAgUGllU2VyaWVzU2VydmljZSxcclxuICBBY2N1bXVsYXRpb25MZWdlbmRTZXJ2aWNlLFxyXG4gIEFjY3VtdWxhdGlvblRvb2x0aXBTZXJ2aWNlLFxyXG4gIEFjY3VtdWxhdGlvbkFubm90YXRpb25TZXJ2aWNlLFxyXG4gIEFjY3VtdWxhdGlvbkRhdGFMYWJlbFNlcnZpY2UsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNoYXJ0c1wiO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRMYXlvdXRNb2R1bGUgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItbGF5b3V0c1wiO1xyXG5pbXBvcnQge1xyXG4gIENhcm91c2VsQWxsTW9kdWxlLFxyXG4gIFRvb2xiYXJNb2R1bGUsXHJcbiAgVGFiTW9kdWxlLFxyXG59IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1uYXZpZ2F0aW9uc1wiO1xyXG5pbXBvcnQge1xyXG4gIFBkZlZpZXdlck1vZHVsZSxcclxuICBMaW5rQW5ub3RhdGlvblNlcnZpY2UsXHJcbiAgQm9va21hcmtWaWV3U2VydmljZSxcclxuICBNYWduaWZpY2F0aW9uU2VydmljZSxcclxuICBUaHVtYm5haWxWaWV3U2VydmljZSxcclxuICBUb29sYmFyU2VydmljZSBhcyBQYmZUb29sYmFyU2VydmljZSxcclxuICBOYXZpZ2F0aW9uU2VydmljZSxcclxuICBUZXh0U2VhcmNoU2VydmljZSxcclxuICBUZXh0U2VsZWN0aW9uU2VydmljZSxcclxuICBQcmludFNlcnZpY2UsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXBkZnZpZXdlclwiO1xyXG5pbXBvcnQge1xyXG4gIERyb3BEb3duQnV0dG9uTW9kdWxlLFxyXG4gIFNwbGl0QnV0dG9uTW9kdWxlLFxyXG59IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1zcGxpdGJ1dHRvbnNcIjtcclxuaW1wb3J0IHtcclxuICBSaWNoVGV4dEVkaXRvckFsbE1vZHVsZSxcclxuICBIdG1sRWRpdG9yU2VydmljZSxcclxuICBUb29sYmFyU2VydmljZSBhcyBSaWNoRWRpdG9yVG9vbGJhclNlcnZpY2UsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXJpY2h0ZXh0ZWRpdG9yXCI7XHJcblxyXG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXJcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuXHJcbi8vIHNlcnZpY2VzXHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSWNvbkxvYWRlclNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2ljb24tbG9hZGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgS2VlcEFsaXZlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcblxyXG5pbXBvcnQgeyBDb21tb25HcmlkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tbW9uLWdyaWQvaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZsb2F0Qm94Q29tcG9uZW50IH0gZnJvbSBcIi4vZmxvYXQtYm94L2luZGV4LmNvbXBvbmVudFwiO1xyXG5cclxuaW1wb3J0IHsgUnNQYWdlTGlzdENvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dC9wYWdlLWxpc3QvaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJzUGFnZVRhYkNvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dC9wYWdlLXRhYi9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgR3JpZEJveENvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dC9ncmlkLWJveC9pbmRleC5jb21wb25lbnRcIjtcclxuXHJcbmltcG9ydCB7IE1haW5Db250YWluZXJDb21wb25lbnQgfSBmcm9tIFwiLi9sYXlvdXQvbWFpbi1jb250YWluZXIvaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJTSGVhZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vbGF5b3V0L3JzLWhlYWRlci9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUlNGb290ZXJDb21wb25lbnQgfSBmcm9tIFwiLi9sYXlvdXQvcnMtZm9vdGVyL2luZGV4LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSU0FzaWRlQ29tcG9uZW50IH0gZnJvbSBcIi4vbGF5b3V0L3JzLWFzaWRlL2luZGV4LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNdWx0aVRhYkNvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50XCI7XHJcblxyXG5pbXBvcnQgeyBUYWdJbnB1dENvbXBvbmVudCB9IGZyb20gXCIuL2Zvcm0vdGFnLWlucHV0L2luZGV4LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSYWRpb0dyb3VwQ29tcG9uZW50IH0gZnJvbSBcIi4vZm9ybS9yYWRpby1ncm91cC9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ2hlY2tib3hHcm91cENvbXBvbmVudCB9IGZyb20gXCIuL2Zvcm0vY2hlY2tib3gtZ3JvdXAvaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFN3aXRjaElucHV0Q29tcG9uZW50IH0gZnJvbSBcIi4vZm9ybS9zd2l0Y2gtaW5wdXQvaW5kZXguY29tcG9uZW50XCI7XHJcblxyXG5pbXBvcnQgeyBOZXdBY3Rpb25Ob3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tIFwiLi9kaWFsb2cvbmV3LWFjdGlvbi1ub3RpZmljYXRpb24vbmV3LWFjdGlvbi1ub3RpZmljYXRpb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvbW1vbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gXCIuL2RpYWxvZy9jb21tb24tZGlhbG9nL2luZGV4LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb21tb25EZWxldGVDb21wb25lbnQgfSBmcm9tIFwiLi9kaWFsb2cvY29tbW9uLWRlbGV0ZS1kaWFsb2cvaW5kZXguY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQ29tbW9uR3JpZENvbXBvbmVudCxcclxuICAgIEZsb2F0Qm94Q29tcG9uZW50LFxyXG4gICAgUnNQYWdlTGlzdENvbXBvbmVudCxcclxuICAgIFJzUGFnZVRhYkNvbXBvbmVudCxcclxuICAgIEdyaWRCb3hDb21wb25lbnQsXHJcbiAgICBSU0hlYWRlckNvbXBvbmVudCxcclxuICAgIFJTRm9vdGVyQ29tcG9uZW50LFxyXG4gICAgUlNBc2lkZUNvbXBvbmVudCxcclxuICAgIE11bHRpVGFiQ29tcG9uZW50LFxyXG4gICAgTWFpbkNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFRhZ0lucHV0Q29tcG9uZW50LFxyXG4gICAgUmFkaW9Hcm91cENvbXBvbmVudCxcclxuICAgIENoZWNrYm94R3JvdXBDb21wb25lbnQsXHJcbiAgICBTd2l0Y2hJbnB1dENvbXBvbmVudCxcclxuICAgIE5ld0FjdGlvbk5vdGlmaWNhdGlvbkNvbXBvbmVudCxcclxuICAgIENvbW1vbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgIENvbW1vbkRlbGV0ZUNvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBHcmlkTW9kdWxlLFxyXG4gICAgUGFnZXJNb2R1bGUsXHJcbiAgICBHcmlkQWxsTW9kdWxlLFxyXG4gICAgU3dpdGNoTW9kdWxlLFxyXG4gICAgQ2hlY2tCb3hNb2R1bGUsXHJcbiAgICBSYWRpb0J1dHRvbk1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIERpYWdyYW1Nb2R1bGUsXHJcbiAgICBUb29sdGlwTW9kdWxlLFxyXG4gICAgRGlhbG9nTW9kdWxlLFxyXG4gICAgRGF0ZVBpY2tlck1vZHVsZSxcclxuICAgIERhdGVSYW5nZVBpY2tlck1vZHVsZSxcclxuICAgIERhdGVUaW1lUGlja2VyTW9kdWxlLFxyXG4gICAgVGV4dEJveE1vZHVsZSxcclxuICAgIENvbG9yUGlja2VyTW9kdWxlLFxyXG4gICAgVXBsb2FkZXJNb2R1bGUsXHJcbiAgICBOdW1lcmljVGV4dEJveE1vZHVsZSxcclxuICAgIERyb3BEb3duTGlzdE1vZHVsZSxcclxuICAgIERyb3BEb3duVHJlZU1vZHVsZSxcclxuICAgIE11bHRpU2VsZWN0QWxsTW9kdWxlLFxyXG4gICAgQXV0b0NvbXBsZXRlTW9kdWxlLFxyXG4gICAgTGlzdEJveE1vZHVsZSxcclxuICAgIFBpdm90Vmlld0FsbE1vZHVsZSxcclxuICAgIFBpdm90RmllbGRMaXN0QWxsTW9kdWxlLFxyXG4gICAgQ2hhcnRBbGxNb2R1bGUsXHJcbiAgICBBY2N1bXVsYXRpb25DaGFydEFsbE1vZHVsZSxcclxuICAgIFJhbmdlTmF2aWdhdG9yQWxsTW9kdWxlLFxyXG4gICAgQWNjdW11bGF0aW9uQ2hhcnRNb2R1bGUsXHJcbiAgICBEYXNoYm9hcmRMYXlvdXRNb2R1bGUsXHJcbiAgICBDYXJvdXNlbEFsbE1vZHVsZSxcclxuICAgIFRvb2xiYXJNb2R1bGUsXHJcbiAgICBUYWJNb2R1bGUsXHJcbiAgICBQZGZWaWV3ZXJNb2R1bGUsXHJcbiAgICBEcm9wRG93bkJ1dHRvbk1vZHVsZSxcclxuICAgIFNwbGl0QnV0dG9uTW9kdWxlLFxyXG4gICAgUmljaFRleHRFZGl0b3JBbGxNb2R1bGUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFBhZ2VTZXJ2aWNlLFxyXG4gICAgU29ydFNlcnZpY2UsXHJcbiAgICBGaWx0ZXJTZXJ2aWNlLFxyXG4gICAgRXhjZWxFeHBvcnRTZXJ2aWNlLFxyXG4gICAgRWRpdFNlcnZpY2UsXHJcbiAgICBSZXNpemVTZXJ2aWNlLFxyXG4gICAgVG9vbGJhclNlcnZpY2UsXHJcbiAgICBDb2x1bW5DaG9vc2VyU2VydmljZSxcclxuICAgIEFnZ3JlZ2F0ZVNlcnZpY2UsXHJcbiAgICBDb2x1bW5NZW51U2VydmljZSxcclxuICAgIERldGFpbFJvd1NlcnZpY2UsXHJcbiAgICBTZWxlY3Rpb25TZXJ2aWNlLFxyXG4gICAgR3JvdXBTZXJ2aWNlLFxyXG4gICAgUGllU2VyaWVzU2VydmljZSxcclxuICAgIEFjY3VtdWxhdGlvbkxlZ2VuZFNlcnZpY2UsXHJcbiAgICBBY2N1bXVsYXRpb25Ub29sdGlwU2VydmljZSxcclxuICAgIEFjY3VtdWxhdGlvbkFubm90YXRpb25TZXJ2aWNlLFxyXG4gICAgQWNjdW11bGF0aW9uRGF0YUxhYmVsU2VydmljZSxcclxuICAgIExpbmtBbm5vdGF0aW9uU2VydmljZSxcclxuICAgIEJvb2ttYXJrVmlld1NlcnZpY2UsXHJcbiAgICBNYWduaWZpY2F0aW9uU2VydmljZSxcclxuICAgIFRodW1ibmFpbFZpZXdTZXJ2aWNlLFxyXG4gICAgUGJmVG9vbGJhclNlcnZpY2UsXHJcbiAgICBOYXZpZ2F0aW9uU2VydmljZSxcclxuICAgIFRleHRTZWFyY2hTZXJ2aWNlLFxyXG4gICAgVGV4dFNlbGVjdGlvblNlcnZpY2UsXHJcbiAgICBQcmludFNlcnZpY2UsXHJcbiAgICBIdG1sRWRpdG9yU2VydmljZSxcclxuICAgIFJpY2hFZGl0b3JUb29sYmFyU2VydmljZSxcclxuXHJcbiAgICBDb21tb25GdW5jdGlvblNlcnZpY2UsXHJcbiAgICBJY29uTG9hZGVyU2VydmljZSxcclxuICAgIERpYWxvZ1NlcnZpY2UsXHJcbiAgICBLZWVwQWxpdmVTZXJ2aWNlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgR3JpZE1vZHVsZSxcclxuICAgIFBhZ2VyTW9kdWxlLFxyXG4gICAgR3JpZEFsbE1vZHVsZSxcclxuICAgIFN3aXRjaE1vZHVsZSxcclxuICAgIENoZWNrQm94TW9kdWxlLFxyXG4gICAgUmFkaW9CdXR0b25Nb2R1bGUsXHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBEaWFncmFtTW9kdWxlLFxyXG4gICAgVG9vbHRpcE1vZHVsZSxcclxuICAgIERpYWxvZ01vZHVsZSxcclxuICAgIERhdGVQaWNrZXJNb2R1bGUsXHJcbiAgICBEYXRlUmFuZ2VQaWNrZXJNb2R1bGUsXHJcbiAgICBEYXRlVGltZVBpY2tlck1vZHVsZSxcclxuICAgIFRleHRCb3hNb2R1bGUsXHJcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcclxuICAgIFVwbG9hZGVyTW9kdWxlLFxyXG4gICAgTnVtZXJpY1RleHRCb3hNb2R1bGUsXHJcbiAgICBEcm9wRG93bkxpc3RNb2R1bGUsXHJcbiAgICBEcm9wRG93blRyZWVNb2R1bGUsXHJcbiAgICBNdWx0aVNlbGVjdEFsbE1vZHVsZSxcclxuICAgIEF1dG9Db21wbGV0ZU1vZHVsZSxcclxuICAgIExpc3RCb3hNb2R1bGUsXHJcbiAgICBQaXZvdFZpZXdBbGxNb2R1bGUsXHJcbiAgICBQaXZvdEZpZWxkTGlzdEFsbE1vZHVsZSxcclxuICAgIENoYXJ0QWxsTW9kdWxlLFxyXG4gICAgQWNjdW11bGF0aW9uQ2hhcnRBbGxNb2R1bGUsXHJcbiAgICBSYW5nZU5hdmlnYXRvckFsbE1vZHVsZSxcclxuICAgIEFjY3VtdWxhdGlvbkNoYXJ0TW9kdWxlLFxyXG4gICAgRGFzaGJvYXJkTGF5b3V0TW9kdWxlLFxyXG4gICAgQ2Fyb3VzZWxBbGxNb2R1bGUsXHJcbiAgICBUb29sYmFyTW9kdWxlLFxyXG4gICAgVGFiTW9kdWxlLFxyXG4gICAgUGRmVmlld2VyTW9kdWxlLFxyXG4gICAgRHJvcERvd25CdXR0b25Nb2R1bGUsXHJcbiAgICBTcGxpdEJ1dHRvbk1vZHVsZSxcclxuICAgIFJpY2hUZXh0RWRpdG9yQWxsTW9kdWxlLFxyXG4gICAgQ29tbW9uR3JpZENvbXBvbmVudCxcclxuICAgIEZsb2F0Qm94Q29tcG9uZW50LFxyXG4gICAgUnNQYWdlTGlzdENvbXBvbmVudCxcclxuICAgIFJzUGFnZVRhYkNvbXBvbmVudCxcclxuICAgIEdyaWRCb3hDb21wb25lbnQsXHJcbiAgICBSU0hlYWRlckNvbXBvbmVudCxcclxuICAgIFJTRm9vdGVyQ29tcG9uZW50LFxyXG4gICAgUlNBc2lkZUNvbXBvbmVudCxcclxuICAgIE11bHRpVGFiQ29tcG9uZW50LFxyXG4gICAgTWFpbkNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFRhZ0lucHV0Q29tcG9uZW50LFxyXG4gICAgUmFkaW9Hcm91cENvbXBvbmVudCxcclxuICAgIENoZWNrYm94R3JvdXBDb21wb25lbnQsXHJcbiAgICBTd2l0Y2hJbnB1dENvbXBvbmVudCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmFpc2VDb21tb25MaWJNb2R1bGUge31cclxuIl19
511
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFpc2UtY29tbW9uLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvcmFpc2UtY29tbW9uLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFDTCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFdBQVcsRUFDWCxhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLFlBQVksRUFDWixhQUFhLEdBQ2QsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsWUFBWSxHQUNiLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsb0JBQW9CLEdBQ3JCLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUNMLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLGdDQUFnQyxD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QkFDakIsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixTQUFTO3dCQUNULGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLDhCQUE4Qjt3QkFDOUIscUJBQXFCO3dCQUNyQixxQkFBcUI7cUJBQ3RCO29CQUVELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gIEdyaWRNb2R1bGUsXHJcbiAgUGFnZVNlcnZpY2UsXHJcbiAgU29ydFNlcnZpY2UsXHJcbiAgRmlsdGVyU2VydmljZSxcclxuICBFeGNlbEV4cG9ydFNlcnZpY2UsXHJcbiAgRWRpdFNlcnZpY2UsXHJcbiAgUmVzaXplU2VydmljZSxcclxuICBUb29sYmFyU2VydmljZSxcclxuICBDb2x1bW5DaG9vc2VyU2VydmljZSxcclxuICBBZ2dyZWdhdGVTZXJ2aWNlLFxyXG4gIENvbHVtbk1lbnVTZXJ2aWNlLFxyXG4gIERldGFpbFJvd1NlcnZpY2UsXHJcbiAgU2VsZWN0aW9uU2VydmljZSxcclxuICBQYWdlck1vZHVsZSxcclxuICBHcm91cFNlcnZpY2UsXHJcbiAgR3JpZEFsbE1vZHVsZSxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZ3JpZHNcIjtcclxuaW1wb3J0IHtcclxuICBTd2l0Y2hNb2R1bGUsXHJcbiAgQ2hlY2tCb3hNb2R1bGUsXHJcbiAgUmFkaW9CdXR0b25Nb2R1bGUsXHJcbiAgQnV0dG9uTW9kdWxlLFxyXG59IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1idXR0b25zXCI7XHJcbmltcG9ydCB7IERpYWdyYW1Nb2R1bGUgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZGlhZ3JhbXNcIjtcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSwgRGlhbG9nTW9kdWxlIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXBvcHVwc1wiO1xyXG5pbXBvcnQge1xyXG4gIERhdGVQaWNrZXJNb2R1bGUsXHJcbiAgRGF0ZVJhbmdlUGlja2VyTW9kdWxlLFxyXG4gIERhdGVUaW1lUGlja2VyTW9kdWxlLFxyXG59IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jYWxlbmRhcnNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgVGV4dEJveE1vZHVsZSxcclxuICBDb2xvclBpY2tlck1vZHVsZSxcclxuICBVcGxvYWRlck1vZHVsZSxcclxuICBOdW1lcmljVGV4dEJveE1vZHVsZSxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItaW5wdXRzXCI7XHJcbmltcG9ydCB7XHJcbiAgRHJvcERvd25MaXN0TW9kdWxlLFxyXG4gIE11bHRpU2VsZWN0QWxsTW9kdWxlLFxyXG4gIEF1dG9Db21wbGV0ZU1vZHVsZSxcclxuICBEcm9wRG93blRyZWVNb2R1bGUsXHJcbiAgTGlzdEJveE1vZHVsZSxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZHJvcGRvd25zXCI7XHJcbmltcG9ydCB7XHJcbiAgUGl2b3RWaWV3QWxsTW9kdWxlLFxyXG4gIFBpdm90RmllbGRMaXN0QWxsTW9kdWxlLFxyXG59IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1waXZvdHZpZXdcIjtcclxuaW1wb3J0IHtcclxuICBDaGFydEFsbE1vZHVsZSxcclxuICBBY2N1bXVsYXRpb25DaGFydEFsbE1vZHVsZSxcclxuICBSYW5nZU5hdmlnYXRvckFsbE1vZHVsZSxcclxuICBBY2N1bXVsYXRpb25DaGFydE1vZHVsZSxcclxuICBQaWVTZXJpZXNTZXJ2aWNlLFxyXG4gIEFjY3VtdWxhdGlvbkxlZ2VuZFNlcnZpY2UsXHJcbiAgQWNjdW11bGF0aW9uVG9vbHRpcFNlcnZpY2UsXHJcbiAgQWNjdW11bGF0aW9uQW5ub3RhdGlvblNlcnZpY2UsXHJcbiAgQWNjdW11bGF0aW9uRGF0YUxhYmVsU2VydmljZSxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzXCI7XHJcbmltcG9ydCB7IERhc2hib2FyZExheW91dE1vZHVsZSB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1sYXlvdXRzXCI7XHJcbmltcG9ydCB7XHJcbiAgQ2Fyb3VzZWxBbGxNb2R1bGUsXHJcbiAgVG9vbGJhck1vZHVsZSxcclxuICBUYWJNb2R1bGUsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLW5hdmlnYXRpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgUGRmVmlld2VyTW9kdWxlLFxyXG4gIExpbmtBbm5vdGF0aW9uU2VydmljZSxcclxuICBCb29rbWFya1ZpZXdTZXJ2aWNlLFxyXG4gIE1hZ25pZmljYXRpb25TZXJ2aWNlLFxyXG4gIFRodW1ibmFpbFZpZXdTZXJ2aWNlLFxyXG4gIFRvb2xiYXJTZXJ2aWNlIGFzIFBiZlRvb2xiYXJTZXJ2aWNlLFxyXG4gIE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gIFRleHRTZWFyY2hTZXJ2aWNlLFxyXG4gIFRleHRTZWxlY3Rpb25TZXJ2aWNlLFxyXG4gIFByaW50U2VydmljZSxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcGRmdmlld2VyXCI7XHJcbmltcG9ydCB7XHJcbiAgRHJvcERvd25CdXR0b25Nb2R1bGUsXHJcbiAgU3BsaXRCdXR0b25Nb2R1bGUsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXNwbGl0YnV0dG9uc1wiO1xyXG5pbXBvcnQge1xyXG4gIFJpY2hUZXh0RWRpdG9yQWxsTW9kdWxlLFxyXG4gIEh0bWxFZGl0b3JTZXJ2aWNlLFxyXG4gIFRvb2xiYXJTZXJ2aWNlIGFzIFJpY2hFZGl0b3JUb29sYmFyU2VydmljZSxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcmljaHRleHRlZGl0b3JcIjtcclxuXHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhclwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xyXG5cclxuLy8gc2VydmljZXNcclxuaW1wb3J0IHsgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9jb21tb24tZnVuY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJY29uTG9hZGVyU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvaWNvbi1sb2FkZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL3RyYW5zbGF0aW9uLnNlcnZpY2VcIjtcclxuXHJcbmltcG9ydCB7IENvbW1vbkdyaWRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21tb24tZ3JpZC9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgR3JpZEFjdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbW1vbi1ncmlkL2dyaWQtYWN0aW9uL2dyaWQtYWN0aW9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHcmlkQWN0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbW1vbi1ncmlkL2dyaWQtYWN0aW9uL2dyaWQtYWN0aW9uLWl0ZW0vZ3JpZC1hY3Rpb24taXRlbS5jb21wb25lbnRcIjtcclxuXHJcbmltcG9ydCB7IEZsb2F0Qm94Q29tcG9uZW50IH0gZnJvbSBcIi4vZmxvYXQtYm94L2luZGV4LmNvbXBvbmVudFwiO1xyXG5cclxuaW1wb3J0IHsgUnNQYWdlTGlzdENvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dC9wYWdlLWxpc3QvaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJzUGFnZVRhYkNvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dC9wYWdlLXRhYi9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgR3JpZEJveENvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dC9ncmlkLWJveC9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWFpbkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dC9tYWluLWNvbnRhaW5lci9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUlNIZWFkZXJDb21wb25lbnQgfSBmcm9tIFwiLi9sYXlvdXQvcnMtaGVhZGVyL2luZGV4LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSU0Zvb3RlckNvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dC9ycy1mb290ZXIvaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJTQXNpZGVDb21wb25lbnQgfSBmcm9tIFwiLi9sYXlvdXQvcnMtYXNpZGUvaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE11bHRpVGFiQ29tcG9uZW50IH0gZnJvbSBcIi4vbGF5b3V0L211bHRpLXRhYi9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRHJhd2VyQ29tcG9uZW50IH0gZnJvbSBcIi4vbGF5b3V0L2RyYXdlci9pbmRleC5jb21wb25lbnRcIjtcclxuXHJcbmltcG9ydCB7IFRhZ0lucHV0Q29tcG9uZW50IH0gZnJvbSBcIi4vZm9ybS90YWctaW5wdXQvaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tIFwiLi9mb3JtL3JhZGlvLWdyb3VwL2luZGV4LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDaGVja2JveEdyb3VwQ29tcG9uZW50IH0gZnJvbSBcIi4vZm9ybS9jaGVja2JveC1ncm91cC9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3dpdGNoSW5wdXRDb21wb25lbnQgfSBmcm9tIFwiLi9mb3JtL3N3aXRjaC1pbnB1dC9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRW5jcnlwdGVkSW5wdXRDb21wb25lbnQgfSBmcm9tIFwiLi9mb3JtL2VuY3J5cHRlZC1pbnB1dC9pbmRleC5jb21wb25lbnRcIjtcclxuXHJcbmltcG9ydCB7IE5ld0FjdGlvbk5vdGlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL2RpYWxvZy9uZXctYWN0aW9uLW5vdGlmaWNhdGlvbi9uZXctYWN0aW9uLW5vdGlmaWNhdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29tbW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSBcIi4vZGlhbG9nL2NvbW1vbi1kaWFsb2cvaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvbW1vbkRlbGV0ZUNvbXBvbmVudCB9IGZyb20gXCIuL2RpYWxvZy9jb21tb24tZGVsZXRlLWRpYWxvZy9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRHJhd2VyU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvZHJhd2VyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRHJhd2VyRm9ybUNvbXBvbmVudCB9IGZyb20gXCIuL2Zvcm0vZHJhd2VyLWZvcm0vZHJhd2VyLWZvcm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRvb2xiYXJJdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4vZm9ybS90b29sYmFyLWl0ZW0vaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJzQ29tbWVudGFyeUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbW1lbnRhcnkvaW5kZXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJTTmF2Q2FyZEdyb3VwQ29tcG9uZW50IH0gZnJvbSBcIi4vbGF5b3V0L25hdi1jYXJkLWdyb3VwL2luZGV4LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSU1Rvb2xiYXJDb21wb25lbnQgfSBmcm9tIFwiLi9sYXlvdXQvdG9vbGJhci9pbmRleC5jb21wb25lbnRcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDb21tb25HcmlkQ29tcG9uZW50LFxyXG4gICAgR3JpZEFjdGlvbkNvbXBvbmVudCxcclxuICAgIEdyaWRBY3Rpb25JdGVtQ29tcG9uZW50LFxyXG4gICAgRmxvYXRCb3hDb21wb25lbnQsXHJcbiAgICBSc1BhZ2VMaXN0Q29tcG9uZW50LFxyXG4gICAgUnNQYWdlVGFiQ29tcG9uZW50LFxyXG4gICAgR3JpZEJveENvbXBvbmVudCxcclxuICAgIFJTSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgUlNGb290ZXJDb21wb25lbnQsXHJcbiAgICBSU0FzaWRlQ29tcG9uZW50LFxyXG4gICAgTXVsdGlUYWJDb21wb25lbnQsXHJcbiAgICBNYWluQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgVGFnSW5wdXRDb21wb25lbnQsXHJcbiAgICBSYWRpb0dyb3VwQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tib3hHcm91cENvbXBvbmVudCxcclxuICAgIFN3aXRjaElucHV0Q29tcG9uZW50LFxyXG4gICAgRW5jcnlwdGVkSW5wdXRDb21wb25lbnQsXHJcbiAgICBOZXdBY3Rpb25Ob3RpZmljYXRpb25Db21wb25lbnQsXHJcbiAgICBDb21tb25EaWFsb2dDb21wb25lbnQsXHJcbiAgICBDb21tb25EZWxldGVDb21wb25lbnQsXHJcbiAgICBEcmF3ZXJDb21wb25lbnQsXHJcbiAgICBEcmF3ZXJGb3JtQ29tcG9uZW50LFxyXG4gICAgVG9vbGJhckl0ZW1Db21wb25lbnQsXHJcbiAgICBSc0NvbW1lbnRhcnlDb21wb25lbnQsXHJcbiAgICBSU05hdkNhcmRHcm91cENvbXBvbmVudCxcclxuICAgIFJTVG9vbGJhckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgR3JpZE1vZHVsZSxcclxuICAgIFBhZ2VyTW9kdWxlLFxyXG4gICAgR3JpZEFsbE1vZHVsZSxcclxuICAgIFN3aXRjaE1vZHVsZSxcclxuICAgIENoZWNrQm94TW9kdWxlLFxyXG4gICAgUmFkaW9CdXR0b25Nb2R1bGUsXHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBEaWFncmFtTW9kdWxlLFxyXG4gICAgVG9vbHRpcE1vZHVsZSxcclxuICAgIERpYWxvZ01vZHVsZSxcclxuICAgIERhdGVQaWNrZXJNb2R1bGUsXHJcbiAgICBEYXRlUmFuZ2VQaWNrZXJNb2R1bGUsXHJcbiAgICBEYXRlVGltZVBpY2tlck1vZHVsZSxcclxuICAgIFRleHRCb3hNb2R1bGUsXHJcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcclxuICAgIFVwbG9hZGVyTW9kdWxlLFxyXG4gICAgTnVtZXJpY1RleHRCb3hNb2R1bGUsXHJcbiAgICBEcm9wRG93bkxpc3RNb2R1bGUsXHJcbiAgICBEcm9wRG93blRyZWVNb2R1bGUsXHJcbiAgICBNdWx0aVNlbGVjdEFsbE1vZHVsZSxcclxuICAgIEF1dG9Db21wbGV0ZU1vZHVsZSxcclxuICAgIExpc3RCb3hNb2R1bGUsXHJcbiAgICBQaXZvdFZpZXdBbGxNb2R1bGUsXHJcbiAgICBQaXZvdEZpZWxkTGlzdEFsbE1vZHVsZSxcclxuICAgIENoYXJ0QWxsTW9kdWxlLFxyXG4gICAgQWNjdW11bGF0aW9uQ2hhcnRBbGxNb2R1bGUsXHJcbiAgICBSYW5nZU5hdmlnYXRvckFsbE1vZHVsZSxcclxuICAgIEFjY3VtdWxhdGlvbkNoYXJ0TW9kdWxlLFxyXG4gICAgRGFzaGJvYXJkTGF5b3V0TW9kdWxlLFxyXG4gICAgQ2Fyb3VzZWxBbGxNb2R1bGUsXHJcbiAgICBUb29sYmFyTW9kdWxlLFxyXG4gICAgVGFiTW9kdWxlLFxyXG4gICAgUGRmVmlld2VyTW9kdWxlLFxyXG4gICAgRHJvcERvd25CdXR0b25Nb2R1bGUsXHJcbiAgICBTcGxpdEJ1dHRvbk1vZHVsZSxcclxuICAgIFJpY2hUZXh0RWRpdG9yQWxsTW9kdWxlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBQYWdlU2VydmljZSxcclxuICAgIFNvcnRTZXJ2aWNlLFxyXG4gICAgRmlsdGVyU2VydmljZSxcclxuICAgIEV4Y2VsRXhwb3J0U2VydmljZSxcclxuICAgIEVkaXRTZXJ2aWNlLFxyXG4gICAgUmVzaXplU2VydmljZSxcclxuICAgIFRvb2xiYXJTZXJ2aWNlLFxyXG4gICAgQ29sdW1uQ2hvb3NlclNlcnZpY2UsXHJcbiAgICBBZ2dyZWdhdGVTZXJ2aWNlLFxyXG4gICAgQ29sdW1uTWVudVNlcnZpY2UsXHJcbiAgICBEZXRhaWxSb3dTZXJ2aWNlLFxyXG4gICAgU2VsZWN0aW9uU2VydmljZSxcclxuICAgIEdyb3VwU2VydmljZSxcclxuICAgIFBpZVNlcmllc1NlcnZpY2UsXHJcbiAgICBBY2N1bXVsYXRpb25MZWdlbmRTZXJ2aWNlLFxyXG4gICAgQWNjdW11bGF0aW9uVG9vbHRpcFNlcnZpY2UsXHJcbiAgICBBY2N1bXVsYXRpb25Bbm5vdGF0aW9uU2VydmljZSxcclxuICAgIEFjY3VtdWxhdGlvbkRhdGFMYWJlbFNlcnZpY2UsXHJcbiAgICBMaW5rQW5ub3RhdGlvblNlcnZpY2UsXHJcbiAgICBCb29rbWFya1ZpZXdTZXJ2aWNlLFxyXG4gICAgTWFnbmlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBUaHVtYm5haWxWaWV3U2VydmljZSxcclxuICAgIFBiZlRvb2xiYXJTZXJ2aWNlLFxyXG4gICAgTmF2aWdhdGlvblNlcnZpY2UsXHJcbiAgICBUZXh0U2VhcmNoU2VydmljZSxcclxuICAgIFRleHRTZWxlY3Rpb25TZXJ2aWNlLFxyXG4gICAgUHJpbnRTZXJ2aWNlLFxyXG4gICAgSHRtbEVkaXRvclNlcnZpY2UsXHJcbiAgICBSaWNoRWRpdG9yVG9vbGJhclNlcnZpY2UsXHJcblxyXG4gICAgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgSWNvbkxvYWRlclNlcnZpY2UsXHJcbiAgICBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgR3JpZE1vZHVsZSxcclxuICAgIFBhZ2VyTW9kdWxlLFxyXG4gICAgR3JpZEFsbE1vZHVsZSxcclxuICAgIFN3aXRjaE1vZHVsZSxcclxuICAgIENoZWNrQm94TW9kdWxlLFxyXG4gICAgUmFkaW9CdXR0b25Nb2R1bGUsXHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBEaWFncmFtTW9kdWxlLFxyXG4gICAgVG9vbHRpcE1vZHVsZSxcclxuICAgIERpYWxvZ01vZHVsZSxcclxuICAgIERhdGVQaWNrZXJNb2R1bGUsXHJcbiAgICBEYXRlUmFuZ2VQaWNrZXJNb2R1bGUsXHJcbiAgICBEYXRlVGltZVBpY2tlck1vZHVsZSxcclxuICAgIFRleHRCb3hNb2R1bGUsXHJcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcclxuICAgIFVwbG9hZGVyTW9kdWxlLFxyXG4gICAgTnVtZXJpY1RleHRCb3hNb2R1bGUsXHJcbiAgICBEcm9wRG93bkxpc3RNb2R1bGUsXHJcbiAgICBEcm9wRG93blRyZWVNb2R1bGUsXHJcbiAgICBNdWx0aVNlbGVjdEFsbE1vZHVsZSxcclxuICAgIEF1dG9Db21wbGV0ZU1vZHVsZSxcclxuICAgIExpc3RCb3hNb2R1bGUsXHJcbiAgICBQaXZvdFZpZXdBbGxNb2R1bGUsXHJcbiAgICBQaXZvdEZpZWxkTGlzdEFsbE1vZHVsZSxcclxuICAgIENoYXJ0QWxsTW9kdWxlLFxyXG4gICAgQWNjdW11bGF0aW9uQ2hhcnRBbGxNb2R1bGUsXHJcbiAgICBSYW5nZU5hdmlnYXRvckFsbE1vZHVsZSxcclxuICAgIEFjY3VtdWxhdGlvbkNoYXJ0TW9kdWxlLFxyXG4gICAgRGFzaGJvYXJkTGF5b3V0TW9kdWxlLFxyXG4gICAgQ2Fyb3VzZWxBbGxNb2R1bGUsXHJcbiAgICBUb29sYmFyTW9kdWxlLFxyXG4gICAgVGFiTW9kdWxlLFxyXG4gICAgUGRmVmlld2VyTW9kdWxlLFxyXG4gICAgRHJvcERvd25CdXR0b25Nb2R1bGUsXHJcbiAgICBTcGxpdEJ1dHRvbk1vZHVsZSxcclxuICAgIFJpY2hUZXh0RWRpdG9yQWxsTW9kdWxlLFxyXG4gICAgQ29tbW9uR3JpZENvbXBvbmVudCxcclxuICAgIEdyaWRBY3Rpb25Db21wb25lbnQsXHJcbiAgICBHcmlkQWN0aW9uSXRlbUNvbXBvbmVudCxcclxuICAgIEZsb2F0Qm94Q29tcG9uZW50LFxyXG4gICAgUnNQYWdlTGlzdENvbXBvbmVudCxcclxuICAgIFJzUGFnZVRhYkNvbXBvbmVudCxcclxuICAgIEdyaWRCb3hDb21wb25lbnQsXHJcbiAgICBSU0hlYWRlckNvbXBvbmVudCxcclxuICAgIFJTRm9vdGVyQ29tcG9uZW50LFxyXG4gICAgUlNBc2lkZUNvbXBvbmVudCxcclxuICAgIE11bHRpVGFiQ29tcG9uZW50LFxyXG4gICAgTWFpbkNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFRhZ0lucHV0Q29tcG9uZW50LFxyXG4gICAgUmFkaW9Hcm91cENvbXBvbmVudCxcclxuICAgIENoZWNrYm94R3JvdXBDb21wb25lbnQsXHJcbiAgICBTd2l0Y2hJbnB1dENvbXBvbmVudCxcclxuICAgIEVuY3J5cHRlZElucHV0Q29tcG9uZW50LFxyXG4gICAgRHJhd2VyQ29tcG9uZW50LFxyXG4gICAgRHJhd2VyRm9ybUNvbXBvbmVudCxcclxuICAgIFRvb2xiYXJJdGVtQ29tcG9uZW50LFxyXG4gICAgUnNDb21tZW50YXJ5Q29tcG9uZW50LFxyXG4gICAgUlNOYXZDYXJkR3JvdXBDb21wb25lbnQsXHJcbiAgICBSU1Rvb2xiYXJDb21wb25lbnQsXHJcbiAgICBOZXdBY3Rpb25Ob3RpZmljYXRpb25Db21wb25lbnQsXHJcbiAgICBDb21tb25EaWFsb2dDb21wb25lbnQsXHJcbiAgICBDb21tb25EZWxldGVDb21wb25lbnQsXHJcbiAgXSxcclxuXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmFpc2VDb21tb25MaWJNb2R1bGUge31cclxuIl19
@@ -1,7 +1,12 @@
1
1
  import { Injectable } from "@angular/core";
2
+ import { Subject } from "rxjs";
2
3
  import * as i0 from "@angular/core";
3
4
  export class CommonFunctionService {
4
5
  constructor() { }
6
+ closeTabSubject = new Subject();
7
+ closeTab$ = this.closeTabSubject.asObservable();
8
+ pub = new Subject();
9
+ pub$ = this.pub.asObservable();
5
10
  testMethod() {
6
11
  return "test1111";
7
12
  }
@@ -43,6 +48,87 @@ export class CommonFunctionService {
43
48
  }
44
49
  return url;
45
50
  }
51
+ // 删除当前
52
+ closeTab(tabIndex) {
53
+ return this.closeTabSubject.next(tabIndex);
54
+ }
55
+ publish(event) {
56
+ this.pub.next(event);
57
+ }
58
+ rtn(str) {
59
+ if (str && (str !== 0 || str !== "0")) {
60
+ let arr = str.trim().split(" ");
61
+ let res = "";
62
+ for (let i = 0; i < arr.length; i++) {
63
+ let el = arr[i];
64
+ if (el) {
65
+ arr[i] = el.replace(/[^a-zA-z0-9\u4e00-\u9fa5]/g, "");
66
+ }
67
+ else {
68
+ arr.splice(i, 1);
69
+ i--;
70
+ }
71
+ }
72
+ arr = arr.filter((el) => el);
73
+ var pattern = new RegExp("[\u4E00-\u9FA5]+");
74
+ var pattern2 = new RegExp("[A-Za-z0-9]+");
75
+ if (arr.length > 1) {
76
+ if (pattern.test(arr[0][0])) {
77
+ res = arr[0][0];
78
+ return res;
79
+ }
80
+ else if (pattern2.test(arr[0][0])) {
81
+ if (pattern2.test(arr[1][0])) {
82
+ res = arr[0][0] + arr[1][0];
83
+ }
84
+ else if (pattern.test(arr[1][0])) {
85
+ res = arr[0][0] + arr[0][1];
86
+ }
87
+ if (res != null && res != "" && typeof res == "string") {
88
+ return res.toUpperCase();
89
+ }
90
+ else {
91
+ return "";
92
+ }
93
+ }
94
+ }
95
+ else if (arr.length == 1) {
96
+ if (pattern.test(arr[0][0])) {
97
+ res = arr[0][0];
98
+ return res;
99
+ }
100
+ else if (pattern2.test(arr[0][0])) {
101
+ if (pattern2.test(arr[0][1])) {
102
+ res = arr[0][0] + arr[0][1];
103
+ if (res != null && res != "" && typeof res == "string") {
104
+ return res.toUpperCase();
105
+ }
106
+ else {
107
+ return "";
108
+ }
109
+ }
110
+ else if (pattern.test(arr[0][1])) {
111
+ res = arr[0][1];
112
+ if (res != null && res != "" && typeof res == "string") {
113
+ return res.toUpperCase();
114
+ }
115
+ else {
116
+ return "";
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
122
+ else {
123
+ return "";
124
+ }
125
+ }
126
+ Guid() {
127
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
128
+ let r = (Math.random() * 16) | 0, v = c == "x" ? r : (r & 0x3) | 0x8;
129
+ return v.toString(16);
130
+ });
131
+ }
46
132
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonFunctionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
47
133
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonFunctionService, providedIn: "root" });
48
134
  }
@@ -52,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
52
138
  providedIn: "root",
53
139
  }]
54
140
  }], ctorParameters: function () { return []; } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZS9jb21tb24tZnVuY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLGdCQUFlLENBQUM7SUFFaEIsVUFBVTtRQUNSLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLEdBQUcsRUFBRSxRQUFRLEdBQUcsRUFBRTtRQUNyRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLElBQUksR0FBRyxHQUFHLFFBQVEsVUFBVSxDQUFDO1FBRXJDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRTVDLElBQUksS0FBSyxJQUFJLFFBQVEsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQztTQUNaO1FBQ0QsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM3QyxJQUFJLEtBQUssR0FBRyxJQUFJLEVBQUU7Z0JBQ2pCLE1BQU07YUFDTjtTQUNEO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQ2xDLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM5QyxJQUFJLEtBQUssR0FBRyxJQUFJLEVBQUU7Z0JBQ2pCLE1BQU07YUFDTjtTQUNEO1FBRUQsT0FBTyxTQUFTLEdBQUcsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUN2QyxDQUFDO0lBRUEsVUFBVSxDQUFDLEdBQVc7UUFDdEIsSUFBSSxHQUFHLEVBQUU7WUFDUixpQ0FBaUM7WUFDakMsR0FBRyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDeEI7U0FDRDtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ1osQ0FBQzt3R0FqRFcscUJBQXFCOzRHQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHRlc3RNZXRob2QoKSB7XHJcbiAgICByZXR1cm4gXCJ0ZXN0MTExMVwiO1xyXG4gIH1cclxuXHJcbiAgc2V0TWlkZGxlRWxsaXBzaXModGV4dCwgbWF4V2lkdGggPSAxNTAsIGZvbnRTaXplID0gMTMpIHtcclxuXHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XHJcblx0XHRjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuXHRcdGNvbnRleHQuZm9udCA9IGAke2ZvbnRTaXplfXB4IEFyaWFsYDtcclxuXHJcblx0XHRsZXQgd2lkdGggPSBjb250ZXh0Lm1lYXN1cmVUZXh0KHRleHQpLndpZHRoO1xyXG5cclxuXHRcdGlmICh3aWR0aCA8PSBtYXhXaWR0aCkge1xyXG5cdFx0XHRyZXR1cm4gdGV4dDtcclxuXHRcdH1cclxuXHRcdG1heFdpZHRoID0gTWF0aC5mbG9vcihtYXhXaWR0aCAtIGNvbnRleHQubWVhc3VyZVRleHQoXCIuLi5cIikud2lkdGgpO1xyXG5cdFx0bGV0IGZpcnN0UGFydCA9IFwiXCI7XHJcblx0XHRsZXQgc2Vjb25kUGFydCA9IFwiXCI7XHJcblx0XHRsZXQgaGFsZiA9IE1hdGguZmxvb3IobWF4V2lkdGggLyAyKTtcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRmaXJzdFBhcnQgKz0gdGV4dFtpXTtcclxuXHRcdFx0d2lkdGggPSBjb250ZXh0Lm1lYXN1cmVUZXh0KGZpcnN0UGFydCkud2lkdGg7XHJcblx0XHRcdGlmICh3aWR0aCA+IGhhbGYpIHtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAobGV0IGkgPSB0ZXh0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcblx0XHRcdHNlY29uZFBhcnQgPSB0ZXh0W2ldICsgc2Vjb25kUGFydDtcclxuXHRcdFx0d2lkdGggPSBjb250ZXh0Lm1lYXN1cmVUZXh0KHNlY29uZFBhcnQpLndpZHRoO1xyXG5cdFx0XHRpZiAod2lkdGggPiBoYWxmKSB7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gZmlyc3RQYXJ0ICsgXCIuLi5cIiArIHNlY29uZFBhcnQ7XHJcblx0fVxyXG5cclxuICBnZXRQdXJlVXJsKHVybDogc3RyaW5nKSB7XHJcblx0XHRpZiAodXJsKSB7XHJcblx0XHRcdC8vIOWmguaenHBhcmFtc+eahHZhbHVlIOaQuuW4puafpeivouWPguaVsO+8jCDliJnmiKrlj5bliY3pnaLpg6jliIZcclxuXHRcdFx0dXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KHVybCk7XHJcblx0XHRcdGlmICh1cmwuaW5jbHVkZXMoXCI/XCIpKSB7XHJcblx0XHRcdFx0dXJsID0gdXJsLnNwbGl0KFwiP1wiKVswXTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHVybDtcclxuXHR9XHJcbn1cclxuIl19
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZS9jb21tb24tZnVuY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsZ0JBQWUsQ0FBQztJQUNSLGVBQWUsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO0lBQ3pDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRWhELEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBQ3pCLElBQUksR0FBb0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUV2RCxVQUFVO1FBQ1IsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsR0FBRyxFQUFFLFFBQVEsR0FBRyxFQUFFO1FBQ25ELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxVQUFVLENBQUM7UUFFckMsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFNUMsSUFBSSxLQUFLLElBQUksUUFBUSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FB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RSxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sc0NBQXNDLENBQUMsT0FBTyxDQUNuRCxPQUFPLEVBQ1AsVUFBVSxDQUFDO1lBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUM5QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDckMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzt3R0FySVUscUJBQXFCOzRHQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbW1vbkZ1bmN0aW9uU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIHByaXZhdGUgY2xvc2VUYWJTdWJqZWN0ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xyXG4gIHB1YmxpYyBjbG9zZVRhYiQgPSB0aGlzLmNsb3NlVGFiU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHVibGljIHB1YiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwdWJsaWMgcHViJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5wdWIuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHRlc3RNZXRob2QoKSB7XHJcbiAgICByZXR1cm4gXCJ0ZXN0MTExMVwiO1xyXG4gIH1cclxuXHJcbiAgc2V0TWlkZGxlRWxsaXBzaXModGV4dCwgbWF4V2lkdGggPSAxNTAsIGZvbnRTaXplID0gMTMpIHtcclxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuICAgIGNvbnRleHQuZm9udCA9IGAke2ZvbnRTaXplfXB4IEFyaWFsYDtcclxuXHJcbiAgICBsZXQgd2lkdGggPSBjb250ZXh0Lm1lYXN1cmVUZXh0KHRleHQpLndpZHRoO1xyXG5cclxuICAgIGlmICh3aWR0aCA8PSBtYXhXaWR0aCkge1xyXG4gICAgICByZXR1cm4gdGV4dDtcclxuICAgIH1cclxuICAgIG1heFdpZHRoID0gTWF0aC5mbG9vcihtYXhXaWR0aCAtIGNvbnRleHQubWVhc3VyZVRleHQoXCIuLi5cIikud2lkdGgpO1xyXG4gICAgbGV0IGZpcnN0UGFydCA9IFwiXCI7XHJcbiAgICBsZXQgc2Vjb25kUGFydCA9IFwiXCI7XHJcbiAgICBsZXQgaGFsZiA9IE1hdGguZmxvb3IobWF4V2lkdGggLyAyKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmaXJzdFBhcnQgKz0gdGV4dFtpXTtcclxuICAgICAgd2lkdGggPSBjb250ZXh0Lm1lYXN1cmVUZXh0KGZpcnN0UGFydCkud2lkdGg7XHJcbiAgICAgIGlmICh3aWR0aCA+IGhhbGYpIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSB0ZXh0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIHNlY29uZFBhcnQgPSB0ZXh0W2ldICsgc2Vjb25kUGFydDtcclxuICAgICAgd2lkdGggPSBjb250ZXh0Lm1lYXN1cmVUZXh0KHNlY29uZFBhcnQpLndpZHRoO1xyXG4gICAgICBpZiAod2lkdGggPiBoYWxmKSB7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmlyc3RQYXJ0ICsgXCIuLi5cIiArIHNlY29uZFBhcnQ7XHJcbiAgfVxyXG5cclxuICBnZXRQdXJlVXJsKHVybDogc3RyaW5nKSB7XHJcbiAgICBpZiAodXJsKSB7XHJcbiAgICAgIC8vIOWmguaenHBhcmFtc+eahHZhbHVlIOaQuuW4puafpeivouWPguaVsO+8jCDliJnmiKrlj5bliY3pnaLpg6jliIZcclxuICAgICAgdXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KHVybCk7XHJcbiAgICAgIGlmICh1cmwuaW5jbHVkZXMoXCI/XCIpKSB7XHJcbiAgICAgICAgdXJsID0gdXJsLnNwbGl0KFwiP1wiKVswXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVybDtcclxuICB9XHJcblxyXG4gIC8vIOWIoOmZpOW9k+WJjVxyXG4gIGNsb3NlVGFiKHRhYkluZGV4PzogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbG9zZVRhYlN1YmplY3QubmV4dCh0YWJJbmRleCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaXNoKGV2ZW50KSB7XHJcbiAgICB0aGlzLnB1Yi5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHJ0bihzdHIpIHtcclxuICAgIGlmIChzdHIgJiYgKHN0ciAhPT0gMCB8fCBzdHIgIT09IFwiMFwiKSkge1xyXG4gICAgICBsZXQgYXJyID0gc3RyLnRyaW0oKS5zcGxpdChcIiBcIik7XHJcbiAgICAgIGxldCByZXMgPSBcIlwiO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBlbCA9IGFycltpXTtcclxuICAgICAgICBpZiAoZWwpIHtcclxuICAgICAgICAgIGFycltpXSA9IGVsLnJlcGxhY2UoL1teYS16QS16MC05XFx1NGUwMC1cXHU5ZmE1XS9nLCBcIlwiKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgYXJyLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgIGktLTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgYXJyID0gYXJyLmZpbHRlcigoZWwpID0+IGVsKTtcclxuICAgICAgdmFyIHBhdHRlcm4gPSBuZXcgUmVnRXhwKFwiW1xcdTRFMDAtXFx1OUZBNV0rXCIpO1xyXG4gICAgICB2YXIgcGF0dGVybjIgPSBuZXcgUmVnRXhwKFwiW0EtWmEtejAtOV0rXCIpO1xyXG4gICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBpZiAocGF0dGVybi50ZXN0KGFyclswXVswXSkpIHtcclxuICAgICAgICAgIHJlcyA9IGFyclswXVswXTtcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSBlbHNlIGlmIChwYXR0ZXJuMi50ZXN0KGFyclswXVswXSkpIHtcclxuICAgICAgICAgIGlmIChwYXR0ZXJuMi50ZXN0KGFyclsxXVswXSkpIHtcclxuICAgICAgICAgICAgcmVzID0gYXJyWzBdWzBdICsgYXJyWzFdWzBdO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChwYXR0ZXJuLnRlc3QoYXJyWzFdWzBdKSkge1xyXG4gICAgICAgICAgICByZXMgPSBhcnJbMF1bMF0gKyBhcnJbMF1bMV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocmVzICE9IG51bGwgJiYgcmVzICE9IFwiXCIgJiYgdHlwZW9mIHJlcyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXMudG9VcHBlckNhc2UoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChhcnIubGVuZ3RoID09IDEpIHtcclxuICAgICAgICBpZiAocGF0dGVybi50ZXN0KGFyclswXVswXSkpIHtcclxuICAgICAgICAgIHJlcyA9IGFyclswXVswXTtcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSBlbHNlIGlmIChwYXR0ZXJuMi50ZXN0KGFyclswXVswXSkpIHtcclxuICAgICAgICAgIGlmIChwYXR0ZXJuMi50ZXN0KGFyclswXVsxXSkpIHtcclxuICAgICAgICAgICAgcmVzID0gYXJyWzBdWzBdICsgYXJyWzBdWzFdO1xyXG4gICAgICAgICAgICBpZiAocmVzICE9IG51bGwgJiYgcmVzICE9IFwiXCIgJiYgdHlwZW9mIHJlcyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcy50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHBhdHRlcm4udGVzdChhcnJbMF1bMV0pKSB7XHJcbiAgICAgICAgICAgIHJlcyA9IGFyclswXVsxXTtcclxuICAgICAgICAgICAgaWYgKHJlcyAhPSBudWxsICYmIHJlcyAhPSBcIlwiICYmIHR5cGVvZiByZXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXMudG9VcHBlckNhc2UoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBHdWlkKCkge1xyXG4gICAgcmV0dXJuIFwieHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4XCIucmVwbGFjZShcclxuICAgICAgL1t4eV0vZyxcclxuICAgICAgZnVuY3Rpb24gKGMpIHtcclxuICAgICAgICBsZXQgciA9IChNYXRoLnJhbmRvbSgpICogMTYpIHwgMCxcclxuICAgICAgICAgIHYgPSBjID09IFwieFwiID8gciA6IChyICYgMHgzKSB8IDB4ODtcclxuICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==