simpo-component-library 3.6.929 → 3.6.931

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 (134) hide show
  1. package/esm2022/lib/directive/button-editor.directive.mjs +1 -1
  2. package/esm2022/lib/directive/image-directive.directive.mjs +1 -1
  3. package/esm2022/lib/directive/image-editor.directive.mjs +1 -1
  4. package/esm2022/lib/directive/image-position.directive.mjs +1 -1
  5. package/esm2022/lib/directive/merge-header.directive.mjs +1 -1
  6. package/esm2022/lib/directive/spacing-around.directive.mjs +1 -1
  7. package/esm2022/lib/directive/video-directive.directive.mjs +1 -1
  8. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +3 -3
  9. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +17 -13
  10. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +22 -14
  11. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
  12. package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.component.mjs +3 -3
  13. package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.model.mjs +1 -1
  14. package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
  15. package/esm2022/lib/ecommerce/sections/categories-with-image-background-columns/categories-with-image-background-columns.component.mjs +3 -3
  16. package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +3 -3
  17. package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
  18. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +1 -1
  19. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
  20. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +1 -1
  21. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +2 -2
  22. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
  23. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +10 -7
  24. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
  25. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +16 -15
  26. package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.component.mjs +3 -3
  27. package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.modal.mjs +1 -1
  28. package/esm2022/lib/ecommerce/sections/scheme-details/scheme-details.component.mjs +1 -1
  29. package/esm2022/lib/ecommerce/sections/schemes/schemes.component.mjs +3 -3
  30. package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +3 -3
  31. package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
  32. package/esm2022/lib/elements/add-section/add-section.component.mjs +3 -3
  33. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +1 -1
  34. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +1 -1
  35. package/esm2022/lib/elements/editor-service.service.mjs +1 -1
  36. package/esm2022/lib/elements/link-editor/link-editor.component.mjs +3 -3
  37. package/esm2022/lib/elements/media-selector/media-selector.component.mjs +3 -3
  38. package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +3 -3
  39. package/esm2022/lib/elements/schedule-video-call/schedule-video-call.component.mjs +3 -3
  40. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +9 -9
  41. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +1 -1
  42. package/esm2022/lib/pipes/gender.pipe.mjs +1 -1
  43. package/esm2022/lib/sections/BaseSection.mjs +1 -1
  44. package/esm2022/lib/sections/appointment-form/appointment-booking/appointment-booking/appointment-booking.component.mjs +3 -3
  45. package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +3 -3
  46. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
  47. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -3
  48. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +3 -3
  49. package/esm2022/lib/sections/brand-story-section/brand-story-section.component.mjs +3 -3
  50. package/esm2022/lib/sections/brand-story-section/brand-story-section.modal.mjs +1 -1
  51. package/esm2022/lib/sections/button-grid-section/button-grid-section.component.mjs +3 -3
  52. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -3
  53. package/esm2022/lib/sections/condensed-and-gradient/condensed-and-gradient.component.mjs +3 -3
  54. package/esm2022/lib/sections/countdown-banner/countdown-banner.component.model.mjs +1 -1
  55. package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.component.mjs +3 -3
  56. package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.modal.mjs +1 -1
  57. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
  58. package/esm2022/lib/sections/feature-experience-section/feature-experience-section.component.mjs +3 -3
  59. package/esm2022/lib/sections/feature-experience-section/feature-experience-section.modal.mjs +1 -1
  60. package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -3
  61. package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
  62. package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.component.mjs +3 -3
  63. package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.modal.mjs +1 -1
  64. package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
  65. package/esm2022/lib/sections/image-background/image-background/image-background.component.mjs +3 -3
  66. package/esm2022/lib/sections/image-background/image-background/image-background.component.model.mjs +1 -1
  67. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -3
  68. package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.component.mjs +3 -3
  69. package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.model.mjs +1 -1
  70. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -3
  71. package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
  72. package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -3
  73. package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -3
  74. package/esm2022/lib/sections/new-services/new-services.component.mjs +3 -3
  75. package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +3 -3
  76. package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +3 -3
  77. package/esm2022/lib/sections/overlapping-image/overlapping-image.component.mjs +3 -3
  78. package/esm2022/lib/sections/overlapping-image/overlapping-image.component.modal.mjs +1 -1
  79. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
  80. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +3 -3
  81. package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
  82. package/esm2022/lib/sections/product-info-section/product-info-section.component.mjs +3 -3
  83. package/esm2022/lib/sections/product-info-section/product-info-section.component.modal.mjs +1 -1
  84. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +3 -3
  85. package/esm2022/lib/sections/scheme-detail/scheme-detail.component.mjs +3 -3
  86. package/esm2022/lib/sections/service-section/service-section.component.mjs +3 -3
  87. package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
  88. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -3
  89. package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
  90. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -3
  91. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.component.mjs +3 -3
  92. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.model.mjs +1 -1
  93. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +3 -3
  94. package/esm2022/lib/sections/testimonial-slider/testimonial-slider.component.mjs +3 -3
  95. package/esm2022/lib/sections/testimonial-slider/testimonial-slider.model.mjs +1 -1
  96. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +3 -3
  97. package/esm2022/lib/sections/video-carousel-section/video-carousel-section.component.mjs +3 -3
  98. package/esm2022/lib/sections/video-carousel-section/video-carousel.model.mjs +1 -1
  99. package/esm2022/lib/sections/video-grid-section/video-grid-section.component.mjs +2 -2
  100. package/esm2022/lib/sections/video-grid-section/video-grid-section.model.mjs +1 -1
  101. package/esm2022/lib/sections/video-showcase/video-showcase.component.mjs +4 -4
  102. package/esm2022/lib/sections/view-blog/view-blog.component.mjs +3 -3
  103. package/esm2022/lib/services/analytics.service.mjs +54 -6
  104. package/esm2022/lib/services/cart.service.mjs +28 -35
  105. package/esm2022/lib/services/sanitizeHtml.mjs +1 -1
  106. package/esm2022/lib/services/storage.service.mjs +15 -1
  107. package/esm2022/lib/styles/gradient-extension.mjs +1 -1
  108. package/esm2022/lib/styles/style.model.mjs +1 -1
  109. package/esm2022/lib/styles/text-size.extension.mjs +1 -1
  110. package/esm2022/lib/styles/types.mjs +1 -1
  111. package/esm2022/public-api.mjs +1 -1
  112. package/fesm2022/simpo-component-library.mjs +432 -362
  113. package/fesm2022/simpo-component-library.mjs.map +1 -1
  114. package/lib/components/input-fields/input-fields.component.d.ts +1 -1
  115. package/lib/ecommerce/sections/authenticate-user/authenticate-user.component.d.ts +4 -2
  116. package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +5 -3
  117. package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
  118. package/lib/ecommerce/sections/product-list/product-list.component.d.ts +3 -1
  119. package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
  120. package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
  121. package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
  122. package/lib/sections/contact-us/contact-us.component.d.ts +1 -1
  123. package/lib/sections/faq-columns-cards/faq-columns-cards.component.d.ts +1 -1
  124. package/lib/sections/faq-section/faq-section.component.d.ts +1 -1
  125. package/lib/sections/image-section/image-section.component.d.ts +2 -2
  126. package/lib/sections/logo-showcase/logo-showcase.component.d.ts +2 -2
  127. package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
  128. package/lib/sections/pricing-section/pricing-section.component.d.ts +2 -2
  129. package/lib/services/analytics.service.d.ts +13 -0
  130. package/lib/services/cart.service.d.ts +5 -7
  131. package/lib/services/storage.service.d.ts +6 -0
  132. package/package.json +1 -1
  133. package/simpo-component-library-3.6.931.tgz +0 -0
  134. package/simpo-component-library-3.6.929.tgz +0 -0
@@ -154,7 +154,7 @@ export class VideoGridSectionComponent extends BaseSection {
154
154
  else {
155
155
  product.whislist = false;
156
156
  this.messageService.add({ severity: 'info', summary: 'Wishlist', detail: 'Item removed from your wishlist' });
157
- this.cartService.removeItemFromFavourite(product.varientId);
157
+ this.cartService.removeItemFromFavourite(product.varientId, product.itemId);
158
158
  }
159
159
  if (product.whislist) {
160
160
  this.USER_WISHLIST?.push(new OrderedItems(product, product.varientId));
@@ -246,4 +246,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
246
246
  type: HostListener,
247
247
  args: ["window: resize", ["$event"]]
248
248
  }] } });
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tZ3JpZC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlkZW8tZ3JpZC1zZWN0aW9uL3ZpZGVvLWdyaWQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLWdyaWQtc2VjdGlvbi92aWRlby1ncmlkLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0Ms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QkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xuaW1wb3J0IHsgVmlkZW9HcmlkQ29udGVudE1vZGFsLCBWaWRlb0dyaWRTZWN0aW9uTW9kZWwsIFZpZGVvR3JpZFN0eWxlc01vZGVsIH0gZnJvbSAnLi92aWRlby1ncmlkLXNlY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IHsgT3JkZXJlZEl0ZW1zIH0gZnJvbSAnLi4vLi4vZWNvbW1lcmNlL3N0eWxlcy9PcmRlcmVkSXRlbXMubW9kYWwnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2ltcG9FbGVtZW50c01vZHVsZSB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL2luZGV4JztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JvcmRlci1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbHVtbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGVudFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtdGl0bGUtc3BhY2luZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU1BBQ0lORyB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVmlkZW9EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvdmlkZW8tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBJdGVtVmFyaWFudCwgUHJvZHVjdCB9IGZyb20gJ3Byb2plY3RzL3NpbXBvLXVpL3NyYy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IFZpZGVvU2hvd2Nhc2VDb21wb25lbnQgfSBmcm9tICcuLi92aWRlby1zaG93Y2FzZS92aWRlby1zaG93Y2FzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi8uLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbWFnZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1lZGl0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9iamVjdFBvc2l0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLXBvc2l0aW9uLmRpcmVjdGl2ZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW1wby12aWRlby1ncmlkLXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcbiAgICBTaW1wb0VsZW1lbnRzTW9kdWxlLFxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICAvL0RpcmVjdGl2ZXNcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcbiAgICBCb3JkZXJEaXJlY3RpdmUsXG4gICAgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxuICAgIEhvdmVyRGlyZWN0aXZlLFxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXG4gICAgQ29udGVudFRpdGxlRGlyZWN0aXZlLFxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxuICAgIFZpZGVvRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIE1hdEljb24sXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgT2JqZWN0UG9zaXRpb25EaXJlY3RpdmUsXG4gICAgSW1hZ2VFZGl0b3JEaXJlY3RpdmVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlkZW8tZ3JpZC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3ZpZGVvLWdyaWQtc2VjdGlvbi5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBWaWRlb0dyaWRTZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIG1hdERpYWxvZzogTWF0RGlhbG9nXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgQFZpZXdDaGlsZCgndmlkZW9ncmlkJywgeyBzdGF0aWM6IGZhbHNlIH0pIHZpZGVvZ3JpZCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBASW5wdXQoKSBkYXRhPzogVmlkZW9HcmlkU2VjdGlvbk1vZGVsO1xuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50Q29sb3I/OiBCYWNrZ3JvdW5kTW9kZWw7XG4gIGNvbnRlbnQ/OiBWaWRlb0dyaWRDb250ZW50TW9kYWw7XG4gIHN0eWxlPzogVmlkZW9HcmlkU3R5bGVzTW9kZWw7XG4gIHByaXZhdGUgVVNFUl9XSVNITElTVDogT3JkZXJlZEl0ZW1zW10gPSBbXTtcbiAgcHJpdmF0ZSBVU0VSX0NBUlQ6IE9yZGVyZWRJdGVtc1tdID0gW107XG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpO1xuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcbiAgICB0aGlzLnN0eWxlID0gdGhpcy5kYXRhPy5zdHlsZXM7XG4gICAgdGhpcy5kZWxldGVTZWxlY3RlZCA9IHRoaXMuZGVsZXRlO1xuICB9XG4gIHNjcmVlbldpZHRoOiBhbnk7XG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6IHJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXG4gIGdldFNjcmVlblNpemUoKSB7XG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICB9XG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZT8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XG4gIH1cbiAgZ2V0IGhlYWRpbmdTcGFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHlsZT8ubGF5b3V0Py5oZWFkaW5nU3BhY2luZyBhcyBTUEFDSU5HO1xuICB9XG4gIGlzT3ZlcmZsb3dpbmcgPSBmYWxzZTsgYXRTdGFydCA9IHRydWU7IGF0RW5kID0gZmFsc2U7XG4gIHByaXZhdGUgZ2V0IHNjcm9sbFN0ZXAoKSB7IHJldHVybiBNYXRoLnJvdW5kKCh0aGlzLnZpZGVvZ3JpZD8ubmF0aXZlRWxlbWVudD8uY2xpZW50V2lkdGggfHwgMzAwKSAqIDAuOCk7IH1cbiAgcHJpdmF0ZSB1cGRhdGVFZGdlcygpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMudmlkZW9ncmlkPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICB0aGlzLmF0U3RhcnQgPSBlbC5zY3JvbGxMZWZ0IDw9IDU7XG4gICAgdGhpcy5hdEVuZCA9IGVsLnNjcm9sbExlZnQgKyBlbC5jbGllbnRXaWR0aCA+PSBlbC5zY3JvbGxXaWR0aCAtIDU7XG4gIH1cbiAgc2Nyb2xsTGVmdCgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMudmlkZW9ncmlkPy5uYXRpdmVFbGVtZW50OyBpZiAoIWVsKSByZXR1cm47XG4gICAgZWwuc2Nyb2xsQnkoeyBsZWZ0OiAtdGhpcy5zY3JvbGxTdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUVkZ2VzKCksIDMwMCk7XG4gIH1cbiAgZ2V0SnVzdGlmeUNvbnRlbnQoKSB7XG4gICAgY29uc3QgZWwgPSB0aGlzLnZpZGVvZ3JpZD8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWVsKSByZXR1cm4gJyc7XG4gICAgdGhpcy5pc092ZXJmbG93aW5nID0gZWwuc2Nyb2xsV2lkdGggPiBlbC5jbGllbnRXaWR0aDtcbiAgICBpZiAodGhpcy5pc092ZXJmbG93aW5nKSB7XG4gICAgICByZXR1cm4gJ2ZsZXgtc3RhcnQnO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgb25TY3JvbGwoKSB7IHRoaXMudXBkYXRlRWRnZXMoKTsgfVxuXG4gIHNjcm9sbFJpZ2h0KCkge1xuICAgIGNvbnN0IGVsID0gdGhpcy52aWRlb2dyaWQ/Lm5hdGl2ZUVsZW1lbnQ7IGlmICghZWwpIHJldHVybjtcbiAgICBlbC5zY3JvbGxCeSh7IGxlZnQ6IHRoaXMuc2Nyb2xsU3RlcCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVFZGdlcygpLCAzMDApO1xuICB9XG4gIG9uVmlkZW9Ib3Zlcih2aWRlbzogSFRNTFZpZGVvRWxlbWVudCwgdmlkZW9FbGVtZW50PzogYW55KSB7XG4gICAgdmlkZW8uY3VycmVudFRpbWUgPSAwO1xuICAgIHZpZGVvLnBsYXkoKS5jYXRjaCgoKSA9PiB7IH0pO1xuICAgIHZpZGVvRWxlbWVudC5pc1ZpZGVvUGxheWluZyA9IHRydWU7XG4gIH1cblxuICBvblZpZGVvTGVhdmUodmlkZW86IEhUTUxWaWRlb0VsZW1lbnQsIHZpZGVvRWxlbWVudD86IGFueSkge1xuICAgIHZpZGVvLnBhdXNlKCk7XG4gICAgdmlkZW8uY3VycmVudFRpbWUgPSAwO1xuICAgIHZpZGVvRWxlbWVudC5pc1ZpZGVvUGxheWluZyA9IGZhbHNlO1xuICB9XG4gIG9wZW5GdWxsVmlkZW8odmlkZW86IGFueSkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMubWF0RGlhbG9nLm9wZW4oVmlkZW9TaG93Y2FzZUNvbXBvbmVudCwge1xuICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgICAgd2lkdGg6ICcxMDB2dycsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHZpZGVvczogdGhpcy5jb250ZW50Py5saXN0SXRlbS5kYXRhLFxuICAgICAgICBpbml0aWF0ZVZpZGVvSWQ6IHZpZGVvLmlkXG4gICAgICB9LFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy10cmFuc3BhcmVudCdcbiAgICB9KTtcblxuICB9XG4gIG9wZW5GdWxsc2NyZWVuKHZpZGVvOiBIVE1MVmlkZW9FbGVtZW50KSB7XG4gICAgaWYgKHRoaXMuc3R5bGU/LmhvdmVyUGxheSkge1xuICAgICAgaWYgKHZpZGVvLnJlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIHZpZGVvLnJlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgICB9IGVsc2UgaWYgKCh2aWRlbyBhcyBhbnkpLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIC8vIFNhZmFyaVxuICAgICAgICAodmlkZW8gYXMgYW55KS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbigpO1xuICAgICAgfSBlbHNlIGlmICgodmlkZW8gYXMgYW55KS5tc1JlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIC8vIElFMTFcbiAgICAgICAgKHZpZGVvIGFzIGFueSkubXNSZXF1ZXN0RnVsbHNjcmVlbigpO1xuICAgICAgfVxuXG4gICAgICAvLyBPcHRpb25hbDogcGxheSB3aGVuIGZ1bGxzY3JlZW4gb3BlbnNcbiAgICAgIHZpZGVvLnBsYXkoKS5jYXRjaCgoKSA9PiB7IH0pO1xuICAgIH1cbiAgfVxuICBnZXRJdGVtVmFyaWVudChwcm9kdWN0OiBQcm9kdWN0LCB2YXJpZW50SWQ6IHN0cmluZyk6IEl0ZW1WYXJpYW50IHwgbnVsbCB7XG4gICAgbGV0IHNlbGVjdGVkVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gbnVsbDtcbiAgICBwcm9kdWN0Py5pdGVtVmFyaWFudD8uZm9yRWFjaCgodmFyaWVudDogSXRlbVZhcmlhbnQpID0+IHtcbiAgICAgIGlmICh2YXJpZW50LnZhcmlhbnRJZCA9PT0gdmFyaWVudElkKVxuICAgICAgICBzZWxlY3RlZFZhcmllbnQgPSB2YXJpZW50O1xuICAgIH0pXG4gICAgcmV0dXJuIHNlbGVjdGVkVmFyaWVudDtcbiAgfVxuICB0b2dnbGVJdGVtVG9GYXYoZXZlbnQ6IFBvaW50ZXJFdmVudCB8IE1vdXNlRXZlbnQsIHByb2R1Y3Q6IFByb2R1Y3QsIHR5cGU6ICdBREQnIHwgJ1JFTU9WRScpIHtcbiAgICBpZiAodHlwZSA9PSAnQUREJykge1xuICAgICAgcHJvZHVjdC53aGlzbGlzdCA9IHRydWU7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdXaXNobGlzdCcsIGRldGFpbDogJ0l0ZW0gYWRkZWQgdG8geW91ciB3aXNobGlzdCcgfSk7XG4gICAgICBpZiAocHJvZHVjdD8uaXRlbVZhcmlhbnQ/Lmxlbmd0aCkge1xuICAgICAgICBjb25zdCBpdGVtVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gdGhpcy5nZXRJdGVtVmFyaWVudChwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCk7XG4gICAgICAgIGlmIChpdGVtVmFyaWVudCkge1xuICAgICAgICAgIGl0ZW1WYXJpZW50Lndpc2hsaXN0ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0IGFzIFByb2R1Y3QsIGl0ZW1WYXJpZW50LnZhcmlhbnRJZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvRmF2b3VyaXRlKHByb2R1Y3QpO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHByb2R1Y3Qud2hpc2xpc3QgPSBmYWxzZTtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdpbmZvJywgc3VtbWFyeTogJ1dpc2hsaXN0JywgZGV0YWlsOiAnSXRlbSByZW1vdmVkIGZyb20geW91ciB3aXNobGlzdCcgfSk7XG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLnJlbW92ZUl0ZW1Gcm9tRmF2b3VyaXRlKHByb2R1Y3QudmFyaWVudElkKTtcbiAgICB9XG4gICAgaWYgKHByb2R1Y3Qud2hpc2xpc3QpIHtcbiAgICAgIHRoaXMuVVNFUl9XSVNITElTVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuVVNFUl9XSVNITElTVCA9IHRoaXMuVVNFUl9XSVNITElTVD8uZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IGl0ZW0udmFyaWVudElkICE9IHByb2R1Y3QudmFyaWVudElkKSA/PyBbXTtcbiAgICB9XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbiAgaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0OiBQcm9kdWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHByb2R1Y3QuaXRlbUludmVudG9yeT8ub3BlbmluZ1N0b2NrID09IDA7XG4gIH1cbiAgYWRkSXRlbVRvQ2FydChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnU1VCU1RSQUNUJykge1xuICAgIGlmICh0aGlzLmlzSXRlbU91dE9mU3RvY2socHJvZHVjdCkpIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICd3YXJuJywgc3VtbWFyeTogJ0NhcnQnLCBkZXRhaWw6ICdJdGVtIGlzIG5vdCBhdmFpbGFibGUgYXMgb2Ygbm93LiBXZSB3aWxsIG5vdGlmeSB5b3Ugb25jZSBhdmFpbGFibGUnIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwcm9kdWN0LnF1YW50aXR5ICs9ICh0eXBlID09ICdBREQnID8gMSA6IC0xKTtcbiAgICBpZiAocHJvZHVjdD8uaXRlbVZhcmlhbnQ/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgaXRlbVZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IHRoaXMuZ2V0SXRlbVZhcmllbnQocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpO1xuICAgICAgaWYgKGl0ZW1WYXJpZW50KSB7XG4gICAgICAgIGl0ZW1WYXJpZW50LnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KHByb2R1Y3QsIGl0ZW1WYXJpZW50LnZhcmlhbnRJZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvQ2FydChwcm9kdWN0KTtcbiAgICB9XG4gICAgaWYgKHByb2R1Y3QucXVhbnRpdHkpIHtcbiAgICAgIGxldCBpc1ByZXNlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuVVNFUl9DQVJUPy5mb3JFYWNoKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IHtcbiAgICAgICAgaWYgKGl0ZW0udmFyaWVudElkID09IHByb2R1Y3QudmFyaWVudElkKSB7XG4gICAgICAgICAgaXRlbS5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHk7XG4gICAgICAgICAgaXNQcmVzZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIGlmICghaXNQcmVzZW50KVxuICAgICAgICB0aGlzLlVTRVJfQ0FSVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuVVNFUl9DQVJUID0gdGhpcy5VU0VSX0NBUlQ/LmZpbHRlcigoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiBpdGVtLnZhcmllbnRJZCAhPSBwcm9kdWN0LnZhcmllbnRJZCkgPz8gW107XG4gICAgfVxuICB9XG59XG4iLCI8c2VjdGlvbiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIlxuICAgIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cbiAgICA8ZGl2ICNtYWluQ29udGFpbmVyIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGU/LmJhY2tncm91bmRcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGU/LmJvcmRlclwiIFtzaW1wb0xheW91dF09XCJzdHlsZT8ubGF5b3V0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlPy5hbmltYXRpb25cIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInN0eWxlPy5mdWxsV2lkdGggPyB7J3BhZGRpbmcnOiAnMHB4J30gOiB7fVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6IHNjcmVlbldpZHRoIDwgNDc1fVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gW25nQ2xhc3NdPVwieyd3LTEwMCc6c3R5bGU/LmdyaWRTdHlsZSA9PT0gJ1N0eWxlMid9XCIgLS0+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHQ7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbc2ltcG9Db250ZW50VGl0bGVTcGFjZV09XCJoZWFkaW5nU3BhY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0IHx8ICAodGV4dC52YWx1ZSAmJiB0ZXh0LnZhbHVlLmxlbmd0aCA+IDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRleHQudmFsdWVcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRUZXh0SW5kZXhdPVwiaVwiIFtpc1JURV09XCJ0ZXh0LmlzUlRFXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5ncmlkU3R5bGUgPT0gJ1N0eWxlMSdcIj4gLS0+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNjcm9sbC1idG4gbGVmdCBwLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdHlsZT8uZGlyZWN0aW9uID09PSAnUk9XJyAmJiBpc092ZXJmbG93aW5nXCIgKGNsaWNrKT1cInNjcm9sbExlZnQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhdFN0YXJ0XCI+PG1hdC1pY29uPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4tdmlkZW8tc2VjdGlvblwiPlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTW9iaWxlIFN0b3JpZXMgUGVlayBDYXJvdXNlbCAoPCA0NzVweCkgLS0+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdG9yaWVzLXdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN0b3JpZXMtc2Nyb2xsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29udGVudD8uZGlzcGxheT8uc2hvd0ltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN0b3J5LWNhcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2aWRlbyBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtzcmNdPVwidmlkZW8udmlkZW8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW211dGVkXT1cInRydWVcIiBhdXRvcGxheSBsb29wIHBsYXlzaW5saW5lIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZ1bGxWaWRlbyh2aWRlby52aWRlbylcIj48L3ZpZGVvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm1vYmlsZS1zdG9yeS1wbGF5LWJ0blwiIChjbGljayk9XCJvcGVuRnVsbFZpZGVvKHZpZGVvLnZpZGVvKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzkzNTA2MGMxNzcwMjE0MDcyNzU1cGxheS1zdmdyZXBvLWNvbS5zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdG9yeS10ZXh0LW92ZXJsYXlcIiAqbmdJZj1cInZpZGVvPy52aWRlbz8uZGVzY3JpcHRpb24gJiYgY29udGVudD8uZGlzcGxheT8uc2hvd1RleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmlkZW8udmlkZW8uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgcHJvZHVjdHMtY2FyZHMgdy0xMDAgcC0yIGQtZmxleCBnYXAtMiBvdmVyZmxvdy14LWF1dG8gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZpZGVvPy52aWRlbz8ucHJvZHVjdHM/Lmxlbmd0aCA+IDAgJiYgY29udGVudD8uZGlzcGxheT8uc2hvd1Byb2R1Y3RzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgdmlkZW8udmlkZW8ucHJvZHVjdHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWJhZGdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwicHJvZHVjdC5yZWRpcmVjdGlvblVybFwiIGNsYXNzPVwicHJvZHVjdC1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJwcm9kdWN0Py5pdGVtSW1hZ2VzWzBdLmltZ1VybFwiIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2R1Y3QtaW1nXCIgLz48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWRldGFpbHMgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtdGl0bGVcIj57e3Byb2R1Y3QubmFtZS5sZW5ndGggPiAxNiA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QubmFtZS50cmltKCkuc2xpY2UoMCwxNSkgKyAnLi4uJyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcHJpY2UgZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKCuXt7cHJvZHVjdD8ucHJpY2Uuc2VsbGluZ1ByaWNlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5Py5zaG93SW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtc3RvcnktY2FyZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGltYWdlIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiaW1hZ2UuaW1hZ2UudXJsXCIgW2FsdF09XCJpbWFnZS5pbWFnZS5hbHRUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBEZXNrdG9wIC8gVGFibGV0IExheW91dCAoPj0gNDc1cHgpIC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1pbWFnZS1zZWN0aW9uIHBvc2l0aW9uLXJlbGF0aXZlXCIgW2NsYXNzLmQtbm9uZV09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mucm93XT1cInN0eWxlPy5kaXJlY3Rpb24gPT0gJ1JPVycgJiYgc2NyZWVuV2lkdGggPiA0NzVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLndyYXAtc2Nyb2xsXT1cInN0eWxlPy5kaXJlY3Rpb24gPT0gJ1JPVycgJiYgc2NyZWVuV2lkdGggPiA0NzVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZsZXgtd3JhcF09XCJzdHlsZT8uZGlyZWN0aW9uID09ICdDT0xVTU4nICYmIHNjcmVlbldpZHRoID4gNDc1XCIgW2lkXT1cImRhdGE/LmlkXCIgI3ZpZGVvZ3JpZFxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmp1c3RpZnlDb250ZW50XT1cImdldEp1c3RpZnlDb250ZW50KClcIiAoc2Nyb2xsKT1cIm9uU2Nyb2xsKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29udGVudD8uZGlzcGxheT8uc2hvd0ltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZGVvLXNlY3Rpb24gcC0zIHctYXV0byBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmlkZW8gb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2ltcG9Db2x1bW5EaXJlY3RpdmVdPVwic3R5bGU/LnNpemVcIiBbaWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHlsZV09XCJzdHlsZT8ucmVtb3ZlR2FwcyA/ICdwYWRkaW5nOiAwcHggIWltcG9ydGFudDsgbWFyZ2luOiAwcHggIWltcG9ydGFudDsnIDoge31cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dUZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZpdCBwb3NpdGlvbi1yZWxhdGl2ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmF1dG9QbGF5ICYmICFzdHlsZT8uaG92ZXJQbGF5O2Vsc2Ugbm9ybWFsVmlkZW9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGxvYWRpbmc9XCJsYXp5XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2aWRlb0VsIFtjbGFzc109XCJkYXRhPy5pZCArIHZpZGVvLnZpZGVvLmlkXCIgW3NyY109XCJ2aWRlby52aWRlby51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTEwMCBjdXJzb3ItcG9pbnRlclwiIFttdXRlZF09XCJzdHlsZT8ubXV0ZVZpZGVvc1wiIGF1dG9wbGF5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZ1bGxzY3JlZW4odmlkZW9FbClcIiBsb29wPjwvdmlkZW8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3JtYWxWaWRlbz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGxvYWRpbmc9XCJsYXp5XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2aWRlb0VsIFtjbGFzc109XCJkYXRhPy5pZCArIHZpZGVvLnZpZGVvLmlkXCIgW3NyY109XCJ2aWRlby52aWRlby51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTEwMFwiIFttdXRlZF09XCJzdHlsZT8ubXV0ZVZpZGVvc1wiIFtjb250cm9sc109XCIhc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9Ib3Zlcih2aWRlb0VsLCB2aWRlby52aWRlbylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic3R5bGU/LmhvdmVyUGxheSAmJiBvblZpZGVvTGVhdmUodmlkZW9FbCwgdmlkZW8udmlkZW8pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRnVsbHNjcmVlbih2aWRlb0VsKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdjdXJzb3ItcG9pbnRlcic6IHN0eWxlPy5ob3ZlclBsYXkgfVwiPjwvdmlkZW8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMTcyNjQ4YzE3Njk2NzE2NDcxNTlwbGF5LWZpbGwtc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXZpZGVvPy52aWRlbz8uaXNWaWRlb1BsYXlpbmcgJiYgc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MjBweFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidmlkZW8udmlkZW8uZGVzY3JpcHRpb25cIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCIwXCIgW2l0ZW1JbmRleF09XCJpXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29udGVudD8uZGlzcGxheT8uc2hvd1RleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWRlby13cmFwcGVyIHBvc2l0aW9uLXJlbGF0aXZlXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J3dpZHRoJyA6IHN0eWxlPy5zaXplID09PSAnU21hbGwnID8gJzE4MHB4JyA6IHN0eWxlPy5zaXplID09PSAnTWVkaXVtJyA/ICcyMjBweCcgOiAnMjcwcHgnIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmF1dG9QbGF5ICYmICFzdHlsZT8uaG92ZXJQbGF5O2Vsc2Ugbm9ybWFsVmlkZW9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGxvYWRpbmc9XCJsYXp5XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2aWRlb0VsIFtjbGFzc109XCJkYXRhPy5pZCArIHZpZGVvLnZpZGVvLmlkXCIgW3NyY109XCJ2aWRlby52aWRlby51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTEwMFwiIFttdXRlZF09XCJzdHlsZT8ubXV0ZVZpZGVvc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2ltcG9WaWRlb0RpcmVjdGl2ZV09XCJzdHlsZT8uaW1hZ2VcIiBbY29udHJvbHNdPVwic3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9Ib3Zlcih2aWRlb0VsLCB2aWRlby52aWRlbylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic3R5bGU/LmhvdmVyUGxheSAmJiBvblZpZGVvTGVhdmUodmlkZW9FbCwgdmlkZW8udmlkZW8pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRnVsbFZpZGVvKHZpZGVvLnZpZGVvKVwiIGF1dG9wbGF5IGxvb3A+PC92aWRlbz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbFZpZGVvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gbG9hZGluZz1cImxhenlcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIiBbaWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ZpZGVvRWwgW2NsYXNzXT1cImRhdGE/LmlkICsgdmlkZW8udmlkZW8uaWRcIiBbc3JjXT1cInZpZGVvLnZpZGVvLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImgtMTAwXCIgW211dGVkXT1cInN0eWxlPy5tdXRlVmlkZW9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb1ZpZGVvRGlyZWN0aXZlXT1cInN0eWxlPy5pbWFnZVwiIFtjb250cm9sc109XCIhc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9Ib3Zlcih2aWRlb0VsLCB2aWRlby52aWRlbylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic3R5bGU/LmhvdmVyUGxheSAmJiBvblZpZGVvTGVhdmUodmlkZW9FbCwgdmlkZW8udmlkZW8pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRnVsbFZpZGVvKHZpZGVvLnZpZGVvKVwiPjwvdmlkZW8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgcHJvZHVjdHMtY2FyZHMgdy0xMDAgcC0zIGQtZmxleCBnYXAtMyBvdmVyZmxvdy14LWF1dG8gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZpZGVvPy52aWRlbz8ucHJvZHVjdHM/Lmxlbmd0aCA+IDAgJiYgY29udGVudD8uZGlzcGxheT8uc2hvd1Byb2R1Y3RzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgdmlkZW8udmlkZW8ucHJvZHVjdHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWJhZGdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwicHJvZHVjdC5yZWRpcmVjdGlvblVybFwiIGNsYXNzPVwicHJvZHVjdC1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJwcm9kdWN0Py5pdGVtSW1hZ2VzWzBdLmltZ1VybFwiIGFsdD1cIlJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0LWltZ1wiIC8+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwicHJvZHVjdC5yZWRpcmVjdGlvblVybFwiIGNsYXNzPVwicHJvZHVjdC1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1kZXRhaWxzIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cHJvZHVjdC5uYW1lLmxlbmd0aCA+IDE2ID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5uYW1lLnRyaW0oKS5zbGljZSgwLDE1KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuLi4nIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcHJpY2UgZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKCuXt7cHJvZHVjdD8ucHJpY2Uuc2VsbGluZ1ByaWNlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzAwMDcyYzE3NzAyNzAzOTU0MzJmYXZvdXJpdGUtc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOHB4O1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUl0ZW1Ub0ZhdigkZXZlbnQsIHByb2R1Y3QsICdBREQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcHJvZHVjdC53aGlzbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzMwNDExNmMxNzcwMjc0MTMyOTEwZmF2b3VyaXRlLXN2Z3JlcG8tY29tXygxKS5zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE4cHg7XCIgKm5nSWY9XCJwcm9kdWN0LndoaXNsaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlSXRlbVRvRmF2KCRldmVudCwgcHJvZHVjdCwgJ1JFTU9WRScpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjk1MTQ0YzE3NzAyNzA2Njk1NDZjYXJ0LXNob3BwaW5nLXN2Z3JlcG8tY29tLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxOXB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdBREQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5IDw9IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy83OTUzNDJjMTc3MDI3NTM4MzM0NHNob3BwaW5nLWNhcnQtZmlsbC1zdmdyZXBvLWNvbS5zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MTlweFwiICpuZ0lmPVwicHJvZHVjdC5xdWFudGl0eSA+PSAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdTVUJTVFJBQ1QnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXZpZGVvPy52aWRlbz8uaXNWaWRlb1BsYXlpbmcgJiYgc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiA5cHg7dG9wOiA0NyU7bGVmdDogNDAlO2JhY2tncm91bmQ6IGxpZ2h0Z3JleTtib3JkZXItcmFkaXVzOiA1MCU7YmFja2dyb3VuZDogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjYpO2JhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy85MzUwNjBjMTc3MDIxNDA3Mjc1NXBsYXktc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiXCIgc3R5bGU9XCJ3aWR0aDoyNXB4O21hcmdpbi1sZWZ0OjEuNXB4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5Py5zaG93SW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlkZW8tc2VjdGlvbiBwLTMgdy1hdXRvIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb0NvbHVtbkRpcmVjdGl2ZV09XCJzdHlsZT8uc2l6ZVwiIFtpZF09XCJkYXRhPy5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0eWxlXT1cInN0eWxlPy5yZW1vdmVHYXBzID8gJ3BhZGRpbmc6IDBweCAhaW1wb3J0YW50OyBtYXJnaW46IDBweCAhaW1wb3J0YW50OycgOiB7fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZGVvLXdyYXBwZXIgcG9zaXRpb24tcmVsYXRpdmVcIiBbaWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaC0xMDAnOnNjcmVlbldpZHRoPDQ3NX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnd2lkdGgnIDogc2NyZWVuV2lkdGggPiA0NzUgPyAoc3R5bGU/LnNpemUgPT09ICdTbWFsbCcgPyAnMTgwcHgnIDogc3R5bGU/LnNpemUgPT09ICdNZWRpdW0nID8gJzIyMHB4JyA6ICcyNzBweCcpOiAnMTAwJScgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cImltYWdlLmltYWdlLnVybFwiIFthbHRdPVwiaW1hZ2UuaW1hZ2UuYWx0VGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cImltYWdlLmltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc2ltcG9PYmplY3RQb3NpdGlvbl09XCJpbWFnZT8uaW1hZ2U/LmZpdCAhPT0gJ2NvbnRhaW4nID8gaW1hZ2UuaW1hZ2U/LnBvc2l0aW9uIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIGNsYXNzPVwidy0xMDAgaC0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwSW1hZ2VFZGl0b3JdPVwiZWRpdCB8fCBmYWxzZVwiIFtpbWFnZURhdGFdPVwiaW1hZ2UuaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2l0ZW1JbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbXBvT2JqZWN0UG9zaXRpb25dPVwiaW1hZ2U/LmltYWdlPy5wb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJkYXRhPy5pZCtpbWFnZS5pbWFnZS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNjcm9sbC1idG4gcmlnaHQgcC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3R5bGU/LmRpcmVjdGlvbiA9PT0gJ1JPVycgJiYgaXNPdmVyZmxvd2luZ1wiIChjbGljayk9XCJzY3JvbGxSaWdodCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImF0RW5kXCI+PG1hdC1pY29uPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8IS0tIDwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZ3JpZFN0eWxlID09ICdTdHlsZTInXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWRlby1ncmlkLXNlY3Rpb24gaC0xMDBcIiBbY2xhc3MucmVtb3ZlLWdhcF09XCJzdHlsZT8ucmVtb3ZlR2Fwc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MucC0wXT1cInN0eWxlPy5mdWxsV2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWRlby1zZWN0aW9uXCIgKm5nRm9yPVwibGV0IHZpZGVvIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhXCIgc3R5bGU9XCJtaW4td2lkdGg6MzAwcHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6ICF2aWRlbz8udmlkZW8/LmlzVmlkZW9QbGF5aW5nICYmIHN0eWxlPy5ob3ZlclBsYXl9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGxvYWRpbmc9XCJsYXp5XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCIgI3ZpZGVvRWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImRhdGE/LmlkK3ZpZGVvLnZpZGVvLmlkXCIgW3NpbXBvT2JqZWN0UG9zaXRpb25dPVwidmlkZW8udmlkZW8ucG9zaXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cInZpZGVvLnZpZGVvLnVybFwiIGxvYWRpbmc9XCJsYXp5XCIgY2xhc3M9XCJoLTEwMFwiIFtjb250cm9sc109XCIhc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInN0eWxlPy5ob3ZlclBsYXkgJiYgb25WaWRlb0hvdmVyKHZpZGVvRWwsdmlkZW8udmlkZW8pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW211dGVkXT1cInN0eWxlPy5tdXRlVmlkZW9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic3R5bGU/LmhvdmVyUGxheSAmJiBvblZpZGVvTGVhdmUodmlkZW9FbCx2aWRlby52aWRlbylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZ1bGxzY3JlZW4odmlkZW9FbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2N1cnNvci1wb2ludGVyJyA6IHN0eWxlPy5ob3ZlclBsYXl9XCI+PC92aWRlbz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMTcyNjQ4YzE3Njk2NzE2NDcxNTlwbGF5LWZpbGwtc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZVwiICpuZ0lmPVwiIXZpZGVvPy52aWRlbz8uaXNWaWRlb1BsYXlpbmcgJiYgc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MjAlO2hlaWdodDoyMCU7bWF4LXdpZHRoOjQwcHhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XG4gICAgICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGU/LmRldmlkZXI/LmRldmlkZXJUeXBlXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XG4gICAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj4iXX0=
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tZ3JpZC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlkZW8tZ3JpZC1zZWN0aW9uL3ZpZGVvLWdyaWQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLWdyaWQtc2VjdGlvbi92aWRlby1ncmlkLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0Ms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YTtzQkFEWixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi9CYXNlU2VjdGlvbic7XG5pbXBvcnQgeyBWaWRlb0dyaWRDb250ZW50TW9kYWwsIFZpZGVvR3JpZFNlY3Rpb25Nb2RlbCwgVmlkZW9HcmlkU3R5bGVzTW9kZWwgfSBmcm9tICcuL3ZpZGVvLWdyaWQtc2VjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaW1wb0VsZW1lbnRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvaW5kZXgnO1xuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50VGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC10aXRsZS1zcGFjaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTUEFDSU5HIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1ob3Jpem9udGFsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWaWRlb0RpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS92aWRlby1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEl0ZW1WYXJpYW50LCBQcm9kdWN0IH0gZnJvbSAncHJvamVjdHMvc2ltcG8tdWkvc3JjL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmlkZW9TaG93Y2FzZUNvbXBvbmVudCB9IGZyb20gJy4uL3ZpZGVvLXNob3djYXNlL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEltYWdlRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWVkaXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT2JqZWN0UG9zaXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtcG9zaXRpb24uZGlyZWN0aXZlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLXZpZGVvLWdyaWQtc2VjdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxuICAgIFNpbXBvRWxlbWVudHNNb2R1bGUsXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIC8vRGlyZWN0aXZlc1xuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxuICAgIEJvcmRlckRpcmVjdGl2ZSxcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBDb3JuZXJEaXJlY3RpdmUsXG4gICAgSG92ZXJEaXJlY3RpdmUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBDb250ZW50VGl0bGVEaXJlY3RpdmUsXG4gICAgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUsXG4gICAgVmlkZW9EaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgTWF0SWNvbixcbiAgICBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBPYmplY3RQb3NpdGlvbkRpcmVjdGl2ZSxcbiAgICBJbWFnZUVkaXRvckRpcmVjdGl2ZVxuICBdLFxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi92aWRlby1ncmlkLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdmlkZW8tZ3JpZC1zZWN0aW9uLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIFZpZGVvR3JpZFNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2dcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBAVmlld0NoaWxkKCd2aWRlb2dyaWQnLCB7IHN0YXRpYzogZmFsc2UgfSkgdmlkZW9ncmlkITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBJbnB1dCgpIGRhdGE/OiBWaWRlb0dyaWRTZWN0aW9uTW9kZWw7XG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcbiAgY29udGVudD86IFZpZGVvR3JpZENvbnRlbnRNb2RhbDtcbiAgc3R5bGU/OiBWaWRlb0dyaWRTdHlsZXNNb2RlbDtcbiAgcHJpdmF0ZSBVU0VSX1dJU0hMSVNUOiBPcmRlcmVkSXRlbXNbXSA9IFtdO1xuICBwcml2YXRlIFVTRVJfQ0FSVDogT3JkZXJlZEl0ZW1zW10gPSBbXTtcbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcbiAgICB0aGlzLmRlbGV0ZVNlbGVjdGVkID0gdGhpcy5kZWxldGU7XG4gIH1cbiAgc2NyZWVuV2lkdGg6IGFueTtcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzogcmVzaXplXCIsIFtcIiRldmVudFwiXSlcbiAgZ2V0U2NyZWVuU2l6ZSgpIHtcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gIH1cbiAgZ2V0IHN0eWxlc0xheW91dCgpIHtcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcbiAgfVxuICBnZXQgaGVhZGluZ1NwYWNlKCkge1xuICAgIHJldHVybiB0aGlzLnN0eWxlPy5sYXlvdXQ/LmhlYWRpbmdTcGFjaW5nIGFzIFNQQUNJTkc7XG4gIH1cbiAgaXNPdmVyZmxvd2luZyA9IGZhbHNlOyBhdFN0YXJ0ID0gdHJ1ZTsgYXRFbmQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBnZXQgc2Nyb2xsU3RlcCgpIHsgcmV0dXJuIE1hdGgucm91bmQoKHRoaXMudmlkZW9ncmlkPy5uYXRpdmVFbGVtZW50Py5jbGllbnRXaWR0aCB8fCAzMDApICogMC44KTsgfVxuICBwcml2YXRlIHVwZGF0ZUVkZ2VzKCkge1xuICAgIGNvbnN0IGVsID0gdGhpcy52aWRlb2dyaWQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIHRoaXMuYXRTdGFydCA9IGVsLnNjcm9sbExlZnQgPD0gNTtcbiAgICB0aGlzLmF0RW5kID0gZWwuc2Nyb2xsTGVmdCArIGVsLmNsaWVudFdpZHRoID49IGVsLnNjcm9sbFdpZHRoIC0gNTtcbiAgfVxuICBzY3JvbGxMZWZ0KCkge1xuICAgIGNvbnN0IGVsID0gdGhpcy52aWRlb2dyaWQ/Lm5hdGl2ZUVsZW1lbnQ7IGlmICghZWwpIHJldHVybjtcbiAgICBlbC5zY3JvbGxCeSh7IGxlZnQ6IC10aGlzLnNjcm9sbFN0ZXAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlRWRnZXMoKSwgMzAwKTtcbiAgfVxuICBnZXRKdXN0aWZ5Q29udGVudCgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMudmlkZW9ncmlkPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghZWwpIHJldHVybiAnJztcbiAgICB0aGlzLmlzT3ZlcmZsb3dpbmcgPSBlbC5zY3JvbGxXaWR0aCA+IGVsLmNsaWVudFdpZHRoO1xuICAgIGlmICh0aGlzLmlzT3ZlcmZsb3dpbmcpIHtcbiAgICAgIHJldHVybiAnZmxleC1zdGFydCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuICBvblNjcm9sbCgpIHsgdGhpcy51cGRhdGVFZGdlcygpOyB9XG5cbiAgc2Nyb2xsUmlnaHQoKSB7XG4gICAgY29uc3QgZWwgPSB0aGlzLnZpZGVvZ3JpZD8ubmF0aXZlRWxlbWVudDsgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGVsLnNjcm9sbEJ5KHsgbGVmdDogdGhpcy5zY3JvbGxTdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUVkZ2VzKCksIDMwMCk7XG4gIH1cbiAgb25WaWRlb0hvdmVyKHZpZGVvOiBIVE1MVmlkZW9FbGVtZW50LCB2aWRlb0VsZW1lbnQ/OiBhbnkpIHtcbiAgICB2aWRlby5jdXJyZW50VGltZSA9IDA7XG4gICAgdmlkZW8ucGxheSgpLmNhdGNoKCgpID0+IHsgfSk7XG4gICAgdmlkZW9FbGVtZW50LmlzVmlkZW9QbGF5aW5nID0gdHJ1ZTtcbiAgfVxuXG4gIG9uVmlkZW9MZWF2ZSh2aWRlbzogSFRNTFZpZGVvRWxlbWVudCwgdmlkZW9FbGVtZW50PzogYW55KSB7XG4gICAgdmlkZW8ucGF1c2UoKTtcbiAgICB2aWRlby5jdXJyZW50VGltZSA9IDA7XG4gICAgdmlkZW9FbGVtZW50LmlzVmlkZW9QbGF5aW5nID0gZmFsc2U7XG4gIH1cbiAgb3BlbkZ1bGxWaWRlbyh2aWRlbzogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5tYXREaWFsb2cub3BlbihWaWRlb1Nob3djYXNlQ29tcG9uZW50LCB7XG4gICAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgICB3aWR0aDogJzEwMHZ3JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdmlkZW9zOiB0aGlzLmNvbnRlbnQ/Lmxpc3RJdGVtLmRhdGEsXG4gICAgICAgIGluaXRpYXRlVmlkZW9JZDogdmlkZW8uaWRcbiAgICAgIH0sXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXRyYW5zcGFyZW50J1xuICAgIH0pO1xuXG4gIH1cbiAgb3BlbkZ1bGxzY3JlZW4odmlkZW86IEhUTUxWaWRlb0VsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5zdHlsZT8uaG92ZXJQbGF5KSB7XG4gICAgICBpZiAodmlkZW8ucmVxdWVzdEZ1bGxzY3JlZW4pIHtcbiAgICAgICAgdmlkZW8ucmVxdWVzdEZ1bGxzY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoKHZpZGVvIGFzIGFueSkud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4pIHtcbiAgICAgICAgLy8gU2FmYXJpXG4gICAgICAgICh2aWRlbyBhcyBhbnkpLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgICB9IGVsc2UgaWYgKCh2aWRlbyBhcyBhbnkpLm1zUmVxdWVzdEZ1bGxzY3JlZW4pIHtcbiAgICAgICAgLy8gSUUxMVxuICAgICAgICAodmlkZW8gYXMgYW55KS5tc1JlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9wdGlvbmFsOiBwbGF5IHdoZW4gZnVsbHNjcmVlbiBvcGVuc1xuICAgICAgdmlkZW8ucGxheSgpLmNhdGNoKCgpID0+IHsgfSk7XG4gICAgfVxuICB9XG4gIGdldEl0ZW1WYXJpZW50KHByb2R1Y3Q6IFByb2R1Y3QsIHZhcmllbnRJZDogc3RyaW5nKTogSXRlbVZhcmlhbnQgfCBudWxsIHtcbiAgICBsZXQgc2VsZWN0ZWRWYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSBudWxsO1xuICAgIHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5mb3JFYWNoKCh2YXJpZW50OiBJdGVtVmFyaWFudCkgPT4ge1xuICAgICAgaWYgKHZhcmllbnQudmFyaWFudElkID09PSB2YXJpZW50SWQpXG4gICAgICAgIHNlbGVjdGVkVmFyaWVudCA9IHZhcmllbnQ7XG4gICAgfSlcbiAgICByZXR1cm4gc2VsZWN0ZWRWYXJpZW50O1xuICB9XG4gIHRvZ2dsZUl0ZW1Ub0ZhdihldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnUkVNT1ZFJykge1xuICAgIGlmICh0eXBlID09ICdBREQnKSB7XG4gICAgICBwcm9kdWN0LndoaXNsaXN0ID0gdHJ1ZTtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ1dpc2hsaXN0JywgZGV0YWlsOiAnSXRlbSBhZGRlZCB0byB5b3VyIHdpc2hsaXN0JyB9KTtcbiAgICAgIGlmIChwcm9kdWN0Py5pdGVtVmFyaWFudD8ubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1WYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSB0aGlzLmdldEl0ZW1WYXJpZW50KHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKTtcbiAgICAgICAgaWYgKGl0ZW1WYXJpZW50KSB7XG4gICAgICAgICAgaXRlbVZhcmllbnQud2lzaGxpc3QgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvRmF2b3VyaXRlKHByb2R1Y3QgYXMgUHJvZHVjdCwgaXRlbVZhcmllbnQudmFyaWFudElkKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9GYXZvdXJpdGUocHJvZHVjdCk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcHJvZHVjdC53aGlzbGlzdCA9IGZhbHNlO1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnV2lzaGxpc3QnLCBkZXRhaWw6ICdJdGVtIHJlbW92ZWQgZnJvbSB5b3VyIHdpc2hsaXN0JyB9KTtcbiAgICAgIHRoaXMuY2FydFNlcnZpY2UucmVtb3ZlSXRlbUZyb21GYXZvdXJpdGUocHJvZHVjdC52YXJpZW50SWQsIHByb2R1Y3QuaXRlbUlkKTtcbiAgICB9XG4gICAgaWYgKHByb2R1Y3Qud2hpc2xpc3QpIHtcbiAgICAgIHRoaXMuVVNFUl9XSVNITElTVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuVVNFUl9XSVNITElTVCA9IHRoaXMuVVNFUl9XSVNITElTVD8uZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IGl0ZW0udmFyaWVudElkICE9IHByb2R1Y3QudmFyaWVudElkKSA/PyBbXTtcbiAgICB9XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbiAgaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0OiBQcm9kdWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHByb2R1Y3QuaXRlbUludmVudG9yeT8ub3BlbmluZ1N0b2NrID09IDA7XG4gIH1cbiAgYWRkSXRlbVRvQ2FydChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnU1VCU1RSQUNUJykge1xuICAgIGlmICh0aGlzLmlzSXRlbU91dE9mU3RvY2socHJvZHVjdCkpIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICd3YXJuJywgc3VtbWFyeTogJ0NhcnQnLCBkZXRhaWw6ICdJdGVtIGlzIG5vdCBhdmFpbGFibGUgYXMgb2Ygbm93LiBXZSB3aWxsIG5vdGlmeSB5b3Ugb25jZSBhdmFpbGFibGUnIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwcm9kdWN0LnF1YW50aXR5ICs9ICh0eXBlID09ICdBREQnID8gMSA6IC0xKTtcbiAgICBpZiAocHJvZHVjdD8uaXRlbVZhcmlhbnQ/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgaXRlbVZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IHRoaXMuZ2V0SXRlbVZhcmllbnQocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpO1xuICAgICAgaWYgKGl0ZW1WYXJpZW50KSB7XG4gICAgICAgIGl0ZW1WYXJpZW50LnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KHByb2R1Y3QsIGl0ZW1WYXJpZW50LnZhcmlhbnRJZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvQ2FydChwcm9kdWN0KTtcbiAgICB9XG4gICAgaWYgKHByb2R1Y3QucXVhbnRpdHkpIHtcbiAgICAgIGxldCBpc1ByZXNlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuVVNFUl9DQVJUPy5mb3JFYWNoKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IHtcbiAgICAgICAgaWYgKGl0ZW0udmFyaWVudElkID09IHByb2R1Y3QudmFyaWVudElkKSB7XG4gICAgICAgICAgaXRlbS5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHk7XG4gICAgICAgICAgaXNQcmVzZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIGlmICghaXNQcmVzZW50KVxuICAgICAgICB0aGlzLlVTRVJfQ0FSVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuVVNFUl9DQVJUID0gdGhpcy5VU0VSX0NBUlQ/LmZpbHRlcigoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiBpdGVtLnZhcmllbnRJZCAhPSBwcm9kdWN0LnZhcmllbnRJZCkgPz8gW107XG4gICAgfVxuICB9XG59XG4iLCI8c2VjdGlvbiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIlxuICAgIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cbiAgICA8ZGl2ICNtYWluQ29udGFpbmVyIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGU/LmJhY2tncm91bmRcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGU/LmJvcmRlclwiIFtzaW1wb0xheW91dF09XCJzdHlsZT8ubGF5b3V0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlPy5hbmltYXRpb25cIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInN0eWxlPy5mdWxsV2lkdGggPyB7J3BhZGRpbmcnOiAnMHB4J30gOiB7fVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6IHNjcmVlbldpZHRoIDwgNDc1fVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gW25nQ2xhc3NdPVwieyd3LTEwMCc6c3R5bGU/LmdyaWRTdHlsZSA9PT0gJ1N0eWxlMid9XCIgLS0+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHQ7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbc2ltcG9Db250ZW50VGl0bGVTcGFjZV09XCJoZWFkaW5nU3BhY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0IHx8ICAodGV4dC52YWx1ZSAmJiB0ZXh0LnZhbHVlLmxlbmd0aCA+IDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRleHQudmFsdWVcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRUZXh0SW5kZXhdPVwiaVwiIFtpc1JURV09XCJ0ZXh0LmlzUlRFXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5ncmlkU3R5bGUgPT0gJ1N0eWxlMSdcIj4gLS0+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNjcm9sbC1idG4gbGVmdCBwLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdHlsZT8uZGlyZWN0aW9uID09PSAnUk9XJyAmJiBpc092ZXJmbG93aW5nXCIgKGNsaWNrKT1cInNjcm9sbExlZnQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhdFN0YXJ0XCI+PG1hdC1pY29uPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4tdmlkZW8tc2VjdGlvblwiPlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTW9iaWxlIFN0b3JpZXMgUGVlayBDYXJvdXNlbCAoPCA0NzVweCkgLS0+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdG9yaWVzLXdyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN0b3JpZXMtc2Nyb2xsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29udGVudD8uZGlzcGxheT8uc2hvd0ltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN0b3J5LWNhcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2aWRlbyBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtzcmNdPVwidmlkZW8udmlkZW8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW211dGVkXT1cInRydWVcIiBhdXRvcGxheSBsb29wIHBsYXlzaW5saW5lIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZ1bGxWaWRlbyh2aWRlby52aWRlbylcIj48L3ZpZGVvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm1vYmlsZS1zdG9yeS1wbGF5LWJ0blwiIChjbGljayk9XCJvcGVuRnVsbFZpZGVvKHZpZGVvLnZpZGVvKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzkzNTA2MGMxNzcwMjE0MDcyNzU1cGxheS1zdmdyZXBvLWNvbS5zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdG9yeS10ZXh0LW92ZXJsYXlcIiAqbmdJZj1cInZpZGVvPy52aWRlbz8uZGVzY3JpcHRpb24gJiYgY29udGVudD8uZGlzcGxheT8uc2hvd1RleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmlkZW8udmlkZW8uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgcHJvZHVjdHMtY2FyZHMgdy0xMDAgcC0yIGQtZmxleCBnYXAtMiBvdmVyZmxvdy14LWF1dG8gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZpZGVvPy52aWRlbz8ucHJvZHVjdHM/Lmxlbmd0aCA+IDAgJiYgY29udGVudD8uZGlzcGxheT8uc2hvd1Byb2R1Y3RzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgdmlkZW8udmlkZW8ucHJvZHVjdHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWJhZGdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwicHJvZHVjdC5yZWRpcmVjdGlvblVybFwiIGNsYXNzPVwicHJvZHVjdC1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJwcm9kdWN0Py5pdGVtSW1hZ2VzWzBdLmltZ1VybFwiIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2R1Y3QtaW1nXCIgLz48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWRldGFpbHMgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtdGl0bGVcIj57e3Byb2R1Y3QubmFtZS5sZW5ndGggPiAxNiA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QubmFtZS50cmltKCkuc2xpY2UoMCwxNSkgKyAnLi4uJyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcHJpY2UgZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKCuXt7cHJvZHVjdD8ucHJpY2Uuc2VsbGluZ1ByaWNlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5Py5zaG93SW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtc3RvcnktY2FyZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGltYWdlIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiaW1hZ2UuaW1hZ2UudXJsXCIgW2FsdF09XCJpbWFnZS5pbWFnZS5hbHRUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBEZXNrdG9wIC8gVGFibGV0IExheW91dCAoPj0gNDc1cHgpIC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1pbWFnZS1zZWN0aW9uIHBvc2l0aW9uLXJlbGF0aXZlXCIgW2NsYXNzLmQtbm9uZV09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mucm93XT1cInN0eWxlPy5kaXJlY3Rpb24gPT0gJ1JPVycgJiYgc2NyZWVuV2lkdGggPiA0NzVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLndyYXAtc2Nyb2xsXT1cInN0eWxlPy5kaXJlY3Rpb24gPT0gJ1JPVycgJiYgc2NyZWVuV2lkdGggPiA0NzVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZsZXgtd3JhcF09XCJzdHlsZT8uZGlyZWN0aW9uID09ICdDT0xVTU4nICYmIHNjcmVlbldpZHRoID4gNDc1XCIgW2lkXT1cImRhdGE/LmlkXCIgI3ZpZGVvZ3JpZFxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmp1c3RpZnlDb250ZW50XT1cImdldEp1c3RpZnlDb250ZW50KClcIiAoc2Nyb2xsKT1cIm9uU2Nyb2xsKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29udGVudD8uZGlzcGxheT8uc2hvd0ltYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZGVvLXNlY3Rpb24gcC0zIHctYXV0byBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmlkZW8gb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2ltcG9Db2x1bW5EaXJlY3RpdmVdPVwic3R5bGU/LnNpemVcIiBbaWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHlsZV09XCJzdHlsZT8ucmVtb3ZlR2FwcyA/ICdwYWRkaW5nOiAwcHggIWltcG9ydGFudDsgbWFyZ2luOiAwcHggIWltcG9ydGFudDsnIDoge31cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dUZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZpdCBwb3NpdGlvbi1yZWxhdGl2ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmF1dG9QbGF5ICYmICFzdHlsZT8uaG92ZXJQbGF5O2Vsc2Ugbm9ybWFsVmlkZW9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGxvYWRpbmc9XCJsYXp5XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2aWRlb0VsIFtjbGFzc109XCJkYXRhPy5pZCArIHZpZGVvLnZpZGVvLmlkXCIgW3NyY109XCJ2aWRlby52aWRlby51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTEwMCBjdXJzb3ItcG9pbnRlclwiIFttdXRlZF09XCJzdHlsZT8ubXV0ZVZpZGVvc1wiIGF1dG9wbGF5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZ1bGxzY3JlZW4odmlkZW9FbClcIiBsb29wPjwvdmlkZW8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3JtYWxWaWRlbz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGxvYWRpbmc9XCJsYXp5XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2aWRlb0VsIFtjbGFzc109XCJkYXRhPy5pZCArIHZpZGVvLnZpZGVvLmlkXCIgW3NyY109XCJ2aWRlby52aWRlby51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTEwMFwiIFttdXRlZF09XCJzdHlsZT8ubXV0ZVZpZGVvc1wiIFtjb250cm9sc109XCIhc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9Ib3Zlcih2aWRlb0VsLCB2aWRlby52aWRlbylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic3R5bGU/LmhvdmVyUGxheSAmJiBvblZpZGVvTGVhdmUodmlkZW9FbCwgdmlkZW8udmlkZW8pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRnVsbHNjcmVlbih2aWRlb0VsKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdjdXJzb3ItcG9pbnRlcic6IHN0eWxlPy5ob3ZlclBsYXkgfVwiPjwvdmlkZW8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMTcyNjQ4YzE3Njk2NzE2NDcxNTlwbGF5LWZpbGwtc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXZpZGVvPy52aWRlbz8uaXNWaWRlb1BsYXlpbmcgJiYgc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MjBweFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidmlkZW8udmlkZW8uZGVzY3JpcHRpb25cIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCIwXCIgW2l0ZW1JbmRleF09XCJpXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29udGVudD8uZGlzcGxheT8uc2hvd1RleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWRlby13cmFwcGVyIHBvc2l0aW9uLXJlbGF0aXZlXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J3dpZHRoJyA6IHN0eWxlPy5zaXplID09PSAnU21hbGwnID8gJzE4MHB4JyA6IHN0eWxlPy5zaXplID09PSAnTWVkaXVtJyA/ICcyMjBweCcgOiAnMjcwcHgnIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmF1dG9QbGF5ICYmICFzdHlsZT8uaG92ZXJQbGF5O2Vsc2Ugbm9ybWFsVmlkZW9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGxvYWRpbmc9XCJsYXp5XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN2aWRlb0VsIFtjbGFzc109XCJkYXRhPy5pZCArIHZpZGVvLnZpZGVvLmlkXCIgW3NyY109XCJ2aWRlby52aWRlby51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTEwMFwiIFttdXRlZF09XCJzdHlsZT8ubXV0ZVZpZGVvc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2ltcG9WaWRlb0RpcmVjdGl2ZV09XCJzdHlsZT8uaW1hZ2VcIiBbY29udHJvbHNdPVwic3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9Ib3Zlcih2aWRlb0VsLCB2aWRlby52aWRlbylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic3R5bGU/LmhvdmVyUGxheSAmJiBvblZpZGVvTGVhdmUodmlkZW9FbCwgdmlkZW8udmlkZW8pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRnVsbFZpZGVvKHZpZGVvLnZpZGVvKVwiIGF1dG9wbGF5IGxvb3A+PC92aWRlbz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbFZpZGVvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gbG9hZGluZz1cImxhenlcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIiBbaWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ZpZGVvRWwgW2NsYXNzXT1cImRhdGE/LmlkICsgdmlkZW8udmlkZW8uaWRcIiBbc3JjXT1cInZpZGVvLnZpZGVvLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImgtMTAwXCIgW211dGVkXT1cInN0eWxlPy5tdXRlVmlkZW9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb1ZpZGVvRGlyZWN0aXZlXT1cInN0eWxlPy5pbWFnZVwiIFtjb250cm9sc109XCIhc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9Ib3Zlcih2aWRlb0VsLCB2aWRlby52aWRlbylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic3R5bGU/LmhvdmVyUGxheSAmJiBvblZpZGVvTGVhdmUodmlkZW9FbCwgdmlkZW8udmlkZW8pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRnVsbFZpZGVvKHZpZGVvLnZpZGVvKVwiPjwvdmlkZW8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgcHJvZHVjdHMtY2FyZHMgdy0xMDAgcC0zIGQtZmxleCBnYXAtMyBvdmVyZmxvdy14LWF1dG8gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZpZGVvPy52aWRlbz8ucHJvZHVjdHM/Lmxlbmd0aCA+IDAgJiYgY29udGVudD8uZGlzcGxheT8uc2hvd1Byb2R1Y3RzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgdmlkZW8udmlkZW8ucHJvZHVjdHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWJhZGdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwicHJvZHVjdC5yZWRpcmVjdGlvblVybFwiIGNsYXNzPVwicHJvZHVjdC1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJwcm9kdWN0Py5pdGVtSW1hZ2VzWzBdLmltZ1VybFwiIGFsdD1cIlJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0LWltZ1wiIC8+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwicHJvZHVjdC5yZWRpcmVjdGlvblVybFwiIGNsYXNzPVwicHJvZHVjdC1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1kZXRhaWxzIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cHJvZHVjdC5uYW1lLmxlbmd0aCA+IDE2ID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5uYW1lLnRyaW0oKS5zbGljZSgwLDE1KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuLi4nIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcHJpY2UgZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKCuXt7cHJvZHVjdD8ucHJpY2Uuc2VsbGluZ1ByaWNlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzAwMDcyYzE3NzAyNzAzOTU0MzJmYXZvdXJpdGUtc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOHB4O1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUl0ZW1Ub0ZhdigkZXZlbnQsIHByb2R1Y3QsICdBREQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcHJvZHVjdC53aGlzbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzMwNDExNmMxNzcwMjc0MTMyOTEwZmF2b3VyaXRlLXN2Z3JlcG8tY29tXygxKS5zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE4cHg7XCIgKm5nSWY9XCJwcm9kdWN0LndoaXNsaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlSXRlbVRvRmF2KCRldmVudCwgcHJvZHVjdCwgJ1JFTU9WRScpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjk1MTQ0YzE3NzAyNzA2Njk1NDZjYXJ0LXNob3BwaW5nLXN2Z3JlcG8tY29tLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxOXB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdBREQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5IDw9IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy83OTUzNDJjMTc3MDI3NTM4MzM0NHNob3BwaW5nLWNhcnQtZmlsbC1zdmdyZXBvLWNvbS5zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MTlweFwiICpuZ0lmPVwicHJvZHVjdC5xdWFudGl0eSA+PSAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdTVUJTVFJBQ1QnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXZpZGVvPy52aWRlbz8uaXNWaWRlb1BsYXlpbmcgJiYgc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiA5cHg7dG9wOiA0NyU7bGVmdDogNDAlO2JhY2tncm91bmQ6IGxpZ2h0Z3JleTtib3JkZXItcmFkaXVzOiA1MCU7YmFja2dyb3VuZDogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjYpO2JhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy85MzUwNjBjMTc3MDIxNDA3Mjc1NXBsYXktc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiXCIgc3R5bGU9XCJ3aWR0aDoyNXB4O21hcmdpbi1sZWZ0OjEuNXB4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5Py5zaG93SW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlkZW8tc2VjdGlvbiBwLTMgdy1hdXRvIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb0NvbHVtbkRpcmVjdGl2ZV09XCJzdHlsZT8uc2l6ZVwiIFtpZF09XCJkYXRhPy5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0eWxlXT1cInN0eWxlPy5yZW1vdmVHYXBzID8gJ3BhZGRpbmc6IDBweCAhaW1wb3J0YW50OyBtYXJnaW46IDBweCAhaW1wb3J0YW50OycgOiB7fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZGVvLXdyYXBwZXIgcG9zaXRpb24tcmVsYXRpdmVcIiBbaWRdPVwiZGF0YT8uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaC0xMDAnOnNjcmVlbldpZHRoPDQ3NX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnd2lkdGgnIDogc2NyZWVuV2lkdGggPiA0NzUgPyAoc3R5bGU/LnNpemUgPT09ICdTbWFsbCcgPyAnMTgwcHgnIDogc3R5bGU/LnNpemUgPT09ICdNZWRpdW0nID8gJzIyMHB4JyA6ICcyNzBweCcpOiAnMTAwJScgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cImltYWdlLmltYWdlLnVybFwiIFthbHRdPVwiaW1hZ2UuaW1hZ2UuYWx0VGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cImltYWdlLmltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc2ltcG9PYmplY3RQb3NpdGlvbl09XCJpbWFnZT8uaW1hZ2U/LmZpdCAhPT0gJ2NvbnRhaW4nID8gaW1hZ2UuaW1hZ2U/LnBvc2l0aW9uIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIGNsYXNzPVwidy0xMDAgaC0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwSW1hZ2VFZGl0b3JdPVwiZWRpdCB8fCBmYWxzZVwiIFtpbWFnZURhdGFdPVwiaW1hZ2UuaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2l0ZW1JbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbXBvT2JqZWN0UG9zaXRpb25dPVwiaW1hZ2U/LmltYWdlPy5wb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJkYXRhPy5pZCtpbWFnZS5pbWFnZS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNjcm9sbC1idG4gcmlnaHQgcC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3R5bGU/LmRpcmVjdGlvbiA9PT0gJ1JPVycgJiYgaXNPdmVyZmxvd2luZ1wiIChjbGljayk9XCJzY3JvbGxSaWdodCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImF0RW5kXCI+PG1hdC1pY29uPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8IS0tIDwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZ3JpZFN0eWxlID09ICdTdHlsZTInXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWRlby1ncmlkLXNlY3Rpb24gaC0xMDBcIiBbY2xhc3MucmVtb3ZlLWdhcF09XCJzdHlsZT8ucmVtb3ZlR2Fwc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MucC0wXT1cInN0eWxlPy5mdWxsV2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWRlby1zZWN0aW9uXCIgKm5nRm9yPVwibGV0IHZpZGVvIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhXCIgc3R5bGU9XCJtaW4td2lkdGg6MzAwcHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6ICF2aWRlbz8udmlkZW8/LmlzVmlkZW9QbGF5aW5nICYmIHN0eWxlPy5ob3ZlclBsYXl9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGxvYWRpbmc9XCJsYXp5XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCIgI3ZpZGVvRWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImRhdGE/LmlkK3ZpZGVvLnZpZGVvLmlkXCIgW3NpbXBvT2JqZWN0UG9zaXRpb25dPVwidmlkZW8udmlkZW8ucG9zaXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cInZpZGVvLnZpZGVvLnVybFwiIGxvYWRpbmc9XCJsYXp5XCIgY2xhc3M9XCJoLTEwMFwiIFtjb250cm9sc109XCIhc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInN0eWxlPy5ob3ZlclBsYXkgJiYgb25WaWRlb0hvdmVyKHZpZGVvRWwsdmlkZW8udmlkZW8pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW211dGVkXT1cInN0eWxlPy5tdXRlVmlkZW9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic3R5bGU/LmhvdmVyUGxheSAmJiBvblZpZGVvTGVhdmUodmlkZW9FbCx2aWRlby52aWRlbylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZ1bGxzY3JlZW4odmlkZW9FbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2N1cnNvci1wb2ludGVyJyA6IHN0eWxlPy5ob3ZlclBsYXl9XCI+PC92aWRlbz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMTcyNjQ4YzE3Njk2NzE2NDcxNTlwbGF5LWZpbGwtc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZVwiICpuZ0lmPVwiIXZpZGVvPy52aWRlbz8uaXNWaWRlb1BsYXlpbmcgJiYgc3R5bGU/LmhvdmVyUGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MjAlO2hlaWdodDoyMCU7bWF4LXdpZHRoOjQwcHhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XG4gICAgICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGU/LmRldmlkZXI/LmRldmlkZXJUeXBlXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XG4gICAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tZ3JpZC1zZWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy92aWRlby1ncmlkLXNlY3Rpb24vdmlkZW8tZ3JpZC1zZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JuZXJzIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL2luZGV4XCI7XHJcbmltcG9ydCB7IFZpZGVvU3R5bGUsIElucHV0VGV4dE1vZGVsLCBMaXN0SXRlbU1vZGFsLCBTdHlsZXNNb2RlbCwgVmlkZW8sIEltYWdlIH0gZnJvbSBcIi4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBDQVJEX1NJWkUsIEdSSURfU1RZTEUgfSBmcm9tIFwiLi8uLi8uLi9zdHlsZXMvdHlwZXNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlkZW9HcmlkU2VjdGlvbk1vZGVsIHtcclxuICAgIGlkOiBzdHJpbmcsXHJcbiAgICBzZWN0aW9uVHlwZTogc3RyaW5nLFxyXG4gICAgc2VjdGlvbk5hbWU6IHN0cmluZyxcclxuICAgIGNvbnRlbnQ6IFZpZGVvR3JpZENvbnRlbnRNb2RhbDtcclxuICAgIHN0eWxlczogVmlkZW9HcmlkU3R5bGVzTW9kZWw7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBWaWRlb0dyaWRTdHlsZXNNb2RlbCBleHRlbmRzIFN0eWxlc01vZGVsIHtcclxuICAgIGNvcm5lcnM6IENvcm5lcnM7XHJcbiAgICBpbWFnZTogVmlkZW9TdHlsZTtcclxuICAgIHJlbW92ZUdhcHM6IGJvb2xlYW47XHJcbiAgICBmdWxsV2lkdGg6IGJvb2xlYW47XHJcbiAgICBzaXplOiBDQVJEX1NJWkU7XHJcbiAgICBkaXJlY3Rpb246IFwiUk9XXCIgfCBcIkNPTFVNTlwiLFxyXG4gICAgdGV4dFBvc2l0aW9uOiBzdHJpbmcsXHJcbiAgICBob3ZlclBsYXk6IGJvb2xlYW4sXHJcbiAgICBtdXRlVmlkZW9zOiBib29sZWFuLFxyXG4gICAgYXV0b1BsYXk6IGJvb2xlYW5cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZpZGVvR3JpZENvbnRlbnRNb2RhbCB7XHJcbiAgICBpbnB1dFRleHQ6IFtJbnB1dFRleHRNb2RlbF0sXHJcbiAgICBsaXN0SXRlbTogdmlkZW9MaXN0TW9kYWw8VmlkZW9HcmlkSXRlbU1vZGVsPixcclxuICAgIGRpc3BsYXk6IHtcclxuICAgICAgICBzaG93UHJvZHVjdHM6IGJvb2xlYW4sXHJcbiAgICAgICAgc2hvd1RleHQ6IGJvb2xlYW4sXHJcbiAgICAgICAgc2hvd0ltYWdlOiBib29sZWFuXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBWaWRlb0dyaWRJdGVtTW9kZWwge1xyXG4gICAgdmlkZW86IFZpZGVvXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSB2aWRlb0xpc3RNb2RhbDxUPiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgdmlkZW9EYXRhOiBUW107XHJcbiAgICBkYXRhOiBhbnlbXVxyXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tZ3JpZC1zZWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy92aWRlby1ncmlkLXNlY3Rpb24vdmlkZW8tZ3JpZC1zZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JuZXJzIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL2luZGV4XCI7XG5pbXBvcnQgeyBWaWRlb1N0eWxlLCBJbnB1dFRleHRNb2RlbCwgTGlzdEl0ZW1Nb2RhbCwgU3R5bGVzTW9kZWwsIFZpZGVvLCBJbWFnZSB9IGZyb20gXCIuLi8uLi9zdHlsZXMvc3R5bGUubW9kZWxcIjtcbmltcG9ydCB7IENBUkRfU0laRSwgR1JJRF9TVFlMRSB9IGZyb20gXCIuLy4uLy4uL3N0eWxlcy90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZGVvR3JpZFNlY3Rpb25Nb2RlbCB7XG4gICAgaWQ6IHN0cmluZyxcbiAgICBzZWN0aW9uVHlwZTogc3RyaW5nLFxuICAgIHNlY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgY29udGVudDogVmlkZW9HcmlkQ29udGVudE1vZGFsO1xuICAgIHN0eWxlczogVmlkZW9HcmlkU3R5bGVzTW9kZWw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFZpZGVvR3JpZFN0eWxlc01vZGVsIGV4dGVuZHMgU3R5bGVzTW9kZWwge1xuICAgIGNvcm5lcnM6IENvcm5lcnM7XG4gICAgaW1hZ2U6IFZpZGVvU3R5bGU7XG4gICAgcmVtb3ZlR2FwczogYm9vbGVhbjtcbiAgICBmdWxsV2lkdGg6IGJvb2xlYW47XG4gICAgc2l6ZTogQ0FSRF9TSVpFO1xuICAgIGRpcmVjdGlvbjogXCJST1dcIiB8IFwiQ09MVU1OXCIsXG4gICAgdGV4dFBvc2l0aW9uOiBzdHJpbmcsXG4gICAgaG92ZXJQbGF5OiBib29sZWFuLFxuICAgIG11dGVWaWRlb3M6IGJvb2xlYW4sXG4gICAgYXV0b1BsYXk6IGJvb2xlYW5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgVmlkZW9HcmlkQ29udGVudE1vZGFsIHtcbiAgICBpbnB1dFRleHQ6IFtJbnB1dFRleHRNb2RlbF0sXG4gICAgbGlzdEl0ZW06IHZpZGVvTGlzdE1vZGFsPFZpZGVvR3JpZEl0ZW1Nb2RlbD4sXG4gICAgZGlzcGxheToge1xuICAgICAgICBzaG93UHJvZHVjdHM6IGJvb2xlYW4sXG4gICAgICAgIHNob3dUZXh0OiBib29sZWFuLFxuICAgICAgICBzaG93SW1hZ2U6IGJvb2xlYW5cbiAgICB9XG59XG5leHBvcnQgaW50ZXJmYWNlIFZpZGVvR3JpZEl0ZW1Nb2RlbCB7XG4gICAgdmlkZW86IFZpZGVvXG59XG5leHBvcnQgaW50ZXJmYWNlIHZpZGVvTGlzdE1vZGFsPFQ+IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZpZGVvRGF0YTogVFtdO1xuICAgIGRhdGE6IGFueVtdXG59Il19
@@ -79,7 +79,7 @@ export class VideoShowcaseComponent {
79
79
  else {
80
80
  product.whislist = false;
81
81
  this.messageService.add({ severity: 'info', summary: 'Wishlist', detail: 'Item removed from your wishlist' });
82
- this.cartService.removeItemFromFavourite(product.varientId);
82
+ this.cartService.removeItemFromFavourite(product.varientId, product.itemId);
83
83
  }
84
84
  if (product.whislist) {
85
85
  this.USER_WISHLIST?.push(new OrderedItems(product, product.varientId));
@@ -124,11 +124,11 @@ export class VideoShowcaseComponent {
124
124
  }
125
125
  }
126
126
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VideoShowcaseComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.MessageService }, { token: i3.CartService }], target: i0.ɵɵFactoryTarget.Component }); }
127
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VideoShowcaseComponent, isStandalone: true, selector: "simpo-video-showcase", providers: [MessageService], viewQueries: [{ propertyName: "videoPlayer", first: true, predicate: ["videoPlayer"], descendants: true }], ngImport: i0, template: "<section class=\"overlay\"></section>\r\n\r\n<section class=\"main_section d-flex align-items-center justify-content-center\">\r\n <div class=\"videos-container\">\r\n <div class=\"video-card\">\r\n <div class=\"top-bar d-flex align-items-center\">\r\n <span class=\"progress-bar\"></span>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/802576c1770375389274muted-svgrepo-com.svg\"\r\n class=\"mute-unmute\" *ngIf=\"videoMuted\" (click)=\"videoMuted = false\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/711833c1770375515828volume-loud-svgrepo-com.svg\"\r\n class=\"mute-unmute\" *ngIf=\"!videoMuted\" (click)=\"videoMuted=true\">\r\n <span class=\"close\" (click)=\"closeDialog()\">\u2715</span>\r\n </div>\r\n\r\n <!-- Video -->\r\n <video #videoPlayer class=\"video-content\" autoplay loop playsinline [src]=\"videoUrl\" [controls]=\"false\"\r\n [muted]=\"videoMuted\">\r\n </video>\r\n\r\n <!-- Navigation arrows -->\r\n <div class=\"d-flex align-items-center nav-arrows w-100\"\r\n [ngClass]=\"{'justify-content-end' :currentIndex < listItemdata.videos.length - 1 , 'justify-content-between' : currentIndex > 0 }\">\r\n <button class=\"nav left d-flex align-items-center justify-content-center\" *ngIf=\"currentIndex > 0\"><mat-icon\r\n style=\"width:20px !important\" (click)=\"playPreviousVideo()\">keyboard_arrow_left</mat-icon></button>\r\n <button class=\"nav right d-flex align-items-center justify-content-center\" (click)=\"playNextVideo()\"\r\n *ngIf=\"currentIndex < listItemdata.videos.length - 1\"><mat-icon\r\n style=\"width:20px !important\">keyboard_arrow_right</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"products-list-container position-fixed d-flex flex-column gap-4\">\r\n <ng-container *ngFor=\"let product of productsList\">\r\n <div class=\"product-badge cursor-pointer\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <img [src]=\"product.itemImages[0].imgUrl\" alt=\"Ring\" class=\"product-img\" /></a>\r\n <div class=\"product-info justify-content-between\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <div class=\"product-details d-flex flex-column gap-1\">\r\n <div class=\"product-title\">\r\n {{product.name.length > 30 ? product.name.slice(0, 30) + '...' : product.name}}\r\n </div>\r\n <div class=\"product-price d-flex align-items-start\">\r\n \u20B9{{product.price.sellingPrice}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\r\n style=\"width: 18px;\" *ngIf=\"!product.whislist\" (click)=\"toggleItemToFav($event, product, 'ADD')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\r\n style=\"width: 18px;\" *ngIf=\"product.whislist\" (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity <= 0\" (click)=\"addItemToCart($event, product, 'ADD')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</section>", styles: [".overlay{position:fixed;inset:0;background:#00000073;z-index:999}.main_section{position:fixed;inset:0;background:transparent;z-index:1000}.mute-unmute{width:30px;margin-right:10px;cursor:pointer}.videos-container{width:fit-content}.video-card{position:relative;width:360px;height:85vh;border-radius:18px;overflow:hidden;background:transparent}.video-content{width:100%;height:100%;object-fit:cover}.top-bar{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;z-index:2}.progress-bar{flex:1;height:3px;background:#fff6;border-radius:2px;margin-right:10px}.close{font-size:22px;color:#fff;cursor:pointer}.nav-arrows{position:absolute;top:50%;padding:0 1rem}.nav{width:36px!important;height:36px;border-radius:50%;border:none;background:#0006;color:#fff;font-size:22px;cursor:pointer;z-index:2;outline:none}.nav.left{left:10px}.nav.right{right:10px}.products-list-container{right:13%;top:10%;max-height:100%;overflow-y:scroll}.product-card{position:absolute;bottom:14px;left:14px;right:14px;background:#fff;border-radius:14px;padding:10px;display:flex;align-items:center;gap:10px;z-index:2}.product-card img{width:44px;height:44px;border-radius:8px;object-fit:cover}.product-card .info{flex:1}.product-card .title{font-size:14px;font-weight:500;margin:0;color:#222}.product-card .price{font-size:15px;font-weight:600;margin:2px 0 0;color:#000}.product-badge{display:flex;align-items:center;gap:12px;padding:10px;background:#fff9;border-radius:10px;width:322px;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px;width:90%}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}@media screen and (max-width: 475px){.video-card{width:100%}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VideoShowcaseComponent, isStandalone: true, selector: "simpo-video-showcase", providers: [MessageService], viewQueries: [{ propertyName: "videoPlayer", first: true, predicate: ["videoPlayer"], descendants: true }], ngImport: i0, template: "<section class=\"overlay\"></section>\n\n<section class=\"main_section d-flex align-items-center justify-content-center\">\n <div class=\"videos-container\">\n <div class=\"video-card\">\n <div class=\"top-bar d-flex align-items-center\">\n <span class=\"progress-bar\"></span>\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/802576c1770375389274muted-svgrepo-com.svg\"\n class=\"mute-unmute\" *ngIf=\"videoMuted\" (click)=\"videoMuted = false\">\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/711833c1770375515828volume-loud-svgrepo-com.svg\"\n class=\"mute-unmute\" *ngIf=\"!videoMuted\" (click)=\"videoMuted=true\">\n <span class=\"close\" (click)=\"closeDialog()\">\u2715</span>\n </div>\n\n <!-- Video -->\n <video #videoPlayer class=\"video-content\" autoplay loop playsinline [src]=\"videoUrl\" [controls]=\"false\"\n [muted]=\"videoMuted\">\n </video>\n\n <!-- Navigation arrows -->\n <div class=\"d-flex align-items-center nav-arrows w-100\"\n [ngClass]=\"{'justify-content-end' :currentIndex < listItemdata.videos.length - 1 , 'justify-content-between' : currentIndex > 0 }\">\n <button class=\"nav left d-flex align-items-center justify-content-center\" *ngIf=\"currentIndex > 0\"><mat-icon\n style=\"width:20px !important\" (click)=\"playPreviousVideo()\">keyboard_arrow_left</mat-icon></button>\n <button class=\"nav right d-flex align-items-center justify-content-center\" (click)=\"playNextVideo()\"\n *ngIf=\"currentIndex < listItemdata.videos.length - 1\"><mat-icon\n style=\"width:20px !important\">keyboard_arrow_right</mat-icon></button>\n </div>\n </div>\n </div>\n <div class=\"products-list-container position-fixed d-flex flex-column gap-4\">\n <ng-container *ngFor=\"let product of productsList\">\n <div class=\"product-badge cursor-pointer\">\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\n <img [src]=\"product.itemImages[0].imgUrl\" alt=\"Ring\" class=\"product-img\" /></a>\n <div class=\"product-info justify-content-between\">\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\n <div class=\"product-details d-flex flex-column gap-1\">\n <div class=\"product-title\">\n {{product.name.length > 30 ? product.name.slice(0, 30) + '...' : product.name}}\n </div>\n <div class=\"product-price d-flex align-items-start\">\n \u20B9{{product.price.sellingPrice}}\n </div>\n </div>\n </a>\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\n style=\"width: 18px;\" *ngIf=\"!product.whislist\" (click)=\"toggleItemToFav($event, product, 'ADD')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\n style=\"width: 18px;\" *ngIf=\"product.whislist\" (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\n style=\"width:19px\" *ngIf=\"product.quantity <= 0\" (click)=\"addItemToCart($event, product, 'ADD')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</section>", styles: [".overlay{position:fixed;inset:0;background:#00000073;z-index:999}.main_section{position:fixed;inset:0;background:transparent;z-index:1000}.mute-unmute{width:30px;margin-right:10px;cursor:pointer}.videos-container{width:fit-content}.video-card{position:relative;width:360px;height:85vh;border-radius:18px;overflow:hidden;background:transparent}.video-content{width:100%;height:100%;object-fit:cover}.top-bar{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;z-index:2}.progress-bar{flex:1;height:3px;background:#fff6;border-radius:2px;margin-right:10px}.close{font-size:22px;color:#fff;cursor:pointer}.nav-arrows{position:absolute;top:50%;padding:0 1rem}.nav{width:36px!important;height:36px;border-radius:50%;border:none;background:#0006;color:#fff;font-size:22px;cursor:pointer;z-index:2;outline:none}.nav.left{left:10px}.nav.right{right:10px}.products-list-container{right:13%;top:10%;max-height:100%;overflow-y:scroll}.product-card{position:absolute;bottom:14px;left:14px;right:14px;background:#fff;border-radius:14px;padding:10px;display:flex;align-items:center;gap:10px;z-index:2}.product-card img{width:44px;height:44px;border-radius:8px;object-fit:cover}.product-card .info{flex:1}.product-card .title{font-size:14px;font-weight:500;margin:0;color:#222}.product-card .price{font-size:15px;font-weight:600;margin:2px 0 0;color:#000}.product-badge{display:flex;align-items:center;gap:12px;padding:10px;background:#fff9;border-radius:10px;width:322px;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px;width:90%}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}@media screen and (max-width: 475px){.video-card{width:100%}}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
128
128
  }
129
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VideoShowcaseComponent, decorators: [{
130
130
  type: Component,
131
- args: [{ selector: 'simpo-video-showcase', standalone: true, imports: [MatIcon, CommonModule], providers: [MessageService], template: "<section class=\"overlay\"></section>\r\n\r\n<section class=\"main_section d-flex align-items-center justify-content-center\">\r\n <div class=\"videos-container\">\r\n <div class=\"video-card\">\r\n <div class=\"top-bar d-flex align-items-center\">\r\n <span class=\"progress-bar\"></span>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/802576c1770375389274muted-svgrepo-com.svg\"\r\n class=\"mute-unmute\" *ngIf=\"videoMuted\" (click)=\"videoMuted = false\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/711833c1770375515828volume-loud-svgrepo-com.svg\"\r\n class=\"mute-unmute\" *ngIf=\"!videoMuted\" (click)=\"videoMuted=true\">\r\n <span class=\"close\" (click)=\"closeDialog()\">\u2715</span>\r\n </div>\r\n\r\n <!-- Video -->\r\n <video #videoPlayer class=\"video-content\" autoplay loop playsinline [src]=\"videoUrl\" [controls]=\"false\"\r\n [muted]=\"videoMuted\">\r\n </video>\r\n\r\n <!-- Navigation arrows -->\r\n <div class=\"d-flex align-items-center nav-arrows w-100\"\r\n [ngClass]=\"{'justify-content-end' :currentIndex < listItemdata.videos.length - 1 , 'justify-content-between' : currentIndex > 0 }\">\r\n <button class=\"nav left d-flex align-items-center justify-content-center\" *ngIf=\"currentIndex > 0\"><mat-icon\r\n style=\"width:20px !important\" (click)=\"playPreviousVideo()\">keyboard_arrow_left</mat-icon></button>\r\n <button class=\"nav right d-flex align-items-center justify-content-center\" (click)=\"playNextVideo()\"\r\n *ngIf=\"currentIndex < listItemdata.videos.length - 1\"><mat-icon\r\n style=\"width:20px !important\">keyboard_arrow_right</mat-icon></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"products-list-container position-fixed d-flex flex-column gap-4\">\r\n <ng-container *ngFor=\"let product of productsList\">\r\n <div class=\"product-badge cursor-pointer\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <img [src]=\"product.itemImages[0].imgUrl\" alt=\"Ring\" class=\"product-img\" /></a>\r\n <div class=\"product-info justify-content-between\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <div class=\"product-details d-flex flex-column gap-1\">\r\n <div class=\"product-title\">\r\n {{product.name.length > 30 ? product.name.slice(0, 30) + '...' : product.name}}\r\n </div>\r\n <div class=\"product-price d-flex align-items-start\">\r\n \u20B9{{product.price.sellingPrice}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\r\n style=\"width: 18px;\" *ngIf=\"!product.whislist\" (click)=\"toggleItemToFav($event, product, 'ADD')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\r\n style=\"width: 18px;\" *ngIf=\"product.whislist\" (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity <= 0\" (click)=\"addItemToCart($event, product, 'ADD')\">\r\n <img\r\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</section>", styles: [".overlay{position:fixed;inset:0;background:#00000073;z-index:999}.main_section{position:fixed;inset:0;background:transparent;z-index:1000}.mute-unmute{width:30px;margin-right:10px;cursor:pointer}.videos-container{width:fit-content}.video-card{position:relative;width:360px;height:85vh;border-radius:18px;overflow:hidden;background:transparent}.video-content{width:100%;height:100%;object-fit:cover}.top-bar{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;z-index:2}.progress-bar{flex:1;height:3px;background:#fff6;border-radius:2px;margin-right:10px}.close{font-size:22px;color:#fff;cursor:pointer}.nav-arrows{position:absolute;top:50%;padding:0 1rem}.nav{width:36px!important;height:36px;border-radius:50%;border:none;background:#0006;color:#fff;font-size:22px;cursor:pointer;z-index:2;outline:none}.nav.left{left:10px}.nav.right{right:10px}.products-list-container{right:13%;top:10%;max-height:100%;overflow-y:scroll}.product-card{position:absolute;bottom:14px;left:14px;right:14px;background:#fff;border-radius:14px;padding:10px;display:flex;align-items:center;gap:10px;z-index:2}.product-card img{width:44px;height:44px;border-radius:8px;object-fit:cover}.product-card .info{flex:1}.product-card .title{font-size:14px;font-weight:500;margin:0;color:#222}.product-card .price{font-size:15px;font-weight:600;margin:2px 0 0;color:#000}.product-badge{display:flex;align-items:center;gap:12px;padding:10px;background:#fff9;border-radius:10px;width:322px;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px;width:90%}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}@media screen and (max-width: 475px){.video-card{width:100%}}\n"] }]
131
+ args: [{ selector: 'simpo-video-showcase', standalone: true, imports: [MatIcon, CommonModule], providers: [MessageService], template: "<section class=\"overlay\"></section>\n\n<section class=\"main_section d-flex align-items-center justify-content-center\">\n <div class=\"videos-container\">\n <div class=\"video-card\">\n <div class=\"top-bar d-flex align-items-center\">\n <span class=\"progress-bar\"></span>\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/802576c1770375389274muted-svgrepo-com.svg\"\n class=\"mute-unmute\" *ngIf=\"videoMuted\" (click)=\"videoMuted = false\">\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/711833c1770375515828volume-loud-svgrepo-com.svg\"\n class=\"mute-unmute\" *ngIf=\"!videoMuted\" (click)=\"videoMuted=true\">\n <span class=\"close\" (click)=\"closeDialog()\">\u2715</span>\n </div>\n\n <!-- Video -->\n <video #videoPlayer class=\"video-content\" autoplay loop playsinline [src]=\"videoUrl\" [controls]=\"false\"\n [muted]=\"videoMuted\">\n </video>\n\n <!-- Navigation arrows -->\n <div class=\"d-flex align-items-center nav-arrows w-100\"\n [ngClass]=\"{'justify-content-end' :currentIndex < listItemdata.videos.length - 1 , 'justify-content-between' : currentIndex > 0 }\">\n <button class=\"nav left d-flex align-items-center justify-content-center\" *ngIf=\"currentIndex > 0\"><mat-icon\n style=\"width:20px !important\" (click)=\"playPreviousVideo()\">keyboard_arrow_left</mat-icon></button>\n <button class=\"nav right d-flex align-items-center justify-content-center\" (click)=\"playNextVideo()\"\n *ngIf=\"currentIndex < listItemdata.videos.length - 1\"><mat-icon\n style=\"width:20px !important\">keyboard_arrow_right</mat-icon></button>\n </div>\n </div>\n </div>\n <div class=\"products-list-container position-fixed d-flex flex-column gap-4\">\n <ng-container *ngFor=\"let product of productsList\">\n <div class=\"product-badge cursor-pointer\">\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\n <img [src]=\"product.itemImages[0].imgUrl\" alt=\"Ring\" class=\"product-img\" /></a>\n <div class=\"product-info justify-content-between\">\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\n <div class=\"product-details d-flex flex-column gap-1\">\n <div class=\"product-title\">\n {{product.name.length > 30 ? product.name.slice(0, 30) + '...' : product.name}}\n </div>\n <div class=\"product-price d-flex align-items-start\">\n \u20B9{{product.price.sellingPrice}}\n </div>\n </div>\n </a>\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\n style=\"width: 18px;\" *ngIf=\"!product.whislist\" (click)=\"toggleItemToFav($event, product, 'ADD')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\n style=\"width: 18px;\" *ngIf=\"product.whislist\" (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\n style=\"width:19px\" *ngIf=\"product.quantity <= 0\" (click)=\"addItemToCart($event, product, 'ADD')\">\n <img\n src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</section>", styles: [".overlay{position:fixed;inset:0;background:#00000073;z-index:999}.main_section{position:fixed;inset:0;background:transparent;z-index:1000}.mute-unmute{width:30px;margin-right:10px;cursor:pointer}.videos-container{width:fit-content}.video-card{position:relative;width:360px;height:85vh;border-radius:18px;overflow:hidden;background:transparent}.video-content{width:100%;height:100%;object-fit:cover}.top-bar{position:absolute;top:10px;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;z-index:2}.progress-bar{flex:1;height:3px;background:#fff6;border-radius:2px;margin-right:10px}.close{font-size:22px;color:#fff;cursor:pointer}.nav-arrows{position:absolute;top:50%;padding:0 1rem}.nav{width:36px!important;height:36px;border-radius:50%;border:none;background:#0006;color:#fff;font-size:22px;cursor:pointer;z-index:2;outline:none}.nav.left{left:10px}.nav.right{right:10px}.products-list-container{right:13%;top:10%;max-height:100%;overflow-y:scroll}.product-card{position:absolute;bottom:14px;left:14px;right:14px;background:#fff;border-radius:14px;padding:10px;display:flex;align-items:center;gap:10px;z-index:2}.product-card img{width:44px;height:44px;border-radius:8px;object-fit:cover}.product-card .info{flex:1}.product-card .title{font-size:14px;font-weight:500;margin:0;color:#222}.product-card .price{font-size:15px;font-weight:600;margin:2px 0 0;color:#000}.product-badge{display:flex;align-items:center;gap:12px;padding:10px;background:#fff9;border-radius:10px;width:322px;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px;width:90%}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}@media screen and (max-width: 475px){.video-card{width:100%}}\n"] }]
132
132
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
133
133
  type: Inject,
134
134
  args: [MAT_DIALOG_DATA]
@@ -136,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
136
136
  type: ViewChild,
137
137
  args: ['videoPlayer']
138
138
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tc2hvd2Nhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy92aWRlby1zaG93Y2FzZS92aWRlby1zaG93Y2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLXNob3djYXNlL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7OztBQVV6RSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1MsU0FBK0MsRUFDdEIsWUFBaUIsRUFDaEMsY0FBOEIsRUFDOUIsV0FBd0I7UUFIbEMsY0FBUyxHQUFULFNBQVMsQ0FBc0M7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQUs7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBYzNDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUNqQixrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFD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RTtnQkFDN0MsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO29CQUNqQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsU0FBUztnQkFDWixJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdHLENBQUM7SUFDSCxDQUFDOytHQTlHVSxzQkFBc0IsOENBR3ZCLGVBQWU7bUdBSGQsc0JBQXNCLG1FQUp0QixDQUFDLGNBQWMsQ0FBQyxzSUNiN0IsODZIQStEVSwwb0VEbkRFLE9BQU8sMElBQUUsWUFBWTs7NEZBS3BCLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxhQUNyQixDQUFDLGNBQWMsQ0FBQzs7MEJBT3hCLE1BQU07MkJBQUMsZUFBZTtnR0FNQyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEl0ZW1WYXJpYW50LCBQcm9kdWN0IH0gZnJvbSAncHJvamVjdHMvc2ltcG8tdWkvc3JjL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXZpZGVvLXNob3djYXNlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtNYXRJY29uLCBDb21tb25Nb2R1bGVdLFxyXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlkZW8tc2hvd2Nhc2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi92aWRlby1zaG93Y2FzZS5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlkZW9TaG93Y2FzZUNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VmlkZW9TaG93Y2FzZUNvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGxpc3RJdGVtZGF0YTogYW55LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICApIHtcclxuICAgIGNvbnNvbGUubG9nKCdsaXN0SXRlbWRhdGEnLCBsaXN0SXRlbWRhdGEpO1xyXG4gIH1cclxuICBAVmlld0NoaWxkKCd2aWRlb1BsYXllcicpIHZpZGVvUGxheWVyITogRWxlbWVudFJlZjxIVE1MVmlkZW9FbGVtZW50PjtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubGlzdEl0ZW1kYXRhLnZpZGVvcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgaWYgKGl0ZW0udmlkZW8uaWQgPT09IHRoaXMubGlzdEl0ZW1kYXRhLmluaXRpYXRlVmlkZW9JZCkge1xyXG4gICAgICAgIHRoaXMudmlkZW9VcmwgPSBpdGVtLnZpZGVvLnVybDtcclxuICAgICAgICB0aGlzLnByb2R1Y3RzTGlzdCA9IGl0ZW0udmlkZW8ucHJvZHVjdHM7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBpbmRleDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHZpZGVvTXV0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB2aWRlb1VybDogc3RyaW5nID0gJyc7XHJcbiAgY3VycmVudEluZGV4OiBudW1iZXIgPSAwO1xyXG4gIHByb2R1Y3RzTGlzdDogYW55W10gPSBbXTtcclxuICBwcml2YXRlIFVTRVJfV0lTSExJU1Q6IE9yZGVyZWRJdGVtc1tdID0gW107XHJcbiAgcHJpdmF0ZSBVU0VSX0NBUlQ6IE9yZGVyZWRJdGVtc1tdID0gW107XHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuICBwbGF5TmV4dFZpZGVvKCkge1xyXG4gICAgdGhpcy5jdXJyZW50SW5kZXgrKztcclxuICAgIHRoaXMudmlkZW9VcmwgPSB0aGlzLmxpc3RJdGVtZGF0YS52aWRlb3NbdGhpcy5jdXJyZW50SW5kZXhdLnZpZGVvLnVybDtcclxuICAgIHRoaXMucHJvZHVjdHNMaXN0ID0gdGhpcy5saXN0SXRlbWRhdGEudmlkZW9zW3RoaXMuY3VycmVudEluZGV4XS52aWRlby5wcm9kdWN0cztcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnZpZGVvUGxheWVyLm5hdGl2ZUVsZW1lbnQubG9hZCgpO1xyXG4gICAgICB0aGlzLnZpZGVvUGxheWVyLm5hdGl2ZUVsZW1lbnQucGxheSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHBsYXlQcmV2aW91c1ZpZGVvKCkge1xyXG4gICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcclxuICAgIHRoaXMudmlkZW9VcmwgPSB0aGlzLmxpc3RJdGVtZGF0YS52aWRlb3NbdGhpcy5jdXJyZW50SW5kZXhdLnZpZGVvLnVybDtcclxuICAgIHRoaXMucHJvZHVjdHNMaXN0ID0gdGhpcy5saXN0SXRlbWRhdGEudmlkZW9zW3RoaXMuY3VycmVudEluZGV4XS52aWRlby5wcm9kdWN0cztcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnZpZGVvUGxheWVyLm5hdGl2ZUVsZW1lbnQubG9hZCgpO1xyXG4gICAgICB0aGlzLnZpZGVvUGxheWVyLm5hdGl2ZUVsZW1lbnQucGxheSgpO1xyXG4gICAgfSk7XHJcbiAgfSBnZXRJdGVtVmFyaWVudChwcm9kdWN0OiBQcm9kdWN0LCB2YXJpZW50SWQ6IHN0cmluZyk6IEl0ZW1WYXJpYW50IHwgbnVsbCB7XHJcbiAgICBsZXQgc2VsZWN0ZWRWYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJvZHVjdD8uaXRlbVZhcmlhbnQ/LmZvckVhY2goKHZhcmllbnQ6IEl0ZW1WYXJpYW50KSA9PiB7XHJcbiAgICAgIGlmICh2YXJpZW50LnZhcmlhbnRJZCA9PT0gdmFyaWVudElkKVxyXG4gICAgICAgIHNlbGVjdGVkVmFyaWVudCA9IHZhcmllbnQ7XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHNlbGVjdGVkVmFyaWVudDtcclxuICB9XHJcbiAgdG9nZ2xlSXRlbVRvRmF2KGV2ZW50OiBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQUREJyB8ICdSRU1PVkUnKSB7XHJcbiAgICBpZiAodHlwZSA9PSAnQUREJykge1xyXG4gICAgICBwcm9kdWN0LndoaXNsaXN0ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnV2lzaGxpc3QnLCBkZXRhaWw6ICdJdGVtIGFkZGVkIHRvIHlvdXIgd2lzaGxpc3QnIH0pO1xyXG4gICAgICBpZiAocHJvZHVjdD8uaXRlbVZhcmlhbnQ/Lmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1WYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSB0aGlzLmdldEl0ZW1WYXJpZW50KHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKTtcclxuICAgICAgICBpZiAoaXRlbVZhcmllbnQpIHtcclxuICAgICAgICAgIGl0ZW1WYXJpZW50Lndpc2hsaXN0ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvRmF2b3VyaXRlKHByb2R1Y3QgYXMgUHJvZHVjdCwgaXRlbVZhcmllbnQudmFyaWFudElkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9GYXZvdXJpdGUocHJvZHVjdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBwcm9kdWN0LndoaXNsaXN0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdpbmZvJywgc3VtbWFyeTogJ1dpc2hsaXN0JywgZGV0YWlsOiAnSXRlbSByZW1vdmVkIGZyb20geW91ciB3aXNobGlzdCcgfSk7XHJcbiAgICAgIHRoaXMuY2FydFNlcnZpY2UucmVtb3ZlSXRlbUZyb21GYXZvdXJpdGUocHJvZHVjdC52YXJpZW50SWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb2R1Y3Qud2hpc2xpc3QpIHtcclxuICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUPy5wdXNoKG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuVVNFUl9XSVNITElTVCA9IHRoaXMuVVNFUl9XSVNITElTVD8uZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IGl0ZW0udmFyaWVudElkICE9IHByb2R1Y3QudmFyaWVudElkKSA/PyBbXTtcclxuICAgIH1cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBpc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3Q6IFByb2R1Y3QpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBwcm9kdWN0Lml0ZW1JbnZlbnRvcnk/Lm9wZW5pbmdTdG9jayA9PSAwO1xyXG4gIH1cclxuICBhZGRJdGVtVG9DYXJ0KGV2ZW50OiBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQUREJyB8ICdTVUJTVFJBQ1QnKSB7XHJcbiAgICBpZiAodGhpcy5pc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3QpKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICd3YXJuJywgc3VtbWFyeTogJ0NhcnQnLCBkZXRhaWw6ICdJdGVtIGlzIG5vdCBhdmFpbGFibGUgYXMgb2Ygbm93LiBXZSB3aWxsIG5vdGlmeSB5b3Ugb25jZSBhdmFpbGFibGUnIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBwcm9kdWN0LnF1YW50aXR5ICs9ICh0eXBlID09ICdBREQnID8gMSA6IC0xKTtcclxuICAgIGlmIChwcm9kdWN0Py5pdGVtVmFyaWFudD8ubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGl0ZW1WYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSB0aGlzLmdldEl0ZW1WYXJpZW50KHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKTtcclxuICAgICAgaWYgKGl0ZW1WYXJpZW50KSB7XHJcbiAgICAgICAgaXRlbVZhcmllbnQucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xyXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvQ2FydChwcm9kdWN0LCBpdGVtVmFyaWVudC52YXJpYW50SWQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCk7XHJcbiAgICB9XHJcbiAgICBpZiAocHJvZHVjdC5xdWFudGl0eSkge1xyXG4gICAgICBsZXQgaXNQcmVzZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuVVNFUl9DQVJUPy5mb3JFYWNoKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS52YXJpZW50SWQgPT0gcHJvZHVjdC52YXJpZW50SWQpIHtcclxuICAgICAgICAgIGl0ZW0ucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xyXG4gICAgICAgICAgaXNQcmVzZW50ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICghaXNQcmVzZW50KVxyXG4gICAgICAgIHRoaXMuVVNFUl9DQVJUPy5wdXNoKG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuVVNFUl9DQVJUID0gdGhpcy5VU0VSX0NBUlQ/LmZpbHRlcigoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiBpdGVtLnZhcmllbnRJZCAhPSBwcm9kdWN0LnZhcmllbnRJZCkgPz8gW107XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwib3ZlcmxheVwiPjwvc2VjdGlvbj5cclxuXHJcbjxzZWN0aW9uIGNsYXNzPVwibWFpbl9zZWN0aW9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ2aWRlb3MtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidmlkZW8tY2FyZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9wLWJhciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9ncmVzcy1iYXJcIj48L3NwYW4+XHJcbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzgwMjU3NmMxNzcwMzc1Mzg5Mjc0bXV0ZWQtc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgIGNsYXNzPVwibXV0ZS11bm11dGVcIiAqbmdJZj1cInZpZGVvTXV0ZWRcIiAoY2xpY2spPVwidmlkZW9NdXRlZCA9IGZhbHNlXCI+XHJcbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzcxMTgzM2MxNzcwMzc1NTE1ODI4dm9sdW1lLWxvdWQtc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgIGNsYXNzPVwibXV0ZS11bm11dGVcIiAqbmdJZj1cIiF2aWRlb011dGVkXCIgKGNsaWNrKT1cInZpZGVvTXV0ZWQ9dHJ1ZVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPuKclTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIFZpZGVvIC0tPlxyXG4gICAgICA8dmlkZW8gI3ZpZGVvUGxheWVyIGNsYXNzPVwidmlkZW8tY29udGVudFwiIGF1dG9wbGF5IGxvb3AgcGxheXNpbmxpbmUgW3NyY109XCJ2aWRlb1VybFwiIFtjb250cm9sc109XCJmYWxzZVwiXHJcbiAgICAgICAgW211dGVkXT1cInZpZGVvTXV0ZWRcIj5cclxuICAgICAgPC92aWRlbz5cclxuXHJcbiAgICAgIDwhLS0gTmF2aWdhdGlvbiBhcnJvd3MgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG5hdi1hcnJvd3Mgdy0xMDBcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWVuZCcgOmN1cnJlbnRJbmRleCA8IGxpc3RJdGVtZGF0YS52aWRlb3MubGVuZ3RoIC0gMSAsICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiBjdXJyZW50SW5kZXggPiAwIH1cIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2IGxlZnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgKm5nSWY9XCJjdXJyZW50SW5kZXggPiAwXCI+PG1hdC1pY29uXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MjBweCAhaW1wb3J0YW50XCIgKGNsaWNrKT1cInBsYXlQcmV2aW91c1ZpZGVvKClcIj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2IHJpZ2h0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiIChjbGljayk9XCJwbGF5TmV4dFZpZGVvKClcIlxyXG4gICAgICAgICAgKm5nSWY9XCJjdXJyZW50SW5kZXggPCBsaXN0SXRlbWRhdGEudmlkZW9zLmxlbmd0aCAtIDFcIj48bWF0LWljb25cclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoyMHB4ICFpbXBvcnRhbnRcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInByb2R1Y3RzLWxpc3QtY29udGFpbmVyIHBvc2l0aW9uLWZpeGVkIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtNFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c0xpc3RcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtYmFkZ2UgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cclxuICAgICAgICAgIDxpbWcgW3NyY109XCJwcm9kdWN0Lml0ZW1JbWFnZXNbMF0uaW1nVXJsXCIgYWx0PVwiUmluZ1wiIGNsYXNzPVwicHJvZHVjdC1pbWdcIiAvPjwvYT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1pbmZvIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtZGV0YWlscyBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTFcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAge3twcm9kdWN0Lm5hbWUubGVuZ3RoID4gMzAgPyBwcm9kdWN0Lm5hbWUuc2xpY2UoMCwgMzApICsgJy4uLicgOiBwcm9kdWN0Lm5hbWV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXByaWNlIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAg4oK5e3twcm9kdWN0LnByaWNlLnNlbGxpbmdQcmljZX19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMVwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzAwMDcyYzE3NzAyNzAzOTU0MzJmYXZvdXJpdGUtc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOHB4O1wiICpuZ0lmPVwiIXByb2R1Y3Qud2hpc2xpc3RcIiAoY2xpY2spPVwidG9nZ2xlSXRlbVRvRmF2KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzMwNDExNmMxNzcwMjc0MTMyOTEwZmF2b3VyaXRlLXN2Z3JlcG8tY29tXygxKS5zdmdcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE4cHg7XCIgKm5nSWY9XCJwcm9kdWN0LndoaXNsaXN0XCIgKGNsaWNrKT1cInRvZ2dsZUl0ZW1Ub0ZhdigkZXZlbnQsIHByb2R1Y3QsICdSRU1PVkUnKVwiPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82OTUxNDRjMTc3MDI3MDY2OTU0NmNhcnQtc2hvcHBpbmctc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjE5cHhcIiAqbmdJZj1cInByb2R1Y3QucXVhbnRpdHkgPD0gMFwiIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzc5NTM0MmMxNzcwMjc1MzgzMzQ0c2hvcHBpbmctY2FydC1maWxsLXN2Z3JlcG8tY29tLnN2Z1wiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxOXB4XCIgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5ID49IDFcIiAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdTVUJTVFJBQ1QnKVwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tc2hvd2Nhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy92aWRlby1zaG93Y2FzZS92aWRlby1zaG93Y2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLXNob3djYXNlL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7OztBQVV6RSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1MsU0FBK0MsRUFDdEIsWUFBaUIsRUFDaEMsY0FBOEIsRUFDOUIsV0FBd0I7UUFIbEMsY0FBUyxHQUFULFNBQVMsQ0FBc0M7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQUs7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBYzNDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUNqQixrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFD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LENBQUMsSUFBa0IsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7b0JBQ2pDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ25CLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxTQUFTO2dCQUNaLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0csQ0FBQztJQUNILENBQUM7K0dBOUdVLHNCQUFzQiw4Q0FHdkIsZUFBZTttR0FIZCxzQkFBc0IsbUVBSnRCLENBQUMsY0FBYyxDQUFDLHNJQ2I3QixnekhBK0RVLDBvRURuREUsT0FBTywwSUFBRSxZQUFZOzs0RkFLcEIsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLGFBQ3JCLENBQUMsY0FBYyxDQUFDOzswQkFPeEIsTUFBTTsyQkFBQyxlQUFlO2dHQU1DLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEl0ZW1WYXJpYW50LCBQcm9kdWN0IH0gZnJvbSAncHJvamVjdHMvc2ltcG8tdWkvc3JjL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLXZpZGVvLXNob3djYXNlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEljb24sIENvbW1vbk1vZHVsZV0sXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIFZpZGVvU2hvd2Nhc2VDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VmlkZW9TaG93Y2FzZUNvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBsaXN0SXRlbWRhdGE6IGFueSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcbiAgKSB7XG4gICAgY29uc29sZS5sb2coJ2xpc3RJdGVtZGF0YScsIGxpc3RJdGVtZGF0YSk7XG4gIH1cbiAgQFZpZXdDaGlsZCgndmlkZW9QbGF5ZXInKSB2aWRlb1BsYXllciE6IEVsZW1lbnRSZWY8SFRNTFZpZGVvRWxlbWVudD47XG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubGlzdEl0ZW1kYXRhLnZpZGVvcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChpdGVtLnZpZGVvLmlkID09PSB0aGlzLmxpc3RJdGVtZGF0YS5pbml0aWF0ZVZpZGVvSWQpIHtcbiAgICAgICAgdGhpcy52aWRlb1VybCA9IGl0ZW0udmlkZW8udXJsO1xuICAgICAgICB0aGlzLnByb2R1Y3RzTGlzdCA9IGl0ZW0udmlkZW8ucHJvZHVjdHM7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gaW5kZXg7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgdmlkZW9NdXRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICB2aWRlb1VybDogc3RyaW5nID0gJyc7XG4gIGN1cnJlbnRJbmRleDogbnVtYmVyID0gMDtcbiAgcHJvZHVjdHNMaXN0OiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIFVTRVJfV0lTSExJU1Q6IE9yZGVyZWRJdGVtc1tdID0gW107XG4gIHByaXZhdGUgVVNFUl9DQVJUOiBPcmRlcmVkSXRlbXNbXSA9IFtdO1xuICBjbG9zZURpYWxvZygpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG4gIHBsYXlOZXh0VmlkZW8oKSB7XG4gICAgdGhpcy5jdXJyZW50SW5kZXgrKztcbiAgICB0aGlzLnZpZGVvVXJsID0gdGhpcy5saXN0SXRlbWRhdGEudmlkZW9zW3RoaXMuY3VycmVudEluZGV4XS52aWRlby51cmw7XG4gICAgdGhpcy5wcm9kdWN0c0xpc3QgPSB0aGlzLmxpc3RJdGVtZGF0YS52aWRlb3NbdGhpcy5jdXJyZW50SW5kZXhdLnZpZGVvLnByb2R1Y3RzO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy52aWRlb1BsYXllci5uYXRpdmVFbGVtZW50LmxvYWQoKTtcbiAgICAgIHRoaXMudmlkZW9QbGF5ZXIubmF0aXZlRWxlbWVudC5wbGF5KCk7XG4gICAgfSk7XG4gIH1cbiAgcGxheVByZXZpb3VzVmlkZW8oKSB7XG4gICAgdGhpcy5jdXJyZW50SW5kZXgtLTtcbiAgICB0aGlzLnZpZGVvVXJsID0gdGhpcy5saXN0SXRlbWRhdGEudmlkZW9zW3RoaXMuY3VycmVudEluZGV4XS52aWRlby51cmw7XG4gICAgdGhpcy5wcm9kdWN0c0xpc3QgPSB0aGlzLmxpc3RJdGVtZGF0YS52aWRlb3NbdGhpcy5jdXJyZW50SW5kZXhdLnZpZGVvLnByb2R1Y3RzO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy52aWRlb1BsYXllci5uYXRpdmVFbGVtZW50LmxvYWQoKTtcbiAgICAgIHRoaXMudmlkZW9QbGF5ZXIubmF0aXZlRWxlbWVudC5wbGF5KCk7XG4gICAgfSk7XG4gIH0gZ2V0SXRlbVZhcmllbnQocHJvZHVjdDogUHJvZHVjdCwgdmFyaWVudElkOiBzdHJpbmcpOiBJdGVtVmFyaWFudCB8IG51bGwge1xuICAgIGxldCBzZWxlY3RlZFZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHJvZHVjdD8uaXRlbVZhcmlhbnQ/LmZvckVhY2goKHZhcmllbnQ6IEl0ZW1WYXJpYW50KSA9PiB7XG4gICAgICBpZiAodmFyaWVudC52YXJpYW50SWQgPT09IHZhcmllbnRJZClcbiAgICAgICAgc2VsZWN0ZWRWYXJpZW50ID0gdmFyaWVudDtcbiAgICB9KVxuICAgIHJldHVybiBzZWxlY3RlZFZhcmllbnQ7XG4gIH1cbiAgdG9nZ2xlSXRlbVRvRmF2KGV2ZW50OiBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQUREJyB8ICdSRU1PVkUnKSB7XG4gICAgaWYgKHR5cGUgPT0gJ0FERCcpIHtcbiAgICAgIHByb2R1Y3Qud2hpc2xpc3QgPSB0cnVlO1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnV2lzaGxpc3QnLCBkZXRhaWw6ICdJdGVtIGFkZGVkIHRvIHlvdXIgd2lzaGxpc3QnIH0pO1xuICAgICAgaWYgKHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgaXRlbVZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IHRoaXMuZ2V0SXRlbVZhcmllbnQocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpO1xuICAgICAgICBpZiAoaXRlbVZhcmllbnQpIHtcbiAgICAgICAgICBpdGVtVmFyaWVudC53aXNobGlzdCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9GYXZvdXJpdGUocHJvZHVjdCBhcyBQcm9kdWN0LCBpdGVtVmFyaWVudC52YXJpYW50SWQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBwcm9kdWN0LndoaXNsaXN0ID0gZmFsc2U7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6ICdXaXNobGlzdCcsIGRldGFpbDogJ0l0ZW0gcmVtb3ZlZCBmcm9tIHlvdXIgd2lzaGxpc3QnIH0pO1xuICAgICAgdGhpcy5jYXJ0U2VydmljZS5yZW1vdmVJdGVtRnJvbUZhdm91cml0ZShwcm9kdWN0LnZhcmllbnRJZCwgcHJvZHVjdC5pdGVtSWQpO1xuICAgIH1cbiAgICBpZiAocHJvZHVjdC53aGlzbGlzdCkge1xuICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUPy5wdXNoKG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUID0gdGhpcy5VU0VSX1dJU0hMSVNUPy5maWx0ZXIoKGl0ZW06IE9yZGVyZWRJdGVtcykgPT4gaXRlbS52YXJpZW50SWQgIT0gcHJvZHVjdC52YXJpZW50SWQpID8/IFtdO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuICBpc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3Q6IFByb2R1Y3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcHJvZHVjdC5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2sgPT0gMDtcbiAgfVxuICBhZGRJdGVtVG9DYXJ0KGV2ZW50OiBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQUREJyB8ICdTVUJTVFJBQ1QnKSB7XG4gICAgaWYgKHRoaXMuaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0KSkge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3dhcm4nLCBzdW1tYXJ5OiAnQ2FydCcsIGRldGFpbDogJ0l0ZW0gaXMgbm90IGF2YWlsYWJsZSBhcyBvZiBub3cuIFdlIHdpbGwgbm90aWZ5IHlvdSBvbmNlIGF2YWlsYWJsZScgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHByb2R1Y3QucXVhbnRpdHkgKz0gKHR5cGUgPT0gJ0FERCcgPyAxIDogLTEpO1xuICAgIGlmIChwcm9kdWN0Py5pdGVtVmFyaWFudD8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCBpdGVtVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gdGhpcy5nZXRJdGVtVmFyaWVudChwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCk7XG4gICAgICBpZiAoaXRlbVZhcmllbnQpIHtcbiAgICAgICAgaXRlbVZhcmllbnQucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCwgaXRlbVZhcmllbnQudmFyaWFudElkKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KHByb2R1Y3QpO1xuICAgIH1cbiAgICBpZiAocHJvZHVjdC5xdWFudGl0eSkge1xuICAgICAgbGV0IGlzUHJlc2VudDogYm9vbGVhbiA9IGZhbHNlO1xuICAgICAgdGhpcy5VU0VSX0NBUlQ/LmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcykgPT4ge1xuICAgICAgICBpZiAoaXRlbS52YXJpZW50SWQgPT0gcHJvZHVjdC52YXJpZW50SWQpIHtcbiAgICAgICAgICBpdGVtLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcbiAgICAgICAgICBpc1ByZXNlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaWYgKCFpc1ByZXNlbnQpXG4gICAgICAgIHRoaXMuVVNFUl9DQVJUPy5wdXNoKG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5VU0VSX0NBUlQgPSB0aGlzLlVTRVJfQ0FSVD8uZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IGl0ZW0udmFyaWVudElkICE9IHByb2R1Y3QudmFyaWVudElkKSA/PyBbXTtcbiAgICB9XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwib3ZlcmxheVwiPjwvc2VjdGlvbj5cblxuPHNlY3Rpb24gY2xhc3M9XCJtYWluX3NlY3Rpb24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ2aWRlb3MtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInZpZGVvLWNhcmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b3AtYmFyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9ncmVzcy1iYXJcIj48L3NwYW4+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy84MDI1NzZjMTc3MDM3NTM4OTI3NG11dGVkLXN2Z3JlcG8tY29tLnN2Z1wiXG4gICAgICAgICAgY2xhc3M9XCJtdXRlLXVubXV0ZVwiICpuZ0lmPVwidmlkZW9NdXRlZFwiIChjbGljayk9XCJ2aWRlb011dGVkID0gZmFsc2VcIj5cbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzcxMTgzM2MxNzcwMzc1NTE1ODI4dm9sdW1lLWxvdWQtc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICBjbGFzcz1cIm11dGUtdW5tdXRlXCIgKm5nSWY9XCIhdmlkZW9NdXRlZFwiIChjbGljayk9XCJ2aWRlb011dGVkPXRydWVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjbG9zZVwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+4pyVPC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gVmlkZW8gLS0+XG4gICAgICA8dmlkZW8gI3ZpZGVvUGxheWVyIGNsYXNzPVwidmlkZW8tY29udGVudFwiIGF1dG9wbGF5IGxvb3AgcGxheXNpbmxpbmUgW3NyY109XCJ2aWRlb1VybFwiIFtjb250cm9sc109XCJmYWxzZVwiXG4gICAgICAgIFttdXRlZF09XCJ2aWRlb011dGVkXCI+XG4gICAgICA8L3ZpZGVvPlxuXG4gICAgICA8IS0tIE5hdmlnYXRpb24gYXJyb3dzIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbmF2LWFycm93cyB3LTEwMFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWVuZCcgOmN1cnJlbnRJbmRleCA8IGxpc3RJdGVtZGF0YS52aWRlb3MubGVuZ3RoIC0gMSAsICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiBjdXJyZW50SW5kZXggPiAwIH1cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdiBsZWZ0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiY3VycmVudEluZGV4ID4gMFwiPjxtYXQtaWNvblxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoyMHB4ICFpbXBvcnRhbnRcIiAoY2xpY2spPVwicGxheVByZXZpb3VzVmlkZW8oKVwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2IHJpZ2h0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiIChjbGljayk9XCJwbGF5TmV4dFZpZGVvKClcIlxuICAgICAgICAgICpuZ0lmPVwiY3VycmVudEluZGV4IDwgbGlzdEl0ZW1kYXRhLnZpZGVvcy5sZW5ndGggLSAxXCI+PG1hdC1pY29uXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOjIwcHggIWltcG9ydGFudFwiPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInByb2R1Y3RzLWxpc3QtY29udGFpbmVyIHBvc2l0aW9uLWZpeGVkIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtNFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNMaXN0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1iYWRnZSBjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwicHJvZHVjdC5pdGVtSW1hZ2VzWzBdLmltZ1VybFwiIGFsdD1cIlJpbmdcIiBjbGFzcz1cInByb2R1Y3QtaW1nXCIgLz48L2E+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWluZm8ganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWRldGFpbHMgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0xXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXRpdGxlXCI+XG4gICAgICAgICAgICAgICAge3twcm9kdWN0Lm5hbWUubGVuZ3RoID4gMzAgPyBwcm9kdWN0Lm5hbWUuc2xpY2UoMCwgMzApICsgJy4uLicgOiBwcm9kdWN0Lm5hbWV9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcHJpY2UgZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAg4oK5e3twcm9kdWN0LnByaWNlLnNlbGxpbmdQcmljZX19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy83MDAwNzJjMTc3MDI3MDM5NTQzMmZhdm91cml0ZS1zdmdyZXBvLWNvbS5zdmdcIlxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOHB4O1wiICpuZ0lmPVwiIXByb2R1Y3Qud2hpc2xpc3RcIiAoY2xpY2spPVwidG9nZ2xlSXRlbVRvRmF2KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMzA0MTE2YzE3NzAyNzQxMzI5MTBmYXZvdXJpdGUtc3ZncmVwby1jb21fKDEpLnN2Z1wiXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE4cHg7XCIgKm5nSWY9XCJwcm9kdWN0LndoaXNsaXN0XCIgKGNsaWNrKT1cInRvZ2dsZUl0ZW1Ub0ZhdigkZXZlbnQsIHByb2R1Y3QsICdSRU1PVkUnKVwiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzY5NTE0NGMxNzcwMjcwNjY5NTQ2Y2FydC1zaG9wcGluZy1zdmdyZXBvLWNvbS5zdmdcIlxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjE5cHhcIiAqbmdJZj1cInByb2R1Y3QucXVhbnRpdHkgPD0gMFwiIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzk1MzQyYzE3NzAyNzUzODMzNDRzaG9wcGluZy1jYXJ0LWZpbGwtc3ZncmVwby1jb20uc3ZnXCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxOXB4XCIgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5ID49IDFcIiAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdTVUJTVFJBQ1QnKVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj4iXX0=