simpo-component-library 3.6.608 → 3.6.610

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 (25) hide show
  1. package/esm2022/lib/directive/background-directive.mjs +2 -2
  2. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +113 -7
  3. package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
  4. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +8 -5
  5. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
  6. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +15 -3
  7. package/esm2022/lib/services/events.service.mjs +2 -1
  8. package/fesm2022/simpo-component-library.mjs +137 -15
  9. package/fesm2022/simpo-component-library.mjs.map +1 -1
  10. package/lib/ecommerce/sections/cart/cart.component.d.ts +4 -0
  11. package/lib/ecommerce/sections/cart/cart.modal.d.ts +1 -0
  12. package/lib/ecommerce/sections/featured-category/featured-category.component.d.ts +1 -1
  13. package/lib/ecommerce/sections/featured-category/featured-collection.component.d.ts +1 -1
  14. package/lib/ecommerce/sections/new-collection/new-collection.component.d.ts +1 -1
  15. package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
  16. package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
  17. package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
  18. package/lib/sections/image-grid-hotspot/image-grid-hotspot.component.d.ts +1 -1
  19. package/lib/sections/image-grid-section/image-grid-section.component.d.ts +1 -1
  20. package/lib/sections/image-section/image-section.component.d.ts +2 -2
  21. package/lib/sections/logo-showcase/logo-showcase.component.d.ts +1 -0
  22. package/lib/services/events.service.d.ts +1 -0
  23. package/package.json +1 -1
  24. package/simpo-component-library-3.6.610.tgz +0 -0
  25. package/simpo-component-library-3.6.608.tgz +0 -0
@@ -142,7 +142,7 @@ export class BackgroundDirective {
142
142
  else {
143
143
  if (this.videoElementId && this.el.nativeElement.querySelector(`#${this.videoElementId}`))
144
144
  this.el.nativeElement.removeChild(this.el.nativeElement.querySelector(`#${this.videoElementId}`));
145
- if (this.simpoBackground?.backgroundType === 'Gradient' && this.simpoBackground?.backgroundAnimation == 'NONE') {
145
+ if (this.simpoBackground?.backgroundType === 'Gradient') {
146
146
  const direction = GradientDirection[this.simpoBackground.backgroundGradientDirection || GradientDirection.DOWN];
147
147
  const gradientColor = direction != GradientDirection.DOWN ? `linear-gradient(${direction},${this.simpoBackground.color},${this.simpoBackground.secondaryColor})` :
148
148
  `linear-gradient(${this.simpoBackground.color},${this.simpoBackground.secondaryColor})`;
@@ -219,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
219
219
  type: Input,
220
220
  args: ['scrollValue']
221
221
  }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFJdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU1wRCxNQUFNLE9BQU8sbUJBQW1CO0lBTTlCLFlBQ1UsRUFBYyxFQUNkLFlBQTJCO1FBRDNCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQU5mLGdCQUFXLEdBQVksQ0FBQyxDQUFDO1FBRy9DLG1CQUFjLEdBQUcsRUFBRSxDQUFBO1FBSWpCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDbEMsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQ3pFLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLGtCQUFrQixJQUFJLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNyRSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNqRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxJQUFJLElBQUksRUFBRSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ2xELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsUUFB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LE9BQU8sVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFBO0lBQ25CLENBQUM7K0dBbFJVLG1CQUFtQjttR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjsyR0FFMkIsZUFBZTtzQkFBeEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ0YsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCB9IGZyb20gJy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IEJBQ0tHUk9VTkRfVFlQRSB9IGZyb20gJy4uL3N0eWxlcy90eXBlcyc7XHJcbmltcG9ydCB7IEdyYWRpZW50RGlyZWN0aW9uIH0gZnJvbSAnLi4vc3R5bGVzL2luZGV4JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NpbXBvQmFja2dyb3VuZF0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYWNrZ3JvdW5kRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoJ3NpbXBvQmFja2dyb3VuZCcpIHNpbXBvQmFja2dyb3VuZD86IEJhY2tncm91bmRNb2RlbDtcclxuICBASW5wdXQoJ3Njcm9sbFZhbHVlJykgc2Nyb2xsVmFsdWU/OiBudW1iZXIgPSAwO1xyXG5cclxuICBldmVudEVtbWl0dGVyOiBhbnk7XHJcbiAgdmlkZW9FbGVtZW50SWQgPSBgYFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlKSB7XHJcbiAgICBpZiAodGhpcy5ldmVudEVtbWl0dGVyKSB7XHJcbiAgICAgIHRoaXMuZXZlbnRFbW1pdHRlci51bnN1YnNjcmliZSgpXHJcbiAgICB9XHJcbiAgICB0aGlzLmV2ZW50RW1taXR0ZXIgPSB0aGlzLmV2ZW50U2VydmljZS5iYWNrZ3JvdW5kSW1hZ2VDaGFuZ2VDaGVjay5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMudmlkZW9FbGVtZW50SWQgPSBgc2ltcG8tYmctdmlkZW8tJHt0aGlzLmVsPy5uYXRpdmVFbGVtZW50Py5pZH1gO1xyXG4gICAgICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaWQgPT09IHJlcy5pZCB8fCByZXMuZ2xvYmFsVGhlbWVDaGFuZ2UpIHtcclxuICAgICAgICAgIGlmIChyZXMuZGF0YT8uc2hvd0ltYWdlICYmIHRoaXM/LnNjcm9sbFZhbHVlID09IDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5pbWFnZS5pbmNsdWRlcygnLm1wNCcpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLWltYWdlJywgJycpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZpZGVvRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LmlkID0gdGhpcy52aWRlb0VsZW1lbnRJZDtcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3JjID0gdGhpcy5zaW1wb0JhY2tncm91bmQuaW1hZ2U7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LmF1dG9wbGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQubG9vcCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50Lm11dGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQucGxheXNJbmxpbmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIC8vIFN0eWxlIHRoZSB2aWRlbyBlbGVtZW50XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3R5bGUucmlnaHQgPSAnMCc7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LnN0eWxlLmJvdHRvbSA9ICcwJztcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3R5bGUubWluV2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LnN0eWxlLm1pbkhlaWdodCA9ICcxMDAlJztcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3R5bGUud2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LnN0eWxlLmhlaWdodCA9ICcxMDAlJztcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3R5bGUuekluZGV4ID0gJy0xJztcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3R5bGUub2JqZWN0Rml0ID0gJ2NvdmVyJztcclxuICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodmlkZW9FbGVtZW50KTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMudmlkZW9FbGVtZW50SWQgJiYgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMudmlkZW9FbGVtZW50SWR9YCkpXHJcbiAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLnZpZGVvRWxlbWVudElkfWApKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgICAgICBgdXJsKCR7cmVzLmRhdGEuaW1hZ2V9KWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyxcclxuICAgICAgICAgICAgICBgJHtyZXMuZGF0YS5wb3NpdGlvbj8ueH0lICR7cmVzLmRhdGEucG9zaXRpb24/Lnl9JWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLXJlcGVhdCcsIGBuby1yZXBlYXRgKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLXNpemUnLCBgY292ZXJgKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvcicsIHRoaXMuZ2V0VGV4dENvbG9yKHJlcy5kYXRhPy5jb2xvcikpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy52aWRlb0VsZW1lbnRJZCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy52aWRlb0VsZW1lbnRJZH1gKSlcclxuICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMudmlkZW9FbGVtZW50SWR9YCkpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRUeXBlID09PSAoJ0dyYWRpZW50JyBhcyBCQUNLR1JPVU5EX1RZUEUpKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gR3JhZGllbnREaXJlY3Rpb25bdGhpcy5zaW1wb0JhY2tncm91bmQuYmFja2dyb3VuZEdyYWRpZW50RGlyZWN0aW9uIGFzIHVua25vd24gYXMga2V5b2YgdHlwZW9mIEdyYWRpZW50RGlyZWN0aW9uIHx8IEdyYWRpZW50RGlyZWN0aW9uLkRPV05dO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGdyYWRpZW50Q29sb3IgPSBkaXJlY3Rpb24gIT0gR3JhZGllbnREaXJlY3Rpb24uRE9XTiA/IGBsaW5lYXItZ3JhZGllbnQoJHtkaXJlY3Rpb259LCR7dGhpcy5zaW1wb0JhY2tncm91bmQuY29sb3J9LCR7dGhpcy5zaW1wb0JhY2tncm91bmQuc2Vjb25kYXJ5Q29sb3J9KWAgOlxyXG4gICAgICAgICAgICAgICAgYGxpbmVhci1ncmFkaWVudCgke3RoaXMuc2ltcG9CYWNrZ3JvdW5kLmNvbG9yfSwke3RoaXMuc2ltcG9CYWNrZ3JvdW5kLnNlY29uZGFyeUNvbG9yfSlgO1xyXG4gICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kJyxcclxuICAgICAgICAgICAgICAgIGdyYWRpZW50Q29sb3JcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3InLCB0aGlzLmdldFRleHRDb2xvcihncmFkaWVudENvbG9yKSlcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InLFxyXG4gICAgICAgICAgICAgIHJlcy5kYXRhPy5jb2xvclxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnLFxyXG4gICAgICAgICAgICAgIGB1cmwoJycpYFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtc2l6ZScsICdjb3ZlcicpO1xyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtcmVwZWF0JywgJ25vLXJlcGVhdCcpO1xyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtcG9zaXRpb24nLCAnY2VudGVyJyk7XHJcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3InLCB0aGlzLmdldFRleHRDb2xvcihyZXMuZGF0YT8uY29sb3IpKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnREFOQ0lOR19ET1RTJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpXHJcbiAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgICAgICBgdXJsKCdodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzExNjAyNmMxNzQ3MTIyMjk2NDA4QXJ0Ym9hcmQxLmdpZicpYFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnU0NBVFRFUklOR19ET1RTJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpXHJcbiAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgICAgICBgdXJsKCdodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzI4NzM0OGMxNzQ3MDUxNTQwMDg4V2hhdHNBcHBWaWRlbzIwMjUtMDUtMTJhdDUuMTkuMTFQTS1lemdpZi5jb20tdmlkZW8tdG8tZ2lmLWNvbnZlcnRlciAoMSkuZ2lmJylgXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdXQVZFUycpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKVxyXG4gICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSk7XHJcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgICAgICAgYHVybCgnaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82MzA3NTNjMTc0NzQwMzIxNzIzOTY5MTM5OTdfTW90aW9uJTIwR3JhcGhpY3NfTW90aW9uJTIwR3JhcGhpY18zODQweDIxNjAlMjAoMSklMjAoMikuZ2lmJylgXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdBQlNUUkFDVCcpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKVxyXG4gICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSk7XHJcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgICAgICAgYHVybCgnaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy81Nzc1MDdjMTc0NzQ2NTYzNjk1NlJvdGF0aW9uJTIwZ2lmLmdpZicpYFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnRFJFVycpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKVxyXG4gICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSk7XHJcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgICAgICAgYHVybCgnaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy83MjEyNDRjMTc0NzQ2NzY5ODAwNGFuaW1hdGUuZ2lmJylgXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdET1RTJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpXHJcbiAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgICAgICBgdXJsKCdodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzY1OTEzNGMxNzQ3NDY3ODAxMjQyRG90cyUyMCgxKS5naWYnKWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGlmICh0aGlzLnNpbXBvQmFja2dyb3VuZD8uYmFja2dyb3VuZEFuaW1hdGlvbikge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtc2l6ZScsICdjb3ZlcicpO1xyXG4gICAgICAgICAgLy8gICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtcmVwZWF0JywgJ25vLXJlcGVhdCcpO1xyXG4gICAgICAgICAgLy8gICAvLyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtcG9zaXRpb24nLCAnY2VudGVyJyk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuZXZlbnRFbW1pdHRlcikge1xyXG4gICAgICB0aGlzLmV2ZW50RW1taXR0ZXIudW5zdWJzY3JpYmUoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgdGhpcy5nZXRUZXh0Q29sb3IodGhpcy5zaW1wb0JhY2tncm91bmQ/LmNvbG9yID8gdGhpcy5zaW1wb0JhY2tncm91bmQ/LmNvbG9yIDogJyNmZmZmZmYnKSlcclxuICAgIGlmICh0aGlzLnNpbXBvQmFja2dyb3VuZD8uc2hvd0ltYWdlKSB7XHJcbiAgICAgIC8vIGlmICh0aGlzLnNpbXBvQmFja2dyb3VuZD8uaW1hZ2UuaW5jbHVkZXMoJy5tcDQnKSkge1xyXG4gICAgICAvLyAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1pbWFnZScsICcnKTtcclxuICAgICAgLy8gICBjb25zdCB2aWRlb0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5pZCA9IHRoaXMudmlkZW9FbGVtZW50SWQ7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnNyYyA9IHRoaXMuc2ltcG9CYWNrZ3JvdW5kLmltYWdlO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5hdXRvcGxheSA9IHRydWU7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50Lmxvb3AgPSB0cnVlO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5tdXRlZCA9IHRydWU7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnBsYXlzSW5saW5lID0gdHJ1ZTtcclxuICAgICAgLy8gICAvLyBTdHlsZSB0aGUgdmlkZW8gZWxlbWVudFxyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzAnO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5zdHlsZS5ib3R0b20gPSAnMCc7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnN0eWxlLm1pbldpZHRoID0gJzEwMCUnO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5zdHlsZS5taW5IZWlnaHQgPSAnMTAwJSc7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnN0eWxlLnpJbmRleCA9ICctMSc7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnN0eWxlLm9iamVjdEZpdCA9ICdjb3Zlcic7XHJcbiAgICAgIC8vICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHZpZGVvRWxlbWVudCk7XHJcbiAgICAgIC8vICAgcmV0dXJuO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIGlmICh0aGlzLnZpZGVvRWxlbWVudElkICYmIHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLnZpZGVvRWxlbWVudElkfWApKVxyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy52aWRlb0VsZW1lbnRJZH1gKSk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgYHVybCgke3RoaXMuc2ltcG9CYWNrZ3JvdW5kLmltYWdlfSlgXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAnYmFja2dyb3VuZC1wb3NpdGlvbicsXHJcbiAgICAgICAgYCR7dGhpcy5zaW1wb0JhY2tncm91bmQucG9zaXRpb24/Lnh9JSAke3RoaXMuc2ltcG9CYWNrZ3JvdW5kLnBvc2l0aW9uPy55fSVgXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1yZXBlYXQnLCBgbm8tcmVwZWF0YCk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1zaXplJywgYGNvdmVyYCk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3InLCB0aGlzLmdldFRleHRDb2xvcih0aGlzLnNpbXBvQmFja2dyb3VuZD8uY29sb3IgPyB0aGlzLnNpbXBvQmFja2dyb3VuZD8uY29sb3IgOiAnI2ZmZmZmZicpKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMudmlkZW9FbGVtZW50SWQgJiYgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMudmlkZW9FbGVtZW50SWR9YCkpXHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLnZpZGVvRWxlbWVudElkfWApKTtcclxuICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kVHlwZSA9PT0gKCdHcmFkaWVudCcgYXMgQkFDS0dST1VORF9UWVBFKSAmJiB0aGlzLnNpbXBvQmFja2dyb3VuZD8uYmFja2dyb3VuZEFuaW1hdGlvbiA9PSAnTk9ORScpIHtcclxuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBHcmFkaWVudERpcmVjdGlvblt0aGlzLnNpbXBvQmFja2dyb3VuZC5iYWNrZ3JvdW5kR3JhZGllbnREaXJlY3Rpb24gYXMgdW5rbm93biBhcyBrZXlvZiB0eXBlb2YgR3JhZGllbnREaXJlY3Rpb24gfHwgR3JhZGllbnREaXJlY3Rpb24uRE9XTl07XHJcbiAgICAgICAgY29uc3QgZ3JhZGllbnRDb2xvciA9IGRpcmVjdGlvbiAhPSBHcmFkaWVudERpcmVjdGlvbi5ET1dOID8gYGxpbmVhci1ncmFkaWVudCgke2RpcmVjdGlvbn0sJHt0aGlzLnNpbXBvQmFja2dyb3VuZC5jb2xvcn0sJHt0aGlzLnNpbXBvQmFja2dyb3VuZC5zZWNvbmRhcnlDb2xvcn0pYCA6XHJcbiAgICAgICAgICBgbGluZWFyLWdyYWRpZW50KCR7dGhpcy5zaW1wb0JhY2tncm91bmQuY29sb3J9LCR7dGhpcy5zaW1wb0JhY2tncm91bmQuc2Vjb25kYXJ5Q29sb3J9KWA7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgJ2JhY2tncm91bmQnLFxyXG4gICAgICAgICAgZ3JhZGllbnRDb2xvclxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvcicsIHRoaXMuZ2V0VGV4dENvbG9yKGdyYWRpZW50Q29sb3IpKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy52aWRlb0VsZW1lbnRJZCAmJiAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMudmlkZW9FbGVtZW50SWR9YCkpXHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLnZpZGVvRWxlbWVudElkfWApKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyxcclxuICAgICAgICB0aGlzLnNpbXBvQmFja2dyb3VuZD8uY29sb3JcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICBgYFxyXG4gICAgICApO1xyXG4gICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdEQU5DSU5HX0RPVFMnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKVxyXG4gICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgICBgdXJsKCdodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzExNjAyNmMxNzQ3MTIyMjk2NDA4QXJ0Ym9hcmQxLmdpZicpYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnU0NBVFRFUklOR19ET1RTJykge1xyXG4gICAgICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSlcclxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnLFxyXG4gICAgICAgICAgYHVybCgnaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy8yODczNDhjMTc0NzA1MTU0MDA4OFdoYXRzQXBwVmlkZW8yMDI1LTA1LTEyYXQ1LjE5LjExUE0tZXpnaWYuY29tLXZpZGVvLXRvLWdpZi1jb252ZXJ0ZXIgKDEpLmdpZicpYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnV0FWRVMnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKVxyXG4gICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgICBgdXJsKCdodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzYzMDc1M2MxNzQ3NDAzMjE3MjM5NjkxMzk5N19Nb3Rpb24lMjBHcmFwaGljc19Nb3Rpb24lMjBHcmFwaGljXzM4NDB4MjE2MCUyMCgxKSUyMCgyKS5naWYnKWBcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNpbXBvQmFja2dyb3VuZD8uYmFja2dyb3VuZEFuaW1hdGlvbiA9PT0gJ0FCU1RSQUNUJykge1xyXG4gICAgICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSlcclxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnLFxyXG4gICAgICAgICAgYHVybCgnaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy81Nzc1MDdjMTc0NzQ2NTYzNjk1NlJvdGF0aW9uJTIwZ2lmLmdpZicpYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnRFJFVycpIHtcclxuICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpXHJcbiAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgIGB1cmwoJ2h0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzIxMjQ0YzE3NDc0Njc2OTgwMDRhbmltYXRlLmdpZicpYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnRE9UUycpIHtcclxuICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpXHJcbiAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgIGB1cmwoJ2h0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjU5MTM0YzE3NDc0Njc4MDEyNDJEb3RzJTIwKDEpLmdpZicpYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLXNpemUnLCAnY292ZXInKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtcmVwZWF0JywgJ25vLXJlcGVhdCcpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1wb3NpdGlvbicsICdjZW50ZXInKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUZXh0Q29sb3IoYmdDb2xvcjogc3RyaW5nKSB7XHJcbiAgICBpZiAoYmdDb2xvcikge1xyXG4gICAgICBjb25zdCB0aHJlc2hvbGQgPSAxMzA7IC8vIEFkanVzdCB0aGlzIHRocmVzaG9sZCBhcyBuZWVkZWRcclxuICAgICAgY29uc3QgciA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMSwgMyksIDE2KTtcclxuICAgICAgY29uc3QgZyA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMywgNSksIDE2KTtcclxuICAgICAgY29uc3QgYiA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoNSwgNyksIDE2KTtcclxuICAgICAgY29uc3QgYnJpZ2h0bmVzcyA9IChyICogMjk5ICsgZyAqIDU4NyArIGIgKiAxMTQpIC8gMTAwMDtcclxuXHJcbiAgICAgIHJldHVybiBicmlnaHRuZXNzID4gdGhyZXNob2xkID8gJyMwMDAwMDAnIDogJyNmZmZmZmYnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiI2ZmZmZmZjtcIlxyXG4gIH1cclxufVxyXG4iXX0=
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFJdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU1wRCxNQUFNLE9BQU8sbUJBQW1CO0lBTTlCLFlBQ1UsRUFBYyxFQUNkLFlBQTJCO1FBRDNCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQU5mLGdCQUFXLEdBQVksQ0FBQyxDQUFDO1FBRy9DLG1CQUFjLEdBQUcsRUFBRSxDQUFBO1FBSWpCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDbEMsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQ3pFLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLGtCQUFrQixJQUFJLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNyRSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNqRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxJQUFJLElBQUksRUFBRSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ2xELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsUUFB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QUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFBO0lBQ25CLENBQUM7K0dBbFJVLG1CQUFtQjttR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjsyR0FFMkIsZUFBZTtzQkFBeEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ0YsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCB9IGZyb20gJy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IEJBQ0tHUk9VTkRfVFlQRSB9IGZyb20gJy4uL3N0eWxlcy90eXBlcyc7XHJcbmltcG9ydCB7IEdyYWRpZW50RGlyZWN0aW9uIH0gZnJvbSAnLi4vc3R5bGVzL2luZGV4JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NpbXBvQmFja2dyb3VuZF0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYWNrZ3JvdW5kRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoJ3NpbXBvQmFja2dyb3VuZCcpIHNpbXBvQmFja2dyb3VuZD86IEJhY2tncm91bmRNb2RlbDtcclxuICBASW5wdXQoJ3Njcm9sbFZhbHVlJykgc2Nyb2xsVmFsdWU/OiBudW1iZXIgPSAwO1xyXG5cclxuICBldmVudEVtbWl0dGVyOiBhbnk7XHJcbiAgdmlkZW9FbGVtZW50SWQgPSBgYFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlKSB7XHJcbiAgICBpZiAodGhpcy5ldmVudEVtbWl0dGVyKSB7XHJcbiAgICAgIHRoaXMuZXZlbnRFbW1pdHRlci51bnN1YnNjcmliZSgpXHJcbiAgICB9XHJcbiAgICB0aGlzLmV2ZW50RW1taXR0ZXIgPSB0aGlzLmV2ZW50U2VydmljZS5iYWNrZ3JvdW5kSW1hZ2VDaGFuZ2VDaGVjay5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMudmlkZW9FbGVtZW50SWQgPSBgc2ltcG8tYmctdmlkZW8tJHt0aGlzLmVsPy5uYXRpdmVFbGVtZW50Py5pZH1gO1xyXG4gICAgICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaWQgPT09IHJlcy5pZCB8fCByZXMuZ2xvYmFsVGhlbWVDaGFuZ2UpIHtcclxuICAgICAgICAgIGlmIChyZXMuZGF0YT8uc2hvd0ltYWdlICYmIHRoaXM/LnNjcm9sbFZhbHVlID09IDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5pbWFnZS5pbmNsdWRlcygnLm1wNCcpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLWltYWdlJywgJycpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZpZGVvRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LmlkID0gdGhpcy52aWRlb0VsZW1lbnRJZDtcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3JjID0gdGhpcy5zaW1wb0JhY2tncm91bmQuaW1hZ2U7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LmF1dG9wbGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQubG9vcCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50Lm11dGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQucGxheXNJbmxpbmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIC8vIFN0eWxlIHRoZSB2aWRlbyBlbGVtZW50XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3R5bGUucmlnaHQgPSAnMCc7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LnN0eWxlLmJvdHRvbSA9ICcwJztcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3R5bGUubWluV2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LnN0eWxlLm1pbkhlaWdodCA9ICcxMDAlJztcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3R5bGUud2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgICAgICAgdmlkZW9FbGVtZW50LnN0eWxlLmhlaWdodCA9ICcxMDAlJztcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3R5bGUuekluZGV4ID0gJy0xJztcclxuICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc3R5bGUub2JqZWN0Rml0ID0gJ2NvdmVyJztcclxuICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodmlkZW9FbGVtZW50KTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMudmlkZW9FbGVtZW50SWQgJiYgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMudmlkZW9FbGVtZW50SWR9YCkpXHJcbiAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLnZpZGVvRWxlbWVudElkfWApKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgICAgICBgdXJsKCR7cmVzLmRhdGEuaW1hZ2V9KWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyxcclxuICAgICAgICAgICAgICBgJHtyZXMuZGF0YS5wb3NpdGlvbj8ueH0lICR7cmVzLmRhdGEucG9zaXRpb24/Lnl9JWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLXJlcGVhdCcsIGBuby1yZXBlYXRgKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLXNpemUnLCBgY292ZXJgKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvcicsIHRoaXMuZ2V0VGV4dENvbG9yKHJlcy5kYXRhPy5jb2xvcikpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy52aWRlb0VsZW1lbnRJZCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy52aWRlb0VsZW1lbnRJZH1gKSlcclxuICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMudmlkZW9FbGVtZW50SWR9YCkpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRUeXBlID09PSAoJ0dyYWRpZW50JyBhcyBCQUNLR1JPVU5EX1RZUEUpKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gR3JhZGllbnREaXJlY3Rpb25bdGhpcy5zaW1wb0JhY2tncm91bmQuYmFja2dyb3VuZEdyYWRpZW50RGlyZWN0aW9uIGFzIHVua25vd24gYXMga2V5b2YgdHlwZW9mIEdyYWRpZW50RGlyZWN0aW9uIHx8IEdyYWRpZW50RGlyZWN0aW9uLkRPV05dO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGdyYWRpZW50Q29sb3IgPSBkaXJlY3Rpb24gIT0gR3JhZGllbnREaXJlY3Rpb24uRE9XTiA/IGBsaW5lYXItZ3JhZGllbnQoJHtkaXJlY3Rpb259LCR7dGhpcy5zaW1wb0JhY2tncm91bmQuY29sb3J9LCR7dGhpcy5zaW1wb0JhY2tncm91bmQuc2Vjb25kYXJ5Q29sb3J9KWAgOlxyXG4gICAgICAgICAgICAgICAgYGxpbmVhci1ncmFkaWVudCgke3RoaXMuc2ltcG9CYWNrZ3JvdW5kLmNvbG9yfSwke3RoaXMuc2ltcG9CYWNrZ3JvdW5kLnNlY29uZGFyeUNvbG9yfSlgO1xyXG4gICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kJyxcclxuICAgICAgICAgICAgICAgIGdyYWRpZW50Q29sb3JcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3InLCB0aGlzLmdldFRleHRDb2xvcihncmFkaWVudENvbG9yKSlcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InLFxyXG4gICAgICAgICAgICAgIHJlcy5kYXRhPy5jb2xvclxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnLFxyXG4gICAgICAgICAgICAgIGB1cmwoJycpYFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtc2l6ZScsICdjb3ZlcicpO1xyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtcmVwZWF0JywgJ25vLXJlcGVhdCcpO1xyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtcG9zaXRpb24nLCAnY2VudGVyJyk7XHJcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3InLCB0aGlzLmdldFRleHRDb2xvcihyZXMuZGF0YT8uY29sb3IpKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnREFOQ0lOR19ET1RTJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpXHJcbiAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgICAgICBgdXJsKCdodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzExNjAyNmMxNzQ3MTIyMjk2NDA4QXJ0Ym9hcmQxLmdpZicpYFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnU0NBVFRFUklOR19ET1RTJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpXHJcbiAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgICAgICBgdXJsKCdodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzI4NzM0OGMxNzQ3MDUxNTQwMDg4V2hhdHNBcHBWaWRlbzIwMjUtMDUtMTJhdDUuMTkuMTFQTS1lemdpZi5jb20tdmlkZW8tdG8tZ2lmLWNvbnZlcnRlciAoMSkuZ2lmJylgXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdXQVZFUycpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKVxyXG4gICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSk7XHJcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgICAgICAgYHVybCgnaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82MzA3NTNjMTc0NzQwMzIxNzIzOTY5MTM5OTdfTW90aW9uJTIwR3JhcGhpY3NfTW90aW9uJTIwR3JhcGhpY18zODQweDIxNjAlMjAoMSklMjAoMikuZ2lmJylgXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdBQlNUUkFDVCcpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKVxyXG4gICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSk7XHJcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgICAgICAgYHVybCgnaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy81Nzc1MDdjMTc0NzQ2NTYzNjk1NlJvdGF0aW9uJTIwZ2lmLmdpZicpYFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnRFJFVycpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKVxyXG4gICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSk7XHJcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgICAgICAgYHVybCgnaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy83MjEyNDRjMTc0NzQ2NzY5ODAwNGFuaW1hdGUuZ2lmJylgXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdET1RTJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpXHJcbiAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgICAgICBgdXJsKCdodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzY1OTEzNGMxNzQ3NDY3ODAxMjQyRG90cyUyMCgxKS5naWYnKWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGlmICh0aGlzLnNpbXBvQmFja2dyb3VuZD8uYmFja2dyb3VuZEFuaW1hdGlvbikge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtc2l6ZScsICdjb3ZlcicpO1xyXG4gICAgICAgICAgLy8gICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtcmVwZWF0JywgJ25vLXJlcGVhdCcpO1xyXG4gICAgICAgICAgLy8gICAvLyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtcG9zaXRpb24nLCAnY2VudGVyJyk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuZXZlbnRFbW1pdHRlcikge1xyXG4gICAgICB0aGlzLmV2ZW50RW1taXR0ZXIudW5zdWJzY3JpYmUoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgdGhpcy5nZXRUZXh0Q29sb3IodGhpcy5zaW1wb0JhY2tncm91bmQ/LmNvbG9yID8gdGhpcy5zaW1wb0JhY2tncm91bmQ/LmNvbG9yIDogJyNmZmZmZmYnKSlcclxuICAgIGlmICh0aGlzLnNpbXBvQmFja2dyb3VuZD8uc2hvd0ltYWdlKSB7XHJcbiAgICAgIC8vIGlmICh0aGlzLnNpbXBvQmFja2dyb3VuZD8uaW1hZ2UuaW5jbHVkZXMoJy5tcDQnKSkge1xyXG4gICAgICAvLyAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1pbWFnZScsICcnKTtcclxuICAgICAgLy8gICBjb25zdCB2aWRlb0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5pZCA9IHRoaXMudmlkZW9FbGVtZW50SWQ7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnNyYyA9IHRoaXMuc2ltcG9CYWNrZ3JvdW5kLmltYWdlO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5hdXRvcGxheSA9IHRydWU7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50Lmxvb3AgPSB0cnVlO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5tdXRlZCA9IHRydWU7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnBsYXlzSW5saW5lID0gdHJ1ZTtcclxuICAgICAgLy8gICAvLyBTdHlsZSB0aGUgdmlkZW8gZWxlbWVudFxyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzAnO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5zdHlsZS5ib3R0b20gPSAnMCc7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnN0eWxlLm1pbldpZHRoID0gJzEwMCUnO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5zdHlsZS5taW5IZWlnaHQgPSAnMTAwJSc7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAvLyAgIHZpZGVvRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnN0eWxlLnpJbmRleCA9ICctMSc7XHJcbiAgICAgIC8vICAgdmlkZW9FbGVtZW50LnN0eWxlLm9iamVjdEZpdCA9ICdjb3Zlcic7XHJcbiAgICAgIC8vICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHZpZGVvRWxlbWVudCk7XHJcbiAgICAgIC8vICAgcmV0dXJuO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIGlmICh0aGlzLnZpZGVvRWxlbWVudElkICYmIHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLnZpZGVvRWxlbWVudElkfWApKVxyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy52aWRlb0VsZW1lbnRJZH1gKSk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgYHVybCgke3RoaXMuc2ltcG9CYWNrZ3JvdW5kLmltYWdlfSlgXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAnYmFja2dyb3VuZC1wb3NpdGlvbicsXHJcbiAgICAgICAgYCR7dGhpcy5zaW1wb0JhY2tncm91bmQucG9zaXRpb24/Lnh9JSAke3RoaXMuc2ltcG9CYWNrZ3JvdW5kLnBvc2l0aW9uPy55fSVgXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1yZXBlYXQnLCBgbm8tcmVwZWF0YCk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1zaXplJywgYGNvdmVyYCk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3InLCB0aGlzLmdldFRleHRDb2xvcih0aGlzLnNpbXBvQmFja2dyb3VuZD8uY29sb3IgPyB0aGlzLnNpbXBvQmFja2dyb3VuZD8uY29sb3IgOiAnI2ZmZmZmZicpKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMudmlkZW9FbGVtZW50SWQgJiYgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMudmlkZW9FbGVtZW50SWR9YCkpXHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLnZpZGVvRWxlbWVudElkfWApKTtcclxuICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kVHlwZSA9PT0gKCdHcmFkaWVudCcgYXMgQkFDS0dST1VORF9UWVBFKSkge1xyXG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IEdyYWRpZW50RGlyZWN0aW9uW3RoaXMuc2ltcG9CYWNrZ3JvdW5kLmJhY2tncm91bmRHcmFkaWVudERpcmVjdGlvbiBhcyB1bmtub3duIGFzIGtleW9mIHR5cGVvZiBHcmFkaWVudERpcmVjdGlvbiB8fCBHcmFkaWVudERpcmVjdGlvbi5ET1dOXTtcclxuICAgICAgICBjb25zdCBncmFkaWVudENvbG9yID0gZGlyZWN0aW9uICE9IEdyYWRpZW50RGlyZWN0aW9uLkRPV04gPyBgbGluZWFyLWdyYWRpZW50KCR7ZGlyZWN0aW9ufSwke3RoaXMuc2ltcG9CYWNrZ3JvdW5kLmNvbG9yfSwke3RoaXMuc2ltcG9CYWNrZ3JvdW5kLnNlY29uZGFyeUNvbG9yfSlgIDpcclxuICAgICAgICAgIGBsaW5lYXItZ3JhZGllbnQoJHt0aGlzLnNpbXBvQmFja2dyb3VuZC5jb2xvcn0sJHt0aGlzLnNpbXBvQmFja2dyb3VuZC5zZWNvbmRhcnlDb2xvcn0pYDtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAnYmFja2dyb3VuZCcsXHJcbiAgICAgICAgICBncmFkaWVudENvbG9yXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgdGhpcy5nZXRUZXh0Q29sb3IoZ3JhZGllbnRDb2xvcikpXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnZpZGVvRWxlbWVudElkICYmICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy52aWRlb0VsZW1lbnRJZH1gKSlcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMudmlkZW9FbGVtZW50SWR9YCkpO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgJ2JhY2tncm91bmQtY29sb3InLFxyXG4gICAgICAgIHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5jb2xvclxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnLFxyXG4gICAgICAgIGBgXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0aGlzLnNpbXBvQmFja2dyb3VuZD8uYmFja2dyb3VuZEFuaW1hdGlvbiA9PT0gJ0RBTkNJTkdfRE9UUycpIHtcclxuICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpXHJcbiAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgIGB1cmwoJ2h0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMTE2MDI2YzE3NDcxMjIyOTY0MDhBcnRib2FyZDEuZ2lmJylgXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdTQ0FUVEVSSU5HX0RPVFMnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKVxyXG4gICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgICBgdXJsKCdodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzI4NzM0OGMxNzQ3MDUxNTQwMDg4V2hhdHNBcHBWaWRlbzIwMjUtMDUtMTJhdDUuMTkuMTFQTS1lemdpZi5jb20tdmlkZW8tdG8tZ2lmLWNvbnZlcnRlciAoMSkuZ2lmJylgXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdXQVZFUycpIHtcclxuICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpXHJcbiAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcclxuICAgICAgICAgIGB1cmwoJ2h0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjMwNzUzYzE3NDc0MDMyMTcyMzk2OTEzOTk3X01vdGlvbiUyMEdyYXBoaWNzX01vdGlvbiUyMEdyYXBoaWNfMzg0MHgyMTYwJTIwKDEpJTIwKDIpLmdpZicpYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2ltcG9CYWNrZ3JvdW5kPy5iYWNrZ3JvdW5kQW5pbWF0aW9uID09PSAnQUJTVFJBQ1QnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKVxyXG4gICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXHJcbiAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgICBgdXJsKCdodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzU3NzUwN2MxNzQ3NDY1NjM2OTU2Um90YXRpb24lMjBnaWYuZ2lmJylgXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdEUkVXJykge1xyXG4gICAgICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSlcclxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnLFxyXG4gICAgICAgICAgYHVybCgnaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy83MjEyNDRjMTc0NzQ2NzY5ODAwNGFuaW1hdGUuZ2lmJylgXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24gPT09ICdET1RTJykge1xyXG4gICAgICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSlcclxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKSk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnLFxyXG4gICAgICAgICAgYHVybCgnaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82NTkxMzRjMTc0NzQ2NzgwMTI0MkRvdHMlMjAoMSkuZ2lmJylgXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zaW1wb0JhY2tncm91bmQ/LmJhY2tncm91bmRBbmltYXRpb24pIHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtc2l6ZScsICdjb3ZlcicpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1yZXBlYXQnLCAnbm8tcmVwZWF0Jyk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLXBvc2l0aW9uJywgJ2NlbnRlcicpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRleHRDb2xvcihiZ0NvbG9yOiBzdHJpbmcpIHtcclxuICAgIGlmIChiZ0NvbG9yKSB7XHJcbiAgICAgIGNvbnN0IHRocmVzaG9sZCA9IDEzMDsgLy8gQWRqdXN0IHRoaXMgdGhyZXNob2xkIGFzIG5lZWRlZFxyXG4gICAgICBjb25zdCByID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSgxLCAzKSwgMTYpO1xyXG4gICAgICBjb25zdCBnID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSgzLCA1KSwgMTYpO1xyXG4gICAgICBjb25zdCBiID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSg1LCA3KSwgMTYpO1xyXG4gICAgICBjb25zdCBicmlnaHRuZXNzID0gKHIgKiAyOTkgKyBnICogNTg3ICsgYiAqIDExNCkgLyAxMDAwO1xyXG5cclxuICAgICAgcmV0dXJuIGJyaWdodG5lc3MgPiB0aHJlc2hvbGQgPyAnIzAwMDAwMCcgOiAnI2ZmZmZmZic7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCIjZmZmZmZmO1wiXHJcbiAgfVxyXG59XHJcbiJdfQ==