tango-app-ui-store-builder 1.2.17 → 1.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/access-denied/access-denied.component.mjs +31 -0
- package/esm2022/lib/components/collection-update-ai/collection-update-ai.component.mjs +3 -3
- package/esm2022/lib/components/collection-update-ai/find-replace-layout/prepare-template/prepare-template.component.mjs +3 -3
- package/esm2022/lib/components/collection-update-ai/find-replace-layout/review-replace/review-replace.component.mjs +3 -3
- package/esm2022/lib/components/fixture-template/template-assign-stores/preview-modal/preview-modal.component.mjs +3 -3
- package/esm2022/lib/components/fixture-template/template-assign-stores/template-assign-stores.component.mjs +3 -3
- package/esm2022/lib/components/fixture-template-table/find-and-replace/find-and-replace.component.mjs +3 -3
- package/esm2022/lib/components/fixture-template-table/fixture-template-table.component.mjs +25 -3
- package/esm2022/lib/components/fixture-template-tree/fixture-template-tree.component.mjs +3 -3
- package/esm2022/lib/components/manage-store-plano/manage-store-plano.component.mjs +3 -3
- package/esm2022/lib/components/manage-store-plano/plano-rollout/plano-rollout.component.mjs +3 -3
- package/esm2022/lib/components/manage-store-plano/verification-feedback/verification-feedback.component.mjs +9 -3
- package/esm2022/lib/components/manage-store-plano/zone-verification-feedback/zone-verification-feedback.component.mjs +9 -3
- package/esm2022/lib/components/onboard-store-plano/onboard-store-plano.component.mjs +133 -21
- package/esm2022/lib/components/plano-configurations/plano-configurations.component.mjs +8 -3
- package/esm2022/lib/components/plano-library/fixture-library/fixture-library.component.mjs +28 -5
- package/esm2022/lib/components/plano-tools/cad-render/cad-render.component.mjs +3 -3
- package/esm2022/lib/components/plano-tools/delete-floor/delete-floor.component.mjs +3 -3
- package/esm2022/lib/components/plano-tools/layout-touchup/layout-touchup.component.mjs +3 -3
- package/esm2022/lib/components/plano-tools/plano-migrate/plano-migrate.component.mjs +3 -3
- package/esm2022/lib/components/plano-tools/tool-page-header/tool-page-header.component.mjs +3 -3
- package/esm2022/lib/components/plano-tools/tools-parent/tools-parent.component.mjs +3 -3
- package/esm2022/lib/components/planogram/merch-compliance/merch-compliance.component.mjs +3 -3
- package/esm2022/lib/components/planogram/merch-compliance/product-locator/product-locator.component.mjs +3 -3
- package/esm2022/lib/components/planogram/plano-overview/plano-comparison/plano-comparison.component.mjs +3 -3
- package/esm2022/lib/components/planogram/plano-overview/plano-overview.component.mjs +3 -3
- package/esm2022/lib/components/popups/publish-plano-modal/publish-plano-modal.component.mjs +1 -1
- package/esm2022/lib/components/store-plano/store-plano-tree-view/store-plano-tree-view.component.mjs +3 -3
- package/esm2022/lib/components/store-plano/store-plano.component.mjs +3 -3
- package/esm2022/lib/functions/feature-access.guard.mjs +20 -0
- package/esm2022/lib/functions/plano.function.mjs +22 -1
- package/esm2022/lib/services/store-builder.service.mjs +15 -3
- package/esm2022/lib/tango-store-builder-routing.module.mjs +11 -1
- package/esm2022/lib/tango-store-builder.module.mjs +5 -2
- package/fesm2022/tango-app-ui-store-builder.mjs +318 -61
- package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
- package/lib/components/access-denied/access-denied.component.d.ts +18 -0
- package/lib/components/fixture-template-table/fixture-template-table.component.d.ts +6 -0
- package/lib/components/manage-plano/rollout-table/rollout-table.component.d.ts +2 -2
- package/lib/components/manage-plano/verification-table/verification-table.component.d.ts +5 -5
- package/lib/components/manage-store-plano/verification-feedback/verification-feedback.component.d.ts +1 -0
- package/lib/components/manage-store-plano/zone-verification-feedback/zone-verification-feedback.component.d.ts +1 -0
- package/lib/components/onboard-store-plano/onboard-store-plano.component.d.ts +8 -0
- package/lib/components/plano-library/fixture-library/fixture-library.component.d.ts +5 -1
- package/lib/functions/feature-access.guard.d.ts +9 -0
- package/lib/functions/plano.function.d.ts +9 -0
- package/lib/services/store-builder.service.d.ts +6 -0
- package/lib/tango-store-builder.module.d.ts +38 -37
- package/package.json +1 -1
|
@@ -7,11 +7,11 @@ export class ToolPageHeaderComponent {
|
|
|
7
7
|
description = "";
|
|
8
8
|
backLink = "/manage/planogram/plano-tools";
|
|
9
9
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolPageHeaderComponent, selector: "lib-tool-page-header", inputs: { title: "title", description: "description", backLink: "backLink" }, ngImport: i0, template: "<div class=\"tool-page-header d-flex align-items-start gap-3 mb-3\">\n <a\n class=\"back-btn\"\n [routerLink]=\"backLink\"\n aria-label=\"Back to Plano Tools\"\n title=\"Back to Plano Tools\"\n >\n <i class=\"bi bi-arrow-left\"></i>\n </a>\n <div class=\"flex-grow-1\">\n <h4 class=\"title mb-1\">{{ title }}</h4>\n <p *ngIf=\"description\" class=\"text-muted small mb-0\">{{ description }}</p>\n </div>\n</div>\n", styles: [".tool-page-header{padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.tool-page-header .back-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;color:#475569;background:#f1f5f9;text-decoration:none;flex-shrink:0;transition:background .15s,color .15s}.tool-page-header .back-btn:hover{background:#e2e8f0;color:#0f172a}.tool-page-header .back-btn i{font-size:1rem}.tool-page-header .title{font-weight:600;margin:0;color:#0f172a}\n"], dependencies: [{ kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolPageHeaderComponent, selector: "lib-tool-page-header", inputs: { title: "title", description: "description", backLink: "backLink" }, ngImport: i0, template: "<div class=\"tool-page-header d-flex align-items-start gap-3 mb-3\">\r\n <a\r\n class=\"back-btn\"\r\n [routerLink]=\"backLink\"\r\n aria-label=\"Back to Plano Tools\"\r\n title=\"Back to Plano Tools\"\r\n >\r\n <i class=\"bi bi-arrow-left\"></i>\r\n </a>\r\n <div class=\"flex-grow-1\">\r\n <h4 class=\"title mb-1\">{{ title }}</h4>\r\n <p *ngIf=\"description\" class=\"text-muted small mb-0\">{{ description }}</p>\r\n </div>\r\n</div>\r\n", styles: [".tool-page-header{padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.tool-page-header .back-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;color:#475569;background:#f1f5f9;text-decoration:none;flex-shrink:0;transition:background .15s,color .15s}.tool-page-header .back-btn:hover{background:#e2e8f0;color:#0f172a}.tool-page-header .back-btn i{font-size:1rem}.tool-page-header .title{font-weight:600;margin:0;color:#0f172a}\n"], dependencies: [{ kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
11
11
|
}
|
|
12
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolPageHeaderComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
|
-
args: [{ selector: "lib-tool-page-header", template: "<div class=\"tool-page-header d-flex align-items-start gap-3 mb-3\">\n <a\n class=\"back-btn\"\n [routerLink]=\"backLink\"\n aria-label=\"Back to Plano Tools\"\n title=\"Back to Plano Tools\"\n >\n <i class=\"bi bi-arrow-left\"></i>\n </a>\n <div class=\"flex-grow-1\">\n <h4 class=\"title mb-1\">{{ title }}</h4>\n <p *ngIf=\"description\" class=\"text-muted small mb-0\">{{ description }}</p>\n </div>\n</div>\n", styles: [".tool-page-header{padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.tool-page-header .back-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;color:#475569;background:#f1f5f9;text-decoration:none;flex-shrink:0;transition:background .15s,color .15s}.tool-page-header .back-btn:hover{background:#e2e8f0;color:#0f172a}.tool-page-header .back-btn i{font-size:1rem}.tool-page-header .title{font-weight:600;margin:0;color:#0f172a}\n"] }]
|
|
14
|
+
args: [{ selector: "lib-tool-page-header", template: "<div class=\"tool-page-header d-flex align-items-start gap-3 mb-3\">\r\n <a\r\n class=\"back-btn\"\r\n [routerLink]=\"backLink\"\r\n aria-label=\"Back to Plano Tools\"\r\n title=\"Back to Plano Tools\"\r\n >\r\n <i class=\"bi bi-arrow-left\"></i>\r\n </a>\r\n <div class=\"flex-grow-1\">\r\n <h4 class=\"title mb-1\">{{ title }}</h4>\r\n <p *ngIf=\"description\" class=\"text-muted small mb-0\">{{ description }}</p>\r\n </div>\r\n</div>\r\n", styles: [".tool-page-header{padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.tool-page-header .back-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;color:#475569;background:#f1f5f9;text-decoration:none;flex-shrink:0;transition:background .15s,color .15s}.tool-page-header .back-btn:hover{background:#e2e8f0;color:#0f172a}.tool-page-header .back-btn i{font-size:1rem}.tool-page-header .title{font-weight:600;margin:0;color:#0f172a}\n"] }]
|
|
15
15
|
}], propDecorators: { title: [{
|
|
16
16
|
type: Input
|
|
17
17
|
}], description: [{
|
|
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
19
19
|
}], backLink: [{
|
|
20
20
|
type: Input
|
|
21
21
|
}] } });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1wYWdlLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9wbGFuby10b29scy90b29sLXBhZ2UtaGVhZGVyL3Rvb2wtcGFnZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvdG9vbC1wYWdlLWhlYWRlci90b29sLXBhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBT2pELE1BQU0sT0FBTyx1QkFBdUI7SUFDekIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsUUFBUSxHQUFXLCtCQUErQixDQUFDO3dHQUhqRCx1QkFBdUI7NEZBQXZCLHVCQUF1QiwwSUNQcEMscWRBY0E7OzRGRFBhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0I7OEJBS3ZCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10b29sLXBhZ2UtaGVhZGVyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi90b29sLXBhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi90b29sLXBhZ2UtaGVhZGVyLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sUGFnZUhlYWRlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdGl0bGUgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gXCJcIjtcclxuICBASW5wdXQoKSBiYWNrTGluazogc3RyaW5nID0gXCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29sc1wiO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0b29sLXBhZ2UtaGVhZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBnYXAtMyBtYi0zXCI+XHJcbiAgPGFcclxuICAgIGNsYXNzPVwiYmFjay1idG5cIlxyXG4gICAgW3JvdXRlckxpbmtdPVwiYmFja0xpbmtcIlxyXG4gICAgYXJpYS1sYWJlbD1cIkJhY2sgdG8gUGxhbm8gVG9vbHNcIlxyXG4gICAgdGl0bGU9XCJCYWNrIHRvIFBsYW5vIFRvb2xzXCJcclxuICA+XHJcbiAgICA8aSBjbGFzcz1cImJpIGJpLWFycm93LWxlZnRcIj48L2k+XHJcbiAgPC9hPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxyXG4gICAgPGg0IGNsYXNzPVwidGl0bGUgbWItMVwiPnt7IHRpdGxlIH19PC9oND5cclxuICAgIDxwICpuZ0lmPVwiZGVzY3JpcHRpb25cIiBjbGFzcz1cInRleHQtbXV0ZWQgc21hbGwgbWItMFwiPnt7IGRlc2NyaXB0aW9uIH19PC9wPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -69,10 +69,10 @@ export class ToolsParentComponent {
|
|
|
69
69
|
this.destroy$.complete();
|
|
70
70
|
}
|
|
71
71
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolsParentComponent, deps: [{ token: i1.NgbModal }, { token: i2.Router }, { token: i3.GlobalStateService }, { token: i3.PageInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolsParentComponent, selector: "lib-tools-parent", ngImport: i0, template: "<div class=\"plano-tools-hub\">\n <div class=\"hub-header mb-4\">\n <h4 class=\"mb-1\">Plano Tools</h4>\n <p class=\"text-muted small mb-0\">\n Utilities for managing planograms, layouts, exports and templates.\n </p>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title\">Export & Inspect</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/migrate\">\n <div class=\"icon\"><i class=\"bi bi-images\"></i></div>\n <div class=\"title\">Download Layout Images</div>\n <div class=\"desc\">Export layout images store by store.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-render\">\n <div class=\"icon\"><i class=\"bi bi-bounding-box\"></i></div>\n <div class=\"title\">Check CAD Output</div>\n <div class=\"desc\">Paste CAD data and preview the parsed layout.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-files\">\n <div class=\"icon\"><i class=\"bi bi-folder2-open\"></i></div>\n <div class=\"title\">CAD Files</div>\n <div class=\"desc\">List uploaded CAD & Kissflow files for a store.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/data-export\">\n <div class=\"icon\"><i class=\"bi bi-database-down\"></i></div>\n <div class=\"title\">Data Export</div>\n <div class=\"desc\">Query planogram fixtures and export as Excel.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/store-exports\">\n <div class=\"icon\"><i class=\"bi bi-file-earmark-spreadsheet\"></i></div>\n <div class=\"title\">MBQ & Order</div>\n <div class=\"desc\">Generate per-store fixture export bundles.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title\">Edit & Modify</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/allow-edit\">\n <div class=\"icon\"><i class=\"bi bi-pencil-square\"></i></div>\n <div class=\"title\">Allow Edit</div>\n <div class=\"desc\">Re-enable editing on a published task without losing responses.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/modify-fixture-numbers\">\n <div class=\"icon\"><i class=\"bi bi-input-cursor-text\"></i></div>\n <div class=\"title\">Modify Fixture Numbers</div>\n <div class=\"desc\">Renumber fixtures in a planogram.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/layout-touchup\">\n <div class=\"icon\"><i class=\"bi bi-arrows-move\"></i></div>\n <div class=\"title\">Layout Touchup</div>\n <div class=\"desc\">Reposition or resize layout elements without invalidating responses.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/swap-template\">\n <div class=\"icon\"><i class=\"bi bi-arrow-left-right\"></i></div>\n <div class=\"title\">Template Swap</div>\n <div class=\"desc\">Replace one fixture template with another.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/move-bucket\">\n <div class=\"icon\"><i class=\"bi bi-arrow-down-up\"></i></div>\n <div class=\"title\">Move Store Bucket</div>\n <div class=\"desc\">Move a floor between Onboarding and ManagePlano.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title text-danger\">Destructive</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-task\">\n <div class=\"icon\"><i class=\"bi bi-trash\"></i></div>\n <div class=\"title\">Delete Task</div>\n <div class=\"desc\">Remove a task and its responses.</div>\n </a>\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-floor\">\n <div class=\"icon\"><i class=\"bi bi-trash3\"></i></div>\n <div class=\"title\">Delete Floor</div>\n <div class=\"desc\">Remove a floor and all rows referencing it.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section\">\n <h6 class=\"section-title\">Create</h6>\n <div class=\"card-grid\">\n <button type=\"button\" class=\"tool-card tool-card-primary\" (click)=\"onClickCreateFixtureTemplate()\">\n <div class=\"icon\"><i class=\"bi bi-plus-lg text-white\" ></i></div>\n <div class=\"title\">Create Template</div>\n <div class=\"desc\">Start a new fixture template from scratch.</div>\n </button>\n </div>\n </div>\n</div>\n", styles: [".plano-tools-hub{padding:.25rem}.hub-header h4{font-weight:600;color:#0f172a}.section-title{font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;margin-bottom:.75rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.tool-card{display:block;width:100%;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem 1.1rem;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s;cursor:pointer}.tool-card:hover{border-color:#94a3b8;box-shadow:0 4px 12px #0f172a0f;transform:translateY(-1px)}.tool-card .icon{width:36px;height:36px;border-radius:8px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:.6rem}.tool-card .title{font-weight:600;color:#0f172a;margin-bottom:.25rem}.tool-card .desc{font-size:.825rem;color:#64748b;line-height:1.35}.tool-card.tool-card-danger .icon{background:#fef2f2;color:#dc2626}.tool-card.tool-card-danger:hover{border-color:#fca5a5}.tool-card.tool-card-primary{border-color:#16a34a;background:#f0fdf4}.tool-card.tool-card-primary .icon{background:#16a34a;color:#fff;font-size:1.5rem;line-height:1;font-weight:700}.tool-card.tool-card-primary .title{color:#14532d}.tool-card.tool-card-primary:hover{border-color:#15803d;box-shadow:0 4px 14px #16a34a2e}\n"], dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
72
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolsParentComponent, selector: "lib-tools-parent", ngImport: i0, template: "<div class=\"plano-tools-hub\">\r\n <div class=\"hub-header mb-4\">\r\n <h4 class=\"mb-1\">Plano Tools</h4>\r\n <p class=\"text-muted small mb-0\">\r\n Utilities for managing planograms, layouts, exports and templates.\r\n </p>\r\n </div>\r\n\r\n <div class=\"tool-section mb-4\">\r\n <h6 class=\"section-title\">Export & Inspect</h6>\r\n <div class=\"card-grid\">\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/migrate\">\r\n <div class=\"icon\"><i class=\"bi bi-images\"></i></div>\r\n <div class=\"title\">Download Layout Images</div>\r\n <div class=\"desc\">Export layout images store by store.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-render\">\r\n <div class=\"icon\"><i class=\"bi bi-bounding-box\"></i></div>\r\n <div class=\"title\">Check CAD Output</div>\r\n <div class=\"desc\">Paste CAD data and preview the parsed layout.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-files\">\r\n <div class=\"icon\"><i class=\"bi bi-folder2-open\"></i></div>\r\n <div class=\"title\">CAD Files</div>\r\n <div class=\"desc\">List uploaded CAD & Kissflow files for a store.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/data-export\">\r\n <div class=\"icon\"><i class=\"bi bi-database-down\"></i></div>\r\n <div class=\"title\">Data Export</div>\r\n <div class=\"desc\">Query planogram fixtures and export as Excel.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/store-exports\">\r\n <div class=\"icon\"><i class=\"bi bi-file-earmark-spreadsheet\"></i></div>\r\n <div class=\"title\">MBQ & Order</div>\r\n <div class=\"desc\">Generate per-store fixture export bundles.</div>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tool-section mb-4\">\r\n <h6 class=\"section-title\">Edit & Modify</h6>\r\n <div class=\"card-grid\">\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/allow-edit\">\r\n <div class=\"icon\"><i class=\"bi bi-pencil-square\"></i></div>\r\n <div class=\"title\">Allow Edit</div>\r\n <div class=\"desc\">Re-enable editing on a published task without losing responses.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/modify-fixture-numbers\">\r\n <div class=\"icon\"><i class=\"bi bi-input-cursor-text\"></i></div>\r\n <div class=\"title\">Modify Fixture Numbers</div>\r\n <div class=\"desc\">Renumber fixtures in a planogram.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/layout-touchup\">\r\n <div class=\"icon\"><i class=\"bi bi-arrows-move\"></i></div>\r\n <div class=\"title\">Layout Touchup</div>\r\n <div class=\"desc\">Reposition or resize layout elements without invalidating responses.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/swap-template\">\r\n <div class=\"icon\"><i class=\"bi bi-arrow-left-right\"></i></div>\r\n <div class=\"title\">Template Swap</div>\r\n <div class=\"desc\">Replace one fixture template with another.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/move-bucket\">\r\n <div class=\"icon\"><i class=\"bi bi-arrow-down-up\"></i></div>\r\n <div class=\"title\">Move Store Bucket</div>\r\n <div class=\"desc\">Move a floor between Onboarding and ManagePlano.</div>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tool-section mb-4\">\r\n <h6 class=\"section-title text-danger\">Destructive</h6>\r\n <div class=\"card-grid\">\r\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-task\">\r\n <div class=\"icon\"><i class=\"bi bi-trash\"></i></div>\r\n <div class=\"title\">Delete Task</div>\r\n <div class=\"desc\">Remove a task and its responses.</div>\r\n </a>\r\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-floor\">\r\n <div class=\"icon\"><i class=\"bi bi-trash3\"></i></div>\r\n <div class=\"title\">Delete Floor</div>\r\n <div class=\"desc\">Remove a floor and all rows referencing it.</div>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tool-section\">\r\n <h6 class=\"section-title\">Create</h6>\r\n <div class=\"card-grid\">\r\n <button type=\"button\" class=\"tool-card tool-card-primary\" (click)=\"onClickCreateFixtureTemplate()\">\r\n <div class=\"icon\"><i class=\"bi bi-plus-lg text-white\" ></i></div>\r\n <div class=\"title\">Create Template</div>\r\n <div class=\"desc\">Start a new fixture template from scratch.</div>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".plano-tools-hub{padding:.25rem}.hub-header h4{font-weight:600;color:#0f172a}.section-title{font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;margin-bottom:.75rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.tool-card{display:block;width:100%;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem 1.1rem;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s;cursor:pointer}.tool-card:hover{border-color:#94a3b8;box-shadow:0 4px 12px #0f172a0f;transform:translateY(-1px)}.tool-card .icon{width:36px;height:36px;border-radius:8px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:.6rem}.tool-card .title{font-weight:600;color:#0f172a;margin-bottom:.25rem}.tool-card .desc{font-size:.825rem;color:#64748b;line-height:1.35}.tool-card.tool-card-danger .icon{background:#fef2f2;color:#dc2626}.tool-card.tool-card-danger:hover{border-color:#fca5a5}.tool-card.tool-card-primary{border-color:#16a34a;background:#f0fdf4}.tool-card.tool-card-primary .icon{background:#16a34a;color:#fff;font-size:1.5rem;line-height:1;font-weight:700}.tool-card.tool-card-primary .title{color:#14532d}.tool-card.tool-card-primary:hover{border-color:#15803d;box-shadow:0 4px 14px #16a34a2e}\n"], dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
73
73
|
}
|
|
74
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolsParentComponent, decorators: [{
|
|
75
75
|
type: Component,
|
|
76
|
-
args: [{ selector: "lib-tools-parent", template: "<div class=\"plano-tools-hub\">\n <div class=\"hub-header mb-4\">\n <h4 class=\"mb-1\">Plano Tools</h4>\n <p class=\"text-muted small mb-0\">\n Utilities for managing planograms, layouts, exports and templates.\n </p>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title\">Export & Inspect</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/migrate\">\n <div class=\"icon\"><i class=\"bi bi-images\"></i></div>\n <div class=\"title\">Download Layout Images</div>\n <div class=\"desc\">Export layout images store by store.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-render\">\n <div class=\"icon\"><i class=\"bi bi-bounding-box\"></i></div>\n <div class=\"title\">Check CAD Output</div>\n <div class=\"desc\">Paste CAD data and preview the parsed layout.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-files\">\n <div class=\"icon\"><i class=\"bi bi-folder2-open\"></i></div>\n <div class=\"title\">CAD Files</div>\n <div class=\"desc\">List uploaded CAD & Kissflow files for a store.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/data-export\">\n <div class=\"icon\"><i class=\"bi bi-database-down\"></i></div>\n <div class=\"title\">Data Export</div>\n <div class=\"desc\">Query planogram fixtures and export as Excel.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/store-exports\">\n <div class=\"icon\"><i class=\"bi bi-file-earmark-spreadsheet\"></i></div>\n <div class=\"title\">MBQ & Order</div>\n <div class=\"desc\">Generate per-store fixture export bundles.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title\">Edit & Modify</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/allow-edit\">\n <div class=\"icon\"><i class=\"bi bi-pencil-square\"></i></div>\n <div class=\"title\">Allow Edit</div>\n <div class=\"desc\">Re-enable editing on a published task without losing responses.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/modify-fixture-numbers\">\n <div class=\"icon\"><i class=\"bi bi-input-cursor-text\"></i></div>\n <div class=\"title\">Modify Fixture Numbers</div>\n <div class=\"desc\">Renumber fixtures in a planogram.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/layout-touchup\">\n <div class=\"icon\"><i class=\"bi bi-arrows-move\"></i></div>\n <div class=\"title\">Layout Touchup</div>\n <div class=\"desc\">Reposition or resize layout elements without invalidating responses.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/swap-template\">\n <div class=\"icon\"><i class=\"bi bi-arrow-left-right\"></i></div>\n <div class=\"title\">Template Swap</div>\n <div class=\"desc\">Replace one fixture template with another.</div>\n </a>\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/move-bucket\">\n <div class=\"icon\"><i class=\"bi bi-arrow-down-up\"></i></div>\n <div class=\"title\">Move Store Bucket</div>\n <div class=\"desc\">Move a floor between Onboarding and ManagePlano.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section mb-4\">\n <h6 class=\"section-title text-danger\">Destructive</h6>\n <div class=\"card-grid\">\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-task\">\n <div class=\"icon\"><i class=\"bi bi-trash\"></i></div>\n <div class=\"title\">Delete Task</div>\n <div class=\"desc\">Remove a task and its responses.</div>\n </a>\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-floor\">\n <div class=\"icon\"><i class=\"bi bi-trash3\"></i></div>\n <div class=\"title\">Delete Floor</div>\n <div class=\"desc\">Remove a floor and all rows referencing it.</div>\n </a>\n </div>\n </div>\n\n <div class=\"tool-section\">\n <h6 class=\"section-title\">Create</h6>\n <div class=\"card-grid\">\n <button type=\"button\" class=\"tool-card tool-card-primary\" (click)=\"onClickCreateFixtureTemplate()\">\n <div class=\"icon\"><i class=\"bi bi-plus-lg text-white\" ></i></div>\n <div class=\"title\">Create Template</div>\n <div class=\"desc\">Start a new fixture template from scratch.</div>\n </button>\n </div>\n </div>\n</div>\n", styles: [".plano-tools-hub{padding:.25rem}.hub-header h4{font-weight:600;color:#0f172a}.section-title{font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;margin-bottom:.75rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.tool-card{display:block;width:100%;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem 1.1rem;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s;cursor:pointer}.tool-card:hover{border-color:#94a3b8;box-shadow:0 4px 12px #0f172a0f;transform:translateY(-1px)}.tool-card .icon{width:36px;height:36px;border-radius:8px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:.6rem}.tool-card .title{font-weight:600;color:#0f172a;margin-bottom:.25rem}.tool-card .desc{font-size:.825rem;color:#64748b;line-height:1.35}.tool-card.tool-card-danger .icon{background:#fef2f2;color:#dc2626}.tool-card.tool-card-danger:hover{border-color:#fca5a5}.tool-card.tool-card-primary{border-color:#16a34a;background:#f0fdf4}.tool-card.tool-card-primary .icon{background:#16a34a;color:#fff;font-size:1.5rem;line-height:1;font-weight:700}.tool-card.tool-card-primary .title{color:#14532d}.tool-card.tool-card-primary:hover{border-color:#15803d;box-shadow:0 4px 14px #16a34a2e}\n"] }]
|
|
76
|
+
args: [{ selector: "lib-tools-parent", template: "<div class=\"plano-tools-hub\">\r\n <div class=\"hub-header mb-4\">\r\n <h4 class=\"mb-1\">Plano Tools</h4>\r\n <p class=\"text-muted small mb-0\">\r\n Utilities for managing planograms, layouts, exports and templates.\r\n </p>\r\n </div>\r\n\r\n <div class=\"tool-section mb-4\">\r\n <h6 class=\"section-title\">Export & Inspect</h6>\r\n <div class=\"card-grid\">\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/migrate\">\r\n <div class=\"icon\"><i class=\"bi bi-images\"></i></div>\r\n <div class=\"title\">Download Layout Images</div>\r\n <div class=\"desc\">Export layout images store by store.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-render\">\r\n <div class=\"icon\"><i class=\"bi bi-bounding-box\"></i></div>\r\n <div class=\"title\">Check CAD Output</div>\r\n <div class=\"desc\">Paste CAD data and preview the parsed layout.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/cad-files\">\r\n <div class=\"icon\"><i class=\"bi bi-folder2-open\"></i></div>\r\n <div class=\"title\">CAD Files</div>\r\n <div class=\"desc\">List uploaded CAD & Kissflow files for a store.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/data-export\">\r\n <div class=\"icon\"><i class=\"bi bi-database-down\"></i></div>\r\n <div class=\"title\">Data Export</div>\r\n <div class=\"desc\">Query planogram fixtures and export as Excel.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/store-exports\">\r\n <div class=\"icon\"><i class=\"bi bi-file-earmark-spreadsheet\"></i></div>\r\n <div class=\"title\">MBQ & Order</div>\r\n <div class=\"desc\">Generate per-store fixture export bundles.</div>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tool-section mb-4\">\r\n <h6 class=\"section-title\">Edit & Modify</h6>\r\n <div class=\"card-grid\">\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/allow-edit\">\r\n <div class=\"icon\"><i class=\"bi bi-pencil-square\"></i></div>\r\n <div class=\"title\">Allow Edit</div>\r\n <div class=\"desc\">Re-enable editing on a published task without losing responses.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/modify-fixture-numbers\">\r\n <div class=\"icon\"><i class=\"bi bi-input-cursor-text\"></i></div>\r\n <div class=\"title\">Modify Fixture Numbers</div>\r\n <div class=\"desc\">Renumber fixtures in a planogram.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/layout-touchup\">\r\n <div class=\"icon\"><i class=\"bi bi-arrows-move\"></i></div>\r\n <div class=\"title\">Layout Touchup</div>\r\n <div class=\"desc\">Reposition or resize layout elements without invalidating responses.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/swap-template\">\r\n <div class=\"icon\"><i class=\"bi bi-arrow-left-right\"></i></div>\r\n <div class=\"title\">Template Swap</div>\r\n <div class=\"desc\">Replace one fixture template with another.</div>\r\n </a>\r\n <a class=\"tool-card\" routerLink=\"/manage/planogram/plano-tools/move-bucket\">\r\n <div class=\"icon\"><i class=\"bi bi-arrow-down-up\"></i></div>\r\n <div class=\"title\">Move Store Bucket</div>\r\n <div class=\"desc\">Move a floor between Onboarding and ManagePlano.</div>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tool-section mb-4\">\r\n <h6 class=\"section-title text-danger\">Destructive</h6>\r\n <div class=\"card-grid\">\r\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-task\">\r\n <div class=\"icon\"><i class=\"bi bi-trash\"></i></div>\r\n <div class=\"title\">Delete Task</div>\r\n <div class=\"desc\">Remove a task and its responses.</div>\r\n </a>\r\n <a class=\"tool-card tool-card-danger\" routerLink=\"/manage/planogram/plano-tools/delete-floor\">\r\n <div class=\"icon\"><i class=\"bi bi-trash3\"></i></div>\r\n <div class=\"title\">Delete Floor</div>\r\n <div class=\"desc\">Remove a floor and all rows referencing it.</div>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"tool-section\">\r\n <h6 class=\"section-title\">Create</h6>\r\n <div class=\"card-grid\">\r\n <button type=\"button\" class=\"tool-card tool-card-primary\" (click)=\"onClickCreateFixtureTemplate()\">\r\n <div class=\"icon\"><i class=\"bi bi-plus-lg text-white\" ></i></div>\r\n <div class=\"title\">Create Template</div>\r\n <div class=\"desc\">Start a new fixture template from scratch.</div>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".plano-tools-hub{padding:.25rem}.hub-header h4{font-weight:600;color:#0f172a}.section-title{font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;margin-bottom:.75rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.tool-card{display:block;width:100%;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem 1.1rem;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s;cursor:pointer}.tool-card:hover{border-color:#94a3b8;box-shadow:0 4px 12px #0f172a0f;transform:translateY(-1px)}.tool-card .icon{width:36px;height:36px;border-radius:8px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:.6rem}.tool-card .title{font-weight:600;color:#0f172a;margin-bottom:.25rem}.tool-card .desc{font-size:.825rem;color:#64748b;line-height:1.35}.tool-card.tool-card-danger .icon{background:#fef2f2;color:#dc2626}.tool-card.tool-card-danger:hover{border-color:#fca5a5}.tool-card.tool-card-primary{border-color:#16a34a;background:#f0fdf4}.tool-card.tool-card-primary .icon{background:#16a34a;color:#fff;font-size:1.5rem;line-height:1;font-weight:700}.tool-card.tool-card-primary .title{color:#14532d}.tool-card.tool-card-primary:hover{border-color:#15803d;box-shadow:0 4px 14px #16a34a2e}\n"] }]
|
|
77
77
|
}], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.Router }, { type: i3.GlobalStateService }, { type: i3.PageInfoService }] });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMtcGFyZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3Rvb2xzLXBhcmVudC90b29scy1wYXJlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvdG9vbHMtcGFyZW50L3Rvb2xzLXBhcmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtGQUErRixDQUFDO0FBRy9JLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDOzs7OztBQU9kLE1BQU0sT0FBTyxvQkFBb0I7SUFLckI7SUFDQTtJQUNBO0lBQ0E7SUFQVixRQUFRLENBQVM7SUFFQSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNoRCxZQUNVLFFBQWtCLEVBQ2xCLE1BQWMsRUFDZCxFQUFzQixFQUN0QixRQUF5QjtRQUh6QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUNoQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWM7YUFDbkIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsdURBQXVEO1FBQ2pGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxxQ0FBcUM7UUFDeEQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsNEJBQTRCO1FBQ3RELG9CQUFvQixFQUFFLENBQ3ZCO2FBQ0EsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBVyxDQUNqRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxFQUFFLE1BQU0sQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxpQ0FBaUM7UUFDakMsTUFBTTtRQUNOLDBCQUEwQjtRQUMxQixtREFBbUQ7UUFDbkQsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQixPQUFPO1FBQ1AsTUFBTTtRQUNOLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixPQUFPO1FBQ1AsTUFBTTtJQUNSLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUU7WUFDbEUsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwRCxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzlCLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUNsQixDQUFDLGtEQUFrRCxDQUFDLEVBQ3BELEVBQUUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQzFELENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzt3R0F0RVUsb0JBQW9COzRGQUFwQixvQkFBb0Isd0RDbEJqQyx1eEpBaUdBOzs0RkQvRWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgQ3JlYXRlRml4dHVyZVRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2ZpeHR1cmUtdGVtcGxhdGUtdGFibGUvcG9wdXBzL2NyZWF0ZS1maXh0dXJlLXRlbXBsYXRlL2NyZWF0ZS1maXh0dXJlLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZmlsdGVyLFxyXG4gIFN1YmplY3QsXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItdG9vbHMtcGFyZW50XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi90b29scy1wYXJlbnQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3Rvb2xzLXBhcmVudC5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbHNQYXJlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZ2JNb2RhbDogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcblxyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIC8vIFN1YnNjcmlwdGlvbiB3aWxsIGJlIGNhbmNlbGxlZCBvbiBjb21wb25lbnQgZGVzdHJveS5cclxuICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSwgLy8gVG8gYXZvaWQgaW1tZWRpYXRlIGZyZXF1ZW50IGNhbGxzLlxyXG4gICAgICAgIGZpbHRlcigoZGF0YSkgPT4gISFkYXRhKSwgLy8gRmlsdGVyaW5nIG51bGwvdW5kZWZpbmVkLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIC8vIEVtaXR0aW5nIG9ubHkgZGlmZmVyZW50IHZhbHVlcy4gKElnbm9yZXMgc2FtZSBjbGllbnRJZCkuXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGE/LmNsaWVudCkge1xyXG4gICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGRhdGE/LmNsaWVudDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGhlYWRlckRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIGFzIHN0cmluZyxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmNsaWVudElkID0gaGVhZGVyRGF0YT8uY2xpZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJQbGFubyBUb29sc1wiKTtcclxuICAgIC8vIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdGl0bGU6IFwiUGxhbm9ncmFtXCIsXHJcbiAgICAvLyAgICAgcGF0aDogXCIvbWFuYWdlL3BsYW5vZ3JhbS9tYW5hZ2UtcGxhbm9ncmFtc1wiLFxyXG4gICAgLy8gICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgIC8vICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIHtcclxuICAgIC8vICAgICB0aXRsZTogXCJcIixcclxuICAgIC8vICAgICBwYXRoOiBcIlwiLFxyXG4gICAgLy8gICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgIC8vICAgICBpc1NlcGFyYXRvcjogdHJ1ZSxcclxuICAgIC8vICAgfSxcclxuICAgIC8vIF0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NyZWF0ZUZpeHR1cmVUZW1wbGF0ZSgpIHtcclxuICAgIGNvbnN0IG1vZGVsUmVmID0gdGhpcy5uZ2JNb2RhbC5vcGVuKENyZWF0ZUZpeHR1cmVUZW1wbGF0ZUNvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgfSk7XHJcbiAgICBtb2RlbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICBtb2RlbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICAgIFtcIi9tYW5hZ2UvcGxhbm9ncmFtL2ZpeHR1cmUtdGVtcGxhdGUvYmFzaWMtZGV0YWlsc1wiXSxcclxuICAgICAgICAgIHsgcXVlcnlQYXJhbXM6IHsgdGVtcGxhdGVJZDogcmVzdWx0Ll9pZCwgaXNFZGl0OiB0cnVlIH0gfSxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwbGFuby10b29scy1odWJcIj5cbiAgPGRpdiBjbGFzcz1cImh1Yi1oZWFkZXIgbWItNFwiPlxuICAgIDxoNCBjbGFzcz1cIm1iLTFcIj5QbGFubyBUb29sczwvaDQ+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LW11dGVkIHNtYWxsIG1iLTBcIj5cbiAgICAgIFV0aWxpdGllcyBmb3IgbWFuYWdpbmcgcGxhbm9ncmFtcywgbGF5b3V0cywgZXhwb3J0cyBhbmQgdGVtcGxhdGVzLlxuICAgIDwvcD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvbiBtYi00XCI+XG4gICAgPGg2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkV4cG9ydCAmYW1wOyBJbnNwZWN0PC9oNj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ncmlkXCI+XG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZFwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9taWdyYXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1pbWFnZXNcIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkRvd25sb2FkIExheW91dCBJbWFnZXM8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5FeHBvcnQgbGF5b3V0IGltYWdlcyBzdG9yZSBieSBzdG9yZS48L2Rpdj5cbiAgICAgIDwvYT5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2NhZC1yZW5kZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWJvdW5kaW5nLWJveFwiPjwvaT48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+Q2hlY2sgQ0FEIE91dHB1dDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPlBhc3RlIENBRCBkYXRhIGFuZCBwcmV2aWV3IHRoZSBwYXJzZWQgbGF5b3V0LjwvZGl2PlxuICAgICAgPC9hPlxuICAgICAgPGEgY2xhc3M9XCJ0b29sLWNhcmRcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvY2FkLWZpbGVzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1mb2xkZXIyLW9wZW5cIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkNBRCBGaWxlczwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPkxpc3QgdXBsb2FkZWQgQ0FEICZhbXA7IEtpc3NmbG93IGZpbGVzIGZvciBhIHN0b3JlLjwvZGl2PlxuICAgICAgPC9hPlxuICAgICAgPGEgY2xhc3M9XCJ0b29sLWNhcmRcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvZGF0YS1leHBvcnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWRhdGFiYXNlLWRvd25cIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkRhdGEgRXhwb3J0PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+UXVlcnkgcGxhbm9ncmFtIGZpeHR1cmVzIGFuZCBleHBvcnQgYXMgRXhjZWwuPC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZFwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9zdG9yZS1leHBvcnRzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1maWxlLWVhcm1hcmstc3ByZWFkc2hlZXRcIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPk1CUSAmYW1wOyBPcmRlcjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPkdlbmVyYXRlIHBlci1zdG9yZSBmaXh0dXJlIGV4cG9ydCBidW5kbGVzLjwvZGl2PlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uIG1iLTRcIj5cbiAgICA8aDYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+RWRpdCAmYW1wOyBNb2RpZnk8L2g2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWdyaWRcIj5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2FsbG93LWVkaXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmVcIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkFsbG93IEVkaXQ8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5SZS1lbmFibGUgZWRpdGluZyBvbiBhIHB1Ymxpc2hlZCB0YXNrIHdpdGhvdXQgbG9zaW5nIHJlc3BvbnNlcy48L2Rpdj5cbiAgICAgIDwvYT5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL21vZGlmeS1maXh0dXJlLW51bWJlcnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWlucHV0LWN1cnNvci10ZXh0XCI+PC9pPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5Nb2RpZnkgRml4dHVyZSBOdW1iZXJzPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+UmVudW1iZXIgZml4dHVyZXMgaW4gYSBwbGFub2dyYW0uPC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZFwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9sYXlvdXQtdG91Y2h1cFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPjxpIGNsYXNzPVwiYmkgYmktYXJyb3dzLW1vdmVcIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkxheW91dCBUb3VjaHVwPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+UmVwb3NpdGlvbiBvciByZXNpemUgbGF5b3V0IGVsZW1lbnRzIHdpdGhvdXQgaW52YWxpZGF0aW5nIHJlc3BvbnNlcy48L2Rpdj5cbiAgICAgIDwvYT5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL3N3YXAtdGVtcGxhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWFycm93LWxlZnQtcmlnaHRcIj48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlRlbXBsYXRlIFN3YXA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5SZXBsYWNlIG9uZSBmaXh0dXJlIHRlbXBsYXRlIHdpdGggYW5vdGhlci48L2Rpdj5cbiAgICAgIDwvYT5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL21vdmUtYnVja2V0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1hcnJvdy1kb3duLXVwXCI+PC9pPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5Nb3ZlIFN0b3JlIEJ1Y2tldDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPk1vdmUgYSBmbG9vciBiZXR3ZWVuIE9uYm9hcmRpbmcgYW5kIE1hbmFnZVBsYW5vLjwvZGl2PlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uIG1iLTRcIj5cbiAgICA8aDYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlIHRleHQtZGFuZ2VyXCI+RGVzdHJ1Y3RpdmU8L2g2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWdyaWRcIj5cbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkIHRvb2wtY2FyZC1kYW5nZXJcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvZGVsZXRlLXRhc2tcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoXCI+PC9pPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5EZWxldGUgVGFzazwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPlJlbW92ZSBhIHRhc2sgYW5kIGl0cyByZXNwb25zZXMuPC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZCB0b29sLWNhcmQtZGFuZ2VyXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2RlbGV0ZS1mbG9vclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2gzXCI+PC9pPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5EZWxldGUgRmxvb3I8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5SZW1vdmUgYSBmbG9vciBhbmQgYWxsIHJvd3MgcmVmZXJlbmNpbmcgaXQuPC9kaXY+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb25cIj5cbiAgICA8aDYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+Q3JlYXRlPC9oNj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ncmlkXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInRvb2wtY2FyZCB0b29sLWNhcmQtcHJpbWFyeVwiIChjbGljayk9XCJvbkNsaWNrQ3JlYXRlRml4dHVyZVRlbXBsYXRlKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLXBsdXMtbGcgdGV4dC13aGl0ZVwiID48L2k+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkNyZWF0ZSBUZW1wbGF0ZTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPlN0YXJ0IGEgbmV3IGZpeHR1cmUgdGVtcGxhdGUgZnJvbSBzY3JhdGNoLjwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMtcGFyZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3Rvb2xzLXBhcmVudC90b29scy1wYXJlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvdG9vbHMtcGFyZW50L3Rvb2xzLXBhcmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtGQUErRixDQUFDO0FBRy9JLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDOzs7OztBQU9kLE1BQU0sT0FBTyxvQkFBb0I7SUFLckI7SUFDQTtJQUNBO0lBQ0E7SUFQVixRQUFRLENBQVM7SUFFQSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNoRCxZQUNVLFFBQWtCLEVBQ2xCLE1BQWMsRUFDZCxFQUFzQixFQUN0QixRQUF5QjtRQUh6QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUNoQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWM7YUFDbkIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsdURBQXVEO1FBQ2pGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxxQ0FBcUM7UUFDeEQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsNEJBQTRCO1FBQ3RELG9CQUFvQixFQUFFLENBQ3ZCO2FBQ0EsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBVyxDQUNqRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxFQUFFLE1BQU0sQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxpQ0FBaUM7UUFDakMsTUFBTTtRQUNOLDBCQUEwQjtRQUMxQixtREFBbUQ7UUFDbkQsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQixPQUFPO1FBQ1AsTUFBTTtRQUNOLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixPQUFPO1FBQ1AsTUFBTTtJQUNSLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUU7WUFDbEUsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwRCxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzlCLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUNsQixDQUFDLGtEQUFrRCxDQUFDLEVBQ3BELEVBQUUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQzFELENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzt3R0F0RVUsb0JBQW9COzRGQUFwQixvQkFBb0Isd0RDbEJqQyx5OUpBaUdBOzs0RkQvRWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgQ3JlYXRlRml4dHVyZVRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2ZpeHR1cmUtdGVtcGxhdGUtdGFibGUvcG9wdXBzL2NyZWF0ZS1maXh0dXJlLXRlbXBsYXRlL2NyZWF0ZS1maXh0dXJlLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZmlsdGVyLFxyXG4gIFN1YmplY3QsXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItdG9vbHMtcGFyZW50XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi90b29scy1wYXJlbnQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3Rvb2xzLXBhcmVudC5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbHNQYXJlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZ2JNb2RhbDogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mbzogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcblxyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIC8vIFN1YnNjcmlwdGlvbiB3aWxsIGJlIGNhbmNlbGxlZCBvbiBjb21wb25lbnQgZGVzdHJveS5cclxuICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSwgLy8gVG8gYXZvaWQgaW1tZWRpYXRlIGZyZXF1ZW50IGNhbGxzLlxyXG4gICAgICAgIGZpbHRlcigoZGF0YSkgPT4gISFkYXRhKSwgLy8gRmlsdGVyaW5nIG51bGwvdW5kZWZpbmVkLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIC8vIEVtaXR0aW5nIG9ubHkgZGlmZmVyZW50IHZhbHVlcy4gKElnbm9yZXMgc2FtZSBjbGllbnRJZCkuXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGE/LmNsaWVudCkge1xyXG4gICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGRhdGE/LmNsaWVudDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGhlYWRlckRhdGEgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIGFzIHN0cmluZyxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmNsaWVudElkID0gaGVhZGVyRGF0YT8uY2xpZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJQbGFubyBUb29sc1wiKTtcclxuICAgIC8vIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgdGl0bGU6IFwiUGxhbm9ncmFtXCIsXHJcbiAgICAvLyAgICAgcGF0aDogXCIvbWFuYWdlL3BsYW5vZ3JhbS9tYW5hZ2UtcGxhbm9ncmFtc1wiLFxyXG4gICAgLy8gICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgIC8vICAgICBpc1NlcGFyYXRvcjogZmFsc2UsXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIHtcclxuICAgIC8vICAgICB0aXRsZTogXCJcIixcclxuICAgIC8vICAgICBwYXRoOiBcIlwiLFxyXG4gICAgLy8gICAgIGlzQWN0aXZlOiBmYWxzZSxcclxuICAgIC8vICAgICBpc1NlcGFyYXRvcjogdHJ1ZSxcclxuICAgIC8vICAgfSxcclxuICAgIC8vIF0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NyZWF0ZUZpeHR1cmVUZW1wbGF0ZSgpIHtcclxuICAgIGNvbnN0IG1vZGVsUmVmID0gdGhpcy5uZ2JNb2RhbC5vcGVuKENyZWF0ZUZpeHR1cmVUZW1wbGF0ZUNvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJtZFwiLFxyXG4gICAgfSk7XHJcbiAgICBtb2RlbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XHJcbiAgICBtb2RlbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICAgIFtcIi9tYW5hZ2UvcGxhbm9ncmFtL2ZpeHR1cmUtdGVtcGxhdGUvYmFzaWMtZGV0YWlsc1wiXSxcclxuICAgICAgICAgIHsgcXVlcnlQYXJhbXM6IHsgdGVtcGxhdGVJZDogcmVzdWx0Ll9pZCwgaXNFZGl0OiB0cnVlIH0gfSxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwbGFuby10b29scy1odWJcIj5cclxuICA8ZGl2IGNsYXNzPVwiaHViLWhlYWRlciBtYi00XCI+XHJcbiAgICA8aDQgY2xhc3M9XCJtYi0xXCI+UGxhbm8gVG9vbHM8L2g0PlxyXG4gICAgPHAgY2xhc3M9XCJ0ZXh0LW11dGVkIHNtYWxsIG1iLTBcIj5cclxuICAgICAgVXRpbGl0aWVzIGZvciBtYW5hZ2luZyBwbGFub2dyYW1zLCBsYXlvdXRzLCBleHBvcnRzIGFuZCB0ZW1wbGF0ZXMuXHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb24gbWItNFwiPlxyXG4gICAgPGg2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkV4cG9ydCAmYW1wOyBJbnNwZWN0PC9oNj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWdyaWRcIj5cclxuICAgICAgPGEgY2xhc3M9XCJ0b29sLWNhcmRcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvbWlncmF0ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1pbWFnZXNcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+RG93bmxvYWQgTGF5b3V0IEltYWdlczwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+RXhwb3J0IGxheW91dCBpbWFnZXMgc3RvcmUgYnkgc3RvcmUuPC9kaXY+XHJcbiAgICAgIDwvYT5cclxuICAgICAgPGEgY2xhc3M9XCJ0b29sLWNhcmRcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvY2FkLXJlbmRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1ib3VuZGluZy1ib3hcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+Q2hlY2sgQ0FEIE91dHB1dDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+UGFzdGUgQ0FEIGRhdGEgYW5kIHByZXZpZXcgdGhlIHBhcnNlZCBsYXlvdXQuPC9kaXY+XHJcbiAgICAgIDwvYT5cclxuICAgICAgPGEgY2xhc3M9XCJ0b29sLWNhcmRcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9wbGFub2dyYW0vcGxhbm8tdG9vbHMvY2FkLWZpbGVzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWZvbGRlcjItb3BlblwiPjwvaT48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5DQUQgRmlsZXM8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPkxpc3QgdXBsb2FkZWQgQ0FEICZhbXA7IEtpc3NmbG93IGZpbGVzIGZvciBhIHN0b3JlLjwvZGl2PlxyXG4gICAgICA8L2E+XHJcbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2RhdGEtZXhwb3J0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWRhdGFiYXNlLWRvd25cIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+RGF0YSBFeHBvcnQ8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPlF1ZXJ5IHBsYW5vZ3JhbSBmaXh0dXJlcyBhbmQgZXhwb3J0IGFzIEV4Y2VsLjwvZGl2PlxyXG4gICAgICA8L2E+XHJcbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL3N0b3JlLWV4cG9ydHNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPjxpIGNsYXNzPVwiYmkgYmktZmlsZS1lYXJtYXJrLXNwcmVhZHNoZWV0XCI+PC9pPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPk1CUSAmYW1wOyBPcmRlcjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+R2VuZXJhdGUgcGVyLXN0b3JlIGZpeHR1cmUgZXhwb3J0IGJ1bmRsZXMuPC9kaXY+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uIG1iLTRcIj5cclxuICAgIDxoNiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5FZGl0ICZhbXA7IE1vZGlmeTwvaDY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ncmlkXCI+XHJcbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2FsbG93LWVkaXRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPjxpIGNsYXNzPVwiYmkgYmktcGVuY2lsLXNxdWFyZVwiPjwvaT48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5BbGxvdyBFZGl0PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5SZS1lbmFibGUgZWRpdGluZyBvbiBhIHB1Ymxpc2hlZCB0YXNrIHdpdGhvdXQgbG9zaW5nIHJlc3BvbnNlcy48L2Rpdj5cclxuICAgICAgPC9hPlxyXG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZFwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9tb2RpZnktZml4dHVyZS1udW1iZXJzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWlucHV0LWN1cnNvci10ZXh0XCI+PC9pPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPk1vZGlmeSBGaXh0dXJlIE51bWJlcnM8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY1wiPlJlbnVtYmVyIGZpeHR1cmVzIGluIGEgcGxhbm9ncmFtLjwvZGl2PlxyXG4gICAgICA8L2E+XHJcbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2xheW91dC10b3VjaHVwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLWFycm93cy1tb3ZlXCI+PC9pPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkxheW91dCBUb3VjaHVwPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5SZXBvc2l0aW9uIG9yIHJlc2l6ZSBsYXlvdXQgZWxlbWVudHMgd2l0aG91dCBpbnZhbGlkYXRpbmcgcmVzcG9uc2VzLjwvZGl2PlxyXG4gICAgICA8L2E+XHJcbiAgICAgIDxhIGNsYXNzPVwidG9vbC1jYXJkXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL3N3YXAtdGVtcGxhdGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPjxpIGNsYXNzPVwiYmkgYmktYXJyb3ctbGVmdC1yaWdodFwiPjwvaT48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5UZW1wbGF0ZSBTd2FwPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5SZXBsYWNlIG9uZSBmaXh0dXJlIHRlbXBsYXRlIHdpdGggYW5vdGhlci48L2Rpdj5cclxuICAgICAgPC9hPlxyXG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZFwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9tb3ZlLWJ1Y2tldFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS1hcnJvdy1kb3duLXVwXCI+PC9pPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPk1vdmUgU3RvcmUgQnVja2V0PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5Nb3ZlIGEgZmxvb3IgYmV0d2VlbiBPbmJvYXJkaW5nIGFuZCBNYW5hZ2VQbGFuby48L2Rpdj5cclxuICAgICAgPC9hPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb24gbWItNFwiPlxyXG4gICAgPGg2IGNsYXNzPVwic2VjdGlvbi10aXRsZSB0ZXh0LWRhbmdlclwiPkRlc3RydWN0aXZlPC9oNj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWdyaWRcIj5cclxuICAgICAgPGEgY2xhc3M9XCJ0b29sLWNhcmQgdG9vbC1jYXJkLWRhbmdlclwiIHJvdXRlckxpbms9XCIvbWFuYWdlL3BsYW5vZ3JhbS9wbGFuby10b29scy9kZWxldGUtdGFza1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvaT48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5EZWxldGUgVGFzazwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjXCI+UmVtb3ZlIGEgdGFzayBhbmQgaXRzIHJlc3BvbnNlcy48L2Rpdj5cclxuICAgICAgPC9hPlxyXG4gICAgICA8YSBjbGFzcz1cInRvb2wtY2FyZCB0b29sLWNhcmQtZGFuZ2VyXCIgcm91dGVyTGluaz1cIi9tYW5hZ2UvcGxhbm9ncmFtL3BsYW5vLXRvb2xzL2RlbGV0ZS1mbG9vclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaDNcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+RGVsZXRlIEZsb29yPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5SZW1vdmUgYSBmbG9vciBhbmQgYWxsIHJvd3MgcmVmZXJlbmNpbmcgaXQuPC9kaXY+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uXCI+XHJcbiAgICA8aDYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+Q3JlYXRlPC9oNj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWdyaWRcIj5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ0b29sLWNhcmQgdG9vbC1jYXJkLXByaW1hcnlcIiAoY2xpY2spPVwib25DbGlja0NyZWF0ZUZpeHR1cmVUZW1wbGF0ZSgpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48aSBjbGFzcz1cImJpIGJpLXBsdXMtbGcgdGV4dC13aGl0ZVwiID48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+Q3JlYXRlIFRlbXBsYXRlPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NcIj5TdGFydCBhIG5ldyBmaXh0dXJlIHRlbXBsYXRlIGZyb20gc2NyYXRjaC48L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|