simpo-component-library 1.4.11 → 1.4.13

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 (102) hide show
  1. package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +3 -3
  2. package/esm2022/lib/components/hover-elements/hover-elements.component.mjs +3 -3
  3. package/esm2022/lib/components/index.mjs +4 -4
  4. package/esm2022/lib/components/input-fields/input-fields.component.mjs +3 -3
  5. package/esm2022/lib/directive/animation-directive.mjs +3 -3
  6. package/esm2022/lib/directive/background-directive.mjs +3 -3
  7. package/esm2022/lib/directive/banner-content-fit-directive.mjs +3 -3
  8. package/esm2022/lib/directive/blur-content.directive.mjs +3 -3
  9. package/esm2022/lib/directive/border-directive.mjs +3 -3
  10. package/esm2022/lib/directive/borderlessImage.directive.mjs +3 -3
  11. package/esm2022/lib/directive/button-directive.directive.mjs +3 -3
  12. package/esm2022/lib/directive/color.directive.mjs +3 -3
  13. package/esm2022/lib/directive/column-directive.directive.mjs +3 -3
  14. package/esm2022/lib/directive/container-alignment.directive.mjs +3 -3
  15. package/esm2022/lib/directive/container-fir.directive.mjs +3 -3
  16. package/esm2022/lib/directive/content-alignment-directive.mjs +3 -3
  17. package/esm2022/lib/directive/content-fit-directive.mjs +3 -3
  18. package/esm2022/lib/directive/content-title-spacing.directive.mjs +3 -3
  19. package/esm2022/lib/directive/corner-directive.mjs +3 -3
  20. package/esm2022/lib/directive/footer-layout-directive.mjs +3 -3
  21. package/esm2022/lib/directive/hover-element-directive.mjs +3 -3
  22. package/esm2022/lib/directive/hoverborder.directive.mjs +3 -3
  23. package/esm2022/lib/directive/image-container.directive.mjs +3 -3
  24. package/esm2022/lib/directive/image-directive.directive.mjs +3 -3
  25. package/esm2022/lib/directive/image-position.directive.mjs +3 -3
  26. package/esm2022/lib/directive/overlay-directive.mjs +3 -3
  27. package/esm2022/lib/directive/position-layout-directive.directive.mjs +3 -3
  28. package/esm2022/lib/directive/sticky-directive.mjs +3 -3
  29. package/esm2022/lib/directive/text-background-directive.directive.mjs +3 -3
  30. package/esm2022/lib/directive/text-size.directive.mjs +3 -3
  31. package/esm2022/lib/ecommerce/json/user-cart.json +14 -1
  32. package/esm2022/lib/ecommerce/json/user-details.json +1 -1
  33. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +148 -0
  34. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +16 -10
  35. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +50 -14
  36. package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +3 -3
  37. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +3 -3
  38. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +13 -7
  39. package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +3 -3
  40. package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +3 -3
  41. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +5 -7
  42. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +3 -3
  43. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +18 -14
  44. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
  45. package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +3 -3
  46. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
  47. package/esm2022/lib/elements/button/button.component.mjs +3 -3
  48. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +3 -3
  49. package/esm2022/lib/elements/heading-element/heading-element.component.mjs +3 -3
  50. package/esm2022/lib/elements/index.mjs +4 -4
  51. package/esm2022/lib/elements/navbar-button-element/navbar-button-element.component.mjs +3 -3
  52. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
  53. package/esm2022/lib/elements/socia-icons/socia-icons.component.mjs +3 -3
  54. package/esm2022/lib/elements/text/text.component.mjs +3 -3
  55. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +3 -3
  56. package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +3 -3
  57. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
  58. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -3
  59. package/esm2022/lib/sections/banner-section/banner-section.component.mjs +3 -3
  60. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +3 -3
  61. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -3
  62. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +3 -3
  63. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
  64. package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -3
  65. package/esm2022/lib/sections/footer-section/footer-section.component.mjs +3 -3
  66. package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
  67. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -3
  68. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -3
  69. package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -3
  70. package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -3
  71. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +3 -3
  72. package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +8 -8
  73. package/esm2022/lib/sections/navbar-section/navbar-section.model.mjs +1 -1
  74. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
  75. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +3 -3
  76. package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
  77. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +3 -3
  78. package/esm2022/lib/sections/service-section/service-section.component.mjs +3 -3
  79. package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +3 -3
  80. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -3
  81. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -3
  82. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +3 -3
  83. package/esm2022/lib/sections/text-image-section/text-image-section.component.mjs +3 -3
  84. package/esm2022/lib/sections/text-section/text-section.component.mjs +3 -3
  85. package/esm2022/lib/sections/video-section/video-section.component.mjs +3 -3
  86. package/esm2022/lib/sections/view-blog/view-blog.component.mjs +3 -3
  87. package/esm2022/lib/services/cart.service.mjs +7 -5
  88. package/esm2022/lib/services/events.service.mjs +3 -3
  89. package/esm2022/lib/services/rest.service.mjs +24 -4
  90. package/fesm2022/simpo-component-library.mjs +518 -301
  91. package/fesm2022/simpo-component-library.mjs.map +1 -1
  92. package/lib/ecommerce/sections/address/address.component.d.ts +36 -0
  93. package/lib/ecommerce/sections/authenticate-user/authenticate-user.component.d.ts +4 -2
  94. package/lib/ecommerce/sections/cart/cart.component.d.ts +8 -1
  95. package/lib/ecommerce/sections/user-profile/user-profile.component.d.ts +6 -5
  96. package/lib/ecommerce/sections/user-profile/user-profile.modal.d.ts +14 -0
  97. package/lib/sections/navbar-section/navbar-section.model.d.ts +1 -0
  98. package/lib/services/rest.service.d.ts +6 -0
  99. package/package.json +1 -1
  100. package/simpo-component-library-1.4.12.tgz +0 -0
  101. package/simpo-component-library-1.4.13.tgz +0 -0
  102. package/simpo-component-library-1.4.11.tgz +0 -0
@@ -12,10 +12,10 @@ export class ViewBlogComponent {
12
12
  editSection() {
13
13
  // this._eventService.toggleEditorEvent.emit(false);
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ViewBlogComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ViewBlogComponent, isStandalone: true, selector: "simpo-view-blog", inputs: { responseData: "responseData" }, ngImport: i0, template: "<section class=\"main-section\">\r\n <div class=\"blog-details\">\r\n <h1 class=\"blog-title\">{{responseData.postTitle}}</h1>\r\n <div style=\"margin-top: 20px;\">\r\n <ng-container *ngFor=\"let item of responseData?.blocks\">\r\n <div *ngIf=\"item.type=='header'\">\r\n <h1 *ngIf=\"item.data.level==1\" [innerHTML]=\"item.data.text\"></h1>\r\n <h2 *ngIf=\"item.data.level==2\" [innerHTML]=\"item.data.text\"></h2>\r\n <h3 *ngIf=\"item.data.level==3\" [innerHTML]=\"item.data.text\"></h3>\r\n <h4 *ngIf=\"item.data.level==4\" [innerHTML]=\"item.data.text\"></h4>\r\n <h5 *ngIf=\"item.data.level==5\" [innerHTML]=\"item.data.text\"></h5>\r\n <h6 *ngIf=\"item.data.level==6\" [innerHTML]=\"item.data.text\"></h6>\r\n </div>\r\n <div *ngIf=\"item.type=='paragraph'\">\r\n <p class=\"inner-text\" [innerHTML]=\"item.data.text\"></p>\r\n </div>\r\n <div *ngIf=\"item.type=='list'\">\r\n <div *ngIf=\"item.type=='list'\">\r\n <div *ngIf=\"item.data.style=='ordered'\">\r\n <ol>\r\n <ng-container *ngFor=\"let list of item.data.items\">\r\n <li>{{ list }}</li>\r\n </ng-container>\r\n </ol>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.type=='delimiter'\" class=\"ce-delimiter\">\r\n </div>\r\n <div *ngIf=\"item.type=='image'\" class=\"image-container\">\r\n <img [src]=\"item.data.file.url\" alt=\"\" loading=\"lazy\">\r\n </div>\r\n <div *ngIf=\"item.type=='table'\">\r\n\r\n <table>\r\n <ng-container *ngFor=\"let data of item.data.content\">\r\n <tr>\r\n <ng-container *ngFor=\"let item of data\">\r\n <td>{{ item }}</td>\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".main-section{padding:5%;background-color:#fff}.blog-details{width:60%;margin:0 auto;font-family:jakartaMedium}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}table{border-collapse:collapse;width:100%}th,td{border:1px solid black;text-align:center}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:10px 0}.image-container img{width:100%;height:350px}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}@media only screen and (max-width :500px){.blog-details{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ViewBlogComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ViewBlogComponent, isStandalone: true, selector: "simpo-view-blog", inputs: { responseData: "responseData" }, ngImport: i0, template: "<section class=\"main-section\">\r\n <div class=\"blog-details\">\r\n <h1 class=\"blog-title\">{{responseData.postTitle}}</h1>\r\n <div style=\"margin-top: 20px;\">\r\n <ng-container *ngFor=\"let item of responseData?.blocks\">\r\n <div *ngIf=\"item.type=='header'\">\r\n <h1 *ngIf=\"item.data.level==1\" [innerHTML]=\"item.data.text\"></h1>\r\n <h2 *ngIf=\"item.data.level==2\" [innerHTML]=\"item.data.text\"></h2>\r\n <h3 *ngIf=\"item.data.level==3\" [innerHTML]=\"item.data.text\"></h3>\r\n <h4 *ngIf=\"item.data.level==4\" [innerHTML]=\"item.data.text\"></h4>\r\n <h5 *ngIf=\"item.data.level==5\" [innerHTML]=\"item.data.text\"></h5>\r\n <h6 *ngIf=\"item.data.level==6\" [innerHTML]=\"item.data.text\"></h6>\r\n </div>\r\n <div *ngIf=\"item.type=='paragraph'\">\r\n <p class=\"inner-text\" [innerHTML]=\"item.data.text\"></p>\r\n </div>\r\n <div *ngIf=\"item.type=='list'\">\r\n <div *ngIf=\"item.type=='list'\">\r\n <div *ngIf=\"item.data.style=='ordered'\">\r\n <ol>\r\n <ng-container *ngFor=\"let list of item.data.items\">\r\n <li>{{ list }}</li>\r\n </ng-container>\r\n </ol>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.type=='delimiter'\" class=\"ce-delimiter\">\r\n </div>\r\n <div *ngIf=\"item.type=='image'\" class=\"image-container\">\r\n <img [src]=\"item.data.file.url\" alt=\"\" loading=\"lazy\">\r\n </div>\r\n <div *ngIf=\"item.type=='table'\">\r\n\r\n <table>\r\n <ng-container *ngFor=\"let data of item.data.content\">\r\n <tr>\r\n <ng-container *ngFor=\"let item of data\">\r\n <td>{{ item }}</td>\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".main-section{padding:5%;background-color:#fff}.blog-details{width:60%;margin:0 auto;font-family:jakartaMedium}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}table{border-collapse:collapse;width:100%}th,td{border:1px solid black;text-align:center}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:10px 0}.image-container img{width:100%;height:350px}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}@media only screen and (max-width :500px){.blog-details{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ViewBlogComponent, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ViewBlogComponent, decorators: [{
19
19
  type: Component,
20
20
  args: [{ selector: 'simpo-view-blog', standalone: true, imports: [CommonModule], template: "<section class=\"main-section\">\r\n <div class=\"blog-details\">\r\n <h1 class=\"blog-title\">{{responseData.postTitle}}</h1>\r\n <div style=\"margin-top: 20px;\">\r\n <ng-container *ngFor=\"let item of responseData?.blocks\">\r\n <div *ngIf=\"item.type=='header'\">\r\n <h1 *ngIf=\"item.data.level==1\" [innerHTML]=\"item.data.text\"></h1>\r\n <h2 *ngIf=\"item.data.level==2\" [innerHTML]=\"item.data.text\"></h2>\r\n <h3 *ngIf=\"item.data.level==3\" [innerHTML]=\"item.data.text\"></h3>\r\n <h4 *ngIf=\"item.data.level==4\" [innerHTML]=\"item.data.text\"></h4>\r\n <h5 *ngIf=\"item.data.level==5\" [innerHTML]=\"item.data.text\"></h5>\r\n <h6 *ngIf=\"item.data.level==6\" [innerHTML]=\"item.data.text\"></h6>\r\n </div>\r\n <div *ngIf=\"item.type=='paragraph'\">\r\n <p class=\"inner-text\" [innerHTML]=\"item.data.text\"></p>\r\n </div>\r\n <div *ngIf=\"item.type=='list'\">\r\n <div *ngIf=\"item.type=='list'\">\r\n <div *ngIf=\"item.data.style=='ordered'\">\r\n <ol>\r\n <ng-container *ngFor=\"let list of item.data.items\">\r\n <li>{{ list }}</li>\r\n </ng-container>\r\n </ol>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.type=='delimiter'\" class=\"ce-delimiter\">\r\n </div>\r\n <div *ngIf=\"item.type=='image'\" class=\"image-container\">\r\n <img [src]=\"item.data.file.url\" alt=\"\" loading=\"lazy\">\r\n </div>\r\n <div *ngIf=\"item.type=='table'\">\r\n\r\n <table>\r\n <ng-container *ngFor=\"let data of item.data.content\">\r\n <tr>\r\n <ng-container *ngFor=\"let item of data\">\r\n <td>{{ item }}</td>\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n </table>\r\n\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".main-section{padding:5%;background-color:#fff}.blog-details{width:60%;margin:0 auto;font-family:jakartaMedium}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}table{border-collapse:collapse;width:100%}th,td{border:1px solid black;text-align:center}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:10px 0}.image-container img{width:100%;height:350px}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}@media only screen and (max-width :500px){.blog-details{width:100%}}\n"] }]
21
21
  }], ctorParameters: () => [{ type: i1.EventsService }], propDecorators: { responseData: [{
@@ -89,7 +89,9 @@ export class CartService {
89
89
  this.restService.addItemToDB(UserFavourites).subscribe((response) => { });
90
90
  }
91
91
  storeDBToJSON() {
92
- const userId = UserDetails.user.id;
92
+ const userId = UserDetails.user?.userId;
93
+ if (!userId)
94
+ return;
93
95
  this.restService.getUserItems(userId, "CART").subscribe((response) => {
94
96
  UserCart.orderedItems = response.data.orderedItems;
95
97
  UserCart.billdetails = response.data.billdetails;
@@ -101,13 +103,13 @@ export class CartService {
101
103
  UserFavourites.totalAmount = response.totalAmount;
102
104
  });
103
105
  }
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CartService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
105
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CartService, providedIn: 'root' }); }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
107
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartService, providedIn: 'root' }); }
106
108
  }
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CartService, decorators: [{
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartService, decorators: [{
108
110
  type: Injectable,
109
111
  args: [{
110
112
  providedIn: 'root',
111
113
  }]
112
114
  }], ctorParameters: () => [{ type: i1.RestService }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxRQUFRLE1BQU0sa0NBQWtDLENBQUM7QUFDeEQsT0FBTyxjQUFjLE1BQU0sdUNBQXVDLENBQUM7QUFDbkUsT0FBTyxXQUFXLE1BQU0scUNBQXFDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFPdEUsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDbUIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDeEMsQ0FBQztJQUVHLGFBQWEsQ0FBQyxPQUFnQjtRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNNLGtCQUFrQixDQUFDLE9BQWdCO1FBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ00scUJBQXFCLENBQUMsT0FBZ0I7UUFDM0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksS0FBSyxJQUFJLENBQUM7WUFDWixjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ00s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R0FBRSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ00sYUFBYTtRQUNsQixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFDLEVBQUU7WUFDdkUsUUFBUSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUNuRCxRQUFRLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUMsRUFBRTtZQUMzRSxjQUFjLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3pELGNBQWMsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDdkQsY0FBYyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0F0R1UsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFVzZXJDYXJ0IGZyb20gXCIuLi9lY29tbWVyY2UvanNvbi91c2VyLWNhcnQuanNvblwiO1xyXG5pbXBvcnQgVXNlckZhdm91cml0ZXMgZnJvbSBcIi4uL2Vjb21tZXJjZS9qc29uL3VzZXItZmF2b3VyaXRlLmpzb25cIjtcclxuaW1wb3J0IFVzZXJEZXRhaWxzIGZyb20gXCIuLi9lY29tbWVyY2UvanNvbi91c2VyLWRldGFpbHMuanNvblwiO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL3Byb2R1Y3QubW9kYWwnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4vcmVzdC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJ0U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGFkZEl0ZW1Ub0NhcnQocHJvZHVjdDogUHJvZHVjdCkge1xyXG4gICAgdGhpcy5zdG9yZUl0ZW1Ub0pTT04oVXNlckNhcnQsIHByb2R1Y3QsIFwiQ0FSVFwiKTtcclxuICB9XHJcbiAgcHVibGljIGFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICB0aGlzLnN0b3JlSXRlbVRvSlNPTihVc2VyRmF2b3VyaXRlcywgcHJvZHVjdCwgXCJXSVNITElTVFwiKTsgXHJcbiAgfVxyXG4gIHB1YmxpYyByZW1vdmVJdGVtVG9GYXZvdXJpdGUocHJvZHVjdDogUHJvZHVjdCkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEl0ZW1JZHhKU09OKHByb2R1Y3QuaXRlbUlkLCBVc2VyRmF2b3VyaXRlcyk7XHJcbiAgICBjb25zb2xlLmxvZyhcImluZGV4OiBcIixpbmRleCk7XHJcbiAgICBpZiAoaW5kZXggPj0gMClcclxuICAgICAgVXNlckZhdm91cml0ZXMub3JkZXJlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBjb25zb2xlLmxvZyhVc2VyRmF2b3VyaXRlcyk7XHJcbiAgfVxyXG4gIHB1YmxpYyBjb252ZXJ0RmF2VG9DYXJ0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEl0ZW1JZHhKU09OKHByb2R1Y3QuZ2V0SXRlbUlkLCBVc2VyRmF2b3VyaXRlcyk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICBjb25zdCBpdGVtID0gVXNlckZhdm91cml0ZXMub3JkZXJlZEl0ZW1zLnNwbGljZShpbmRleCwgMSlbMF07XHJcbiAgICAgIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5wdXNoKGl0ZW0gYXMgbmV2ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgY29udmVydENhcnRUb0Zhdihwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJdGVtSWR4SlNPTihwcm9kdWN0LmdldEl0ZW1JZCwgVXNlckNhcnQpO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgY29uc3QgaXRlbSA9IFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpWzBdO1xyXG4gICAgICBVc2VyRmF2b3VyaXRlcy5vcmRlcmVkSXRlbXMucHVzaChpdGVtIGFzIG5ldmVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZUl0ZW1Ub0pTT04oanNvbjogYW55LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQ0FSVCcgfCAnV0lTSExJU1QnKSB7XHJcbiAgICBjb25zdCBvcmRlclByb2R1Y3Q6IE9yZGVyZWRJdGVtcyA9IHRoaXMub2JqZWN0TWFwcGVyKHByb2R1Y3QpO1xyXG5cclxuICAgIGxldCBwcm9kdWN0SW5kZXg6IG51bWJlciA9IC0xO1xyXG4gICAganNvbi5vcmRlcmVkSXRlbXMuZm9yRWFjaCgocDogYW55LCBpZHg6IG51bWJlcik9PiB7XHJcbiAgICAgICAgaWYgKHAuaXRlbUlkID09IHByb2R1Y3QuaXRlbUlkKVxyXG4gICAgICAgICAgICBwcm9kdWN0SW5kZXggPSBpZHg7XHJcbiAgICB9KTtcclxuICAgIGlmIChwcm9kdWN0SW5kZXggPT0gLTEpXHJcbiAgICAgIGpzb24ub3JkZXJlZEl0ZW1zLnB1c2gob3JkZXJQcm9kdWN0IGFzIG5ldmVyKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChwcm9kdWN0LnF1YW50aXR5ID4gMCkge1xyXG4gICAgICAgICAganNvbi5vcmRlcmVkSXRlbXNbcHJvZHVjdEluZGV4XS5xdWFudGl0eSA9IG9yZGVyUHJvZHVjdC5nZXRRdWFudGl0eTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBqc29uLm9yZGVyZWRJdGVtcy5zcGxpY2UocHJvZHVjdEluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAganNvbi5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgICAgICBqc29uLmJpbGxkZXRhaWxzLnRvdGFsVGF4ID0gMDtcclxuICAgICAgICBqc29uLm9yZGVyZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBhbnkpPT4ganNvbi5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlICs9IChpdGVtLnByaWNlICogaXRlbS5xdWFudGl0eSkpO1xyXG4gICAgICAgIGpzb24ub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSk9PiBqc29uLmJpbGxkZXRhaWxzLnRvdGFsVGF4ICs9IChpdGVtLml0ZW1UYXgpKTtcclxuICAgICAgICBqc29uLnRvdGFsQW1vdW50ID0ganNvbi5iaWxsZGV0YWlscy50b3RhbFRheCArIGpzb24uYmlsbGRldGFpbHMudG90YWxOZXRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJdGVtUXVhbnRpdHkoaXRlbUlkOiBzdHJpbmcpIHtcclxuICAgIGxldCBwcm9kdWN0SW5kZXg6IG51bWJlciA9IC0xO1xyXG4gICAgVXNlckNhcnQub3JkZXJlZEl0ZW1zLmZvckVhY2goKHA6IGFueSwgaWR4OiBudW1iZXIpPT4ge1xyXG4gICAgICAgIGlmIChwLml0ZW1JZCA9PSBpdGVtSWQpXHJcbiAgICAgICAgICAgIHByb2R1Y3RJbmRleCA9IGlkeDtcclxuICAgIH0pO1xyXG4gICAgaWYgKHByb2R1Y3RJbmRleCA9PSAtMSkgXHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgZWxzZSBcclxuICAgICAgcmV0dXJuIChVc2VyQ2FydC5vcmRlcmVkSXRlbXNbcHJvZHVjdEluZGV4XSBhcyBPcmRlcmVkSXRlbXMpLmdldFF1YW50aXR5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldElzSXRlbVByZXNlbnQoaXRlbUlkOiBzdHJpbmcsIHR5cGU6ICdGQVZPVVJJVEUnfCdDQVJUJykge1xyXG4gICAgcmV0dXJuIHR5cGUgPT0gXCJGQVZPVVJJVEVcIiA/IHRoaXMuZ2V0SXRlbUlkeEpTT04oaXRlbUlkLCBVc2VyRmF2b3VyaXRlcykgPj0gMCA6IHRoaXMuZ2V0SXRlbUlkeEpTT04oaXRlbUlkLCBVc2VyQ2FydCkgPj0gMDtcclxuICB9XHJcbiAgcHJpdmF0ZSBnZXRJdGVtSWR4SlNPTihpdGVtSWQ6IHN0cmluZywganNvbjogYW55KSB7XHJcbiAgICBsZXQgcHJvZHVjdEluZGV4OiBudW1iZXIgPSAtMTtcclxuICAgIGpzb24ub3JkZXJlZEl0ZW1zLmZvckVhY2goKHA6IGFueSwgaWR4OiBudW1iZXIpPT4ge1xyXG4gICAgICAgIGlmIChwLml0ZW1JZCA9PSBpdGVtSWQpXHJcbiAgICAgICAgICAgIHByb2R1Y3RJbmRleCA9IGlkeDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHByb2R1Y3RJbmRleDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb2JqZWN0TWFwcGVyKHByb2R1Y3Q6IFByb2R1Y3QpOiBPcmRlcmVkSXRlbXMge1xyXG4gICAgcmV0dXJuIG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RvcmVKU09OVG9EQigpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIoVXNlckNhcnQpLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge30pO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQihVc2VyRmF2b3VyaXRlcykuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7fSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzdG9yZURCVG9KU09OKCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gVXNlckRldGFpbHMudXNlci5pZDtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0VXNlckl0ZW1zKHVzZXJJZCwgXCJDQVJUXCIpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcyA9IHJlc3BvbnNlLmRhdGEub3JkZXJlZEl0ZW1zO1xyXG4gICAgICBVc2VyQ2FydC5iaWxsZGV0YWlscyA9IHJlc3BvbnNlLmRhdGEuYmlsbGRldGFpbHM7XHJcbiAgICAgIFVzZXJDYXJ0LnRvdGFsQW1vdW50ID0gcmVzcG9uc2UudG90YWxBbW91bnQ7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModXNlcklkLCBcIldJU0hMSVNUXCIpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgIFVzZXJGYXZvdXJpdGVzLm9yZGVyZWRJdGVtcyA9IHJlc3BvbnNlLmRhdGEub3JkZXJlZEl0ZW1zO1xyXG4gICAgICBVc2VyRmF2b3VyaXRlcy5iaWxsZGV0YWlscyA9IHJlc3BvbnNlLmRhdGEuYmlsbGRldGFpbHM7XHJcbiAgICAgIFVzZXJGYXZvdXJpdGVzLnRvdGFsQW1vdW50ID0gcmVzcG9uc2UudG90YWxBbW91bnQ7XHJcbiAgICB9KVxyXG4gIH1cclxufSJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxRQUFRLE1BQU0sa0NBQWtDLENBQUM7QUFDeEQsT0FBTyxjQUFjLE1BQU0sdUNBQXVDLENBQUM7QUFDbkUsT0FBTyxXQUFXLE1BQU0scUNBQXFDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFPdEUsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDbUIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDeEMsQ0FBQztJQUVHLGFBQWEsQ0FBQyxPQUFnQjtRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNNLGtCQUFrQixDQUFDLE9BQWdCO1FBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ00scUJBQXFCLENBQUMsT0FBZ0I7UUFDM0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksS0FBSyxJQUFJLENBQUM7WUFDWixjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ00s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R0FBRSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ00sYUFBYTtRQUNsQixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTTtZQUNULE9BQU87UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFDLEVBQUU7WUFDdkUsUUFBUSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUNuRCxRQUFRLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUMsRUFBRTtZQUMzRSxjQUFjLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3pELGNBQWMsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDdkQsY0FBYyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0F4R1UsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFVzZXJDYXJ0IGZyb20gXCIuLi9lY29tbWVyY2UvanNvbi91c2VyLWNhcnQuanNvblwiO1xyXG5pbXBvcnQgVXNlckZhdm91cml0ZXMgZnJvbSBcIi4uL2Vjb21tZXJjZS9qc29uL3VzZXItZmF2b3VyaXRlLmpzb25cIjtcclxuaW1wb3J0IFVzZXJEZXRhaWxzIGZyb20gXCIuLi9lY29tbWVyY2UvanNvbi91c2VyLWRldGFpbHMuanNvblwiO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL3Byb2R1Y3QubW9kYWwnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4vcmVzdC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJ0U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGFkZEl0ZW1Ub0NhcnQocHJvZHVjdDogUHJvZHVjdCkge1xyXG4gICAgdGhpcy5zdG9yZUl0ZW1Ub0pTT04oVXNlckNhcnQsIHByb2R1Y3QsIFwiQ0FSVFwiKTtcclxuICB9XHJcbiAgcHVibGljIGFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICB0aGlzLnN0b3JlSXRlbVRvSlNPTihVc2VyRmF2b3VyaXRlcywgcHJvZHVjdCwgXCJXSVNITElTVFwiKTsgXHJcbiAgfVxyXG4gIHB1YmxpYyByZW1vdmVJdGVtVG9GYXZvdXJpdGUocHJvZHVjdDogUHJvZHVjdCkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEl0ZW1JZHhKU09OKHByb2R1Y3QuaXRlbUlkLCBVc2VyRmF2b3VyaXRlcyk7XHJcbiAgICBjb25zb2xlLmxvZyhcImluZGV4OiBcIixpbmRleCk7XHJcbiAgICBpZiAoaW5kZXggPj0gMClcclxuICAgICAgVXNlckZhdm91cml0ZXMub3JkZXJlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBjb25zb2xlLmxvZyhVc2VyRmF2b3VyaXRlcyk7XHJcbiAgfVxyXG4gIHB1YmxpYyBjb252ZXJ0RmF2VG9DYXJ0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEl0ZW1JZHhKU09OKHByb2R1Y3QuZ2V0SXRlbUlkLCBVc2VyRmF2b3VyaXRlcyk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICBjb25zdCBpdGVtID0gVXNlckZhdm91cml0ZXMub3JkZXJlZEl0ZW1zLnNwbGljZShpbmRleCwgMSlbMF07XHJcbiAgICAgIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5wdXNoKGl0ZW0gYXMgbmV2ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgY29udmVydENhcnRUb0Zhdihwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJdGVtSWR4SlNPTihwcm9kdWN0LmdldEl0ZW1JZCwgVXNlckNhcnQpO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgY29uc3QgaXRlbSA9IFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpWzBdO1xyXG4gICAgICBVc2VyRmF2b3VyaXRlcy5vcmRlcmVkSXRlbXMucHVzaChpdGVtIGFzIG5ldmVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZUl0ZW1Ub0pTT04oanNvbjogYW55LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQ0FSVCcgfCAnV0lTSExJU1QnKSB7XHJcbiAgICBjb25zdCBvcmRlclByb2R1Y3Q6IE9yZGVyZWRJdGVtcyA9IHRoaXMub2JqZWN0TWFwcGVyKHByb2R1Y3QpO1xyXG5cclxuICAgIGxldCBwcm9kdWN0SW5kZXg6IG51bWJlciA9IC0xO1xyXG4gICAganNvbi5vcmRlcmVkSXRlbXMuZm9yRWFjaCgocDogYW55LCBpZHg6IG51bWJlcik9PiB7XHJcbiAgICAgICAgaWYgKHAuaXRlbUlkID09IHByb2R1Y3QuaXRlbUlkKVxyXG4gICAgICAgICAgICBwcm9kdWN0SW5kZXggPSBpZHg7XHJcbiAgICB9KTtcclxuICAgIGlmIChwcm9kdWN0SW5kZXggPT0gLTEpXHJcbiAgICAgIGpzb24ub3JkZXJlZEl0ZW1zLnB1c2gob3JkZXJQcm9kdWN0IGFzIG5ldmVyKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChwcm9kdWN0LnF1YW50aXR5ID4gMCkge1xyXG4gICAgICAgICAganNvbi5vcmRlcmVkSXRlbXNbcHJvZHVjdEluZGV4XS5xdWFudGl0eSA9IG9yZGVyUHJvZHVjdC5nZXRRdWFudGl0eTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBqc29uLm9yZGVyZWRJdGVtcy5zcGxpY2UocHJvZHVjdEluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAganNvbi5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgICAgICBqc29uLmJpbGxkZXRhaWxzLnRvdGFsVGF4ID0gMDtcclxuICAgICAgICBqc29uLm9yZGVyZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBhbnkpPT4ganNvbi5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlICs9IChpdGVtLnByaWNlICogaXRlbS5xdWFudGl0eSkpO1xyXG4gICAgICAgIGpzb24ub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSk9PiBqc29uLmJpbGxkZXRhaWxzLnRvdGFsVGF4ICs9IChpdGVtLml0ZW1UYXgpKTtcclxuICAgICAgICBqc29uLnRvdGFsQW1vdW50ID0ganNvbi5iaWxsZGV0YWlscy50b3RhbFRheCArIGpzb24uYmlsbGRldGFpbHMudG90YWxOZXRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJdGVtUXVhbnRpdHkoaXRlbUlkOiBzdHJpbmcpIHtcclxuICAgIGxldCBwcm9kdWN0SW5kZXg6IG51bWJlciA9IC0xO1xyXG4gICAgVXNlckNhcnQub3JkZXJlZEl0ZW1zLmZvckVhY2goKHA6IGFueSwgaWR4OiBudW1iZXIpPT4ge1xyXG4gICAgICAgIGlmIChwLml0ZW1JZCA9PSBpdGVtSWQpXHJcbiAgICAgICAgICAgIHByb2R1Y3RJbmRleCA9IGlkeDtcclxuICAgIH0pO1xyXG4gICAgaWYgKHByb2R1Y3RJbmRleCA9PSAtMSkgXHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgZWxzZSBcclxuICAgICAgcmV0dXJuIChVc2VyQ2FydC5vcmRlcmVkSXRlbXNbcHJvZHVjdEluZGV4XSBhcyBuZXZlciBhcyBPcmRlcmVkSXRlbXMpLmdldFF1YW50aXR5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldElzSXRlbVByZXNlbnQoaXRlbUlkOiBzdHJpbmcsIHR5cGU6ICdGQVZPVVJJVEUnfCdDQVJUJykge1xyXG4gICAgcmV0dXJuIHR5cGUgPT0gXCJGQVZPVVJJVEVcIiA/IHRoaXMuZ2V0SXRlbUlkeEpTT04oaXRlbUlkLCBVc2VyRmF2b3VyaXRlcykgPj0gMCA6IHRoaXMuZ2V0SXRlbUlkeEpTT04oaXRlbUlkLCBVc2VyQ2FydCkgPj0gMDtcclxuICB9XHJcbiAgcHJpdmF0ZSBnZXRJdGVtSWR4SlNPTihpdGVtSWQ6IHN0cmluZywganNvbjogYW55KSB7XHJcbiAgICBsZXQgcHJvZHVjdEluZGV4OiBudW1iZXIgPSAtMTtcclxuICAgIGpzb24ub3JkZXJlZEl0ZW1zLmZvckVhY2goKHA6IGFueSwgaWR4OiBudW1iZXIpPT4ge1xyXG4gICAgICAgIGlmIChwLml0ZW1JZCA9PSBpdGVtSWQpXHJcbiAgICAgICAgICAgIHByb2R1Y3RJbmRleCA9IGlkeDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHByb2R1Y3RJbmRleDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb2JqZWN0TWFwcGVyKHByb2R1Y3Q6IFByb2R1Y3QpOiBPcmRlcmVkSXRlbXMge1xyXG4gICAgcmV0dXJuIG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RvcmVKU09OVG9EQigpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIoVXNlckNhcnQpLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge30pO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQihVc2VyRmF2b3VyaXRlcykuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7fSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzdG9yZURCVG9KU09OKCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gVXNlckRldGFpbHMudXNlcj8udXNlcklkO1xyXG4gICAgaWYgKCF1c2VySWQpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0VXNlckl0ZW1zKHVzZXJJZCwgXCJDQVJUXCIpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcyA9IHJlc3BvbnNlLmRhdGEub3JkZXJlZEl0ZW1zO1xyXG4gICAgICBVc2VyQ2FydC5iaWxsZGV0YWlscyA9IHJlc3BvbnNlLmRhdGEuYmlsbGRldGFpbHM7XHJcbiAgICAgIFVzZXJDYXJ0LnRvdGFsQW1vdW50ID0gcmVzcG9uc2UudG90YWxBbW91bnQ7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModXNlcklkLCBcIldJU0hMSVNUXCIpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgIFVzZXJGYXZvdXJpdGVzLm9yZGVyZWRJdGVtcyA9IHJlc3BvbnNlLmRhdGEub3JkZXJlZEl0ZW1zO1xyXG4gICAgICBVc2VyRmF2b3VyaXRlcy5iaWxsZGV0YWlscyA9IHJlc3BvbnNlLmRhdGEuYmlsbGRldGFpbHM7XHJcbiAgICAgIFVzZXJGYXZvdXJpdGVzLnRvdGFsQW1vdW50ID0gcmVzcG9uc2UudG90YWxBbW91bnQ7XHJcbiAgICB9KVxyXG4gIH1cclxufSJdfQ==
@@ -41,10 +41,10 @@ export class EventsService {
41
41
  this.featureCollectionList = new EventEmitter();
42
42
  this.environmentType = new EventEmitter();
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: EventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: EventsService, providedIn: 'root' }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: EventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: EventsService, providedIn: 'root' }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: EventsService, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: EventsService, decorators: [{
48
48
  type: Injectable,
49
49
  args: [{
50
50
  providedIn: 'root',
@@ -84,6 +84,10 @@ export class RestService {
84
84
  const businessId = localStorage.getItem("bId") ?? "";
85
85
  return this.http.put(this.BASE_URL + `ecommerce/user/authenticate?mobile=${mobile}&otp=${otp}&businessId=${businessId}`, null);
86
86
  }
87
+ resendOTP(mobile, countryCode) {
88
+ const businessId = localStorage.getItem("bId") ?? "";
89
+ return this.http.post(this.BASE_URL + `ecommerce/user/resend?mobile=${mobile}&countryCode=${countryCode}&businessId=${businessId}`, null);
90
+ }
87
91
  addItemToDB(userCart) {
88
92
  return this.http.post(this.BASE_URL + `ecommerce/order/cart`, userCart);
89
93
  }
@@ -93,15 +97,31 @@ export class RestService {
93
97
  placeOrder(cartId) {
94
98
  return this.http.post(this.BASE_URL + `ecommerce/order/order?cartId=${cartId}`, null);
95
99
  }
100
+ getUserInfo(userId) {
101
+ return this.http.put(this.BASE_URL + `ecommerce/user/get/user?userId=${userId}`, null);
102
+ }
103
+ addUserAddress(user) {
104
+ return this.http.put(this.BASE_URL + `ecommerce/user/update/user`, user);
105
+ }
96
106
  toggleItemCartToFav() {
97
107
  }
98
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: RestService, deps: [{ token: i1.HttpClient }, { token: i2.EventsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
99
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: RestService, providedIn: 'root' }); }
108
+ // Payment
109
+ createPaymentToken(payload) {
110
+ return this.http.post(this.BASE_URL + `ecommerce/payment/order`, payload);
111
+ }
112
+ refundPayment(orderId, payload) {
113
+ return this.http.post(this.BASE_URL + `ecommerce/payment/refund/bank?orderId=${orderId}`, payload);
114
+ }
115
+ checkPaymentStatus(payload) {
116
+ return this.http.post(this.BASE_URL + `ecommerce/payment/status`, payload);
117
+ }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: RestService, deps: [{ token: i1.HttpClient }, { token: i2.EventsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
119
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: RestService, providedIn: 'root' }); }
100
120
  }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: RestService, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: RestService, decorators: [{
102
122
  type: Injectable,
103
123
  args: [{
104
124
  providedIn: 'root',
105
125
  }]
106
126
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.EventsService }] });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsR0FBRyxFQUF3QyxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFpQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFLaEYsTUFBTSxPQUFPLFdBQVc7SUFLcEIsWUFDcUIsSUFBZ0IsRUFDaEIsWUFBMkI7UUFEM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUx4QyxhQUFRLEdBQVcsMkJBQTJCLENBQUM7UUFDL0MsOEJBQXlCLEdBQXdCLElBQUksQ0FBQztRQU0zRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFDLEVBQUU7WUFDcEYsSUFBSSxRQUFRLElBQUksS0FBSztnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRywyQkFBMkIsQ0FBQztpQkFDM0MsSUFBSSxRQUFRLElBQUksT0FBTztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQzs7Z0JBRTlDLElBQUksQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLHlCQUF5QjtZQUM5QixJQUFJLENBQUMseUJBQXlCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLFlBQXVDO1FBQ3RELElBQUksYUFBYSxHQUFrQixZQUFZLENB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LE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsWUFBWSxDQUFDLE1BQWMsRUFBRSxRQUE2QjtRQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsK0JBQStCLE1BQU0sYUFBYSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFDRCxVQUFVLENBQUMsTUFBYztRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0NBQWdDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFDRCxtQkFBbUI7SUFFbkIsQ0FBQzs4R0FyR1EsV0FBVztrSEFBWCxXQUFXLGNBRlIsTUFBTTs7MkZBRVQsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQ2F0ZWdvcnksIEV2ZW50c1NlcnZpY2UsIFByb2R1Y3QsIENvbGxlY3Rpb24gfSBmcm9tIFwiLi4vLi4vcHVibGljLWFwaVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzdFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAgIHByaXZhdGUgQkFTRV9VUkw6IHN0cmluZyA9IFwiaHR0cHM6Ly9kZXYtYXBpLnNpbXBvLmFpL1wiO1xyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFR5cGVTdWJzY3JpYmVyOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2VcclxuICAgICkgeyBcclxuICAgICAgIHRoaXMuZW52aXJvbm1lbnRUeXBlU3Vic2NyaWJlciA9IHRoaXMuZXZlbnRTZXJ2aWNlLmVudmlyb25tZW50VHlwZS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlID09IFwiREVWXCIpXHJcbiAgICAgICAgICAgICAgICB0aGlzLkJBU0VfVVJMID0gXCJodHRwczovL2Rldi1hcGkuc2ltcG8uYWkvXCI7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlID09IFwiU1RBR0VcIilcclxuICAgICAgICAgICAgICAgIHRoaXMuQkFTRV9VUkwgPSBcImh0dHBzOi8vc3RhdGUtYXBpLnNpbXBvLmFpL1wiO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB0aGlzLkJBU0VfVVJMID0gXCJodHRwczovL2FwaS5zaW1wby5haS9cIjtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnRUeXBlU3Vic2NyaWJlcilcclxuICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudFR5cGVTdWJzY3JpYmVyPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZlYXR1cmVkUHJvZHVjdChjb2xsZWN0aW9uSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHtcclxuICAgICAgICBsZXQgc3ViSW5kdXN0cnlJZDogc3RyaW5nIHwgbnVsbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwic3ViaW5kdXN0cnlJZFwiKTtcclxuICAgICAgICBpZiAoIXN1YkluZHVzdHJ5SWQpXHJcbiAgICAgICAgICAgIHN1YkluZHVzdHJ5SWQgPSBcIjFlZWNlZThkLWVmYmEtNjJmOC1iN2I1LWI5NzQyZmNlYjE3ZlwiO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9wcm9kdWN0L2NvbGxlY3Rpb24vaWQ/Y29sbGVjdGlvbklkPSR7Y29sbGVjdGlvbklkIHx8ICcnfSZzdWJJbmR1c3RyeUlkPSR7c3ViSW5kdXN0cnlJZCB8fCAnJ31gKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSk9PiByZXNwb25zZS5kYXRhPy5tYXAoKHByb2R1Y3Q6IGFueSk9PiBuZXcgUHJvZHVjdChwcm9kdWN0KSkpKTtcclxuICAgIH1cclxuICAgIGdldFByb2R1Y3REZXRhaWxzKHByb2R1Y3RJZDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgICAgICAgIHBhZ2VObzogMCxcclxuICAgICAgICAgICAgcGFnZVNpemU6IDEsXHJcbiAgICAgICAgICAgIGl0ZW1JZDogcHJvZHVjdElkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3Byb2R1Y3QvaXRlbS9zZWFyY2hgLCBwYXlsb2FkKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSk9PiByZXNwb25zZS5kYXRhLmRhdGEubWFwKChwcm9kdWN0OiBhbnkpPT4gbmV3IFByb2R1Y3QocHJvZHVjdCkpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsQ2F0ZWdvcmllcygpIHtcclxuXHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICAgICAgICBwYWdlTm86IDAsXHJcbiAgICAgICAgICAgIHBhZ2VTaXplOiAxMCxcclxuICAgICAgICAgICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIilcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArICdlY29tbWVyY2UvaW52ZW50b3J5L2dldC9jYXRlZ29yeScsIHBheWxvYWQpLnBpcGUobWFwKChyZXNwb25zZTogYW55KT0+IHJlc3BvbnNlLmRhdGEuZGF0YT8ubWFwKChjYXRlZ29yeTogYW55KT0+IG5ldyBDYXRlZ29yeShjYXRlZ29yeSkpKSk7XHJcbiAgICB9XHJcbiAgICBnZXRBbGxDb2xsZWN0aW9ucygpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgICAgICAgIHBhZ2VObzogMCxcclxuICAgICAgICAgICAgcGFnZVNpemU6IDEwLFxyXG4gICAgICAgICAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgJ2Vjb21tZXJjZS9pbnZlbnRvcnkvZ2V0L2NvbGxlY3Rpb24nLCBwYXlsb2FkKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSk9PiByZXNwb25zZS5kYXRhLmRhdGE/Lm1hcCgoY29sbGVjdGlvbjogYW55KT0+IG5ldyBDb2xsZWN0aW9uKGNvbGxlY3Rpb24pKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbHRlcmVkUHJvZHVjdChjb2xsZWN0aW9uSWRzOiBzdHJpbmdbXSwgY2F0ZWdvcnlJZHM6IHN0cmluZ1tdLCBzZWFyY2hUZXh0OiBzdHJpbmcsIG1pblByaWNlOiBudW1iZXIsIG1heFByaWNlOiBudW1iZXIsIHNvcnRCeTogc3RyaW5nLCBwYWdlTm86IG51bWJlciwgc2l6ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICAgICAgICBcImJ1c2luZXNzSWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIiksXHJcbiAgICAgICAgICAgIFwiY29sbGVjdGlvbklkXCI6IGNvbGxlY3Rpb25JZHMsXHJcbiAgICAgICAgICAgIFwiY2F0ZWdvcnlJZFwiOiBjYXRlZ29yeUlkcyxcclxuICAgICAgICAgICAgXCJzZWFyY2hUZXh0XCI6IHNlYXJjaFRleHQsXHJcbiAgICAgICAgICAgIFwibWluUHJpY2VcIjogbWluUHJpY2UgPz8gMCxcclxuICAgICAgICAgICAgXCJtYXhQcmljZVwiOiBtYXhQcmljZSA/PyAwLFxyXG4gICAgICAgICAgICBcInNvcnRCeVwiOiBzb3J0QnksXHJcbiAgICAgICAgICAgIFwicGFnZU5vXCI6IHBhZ2VObyxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOiBzaXplXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3Byb2R1Y3QvaXRlbS9zZWFyY2hgLCBwYXlsb2FkKTtcclxuICAgIH1cclxuICAgIGdldFByb2R1Y3RCeUNhdGVnb3J5SWQoY2F0ZWdvcnlJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICAgICAgICBcImJ1c2luZXNzSWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIiksXHJcbiAgICAgICAgICAgIFwiY2F0ZWdvcnlJZFwiOiBbY2F0ZWdvcnlJZF0sXHJcbiAgICAgICAgICAgIFwicGFnZU5vXCI6IDAsXHJcbiAgICAgICAgICAgIFwicGFnZVNpemVcIjogMTBcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvcHJvZHVjdC9pdGVtL3NlYXJjaGAsIHBheWxvYWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdlbmVyYXRlT1RQKG1vYmlsZTogc3RyaW5nLCBjb3VudHJ5Q29kZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gXCJcIjtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9vdHAvdHJpZ2dlcj9tb2JpbGU9JHttb2JpbGV9JmNvdW50cnlDb2RlPSR7Y291bnRyeUNvZGV9JmJ1c2luZXNzSWQ9JHtidXNpbmVzc0lkfWAsIG51bGwpO1xyXG4gICAgfVxyXG4gICAgdmVyaWZ5T1RQKG1vYmlsZTogc3RyaW5nLCBvdHA6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGJ1c2luZXNzSWQ6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IFwiXCI7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9hdXRoZW50aWNhdGU/bW9iaWxlPSR7bW9iaWxlfSZvdHA9JHtvdHB9JmJ1c2luZXNzSWQ9JHtidXNpbmVzc0lkfWAsIG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEl0ZW1Ub0RCKHVzZXJDYXJ0OiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2Uvb3JkZXIvY2FydGAsIHVzZXJDYXJ0KTtcclxuICAgIH1cclxuICAgIGdldFVzZXJJdGVtcyh1c2VySWQ6IHN0cmluZywgY2FydFR5cGU6ICdDQVJUJyB8ICdXSVNITElTVCcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci9jYXJ0P3VzZXJJZD0ke3VzZXJJZH0mY2FydFR5cGU9JHtjYXJ0VHlwZX1gKTtcclxuICAgIH1cclxuICAgIHBsYWNlT3JkZXIoY2FydElkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2Uvb3JkZXIvb3JkZXI/Y2FydElkPSR7Y2FydElkfWAsIG51bGwpO1xyXG4gICAgfVxyXG4gICAgdG9nZ2xlSXRlbUNhcnRUb0ZhdigpIHtcclxuXHJcbiAgICB9XHJcbn0iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsR0FBRyxFQUF3QyxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFpQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFLaEYsTUFBTSxPQUFPLFdBQVc7SUFLcEIsWUFDcUIsSUFBZ0IsRUFDaEIsWUFBMkI7UUFEM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUx4QyxhQUFRLEdBQVcsMkJBQTJCLENBQUM7UUFDL0MsOEJBQXlCLEdBQXdCLElBQUksQ0FBQztRQU0zRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFDLEVBQUU7WUFDcEYsSUFBSSxRQUFRLElBQUksS0FBSztnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRywyQkFBMkIsQ0FBQztpQkFDM0MsSUFBSSxRQUFRLElBQUksT0FBTztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQzs7Z0JBRTlDLElBQUksQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLHlCQUF5QjtZQUM5QixJQUFJLENBQUMseUJBQXlCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLFlBQXVDO1FBQ3RELElBQUksYUFBYSxHQUFrQixZQUFZLENB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T0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLHlCQUF5QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFDRCxhQUFhLENBQUMsT0FBZSxFQUFFLE9BQVk7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLHlDQUF5QyxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsT0FBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsMEJBQTBCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0UsQ0FBQzs4R0ExSFEsV0FBVztrSEFBWCxXQUFXLGNBRlIsTUFBTTs7MkZBRVQsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQ2F0ZWdvcnksIEV2ZW50c1NlcnZpY2UsIFByb2R1Y3QsIENvbGxlY3Rpb24gfSBmcm9tIFwiLi4vLi4vcHVibGljLWFwaVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzdFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAgIHByaXZhdGUgQkFTRV9VUkw6IHN0cmluZyA9IFwiaHR0cHM6Ly9kZXYtYXBpLnNpbXBvLmFpL1wiO1xyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFR5cGVTdWJzY3JpYmVyOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2VcclxuICAgICkgeyBcclxuICAgICAgIHRoaXMuZW52aXJvbm1lbnRUeXBlU3Vic2NyaWJlciA9IHRoaXMuZXZlbnRTZXJ2aWNlLmVudmlyb25tZW50VHlwZS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlID09IFwiREVWXCIpXHJcbiAgICAgICAgICAgICAgICB0aGlzLkJBU0VfVVJMID0gXCJodHRwczovL2Rldi1hcGkuc2ltcG8uYWkvXCI7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlID09IFwiU1RBR0VcIilcclxuICAgICAgICAgICAgICAgIHRoaXMuQkFTRV9VUkwgPSBcImh0dHBzOi8vc3RhdGUtYXBpLnNpbXBvLmFpL1wiO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB0aGlzLkJBU0VfVVJMID0gXCJodHRwczovL2FwaS5zaW1wby5haS9cIjtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnRUeXBlU3Vic2NyaWJlcilcclxuICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudFR5cGVTdWJzY3JpYmVyPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZlYXR1cmVkUHJvZHVjdChjb2xsZWN0aW9uSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHtcclxuICAgICAgICBsZXQgc3ViSW5kdXN0cnlJZDogc3RyaW5nIHwgbnVsbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwic3ViaW5kdXN0cnlJZFwiKTtcclxuICAgICAgICBpZiAoIXN1YkluZHVzdHJ5SWQpXHJcbiAgICAgICAgICAgIHN1YkluZHVzdHJ5SWQgPSBcIjFlZWNlZThkLWVmYmEtNjJmOC1iN2I1LWI5NzQyZmNlYjE3ZlwiO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9wcm9kdWN0L2NvbGxlY3Rpb24vaWQ/Y29sbGVjdGlvbklkPSR7Y29sbGVjdGlvbklkIHx8ICcnfSZzdWJJbmR1c3RyeUlkPSR7c3ViSW5kdXN0cnlJZCB8fCAnJ31gKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSk9PiByZXNwb25zZS5kYXRhPy5tYXAoKHByb2R1Y3Q6IGFueSk9PiBuZXcgUHJvZHVjdChwcm9kdWN0KSkpKTtcclxuICAgIH1cclxuICAgIGdldFByb2R1Y3REZXRhaWxzKHByb2R1Y3RJZDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgICAgICAgIHBhZ2VObzogMCxcclxuICAgICAgICAgICAgcGFnZVNpemU6IDEsXHJcbiAgICAgICAgICAgIGl0ZW1JZDogcHJvZHVjdElkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3Byb2R1Y3QvaXRlbS9zZWFyY2hgLCBwYXlsb2FkKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSk9PiByZXNwb25zZS5kYXRhLmRhdGEubWFwKChwcm9kdWN0OiBhbnkpPT4gbmV3IFByb2R1Y3QocHJvZHVjdCkpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsQ2F0ZWdvcmllcygpIHtcclxuXHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICAgICAgICBwYWdlTm86IDAsXHJcbiAgICAgICAgICAgIHBhZ2VTaXplOiAxMCxcclxuICAgICAgICAgICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIilcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArICdlY29tbWVyY2UvaW52ZW50b3J5L2dldC9jYXRlZ29yeScsIHBheWxvYWQpLnBpcGUobWFwKChyZXNwb25zZTogYW55KT0+IHJlc3BvbnNlLmRhdGEuZGF0YT8ubWFwKChjYXRlZ29yeTogYW55KT0+IG5ldyBDYXRlZ29yeShjYXRlZ29yeSkpKSk7XHJcbiAgICB9XHJcbiAgICBnZXRBbGxDb2xsZWN0aW9ucygpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgICAgICAgIHBhZ2VObzogMCxcclxuICAgICAgICAgICAgcGFnZVNpemU6IDEwLFxyXG4gICAgICAgICAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLkJBU0VfVVJMICsgJ2Vjb21tZXJjZS9pbnZlbnRvcnkvZ2V0L2NvbGxlY3Rpb24nLCBwYXlsb2FkKS5waXBlKG1hcCgocmVzcG9uc2U6IGFueSk9PiByZXNwb25zZS5kYXRhLmRhdGE/Lm1hcCgoY29sbGVjdGlvbjogYW55KT0+IG5ldyBDb2xsZWN0aW9uKGNvbGxlY3Rpb24pKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbHRlcmVkUHJvZHVjdChjb2xsZWN0aW9uSWRzOiBzdHJpbmdbXSwgY2F0ZWdvcnlJZHM6IHN0cmluZ1tdLCBzZWFyY2hUZXh0OiBzdHJpbmcsIG1pblByaWNlOiBudW1iZXIsIG1heFByaWNlOiBudW1iZXIsIHNvcnRCeTogc3RyaW5nLCBwYWdlTm86IG51bWJlciwgc2l6ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICAgICAgICBcImJ1c2luZXNzSWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIiksXHJcbiAgICAgICAgICAgIFwiY29sbGVjdGlvbklkXCI6IGNvbGxlY3Rpb25JZHMsXHJcbiAgICAgICAgICAgIFwiY2F0ZWdvcnlJZFwiOiBjYXRlZ29yeUlkcyxcclxuICAgICAgICAgICAgXCJzZWFyY2hUZXh0XCI6IHNlYXJjaFRleHQsXHJcbiAgICAgICAgICAgIFwibWluUHJpY2VcIjogbWluUHJpY2UgPz8gMCxcclxuICAgICAgICAgICAgXCJtYXhQcmljZVwiOiBtYXhQcmljZSA/PyAwLFxyXG4gICAgICAgICAgICBcInNvcnRCeVwiOiBzb3J0QnksXHJcbiAgICAgICAgICAgIFwicGFnZU5vXCI6IHBhZ2VObyxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOiBzaXplXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3Byb2R1Y3QvaXRlbS9zZWFyY2hgLCBwYXlsb2FkKTtcclxuICAgIH1cclxuICAgIGdldFByb2R1Y3RCeUNhdGVnb3J5SWQoY2F0ZWdvcnlJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICAgICAgICBcImJ1c2luZXNzSWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIiksXHJcbiAgICAgICAgICAgIFwiY2F0ZWdvcnlJZFwiOiBbY2F0ZWdvcnlJZF0sXHJcbiAgICAgICAgICAgIFwicGFnZU5vXCI6IDAsXHJcbiAgICAgICAgICAgIFwicGFnZVNpemVcIjogMTBcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvcHJvZHVjdC9pdGVtL3NlYXJjaGAsIHBheWxvYWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdlbmVyYXRlT1RQKG1vYmlsZTogc3RyaW5nLCBjb3VudHJ5Q29kZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gXCJcIjtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9vdHAvdHJpZ2dlcj9tb2JpbGU9JHttb2JpbGV9JmNvdW50cnlDb2RlPSR7Y291bnRyeUNvZGV9JmJ1c2luZXNzSWQ9JHtidXNpbmVzc0lkfWAsIG51bGwpO1xyXG4gICAgfVxyXG4gICAgdmVyaWZ5T1RQKG1vYmlsZTogc3RyaW5nLCBvdHA6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGJ1c2luZXNzSWQ6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpID8/IFwiXCI7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9hdXRoZW50aWNhdGU/bW9iaWxlPSR7bW9iaWxlfSZvdHA9JHtvdHB9JmJ1c2luZXNzSWQ9JHtidXNpbmVzc0lkfWAsIG51bGwpO1xyXG4gICAgfVxyXG4gICAgcmVzZW5kT1RQKG1vYmlsZTogc3RyaW5nLCBjb3VudHJ5Q29kZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gXCJcIjtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci9yZXNlbmQ/bW9iaWxlPSR7bW9iaWxlfSZjb3VudHJ5Q29kZT0ke2NvdW50cnlDb2RlfSZidXNpbmVzc0lkPSR7YnVzaW5lc3NJZH1gLCBudWxsKTsgXHJcbiAgICB9XHJcblxyXG4gICAgYWRkSXRlbVRvREIodXNlckNhcnQ6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci9jYXJ0YCwgdXNlckNhcnQpO1xyXG4gICAgfVxyXG4gICAgZ2V0VXNlckl0ZW1zKHVzZXJJZDogc3RyaW5nLCBjYXJ0VHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNUJykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL29yZGVyL2NhcnQ/dXNlcklkPSR7dXNlcklkfSZjYXJ0VHlwZT0ke2NhcnRUeXBlfWApO1xyXG4gICAgfVxyXG4gICAgcGxhY2VPcmRlcihjYXJ0SWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9vcmRlci9vcmRlcj9jYXJ0SWQ9JHtjYXJ0SWR9YCwgbnVsbCk7XHJcbiAgICB9XHJcbiAgICBnZXRVc2VySW5mbyh1c2VySWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3VzZXIvZ2V0L3VzZXI/dXNlcklkPSR7dXNlcklkfWAsIG51bGwpO1xyXG4gICAgfVxyXG4gICAgYWRkVXNlckFkZHJlc3ModXNlcjogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5CQVNFX1VSTCArIGBlY29tbWVyY2UvdXNlci91cGRhdGUvdXNlcmAsIHVzZXIpO1xyXG4gICAgfVxyXG4gICAgdG9nZ2xlSXRlbUNhcnRUb0ZhdigpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy8gUGF5bWVudFxyXG4gICAgY3JlYXRlUGF5bWVudFRva2VuKHBheWxvYWQ6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgYGVjb21tZXJjZS9wYXltZW50L29yZGVyYCwgcGF5bG9hZCk7XHJcbiAgICB9XHJcbiAgICByZWZ1bmRQYXltZW50KG9yZGVySWQ6IHN0cmluZywgcGF5bG9hZDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3BheW1lbnQvcmVmdW5kL2Jhbms/b3JkZXJJZD0ke29yZGVySWR9YCwgcGF5bG9hZCk7XHJcbiAgICB9XHJcbiAgICBjaGVja1BheW1lbnRTdGF0dXMocGF5bG9hZDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuQkFTRV9VUkwgKyBgZWNvbW1lcmNlL3BheW1lbnQvc3RhdHVzYCwgcGF5bG9hZCk7XHJcbiAgICB9XHJcbn0iXX0=