ng-miam 3.6.2 → 3.7.2

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.
@@ -287,7 +287,8 @@ export class RecipeFormComponent {
287
287
  attributes: this.fb.group({
288
288
  quantity: new FormControl(ingredient.attributes.quantity, Validators.required),
289
289
  unit: new FormControl(ingredient.attributes.unit, Validators.required),
290
- name: new FormControl(ingredient.attributes.name, Validators.required)
290
+ name: new FormControl(ingredient.attributes.name, Validators.required),
291
+ 'picture-url': new FormControl(ingredient.attributes['picture-url'])
291
292
  })
292
293
  }));
293
294
  });
@@ -472,4 +473,4 @@ RecipeFormComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeFormComponent,
472
473
  }], canceled: [{
473
474
  type: Output
474
475
  }] }); })();
475
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWZvcm0vcmVjaXBlLWZvcm0uY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtZm9ybS9yZWNpcGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEdBRWxCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYSxXQUFXLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRzlELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ0ozQywrQkFDRTtJQUFBLDBDQUVzQjtJQUN0QiwwQ0FDNkc7SUFDN0csMENBQzhHO0lBQzlHLDBDQUVzQjtJQUN4QixpQkFBTTs7Ozs7OztJQVRGLGVBQXNFO0lBQXRFLGlLQUFzRSwwQkFBQTtJQUd0RSxlQUFrRTtJQUFsRSw2SkFBa0UseUJBQUE7SUFFbEUsZUFBa0U7SUFBbEUsNkpBQWtFLDBCQUFBO0lBRWxFLGVBQWtFO0lBQWxFLDZKQUFrRSw2QkFBQTs7O0lBZ0IxRSw4QkFFRTtJQUFBLDJDQUV1Qjs7SUFFdkIsMkNBRXVCOztJQUN2QiwrQkFDK0U7SUFDakYsaUJBQU07Ozs7SUFSSixlQUE0QjtJQUE1QiwrREFBNEIsMEZBQUE7SUFJNUIsZUFBdUQ7SUFBdkQsdUlBQXVELDRGQUFBO0lBR3JELGVBQWlFO0lBQWpFLDRKQUFpRTs7Ozs7SUE5RHpFLCtCQUNFO0lBQUEsZ0NBQ0U7SUFBQSx3Q0FBbUw7SUFDbkwsOEJBQ0U7SUFBQSw4QkFDRTtJQUFBLDZDQUUwQjtJQUMxQiwrQkFDRTtJQUFBLGdDQUF5QztJQUFBLGtDQUFrQjtJQUFBLGlCQUFPO0lBQ2xFLDRDQUd3QjtJQUMxQixpQkFBTTtJQUNSLGlCQUFNO0lBQ04sZ0NBQ0U7SUFBQSw0Q0FFdUI7O0lBQ3ZCLGdDQUNFO0lBQUEsZ0NBQ0U7SUFBQSxzQ0FFaUI7SUFDbkIsaUJBQU07SUFDUixpQkFBTTtJQUNOLDhFQUNFO0lBV0osaUJBQU07SUFDUixpQkFBTTtJQUNSLDBCQUFlO0lBQ2YsK0JBQ0U7SUFBQSwrQkFDRTtJQUFBLCtDQUVxQjtJQUZxQyx1T0FBK0M7SUFFekcsaUJBQXFCO0lBQ3ZCLGlCQUFNO0lBQ04sK0JBQ0U7SUFBQSwrQ0FDc0U7SUFESSxpT0FBeUM7SUFDbEUsaUJBQXFCO0lBQ3hFLGlCQUFNO0lBQ04sOEVBRUU7SUFVSixpQkFBTTtJQUVSLGlCQUFPOzs7Ozs7OztJQWxFa0IsNkNBQXdCO0lBQ2pDLGVBQTJDO0lBQTNDLGtHQUEyQztJQUNTLGVBQTJEO0lBQTNELHNKQUEyRDtJQUc3QyxlQUErRDtJQUEvRCwwSkFBK0QscUxBQUEsbUJBQUE7SUFNckksZUFBd0Y7SUFBeEYsK0dBQXdGO0lBTzFGLGVBQWlEO0lBQWpELCtIQUFpRCx3RkFBQTtJQUlkLGVBQXFCO0lBQXJCLDBDQUFxQixnSkFBQSxrQ0FBQTtJQUtyRCxlQUFrQjtJQUFsQix3Q0FBa0I7SUFpQmlGLGVBQXVCO0lBQXZCLHFDQUF1Qiw4Q0FBQTtJQU0vSCxlQUFnQztJQUFoQyxxREFBZ0M7SUFFUCxlQUFlO0lBQWYscUNBQWU7O0FEWGhELE1BQU0sT0FBTyxtQkFBbUI7SUEwQjlCLFlBQ1UsRUFBZSxFQUNmLFdBQXdCLEVBQ3pCLEdBQXNCLEVBQ3RCLHFCQUE0QyxFQUMzQyxhQUE2QixFQUM5QixpQkFBb0MsRUFDbkMsaUJBQXFDLEVBQ3JDLGtCQUFzQyxFQUN2QyxZQUEwQixFQUMxQixhQUFrQztRQVRqQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUMzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW9CO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdkMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBakNsQyx3QkFBbUIsR0FBRyxTQUFTLENBQUM7UUFDaEMsc0JBQWlCLEdBQUcsd0JBQXdCLENBQUM7UUFDN0MsMkJBQXNCLEdBQUcsS0FBSyxDQUFDLENBQUMsOEVBQThFO1FBQzlHLHlCQUFvQixHQUFHLEtBQUssQ0FBQyxDQUFDLG9FQUFvRTtRQU1wRyxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osZ0JBQVcsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDL0MscUJBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEcsVUFBSyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyQyxlQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSzVFLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBa0J6QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtZQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBR0Q7OztPQUdHO0lBQ0ssVUFBVTtRQUNoQiwyRUFBMkU7UUFDM0UsdURBQXVEO1FBQ3ZELDhCQUE4QjtRQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUFFO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUMxRCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxFQUMxRSxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUMvRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTTtRQUNYLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsZ0NBQWdDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLG1DQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFFLENBQUM7UUFDckcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSwwQkFBMEIsQ0FBQyxZQUFvQjtRQUNwRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxNQUFjO1FBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3ZDLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztnQkFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVU7O1FBQ2YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ3JGLENBQUMsT0FBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLEtBQUksUUFBQyxJQUFJLENBQUMsVUFBVSwwQ0FBRSxLQUFLLENBQUEsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSyxRQUFRLENBQUMsTUFBYzs7UUFDN0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM5QixlQUFlLEVBQUUsSUFBSSxXQUFXLGFBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGFBQWEsMENBQUcsZUFBZSwyQ0FBRyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNyRyxpQkFBaUIsRUFBRSxJQUFJLFdBQVcsQ0FBQyxtQkFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsYUFBYSwwQ0FBRyxpQkFBaUIsMkNBQUcsSUFBSSwwQ0FBRSxFQUFFLEVBQUMsQ0FBQyxhQUN2RixNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsYUFBYSwwQ0FBRyxpQkFBaUIsMkNBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNyRixVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7Z0JBQ3hCLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3ZFLFdBQVcsRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM1RCxDQUFDLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNuRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDOUQsYUFBYSxFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ2hFLGtCQUFrQixFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZILGlCQUFpQixFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDeEUsY0FBYyxFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2xFLGNBQWMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNsRSxVQUFVLEVBQUUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7YUFDeEgsQ0FBQztZQUNGLGFBQWEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQzFILFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdEIsV0FBVyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUM7WUFDakQsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7U0FDdEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssdUJBQXVCLENBQUMsTUFBYztRQUM1QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25FLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQXNCLEVBQUUsRUFBRTtZQUNuRCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2dCQUM3QixFQUFFLEVBQUUsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO29CQUN4QixRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztvQkFDOUUsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7b0JBQ3RFLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO2lCQUN2RSxDQUFDO2FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssaUJBQWlCLENBQUMsTUFBYztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWdCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDbEUsRUFBRSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUIsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2dCQUN4QixhQUFhLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDOUQsV0FBVyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO2FBQzFELENBQUM7U0FDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssc0JBQXNCO1FBQzVCLE1BQU0sS0FBSyxHQUFHO1lBQ1osT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQztTQUNwRyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLG1DQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFFLENBQUM7UUFDckcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFO1lBQ3hFLDhEQUE4RDtZQUM5RCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFO2dCQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQVcsQ0FBQzthQUNqQztpQkFBTSxFQUFFLDhEQUE4RDtnQkFDckUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSx5QkFBeUIsQ0FBQyxhQUFxQjtRQUNwRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBQztZQUMzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMseUJBQXlCLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1NBQ3ZGO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUM7WUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEYsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN6RTtRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztTQUM1RTtRQUNELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDM0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVNLG9CQUFvQjtRQUN6QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDcEcsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN6RixPQUFPLFNBQVMsSUFBSSxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVk7O1FBQ2xCLHdFQUF3RTtRQUN4RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsZ0NBQWdDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLG1DQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFFLENBQUM7WUFDckcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsVUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsMENBQUUsS0FBSyxFQUFFO1lBQzVDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsSUFBSSxDQUN2QyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2pCLHdGQUF3RjtnQkFDeEYseUZBQXlGO2dCQUN6RixJQUFJLE1BQU0sRUFBRTtvQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztpQkFDdEI7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRTtvQkFDL0IsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNwRDtxQkFBTTtvQkFDTCxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7YUFBTTtZQUNMLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRU8sZ0NBQWdDLENBQUMsUUFBZ0I7O1FBQ3ZELFVBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQywwQ0FBRSxLQUFLLEVBQUU7WUFDN0MsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3RGO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGFBQWEsQ0FBQyxNQUFjO1FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwRDtRQUNELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzVELFNBQVMsQ0FBQyxVQUFVLENBQUMsMEdBQTBHLENBQUMsQ0FBQTtTQUNqSTtJQUNILENBQUM7O3NGQS9VVSxtQkFBbUI7d0RBQW5CLG1CQUFtQjtRQ3pDaEMsd0VBQ0U7UUFrRUYsOEJBQ0U7UUFBQSxpQ0FBc0Q7UUFBbkIsZ0dBQVMsWUFBUSxJQUFDO1FBQUMsdUJBQU87UUFBQSxpQkFBUztRQUN0RSxpQ0FDRTtRQUQrQixnR0FBUyxZQUFRLElBQUM7UUFDakQsd0NBQ0E7UUFBQSxpQkFBUztRQUNiLGlCQUFNOztRQXhFQSxxQ0FBa0I7UUFxRThCLGVBQXFFO1FBQXJFLGlLQUFxRTs7a0RENUI5RyxtQkFBbUI7Y0FQL0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFdBQVcsRUFBRSw4QkFBOEI7Z0JBQzNDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2dCQUMzQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7d1ZBR1UsTUFBTTtrQkFBZCxLQUFLO1lBQ0csbUJBQW1CO2tCQUEzQixLQUFLO1lBQ0csaUJBQWlCO2tCQUF6QixLQUFLO1lBQ0csc0JBQXNCO2tCQUE5QixLQUFLO1lBQ0csb0JBQW9CO2tCQUE1QixLQUFLO1lBQ0ksWUFBWTtrQkFBckIsTUFBTTtZQUNHLFFBQVE7a0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluZ3JlZGllbnQgfSBmcm9tICcuLi8uLi9fbW9kZWxzL2luZ3JlZGllbnQnO1xuaW1wb3J0IHsgUmVjaXBlU3RlcCB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlLXN0ZXAnO1xuaW1wb3J0IHtcbiAgSW5ncmVkaWVudHNTZXJ2aWNlLFxuICBSZWNpcGVzU2VydmljZSxcbiAgUmVjaXBlU3RhdHVzU2VydmljZSxcbiAgUmVjaXBlU3RlcHNTZXJ2aWNlLFxuICBSZWNpcGVUeXBlU2VydmljZSxcbiAgVXNlclNlcnZpY2Vcbn0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERvY3VtZW50UmVzb3VyY2UgfSBmcm9tICduZ3gtanNvbmFwaSc7XG5pbXBvcnQgeyBSZWNpcGVQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgUmVjaXBlU3RhdHVzIH0gZnJvbSAnLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXJlY2lwZS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2lwZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjaXBlLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBASW5wdXQoKSBzZWNvbmRhcnlBY3Rpb25UZXh0ID0gJ0FubnVsZXInO1xuICBASW5wdXQoKSBwcmltYXJ5QWN0aW9uVGV4dCA9ICdFbnJlZ2lzdHJlciBsYSByZWNldHRlJztcbiAgQElucHV0KCkgc2Vjb25kYXJ5QnV0dG9uRGlzYWJsZSA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNhYmxlIHRoZSBzZWNvbmRhcnlCdXR0b24gd2hpbGUgdGhlcmUgYXJlIG5vIGNoYW5nZXMgaW4gdGhlIGZvcm1cbiAgQElucHV0KCkgY3VzdG9tU3VibWl0Q2FsbGJhY2sgPSBmYWxzZTsgLy8gSWYgdHJ1ZSwgZW1pdCByZWNpcGVDaGFuZ2UgdG8gbGV0IHRoZSBwYXJlbnQgaGFuZGxlIHJlY2lwZSBzYXZpbmdcbiAgQE91dHB1dCgpIHJlY2lwZUNoYW5nZTogRXZlbnRFbWl0dGVyPFJlY2lwZT47XG4gIEBPdXRwdXQoKSBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPFJlY2lwZT47IC8vIFRPRE86IEZvciBtb3JlIGNsYXJpdHksIHNwbGl0IGludG8gJ2NhbmNlbGVkPHZvaWQ+JyBldCAnc2Vjb25kYXJ5QWN0aW9uPFJlY2lwZT4nXG5cbiAgcHVibGljIHJlY2lwZUZvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIGlzVXBkYXRlOiBib29sZWFuO1xuICBwdWJsaWMgaWNvbiA9IEljb247XG4gIHB1YmxpYyBkaWZpY3VsdGllcyA9IFsnZmFjaWxlJywgJ21veWVuJywgJ2RpZmZpY2lsZSddO1xuICBwdWJsaWMgaWNvbnNEaWZpY3VsdGllcyA9IFt0aGlzLmljb24uRGlmZmljdWx0eUxvdywgdGhpcy5pY29uLkRpZmZpY3VsdHlNZWRpdW0sIHRoaXMuaWNvbi5EaWZmaWN1bHR5SGlnaHRdO1xuICBwdWJsaWMgY29zdHMgPSBbJ2ZhaWJsZScsICdtb3llbicsICfDqWxldsOpJ107XG4gIHB1YmxpYyBpY29uc0Nvc3RzID0gW3RoaXMuaWNvbi5Db3N0TG93LCB0aGlzLmljb24uQ29zdE1lZGl1bSwgdGhpcy5pY29uLkNvc3RIaWdodF07XG4gIHB1YmxpYyBkZWxldGVJbmdyZWRpZW50c0xpc3Q6IHN0cmluZ1tdO1xuICBwdWJsaWMgZGVsZXRlU3RlcHNMaXN0OiBzdHJpbmdbXTtcbiAgcHVibGljIGlzQWRtaW46IGJvb2xlYW47XG4gIHB1YmxpYyBzdGF0dXNlczogT2JzZXJ2YWJsZTxSZWNpcGVTdGF0dXNbXT47XG4gIHB1YmxpYyBpc1N1Ym1pdGluZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZm9ybVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyByZWNpcGVQcm92aWRlcnNlcnZpY2U6IFJlY2lwZVByb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZVNlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWNpcGVUeXBlU2VydmljZTogUmVjaXBlVHlwZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmdyZWRpZW50U2VydmljZTogSW5ncmVkaWVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlU3RlcHNTZXJ2aWNlOiBSZWNpcGVTdGVwc1NlcnZpY2UsXG4gICAgcHVibGljIG1lZGlhTWF0Y2hlcjogTWVkaWFNYXRjaGVyLFxuICAgIHB1YmxpYyBzdGF0dXNTZXJ2aWNlOiBSZWNpcGVTdGF0dXNTZXJ2aWNlXG4gICkge1xuXG4gICAgdGhpcy5jYW5jZWxlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLnJlY2lwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLmRlbGV0ZUluZ3JlZGllbnRzTGlzdCA9IFtdO1xuICAgIHRoaXMuZGVsZXRlU3RlcHNMaXN0ID0gW107XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgdGhpcy5zdGF0dXNlcyA9IHRoaXMuc3RhdHVzU2VydmljZS5hbGwoKS5waXBlKG1hcChyZXMgPT4gcmVzLmRhdGEpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy51c2VyU2VydmljZS5pc0FkbWluLnN1YnNjcmliZShpc0FkbWluID0+IHtcbiAgICAgICAgdGhpcy5pc0FkbWluID0gaXNBZG1pbjtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSkpO1xuICAgIHRoaXMuSW5pdFJlY2lwZSgpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3JlY2lwZScpICYmIHRoaXMucmVjaXBlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuaXNVcGRhdGUgPSB0cnVlO1xuICAgICAgdGhpcy5pbml0Rm9ybSh0aGlzLnJlY2lwZSk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBPbmx5IGZvciByZWNpcGUgY3JlYXRpb24uXG4gICAqIEluaXQgYmxhbmsgcmVjaXBlXG4gICAqL1xuICBwcml2YXRlIEluaXRSZWNpcGUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyBmaXJzdCBzdGF0ZSBhZnRlciBjcmVhdGlvbiAnbGwgYmUgU1VCTUlUVEVEIHdlIHByZXNldCB0aGlzIGZpZWxkIGJlY2F1c2VcbiAgICAvLyBub3JtYWwgdXNlciBjYW4ndCBmaWxsIGl0IGFuZCBpdCdzIGEgbWFuZGF0b3J5IGZpZWxkXG4gICAgLy8gYWRtaW4gY2FuIHN0aWxsIG92ZXJyaWRlIGl0XG4gICAgaWYgKHRoaXMucmVjaXBlKSB7IHJldHVybiBvZihudWxsKTsgfVxuICAgIHJldHVybiB0aGlzLnN0YXR1c1NlcnZpY2Uuc3VibWl0dGVkLnBpcGUoc3dpdGNoTWFwKHN0YXR1cyA9PlxuICAgICAgdGhpcy51c2VyU2VydmljZS51c2VyUHJvdmlkZXIucGlwZShza2lwV2hpbGUocHJvdmlkZXIgPT4gcHJvdmlkZXIgPT0gbnVsbCksXG4gICAgICB0YXAocmVjaXBlUHJvdmlkZXIgPT4ge1xuICAgICAgICB0aGlzLnJlY2lwZSA9IHRoaXMucmVjaXBlU2VydmljZS5uZXcoKTtcbiAgICAgICAgdGhpcy5yZWNpcGUuYWRkUmVsYXRpb25zaGlwKHN0YXR1cywgJ3JlY2lwZS1zdGF0dXMnKTtcbiAgICAgICAgdGhpcy5yZWNpcGUuYWRkUmVsYXRpb25zaGlwKHJlY2lwZVByb3ZpZGVyLCAncmVjaXBlLXByb3ZpZGVyJyk7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnJlY2lwZS5pZDtcbiAgICAgICAgdGhpcy5pbml0Rm9ybSh0aGlzLnJlY2lwZSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgY2hhbmdlcyBhbmQgcmV0dXJuIHRoZW0gaW4gY2FzZSB0aGV5IGNvdWxkIGJlIHVzZWQgYWZ0ZXIgYnV0IGRvbid0IHNhdmUgaXRcbiAgICogVE9ETzogV2hlbiB3ZSBzcGxpdCB0aGUgb3V0cHV0LCByZW5hbWUgc2Vjb25kYXJ5QWN0aW9uKCkgLT4gc2Vjb25kYXJ5QWN0aW9uLmVtaXQodGhpcy5yZWNpcGUpXG4gICAqL1xuICBwdWJsaWMgY2FuY2VsKCkge1xuICAgIHRoaXMuc2V0UmVsYXRpb25TaGlwSWZGb3JtUGFydElzRGlydHkoJ3JlY2lwZS10eXBlJyk7XG4gICAgdGhpcy5zZXRSZWxhdGlvblNoaXBJZkZvcm1QYXJ0SXNEaXJ0eSgncmVjaXBlLXN0YXR1cycpO1xuICAgIHRoaXMuc2V0UmVsYXRpb25TaGlwSWZGb3JtUGFydElzRGlydHkoJ3JlY2lwZS1wcm92aWRlcicpO1xuICAgIHRoaXMucmVjaXBlLmF0dHJpYnV0ZXMgPSB7IC4uLiB0aGlzLnJlY2lwZS5hdHRyaWJ1dGVzLCAuLi50aGlzLnJlY2lwZUZvcm0uZ2V0UmF3VmFsdWUoKS5hdHRyaWJ1dGVzIH07XG4gICAgdGhpcy5jYW5jZWxlZC5lbWl0KHRoaXMucmVjaXBlKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb0RlbGV0ZUluZ3JlZGllbnRzTGlzdChpbmdyZWRpZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlSW5ncmVkaWVudHNMaXN0LnB1c2goaW5ncmVkaWVudElkKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb0RlbGV0ZVN0ZXBzTGlzdChzdGVwSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlU3RlcHNMaXN0LnB1c2goc3RlcElkKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc1N1Ym1pdGluZyA9IHRydWU7XG4gICAgdGhpcy51cHNlcnRSZWNpcGUoKS5zdWJzY3JpYmUoKHJlY2lwZSkgPT4ge1xuICAgICAgaWYgKHJlY2lwZSkge1xuICAgICAgICB0aGlzLmRlbGV0ZVN0ZXBzTGlzdCA9IFtdO1xuICAgICAgICB0aGlzLmRlbGV0ZUluZ3JlZGllbnRzTGlzdCA9IFtdO1xuICAgICAgICB0aGlzLmlzU3VibWl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGFuZGxlRW1pdGlvbihyZWNpcGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsYXNzaWMgdXNlIGNhc2U6IGlmIHRoZSBmb3JtIGlzIGludmFsaWQsIGlmIGl0IGlzIG5vdCBkaXJ0eSBvciBpZiB0aGUgcmVjaXBlIGlzIGJlaW5nIHN1Ym1pdHRlZCwgdGhlIGJ1dHRvbnMgbXVzdCBiZSBkaXNhYmxlZFxuICAgKiBJZiByZWNpcGUgPT0gbnVsbCAtPiBjbGFzc2ljIHVzZSBjYXNlXG4gICAqIElmIHJlY2lwZSAhPSBudWxsICYgc3RhdHVzICE9IERSQUZUIC0+IGNsYXNzaWMgdXNlIGNhc2VcbiAgICogaWYgcmVjaXBlICE9IG51bGwgJiBzdGF0dSA9PSBEUkFGVCAtPiB0aGUgYnV0dG9ucyBtdXN0IG5ldmVyIGJlIGRpc2FibGVkXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGJ1dHRvbnMgc2hvdWxkIGJlIGRpc2FibGVkXG4gICAqL1xuICBwdWJsaWMgY2FudFN1Ym1pdCgpIHtcbiAgICByZXR1cm4gKCF0aGlzLnJlY2lwZSB8fCB0aGlzLnJlY2lwZS5zdGF0dXMubmFtZSAhPT0gdGhpcy5zdGF0dXNTZXJ2aWNlLmRyYWZ0VmFsdWUubmFtZSkgJiZcbiAgICAgICh0aGlzLnJlY2lwZUZvcm0/LmludmFsaWQgfHzCoCF0aGlzLnJlY2lwZUZvcm0/LmRpcnR5IHx8IHRoaXMuaXNTdWJtaXRpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgZnVuY3Rpb24gZmlsbCBmb3JtIHZhbHVlcyB3aXRoIGdpdmVuIHJlY2lwZVxuICAgKiBGb3JtIGlzIGRpdmlkZSBpbiA0IHBhcnQgYXR0cmlidXRlcyx0eXBlLCBpbmdyZWRpZW50cywgc3RlcHNcbiAgICogdG8gZm9sb3cgcmVjaXBlIG1vZGVsIGluIG9uIGhhbmQgYW5kIGluIG90aGVyIGhhbmQgdG8gdXBkYXRlIG9ubHlcbiAgICogcGFydHMgdGhhdCBoYXZlIGJlZW4gY2hhbmdlIGJ5IHVzZXIgdGhhbmtzIHRvIGRpcnR5IGF0dHJpYnV0ZSBvblxuICAgKiBlYWNoIG9mIHRob3NlIHBhcnRzXG4gICAqIEBwYXJhbSByZWNpcGUgdXNlIHRvIGZpbGwgZm9ybVxuICAgKi9cbiAgcHJpdmF0ZSBpbml0Rm9ybShyZWNpcGU6IFJlY2lwZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1TdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZm9ybVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnJlY2lwZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICdyZWNpcGUtc3RhdHVzJzogbmV3IEZvcm1Db250cm9sKHJlY2lwZT8ucmVsYXRpb25zaGlwcz8uW2ByZWNpcGUtc3RhdHVzYF0/LmRhdGEsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgJ3JlY2lwZS1wcm92aWRlcic6IG5ldyBGb3JtQ29udHJvbChyZWNpcGU/LnJlbGF0aW9uc2hpcHM/LltgcmVjaXBlLXByb3ZpZGVyYF0/LmRhdGE/LmlkID9cbiAgICAgICAgcmVjaXBlPy5yZWxhdGlvbnNoaXBzPy5bYHJlY2lwZS1wcm92aWRlcmBdPy5kYXRhIDogJ3BlcnNvbmFsJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBhdHRyaWJ1dGVzOiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgdGl0bGU6IG5ldyBGb3JtQ29udHJvbChyZWNpcGUuYXR0cmlidXRlc1tgdGl0bGVgXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICdtZWRpYS11cmwnOiBuZXcgRm9ybUNvbnRyb2wocmVjaXBlLmF0dHJpYnV0ZXNbYG1lZGlhLXVybGBdKSxcbiAgICAgICAgWydudW1iZXItb2YtZ3Vlc3RzJ106IG5ldyBGb3JtQ29udHJvbChyZWNpcGUuZ3Vlc3RzID9cbiAgICAgICAgICByZWNpcGUuZ3Vlc3RzIDogNCwgW1ZhbGlkYXRvcnMubWluKDEpLCBWYWxpZGF0b3JzLm1heCg5OTkpXSksXG4gICAgICAgICdkZXNjcmlwdGlvbic6IG5ldyBGb3JtQ29udHJvbChyZWNpcGUuYXR0cmlidXRlc1tgZGVzY3JpcHRpb25gXSksXG4gICAgICAgICdwcmVwYXJhdGlvbi10aW1lJzogbmV3IEZvcm1Db250cm9sKHJlY2lwZS5hdHRyaWJ1dGVzW2BwcmVwYXJhdGlvbi10aW1lYF0gPyByZWNpcGUuYXR0cmlidXRlc1tgcHJlcGFyYXRpb24tdGltZWBdIDogJycpLFxuICAgICAgICAncHJlaGVhdGluZy10aW1lJzogbmV3IEZvcm1Db250cm9sKHJlY2lwZS5hdHRyaWJ1dGVzW2BwcmVoZWF0aW5nLXRpbWVgXSksXG4gICAgICAgICdjb29raW5nLXRpbWUnOiBuZXcgRm9ybUNvbnRyb2wocmVjaXBlLmF0dHJpYnV0ZXNbYGNvb2tpbmctdGltZWBdKSxcbiAgICAgICAgJ3Jlc3RpbmctdGltZSc6IG5ldyBGb3JtQ29udHJvbChyZWNpcGUuYXR0cmlidXRlc1tgcmVzdGluZy10aW1lYF0pLFxuICAgICAgICBkaWZmaWN1bHR5OiBuZXcgRm9ybUNvbnRyb2wocmVjaXBlLmF0dHJpYnV0ZXNbYGRpZmZpY3VsdHlgXSA/IHJlY2lwZS5hdHRyaWJ1dGVzW2BkaWZmaWN1bHR5YF0gOiAxLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIH0pLFxuICAgICAgJ3JlY2lwZS10eXBlJzogbmV3IEZvcm1Db250cm9sKHJlY2lwZS5yZWxhdGlvbnNoaXBzW2ByZWNpcGUtdHlwZWBdLmRhdGEuaWQgPyByZWNpcGUucmVsYXRpb25zaGlwc1tgcmVjaXBlLXR5cGVgXS5kYXRhIDogbnVsbCxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBpbmdyZWRpZW50czogdGhpcy5pbml0SW5ncmVkaWVudEZvcm1BcnJheShyZWNpcGUpLFxuICAgICAgc3RlcHM6IHRoaXMuaW5pdFN0ZXBGb3JtQXJyYXkocmVjaXBlKVxuICAgIH0pO1xuICAgIHRoaXMuZm9ybVN1YnNjcmlwdGlvbiA9IHRoaXMucmVjaXBlRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3IgZWFjaCBSZWNpcGUgSW5ncmVkaWVudCB3aWxsIGNyZWF0ZSBhIGZvcm1cbiAgICogdGhhdCB3aWxsIGJlIGdyb3VwIGluIGFuIGZvcm0gQXJyYXlcbiAgICogQHBhcmFtIHJlY2lwZSBjdXJyZW50IHJlY2lwZSB0aGF0ICdsbCBmaWxsIGZvcm1cbiAgICovXG4gIHByaXZhdGUgaW5pdEluZ3JlZGllbnRGb3JtQXJyYXkocmVjaXBlOiBSZWNpcGUpOiBGb3JtQXJyYXkge1xuICAgIGNvbnN0IGluZ3JlZGllbnRzID0gdGhpcy5mYi5hcnJheShbXSk7XG4gICAgY29uc3QgcmVjaXBlSW5ncmVkaWVudHMgPSByZWNpcGUucmVsYXRpb25zaGlwc1tgaW5ncmVkaWVudHNgXS5kYXRhO1xuICAgIHJlY2lwZUluZ3JlZGllbnRzLmZvckVhY2goKGluZ3JlZGllbnQ6IEluZ3JlZGllbnQpID0+IHtcbiAgICAgIGluZ3JlZGllbnRzLnB1c2godGhpcy5mYi5ncm91cCh7XG4gICAgICAgIGlkOiBuZXcgRm9ybUNvbnRyb2woaW5ncmVkaWVudC5pZCksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgIHF1YW50aXR5OiBuZXcgRm9ybUNvbnRyb2woaW5ncmVkaWVudC5hdHRyaWJ1dGVzLnF1YW50aXR5LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICB1bml0OiBuZXcgRm9ybUNvbnRyb2woaW5ncmVkaWVudC5hdHRyaWJ1dGVzLnVuaXQsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbChpbmdyZWRpZW50LmF0dHJpYnV0ZXMubmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgICAgfSlcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaW5ncmVkaWVudHM7XG4gIH1cblxuICAvKipcbiAgICogRm9yIGVhY2ggUmVjaXBlIHN0ZXBzIHdpbGwgY3JlYXRlIGEgZm9ybVxuICAgKiB0aGF0IHdpbGwgYmUgZ3JvdXAgaW4gYW4gZm9ybSBBcnJheVxuICAgKiBAcGFyYW0gcmVjaXBlIGN1cnJlbnQgcmVjaXBlIHRoYXQgJ2xsIGZpbGwgZm9ybVxuICAgKi9cbiAgcHJpdmF0ZSBpbml0U3RlcEZvcm1BcnJheShyZWNpcGU6IFJlY2lwZSk6IEZvcm1BcnJheSB7XG4gICAgY29uc3Qgc3RlcHMgPSB0aGlzLmZiLmFycmF5KFtdKTtcbiAgICByZWNpcGUuc3RlcHMuZm9yRWFjaCgoc3RlcDogUmVjaXBlU3RlcCkgPT4gc3RlcHMucHVzaCh0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGlkOiBuZXcgRm9ybUNvbnRyb2woc3RlcC5pZCksXG4gICAgICBhdHRyaWJ1dGVzOiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgJ3N0ZXAtbnVtYmVyJzogbmV3IEZvcm1Db250cm9sKHN0ZXAuYXR0cmlidXRlc1snc3RlcC1udW1iZXInXSksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBuZXcgRm9ybUNvbnRyb2woc3RlcC5hdHRyaWJ1dGVzLmRlc2NyaXB0aW9uKVxuICAgICAgfSlcbiAgICB9KSkpO1xuICAgIHJldHVybiBzdGVwcztcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSBjdXJyZW50IHJlY2lwZSB3aXRoIGZvcm0gcmVzdWx0XG4gICAqIHJldHVybiBhbiBvYnNldmFibGUgdGhhdCdsbCB1cGRhdGUgb3IgY3JlYXRlIHJlY2lwZVxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVSZWNpcGVBdHRyaWJ1dGVzKCk6IE9ic2VydmFibGU8UmVjaXBlPiB7XG4gICAgY29uc3QgcGFyYW0gPSB7XG4gICAgICBpbmNsdWRlOiBbJ2luZ3JlZGllbnRzJywgJ3JlY2lwZS1zdGVwcycsICdyZWNpcGUtc3RhdHVzJywgJ3JlY2lwZS1wcm92aWRlcicsICdyZWNpcGUtdHlwZScsICd0YWdzJ11cbiAgICB9O1xuICAgIHRoaXMucmVjaXBlLmF0dHJpYnV0ZXMgPSB7IC4uLiB0aGlzLnJlY2lwZS5hdHRyaWJ1dGVzLCAuLi50aGlzLnJlY2lwZUZvcm0uZ2V0UmF3VmFsdWUoKS5hdHRyaWJ1dGVzIH07XG4gICAgcmV0dXJuIHRoaXMucmVjaXBlLnNhdmUocGFyYW0pLnBpcGUobWFwKChyZXM6IERvY3VtZW50UmVzb3VyY2U8UmVjaXBlPikgPT4ge1xuICAgICAgLy8gd2UgYXJlIGluIGEgY3JlYXRpb24sIHRoZSBzYXZlIGlzIGEgcG9zdCB0aGF0IHJldHVybiByZXN1bHRcbiAgICAgIGlmIChyZXMgJiYgcmVzLmRhdGEpIHtcbiAgICAgICAgY29uc3QgcmVjaXBlID0gdGhpcy5yZWNpcGVTZXJ2aWNlLm5ldygpO1xuICAgICAgICByZWNpcGUuZmlsbChyZXMpO1xuICAgICAgICByZXR1cm4gcmVjaXBlW2BkYXRhYF0gYXMgUmVjaXBlO1xuICAgICAgfSBlbHNlIHsgLy8gd2UgYXJlIGluIGEgcGF0Y2ggcmV0dXJuIHRoZSBjdXJyZW50IHJlY2lwZSBhbHJlYWR5IHVwZGF0ZWRcbiAgICAgICAgcmV0dXJuIHRoaXMucmVjaXBlO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgcmVjaXBlJ3MgcmVsYXRpb25zaGlwcyBJbmdyZWRpZW50IGFuZCAgU3RlcHNcbiAgICogaWYgYXQgbGVhc3Qgb25lIHN0ZXBzIGhhcyBjaGFuZ2VkIHdpbGwgdXBkYXRlIHRoZSBmdWxsIGxpc3Qgb2Ygc3RlcCxcbiAgICogaWYgYXQgbGVhc3Qgb25lIGluZ3JlZGllbnQgY2hhbmdlZCBpdCAnbGwgdXBkYXRlIHRoZSBmdWxsIGxpc3Qgb2YgaW5ncmVkaWVudCxcbiAgICogaXQgY2FuIHVwZGF0ZSBpbmdyZGllbnQgbGlzdCB3aXRob3V0IHVwZGF0aW5nIHN0ZXBzIGxpc3QgYW5kIHZpY2UgdmVyc2EuXG4gICAqIEBwYXJhbSBjdXJyZW50UmVjaXBlIHRvIHVwZGF0ZSB0aGlzIHJlY2lwZSBhbHJlYWR5IGV4aXN0IGluIGJhY2tlbmQgaXQgaGFzIHRvIGhhZCBhbiBpZFxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVJlY2lwZVJlbGF0aW9uU2hpcHMoY3VycmVudFJlY2lwZTogUmVjaXBlKTogT2JzZXJ2YWJsZTxSZWNpcGU+IHtcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnJlY2lwZUZvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICBsZXQgb2JzTGlzdCA9IFtdO1xuICAgIGlmICh0aGlzLnJlY2lwZUZvcm0uZ2V0KCdpbmdyZWRpZW50cycpLmRpcnR5KXtcbiAgICAgIGNvbnN0IGluZ3JlZGllbnRzID0gdGhpcy5pbmdyZWRpZW50U2VydmljZS5jcmVhdGVPclVwZGF0ZUluZ3JlZGllbnRzKGN1cnJlbnRSZWNpcGUsIGZvcm1WYWx1ZS5pbmdyZWRpZW50cyk7XG4gICAgICBvYnNMaXN0LnB1c2godGhpcy5pbmdyZWRpZW50U2VydmljZS51cHNlcnRJbmdyZWRpZW50TGlzdChpbmdyZWRpZW50cykpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWxldGVJbmdyZWRpZW50c0xpc3QubGVuZ3RoID4gMCl7XG4gICAgICBvYnNMaXN0LnB1c2godGhpcy5pbmdyZWRpZW50U2VydmljZS5kZWxldGVJbmdyZWRpZW50TGlzdCh0aGlzLmRlbGV0ZUluZ3JlZGllbnRzTGlzdCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZWNpcGVGb3JtLmdldCgnc3RlcHMnKS5kaXJ0eSl7XG4gICAgICBjb25zdCBzdGVwcyA9IHRoaXMucmVjaXBlU3RlcHNTZXJ2aWNlLmZvcm1Ub1N0ZXBzTWFwcGVyKGN1cnJlbnRSZWNpcGUsIGZvcm1WYWx1ZS5zdGVwcyk7XG4gICAgICBvYnNMaXN0LnB1c2godGhpcy5yZWNpcGVTdGVwc1NlcnZpY2UuY3JlYXRlT3JVcGRhdGVSZWxhdGVkU3RlcHMoc3RlcHMpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVsZXRlU3RlcHNMaXN0Lmxlbmd0aCA+IDApe1xuICAgICAgb2JzTGlzdC5wdXNoKHRoaXMucmVjaXBlU3RlcHNTZXJ2aWNlLmRlbGV0ZVN0ZXBMaXN0KHRoaXMuZGVsZXRlU3RlcHNMaXN0KSk7XG4gICAgfVxuICAgIHJldHVybiBmb3JrSm9pbihvYnNMaXN0KS5waXBlKFxuICAgICAgbWFwKCgpID0+IGN1cnJlbnRSZWNpcGUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZWxhdGlvbnNoaXBzQ2hhbmdlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBpbmdDaGFuZ2UgPSB0aGlzLnJlY2lwZUZvcm0uZ2V0KCdpbmdyZWRpZW50cycpLmRpcnR5IHx8IHRoaXMuZGVsZXRlSW5ncmVkaWVudHNMaXN0Lmxlbmd0aCA+IDA7XG4gICAgY29uc3Qgc3RlcENoYW5nZSA9IHRoaXMucmVjaXBlRm9ybS5nZXQoJ3N0ZXBzJykuZGlydHkgfHwgdGhpcy5kZWxldGVTdGVwc0xpc3QubGVuZ3RoID4gMDtcbiAgICByZXR1cm4gaW5nQ2hhbmdlIHx8IHN0ZXBDaGFuZ2U7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGNyZWF0ZSBSZWNpcGVcbiAgICogaXQgY2FuIG9ubHkgdXBkYXRlIGNoYW5nZWQgcGFydCBvZiBhIHJlY2lwZVxuICAgKi9cbiAgcHJpdmF0ZSB1cHNlcnRSZWNpcGUoKTogT2JzZXJ2YWJsZTxSZWNpcGU+IHtcbiAgICAvLyBicmVhayB1cHNlcnQgOiB3ZSBoYXZlIHRvIGNob29zZSBiZWV0d2VuIHJlbGF0aW9uc2hpcHMgYW5kIHRoaXMgZmllbGRcbiAgICBkZWxldGUgdGhpcy5yZWNpcGUuYXR0cmlidXRlc1tgaW5ncmVkaWVudHMtc3RyYF07XG4gICAgZGVsZXRlIHRoaXMucmVjaXBlLmF0dHJpYnV0ZXNbYHN1Z2dlc3RlZGBdO1xuICAgIGRlbGV0ZSB0aGlzLnJlY2lwZS5hdHRyaWJ1dGVzW2Bwb3B1bGFyaXR5YF07XG4gICAgdGhpcy5oYW5kbGVSZWNpcGVTdGF0dXNXb3JrZmxvdygpO1xuICAgIHRoaXMuc2V0UmVsYXRpb25TaGlwSWZGb3JtUGFydElzRGlydHkoJ3JlY2lwZS10eXBlJyk7XG4gICAgdGhpcy5zZXRSZWxhdGlvblNoaXBJZkZvcm1QYXJ0SXNEaXJ0eSgncmVjaXBlLXN0YXR1cycpO1xuICAgIHRoaXMuc2V0UmVsYXRpb25TaGlwSWZGb3JtUGFydElzRGlydHkoJ3JlY2lwZS1wcm92aWRlcicpO1xuICAgIGlmICh0aGlzLmN1c3RvbVN1Ym1pdENhbGxiYWNrKSB7XG4gICAgICB0aGlzLnJlY2lwZS5hdHRyaWJ1dGVzID0geyAuLi4gdGhpcy5yZWNpcGUuYXR0cmlidXRlcywgLi4udGhpcy5yZWNpcGVGb3JtLmdldFJhd1ZhbHVlKCkuYXR0cmlidXRlcyB9O1xuICAgICAgdGhpcy5yZWNpcGVDaGFuZ2UuZW1pdCh0aGlzLnJlY2lwZSk7XG4gICAgICB0aGlzLnJlY2lwZUZvcm0uZ2V0KCdhdHRyaWJ1dGVzJykubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMuaXNTdWJtaXRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVjaXBlRm9ybS5nZXQoJ2F0dHJpYnV0ZXMnKT8uZGlydHkpIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVJlY2lwZUF0dHJpYnV0ZXMoKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAocmVjaXBlID0+IHtcbiAgICAgICAgICAvLyBtYXkgYmUgYSBjcmVhdGlvbiBvciBhbiB1cGRhdGUsIGFueXdheSB1cGRhdGVSZWNpcGVBdHRyaWJ1dGVzIHJldHVybiB0aGUgZmluYWwgcmVjaXBlXG4gICAgICAgICAgLy8gd2UgdXBkYXRlIHRoZSBjdXJyZW50IHJlY2lwZSwgdXNlZnVsbCBpbiBjYXNlIG9mIGNyZWF0aW9uIGFzIGl0IGlzIHVuZGVmaW5lZCB1bnRpbCBub3dcbiAgICAgICAgICBpZiAocmVjaXBlKSB7XG4gICAgICAgICAgICB0aGlzLnJlY2lwZSA9IHJlY2lwZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMucmVsYXRpb25zaGlwc0NoYW5nZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlUmVjaXBlUmVsYXRpb25TaGlwcyh0aGlzLnJlY2lwZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZihyZWNpcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNhbiBvbmx5IGJlIGFuIHVwZGF0ZSwgd2l0aCBvbmx5IHJlbGF0aW9uc2hpcHMgbW9kaWZzXG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVSZWNpcGVSZWxhdGlvblNoaXBzKHRoaXMucmVjaXBlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFJlbGF0aW9uU2hpcElmRm9ybVBhcnRJc0RpcnR5KGZvcm1QYXJ0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNpcGVGb3JtLmdldChgJHtmb3JtUGFydH1gKT8uZGlydHkpIHtcbiAgICAgIC8vIGZvcmNlIGZ1bGwgcmVjaXBlIHVwZGF0ZVxuICAgICAgdGhpcy5yZWNpcGVGb3JtLmdldCgnYXR0cmlidXRlcycpLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLnJlY2lwZS5hZGRSZWxhdGlvbnNoaXAodGhpcy5yZWNpcGVGb3JtLmdldChgJHtmb3JtUGFydH1gKS52YWx1ZSwgYCR7Zm9ybVBhcnR9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgd2hlbiBjaGFuZ2UgaGFzIGJlZW4gZG9uZSBiYWNrXG4gICAqIHJlc2V0IGZvcm0ncyBzdGF0ZXNcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRW1pdGlvbihyZWNpcGU6IFJlY2lwZSk6IHZvaWQge1xuICAgIHRoaXMucmVjaXBlQ2hhbmdlLmVtaXQocmVjaXBlID8gcmVjaXBlIDogdGhpcy5yZWNpcGUpO1xuICAgIHRoaXMucmVjaXBlRm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVSZWNpcGVTdGF0dXNXb3JrZmxvdygpIHtcbiAgICAvLyB1c2UgaWYgd2UgYXJlIHBhdGNoaW5nIHJlY2lwZSBhcyBhbiBub24gQWRtaW4gdXNlclxuICAgIGlmICghdGhpcy5pc0FkbWluICYmICF0aGlzLmN1c3RvbVN1Ym1pdENhbGxiYWNrKSB7XG4gICAgICB0aGlzLnJlY2lwZUZvcm0uZ2V0KCdyZWNpcGUtc3RhdHVzJykucGF0Y2hWYWx1ZSh0aGlzLnN0YXR1c1NlcnZpY2Uuc3VibWl0dGVkVmFsdWUpO1xuICAgICAgdGhpcy5yZWNpcGVGb3JtLmdldCgncmVjaXBlLXN0YXR1cycpLm1hcmtBc0RpcnR5KCk7XG4gICAgfVxuICAgIGxldCBmb3JtTWVkaWEgPSB0aGlzLnJlY2lwZUZvcm0uZ2V0KCdhdHRyaWJ1dGVzJykuZ2V0KCdtZWRpYS11cmwnKTtcbiAgICBpZiAoIXRoaXMucmVjaXBlLmF0dHJpYnV0ZXNbJ21lZGlhLXVybCddICYmICFmb3JtTWVkaWEudmFsdWUpIHtcbiAgICAgIGZvcm1NZWRpYS5wYXRjaFZhbHVlKCdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL3BlcnNvbmFsLXJlY2lwZXMvZGVmYXVsdF9pbWdfcGVyc29uYWxfcmVjaXBlLmpwZycpXG4gICAgfVxuICB9XG59XG5cblxuIiwiPGZvcm0gKm5nSWY9J3JlY2lwZUZvcm0nIFtmb3JtR3JvdXBdPVwicmVjaXBlRm9ybVwiIGNsYXNzPVwiZm9ybS1jb250YWluZXJcIj5cbiAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpXCI+XG4gICAgPG5nLW1pYW0tdGV4dC1pbnB1dCBjbGFzcz1cIm0tdGl0bGUtdGV4dC1pbnB1dFwiIG5nRGVmYXVsdENvbnRyb2wgW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ3RpdGxlJylcIiBwbGFjZWhvbGRlcj1cIlRpdHJlIGRlIGxhIHJlY2V0dGVcIj48L25nLW1pYW0tdGV4dC1pbnB1dD5cbiAgICA8ZGl2IGNsYXNzPVwicm93LWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctbWlhbS1kcmFnLWRyb3AtaW5wdXQgbmdEZWZhdWx0Q29udHJvbCBidXR0b25UZXh0PSdBam91dGVyIHVuZSBwaG90bycgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdtZWRpYS11cmwnKVwiXG4gICAgICAgICAgW2ltYWdlVXJsXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ21lZGlhLXVybCcpPy52YWx1ZVwiIFtwaG90b01vZGVdPSd0cnVlJz5cbiAgICAgICAgPC9uZy1taWFtLWRyYWctZHJvcC1pbnB1dD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY2lwZS1mb3JtX19ndWVzdHMgbS1kZWZhdWx0LWNhcmRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlY2lwZS1mb3JtX19ndWVzdHNfX2xhYmVsXCI+Tm9tYnJlIGRlIGNvbnZpdmVzPC9zcGFuPlxuICAgICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXQgbmdEZWZhdWx0Q29udHJvbCBmb3JtQ29udHJvbE5hbWU9XCJudW1iZXItb2YtZ3Vlc3RzXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ0aGlzLnJlY2lwZUZvcm0uY29udHJvbHNbJ2F0dHJpYnV0ZXMnXVsnY29udHJvbHMnXVtbJ251bWJlci1vZi1ndWVzdHMnXV1cIlxuICAgICAgICAgICAgY291bnRlcj0nNCcgbWluUmFuZ2U9JzAnIG1heFJhbmdlPSc5OTknPlxuICAgICAgICAgIDwvbmctbWlhbS1jb3VudGVyLWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJlY2lwZS1mb3JtX19hdHRpYnV0ZXNcIj5cbiAgICAgICAgPG5nLW1pYW0tc2VsZWN0LWlucHV0IG5nRGVmYXVsdENvbnRyb2wgcGxhY2Vob2xkZXI9J0Nob2lzaXIgdW4gdHlwZScgbGFiZWxQYXRoPSdhdHRyaWJ1dGVzLm5hbWUnXG4gICAgICAgICAgW29wdGlvbnNdPVwicmVjaXBlVHlwZVNlcnZpY2U/LmdldFR5cGVzKCkgfCBhc3luY1wiIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ3JlY2lwZS10eXBlJylcIj5cbiAgICAgICAgPC9uZy1taWFtLXNlbGVjdC1pbnB1dD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlY2lwZS1mb3JtX19hdHRpYnV0ZXNfX3NsaWRlcnNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVjaXBlLWZvcm1fX2F0dGlidXRlc19fc2xpZGVyXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1zbGlkZXIgbmdEZWZhdWx0Q29udHJvbCBbc3RlcHNdPVwiZGlmaWN1bHRpZXNcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgnZGlmZmljdWx0eScpXCIgW2ljb25zXT1cImljb25zRGlmaWN1bHRpZXNcIj5cbiAgICAgICAgICAgIDwvbmctbWlhbS1zbGlkZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPSdyZWNpcGVGb3JtJyBjbGFzcz1cInJlY2lwZS1mb3JtX19hdHRpYnV0ZXNfX3RpbWVzXCI+XG4gICAgICAgICAgPG5nLW1pYW0tdGltZS1waWNrZXIgbmdEZWZhdWx0Q29udHJvbCB0aXRsZT0nVGVtcHMgZGUgcHLDqXBhcmF0aW9uJ1xuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ3ByZXBhcmF0aW9uLXRpbWUnKVwiIFtpY29uXT0naWNvbi5UaW1lJz5cbiAgICAgICAgICA8L25nLW1pYW0tdGltZS1waWNrZXI+XG4gICAgICAgICAgPG5nLW1pYW0tdGltZS1waWNrZXIgbmdEZWZhdWx0Q29udHJvbCB0aXRsZT0nVGVtcHMgZGUgY3Vpc3NvbidcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdjb29raW5nLXRpbWUnKVwiIFtpY29uXT0naWNvbi5Ib3QnPjwvbmctbWlhbS10aW1lLXBpY2tlcj5cbiAgICAgICAgICA8bmctbWlhbS10aW1lLXBpY2tlciBuZ0RlZmF1bHRDb250cm9sIHRpdGxlPSdUZW1wcyBkZSByZXBvcydcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdyZXN0aW5nLXRpbWUnKVwiIFtpY29uXT0naWNvbi5XYWl0Jz48L25nLW1pYW0tdGltZS1waWNrZXI+XG4gICAgICAgICAgPG5nLW1pYW0tdGltZS1waWNrZXIgbmdEZWZhdWx0Q29udHJvbCB0aXRsZT0nVGVtcHMgZGUgcHLDqWNoYXVmZmFnZSdcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdyZXN0aW5nLXRpbWUnKVwiIFtpY29uXT0naWNvbi5QcmVoZWF0Jz5cbiAgICAgICAgICA8L25nLW1pYW0tdGltZS1waWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwicm93LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgIDxuZy1taWFtLWxpc3QtaW5wdXQgIGxhYmVsPVwiSW5ncsOpZGllbnRzXCIgbmdEZWZhdWx0Q29udHJvbCAoZGVsZXRlSWQpPVwiYWRkVG9EZWxldGVJbmdyZWRpZW50c0xpc3QoJGV2ZW50KVwiIFtpbmdyZWRpZW50TW9kZV09J3RydWUnXG4gICAgICAgIFtsaXN0XT1cInJlY2lwZUZvcm0uZ2V0KCdpbmdyZWRpZW50cycpXCIgZm9ybUFycmF5TmFtZT1cImluZ3JlZGllbnRzXCIgaGludD0naW5ncsOpZGllbnRzJz5cbiAgICAgIDwvbmctbWlhbS1saXN0LWlucHV0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgIDxuZy1taWFtLWxpc3QtaW5wdXQgbmdEZWZhdWx0Q29udHJvbCBsYWJlbD1cIsOJdGFwZXNcIiBmb3JtQXJyYXlOYW1lPVwic3RlcHNcIiAoZGVsZXRlSWQpPVwiYWRkVG9EZWxldGVTdGVwc0xpc3QoJGV2ZW50KVwiXG4gICAgICAgIFtsaXN0XT1cInJlY2lwZUZvcm0uZ2V0KCdzdGVwcycpXCIgaGludD0nw6l0YXBlcyc+PC9uZy1taWFtLWxpc3QtaW5wdXQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiICpuZ0lmPVwiaXNBZG1pblwiPlxuXG4gICAgICA8bmctbWlhbS1zZWxlY3QtaW5wdXQgbmdEZWZhdWx0Q29udHJvbCBwbGFjZWhvbGRlcj0nQ2hvaXNpciB1biBzdGF0dXMnIGxhYmVsUGF0aD0nYXR0cmlidXRlcy5uYW1lJ1xuICAgICAgW29wdGlvbnNdPVwic3RhdHVzZXMgfCBhc3luY1wiIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ3JlY2lwZS1zdGF0dXMnKVwiPlxuICAgICAgPC9uZy1taWFtLXNlbGVjdC1pbnB1dD5cblxuICAgICAgPG5nLW1pYW0tc2VsZWN0LWlucHV0IG5nRGVmYXVsdENvbnRyb2wgcGxhY2Vob2xkZXI9J0Nob2lzaXIgdW4gcHJvdmlkZXInIGxhYmVsUGF0aD0nYXR0cmlidXRlcy5uYW1lJ1xuICAgICAgW29wdGlvbnNdPVwicmVjaXBlUHJvdmlkZXJzZXJ2aWNlPy5wcm92aWRlckxpc3QgfCBhc3luY1wiW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgncmVjaXBlLXByb3ZpZGVyJylcIj5cbiAgICAgIDwvbmctbWlhbS1zZWxlY3QtaW5wdXQ+XG4gICAgICA8dGV4dGFyZWEgY2RrVGV4dGFyZWFBdXRvc2l6ZSBjZGtBdXRvc2l6ZU1pblJvd3M9XCIyMFwiIGNka0F1dG9zaXplTWF4Um93cz1cIjUwXCIgY2xhc3M9XCJtLWlucHV0XCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ2Rlc2NyaXB0aW9uJylcIj48L3RleHRhcmVhPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuPC9mb3JtPlxuPGRpdiBjbGFzcz0nYnV0dG9uLXJvdyc+XG4gIDxidXR0b24gY2xhc3M9XCJtLWJ1dHRvbi1zZWNvbmRhcnlcIiAoY2xpY2spPSdjYW5jZWwoKSc+QW5udWxlcjwvYnV0dG9uPlxuICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tcHJpbWFyeVwiIChjbGljayk9J3N1Ym1pdCgpJyBbZGlzYWJsZWRdPSdyZWNpcGVGb3JtPy5pbnZhbGlkIHx8wqAhcmVjaXBlRm9ybT8uZGlydHkgfHwgaXNTdWJtaXRpbmcnPlxuICAgIEVucmVnaXN0cmVyIGxhIHJlY2V0dGVcbiAgICA8L2J1dHRvbj5cbjwvZGl2PiJdfQ==
476
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWZvcm0vcmVjaXBlLWZvcm0uY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtZm9ybS9yZWNpcGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEdBRWxCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYSxXQUFXLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRzlELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ0ozQywrQkFDRTtJQUFBLDBDQUVzQjtJQUN0QiwwQ0FDNkc7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LGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO3dWQUdVLE1BQU07a0JBQWQsS0FBSztZQUNHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLHNCQUFzQjtrQkFBOUIsS0FBSztZQUNHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUNJLFlBQVk7a0JBQXJCLE1BQU07WUFDRyxRQUFRO2tCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZWNpcGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzL3JlY2lwZSc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmdyZWRpZW50IH0gZnJvbSAnLi4vLi4vX21vZGVscy9pbmdyZWRpZW50JztcbmltcG9ydCB7IFJlY2lwZVN0ZXAgfSBmcm9tICcuLi8uLi9fbW9kZWxzL3JlY2lwZS1zdGVwJztcbmltcG9ydCB7XG4gIEluZ3JlZGllbnRzU2VydmljZSxcbiAgUmVjaXBlc1NlcnZpY2UsXG4gIFJlY2lwZVN0YXR1c1NlcnZpY2UsXG4gIFJlY2lwZVN0ZXBzU2VydmljZSxcbiAgUmVjaXBlVHlwZVNlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBtYXAsIHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEb2N1bWVudFJlc291cmNlIH0gZnJvbSAnbmd4LWpzb25hcGknO1xuaW1wb3J0IHsgUmVjaXBlUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IFJlY2lwZVN0YXR1cyB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgTWVkaWFNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSByZWNpcGU6IFJlY2lwZTtcbiAgQElucHV0KCkgc2Vjb25kYXJ5QWN0aW9uVGV4dCA9ICdBbm51bGVyJztcbiAgQElucHV0KCkgcHJpbWFyeUFjdGlvblRleHQgPSAnRW5yZWdpc3RyZXIgbGEgcmVjZXR0ZSc7XG4gIEBJbnB1dCgpIHNlY29uZGFyeUJ1dHRvbkRpc2FibGUgPSBmYWxzZTsgLy8gSWYgdHJ1ZSwgZGlzYWJsZSB0aGUgc2Vjb25kYXJ5QnV0dG9uIHdoaWxlIHRoZXJlIGFyZSBubyBjaGFuZ2VzIGluIHRoZSBmb3JtXG4gIEBJbnB1dCgpIGN1c3RvbVN1Ym1pdENhbGxiYWNrID0gZmFsc2U7IC8vIElmIHRydWUsIGVtaXQgcmVjaXBlQ2hhbmdlIHRvIGxldCB0aGUgcGFyZW50IGhhbmRsZSByZWNpcGUgc2F2aW5nXG4gIEBPdXRwdXQoKSByZWNpcGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZWNpcGU+O1xuICBAT3V0cHV0KCkgY2FuY2VsZWQ6IEV2ZW50RW1pdHRlcjxSZWNpcGU+OyAvLyBUT0RPOiBGb3IgbW9yZSBjbGFyaXR5LCBzcGxpdCBpbnRvICdjYW5jZWxlZDx2b2lkPicgZXQgJ3NlY29uZGFyeUFjdGlvbjxSZWNpcGU+J1xuXG4gIHB1YmxpYyByZWNpcGVGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBpc1VwZGF0ZTogYm9vbGVhbjtcbiAgcHVibGljIGljb24gPSBJY29uO1xuICBwdWJsaWMgZGlmaWN1bHRpZXMgPSBbJ2ZhY2lsZScsICdtb3llbicsICdkaWZmaWNpbGUnXTtcbiAgcHVibGljIGljb25zRGlmaWN1bHRpZXMgPSBbdGhpcy5pY29uLkRpZmZpY3VsdHlMb3csIHRoaXMuaWNvbi5EaWZmaWN1bHR5TWVkaXVtLCB0aGlzLmljb24uRGlmZmljdWx0eUhpZ2h0XTtcbiAgcHVibGljIGNvc3RzID0gWydmYWlibGUnLCAnbW95ZW4nLCAnw6lsZXbDqSddO1xuICBwdWJsaWMgaWNvbnNDb3N0cyA9IFt0aGlzLmljb24uQ29zdExvdywgdGhpcy5pY29uLkNvc3RNZWRpdW0sIHRoaXMuaWNvbi5Db3N0SGlnaHRdO1xuICBwdWJsaWMgZGVsZXRlSW5ncmVkaWVudHNMaXN0OiBzdHJpbmdbXTtcbiAgcHVibGljIGRlbGV0ZVN0ZXBzTGlzdDogc3RyaW5nW107XG4gIHB1YmxpYyBpc0FkbWluOiBib29sZWFuO1xuICBwdWJsaWMgc3RhdHVzZXM6IE9ic2VydmFibGU8UmVjaXBlU3RhdHVzW10+O1xuICBwdWJsaWMgaXNTdWJtaXRpbmcgPSBmYWxzZTtcblxuICBwcml2YXRlIGZvcm1TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgcmVjaXBlUHJvdmlkZXJzZXJ2aWNlOiBSZWNpcGVQcm92aWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwdWJsaWMgcmVjaXBlVHlwZVNlcnZpY2U6IFJlY2lwZVR5cGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5ncmVkaWVudFNlcnZpY2U6IEluZ3JlZGllbnRzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZVN0ZXBzU2VydmljZTogUmVjaXBlU3RlcHNTZXJ2aWNlLFxuICAgIHB1YmxpYyBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgICBwdWJsaWMgc3RhdHVzU2VydmljZTogUmVjaXBlU3RhdHVzU2VydmljZVxuICApIHtcblxuICAgIHRoaXMuY2FuY2VsZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5yZWNpcGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5kZWxldGVJbmdyZWRpZW50c0xpc3QgPSBbXTtcbiAgICB0aGlzLmRlbGV0ZVN0ZXBzTGlzdCA9IFtdO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIHRoaXMuc3RhdHVzZXMgPSB0aGlzLnN0YXR1c1NlcnZpY2UuYWxsKCkucGlwZShtYXAocmVzID0+IHJlcy5kYXRhKSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudXNlclNlcnZpY2UuaXNBZG1pbi5zdWJzY3JpYmUoaXNBZG1pbiA9PiB7XG4gICAgICAgIHRoaXMuaXNBZG1pbiA9IGlzQWRtaW47XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pKTtcbiAgICB0aGlzLkluaXRSZWNpcGUoKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KCdyZWNpcGUnKSAmJiB0aGlzLnJlY2lwZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmlzVXBkYXRlID0gdHJ1ZTtcbiAgICAgIHRoaXMuaW5pdEZvcm0odGhpcy5yZWNpcGUpO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cblxuICAvKipcbiAgICogT25seSBmb3IgcmVjaXBlIGNyZWF0aW9uLlxuICAgKiBJbml0IGJsYW5rIHJlY2lwZVxuICAgKi9cbiAgcHJpdmF0ZSBJbml0UmVjaXBlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8gZmlyc3Qgc3RhdGUgYWZ0ZXIgY3JlYXRpb24gJ2xsIGJlIFNVQk1JVFRFRCB3ZSBwcmVzZXQgdGhpcyBmaWVsZCBiZWNhdXNlXG4gICAgLy8gbm9ybWFsIHVzZXIgY2FuJ3QgZmlsbCBpdCBhbmQgaXQncyBhIG1hbmRhdG9yeSBmaWVsZFxuICAgIC8vIGFkbWluIGNhbiBzdGlsbCBvdmVycmlkZSBpdFxuICAgIGlmICh0aGlzLnJlY2lwZSkgeyByZXR1cm4gb2YobnVsbCk7IH1cbiAgICByZXR1cm4gdGhpcy5zdGF0dXNTZXJ2aWNlLnN1Ym1pdHRlZC5waXBlKHN3aXRjaE1hcChzdGF0dXMgPT5cbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlclByb3ZpZGVyLnBpcGUoc2tpcFdoaWxlKHByb3ZpZGVyID0+IHByb3ZpZGVyID09IG51bGwpLFxuICAgICAgdGFwKHJlY2lwZVByb3ZpZGVyID0+IHtcbiAgICAgICAgdGhpcy5yZWNpcGUgPSB0aGlzLnJlY2lwZVNlcnZpY2UubmV3KCk7XG4gICAgICAgIHRoaXMucmVjaXBlLmFkZFJlbGF0aW9uc2hpcChzdGF0dXMsICdyZWNpcGUtc3RhdHVzJyk7XG4gICAgICAgIHRoaXMucmVjaXBlLmFkZFJlbGF0aW9uc2hpcChyZWNpcGVQcm92aWRlciwgJ3JlY2lwZS1wcm92aWRlcicpO1xuICAgICAgICBkZWxldGUgdGhpcy5yZWNpcGUuaWQ7XG4gICAgICAgIHRoaXMuaW5pdEZvcm0odGhpcy5yZWNpcGUpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIGNoYW5nZXMgYW5kIHJldHVybiB0aGVtIGluIGNhc2UgdGhleSBjb3VsZCBiZSB1c2VkIGFmdGVyIGJ1dCBkb24ndCBzYXZlIGl0XG4gICAqIFRPRE86IFdoZW4gd2Ugc3BsaXQgdGhlIG91dHB1dCwgcmVuYW1lIHNlY29uZGFyeUFjdGlvbigpIC0+IHNlY29uZGFyeUFjdGlvbi5lbWl0KHRoaXMucmVjaXBlKVxuICAgKi9cbiAgcHVibGljIGNhbmNlbCgpIHtcbiAgICB0aGlzLnNldFJlbGF0aW9uU2hpcElmRm9ybVBhcnRJc0RpcnR5KCdyZWNpcGUtdHlwZScpO1xuICAgIHRoaXMuc2V0UmVsYXRpb25TaGlwSWZGb3JtUGFydElzRGlydHkoJ3JlY2lwZS1zdGF0dXMnKTtcbiAgICB0aGlzLnNldFJlbGF0aW9uU2hpcElmRm9ybVBhcnRJc0RpcnR5KCdyZWNpcGUtcHJvdmlkZXInKTtcbiAgICB0aGlzLnJlY2lwZS5hdHRyaWJ1dGVzID0geyAuLi4gdGhpcy5yZWNpcGUuYXR0cmlidXRlcywgLi4udGhpcy5yZWNpcGVGb3JtLmdldFJhd1ZhbHVlKCkuYXR0cmlidXRlcyB9O1xuICAgIHRoaXMuY2FuY2VsZWQuZW1pdCh0aGlzLnJlY2lwZSk7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9EZWxldGVJbmdyZWRpZW50c0xpc3QoaW5ncmVkaWVudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZUluZ3JlZGllbnRzTGlzdC5wdXNoKGluZ3JlZGllbnRJZCk7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9EZWxldGVTdGVwc0xpc3Qoc3RlcElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZVN0ZXBzTGlzdC5wdXNoKHN0ZXBJZCk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNTdWJtaXRpbmcgPSB0cnVlO1xuICAgIHRoaXMudXBzZXJ0UmVjaXBlKCkuc3Vic2NyaWJlKChyZWNpcGUpID0+IHtcbiAgICAgIGlmIChyZWNpcGUpIHtcbiAgICAgICAgdGhpcy5kZWxldGVTdGVwc0xpc3QgPSBbXTtcbiAgICAgICAgdGhpcy5kZWxldGVJbmdyZWRpZW50c0xpc3QgPSBbXTtcbiAgICAgICAgdGhpcy5pc1N1Ym1pdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhhbmRsZUVtaXRpb24ocmVjaXBlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGFzc2ljIHVzZSBjYXNlOiBpZiB0aGUgZm9ybSBpcyBpbnZhbGlkLCBpZiBpdCBpcyBub3QgZGlydHkgb3IgaWYgdGhlIHJlY2lwZSBpcyBiZWluZyBzdWJtaXR0ZWQsIHRoZSBidXR0b25zIG11c3QgYmUgZGlzYWJsZWRcbiAgICogSWYgcmVjaXBlID09IG51bGwgLT4gY2xhc3NpYyB1c2UgY2FzZVxuICAgKiBJZiByZWNpcGUgIT0gbnVsbCAmIHN0YXR1cyAhPSBEUkFGVCAtPiBjbGFzc2ljIHVzZSBjYXNlXG4gICAqIGlmIHJlY2lwZSAhPSBudWxsICYgc3RhdHUgPT0gRFJBRlQgLT4gdGhlIGJ1dHRvbnMgbXVzdCBuZXZlciBiZSBkaXNhYmxlZFxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBidXR0b25zIHNob3VsZCBiZSBkaXNhYmxlZFxuICAgKi9cbiAgcHVibGljIGNhbnRTdWJtaXQoKSB7XG4gICAgcmV0dXJuICghdGhpcy5yZWNpcGUgfHwgdGhpcy5yZWNpcGUuc3RhdHVzLm5hbWUgIT09IHRoaXMuc3RhdHVzU2VydmljZS5kcmFmdFZhbHVlLm5hbWUpICYmXG4gICAgICAodGhpcy5yZWNpcGVGb3JtPy5pbnZhbGlkIHx8wqAhdGhpcy5yZWNpcGVGb3JtPy5kaXJ0eSB8fCB0aGlzLmlzU3VibWl0aW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB0aGlzIGZ1bmN0aW9uIGZpbGwgZm9ybSB2YWx1ZXMgd2l0aCBnaXZlbiByZWNpcGVcbiAgICogRm9ybSBpcyBkaXZpZGUgaW4gNCBwYXJ0IGF0dHJpYnV0ZXMsdHlwZSwgaW5ncmVkaWVudHMsIHN0ZXBzXG4gICAqIHRvIGZvbG93IHJlY2lwZSBtb2RlbCBpbiBvbiBoYW5kIGFuZCBpbiBvdGhlciBoYW5kIHRvIHVwZGF0ZSBvbmx5XG4gICAqIHBhcnRzIHRoYXQgaGF2ZSBiZWVuIGNoYW5nZSBieSB1c2VyIHRoYW5rcyB0byBkaXJ0eSBhdHRyaWJ1dGUgb25cbiAgICogZWFjaCBvZiB0aG9zZSBwYXJ0c1xuICAgKiBAcGFyYW0gcmVjaXBlIHVzZSB0byBmaWxsIGZvcm1cbiAgICovXG4gIHByaXZhdGUgaW5pdEZvcm0ocmVjaXBlOiBSZWNpcGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZvcm1TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAncmVjaXBlLXN0YXR1cyc6IG5ldyBGb3JtQ29udHJvbChyZWNpcGU/LnJlbGF0aW9uc2hpcHM/LltgcmVjaXBlLXN0YXR1c2BdPy5kYXRhLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICdyZWNpcGUtcHJvdmlkZXInOiBuZXcgRm9ybUNvbnRyb2wocmVjaXBlPy5yZWxhdGlvbnNoaXBzPy5bYHJlY2lwZS1wcm92aWRlcmBdPy5kYXRhPy5pZCA/XG4gICAgICAgIHJlY2lwZT8ucmVsYXRpb25zaGlwcz8uW2ByZWNpcGUtcHJvdmlkZXJgXT8uZGF0YSA6ICdwZXJzb25hbCcsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgYXR0cmlidXRlczogdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIHRpdGxlOiBuZXcgRm9ybUNvbnRyb2wocmVjaXBlLmF0dHJpYnV0ZXNbYHRpdGxlYF0sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAnbWVkaWEtdXJsJzogbmV3IEZvcm1Db250cm9sKHJlY2lwZS5hdHRyaWJ1dGVzW2BtZWRpYS11cmxgXSksXG4gICAgICAgIFsnbnVtYmVyLW9mLWd1ZXN0cyddOiBuZXcgRm9ybUNvbnRyb2wocmVjaXBlLmd1ZXN0cyA/XG4gICAgICAgICAgcmVjaXBlLmd1ZXN0cyA6IDQsIFtWYWxpZGF0b3JzLm1pbigxKSwgVmFsaWRhdG9ycy5tYXgoOTk5KV0pLFxuICAgICAgICAnZGVzY3JpcHRpb24nOiBuZXcgRm9ybUNvbnRyb2wocmVjaXBlLmF0dHJpYnV0ZXNbYGRlc2NyaXB0aW9uYF0pLFxuICAgICAgICAncHJlcGFyYXRpb24tdGltZSc6IG5ldyBGb3JtQ29udHJvbChyZWNpcGUuYXR0cmlidXRlc1tgcHJlcGFyYXRpb24tdGltZWBdID8gcmVjaXBlLmF0dHJpYnV0ZXNbYHByZXBhcmF0aW9uLXRpbWVgXSA6ICcnKSxcbiAgICAgICAgJ3ByZWhlYXRpbmctdGltZSc6IG5ldyBGb3JtQ29udHJvbChyZWNpcGUuYXR0cmlidXRlc1tgcHJlaGVhdGluZy10aW1lYF0pLFxuICAgICAgICAnY29va2luZy10aW1lJzogbmV3IEZvcm1Db250cm9sKHJlY2lwZS5hdHRyaWJ1dGVzW2Bjb29raW5nLXRpbWVgXSksXG4gICAgICAgICdyZXN0aW5nLXRpbWUnOiBuZXcgRm9ybUNvbnRyb2wocmVjaXBlLmF0dHJpYnV0ZXNbYHJlc3RpbmctdGltZWBdKSxcbiAgICAgICAgZGlmZmljdWx0eTogbmV3IEZvcm1Db250cm9sKHJlY2lwZS5hdHRyaWJ1dGVzW2BkaWZmaWN1bHR5YF0gPyByZWNpcGUuYXR0cmlidXRlc1tgZGlmZmljdWx0eWBdIDogMSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB9KSxcbiAgICAgICdyZWNpcGUtdHlwZSc6IG5ldyBGb3JtQ29udHJvbChyZWNpcGUucmVsYXRpb25zaGlwc1tgcmVjaXBlLXR5cGVgXS5kYXRhLmlkID8gcmVjaXBlLnJlbGF0aW9uc2hpcHNbYHJlY2lwZS10eXBlYF0uZGF0YSA6IG51bGwsXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgaW5ncmVkaWVudHM6IHRoaXMuaW5pdEluZ3JlZGllbnRGb3JtQXJyYXkocmVjaXBlKSxcbiAgICAgIHN0ZXBzOiB0aGlzLmluaXRTdGVwRm9ybUFycmF5KHJlY2lwZSlcbiAgICB9KTtcbiAgICB0aGlzLmZvcm1TdWJzY3JpcHRpb24gPSB0aGlzLnJlY2lwZUZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRm9yIGVhY2ggUmVjaXBlIEluZ3JlZGllbnQgd2lsbCBjcmVhdGUgYSBmb3JtXG4gICAqIHRoYXQgd2lsbCBiZSBncm91cCBpbiBhbiBmb3JtIEFycmF5XG4gICAqIEBwYXJhbSByZWNpcGUgY3VycmVudCByZWNpcGUgdGhhdCAnbGwgZmlsbCBmb3JtXG4gICAqL1xuICBwcml2YXRlIGluaXRJbmdyZWRpZW50Rm9ybUFycmF5KHJlY2lwZTogUmVjaXBlKTogRm9ybUFycmF5IHtcbiAgICBjb25zdCBpbmdyZWRpZW50cyA9IHRoaXMuZmIuYXJyYXkoW10pO1xuICAgIGNvbnN0IHJlY2lwZUluZ3JlZGllbnRzID0gcmVjaXBlLnJlbGF0aW9uc2hpcHNbYGluZ3JlZGllbnRzYF0uZGF0YTtcbiAgICByZWNpcGVJbmdyZWRpZW50cy5mb3JFYWNoKChpbmdyZWRpZW50OiBJbmdyZWRpZW50KSA9PiB7XG4gICAgICBpbmdyZWRpZW50cy5wdXNoKHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBpZDogbmV3IEZvcm1Db250cm9sKGluZ3JlZGllbnQuaWQpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICBxdWFudGl0eTogbmV3IEZvcm1Db250cm9sKGluZ3JlZGllbnQuYXR0cmlidXRlcy5xdWFudGl0eSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgdW5pdDogbmV3IEZvcm1Db250cm9sKGluZ3JlZGllbnQuYXR0cmlidXRlcy51bml0LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2woaW5ncmVkaWVudC5hdHRyaWJ1dGVzLm5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgICdwaWN0dXJlLXVybCc6IG5ldyBGb3JtQ29udHJvbChpbmdyZWRpZW50LmF0dHJpYnV0ZXNbJ3BpY3R1cmUtdXJsJ10pXG4gICAgICAgIH0pXG4gICAgICB9KSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGluZ3JlZGllbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvciBlYWNoIFJlY2lwZSBzdGVwcyB3aWxsIGNyZWF0ZSBhIGZvcm1cbiAgICogdGhhdCB3aWxsIGJlIGdyb3VwIGluIGFuIGZvcm0gQXJyYXlcbiAgICogQHBhcmFtIHJlY2lwZSBjdXJyZW50IHJlY2lwZSB0aGF0ICdsbCBmaWxsIGZvcm1cbiAgICovXG4gIHByaXZhdGUgaW5pdFN0ZXBGb3JtQXJyYXkocmVjaXBlOiBSZWNpcGUpOiBGb3JtQXJyYXkge1xuICAgIGNvbnN0IHN0ZXBzID0gdGhpcy5mYi5hcnJheShbXSk7XG4gICAgcmVjaXBlLnN0ZXBzLmZvckVhY2goKHN0ZXA6IFJlY2lwZVN0ZXApID0+IHN0ZXBzLnB1c2godGhpcy5mYi5ncm91cCh7XG4gICAgICBpZDogbmV3IEZvcm1Db250cm9sKHN0ZXAuaWQpLFxuICAgICAgYXR0cmlidXRlczogdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICdzdGVwLW51bWJlcic6IG5ldyBGb3JtQ29udHJvbChzdGVwLmF0dHJpYnV0ZXNbJ3N0ZXAtbnVtYmVyJ10pLFxuICAgICAgICBkZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKHN0ZXAuYXR0cmlidXRlcy5kZXNjcmlwdGlvbilcbiAgICAgIH0pXG4gICAgfSkpKTtcbiAgICByZXR1cm4gc3RlcHM7XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgY3VycmVudCByZWNpcGUgd2l0aCBmb3JtIHJlc3VsdFxuICAgKiByZXR1cm4gYW4gb2JzZXZhYmxlIHRoYXQnbGwgdXBkYXRlIG9yIGNyZWF0ZSByZWNpcGVcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlUmVjaXBlQXR0cmlidXRlcygpOiBPYnNlcnZhYmxlPFJlY2lwZT4ge1xuICAgIGNvbnN0IHBhcmFtID0ge1xuICAgICAgaW5jbHVkZTogWydpbmdyZWRpZW50cycsICdyZWNpcGUtc3RlcHMnLCAncmVjaXBlLXN0YXR1cycsICdyZWNpcGUtcHJvdmlkZXInLCAncmVjaXBlLXR5cGUnLCAndGFncyddXG4gICAgfTtcbiAgICB0aGlzLnJlY2lwZS5hdHRyaWJ1dGVzID0geyAuLi4gdGhpcy5yZWNpcGUuYXR0cmlidXRlcywgLi4udGhpcy5yZWNpcGVGb3JtLmdldFJhd1ZhbHVlKCkuYXR0cmlidXRlcyB9O1xuICAgIHJldHVybiB0aGlzLnJlY2lwZS5zYXZlKHBhcmFtKS5waXBlKG1hcCgocmVzOiBEb2N1bWVudFJlc291cmNlPFJlY2lwZT4pID0+IHtcbiAgICAgIC8vIHdlIGFyZSBpbiBhIGNyZWF0aW9uLCB0aGUgc2F2ZSBpcyBhIHBvc3QgdGhhdCByZXR1cm4gcmVzdWx0XG4gICAgICBpZiAocmVzICYmIHJlcy5kYXRhKSB7XG4gICAgICAgIGNvbnN0IHJlY2lwZSA9IHRoaXMucmVjaXBlU2VydmljZS5uZXcoKTtcbiAgICAgICAgcmVjaXBlLmZpbGwocmVzKTtcbiAgICAgICAgcmV0dXJuIHJlY2lwZVtgZGF0YWBdIGFzIFJlY2lwZTtcbiAgICAgIH0gZWxzZSB7IC8vIHdlIGFyZSBpbiBhIHBhdGNoIHJldHVybiB0aGUgY3VycmVudCByZWNpcGUgYWxyZWFkeSB1cGRhdGVkXG4gICAgICAgIHJldHVybiB0aGlzLnJlY2lwZTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHJlY2lwZSdzIHJlbGF0aW9uc2hpcHMgSW5ncmVkaWVudCBhbmQgIFN0ZXBzXG4gICAqIGlmIGF0IGxlYXN0IG9uZSBzdGVwcyBoYXMgY2hhbmdlZCB3aWxsIHVwZGF0ZSB0aGUgZnVsbCBsaXN0IG9mIHN0ZXAsXG4gICAqIGlmIGF0IGxlYXN0IG9uZSBpbmdyZWRpZW50IGNoYW5nZWQgaXQgJ2xsIHVwZGF0ZSB0aGUgZnVsbCBsaXN0IG9mIGluZ3JlZGllbnQsXG4gICAqIGl0IGNhbiB1cGRhdGUgaW5ncmRpZW50IGxpc3Qgd2l0aG91dCB1cGRhdGluZyBzdGVwcyBsaXN0IGFuZCB2aWNlIHZlcnNhLlxuICAgKiBAcGFyYW0gY3VycmVudFJlY2lwZSB0byB1cGRhdGUgdGhpcyByZWNpcGUgYWxyZWFkeSBleGlzdCBpbiBiYWNrZW5kIGl0IGhhcyB0byBoYWQgYW4gaWRcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVSZWNpcGVSZWxhdGlvblNoaXBzKGN1cnJlbnRSZWNpcGU6IFJlY2lwZSk6IE9ic2VydmFibGU8UmVjaXBlPiB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yZWNpcGVGb3JtLmdldFJhd1ZhbHVlKCk7XG4gICAgbGV0IG9ic0xpc3QgPSBbXTtcbiAgICBpZiAodGhpcy5yZWNpcGVGb3JtLmdldCgnaW5ncmVkaWVudHMnKS5kaXJ0eSl7XG4gICAgICBjb25zdCBpbmdyZWRpZW50cyA9IHRoaXMuaW5ncmVkaWVudFNlcnZpY2UuY3JlYXRlT3JVcGRhdGVJbmdyZWRpZW50cyhjdXJyZW50UmVjaXBlLCBmb3JtVmFsdWUuaW5ncmVkaWVudHMpO1xuICAgICAgb2JzTGlzdC5wdXNoKHRoaXMuaW5ncmVkaWVudFNlcnZpY2UudXBzZXJ0SW5ncmVkaWVudExpc3QoaW5ncmVkaWVudHMpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVsZXRlSW5ncmVkaWVudHNMaXN0Lmxlbmd0aCA+IDApe1xuICAgICAgb2JzTGlzdC5wdXNoKHRoaXMuaW5ncmVkaWVudFNlcnZpY2UuZGVsZXRlSW5ncmVkaWVudExpc3QodGhpcy5kZWxldGVJbmdyZWRpZW50c0xpc3QpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVjaXBlRm9ybS5nZXQoJ3N0ZXBzJykuZGlydHkpe1xuICAgICAgY29uc3Qgc3RlcHMgPSB0aGlzLnJlY2lwZVN0ZXBzU2VydmljZS5mb3JtVG9TdGVwc01hcHBlcihjdXJyZW50UmVjaXBlLCBmb3JtVmFsdWUuc3RlcHMpO1xuICAgICAgb2JzTGlzdC5wdXNoKHRoaXMucmVjaXBlU3RlcHNTZXJ2aWNlLmNyZWF0ZU9yVXBkYXRlUmVsYXRlZFN0ZXBzKHN0ZXBzKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlbGV0ZVN0ZXBzTGlzdC5sZW5ndGggPiAwKXtcbiAgICAgIG9ic0xpc3QucHVzaCh0aGlzLnJlY2lwZVN0ZXBzU2VydmljZS5kZWxldGVTdGVwTGlzdCh0aGlzLmRlbGV0ZVN0ZXBzTGlzdCkpO1xuICAgIH1cbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzTGlzdCkucGlwZShcbiAgICAgIG1hcCgoKSA9PiBjdXJyZW50UmVjaXBlKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVsYXRpb25zaGlwc0NoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5nQ2hhbmdlID0gdGhpcy5yZWNpcGVGb3JtLmdldCgnaW5ncmVkaWVudHMnKS5kaXJ0eSB8fCB0aGlzLmRlbGV0ZUluZ3JlZGllbnRzTGlzdC5sZW5ndGggPiAwO1xuICAgIGNvbnN0IHN0ZXBDaGFuZ2UgPSB0aGlzLnJlY2lwZUZvcm0uZ2V0KCdzdGVwcycpLmRpcnR5IHx8IHRoaXMuZGVsZXRlU3RlcHNMaXN0Lmxlbmd0aCA+IDA7XG4gICAgcmV0dXJuIGluZ0NoYW5nZSB8fCBzdGVwQ2hhbmdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBvciBjcmVhdGUgUmVjaXBlXG4gICAqIGl0IGNhbiBvbmx5IHVwZGF0ZSBjaGFuZ2VkIHBhcnQgb2YgYSByZWNpcGVcbiAgICovXG4gIHByaXZhdGUgdXBzZXJ0UmVjaXBlKCk6IE9ic2VydmFibGU8UmVjaXBlPiB7XG4gICAgLy8gYnJlYWsgdXBzZXJ0IDogd2UgaGF2ZSB0byBjaG9vc2UgYmVldHdlbiByZWxhdGlvbnNoaXBzIGFuZCB0aGlzIGZpZWxkXG4gICAgZGVsZXRlIHRoaXMucmVjaXBlLmF0dHJpYnV0ZXNbYGluZ3JlZGllbnRzLXN0cmBdO1xuICAgIGRlbGV0ZSB0aGlzLnJlY2lwZS5hdHRyaWJ1dGVzW2BzdWdnZXN0ZWRgXTtcbiAgICBkZWxldGUgdGhpcy5yZWNpcGUuYXR0cmlidXRlc1tgcG9wdWxhcml0eWBdO1xuICAgIHRoaXMuaGFuZGxlUmVjaXBlU3RhdHVzV29ya2Zsb3coKTtcbiAgICB0aGlzLnNldFJlbGF0aW9uU2hpcElmRm9ybVBhcnRJc0RpcnR5KCdyZWNpcGUtdHlwZScpO1xuICAgIHRoaXMuc2V0UmVsYXRpb25TaGlwSWZGb3JtUGFydElzRGlydHkoJ3JlY2lwZS1zdGF0dXMnKTtcbiAgICB0aGlzLnNldFJlbGF0aW9uU2hpcElmRm9ybVBhcnRJc0RpcnR5KCdyZWNpcGUtcHJvdmlkZXInKTtcbiAgICBpZiAodGhpcy5jdXN0b21TdWJtaXRDYWxsYmFjaykge1xuICAgICAgdGhpcy5yZWNpcGUuYXR0cmlidXRlcyA9IHsgLi4uIHRoaXMucmVjaXBlLmF0dHJpYnV0ZXMsIC4uLnRoaXMucmVjaXBlRm9ybS5nZXRSYXdWYWx1ZSgpLmF0dHJpYnV0ZXMgfTtcbiAgICAgIHRoaXMucmVjaXBlQ2hhbmdlLmVtaXQodGhpcy5yZWNpcGUpO1xuICAgICAgdGhpcy5yZWNpcGVGb3JtLmdldCgnYXR0cmlidXRlcycpLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLmlzU3VibWl0aW5nID0gZmFsc2U7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlY2lwZUZvcm0uZ2V0KCdhdHRyaWJ1dGVzJyk/LmRpcnR5KSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVSZWNpcGVBdHRyaWJ1dGVzKCkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHJlY2lwZSA9PiB7XG4gICAgICAgICAgLy8gbWF5IGJlIGEgY3JlYXRpb24gb3IgYW4gdXBkYXRlLCBhbnl3YXkgdXBkYXRlUmVjaXBlQXR0cmlidXRlcyByZXR1cm4gdGhlIGZpbmFsIHJlY2lwZVxuICAgICAgICAgIC8vIHdlIHVwZGF0ZSB0aGUgY3VycmVudCByZWNpcGUsIHVzZWZ1bGwgaW4gY2FzZSBvZiBjcmVhdGlvbiBhcyBpdCBpcyB1bmRlZmluZWQgdW50aWwgbm93XG4gICAgICAgICAgaWYgKHJlY2lwZSkge1xuICAgICAgICAgICAgdGhpcy5yZWNpcGUgPSByZWNpcGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnJlbGF0aW9uc2hpcHNDaGFuZ2VkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVJlY2lwZVJlbGF0aW9uU2hpcHModGhpcy5yZWNpcGUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YocmVjaXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjYW4gb25seSBiZSBhbiB1cGRhdGUsIHdpdGggb25seSByZWxhdGlvbnNoaXBzIG1vZGlmc1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlUmVjaXBlUmVsYXRpb25TaGlwcyh0aGlzLnJlY2lwZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRSZWxhdGlvblNoaXBJZkZvcm1QYXJ0SXNEaXJ0eShmb3JtUGFydDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjaXBlRm9ybS5nZXQoYCR7Zm9ybVBhcnR9YCk/LmRpcnR5KSB7XG4gICAgICAvLyBmb3JjZSBmdWxsIHJlY2lwZSB1cGRhdGVcbiAgICAgIHRoaXMucmVjaXBlRm9ybS5nZXQoJ2F0dHJpYnV0ZXMnKS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5yZWNpcGUuYWRkUmVsYXRpb25zaGlwKHRoaXMucmVjaXBlRm9ybS5nZXQoYCR7Zm9ybVBhcnR9YCkudmFsdWUsIGAke2Zvcm1QYXJ0fWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0IHdoZW4gY2hhbmdlIGhhcyBiZWVuIGRvbmUgYmFja1xuICAgKiByZXNldCBmb3JtJ3Mgc3RhdGVzXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUVtaXRpb24ocmVjaXBlOiBSZWNpcGUpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZUNoYW5nZS5lbWl0KHJlY2lwZSA/IHJlY2lwZSA6IHRoaXMucmVjaXBlKTtcbiAgICB0aGlzLnJlY2lwZUZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUmVjaXBlU3RhdHVzV29ya2Zsb3coKSB7XG4gICAgLy8gdXNlIGlmIHdlIGFyZSBwYXRjaGluZyByZWNpcGUgYXMgYW4gbm9uIEFkbWluIHVzZXJcbiAgICBpZiAoIXRoaXMuaXNBZG1pbiAmJiAhdGhpcy5jdXN0b21TdWJtaXRDYWxsYmFjaykge1xuICAgICAgdGhpcy5yZWNpcGVGb3JtLmdldCgncmVjaXBlLXN0YXR1cycpLnBhdGNoVmFsdWUodGhpcy5zdGF0dXNTZXJ2aWNlLnN1Ym1pdHRlZFZhbHVlKTtcbiAgICAgIHRoaXMucmVjaXBlRm9ybS5nZXQoJ3JlY2lwZS1zdGF0dXMnKS5tYXJrQXNEaXJ0eSgpO1xuICAgIH1cbiAgICBsZXQgZm9ybU1lZGlhID0gdGhpcy5yZWNpcGVGb3JtLmdldCgnYXR0cmlidXRlcycpLmdldCgnbWVkaWEtdXJsJyk7XG4gICAgaWYgKCF0aGlzLnJlY2lwZS5hdHRyaWJ1dGVzWydtZWRpYS11cmwnXSAmJiAhZm9ybU1lZGlhLnZhbHVlKSB7XG4gICAgICBmb3JtTWVkaWEucGF0Y2hWYWx1ZSgnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9wZXJzb25hbC1yZWNpcGVzL2RlZmF1bHRfaW1nX3BlcnNvbmFsX3JlY2lwZS5qcGcnKVxuICAgIH1cbiAgfVxufVxuXG5cbiIsIjxmb3JtICpuZ0lmPSdyZWNpcGVGb3JtJyBbZm9ybUdyb3VwXT1cInJlY2lwZUZvcm1cIiBjbGFzcz1cImZvcm0tY29udGFpbmVyXCI+XG4gIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKVwiPlxuICAgIDxuZy1taWFtLXRleHQtaW5wdXQgY2xhc3M9XCJtLXRpdGxlLXRleHQtaW5wdXRcIiBuZ0RlZmF1bHRDb250cm9sIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCd0aXRsZScpXCIgcGxhY2Vob2xkZXI9XCJUaXRyZSBkZSBsYSByZWNldHRlXCI+PC9uZy1taWFtLXRleHQtaW5wdXQ+XG4gICAgPGRpdiBjbGFzcz1cInJvdy1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgPG5nLW1pYW0tZHJhZy1kcm9wLWlucHV0IG5nRGVmYXVsdENvbnRyb2wgYnV0dG9uVGV4dD0nQWpvdXRlciB1bmUgcGhvdG8nICBbZm9ybUNvbnRyb2xdPVwicmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgnbWVkaWEtdXJsJylcIlxuICAgICAgICAgIFtpbWFnZVVybF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdtZWRpYS11cmwnKT8udmFsdWVcIiBbcGhvdG9Nb2RlXT0ndHJ1ZSc+XG4gICAgICAgIDwvbmctbWlhbS1kcmFnLWRyb3AtaW5wdXQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWNpcGUtZm9ybV9fZ3Vlc3RzIG0tZGVmYXVsdC1jYXJkXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWNpcGUtZm9ybV9fZ3Vlc3RzX19sYWJlbFwiPk5vbWJyZSBkZSBjb252aXZlczwvc3Bhbj5cbiAgICAgICAgICA8bmctbWlhbS1jb3VudGVyLWlucHV0IG5nRGVmYXVsdENvbnRyb2wgZm9ybUNvbnRyb2xOYW1lPVwibnVtYmVyLW9mLWd1ZXN0c1wiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidGhpcy5yZWNpcGVGb3JtLmNvbnRyb2xzWydhdHRyaWJ1dGVzJ11bJ2NvbnRyb2xzJ11bWydudW1iZXItb2YtZ3Vlc3RzJ11dXCJcbiAgICAgICAgICAgIGNvdW50ZXI9JzQnIG1pblJhbmdlPScwJyBtYXhSYW5nZT0nOTk5Jz5cbiAgICAgICAgICA8L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWNpcGUtZm9ybV9fYXR0aWJ1dGVzXCI+XG4gICAgICAgIDxuZy1taWFtLXNlbGVjdC1pbnB1dCBuZ0RlZmF1bHRDb250cm9sIHBsYWNlaG9sZGVyPSdDaG9pc2lyIHVuIHR5cGUnIGxhYmVsUGF0aD0nYXR0cmlidXRlcy5uYW1lJ1xuICAgICAgICAgIFtvcHRpb25zXT1cInJlY2lwZVR5cGVTZXJ2aWNlPy5nZXRUeXBlcygpIHwgYXN5bmNcIiBbZm9ybUNvbnRyb2xdPVwicmVjaXBlRm9ybT8uZ2V0KCdyZWNpcGUtdHlwZScpXCI+XG4gICAgICAgIDwvbmctbWlhbS1zZWxlY3QtaW5wdXQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWNpcGUtZm9ybV9fYXR0aWJ1dGVzX19zbGlkZXJzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlY2lwZS1mb3JtX19hdHRpYnV0ZXNfX3NsaWRlclwiPlxuICAgICAgICAgICAgPG5nLW1pYW0tc2xpZGVyIG5nRGVmYXVsdENvbnRyb2wgW3N0ZXBzXT1cImRpZmljdWx0aWVzXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ2RpZmZpY3VsdHknKVwiIFtpY29uc109XCJpY29uc0RpZmljdWx0aWVzXCI+XG4gICAgICAgICAgICA8L25nLW1pYW0tc2xpZGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj0ncmVjaXBlRm9ybScgY2xhc3M9XCJyZWNpcGUtZm9ybV9fYXR0aWJ1dGVzX190aW1lc1wiPlxuICAgICAgICAgIDxuZy1taWFtLXRpbWUtcGlja2VyIG5nRGVmYXVsdENvbnRyb2wgdGl0bGU9J1RlbXBzIGRlIHByw6lwYXJhdGlvbidcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdwcmVwYXJhdGlvbi10aW1lJylcIiBbaWNvbl09J2ljb24uVGltZSc+XG4gICAgICAgICAgPC9uZy1taWFtLXRpbWUtcGlja2VyPlxuICAgICAgICAgIDxuZy1taWFtLXRpbWUtcGlja2VyIG5nRGVmYXVsdENvbnRyb2wgdGl0bGU9J1RlbXBzIGRlIGN1aXNzb24nXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgnY29va2luZy10aW1lJylcIiBbaWNvbl09J2ljb24uSG90Jz48L25nLW1pYW0tdGltZS1waWNrZXI+XG4gICAgICAgICAgPG5nLW1pYW0tdGltZS1waWNrZXIgbmdEZWZhdWx0Q29udHJvbCB0aXRsZT0nVGVtcHMgZGUgcmVwb3MnXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgncmVzdGluZy10aW1lJylcIiBbaWNvbl09J2ljb24uV2FpdCc+PC9uZy1taWFtLXRpbWUtcGlja2VyPlxuICAgICAgICAgIDxuZy1taWFtLXRpbWUtcGlja2VyIG5nRGVmYXVsdENvbnRyb2wgdGl0bGU9J1RlbXBzIGRlIHByw6ljaGF1ZmZhZ2UnXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgncmVzdGluZy10aW1lJylcIiBbaWNvbl09J2ljb24uUHJlaGVhdCc+XG4gICAgICAgICAgPC9uZy1taWFtLXRpbWUtcGlja2VyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cInJvdy1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICA8bmctbWlhbS1saXN0LWlucHV0ICBsYWJlbD1cIkluZ3LDqWRpZW50c1wiIG5nRGVmYXVsdENvbnRyb2wgKGRlbGV0ZUlkKT1cImFkZFRvRGVsZXRlSW5ncmVkaWVudHNMaXN0KCRldmVudClcIiBbaW5ncmVkaWVudE1vZGVdPSd0cnVlJ1xuICAgICAgICBbbGlzdF09XCJyZWNpcGVGb3JtLmdldCgnaW5ncmVkaWVudHMnKVwiIGZvcm1BcnJheU5hbWU9XCJpbmdyZWRpZW50c1wiIGhpbnQ9J2luZ3LDqWRpZW50cyc+XG4gICAgICA8L25nLW1pYW0tbGlzdC1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICA8bmctbWlhbS1saXN0LWlucHV0IG5nRGVmYXVsdENvbnRyb2wgbGFiZWw9XCLDiXRhcGVzXCIgZm9ybUFycmF5TmFtZT1cInN0ZXBzXCIgKGRlbGV0ZUlkKT1cImFkZFRvRGVsZXRlU3RlcHNMaXN0KCRldmVudClcIlxuICAgICAgICBbbGlzdF09XCJyZWNpcGVGb3JtLmdldCgnc3RlcHMnKVwiIGhpbnQ9J8OpdGFwZXMnPjwvbmctbWlhbS1saXN0LWlucHV0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIiAqbmdJZj1cImlzQWRtaW5cIj5cblxuICAgICAgPG5nLW1pYW0tc2VsZWN0LWlucHV0IG5nRGVmYXVsdENvbnRyb2wgcGxhY2Vob2xkZXI9J0Nob2lzaXIgdW4gc3RhdHVzJyBsYWJlbFBhdGg9J2F0dHJpYnV0ZXMubmFtZSdcbiAgICAgIFtvcHRpb25zXT1cInN0YXR1c2VzIHwgYXN5bmNcIiBbZm9ybUNvbnRyb2xdPVwicmVjaXBlRm9ybT8uZ2V0KCdyZWNpcGUtc3RhdHVzJylcIj5cbiAgICAgIDwvbmctbWlhbS1zZWxlY3QtaW5wdXQ+XG5cbiAgICAgIDxuZy1taWFtLXNlbGVjdC1pbnB1dCBuZ0RlZmF1bHRDb250cm9sIHBsYWNlaG9sZGVyPSdDaG9pc2lyIHVuIHByb3ZpZGVyJyBsYWJlbFBhdGg9J2F0dHJpYnV0ZXMubmFtZSdcbiAgICAgIFtvcHRpb25zXT1cInJlY2lwZVByb3ZpZGVyc2VydmljZT8ucHJvdmlkZXJMaXN0IHwgYXN5bmNcIltmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ3JlY2lwZS1wcm92aWRlcicpXCI+XG4gICAgICA8L25nLW1pYW0tc2VsZWN0LWlucHV0PlxuICAgICAgPHRleHRhcmVhIGNka1RleHRhcmVhQXV0b3NpemUgY2RrQXV0b3NpemVNaW5Sb3dzPVwiMjBcIiBjZGtBdXRvc2l6ZU1heFJvd3M9XCI1MFwiIGNsYXNzPVwibS1pbnB1dFwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdkZXNjcmlwdGlvbicpXCI+PC90ZXh0YXJlYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvZm9ybT5cbjxkaXYgY2xhc3M9J2J1dHRvbi1yb3cnPlxuICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tc2Vjb25kYXJ5XCIgKGNsaWNrKT0nY2FuY2VsKCknPkFubnVsZXI8L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cIm0tYnV0dG9uLXByaW1hcnlcIiAoY2xpY2spPSdzdWJtaXQoKScgW2Rpc2FibGVkXT0ncmVjaXBlRm9ybT8uaW52YWxpZCB8fMKgIXJlY2lwZUZvcm0/LmRpcnR5IHx8IGlzU3VibWl0aW5nJz5cbiAgICBFbnJlZ2lzdHJlciBsYSByZWNldHRlXG4gICAgPC9idXR0b24+XG48L2Rpdj4iXX0=
@@ -117,7 +117,7 @@ function RecipeStepperComponent_ng_container_28_ng_miam_list_input_41_Template(r
117
117
  i0.ɵɵelementEnd();
118
118
  } if (rf & 2) {
119
119
  const ctx_r13 = i0.ɵɵnextContext(2);
120
- i0.ɵɵproperty("placeholder", ctx_r13.INGREDIENT_PLACEHOLDER)("ingredientMode", true)("list", ctx_r13.recipeForm.get("ingredients"))("instructions", ctx_r13.INGREDIENT_INSTRUCTIONS);
120
+ i0.ɵɵproperty("placeholder", ctx_r13.INGREDIENT_PLACEHOLDER)("instructions", ctx_r13.INGREDIENT_INSTRUCTIONS)("list", ctx_r13.recipeForm.get("ingredients"))("ingredientMode", true)("ingredientsPictures", ctx_r13.ingredientsPictures);
121
121
  } }
122
122
  function RecipeStepperComponent_ng_container_28_ng_miam_list_input_42_Template(rf, ctx) { if (rf & 1) {
123
123
  const _r28 = i0.ɵɵgetCurrentView();
@@ -189,7 +189,7 @@ function RecipeStepperComponent_ng_container_28_Template(rf, ctx) { if (rf & 1)
189
189
  i0.ɵɵelementContainerEnd();
190
190
  i0.ɵɵelementStart(38, "div", 19, 20);
191
191
  i0.ɵɵtemplate(40, RecipeStepperComponent_ng_container_28_div_40_Template, 5, 6, "div", 40);
192
- i0.ɵɵtemplate(41, RecipeStepperComponent_ng_container_28_ng_miam_list_input_41_Template, 1, 4, "ng-miam-list-input", 41);
192
+ i0.ɵɵtemplate(41, RecipeStepperComponent_ng_container_28_ng_miam_list_input_41_Template, 1, 5, "ng-miam-list-input", 41);
193
193
  i0.ɵɵtemplate(42, RecipeStepperComponent_ng_container_28_ng_miam_list_input_42_Template, 1, 3, "ng-miam-list-input", 42);
194
194
  i0.ɵɵelementEnd();
195
195
  i0.ɵɵelementContainerEnd();
@@ -220,7 +220,7 @@ function RecipeStepperComponent_ng_container_28_Template(rf, ctx) { if (rf & 1)
220
220
  i0.ɵɵadvance(1);
221
221
  i0.ɵɵproperty("ngIf", ctx_r2.displayTags);
222
222
  i0.ɵɵadvance(5);
223
- i0.ɵɵproperty("buttonText", (ctx_r2.recipeForm == null ? null : (tmp_6_0 = ctx_r2.recipeForm.get("attributes")) == null ? null : (tmp_6_1 = tmp_6_0.get("media-url")) == null ? null : tmp_6_1.value == null ? null : tmp_6_1.value.length) > 0 ? "Modifier la photo (2MB max)" : "Ajouter une photo (2MB max)")("formControl", ctx_r2.recipeForm == null ? null : (tmp_7_0 = ctx_r2.recipeForm.get("attributes")) == null ? null : tmp_7_0.get("media-url"))("imageUrl", ctx_r2.recipeForm == null ? null : (tmp_8_0 = ctx_r2.recipeForm.get("attributes")) == null ? null : (tmp_8_1 = tmp_8_0.get("media-url")) == null ? null : tmp_8_1.value)("photoMode", false);
223
+ i0.ɵɵproperty("buttonText", (ctx_r2.recipeForm == null ? null : (tmp_6_0 = ctx_r2.recipeForm.get("attributes")) == null ? null : (tmp_6_1 = tmp_6_0.get("media-url")) == null ? null : tmp_6_1.value == null ? null : tmp_6_1.value.length) > 0 ? "Modifier la photo (2MB max)" : "Ajouter une photo (2MB max)")("formControl", ctx_r2.recipeForm == null ? null : (tmp_7_0 = ctx_r2.recipeForm.get("attributes")) == null ? null : tmp_7_0.get("media-url"))("imageUrl", ctx_r2.recipeForm == null ? null : (tmp_8_0 = ctx_r2.recipeForm.get("attributes")) == null ? null : (tmp_8_1 = tmp_8_0.get("media-url")) == null ? null : tmp_8_1.value)("photoMode", true);
224
224
  i0.ɵɵadvance(1);
225
225
  i0.ɵɵproperty("ngIf", ctx_r2.bigImageWarning);
226
226
  i0.ɵɵadvance(3);
@@ -256,6 +256,7 @@ export class RecipeStepperComponent extends RecipeFormComponent {
256
256
  constructor() {
257
257
  super(...arguments);
258
258
  this.displayTags = false;
259
+ this.ingredientsPictures = { visible: false, editable: false };
259
260
  this.INGREDIENT_PLACEHOLDER = 'Exemple :\n500g de farine\n250g de beurre\nhuile d\'olive\n4 tranches de jambon';
260
261
  this.STEP_PLACEHOLDER = `Exemple :\nHacher grossièrement le céleri et l'oignon.\nCouper le chou-fleur en petits bouquets.`;
261
262
  this.INGREDIENT_INSTRUCTIONS = 'Vous pouvez saisir un ingrédient ou copier coller une liste d’ingrédients. \n Une ligne correspond à un ingrédient.';
@@ -362,7 +363,7 @@ RecipeStepperComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeStepperCompo
362
363
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.topAnchor = _t.first);
363
364
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stepperLinks = _t.first);
364
365
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.steps = _t);
365
- } }, inputs: { displayTags: "displayTags" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 37, vars: 17, consts: [[1, "miam-recipe-stepper__anchor"], ["topAnchor", ""], [1, "miam-recipe-stepper"], [1, "miam-recipe-stepper__padding"], [1, "m-button-secondary", 3, "click"], ["primaryColor", "var(--m-color-primary)", 3, "iconName"], [1, "miam-recipe-stepper__links"], ["stepperLinks", ""], [1, "miam-recipe-stepper__link", 3, "ngClass", "click"], [1, "miam-recipe-stepper__link__number"], [1, "m-body-typo", "miam-recipe-stepper__link__name"], [1, "miam-recipe-stepper__link__divider"], [3, "formGroup", 4, "ngIf", "ngIfElse"], ["loading", ""], [1, "miam-recipe-stepper__footer"], [1, "m-button-secondary", 3, "disabled", "click"], [1, "m-button-primary", 3, "disabled", "click"], [3, "display", "currentTags", "close", "savedTags", 4, "ngIf"], [3, "formGroup"], [1, "miam-recipe-stepper__section"], ["step", ""], [1, "miam-recipe-stepper__mandatory"], ["ngDefaultControl", "", "placeholder", "Titre de la recette", 1, "m-title-text-input", 3, "formControl"], [1, "miam-recipe-stepper__type__label"], ["ngDefaultControl", "", 3, "formControl"], [1, "miam-recipe-stepper__section__guests", "m-default-card"], [1, "miam-recipe-stepper__guests__label"], ["ngDefaultControl", "", "formControlName", "number-of-guests", "minRange", "1", "maxRange", "999", 3, "counter", "counterChange"], ["class", "miam-recipe-stepper__tags", 4, "ngIf"], [1, "miam-recipe-stepper__section__row"], [1, "miam-recipe-stepper__picture"], ["ngDefaultControl", "", 3, "buttonText", "formControl", "imageUrl", "photoMode", "bigFileDropped", "onFileDropped"], ["class", "miam-recipe-stepper__picture__warning", 4, "ngIf"], [1, "miam-recipe-stepper__row__description"], [1, "m-h1-typo"], ["cdkTextareaAutosize", "", "cdkAutosizeMinRows", "20", "cdkAutosizeMaxRows", "50", "maxlength", "250", 1, "m-input", 3, "formControl"], [1, "miam-recipe-stepper__description__counter"], ["class", "miam-recipe-stepper__section__times", 4, "ngIf"], [1, "miam-recipe-stepper__attibutes__slider"], ["ngDefaultControl", "", 3, "steps", "formControl", "icons"], ["class", "miam-recipe-stepper__mobile__buttons", 4, "ngIf"], ["label", "Ingr\u00E9dients", "ngDefaultControl", "", "formArrayName", "ingredients", "hint", "ingr\u00E9dients", 3, "placeholder", "ingredientMode", "list", "instructions", "deleteId", "orderHasChanged", 4, "ngIf"], ["ngDefaultControl", "", "label", "\u00C9tapes", "formArrayName", "steps", "hint", "\u00E9tapes", 3, "placeholder", "list", "instructions", "deleteId", "orderHasChanged", 4, "ngIf"], [1, "miam-recipe-stepper__tags"], [1, "miam-recipe-stepper__tags__title"], [1, "miam-recipe-stepper__tags__recap"], ["class", "miam-recipe-stepper__tag", 3, "ngClass", 4, "ngFor", "ngForOf"], ["primaryColor", "var(--m-color-onyx)", 3, "iconName"], [1, "miam-recipe-stepper__tag", 3, "ngClass"], [1, "miam-recipe-stepper__tag__name"], ["primaryColor", "var(--m-color-grey01)", 1, "miam-recipe-stepper__tag__icon", 3, "iconName", "click"], [1, "miam-recipe-stepper__picture__warning"], ["primaryColor", "var(--m-color-warning-text)", 3, "iconName"], [1, "miam-recipe-stepper__picture__warning__background"], [1, "miam-recipe-stepper__section__times"], ["ngDefaultControl", "", "title", "Temps de pr\u00E9paration", 3, "formControl", "icon"], ["ngDefaultControl", "", "title", "Temps de cuisson", 3, "formControl", "icon"], ["ngDefaultControl", "", "title", "Temps de repos", 3, "formControl", "icon"], [1, "miam-recipe-stepper__mobile__buttons"], [1, "m-button-secondary", 3, "ngClass", "click"], ["label", "Ingr\u00E9dients", "ngDefaultControl", "", "formArrayName", "ingredients", "hint", "ingr\u00E9dients", 3, "placeholder", "ingredientMode", "list", "instructions", "deleteId", "orderHasChanged"], ["ngDefaultControl", "", "label", "\u00C9tapes", "formArrayName", "steps", "hint", "\u00E9tapes", 3, "placeholder", "list", "instructions", "deleteId", "orderHasChanged"], [3, "display", "currentTags", "close", "savedTags"]], template: function RecipeStepperComponent_Template(rf, ctx) { if (rf & 1) {
366
+ } }, inputs: { displayTags: "displayTags", ingredientsPictures: "ingredientsPictures" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 37, vars: 17, consts: [[1, "miam-recipe-stepper__anchor"], ["topAnchor", ""], [1, "miam-recipe-stepper"], [1, "miam-recipe-stepper__padding"], [1, "m-button-secondary", 3, "click"], ["primaryColor", "var(--m-color-primary)", 3, "iconName"], [1, "miam-recipe-stepper__links"], ["stepperLinks", ""], [1, "miam-recipe-stepper__link", 3, "ngClass", "click"], [1, "miam-recipe-stepper__link__number"], [1, "m-body-typo", "miam-recipe-stepper__link__name"], [1, "miam-recipe-stepper__link__divider"], [3, "formGroup", 4, "ngIf", "ngIfElse"], ["loading", ""], [1, "miam-recipe-stepper__footer"], [1, "m-button-secondary", 3, "disabled", "click"], [1, "m-button-primary", 3, "disabled", "click"], [3, "display", "currentTags", "close", "savedTags", 4, "ngIf"], [3, "formGroup"], [1, "miam-recipe-stepper__section"], ["step", ""], [1, "miam-recipe-stepper__mandatory"], ["ngDefaultControl", "", "placeholder", "Titre de la recette", 1, "m-title-text-input", 3, "formControl"], [1, "miam-recipe-stepper__type__label"], ["ngDefaultControl", "", 3, "formControl"], [1, "miam-recipe-stepper__section__guests", "m-default-card"], [1, "miam-recipe-stepper__guests__label"], ["ngDefaultControl", "", "formControlName", "number-of-guests", "minRange", "1", "maxRange", "999", 3, "counter", "counterChange"], ["class", "miam-recipe-stepper__tags", 4, "ngIf"], [1, "miam-recipe-stepper__section__row"], [1, "miam-recipe-stepper__picture"], ["ngDefaultControl", "", 3, "buttonText", "formControl", "imageUrl", "photoMode", "bigFileDropped", "onFileDropped"], ["class", "miam-recipe-stepper__picture__warning", 4, "ngIf"], [1, "miam-recipe-stepper__row__description"], [1, "m-h1-typo"], ["cdkTextareaAutosize", "", "cdkAutosizeMinRows", "20", "cdkAutosizeMaxRows", "50", "maxlength", "250", 1, "m-input", 3, "formControl"], [1, "miam-recipe-stepper__description__counter"], ["class", "miam-recipe-stepper__section__times", 4, "ngIf"], [1, "miam-recipe-stepper__attibutes__slider"], ["ngDefaultControl", "", 3, "steps", "formControl", "icons"], ["class", "miam-recipe-stepper__mobile__buttons", 4, "ngIf"], ["ngDefaultControl", "", "label", "Ingr\u00E9dients", "hint", "ingr\u00E9dients", "formArrayName", "ingredients", 3, "placeholder", "instructions", "list", "ingredientMode", "ingredientsPictures", "deleteId", "orderHasChanged", 4, "ngIf"], ["ngDefaultControl", "", "label", "\u00C9tapes", "formArrayName", "steps", "hint", "\u00E9tapes", 3, "placeholder", "list", "instructions", "deleteId", "orderHasChanged", 4, "ngIf"], [1, "miam-recipe-stepper__tags"], [1, "miam-recipe-stepper__tags__title"], [1, "miam-recipe-stepper__tags__recap"], ["class", "miam-recipe-stepper__tag", 3, "ngClass", 4, "ngFor", "ngForOf"], ["primaryColor", "var(--m-color-onyx)", 3, "iconName"], [1, "miam-recipe-stepper__tag", 3, "ngClass"], [1, "miam-recipe-stepper__tag__name"], ["primaryColor", "var(--m-color-grey01)", 1, "miam-recipe-stepper__tag__icon", 3, "iconName", "click"], [1, "miam-recipe-stepper__picture__warning"], ["primaryColor", "var(--m-color-warning-text)", 3, "iconName"], [1, "miam-recipe-stepper__picture__warning__background"], [1, "miam-recipe-stepper__section__times"], ["ngDefaultControl", "", "title", "Temps de pr\u00E9paration", 3, "formControl", "icon"], ["ngDefaultControl", "", "title", "Temps de cuisson", 3, "formControl", "icon"], ["ngDefaultControl", "", "title", "Temps de repos", 3, "formControl", "icon"], [1, "miam-recipe-stepper__mobile__buttons"], [1, "m-button-secondary", 3, "ngClass", "click"], ["ngDefaultControl", "", "label", "Ingr\u00E9dients", "hint", "ingr\u00E9dients", "formArrayName", "ingredients", 3, "placeholder", "instructions", "list", "ingredientMode", "ingredientsPictures", "deleteId", "orderHasChanged"], ["ngDefaultControl", "", "label", "\u00C9tapes", "formArrayName", "steps", "hint", "\u00E9tapes", 3, "placeholder", "list", "instructions", "deleteId", "orderHasChanged"], [3, "display", "currentTags", "close", "savedTags"]], template: function RecipeStepperComponent_Template(rf, ctx) { if (rf & 1) {
366
367
  i0.ɵɵelement(0, "div", 0, 1);
367
368
  i0.ɵɵelementStart(2, "div", 2);
368
369
  i0.ɵɵelementStart(3, "div", 3);
@@ -442,7 +443,7 @@ RecipeStepperComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeStepperCompo
442
443
  i0.ɵɵtextInterpolate1(" ", ctx.primaryActionText, " ");
443
444
  i0.ɵɵadvance(1);
444
445
  i0.ɵɵproperty("ngIf", ctx.displayTags && ctx.recipe);
445
- } }, directives: [i1.IconComponent, i2.NgClass, i2.NgIf, i3.NgControlStatusGroup, i3.FormGroupDirective, i4.TextInputComponent, i3.DefaultValueAccessor, i3.NgControlStatus, i3.FormControlDirective, i5.RecipeTypeChooserComponent, i6.CounterInputComponent, i3.FormControlName, i7.DragDropInputComponent, i3.MaxLengthValidator, i8.SliderComponent, i2.NgForOf, i9.TimePickerComponent, i10.ListInputComponent, i3.FormArrayName, i11.LoaderComponent, i12.TagsSelectorComponent], styles: ["@charset \"UTF-8\";.miam-recipe-stepper__anchor{bottom:0;height:250px;margin-top:-250px;position:relative}.miam-recipe-stepper{display:flex;flex-direction:column;width:100%}.miam-recipe-stepper label{font-size:19px;line-height:24px}.miam-recipe-stepper label span{color:var(--m-color-secondary)}.miam-recipe-stepper .miam-recipe-stepper__padding{background-color:var(--m-color-unpure-white);height:32px;position:relative;width:100%}.miam-recipe-stepper .miam-recipe-stepper__padding button{left:40px;padding:8px 16px;position:absolute;z-index:3}.miam-recipe-stepper .miam-recipe-stepper__padding button ng-miam-icon{height:16px;margin-left:0;padding-top:20px;transform:rotate(90deg)}.miam-recipe-stepper .miam-recipe-stepper__padding button ng-miam-icon svg path:first-of-type{fill:none}.miam-recipe-stepper .miam-recipe-stepper__links{align-items:center;background-color:var(--m-color-unpure-white);display:flex;justify-content:space-evenly;padding:16px 0;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:3}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__links{align-items:baseline;justify-content:center;width:100vw}}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link{align-items:center;cursor:pointer;display:flex;flex-direction:column;justify-content:center}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link .miam-recipe-stepper__link__number{align-items:center;border:1px solid;border-radius:64px;color:var(--m-color-grey02);display:flex;font-size:32px;font-style:normal;font-weight:700;height:64px;justify-content:center;line-height:44px;width:64px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link .miam-recipe-stepper__link__number{font-size:22px;height:40px;line-height:32px;width:40px}}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link .miam-recipe-stepper__link__name{color:var(--m-color-grey02);padding-top:8px}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link.active .miam-recipe-stepper__link__number{background-color:var(--m-color-secondary);border-color:var(--m-color-secondary);color:var(--m-color-unpure-white)}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link.active .miam-recipe-stepper__link__name{color:var(--m-color-secondary)}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link__divider{background-color:var(--m-color-slate);height:1px;width:64px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link__divider{width:40px}}.miam-recipe-stepper .miam-recipe-stepper__section{align-items:center;display:flex;flex-direction:column;gap:64px;justify-content:center;padding:84px 0;position:relative;scroll-margin-top:175px;width:100%}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section{gap:0;justify-content:flex-start;padding:24px 36px;width:100vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__mandatory{bottom:0;color:var(--m-color-danger);position:absolute;right:32px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__mandatory{right:16px}}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .m-title-text-input .m-input{align-items:flex-start;background-color:transparent;border:none;display:flex;flex-direction:column-reverse;justify-content:flex-start;max-width:unset;min-width:unset}.miam-recipe-stepper .miam-recipe-stepper__section .m-title-text-input .miam-text-input__input{border:1px solid var(--m-color-light-slate);border-radius:4px;max-width:90vw;min-width:90vw}.miam-recipe-stepper .miam-recipe-stepper__section .m-title-text-input .miam-text-input__label.input__label__top,.miam-recipe-stepper .miam-recipe-stepper__section .m-title-text-input .miam-text-input__label:not(.input__label__top){background-color:transparent;color:var(--m-color-black);font-size:24px;font-weight:700;padding-bottom:16px;position:static;transform:none}.miam-recipe-stepper .miam-recipe-stepper__section .m-title-text-input .miam-text-input__label:after{color:var(--m-color-warning-text);content:\"*\"}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__type__label{color:var(--m-color-black);font-size:24px;font-weight:700;padding-bottom:16px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__type__label{padding:16px 0;width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section:nth-child(2n){background-color:var(--m-color-primary-light)}.miam-recipe-stepper .miam-recipe-stepper__section ng-miam-text-input .miam-text-input{background-color:var(--m-color-unpure-white)}.miam-recipe-stepper .miam-recipe-stepper__section ng-miam-select-input .miam-select{background-color:var(--m-color-unpure-white);width:330px}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__guests{display:flex;gap:16px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__guests{align-items:center;flex-direction:column;justify-content:center;margin:16px 0;width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags{align-items:center;display:flex;flex-direction:column}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__title{font-size:16px;font-weight:700}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap{align-items:center;display:flex;flex-flow:row wrap;margin:10px 8px;max-width:80vw}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag{align-items:center;background-color:var(--m-color-primary-light);border-radius:4px;display:flex;margin:6px;padding:8px 12px}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag.meal_type{background-color:var(--m-color-tag-meal-type)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag.ingredient_category{background-color:var(--m-color-tag-ingredient-category)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag.equipment{background-color:var(--m-color-tag-equipment)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag.diet{background-color:var(--m-color-tag-diet)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag .miam-recipe-stepper__tag__name{color:var(--m-color-grey01)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag .miam-recipe-stepper__tag__icon .icon-container{-webkit-tap-highlight-color:transparent;cursor:pointer;margin:0 0 0 16px}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .m-button-secondary ng-miam-icon{margin:0 16px 0 0}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row{display:flex;flex-wrap:wrap;gap:64px;justify-content:center;width:100%}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row{gap:0;width:100vw}}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__row__description{width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__row__description label{margin-top:16px}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__row__description textarea.m-input{height:150px;max-width:700px;resize:none;width:700px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__row__description textarea.m-input{width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__row__description .miam-recipe-stepper__description__counter{color:var(--m-color-light-slate);margin:8px;text-align:end}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__picture{display:flex;flex-direction:column;gap:8px;width:330px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__picture{width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__picture .miam-uploader{margin-bottom:0}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__picture .miam-recipe-stepper__picture__warning{border:1px solid var(--m-color-warning);border-radius:8px;color:var(--m-color-warning-text);display:flex;gap:12px;padding:8px;position:relative}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__picture .miam-recipe-stepper__picture__warning .miam-recipe-stepper__picture__warning__background{background-color:var(--m-color-warning);border-radius:8px;height:100%;left:0;opacity:.15;position:absolute;top:0;width:100%}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__times{display:flex;flex-wrap:wrap;gap:32px;justify-content:space-evenly}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__times .miam-time-picker{align-items:center;flex-direction:column;justify-content:center;margin-bottom:16px;width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__attibutes__slider{width:560px}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__attibutes__slider label{text-align:center;width:100%}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__attibutes__slider{width:90vw}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__attibutes__slider label{width:100vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input{display:flex;flex-direction:row-reverse;gap:32px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input{flex-direction:column;gap:0;width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input .miam-list-input__actions{margin-top:50px;position:relative}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input .miam-list-input__actions{margin-top:0}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input .miam-list-input__actions textarea{height:300px!important;max-height:300px!important;max-width:calc(98vw - 776px);min-height:300px!important;width:400px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input .miam-list-input__actions textarea{height:unset!important;max-width:unset!important;min-height:110px!important;width:unset!important}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input .miam-list-input__actions button{margin-top:16px}.miam-recipe-stepper .miam-recipe-stepper__section ng-miam-list-input:first-of-type .miam-list-input__actions .miam-list-input__actions__instructions:before{content:\"Merci d'indiquer la quantit\u00E9 en premier comme indiqu\u00E9 dans les exemples.\\a\\a\";font-weight:700}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__mobile__buttons{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__mobile__buttons button{margin-right:0}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__mobile__buttons button.active{background-color:var(--m-color-primary);color:var(--m-color-white)}.miam-recipe-stepper ng-miam-loader{display:flex;justify-content:center;padding:50vh;width:100%}.miam-recipe-stepper .miam-recipe-stepper__footer{display:flex;gap:64px;justify-content:center;padding:64px 0}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__footer{display:grid;gap:8px;grid-template-columns:repeat(2,1fr);padding:16px 8px}}"], encapsulation: 2, changeDetection: 0 });
446
+ } }, directives: [i1.IconComponent, i2.NgClass, i2.NgIf, i3.NgControlStatusGroup, i3.FormGroupDirective, i4.TextInputComponent, i3.DefaultValueAccessor, i3.NgControlStatus, i3.FormControlDirective, i5.RecipeTypeChooserComponent, i6.CounterInputComponent, i3.FormControlName, i7.DragDropInputComponent, i3.MaxLengthValidator, i8.SliderComponent, i2.NgForOf, i9.TimePickerComponent, i10.ListInputComponent, i3.FormArrayName, i11.LoaderComponent, i12.TagsSelectorComponent], styles: ["@charset \"UTF-8\";.miam-recipe-stepper__anchor{bottom:0;height:250px;margin-top:-250px;position:relative}.miam-recipe-stepper{display:flex;flex-direction:column;width:100%}.miam-recipe-stepper label{font-size:19px;line-height:24px}.miam-recipe-stepper label span{color:var(--m-color-secondary)}.miam-recipe-stepper .miam-recipe-stepper__padding{background-color:var(--m-color-unpure-white);height:32px;position:relative;width:100%}.miam-recipe-stepper .miam-recipe-stepper__padding button{left:40px;padding:8px 16px;position:absolute;z-index:3}.miam-recipe-stepper .miam-recipe-stepper__padding button ng-miam-icon{height:16px;margin-left:0;padding-top:20px;transform:rotate(90deg)}.miam-recipe-stepper .miam-recipe-stepper__padding button ng-miam-icon svg path:first-of-type{fill:none}.miam-recipe-stepper .miam-recipe-stepper__links{align-items:center;background-color:var(--m-color-unpure-white);display:flex;justify-content:space-evenly;padding:16px 0;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:3}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__links{align-items:baseline;justify-content:center;width:100vw}}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link{align-items:center;cursor:pointer;display:flex;flex-direction:column;justify-content:center}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link .miam-recipe-stepper__link__number{align-items:center;border:1px solid;border-radius:64px;color:var(--m-color-grey02);display:flex;font-size:32px;font-style:normal;font-weight:700;height:64px;justify-content:center;line-height:44px;width:64px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link .miam-recipe-stepper__link__number{font-size:22px;height:40px;line-height:32px;width:40px}}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link .miam-recipe-stepper__link__name{color:var(--m-color-grey02);padding-top:8px}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link.active .miam-recipe-stepper__link__number{background-color:var(--m-color-secondary);border-color:var(--m-color-secondary);color:var(--m-color-unpure-white)}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link.active .miam-recipe-stepper__link__name{color:var(--m-color-secondary)}.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link__divider{background-color:var(--m-color-slate);height:1px;width:64px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__links .miam-recipe-stepper__link__divider{width:40px}}.miam-recipe-stepper .miam-recipe-stepper__section{align-items:center;display:flex;flex-direction:column;gap:64px;justify-content:center;padding:84px 0;position:relative;scroll-margin-top:175px;width:100%}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section{gap:0;justify-content:flex-start;padding:24px 36px;width:100vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__mandatory{bottom:0;color:var(--m-color-danger);position:absolute;right:32px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__mandatory{right:16px}}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .m-title-text-input .m-input{align-items:flex-start;background-color:transparent;border:none;display:flex;flex-direction:column-reverse;justify-content:flex-start;max-width:unset;min-width:unset}.miam-recipe-stepper .miam-recipe-stepper__section .m-title-text-input .miam-text-input__input{border:1px solid var(--m-color-light-slate);border-radius:4px;max-width:90vw;min-width:90vw}.miam-recipe-stepper .miam-recipe-stepper__section .m-title-text-input .miam-text-input__label.input__label__top,.miam-recipe-stepper .miam-recipe-stepper__section .m-title-text-input .miam-text-input__label:not(.input__label__top){background-color:transparent;color:var(--m-color-black);font-size:24px;font-weight:700;padding-bottom:16px;position:static;transform:none}.miam-recipe-stepper .miam-recipe-stepper__section .m-title-text-input .miam-text-input__label:after{color:var(--m-color-warning-text);content:\"*\"}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__type__label{color:var(--m-color-black);font-size:24px;font-weight:700;padding-bottom:16px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__type__label{padding:16px 0;width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section:nth-child(2n){background-color:var(--m-color-primary-light)}.miam-recipe-stepper .miam-recipe-stepper__section ng-miam-text-input .miam-text-input{background-color:var(--m-color-unpure-white)}.miam-recipe-stepper .miam-recipe-stepper__section ng-miam-select-input .miam-select{background-color:var(--m-color-unpure-white);width:330px}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__guests{display:flex;gap:16px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__guests{align-items:center;flex-direction:column;justify-content:center;margin:16px 0;width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags{align-items:center;display:flex;flex-direction:column}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__title{font-size:16px;font-weight:700}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap{align-items:center;display:flex;flex-flow:row wrap;margin:10px 8px;max-width:80vw}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag{align-items:center;background-color:var(--m-color-primary-light);border-radius:4px;display:flex;margin:6px;padding:8px 12px}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag.meal_type{background-color:var(--m-color-tag-meal-type)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag.ingredient_category{background-color:var(--m-color-tag-ingredient-category)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag.equipment{background-color:var(--m-color-tag-equipment)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag.diet{background-color:var(--m-color-tag-diet)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag .miam-recipe-stepper__tag__name{color:var(--m-color-grey01)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .miam-recipe-stepper__tags__recap .miam-recipe-stepper__tag .miam-recipe-stepper__tag__icon .icon-container{-webkit-tap-highlight-color:transparent;cursor:pointer;margin:0 0 0 16px}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__tags .m-button-secondary ng-miam-icon{margin:0 16px 0 0}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row{display:flex;flex-wrap:wrap;gap:64px;justify-content:center;width:100%}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row{gap:0;width:100vw}}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__row__description{width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__row__description label{margin-top:16px}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__row__description textarea.m-input{height:150px;max-width:700px;resize:none;width:700px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__row__description textarea.m-input{width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__row__description .miam-recipe-stepper__description__counter{color:var(--m-color-light-slate);margin:8px;text-align:end}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__picture{display:flex;flex-direction:column;gap:8px;width:330px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__picture{width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__picture .miam-uploader{margin-bottom:0}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__picture .miam-recipe-stepper__picture__warning{border:1px solid var(--m-color-warning);border-radius:8px;color:var(--m-color-warning-text);display:flex;gap:12px;padding:8px;position:relative}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__row .miam-recipe-stepper__picture .miam-recipe-stepper__picture__warning .miam-recipe-stepper__picture__warning__background{background-color:var(--m-color-warning);border-radius:8px;height:100%;left:0;opacity:.15;position:absolute;top:0;width:100%}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__times{display:flex;flex-wrap:wrap;gap:32px;justify-content:space-evenly}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__section__times .miam-time-picker{align-items:center;flex-direction:column;justify-content:center;margin-bottom:16px;width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__attibutes__slider{width:560px}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__attibutes__slider label{text-align:center;width:100%}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__attibutes__slider{width:90vw}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__attibutes__slider label{width:100vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input{display:flex;flex-direction:row-reverse;gap:32px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input{flex-direction:column;gap:0;width:90vw}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input .miam-list-input__actions{margin-top:50px;position:relative}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input .miam-list-input__actions{margin-top:0}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input .miam-list-input__actions textarea{height:300px!important;max-height:300px!important;max-width:calc(98vw - 776px);min-height:300px!important;width:400px}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input .miam-list-input__actions textarea{height:unset!important;max-width:unset!important;min-height:110px!important;width:unset!important}}.miam-recipe-stepper .miam-recipe-stepper__section .miam-list-input .miam-list-input__actions button{margin-top:16px}@media (min-width:1024px){.miam-recipe-stepper .miam-recipe-stepper__section ng-miam-list-input{width:calc(100% - 16px)}}.miam-recipe-stepper .miam-recipe-stepper__section ng-miam-list-input:first-of-type .miam-list-input__actions .miam-list-input__actions__instructions:before{content:\"Merci d'indiquer la quantit\u00E9 en premier comme indiqu\u00E9 dans les exemples.\\a\\a\";font-weight:700}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__mobile__buttons{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__mobile__buttons button{margin-right:0}.miam-recipe-stepper .miam-recipe-stepper__section .miam-recipe-stepper__mobile__buttons button.active{background-color:var(--m-color-primary);color:var(--m-color-white)}.miam-recipe-stepper ng-miam-loader{display:flex;justify-content:center;padding:50vh;width:100%}.miam-recipe-stepper .miam-recipe-stepper__footer{display:flex;gap:64px;justify-content:center;padding:64px 0}@media (max-width:1023px){.miam-recipe-stepper .miam-recipe-stepper__footer{display:grid;gap:8px;grid-template-columns:repeat(2,1fr);padding:16px 8px}}"], encapsulation: 2, changeDetection: 0 });
446
447
  const ɵRecipeStepperComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(RecipeStepperComponent);
447
448
  /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(RecipeStepperComponent, [{
448
449
  type: Component,
@@ -455,6 +456,8 @@ const ɵRecipeStepperComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFa
455
456
  }]
456
457
  }], null, { displayTags: [{
457
458
  type: Input
459
+ }], ingredientsPictures: [{
460
+ type: Input
458
461
  }], topAnchor: [{
459
462
  type: ViewChild,
460
463
  args: ['topAnchor']
@@ -465,4 +468,4 @@ const ɵRecipeStepperComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFa
465
468
  type: ViewChildren,
466
469
  args: ['step']
467
470
  }] }); })();
468
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLXN0ZXBwZXIvcmVjaXBlLXN0ZXBwZXIuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtc3RlcHBlci9yZWNpcGUtc3RlcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUNsSCxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ2tEL0QsK0JBQ0U7SUFBQSxnQ0FBNkM7SUFBQSxZQUF1QjtJQUFBLGlCQUFPO0lBQzNFLHdDQUVlO0lBRnNDLGdRQUF3QjtJQUU3RSxpQkFBZTtJQUNqQixpQkFBTTs7OztJQUxxRixtREFBeUI7SUFDckUsZUFBdUI7SUFBdkIsNkNBQXVCO0lBQ1UsZUFBdUI7SUFBdkIsNkNBQXVCOzs7O0lBTDNHLCtCQUNFO0lBQUEsZ0NBQStDO0lBQUEsb0JBQUk7SUFBQSxpQkFBTztJQUMxRCwrQkFDRTtJQUFBLCtGQUNFO0lBS0osaUJBQU07SUFDTixpQ0FDRTtJQURpQyxtTkFBNkIsSUFBSSxLQUFFO0lBQ3BFLG1DQUF1RjtJQUN2Riw0QkFBTTtJQUFBLHVCQUFPO0lBQUEsaUJBQU87SUFDdEIsaUJBQVM7SUFDWCxpQkFBTTs7O0lBWEcsZUFBbUQ7SUFBbkQsaUhBQW1EO0lBUVAsZUFBc0I7SUFBdEIsMkNBQXNCOzs7SUFnQnZFLCtCQUNFO0lBQUEsbUNBQW1HO0lBQ25HLDRCQUFNO0lBQUEsa0pBQXFHO0lBQUEsaUJBQU87SUFDbEgsMEJBQXFFO0lBQ3ZFLGlCQUFNOzs7SUFIVSxlQUF5QjtJQUF6Qiw4Q0FBeUI7OztJQWlCN0MsK0JBQ0U7SUFBQSwwQ0FFc0I7SUFDdEIsMENBQzZHO0lBQzdHLDBDQUM4RztJQUNoSCxpQkFBTTs7Ozs7O0lBTkYsZUFBc0U7SUFBdEUsbUtBQXNFLDJCQUFBO0lBR3RFLGVBQWtFO0lBQWxFLCtKQUFrRSwwQkFBQTtJQUVsRSxlQUFrRTtJQUFsRSwrSkFBa0UsMkJBQUE7Ozs7O0lBYXhFLCtCQUNFO0lBQUEsa0NBQWlIO0lBQXRDLG9OQUE4QixJQUFJLEtBQUU7SUFBRSwyQkFBVztJQUFBLGlCQUFTO0lBQ3JJLGtDQUFrSDtJQUF0QyxvTkFBOEIsS0FBSyxLQUFFO0lBQUMsZ0NBQVc7SUFBQSxpQkFBUztJQUN4SSxpQkFBTTs7O0lBRitCLGVBQXVDO0lBQXZDLDRFQUF1QztJQUN2QyxlQUF3QztJQUF4Qyw2RUFBd0M7Ozs7SUFHN0UsOENBR3FCO0lBRm5CLDRRQUErQyx5TkFBb0IsMkJBQW1CLElBQXZDO0lBRWpELGlCQUFxQjs7O0lBRnFFLDREQUFzQyx3QkFBQSwrQ0FBQSxpREFBQTs7OztJQUloSSw4Q0FDNEw7SUFBMUwsc1FBQXlDLHlOQUFvQiwyQkFBbUIsSUFBdkM7SUFBNEgsaUJBQXFCOzs7SUFENUUsc0RBQWdDLDZFQUFBLDJDQUFBOzs7O0lBakdwSixpQ0FDRTtJQUFBLGlDQUNFO0lBQ0EsbUNBQ0U7SUFBQSwrQkFBNEM7SUFBQSxxQ0FBcUI7SUFBQSxpQkFBTTtJQUV2RSx5Q0FFcUI7SUFDckIsaUNBQWdEO0lBQUEsa0NBQWtCO0lBQUEsNEJBQU07SUFBQSxrQkFBQztJQUFBLGlCQUFPO0lBQUMsaUJBQVE7SUFFekYsbURBQTRIO0lBRTVILGdDQUNFO0lBQUEsaUNBQWlEO0lBQUEsbUNBQWtCO0lBQUEsaUJBQU87SUFDMUUsa0RBSXdCO0lBSHRCLG9QQUFxQztJQUd2QyxpQkFBd0I7SUFDMUIsaUJBQU07SUFFTiwwRkFDRTtJQWNKLGlCQUFNO0lBRU4sb0NBQ0U7SUFBQSxnQ0FDRTtJQUNBLGdDQUNFO0lBQUEsb0RBSzBCO0lBRHhCLGlQQUF3QyxJQUFJLEtBQUUsa09BQXdDLEtBQUssS0FBN0M7SUFDaEQsaUJBQTBCO0lBQzFCLDBGQUNFO0lBSUosaUJBQU07SUFFTixnQ0FDRTtJQUFBLCtCQUFzQjtJQUFBLGFBQXNEO0lBQUEsaUJBQUs7SUFDakYsOEJBQU87SUFBQSwwQ0FBeUI7SUFBQSxpQkFBUTtJQUN4QyxnQ0FDK0Y7SUFDN0YsZ0NBQXVEO0lBQUEsYUFBMEU7SUFBQSw2QkFBTTtJQUFBLHNCQUFLO0lBQUEsaUJBQU87SUFBQyxpQkFBTTtJQUc5SixpQkFBTTtJQUNSLGlCQUFNO0lBRU4sMEZBQ0U7SUFTRixnQ0FDRTtJQUFBLDhCQUFPO0lBQUEsd0RBQWtDO0lBQUEsaUJBQVE7SUFDakQsc0NBRWlCO0lBQ25CLGlCQUFNO0lBQ1IsaUJBQU07SUFDUiwwQkFBZTtJQUVmLG9DQUNFO0lBQUEsMEZBQ0U7SUFJRix3SEFHQTtJQUVBLHdIQUN1SztJQUN6SyxpQkFBTTtJQUNSLDBCQUFlOzs7Ozs7Ozs7Ozs7Ozs7O0lBcEcrQiw2Q0FBd0I7SUFDdEQsZUFBMkM7SUFBM0Msa0dBQTJDO0lBTW5ELGVBQTJEO0lBQTNELHNKQUEyRDtJQUlmLGVBQThDO0lBQTlDLHFHQUE4QztJQU14RixlQUE2RTtJQUE3RSxtS0FBNkU7SUFLNUUsZUFBbUI7SUFBbkIseUNBQW1CO0lBc0JsQixlQUFnSjtJQUFoSixnVEFBZ0osNklBQUEscUxBQUEsb0JBQUE7SUFLL0YsZUFBdUI7SUFBdkIsNkNBQXVCO0lBUXBELGVBQXNEO0lBQXRELDZMQUFzRDtJQUcxRSxlQUFpRTtJQUFqRSw4SkFBaUU7SUFDVixlQUEwRTtJQUExRSwyUEFBMEU7SUFNbEksZUFBa0I7SUFBbEIsd0NBQWtCO0lBWVksZUFBcUI7SUFBckIsMENBQXFCLGdKQUFBLGtDQUFBO0lBUXJELGVBQWdCO0lBQWhCLHNDQUFnQjtJQUtBLGVBQXNDO0lBQXRDLG1FQUFzQztJQUt2QyxlQUFxQztJQUFyQyxrRUFBcUM7OztJQU0zRCxpQ0FBaUM7Ozs7SUFhckMsaURBQzZGO0lBQTNGLG1PQUE2QixLQUFLLEtBQUUsbU9BQUE7SUFBK0IsaUJBQXdCOzs7SUFEeEMsc0RBQWlDLHdHQUFBOztBRG5JdEYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG1CQUFtQjtJQVAvRDs7UUFRVyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUU3QiwyQkFBc0IsR0FBRyxpRkFBaUYsQ0FBQztRQUMzRyxxQkFBZ0IsR0FBRyxrR0FBa0csQ0FBQztRQUN0SCw0QkFBdUIsR0FBRyxxSEFBcUgsQ0FBQztRQUNoSixzQkFBaUIsR0FBRyx1R0FBdUcsQ0FBQztRQUU1SCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFdEIsMEJBQXFCLEdBQTJCLEVBQUUsQ0FBQztLQXFHNUQ7SUEvRkMsa0JBQWtCO1FBQ2hCLCtGQUErRjtRQUMvRixJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDNUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyw4SEFBOEg7WUFDOUgsK0RBQStEO1lBQy9ELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMvQixNQUFNLG9CQUFvQixHQUFHLElBQUksb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ3ZGLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNsQyxzSEFBc0g7Z0JBQ3RILHNFQUFzRTtnQkFDdEUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDbEYsc0NBQXNDO2dCQUN0QyxxSEFBcUg7Z0JBQ3JILE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN2SCxxRkFBcUY7Z0JBQ3JGLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztvQkFDeEcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxVQUFVLEdBQUcsZUFBZSxJQUFJLGtCQUFrQixJQUFLLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQztnQkFDckcsSUFBSSxVQUFVLEVBQUM7b0JBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQzFCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYTtRQUMxQixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsYUFBcUI7O1FBQy9CLElBQUksQ0FBQyxhQUFhLGtCQUFLLElBQUksQ0FBQyxVQUFVLDBDQUFFLEdBQUcsQ0FBQyxZQUFZLDJDQUFHLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUEsRUFBRTtZQUN4RixZQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLEdBQUcsQ0FBQyxZQUFZLDJDQUFHLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsQ0FBQyxhQUFhLEVBQUU7WUFDdkYsWUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxHQUFHLENBQUMsWUFBWSwyQ0FBRyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxHQUFHO1NBQzNFO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFRO1FBQ2hCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDbEQ7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFXO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMvQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBUTtRQUNmLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsT0FBZ0I7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBZ0I7UUFDbEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztRQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFNO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7MkhBakhVLHNCQUFzQjsyREFBdEIsc0JBQXNCOzs7Ozs7Ozs7O1FDWm5DLDRCQUEwRDtRQUMxRCw4QkFDRTtRQUNBLDhCQUNFO1FBQUEsaUNBQ0U7UUFEaUMsbUdBQVMsa0JBQWMsSUFBSSxDQUFDLElBQUM7UUFDOUQsa0NBQWtHO1FBQ25HLDRCQUFNO1FBQUEsc0JBQU07UUFBQSxpQkFBTztRQUNwQixpQkFBUztRQUNYLGlCQUFNO1FBRU4saUNBQ0U7UUFBQSwrQkFDRTtRQURpRixpR0FBUyxtQkFBZSxDQUFDLENBQUMsSUFBQztRQUM1RywrQkFBK0M7UUFBQSxrQkFBQztRQUFBLGlCQUFNO1FBQ3RELGlDQUEwRDtRQUFBLDJCQUFVO1FBQUEsaUJBQU87UUFDN0UsaUJBQU07UUFDTiwyQkFBc0Q7UUFDdEQsK0JBQ0U7UUFEaUYsaUdBQVMsbUJBQWUsQ0FBQyxDQUFDLElBQUM7UUFDNUcsK0JBQWdEO1FBQUEsa0JBQUM7UUFBQSxpQkFBTTtRQUN2RCxpQ0FBMkQ7UUFBQSw0QkFBVztRQUFBLGlCQUFPO1FBQy9FLGlCQUFNO1FBQ04sMkJBQXNEO1FBQ3RELCtCQUNFO1FBRGdGLGlHQUFTLG1CQUFlLENBQUMsQ0FBQyxJQUFDO1FBQzNHLCtCQUFnRDtRQUFBLGtCQUFDO1FBQUEsaUJBQU07UUFDdkQsaUNBQTJEO1FBQUEsK0NBQW9CO1FBQUEsaUJBQU87UUFDeEYsaUJBQU07UUFDUixpQkFBTTtRQUNOLDBCQUFnRDtRQUNoRCw4RkFDRTtRQXFHRiwySEFDRTtRQUdGLGdDQUNFO1FBQUEsbUNBQ0U7UUFEaUMsb0dBQVMsWUFBUSxJQUFDO1FBQ25ELGFBQ0Y7UUFBQSxpQkFBUztRQUNULG1DQUNFO1FBRCtCLG9HQUFTLFlBQVEsSUFBQztRQUNqRCxhQUNGO1FBQUEsaUJBQVM7UUFDWCxpQkFBTTtRQUNSLGlCQUFNO1FBRU4sOEdBQ3FFOzs7UUEzSWpELGVBQTZCO1FBQTdCLCtDQUE2QjtRQU1OLGVBQTJDO1FBQTNDLDRFQUEyQztRQUszQyxlQUEyQztRQUEzQyw0RUFBMkM7UUFLM0MsZUFBMEM7UUFBMUMsNEVBQTBDO1FBTXJFLGVBQStCO1FBQS9CLHFDQUErQixpQkFBQTtRQTJHVyxlQUFtRDtRQUFuRCx5RUFBbUQ7UUFDdkcsZUFDRjtRQURFLHdEQUNGO1FBQ29ELGVBQXlCO1FBQXpCLDJDQUF5QjtRQUMzRSxlQUNGO1FBREUsc0RBQ0Y7UUFJbUIsZUFBNkI7UUFBN0Isb0RBQTZCOzttRkRuSXZDLHNCQUFzQjtrREFBdEIsc0JBQXNCO2NBUGxDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztnQkFDOUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO2dCQUVVLFdBQVc7a0JBQW5CLEtBQUs7WUFja0IsU0FBUztrQkFBaEMsU0FBUzttQkFBQyxXQUFXO1lBQ0ssWUFBWTtrQkFBdEMsU0FBUzttQkFBQyxjQUFjO1lBQ0YsS0FBSztrQkFBM0IsWUFBWTttQkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhZyB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVjaXBlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3JlY2lwZS1mb3JtL3JlY2lwZS1mb3JtLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtc3RlcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZVN0ZXBwZXJDb21wb25lbnQgZXh0ZW5kcyBSZWNpcGVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBJbnB1dCgpIGRpc3BsYXlUYWdzID0gZmFsc2U7XG5cbiAgSU5HUkVESUVOVF9QTEFDRUhPTERFUiA9ICdFeGVtcGxlIDpcXG41MDBnIGRlIGZhcmluZVxcbjI1MGcgZGUgYmV1cnJlXFxuaHVpbGUgZFxcJ29saXZlXFxuNCB0cmFuY2hlcyBkZSBqYW1ib24nO1xuICBTVEVQX1BMQUNFSE9MREVSID0gYEV4ZW1wbGUgOlxcbkhhY2hlciBncm9zc2nDqHJlbWVudCBsZSBjw6lsZXJpIGV0IGwnb2lnbm9uLlxcbkNvdXBlciBsZSBjaG91LWZsZXVyIGVuIHBldGl0cyBib3VxdWV0cy5gO1xuICBJTkdSRURJRU5UX0lOU1RSVUNUSU9OUyA9ICdWb3VzIHBvdXZleiBzYWlzaXIgdW4gaW5ncsOpZGllbnQgb3UgY29waWVyIGNvbGxlciB1bmUgbGlzdGUgZOKAmWluZ3LDqWRpZW50cy4gXFxuIFVuZSBsaWduZSBjb3JyZXNwb25kIMOgIHVuIGluZ3LDqWRpZW50Lic7XG4gIFNURVBfSU5TVFJVQ1RJT05TID0gJ1ZvdXMgcG91dmV6IHNhaXNpciB1bmUgw6l0YXBlIG91IGNvcGllciBjb2xsZXIgdW5lIGxpc3RlIGTigJnDqXRhcGVzLlxcbiBVbmUgbGlnbmUgY29ycmVzcG9uZCDDoCB1bmUgw6l0YXBlLic7XG5cbiAgY3VycmVudFN0ZXAgPSAwO1xuICBiaWdJbWFnZVdhcm5pbmcgPSBmYWxzZTtcbiAgc2hvd0luZ3JlZGllbnQgPSB0cnVlO1xuICB0YWdzU2VsZWN0b3JEaXNwbGF5ZWQgPSBmYWxzZTtcbiAgaXNNb2JpbGU6IGJvb2xlYW47XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJzOiBJbnRlcnNlY3Rpb25PYnNlcnZlcltdID0gW107XG5cbiAgQFZpZXdDaGlsZCgndG9wQW5jaG9yJykgdG9wQW5jaG9yOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzdGVwcGVyTGlua3MnKSBzdGVwcGVyTGlua3M6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGRyZW4oJ3N0ZXAnKSAgc3RlcHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKXtcbiAgICAvLyBWaWV3Q2hlY2tlZCBpcyBjYWxsZWQgc2V2ZXJhbCB0aW1lIGluIHRoZSBsaWZlY3ljbGUsIGJ1dCB3ZSB3YW50IHRob3NlIHRvIGluaXQgb25seSBvbmUgdGltZVxuICAgIGlmICh0aGlzLmludGVyc2VjdGlvbk9ic2VydmVycy5sZW5ndGggPCAzKSB7XG4gICAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy5tZWRpYU1hdGNoZXIubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogMTAyM3B4KScpLm1hdGNoZXM7XG4gICAgICB0aGlzLmluaXRPblNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRPblNjcm9sbCgpIHtcbiAgICBpZiAodGhpcy5zdGVwcy50b0FycmF5KCkubGVuZ3RoID4gMSkge1xuICAgICAgLy8gUmVjZWl2ZSBhbiBldmVudCBlYWNoIHRpbWUgdGhlIGVhY2ggc3RlcCBpcyAxMCUgbW9yZSBvciBsZXNzIGluIHRoZSB2aWV3cG9ydCAoZXg6IGl0IGVudGVycyB0aGUgdmlld3BvcnQgLT4gZXZlbnQsIHdoZW4gMTAlXG4gICAgICAvLyBpcyBkaXNwbGF5ZWQgLT4gZXZlbnQsIHdoZW4gMjAlIGlzIGRpc3BsYXllZCAtPiBldmVudCBldGMuLilcbiAgICAgIHRoaXMuc3RlcHMudG9BcnJheSgpLmZvckVhY2gocyA9PiB7XG4gICAgICAgIGNvbnN0IGludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChbZW50cnldKSA9PiB7IHRoaXMub25TY3JvbGwoKTsgfSxcbiAgICAgICAgeyB0aHJlc2hvbGQ6IFswLCAwLjEsIDAuMiwgMC4zLCAwLjQsIDAuNSwgMC42LCAwLjcsIDAuOCwgMC45LCAxXSB9KTtcbiAgICAgICAgaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVycy5wdXNoKGludGVyc2VjdGlvbk9ic2VydmVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uU2Nyb2xsKCkge1xuICAgIGlmICh0aGlzLnN0ZXBwZXJMaW5rcyAmJiB0aGlzLnN0ZXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNlY3Rpb25zID0gdGhpcy5zdGVwcy50b0FycmF5KCk7XG4gICAgICBzZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAvLyBUaGUgYW5jaG9yIGlzIHBvc2l0aW9ubmVkIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIHNvIHRoZSBvcHBvc2l0ZSBvZiBpdHMgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHRvcCBvZiB0aGUgc2NyZWVuXG4gICAgICAgIC8vIGNvcnJlc3BvbmRzIHRvIHRoZSBjdXJyZW50IG51bWJlciBvZiBwaXhlbHMgdGhhdCBoYXZlIGJlZW4gc2Nyb2xsZWRcbiAgICAgICAgY29uc3QgY3VycmVudFBvc2l0aW9uID0gLXRoaXMudG9wQW5jaG9yLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgICAgICAvLyBoZWFkZXIgaXMgc3RpY2t5IGFuZCBzdGF5IG9uIHNjcmVlblxuICAgICAgICAvLyBXZSBhcmUgaW4gdGhlIHNlY3Rpb24gaWYgcG9zaXRpb24gaXMgbW9yZSB0aGFuIHRoZSAoZGlmZiBiZXR3ZWVuIHRvcCBvZiBwYWdlIGFuZCB0b3Agb2Ygc2VjdGlvbikgLSAoaGVhZGVyIGhlaWdodClcbiAgICAgICAgY29uc3QgcmVsYXRpdmVTZWN0aW9uVG9wID0gc2VjdGlvbi5uYXRpdmVFbGVtZW50W2BvZmZzZXRUb3BgXSAtICh0aGlzLnN0ZXBwZXJMaW5rcy5uYXRpdmVFbGVtZW50W2BvZmZzZXRIZWlnaHRgXSArIDEwKTtcbiAgICAgICAgLy8gYW5kIGxlc3MgdGhhbiB0aGUgKGRpZmYgYmV0d2VlbiB0b3Agb2YgcGFnZSBhbmQgdG9wIG9mIHNlY3Rpb24pICsgKHNlY3Rpb24gaGVpZ2h0KVxuICAgICAgICBjb25zdCByZWxhdGl2ZVNlY3Rpb25Cb3R0b20gPSBzZWN0aW9uLm5hdGl2ZUVsZW1lbnRbYG9mZnNldFRvcGBdICsgc2VjdGlvbi5uYXRpdmVFbGVtZW50W2BvZmZzZXRIZWlnaHRgXSAtXG4gICAgICAgICh0aGlzLnN0ZXBwZXJMaW5rcy5uYXRpdmVFbGVtZW50W2BvZmZzZXRIZWlnaHRgXSArIDEwKTtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGN1cnJlbnRQb3NpdGlvbiA+PSByZWxhdGl2ZVNlY3Rpb25Ub3AgICYmIGN1cnJlbnRQb3NpdGlvbiA8IHJlbGF0aXZlU2VjdGlvbkJvdHRvbTtcbiAgICAgICAgaWYgKGlzU2VsZWN0ZWQpe1xuICAgICAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSBpbmRleDtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9vbFRvQW5jaG9yKGluZGV4OiBudW1iZXIpe1xuICAgIGlmICh0aGlzLnN0ZXBwZXJMaW5rcyAmJiB0aGlzLnN0ZXBzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBzdGVwID0gdGhpcy5zdGVwcy50b0FycmF5KClbaW5kZXhdLm5hdGl2ZUVsZW1lbnQ7XG4gICAgc3RlcC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6ICdzbW9vdGgnfSk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlR3Vlc3QobmV3R2VzdE51bWJlcjogbnVtYmVyKXtcbiAgICBpZiAoK25ld0dlc3ROdW1iZXIgIT09IHRoaXMucmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgnbnVtYmVyLW9mLWd1ZXN0cycpLnZhbHVlICl7XG4gICAgICB0aGlzLnJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ251bWJlci1vZi1ndWVzdHMnKS5wYXRjaFZhbHVlKCtuZXdHZXN0TnVtYmVyKTtcbiAgICAgIHRoaXMucmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgnbnVtYmVyLW9mLWd1ZXN0cycpLm1hcmtBc0RpcnR5KCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlVGFnKHRhZzogVGFnKSB7XG4gICAgY29uc3QgaSA9IHRoaXMucmVjaXBlLnJlbGF0aW9uc2hpcHMudGFncy5kYXRhLmZpbmRJbmRleCh0ID0+IHQuaWQgPT09IHRhZy5pZCk7XG4gICAgaWYgKGkgPiAtMSkge1xuICAgICAgdGhpcy5yZWNpcGUucmVsYXRpb25zaGlwcy50YWdzLmRhdGEuc3BsaWNlKGksIDEpO1xuICAgIH1cbiAgICB0aGlzLnJlY2lwZUZvcm0ubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBhZGRUYWdzKHRhZ3M6IFRhZ1tdKSB7XG4gICAgdGFncy5mb3JFYWNoKHRhZyA9PiB7XG4gICAgICBjb25zdCBpID0gdGhpcy5yZWNpcGUucmVsYXRpb25zaGlwcy50YWdzLmRhdGEuZmluZEluZGV4KHQgPT4gdC5pZCA9PT0gdGFnLmlkKTtcbiAgICAgIGlmIChpID09PSAtMSkge1xuICAgICAgICB0aGlzLnJlY2lwZS5yZWxhdGlvbnNoaXBzLnRhZ3MuZGF0YS5wdXNoKHRhZyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5yZWNpcGVGb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdGFnQ2xhc3ModGFnOiBUYWcpIHtcbiAgICByZXR1cm4geyBbdGFnLnRhZ1R5cGVdOiB0cnVlIH07XG4gIH1cblxuICBkaXNwbGF5QmlnRmlsZVdhcm5pbmcoZGlzcGxheTogYm9vbGVhbikge1xuICAgIHRoaXMuYmlnSW1hZ2VXYXJuaW5nID0gZGlzcGxheTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBkaXNwbGF5VGFnc1NlbGVjdG9yKGRpc3BsYXk6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRhZ3NTZWxlY3RvckRpc3BsYXllZCA9IGRpc3BsYXk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlU2hvd0luZ3JlZGllbnQoaXNTaG93KXtcbiAgICB0aGlzLnNob3dJbmdyZWRpZW50ID0gaXNTaG93O1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPCEtLSBTQ1JPTEwgRVZFTlQgQU5DSE9SIC0tPlxuPGRpdiAjdG9wQW5jaG9yIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fYW5jaG9yXCI+PC9kaXY+XG48ZGl2ICBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJcIj5cbiAgPCEtLSBCQUNLIEJVVFRPTiAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3BhZGRpbmdcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNhbmNlbGVkLmVtaXQobnVsbClcIj5cbiAgICAgIDxuZy1taWFtLWljb24gW2ljb25OYW1lXT0naWNvbi5DaGV2cm9uRG93bicgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXByaW1hcnkpJyA+PC9uZy1taWFtLWljb24+XG4gICAgIDxzcGFuPlJldG91cjwvc3Bhbj4gXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8IS0tIEhFQURFUiBMSU5LUyAtLT5cbiAgPGRpdiAjc3RlcHBlckxpbmtzIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fbGlua3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fbGlua1wiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogY3VycmVudFN0ZXAgPT09IDAgIH1cIiAoY2xpY2spPVwic2Nyb29sVG9BbmNob3IoMClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19saW5rX19udW1iZXJcIj4xPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cIm0tYm9keS10eXBvIG1pYW0tcmVjaXBlLXN0ZXBwZXJfX2xpbmtfX25hbWVcIj5NYSByZWNldHRlPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19saW5rX19kaXZpZGVyXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX2xpbmtcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGN1cnJlbnRTdGVwID09PSAxICB9XCIgKGNsaWNrKT1cInNjcm9vbFRvQW5jaG9yKDEpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fbGlua19fbnVtYmVyXCIgPjI8L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibS1ib2R5LXR5cG8gbWlhbS1yZWNpcGUtc3RlcHBlcl9fbGlua19fbmFtZSBcIj5EZXNjcmlwdGlvbjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fbGlua19fZGl2aWRlclwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19saW5rXCIgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBjdXJyZW50U3RlcCA9PT0gMiB9XCIgKGNsaWNrKT1cInNjcm9vbFRvQW5jaG9yKDIpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fbGlua19fbnVtYmVyXCIgPjM8L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibS1ib2R5LXR5cG8gbWlhbS1yZWNpcGUtc3RlcHBlcl9fbGlua19fbmFtZSBcIj5Jbmdyw6lkaWVudHMgJiDDiXRhcGVzPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3BhZGRpbmdcIj48L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj0ncmVjaXBlRm9ybSBlbHNlIGxvYWRpbmcnIFtmb3JtR3JvdXBdPVwicmVjaXBlRm9ybVwiPlxuICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKVwiPlxuICAgICAgPCEtLSBGSVJTVCBTRUNUSU9OIC0tPlxuICAgICAgPGRpdiAjc3RlcCBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3NlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX21hbmRhdG9yeVwiPiogY2hhbXBzIG9ibGlnYXRvaXJlczwvZGl2PlxuICAgICAgICA8IS0tIFRJVExFIC0tPlxuICAgICAgICA8bmctbWlhbS10ZXh0LWlucHV0IGNsYXNzPVwibS10aXRsZS10ZXh0LWlucHV0XCIgbmdEZWZhdWx0Q29udHJvbFxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCd0aXRsZScpXCIgcGxhY2Vob2xkZXI9XCJUaXRyZSBkZSBsYSByZWNldHRlXCI+XG4gICAgICAgIDwvbmctbWlhbS10ZXh0LWlucHV0PlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX190eXBlX19sYWJlbFwiPk1hIHJlY2V0dGUgZXN0Li4uIDxzcGFuPio8L3NwYW4+IDwvbGFiZWw+XG4gICAgICAgIDwhLS0gUkVDSVBFIFRZUEUgLS0+XG4gICAgICAgIDxuZy1taWFtLXJlY2lwZS10eXBlLWNob29zZXIgbmdEZWZhdWx0Q29udHJvbCBbZm9ybUNvbnRyb2xdPVwicmVjaXBlRm9ybT8uZ2V0KCdyZWNpcGUtdHlwZScpXCIgPjwvbmctbWlhbS1yZWNpcGUtdHlwZS1jaG9vc2VyPlxuICAgICAgICA8IS0tIEdVRVNUUyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3NlY3Rpb25fX2d1ZXN0cyBtLWRlZmF1bHQtY2FyZFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fZ3Vlc3RzX19sYWJlbFwiPk5vbWJyZSBkZSBjb252aXZlczwvc3Bhbj5cbiAgICAgICAgICA8bmctbWlhbS1jb3VudGVyLWlucHV0IG5nRGVmYXVsdENvbnRyb2wgZm9ybUNvbnRyb2xOYW1lPVwibnVtYmVyLW9mLWd1ZXN0c1wiXG4gICAgICAgICAgICAoY291bnRlckNoYW5nZSk9XCJjaGFuZ2VHdWVzdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtjb3VudGVyXT1cInRoaXMucmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgnbnVtYmVyLW9mLWd1ZXN0cycpLnZhbHVlXCIgbWluUmFuZ2U9JzEnXG4gICAgICAgICAgICBtYXhSYW5nZT0nOTk5Jz5cbiAgICAgICAgICA8L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gVEFHUyAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRpc3BsYXlUYWdzXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX190YWdzXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX190YWdzX190aXRsZVwiPlRhZ3M8L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3RhZ3NfX3JlY2FwXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YWcgb2YgcmVjaXBlLnJlbGF0aW9uc2hpcHMudGFncz8uZGF0YVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fdGFnXCIgIFtuZ0NsYXNzXT1cInRhZ0NsYXNzKHRhZylcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX190YWdfX25hbWVcIj57e3RhZy5hdHRyaWJ1dGVzLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3RhZ19faWNvblwiIChjbGljayk9XCJyZW1vdmVUYWcodGFnKVwiIFtpY29uTmFtZV09XCJpY29uLkNsZWFyXCJcbiAgICAgICAgICAgICAgICBwcmltYXJ5Q29sb3I9XCJ2YXIoLS1tLWNvbG9yLWdyZXkwMSlcIj5cbiAgICAgICAgICAgICAgPC9uZy1taWFtLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImRpc3BsYXlUYWdzU2VsZWN0b3IodHJ1ZSlcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLW9ueXgpJyBbaWNvbk5hbWVdPVwiaWNvbi5QbHVzXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgICA8c3Bhbj5Bam91dGVyPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBTRUNPTkQgU0VDVElPTiAtLT5cbiAgICAgIDxkaXYgICNzdGVwIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fc2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fc2VjdGlvbl9fcm93XCI+XG4gICAgICAgICAgPCEtLSBQSUNUVVJFIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19waWN0dXJlXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1kcmFnLWRyb3AtaW5wdXQgbmdEZWZhdWx0Q29udHJvbFxuICAgICAgICAgICAgICBbYnV0dG9uVGV4dF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdtZWRpYS11cmwnKT8udmFsdWU/Lmxlbmd0aCA+IDAgPyAnTW9kaWZpZXIgbGEgcGhvdG8gKDJNQiBtYXgpJyA6J0Fqb3V0ZXIgdW5lIHBob3RvICgyTUIgbWF4KSdcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgnbWVkaWEtdXJsJylcIlxuICAgICAgICAgICAgICBbaW1hZ2VVcmxdPVwicmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgnbWVkaWEtdXJsJyk/LnZhbHVlXCIgW3Bob3RvTW9kZV09J2ZhbHNlJ1xuICAgICAgICAgICAgICAoYmlnRmlsZURyb3BwZWQpPVwiZGlzcGxheUJpZ0ZpbGVXYXJuaW5nKHRydWUpXCIgKG9uRmlsZURyb3BwZWQpPVwiZGlzcGxheUJpZ0ZpbGVXYXJuaW5nKGZhbHNlKVwiPlxuICAgICAgICAgICAgPC9uZy1taWFtLWRyYWctZHJvcC1pbnB1dD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19waWN0dXJlX193YXJuaW5nXCIgKm5nSWY9XCJiaWdJbWFnZVdhcm5pbmdcIj5cbiAgICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPSdpY29uLldhcm5pbmcnIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci13YXJuaW5nLXRleHQpJyA+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPlZvdHJlIGltYWdlIGVzdCB0cm9wIGxvdXJkZSAoZWxsZSBkb2l0IMOqdHJlIGluZsOpcmlldXJlIMOgIDIgTW8pLiAgTWVyY2kgZOKAmWVuIGFqb3V0ZXIgdW5lIHBsdXMgbMOpZ8OocmUuIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3BpY3R1cmVfX3dhcm5pbmdfX2JhY2tncm91bmRcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gREVTQ1JJUFRJT04gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3Jvd19fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxoMSBjbGFzcz1cIm0taDEtdHlwb1wiPnt7cmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgndGl0bGUnKT8udmFsdWV9fTwvaDE+XG4gICAgICAgICAgICA8bGFiZWw+RGVzY3JpcHRpb24gZGUgbWEgcmVjZXR0ZTwvbGFiZWw+XG4gICAgICAgICAgICA8dGV4dGFyZWEgY2RrVGV4dGFyZWFBdXRvc2l6ZSBjZGtBdXRvc2l6ZU1pblJvd3M9XCIyMFwiIGNka0F1dG9zaXplTWF4Um93cz1cIjUwXCIgY2xhc3M9XCJtLWlucHV0XCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ2Rlc2NyaXB0aW9uJylcIiBtYXhsZW5ndGg9XCIyNTBcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fZGVzY3JpcHRpb25fX2NvdW50ZXJcIj57e3JlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ2Rlc2NyaXB0aW9uJyk/LnZhbHVlPy5sZW5ndGggfHwgMH19IDxzcGFuPi8gMjUwPC9zcGFuPiA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGxhYmVsPkxpZW4gdmlkw6lvIGRlIG1hIHJlY2V0dGUgKG9wdGlvbm5lbCkgOjwvbGFiZWw+XG4gICAgPG5nLW1pYW0tdGV4dC1pbnB1dCAgbmdEZWZhdWx0Q29udHJvbCAgcGxhY2Vob2xkZXI9XCJcIj48L25nLW1pYW0tdGV4dC1pbnB1dD4gLS0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFRJTUVTIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPSdyZWNpcGVGb3JtJyBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3NlY3Rpb25fX3RpbWVzXCI+XG4gICAgICAgICAgPG5nLW1pYW0tdGltZS1waWNrZXIgbmdEZWZhdWx0Q29udHJvbCB0aXRsZT0nVGVtcHMgZGUgcHLDqXBhcmF0aW9uJ1xuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ3ByZXBhcmF0aW9uLXRpbWUnKVwiIFtpY29uXT0naWNvbi5UaW1lJz5cbiAgICAgICAgICA8L25nLW1pYW0tdGltZS1waWNrZXI+XG4gICAgICAgICAgPG5nLW1pYW0tdGltZS1waWNrZXIgbmdEZWZhdWx0Q29udHJvbCB0aXRsZT0nVGVtcHMgZGUgY3Vpc3NvbidcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdjb29raW5nLXRpbWUnKVwiIFtpY29uXT0naWNvbi5Ib3QnPjwvbmctbWlhbS10aW1lLXBpY2tlcj5cbiAgICAgICAgICA8bmctbWlhbS10aW1lLXBpY2tlciBuZ0RlZmF1bHRDb250cm9sIHRpdGxlPSdUZW1wcyBkZSByZXBvcydcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdyZXN0aW5nLXRpbWUnKVwiIFtpY29uXT0naWNvbi5XYWl0Jz48L25nLW1pYW0tdGltZS1waWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIERJRkZJQ1VMVFkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19hdHRpYnV0ZXNfX3NsaWRlclwiPlxuICAgICAgICAgIDxsYWJlbD5OaXZlYXUgZGUgZGlmZmljdWx0w6kgZGUgbGEgcmVjZXR0ZTwvbGFiZWw+XG4gICAgICAgICAgPG5nLW1pYW0tc2xpZGVyIG5nRGVmYXVsdENvbnRyb2wgW3N0ZXBzXT1cImRpZmljdWx0aWVzXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdkaWZmaWN1bHR5JylcIiBbaWNvbnNdPVwiaWNvbnNEaWZpY3VsdGllc1wiPlxuICAgICAgICAgIDwvbmctbWlhbS1zbGlkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBUSElSRCBTRUNUSU9OIC0tPlxuICAgIDxkaXYgI3N0ZXAgIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fc2VjdGlvblwiPlxuICAgICAgPGRpdiAqbmdJZj1cImlzTW9iaWxlXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19tb2JpbGVfX2J1dHRvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm0tYnV0dG9uLXNlY29uZGFyeVwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJyA6IHNob3dJbmdyZWRpZW50fVwiIChjbGljayk9XCJ0b2dnbGVTaG93SW5ncmVkaWVudCh0cnVlKVwiID5JbmdyZWRpZW50czwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tc2Vjb25kYXJ5XCIgW25nQ2xhc3NdPVwieydhY3RpdmUnIDogIXNob3dJbmdyZWRpZW50fVwiIChjbGljayk9XCJ0b2dnbGVTaG93SW5ncmVkaWVudChmYWxzZSlcIj5QcsOpcGFyYXRpb248L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBJTkdSRURJRU5UUyAtLT5cbiAgICAgIDxuZy1taWFtLWxpc3QtaW5wdXQgICpuZ0lmPVwiIShpc01vYmlsZSAmJiAhc2hvd0luZ3JlZGllbnQpXCIgbGFiZWw9XCJJbmdyw6lkaWVudHNcIiBuZ0RlZmF1bHRDb250cm9sXG4gICAgICAgIChkZWxldGVJZCk9XCJhZGRUb0RlbGV0ZUluZ3JlZGllbnRzTGlzdCgkZXZlbnQpXCIgKG9yZGVySGFzQ2hhbmdlZCk9J2Nkci5kZXRlY3RDaGFuZ2VzKCknIFtwbGFjZWhvbGRlcl09J0lOR1JFRElFTlRfUExBQ0VIT0xERVInIFtpbmdyZWRpZW50TW9kZV09J3RydWUnIFtsaXN0XT1cInJlY2lwZUZvcm0uZ2V0KCdpbmdyZWRpZW50cycpXCJcbiAgICAgICAgZm9ybUFycmF5TmFtZT1cImluZ3JlZGllbnRzXCIgaGludD0naW5ncsOpZGllbnRzJyBbaW5zdHJ1Y3Rpb25zXT1cIklOR1JFRElFTlRfSU5TVFJVQ1RJT05TXCI+XG4gICAgICA8L25nLW1pYW0tbGlzdC1pbnB1dD5cbiAgICAgIDwhLS0gU1RFUFMgLS0+XG4gICAgICA8bmctbWlhbS1saXN0LWlucHV0ICpuZ0lmPVwiIShpc01vYmlsZSAmJiBzaG93SW5ncmVkaWVudClcIiBuZ0RlZmF1bHRDb250cm9sIGxhYmVsPVwiw4l0YXBlc1wiIGZvcm1BcnJheU5hbWU9XCJzdGVwc1wiIFtwbGFjZWhvbGRlcl09J1NURVBfUExBQ0VIT0xERVInXG4gICAgICAgIChkZWxldGVJZCk9XCJhZGRUb0RlbGV0ZVN0ZXBzTGlzdCgkZXZlbnQpXCIgKG9yZGVySGFzQ2hhbmdlZCk9J2Nkci5kZXRlY3RDaGFuZ2VzKCknIFtsaXN0XT1cInJlY2lwZUZvcm0/LmdldCgnc3RlcHMnKVwiIGhpbnQ9J8OpdGFwZXMnIFtpbnN0cnVjdGlvbnNdPVwiU1RFUF9JTlNUUlVDVElPTlNcIj48L25nLW1pYW0tbGlzdC1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDwhLS0gTE9BREVSIC0tPlxuICA8bmctdGVtcGxhdGUgI2xvYWRpbmcgPlxuICAgIDxuZy1taWFtLWxvYWRlcj48L25nLW1pYW0tbG9hZGVyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8IS0tIEZPT1RFUiAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX2Zvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJtLWJ1dHRvbi1zZWNvbmRhcnlcIiAoY2xpY2spPSdjYW5jZWwoKScgW2Rpc2FibGVkXT0nc2Vjb25kYXJ5QnV0dG9uRGlzYWJsZSAmJiBjYW50U3VibWl0KCknPlxuICAgICAge3sgc2Vjb25kYXJ5QWN0aW9uVGV4dCB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJtLWJ1dHRvbi1wcmltYXJ5XCIgKGNsaWNrKT0nc3VibWl0KCknIFtkaXNhYmxlZF09J2NhbnRTdWJtaXQoKSc+XG4gICAgICB7eyBwcmltYXJ5QWN0aW9uVGV4dCB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBUQUdTIFNFTEVDVE9SIE1PREFMIC0tPlxuPG5nLW1pYW0tdGFncy1zZWxlY3RvciAqbmdJZj1cImRpc3BsYXlUYWdzICYmIHJlY2lwZVwiIFtkaXNwbGF5XT1cInRhZ3NTZWxlY3RvckRpc3BsYXllZFwiIFtjdXJyZW50VGFnc109XCJyZWNpcGUucmVsYXRpb25zaGlwcy50YWdzPy5kYXRhXCJcbiAgKGNsb3NlKT1cImRpc3BsYXlUYWdzU2VsZWN0b3IoZmFsc2UpXCIgKHNhdmVkVGFncyk9XCJhZGRUYWdzKCRldmVudClcIj48L25nLW1pYW0tdGFncy1zZWxlY3Rvcj4iXX0=
471
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLXN0ZXBwZXIvcmVjaXBlLXN0ZXBwZXIuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtc3RlcHBlci9yZWNpcGUtc3RlcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUNsSCxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ2tEL0QsK0JBQ0U7SUFBQSxnQ0FBNkM7SUFBQSxZQUF1QjtJQUFBLGlCQUFPO0lBQzNFLHdDQUVlO0lBRnNDLGdRQUF3QjtJQUU3RSxpQkFBZTtJQUNqQixpQkFBTTs7OztJQUxxRixtREFBeUI7SUFDckUsZUFBdUI7SUFBdkIsNkNBQXVCO0lBQ1UsZUFBdUI7SUFBdkIsNkNBQXVCOzs7O0lBTDNHLCtCQUNFO0lBQUEsZ0NBQStDO0lBQUEsb0JBQUk7SUFBQSxpQkFBTztJQUMxRCwrQkFDRTtJQUFBLCtGQUNFO0lBS0osaUJBQU07SUFDTixpQ0FDRTtJQURpQyxtTkFBNkIsSUFBSSxLQUFFO0lBQ3BFLG1DQUF1RjtJQUN2Riw0QkFBTTtJQUFBLHVCQUFPO0lBQUEsaUJBQU87SUFDdEIsaUJBQVM7SUFDWCxpQkFBTTs7O0lBWEcsZUFBbUQ7SUFBbkQsaUhBQW1EO0lBUVAsZUFBc0I7SUFBdEIsMkNBQXNCOzs7SUFnQnZFLCtCQUNFO0lBQUEsbUNBQW1HO0lBQ25HLDRCQUFNO0lBQUEs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IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhZyB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVjaXBlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3JlY2lwZS1mb3JtL3JlY2lwZS1mb3JtLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtc3RlcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZVN0ZXBwZXJDb21wb25lbnQgZXh0ZW5kcyBSZWNpcGVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBJbnB1dCgpIGRpc3BsYXlUYWdzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluZ3JlZGllbnRzUGljdHVyZXM6IHsgdmlzaWJsZTogYm9vbGVhbiwgZWRpdGFibGU6IGJvb2xlYW4gfSA9IHsgdmlzaWJsZTogZmFsc2UsIGVkaXRhYmxlOiBmYWxzZSB9O1xuXG4gIElOR1JFRElFTlRfUExBQ0VIT0xERVIgPSAnRXhlbXBsZSA6XFxuNTAwZyBkZSBmYXJpbmVcXG4yNTBnIGRlIGJldXJyZVxcbmh1aWxlIGRcXCdvbGl2ZVxcbjQgdHJhbmNoZXMgZGUgamFtYm9uJztcbiAgU1RFUF9QTEFDRUhPTERFUiA9IGBFeGVtcGxlIDpcXG5IYWNoZXIgZ3Jvc3Npw6hyZW1lbnQgbGUgY8OpbGVyaSBldCBsJ29pZ25vbi5cXG5Db3VwZXIgbGUgY2hvdS1mbGV1ciBlbiBwZXRpdHMgYm91cXVldHMuYDtcbiAgSU5HUkVESUVOVF9JTlNUUlVDVElPTlMgPSAnVm91cyBwb3V2ZXogc2Fpc2lyIHVuIGluZ3LDqWRpZW50IG91IGNvcGllciBjb2xsZXIgdW5lIGxpc3RlIGTigJlpbmdyw6lkaWVudHMuIFxcbiBVbmUgbGlnbmUgY29ycmVzcG9uZCDDoCB1biBpbmdyw6lkaWVudC4nO1xuICBTVEVQX0lOU1RSVUNUSU9OUyA9ICdWb3VzIHBvdXZleiBzYWlzaXIgdW5lIMOpdGFwZSBvdSBjb3BpZXIgY29sbGVyIHVuZSBsaXN0ZSBk4oCZw6l0YXBlcy5cXG4gVW5lIGxpZ25lIGNvcnJlc3BvbmQgw6AgdW5lIMOpdGFwZS4nO1xuXG4gIGN1cnJlbnRTdGVwID0gMDtcbiAgYmlnSW1hZ2VXYXJuaW5nID0gZmFsc2U7XG4gIHNob3dJbmdyZWRpZW50ID0gdHJ1ZTtcbiAgdGFnc1NlbGVjdG9yRGlzcGxheWVkID0gZmFsc2U7XG4gIGlzTW9iaWxlOiBib29sZWFuO1xuICBwcml2YXRlIGludGVyc2VjdGlvbk9ic2VydmVyczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJbXSA9IFtdO1xuXG4gIEBWaWV3Q2hpbGQoJ3RvcEFuY2hvcicpIHRvcEFuY2hvcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc3RlcHBlckxpbmtzJykgc3RlcHBlckxpbmtzOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkcmVuKCdzdGVwJykgIHN0ZXBzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCl7XG4gICAgLy8gVmlld0NoZWNrZWQgaXMgY2FsbGVkIHNldmVyYWwgdGltZSBpbiB0aGUgbGlmZWN5Y2xlLCBidXQgd2Ugd2FudCB0aG9zZSB0byBpbml0IG9ubHkgb25lIHRpbWVcbiAgICBpZiAodGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcnMubGVuZ3RoIDwgMykge1xuICAgICAgdGhpcy5pc01vYmlsZSA9IHRoaXMubWVkaWFNYXRjaGVyLm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDEwMjNweCknKS5tYXRjaGVzO1xuICAgICAgdGhpcy5pbml0T25TY3JvbGwoKTtcbiAgICB9XG4gIH1cblxuICBpbml0T25TY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMuc3RlcHMudG9BcnJheSgpLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIFJlY2VpdmUgYW4gZXZlbnQgZWFjaCB0aW1lIHRoZSBlYWNoIHN0ZXAgaXMgMTAlIG1vcmUgb3IgbGVzcyBpbiB0aGUgdmlld3BvcnQgKGV4OiBpdCBlbnRlcnMgdGhlIHZpZXdwb3J0IC0+IGV2ZW50LCB3aGVuIDEwJVxuICAgICAgLy8gaXMgZGlzcGxheWVkIC0+IGV2ZW50LCB3aGVuIDIwJSBpcyBkaXNwbGF5ZWQgLT4gZXZlbnQgZXRjLi4pXG4gICAgICB0aGlzLnN0ZXBzLnRvQXJyYXkoKS5mb3JFYWNoKHMgPT4ge1xuICAgICAgICBjb25zdCBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoW2VudHJ5XSkgPT4geyB0aGlzLm9uU2Nyb2xsKCk7IH0sXG4gICAgICAgIHsgdGhyZXNob2xkOiBbMCwgMC4xLCAwLjIsIDAuMywgMC40LCAwLjUsIDAuNiwgMC43LCAwLjgsIDAuOSwgMV0gfSk7XG4gICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUocy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcnMucHVzaChpbnRlcnNlY3Rpb25PYnNlcnZlcik7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvblNjcm9sbCgpIHtcbiAgICBpZiAodGhpcy5zdGVwcGVyTGlua3MgJiYgdGhpcy5zdGVwcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuc3RlcHMudG9BcnJheSgpO1xuICAgICAgc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgLy8gVGhlIGFuY2hvciBpcyBwb3NpdGlvbm5lZCBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBzbyB0aGUgb3Bwb3NpdGUgb2YgaXRzIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlblxuICAgICAgICAvLyBjb3JyZXNwb25kcyB0byB0aGUgY3VycmVudCBudW1iZXIgb2YgcGl4ZWxzIHRoYXQgaGF2ZSBiZWVuIHNjcm9sbGVkXG4gICAgICAgIGNvbnN0IGN1cnJlbnRQb3NpdGlvbiA9IC10aGlzLnRvcEFuY2hvci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICAgICAgLy8gaGVhZGVyIGlzIHN0aWNreSBhbmQgc3RheSBvbiBzY3JlZW5cbiAgICAgICAgLy8gV2UgYXJlIGluIHRoZSBzZWN0aW9uIGlmIHBvc2l0aW9uIGlzIG1vcmUgdGhhbiB0aGUgKGRpZmYgYmV0d2VlbiB0b3Agb2YgcGFnZSBhbmQgdG9wIG9mIHNlY3Rpb24pIC0gKGhlYWRlciBoZWlnaHQpXG4gICAgICAgIGNvbnN0IHJlbGF0aXZlU2VjdGlvblRvcCA9IHNlY3Rpb24ubmF0aXZlRWxlbWVudFtgb2Zmc2V0VG9wYF0gLSAodGhpcy5zdGVwcGVyTGlua3MubmF0aXZlRWxlbWVudFtgb2Zmc2V0SGVpZ2h0YF0gKyAxMCk7XG4gICAgICAgIC8vIGFuZCBsZXNzIHRoYW4gdGhlIChkaWZmIGJldHdlZW4gdG9wIG9mIHBhZ2UgYW5kIHRvcCBvZiBzZWN0aW9uKSArIChzZWN0aW9uIGhlaWdodClcbiAgICAgICAgY29uc3QgcmVsYXRpdmVTZWN0aW9uQm90dG9tID0gc2VjdGlvbi5uYXRpdmVFbGVtZW50W2BvZmZzZXRUb3BgXSArIHNlY3Rpb24ubmF0aXZlRWxlbWVudFtgb2Zmc2V0SGVpZ2h0YF0gLVxuICAgICAgICAodGhpcy5zdGVwcGVyTGlua3MubmF0aXZlRWxlbWVudFtgb2Zmc2V0SGVpZ2h0YF0gKyAxMCk7XG4gICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBjdXJyZW50UG9zaXRpb24gPj0gcmVsYXRpdmVTZWN0aW9uVG9wICAmJiBjdXJyZW50UG9zaXRpb24gPCByZWxhdGl2ZVNlY3Rpb25Cb3R0b207XG4gICAgICAgIGlmIChpc1NlbGVjdGVkKXtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRTdGVwID0gaW5kZXg7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzY3Jvb2xUb0FuY2hvcihpbmRleDogbnVtYmVyKXtcbiAgICBpZiAodGhpcy5zdGVwcGVyTGlua3MgJiYgdGhpcy5zdGVwcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuc3RlcHMudG9BcnJheSgpW2luZGV4XS5uYXRpdmVFbGVtZW50O1xuICAgIHN0ZXAuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiAnc21vb3RoJ30pO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUd1ZXN0KG5ld0dlc3ROdW1iZXI6IG51bWJlcil7XG4gICAgaWYgKCtuZXdHZXN0TnVtYmVyICE9PSB0aGlzLnJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ251bWJlci1vZi1ndWVzdHMnKS52YWx1ZSApe1xuICAgICAgdGhpcy5yZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdudW1iZXItb2YtZ3Vlc3RzJykucGF0Y2hWYWx1ZSgrbmV3R2VzdE51bWJlcik7XG4gICAgICB0aGlzLnJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ251bWJlci1vZi1ndWVzdHMnKS5tYXJrQXNEaXJ0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVRhZyh0YWc6IFRhZykge1xuICAgIGNvbnN0IGkgPSB0aGlzLnJlY2lwZS5yZWxhdGlvbnNoaXBzLnRhZ3MuZGF0YS5maW5kSW5kZXgodCA9PiB0LmlkID09PSB0YWcuaWQpO1xuICAgIGlmIChpID4gLTEpIHtcbiAgICAgIHRoaXMucmVjaXBlLnJlbGF0aW9uc2hpcHMudGFncy5kYXRhLnNwbGljZShpLCAxKTtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVGb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgYWRkVGFncyh0YWdzOiBUYWdbXSkge1xuICAgIHRhZ3MuZm9yRWFjaCh0YWcgPT4ge1xuICAgICAgY29uc3QgaSA9IHRoaXMucmVjaXBlLnJlbGF0aW9uc2hpcHMudGFncy5kYXRhLmZpbmRJbmRleCh0ID0+IHQuaWQgPT09IHRhZy5pZCk7XG4gICAgICBpZiAoaSA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5yZWNpcGUucmVsYXRpb25zaGlwcy50YWdzLmRhdGEucHVzaCh0YWcpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucmVjaXBlRm9ybS5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRhZ0NsYXNzKHRhZzogVGFnKSB7XG4gICAgcmV0dXJuIHsgW3RhZy50YWdUeXBlXTogdHJ1ZSB9O1xuICB9XG5cbiAgZGlzcGxheUJpZ0ZpbGVXYXJuaW5nKGRpc3BsYXk6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmJpZ0ltYWdlV2FybmluZyA9IGRpc3BsYXk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZGlzcGxheVRhZ3NTZWxlY3RvcihkaXNwbGF5OiBib29sZWFuKSB7XG4gICAgdGhpcy50YWdzU2VsZWN0b3JEaXNwbGF5ZWQgPSBkaXNwbGF5O1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZVNob3dJbmdyZWRpZW50KGlzU2hvdyl7XG4gICAgdGhpcy5zaG93SW5ncmVkaWVudCA9IGlzU2hvdztcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjwhLS0gU0NST0xMIEVWRU5UIEFOQ0hPUiAtLT5cbjxkaXYgI3RvcEFuY2hvciBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX2FuY2hvclwiPjwvZGl2PlxuPGRpdiAgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyXCI+XG4gIDwhLS0gQkFDSyBCVVRUT04gLS0+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19wYWRkaW5nXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm0tYnV0dG9uLXNlY29uZGFyeVwiIChjbGljayk9XCJjYW5jZWxlZC5lbWl0KG51bGwpXCI+XG4gICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09J2ljb24uQ2hldnJvbkRvd24nIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1wcmltYXJ5KScgPjwvbmctbWlhbS1pY29uPlxuICAgICA8c3Bhbj5SZXRvdXI8L3NwYW4+IFxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPCEtLSBIRUFERVIgTElOS1MgLS0+XG4gIDxkaXYgI3N0ZXBwZXJMaW5rcyBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX2xpbmtzXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX2xpbmtcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGN1cnJlbnRTdGVwID09PSAwICB9XCIgKGNsaWNrKT1cInNjcm9vbFRvQW5jaG9yKDApXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fbGlua19fbnVtYmVyXCI+MTwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJtLWJvZHktdHlwbyBtaWFtLXJlY2lwZS1zdGVwcGVyX19saW5rX19uYW1lXCI+TWEgcmVjZXR0ZTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fbGlua19fZGl2aWRlclwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19saW5rXCIgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBjdXJyZW50U3RlcCA9PT0gMSAgfVwiIChjbGljayk9XCJzY3Jvb2xUb0FuY2hvcigxKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX2xpbmtfX251bWJlclwiID4yPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cIm0tYm9keS10eXBvIG1pYW0tcmVjaXBlLXN0ZXBwZXJfX2xpbmtfX25hbWUgXCI+RGVzY3JpcHRpb248L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX2xpbmtfX2RpdmlkZXJcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fbGlua1wiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogY3VycmVudFN0ZXAgPT09IDIgfVwiIChjbGljayk9XCJzY3Jvb2xUb0FuY2hvcigyKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX2xpbmtfX251bWJlclwiID4zPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cIm0tYm9keS10eXBvIG1pYW0tcmVjaXBlLXN0ZXBwZXJfX2xpbmtfX25hbWUgXCI+SW5ncsOpZGllbnRzICYgw4l0YXBlczwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19wYWRkaW5nXCI+PC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9J3JlY2lwZUZvcm0gZWxzZSBsb2FkaW5nJyBbZm9ybUdyb3VwXT1cInJlY2lwZUZvcm1cIj5cbiAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwicmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJylcIj5cbiAgICAgIDwhLS0gRklSU1QgU0VDVElPTiAtLT5cbiAgICAgIDxkaXYgI3N0ZXAgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19zZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19tYW5kYXRvcnlcIj4qIGNoYW1wcyBvYmxpZ2F0b2lyZXM8L2Rpdj5cbiAgICAgICAgPCEtLSBUSVRMRSAtLT5cbiAgICAgICAgPG5nLW1pYW0tdGV4dC1pbnB1dCBjbGFzcz1cIm0tdGl0bGUtdGV4dC1pbnB1dFwiIG5nRGVmYXVsdENvbnRyb2xcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgndGl0bGUnKVwiIHBsYWNlaG9sZGVyPVwiVGl0cmUgZGUgbGEgcmVjZXR0ZVwiPlxuICAgICAgICA8L25nLW1pYW0tdGV4dC1pbnB1dD5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fdHlwZV9fbGFiZWxcIj5NYSByZWNldHRlIGVzdC4uLiA8c3Bhbj4qPC9zcGFuPiA8L2xhYmVsPlxuICAgICAgICA8IS0tIFJFQ0lQRSBUWVBFIC0tPlxuICAgICAgICA8bmctbWlhbS1yZWNpcGUtdHlwZS1jaG9vc2VyIG5nRGVmYXVsdENvbnRyb2wgW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgncmVjaXBlLXR5cGUnKVwiID48L25nLW1pYW0tcmVjaXBlLXR5cGUtY2hvb3Nlcj5cbiAgICAgICAgPCEtLSBHVUVTVFMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19zZWN0aW9uX19ndWVzdHMgbS1kZWZhdWx0LWNhcmRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX2d1ZXN0c19fbGFiZWxcIj5Ob21icmUgZGUgY29udml2ZXM8L3NwYW4+XG4gICAgICAgICAgPG5nLW1pYW0tY291bnRlci1pbnB1dCBuZ0RlZmF1bHRDb250cm9sIGZvcm1Db250cm9sTmFtZT1cIm51bWJlci1vZi1ndWVzdHNcIlxuICAgICAgICAgICAgKGNvdW50ZXJDaGFuZ2UpPVwiY2hhbmdlR3Vlc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICBbY291bnRlcl09XCJ0aGlzLnJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ251bWJlci1vZi1ndWVzdHMnKS52YWx1ZVwiIG1pblJhbmdlPScxJ1xuICAgICAgICAgICAgbWF4UmFuZ2U9Jzk5OSc+XG4gICAgICAgICAgPC9uZy1taWFtLWNvdW50ZXItaW5wdXQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFRBR1MgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5VGFnc1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fdGFnc1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fdGFnc19fdGl0bGVcIj5UYWdzPC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX190YWdzX19yZWNhcFwiPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGFnIG9mIHJlY2lwZS5yZWxhdGlvbnNoaXBzLnRhZ3M/LmRhdGFcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3RhZ1wiICBbbmdDbGFzc109XCJ0YWdDbGFzcyh0YWcpXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fdGFnX19uYW1lXCI+e3t0YWcuYXR0cmlidXRlcy5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxuZy1taWFtLWljb24gY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX190YWdfX2ljb25cIiAoY2xpY2spPVwicmVtb3ZlVGFnKHRhZylcIiBbaWNvbk5hbWVdPVwiaWNvbi5DbGVhclwiXG4gICAgICAgICAgICAgICAgcHJpbWFyeUNvbG9yPVwidmFyKC0tbS1jb2xvci1ncmV5MDEpXCI+XG4gICAgICAgICAgICAgIDwvbmctbWlhbS1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm0tYnV0dG9uLXNlY29uZGFyeVwiIChjbGljayk9XCJkaXNwbGF5VGFnc1NlbGVjdG9yKHRydWUpXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1pY29uIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1vbnl4KScgW2ljb25OYW1lXT1cImljb24uUGx1c1wiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgICAgPHNwYW4+QWpvdXRlcjwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gU0VDT05EIFNFQ1RJT04gLS0+XG4gICAgICA8ZGl2ICAjc3RlcCBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3NlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3NlY3Rpb25fX3Jvd1wiPlxuICAgICAgICAgIDwhLS0gUElDVFVSRSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fcGljdHVyZVwiPlxuICAgICAgICAgICAgPG5nLW1pYW0tZHJhZy1kcm9wLWlucHV0IG5nRGVmYXVsdENvbnRyb2xcbiAgICAgICAgICAgICAgW2J1dHRvblRleHRdPVwicmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgnbWVkaWEtdXJsJyk/LnZhbHVlPy5sZW5ndGggPiAwID8gJ01vZGlmaWVyIGxhIHBob3RvICgyTUIgbWF4KScgOidBam91dGVyIHVuZSBwaG90byAoMk1CIG1heCknXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ21lZGlhLXVybCcpXCJcbiAgICAgICAgICAgICAgW2ltYWdlVXJsXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ21lZGlhLXVybCcpPy52YWx1ZVwiIFtwaG90b01vZGVdPSd0cnVlJ1xuICAgICAgICAgICAgICAoYmlnRmlsZURyb3BwZWQpPVwiZGlzcGxheUJpZ0ZpbGVXYXJuaW5nKHRydWUpXCIgKG9uRmlsZURyb3BwZWQpPVwiZGlzcGxheUJpZ0ZpbGVXYXJuaW5nKGZhbHNlKVwiPlxuICAgICAgICAgICAgPC9uZy1taWFtLWRyYWctZHJvcC1pbnB1dD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19waWN0dXJlX193YXJuaW5nXCIgKm5nSWY9XCJiaWdJbWFnZVdhcm5pbmdcIj5cbiAgICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPSdpY29uLldhcm5pbmcnIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci13YXJuaW5nLXRleHQpJyA+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPlZvdHJlIGltYWdlIGVzdCB0cm9wIGxvdXJkZSAoZWxsZSBkb2l0IMOqdHJlIGluZsOpcmlldXJlIMOgIDIgTW8pLiAgTWVyY2kgZOKAmWVuIGFqb3V0ZXIgdW5lIHBsdXMgbMOpZ8OocmUuIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3BpY3R1cmVfX3dhcm5pbmdfX2JhY2tncm91bmRcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gREVTQ1JJUFRJT04gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3Jvd19fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxoMSBjbGFzcz1cIm0taDEtdHlwb1wiPnt7cmVjaXBlRm9ybT8uZ2V0KCdhdHRyaWJ1dGVzJyk/LmdldCgndGl0bGUnKT8udmFsdWV9fTwvaDE+XG4gICAgICAgICAgICA8bGFiZWw+RGVzY3JpcHRpb24gZGUgbWEgcmVjZXR0ZTwvbGFiZWw+XG4gICAgICAgICAgICA8dGV4dGFyZWEgY2RrVGV4dGFyZWFBdXRvc2l6ZSBjZGtBdXRvc2l6ZU1pblJvd3M9XCIyMFwiIGNka0F1dG9zaXplTWF4Um93cz1cIjUwXCIgY2xhc3M9XCJtLWlucHV0XCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ2Rlc2NyaXB0aW9uJylcIiBtYXhsZW5ndGg9XCIyNTBcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fZGVzY3JpcHRpb25fX2NvdW50ZXJcIj57e3JlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ2Rlc2NyaXB0aW9uJyk/LnZhbHVlPy5sZW5ndGggfHwgMH19IDxzcGFuPi8gMjUwPC9zcGFuPiA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGxhYmVsPkxpZW4gdmlkw6lvIGRlIG1hIHJlY2V0dGUgKG9wdGlvbm5lbCkgOjwvbGFiZWw+XG4gICAgPG5nLW1pYW0tdGV4dC1pbnB1dCAgbmdEZWZhdWx0Q29udHJvbCAgcGxhY2Vob2xkZXI9XCJcIj48L25nLW1pYW0tdGV4dC1pbnB1dD4gLS0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFRJTUVTIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPSdyZWNpcGVGb3JtJyBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX3NlY3Rpb25fX3RpbWVzXCI+XG4gICAgICAgICAgPG5nLW1pYW0tdGltZS1waWNrZXIgbmdEZWZhdWx0Q29udHJvbCB0aXRsZT0nVGVtcHMgZGUgcHLDqXBhcmF0aW9uJ1xuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlY2lwZUZvcm0/LmdldCgnYXR0cmlidXRlcycpPy5nZXQoJ3ByZXBhcmF0aW9uLXRpbWUnKVwiIFtpY29uXT0naWNvbi5UaW1lJz5cbiAgICAgICAgICA8L25nLW1pYW0tdGltZS1waWNrZXI+XG4gICAgICAgICAgPG5nLW1pYW0tdGltZS1waWNrZXIgbmdEZWZhdWx0Q29udHJvbCB0aXRsZT0nVGVtcHMgZGUgY3Vpc3NvbidcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdjb29raW5nLXRpbWUnKVwiIFtpY29uXT0naWNvbi5Ib3QnPjwvbmctbWlhbS10aW1lLXBpY2tlcj5cbiAgICAgICAgICA8bmctbWlhbS10aW1lLXBpY2tlciBuZ0RlZmF1bHRDb250cm9sIHRpdGxlPSdUZW1wcyBkZSByZXBvcydcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdyZXN0aW5nLXRpbWUnKVwiIFtpY29uXT0naWNvbi5XYWl0Jz48L25nLW1pYW0tdGltZS1waWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIERJRkZJQ1VMVFkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19hdHRpYnV0ZXNfX3NsaWRlclwiPlxuICAgICAgICAgIDxsYWJlbD5OaXZlYXUgZGUgZGlmZmljdWx0w6kgZGUgbGEgcmVjZXR0ZTwvbGFiZWw+XG4gICAgICAgICAgPG5nLW1pYW0tc2xpZGVyIG5nRGVmYXVsdENvbnRyb2wgW3N0ZXBzXT1cImRpZmljdWx0aWVzXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWNpcGVGb3JtPy5nZXQoJ2F0dHJpYnV0ZXMnKT8uZ2V0KCdkaWZmaWN1bHR5JylcIiBbaWNvbnNdPVwiaWNvbnNEaWZpY3VsdGllc1wiPlxuICAgICAgICAgIDwvbmctbWlhbS1zbGlkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBUSElSRCBTRUNUSU9OIC0tPlxuICAgIDxkaXYgI3N0ZXAgIGNsYXNzPVwibWlhbS1yZWNpcGUtc3RlcHBlcl9fc2VjdGlvblwiPlxuICAgICAgPGRpdiAqbmdJZj1cImlzTW9iaWxlXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1zdGVwcGVyX19tb2JpbGVfX2J1dHRvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm0tYnV0dG9uLXNlY29uZGFyeVwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJyA6IHNob3dJbmdyZWRpZW50fVwiIChjbGljayk9XCJ0b2dnbGVTaG93SW5ncmVkaWVudCh0cnVlKVwiID5JbmdyZWRpZW50czwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tc2Vjb25kYXJ5XCIgW25nQ2xhc3NdPVwieydhY3RpdmUnIDogIXNob3dJbmdyZWRpZW50fVwiIChjbGljayk9XCJ0b2dnbGVTaG93SW5ncmVkaWVudChmYWxzZSlcIj5QcsOpcGFyYXRpb248L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBJTkdSRURJRU5UUyAtLT5cbiAgICAgIDxuZy1taWFtLWxpc3QtaW5wdXQgXG4gICAgICAgICpuZ0lmPVwiIShpc01vYmlsZSAmJiAhc2hvd0luZ3JlZGllbnQpXCJcbiAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxuICAgICAgICBsYWJlbD1cIkluZ3LDqWRpZW50c1wiXG4gICAgICAgIGhpbnQ9J2luZ3LDqWRpZW50cydcbiAgICAgICAgZm9ybUFycmF5TmFtZT1cImluZ3JlZGllbnRzXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT0nSU5HUkVESUVOVF9QTEFDRUhPTERFUidcbiAgICAgICAgW2luc3RydWN0aW9uc109XCJJTkdSRURJRU5UX0lOU1RSVUNUSU9OU1wiXG4gICAgICAgIFtsaXN0XT1cInJlY2lwZUZvcm0uZ2V0KCdpbmdyZWRpZW50cycpXCJcbiAgICAgICAgW2luZ3JlZGllbnRNb2RlXT0ndHJ1ZSdcbiAgICAgICAgW2luZ3JlZGllbnRzUGljdHVyZXNdPVwiaW5ncmVkaWVudHNQaWN0dXJlc1wiXG4gICAgICAgIChkZWxldGVJZCk9XCJhZGRUb0RlbGV0ZUluZ3JlZGllbnRzTGlzdCgkZXZlbnQpXCJcbiAgICAgICAgKG9yZGVySGFzQ2hhbmdlZCk9J2Nkci5kZXRlY3RDaGFuZ2VzKCknXG4gICAgICA+XG4gICAgICA8L25nLW1pYW0tbGlzdC1pbnB1dD5cbiAgICAgIDwhLS0gU1RFUFMgLS0+XG4gICAgICA8bmctbWlhbS1saXN0LWlucHV0ICpuZ0lmPVwiIShpc01vYmlsZSAmJiBzaG93SW5ncmVkaWVudClcIiBuZ0RlZmF1bHRDb250cm9sIGxhYmVsPVwiw4l0YXBlc1wiIGZvcm1BcnJheU5hbWU9XCJzdGVwc1wiIFtwbGFjZWhvbGRlcl09J1NURVBfUExBQ0VIT0xERVInXG4gICAgICAgIChkZWxldGVJZCk9XCJhZGRUb0RlbGV0ZVN0ZXBzTGlzdCgkZXZlbnQpXCIgKG9yZGVySGFzQ2hhbmdlZCk9J2Nkci5kZXRlY3RDaGFuZ2VzKCknIFtsaXN0XT1cInJlY2lwZUZvcm0/LmdldCgnc3RlcHMnKVwiIGhpbnQ9J8OpdGFwZXMnIFtpbnN0cnVjdGlvbnNdPVwiU1RFUF9JTlNUUlVDVElPTlNcIj48L25nLW1pYW0tbGlzdC1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDwhLS0gTE9BREVSIC0tPlxuICA8bmctdGVtcGxhdGUgI2xvYWRpbmcgPlxuICAgIDxuZy1taWFtLWxvYWRlcj48L25nLW1pYW0tbG9hZGVyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8IS0tIEZPT1RFUiAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLXN0ZXBwZXJfX2Zvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJtLWJ1dHRvbi1zZWNvbmRhcnlcIiAoY2xpY2spPSdjYW5jZWwoKScgW2Rpc2FibGVkXT0nc2Vjb25kYXJ5QnV0dG9uRGlzYWJsZSAmJiBjYW50U3VibWl0KCknPlxuICAgICAge3sgc2Vjb25kYXJ5QWN0aW9uVGV4dCB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJtLWJ1dHRvbi1wcmltYXJ5XCIgKGNsaWNrKT0nc3VibWl0KCknIFtkaXNhYmxlZF09J2NhbnRTdWJtaXQoKSc+XG4gICAgICB7eyBwcmltYXJ5QWN0aW9uVGV4dCB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBUQUdTIFNFTEVDVE9SIE1PREFMIC0tPlxuPG5nLW1pYW0tdGFncy1zZWxlY3RvciAqbmdJZj1cImRpc3BsYXlUYWdzICYmIHJlY2lwZVwiIFtkaXNwbGF5XT1cInRhZ3NTZWxlY3RvckRpc3BsYXllZFwiIFtjdXJyZW50VGFnc109XCJyZWNpcGUucmVsYXRpb25zaGlwcy50YWdzPy5kYXRhXCJcbiAgKGNsb3NlKT1cImRpc3BsYXlUYWdzU2VsZWN0b3IoZmFsc2UpXCIgKHNhdmVkVGFncyk9XCJhZGRUYWdzKCRldmVudClcIj48L25nLW1pYW0tdGFncy1zZWxlY3Rvcj4iXX0=