atr-components 2.0.13 → 2.0.15

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.
@@ -252,4 +252,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
252
252
  }], needImgSeq: [{
253
253
  type: Input
254
254
  }] } });
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpbGwtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvcXVpbGwtZWRpdG9yL3F1aWxsLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3F1aWxsLWVkaXRvci9xdWlsbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7Ozs7Ozs7O0FBRTFCLDhDQUE4QztBQUM5QywwQ0FBMEM7QUFDMUMsK0VBQStFO0FBQy9FLHFGQUFxRjtBQUNyRixXQUFXO0FBQ1gsMENBQTBDO0FBQzFDLG1GQUFtRjtBQUNuRixxRkFBcUY7QUFDckYsV0FBVztBQWVYLE1BQU0sT0FBTyxvQkFBb0I7SUFjL0IsWUFBb0IsZ0JBQWtDLEVBQVUsT0FBeUI7UUFBckUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBWmhGLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLFdBQU0sR0FBUSxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUMsQ0FB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RUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDOUJILGl2REFtQ0E7OzJGREhhLG9CQUFvQjtrQkFiaEMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1QsZ0JBQWdCO3dCQUNoQjs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0hBSVEsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge056TWVzc2FnZVNlcnZpY2V9IGZyb20gJ25nLXpvcnJvLWFudGQvbWVzc2FnZSc7XHJcbmltcG9ydCB7VXBsb2FkT3NzU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2VydmljZXMvdXBsb2FkLW9zcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VG9vbHNVdGlsfSBmcm9tIFwiLi4vLi4vLi4vY29yZS91dGlscy9Ub29sc1V0aWxcIjtcclxuaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcclxuXHJcbi8vIGNvbnN0IGljb25zOmFueSA9IFF1aWxsLmltcG9ydCgndWkvaWNvbnMnKTtcclxuLy8gaWNvbnMudW5kbyA9IGA8c3ZnIHZpZXdib3g9XCIwIDAgMTggMThcIj5cclxuLy8gICA8cG9seWdvbiBjbGFzcz1cInFsLWZpbGwgcWwtc3Ryb2tlXCIgcG9pbnRzPVwiNiAxMCA0IDEyIDIgMTAgNiAxMFwiPjwvcG9seWdvbj5cclxuLy8gICA8cGF0aCBjbGFzcz1cInFsLXN0cm9rZVwiIGQ9XCJNOC4wOSwxMy45MUE0LjYsNC42LDAsMCwwLDksMTQsNSw1LDAsMSwwLDQsOVwiPjwvcGF0aD5cclxuLy8gPC9zdmc+YDtcclxuLy8gaWNvbnMucmVkbyA9IGA8c3ZnIHZpZXdib3g9XCIwIDAgMTggMThcIj5cclxuLy8gICA8cG9seWdvbiBjbGFzcz1cInFsLWZpbGwgcWwtc3Ryb2tlXCIgcG9pbnRzPVwiMTIgMTAgMTQgMTIgMTYgMTAgMTIgMTBcIj48L3BvbHlnb24+XHJcbi8vICAgPHBhdGggY2xhc3M9XCJxbC1zdHJva2VcIiBkPVwiTTkuOTEsMTMuOTFBNC42LDQuNiwwLDAsMSw5LDE0YTUsNSwwLDEsMSw1LTVcIj48L3BhdGg+XHJcbi8vIDwvc3ZnPmA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1xdWlsbC1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWlsbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1aWxsLWVkaXRvci5jb21wb25lbnQubGVzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgVXBsb2FkT3NzU2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFF1aWxsRWRpdG9yQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWlsbEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICfor7fovpPlhaUnO1xyXG4gIEBJbnB1dCgpIHN0eWxlczogYW55ID0ge2hlaWdodDogJzM1MHB4J307XHJcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IGFueTsgLy8g57uE5Lu25a+55bqU55qEIOKAnCBuZ01vZGVsIOKAnVxyXG4gIEBJbnB1dCgpIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbmVlZEltZ1NlcTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVkaXRvcjogYW55O1xyXG4gIG9uQ2hhbmdlTGlzdGVuZXI6IGFueTsgLy8g5pS55Y+Y5YC85Zue6LCDXHJcbiAgb25Ub3VjaGVkTGlzdGVuZXI6IGFueTsgLy8g5Lqk5LqS5Zue6LCDXHJcbiAgaW1nVXJsczogYW55ID0gW107XHJcbiAgZWRpdG9yJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICBpbWdWaXMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1cGxvYWRPc3NTZXJ2aWNlOiBVcGxvYWRPc3NTZXJ2aWNlLCBwcml2YXRlIG1lc3NhZ2U6IE56TWVzc2FnZVNlcnZpY2UpIHtcclxuICAgIGNvbnN0IGljb25zOiBhbnkgID0gUXVpbGwuaW1wb3J0KCd1aS9pY29ucycpO1xyXG4gICAgaWNvbnNbXCJ1bmRvXCJdID0gYDxzdmcgdmlld2JveD1cIjAgMCAxOCAxOFwiPlxyXG4gICAgICA8cG9seWdvbiBjbGFzcz1cInFsLWZpbGwgcWwtc3Ryb2tlXCIgcG9pbnRzPVwiNiAxMCA0IDEyIDIgMTAgNiAxMFwiPjwvcG9seWdvbj5cclxuICAgICAgPHBhdGggY2xhc3M9XCJxbC1zdHJva2VcIiBkPVwiTTguMDksMTMuOTFBNC42LDQuNiwwLDAsMCw5LDE0LDUsNSwwLDEsMCw0LDlcIj48L3BhdGg+XHJcbiAgICA8L3N2Zz5gO1xyXG4gICAgaWNvbnNbXCJyZWRvXCJdID0gYDxzdmcgdmlld2JveD1cIjAgMCAxOCAxOFwiPlxyXG4gICAgICA8cG9seWdvbiBjbGFzcz1cInFsLWZpbGwgcWwtc3Ryb2tlXCIgcG9pbnRzPVwiMTIgMTAgMTQgMTIgMTYgMTAgMTIgMTBcIj48L3BvbHlnb24+XHJcbiAgICAgIDxwYXRoIGNsYXNzPVwicWwtc3Ryb2tlXCIgZD1cIk05LjkxLDEzLjkxQTQuNiw0LjYsMCwwLDEsOSwxNGE1LDUsMCwxLDEsNS01XCI+PC9wYXRoPlxyXG4gICAgPC9zdmc+YDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5lZGl0b3IkLnBpcGUoXHJcbiAgICAgIGRlYm91bmNlVGltZSg3MDApXHJcbiAgICApLnN1YnNjcmliZSgoZWRpdG9yQ29udGVudDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2YgKHRoaXMub25DaGFuZ2VMaXN0ZW5lcikgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mICh0aGlzLm9uVG91Y2hlZExpc3RlbmVyKSkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VMaXN0ZW5lcihlZGl0b3JDb250ZW50KTsgLy8g5ZGK6K+JZm9ybe+8jOS9oOeahOihqOWNleWAvOaUueWPmOaIkOS6hnBheWxvYWRcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZExpc3RlbmVyKCk7IC8vIOWRiuiviWZvcm3vvIzkvaDnmoTooajljZXmnInkuqTkupLlj5HnlJ9cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlTGlzdGVuZXIgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkTGlzdGVuZXIgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShxdWlsbDogYW55KSB7XHJcbiAgICB0aGlzLmVkaXRvciQubmV4dChxdWlsbC5odG1sKTtcclxuICB9XHJcblxyXG4gIEVkaXRvckNyZWF0ZWQocXVpbGw6IGFueSkge1xyXG4gICAgY29uc3QgdG9vbGJhciA9IHF1aWxsLmdldE1vZHVsZSgndG9vbGJhcicpO1xyXG4gICAgdG9vbGJhci5hZGRIYW5kbGVyKCdpbWFnZScsIHRoaXMuaW1hZ2VIYW5kbGVyLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy5lZGl0b3IgPSBxdWlsbDtcclxuICAgIGxldCB0aGF0ID0gdGhpcztcclxuICAgIHF1aWxsLm9uKCd0ZXh0LWNoYW5nZScsIGZ1bmN0aW9uIChkZWx0YTogYW55LCBvbGREZWx0YTogYW55LCBzb3VyY2U6IGFueSkge1xyXG4gICAgICBpZiAoc291cmNlID09ICdhcGknKSB7XHJcbiAgICAgIH0gZWxzZSBpZiAoc291cmNlID09ICd1c2VyJykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd1c2VyJyk7XHJcbiAgICAgICAgdGhhdC51cGxvYWRJbWdzKFtdLCAwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRCbG9iQnlCYXNlNjQodXJsOiBhbnksIG9sZFVybDogYW55KSB7XHJcbiAgICBjb25zdCBjOiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICAgIGNvbnNvbGUubG9nKGMpO1xyXG4gICAgY29uc3QgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgY3R4LnN0cm9rZSgpO1xyXG4gICAgbGV0IGJsb2I6IGFueSA9IFRvb2xzVXRpbC5kYXRhVVJJdG9CbG9iKHVybCk7XHJcbiAgICBibG9iLm5hbWUgPSAnLnBuZyc7XHJcbiAgICBsZXQgZGVsdGEgPSB0aGlzLmVkaXRvci5nZXRDb250ZW50cygpO1xyXG4gICAgY29uc29sZS5sb2coJ2RlbHRhJywgZGVsdGEpXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRlbHRhLm9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoZGVsdGEub3BzW2ldLmluc2VydC5pbWFnZSA9PSBvbGRVcmwpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgaW5kZXg6IGksXHJcbiAgICAgICAgICBibG9iOiBibG9iLFxyXG4gICAgICAgICAgb2xkVXJsOiBvbGRVcmxcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHVwbG9hZEltZ3MoYmxvZHM6IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgbGV0IGRldGFpbHMgPSB0aGlzLmVkaXRvci5nZXRDb250ZW50cygpO1xyXG4gICAgbGV0IG9wdCA9IGRldGFpbHMub3BzW2luZGV4XTtcclxuICAgIGlmIChvcHQgJiYgb3B0Lmluc2VydCAmJiBvcHQuaW5zZXJ0LmltYWdlKSB7XHJcbiAgICAgIGlmIChUb29sc1V0aWwuaXNCYXNlNjQob3B0Lmluc2VydC5pbWFnZSkpIHtcclxuICAgICAgICBibG9kcy5wdXNoKHRoaXMuZ2V0QmxvYkJ5QmFzZTY0KG9wdC5pbnNlcnQuaW1hZ2UsIG9wdC5pbnNlcnQuaW1hZ2UpKTtcclxuICAgICAgICB0aGlzLmlzRW5kQ29udGVudHMoYmxvZHMsIGluZGV4KVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgICAgICAgbGV0IGN0eDogYW55ID0gYy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgIGxldCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgICBpbWcuc3JjID0gb3B0Lmluc2VydC5pbWFnZTtcclxuICAgICAgICBpbWcuc2V0QXR0cmlidXRlKCdjcm9zc09yaWdpbicsICcqJyk7XHJcbiAgICAgICAgbGV0IHRoYXQgPSB0aGlzO1xyXG4gICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICBjLndpZHRoID0gaW1nLndpZHRoO1xyXG4gICAgICAgICAgYy5oZWlnaHQgPSBpbWcuaGVpZ2h0O1xyXG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIGltZy53aWR0aCwgaW1nLmhlaWdodCk7XHJcbiAgICAgICAgICBsZXQgdXJsID0gYy50b0RhdGFVUkwoKTtcclxuICAgICAgICAgIGJsb2RzLnB1c2godGhhdC5nZXRCbG9iQnlCYXNlNjQodXJsLCBpbWcuc3JjKSlcclxuICAgICAgICAgIHRoYXQuaXNFbmRDb250ZW50cyhibG9kcywgaW5kZXgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzRW5kQ29udGVudHMoYmxvZHMsIGluZGV4KVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgdXBsb2FkSW1nKGJsb2RzOmFueSkge1xyXG4gICAgaWYgKCFibG9kcyB8fCBibG9kcy5sZW5ndGggPD0gMCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBmb3IobGV0IGkgPSAwO2k8IGJsb2RzLmxlbmd0aDtpKyspe1xyXG4gICAgICBsZXQgYmxvYiA9IGJsb2RzW2ldO1xyXG4gICAgICB0aGlzLnVwbG9hZE9zc1NlcnZpY2UudXBsb2FkT3NzKGJsb2IpLnN1YnNjcmliZSgodXJsKSA9PiB7XHJcbiAgICAgICAgbGV0IGRlbHRhID0gdGhpcy5lZGl0b3IuZ2V0Q29udGVudHMoKTtcclxuICAgICAgICBkZWx0YS5maWx0ZXIoKG9wdDphbnkpID0+IG9wdCAmJiBvcHQuaW5zZXJ0ICYmIG9wdC5pbnNlcnQuaW1hZ2UgPT0gYmxvZHNbaV0ub2xkVXJsKS5mb3JFYWNoKChvcHQ6YW55LCBpbmRleDphbnkpID0+IHtcclxuICAgICAgICAgIG9wdC5pbnNlcnQuaW1hZ2UgPSB1cmxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmVkaXRvci5zZXRDb250ZW50cyhkZWx0YSwgJ2FwaScpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuICBpc0VuZENvbnRlbnRzKGJsb2RzOmFueSwgaW5kZXg6YW55KSB7XHJcbiAgICBsZXQgZGV0YWlscyA9IHRoaXMuZWRpdG9yLmdldENvbnRlbnRzKCk7XHJcbiAgICBpZiAoKytpbmRleCAhPSBkZXRhaWxzLm9wcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy51cGxvYWRJbWdzKGJsb2RzLCBpbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnVwbG9hZEltZyhibG9kcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbWFnZUhhbmRsZXIoKSB7XHJcbiAgICBjb25zdCBJbWFnZWlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgIEltYWdlaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ZpbGUnKTtcclxuICAgIEltYWdlaW5wdXQuc2V0QXR0cmlidXRlKCdtdWx0aXBsZScsICdtdWx0aXBsZScpO1xyXG4gICAgSW1hZ2VpbnB1dC5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsICdpbWFnZS9wbmcsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgaW1hZ2UvYm1wJyk7XHJcbiAgICBJbWFnZWlucHV0LmNsYXNzTGlzdC5hZGQoJ3FsLWltYWdlJyk7XHJcbiAgICBJbWFnZWlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMubmVlZEltZ1NlcSkge1xyXG4gICAgICAgIHRoaXMuaW1nVmlzID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhJbWFnZWlucHV0KTtcclxuICAgICAgbGV0IGZpbGVzOiBhbnkgPSBJbWFnZWlucHV0LmZpbGVzO1xyXG4gICAgICBpZiAoZmlsZXMgPT09IG51bGwgfHwgZmlsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbWdVcmxzID0gW107XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBmaWxlID0gZmlsZXNbaV07XHJcbiAgICAgICAgaWYgKGZpbGUgPT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGNvbnN0IGVycm9yID0gKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2Uud2FybmluZygn5LiK5Lyg5aSx6LSlJyk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy51cGxvYWRPc3NTZXJ2aWNlLnVwbG9hZE9zcyhmaWxlKS5zdWJzY3JpYmUoKHVybCkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZmlsZSk7XHJcbiAgICAgICAgICBpZiAodXJsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW1nVXJscy5wdXNoKHt1cmw6IHVybCwgZmlsZTogZmlsZSwgaW5kZXg6IGl9KTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLm5lZWRJbWdTZXEpIHtcclxuICAgICAgICAgICAgICB0aGlzLmVkaXRvci5pbnNlcnRFbWJlZCh0aGlzLmVkaXRvci5nZXRTZWxlY3Rpb24odHJ1ZSkuaW5kZXgsICdpbWFnZScsIHVybCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZS53YXJuaW5nKCfkuIrkvKDlpLHotKUnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLm5lZWRJbWdTZXEgJiYgdGhpcy5pbWdVcmxzLmxlbmd0aCA9PSBmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5pbWdWaXMgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmltZ1VybHMuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IGEuaW5kZXggLSBiLmluZGV4KTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0ZVwiKT8uY2xpY2soKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuXHJcbiAgICBJbWFnZWlucHV0LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBzYXZlU2VxKCkge1xyXG4gICAgY29uc29sZS5sb2coMTIzKTtcclxuICAgIGZvciAobGV0IGkgPSB0aGlzLmltZ1VybHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgdGhpcy5lZGl0b3IuaW5zZXJ0RW1iZWQodGhpcy5lZGl0b3IuZ2V0U2VsZWN0aW9uKHRydWUpLmluZGV4LCAnaW1hZ2UnLCB0aGlzLmltZ1VybHNbaV0udXJsKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW1nVmlzID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBhcnJvd1VwKGluZGV4OiBhbnkpIHtcclxuICAgIGxldCBpbWcgPSB0aGlzLmltZ1VybHNbaW5kZXhdO1xyXG4gICAgdGhpcy5pbWdVcmxzW2luZGV4XSA9IHRoaXMuaW1nVXJsc1tpbmRleCAtIDFdO1xyXG4gICAgdGhpcy5pbWdVcmxzW2luZGV4IC0gMV0gPSBpbWc7XHJcbiAgfVxyXG5cclxuICBhcnJvd0Rvd24oaW5kZXg6IGFueSkge1xyXG4gICAgbGV0IGltZyA9IHRoaXMuaW1nVXJsc1tpbmRleF07XHJcbiAgICB0aGlzLmltZ1VybHNbaW5kZXhdID0gdGhpcy5pbWdVcmxzW2luZGV4ICsgMV07XHJcbiAgICB0aGlzLmltZ1VybHNbaW5kZXggKyAxXSA9IGltZztcclxuICB9XHJcblxyXG4gIGNhbmNsZSgpIHtcclxuICAgIHRoaXMuaW1nVmlzID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB0ZSgpIHtcclxuICAgIGNvbnNvbGUubG9nKCfkuIrkvKDlrozmr5UnKVxyXG4gIH1cclxufVxyXG4iLCI8cXVpbGwtZWRpdG9yXHJcbiAgW3N0eWxlc109XCJzdHlsZXNcIlxyXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgKG9uRWRpdG9yQ3JlYXRlZCk9XCJFZGl0b3JDcmVhdGVkKCRldmVudClcIlxyXG4gIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gIChvbkNvbnRlbnRDaGFuZ2VkKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gIFtyZWFkT25seV09XCJyZWFkT25seVwiXHJcbj48L3F1aWxsLWVkaXRvcj5cclxuPCEtLei/meS4qmRpdizmmK/lm6DkuLrkuIrkvKDlrozmr5XnhKbngrnov5jlnKjlr4zmlofmnKzph4ws5by55Ye65peg5rOV5pi+56S6Li4uLi4tLT5cclxuPGRpdiBpZD1cInRlXCIgKGNsaWNrKT1cInRlKClcIj48L2Rpdj5cclxuPG56LW1vZGFsIFsobnpWaXNpYmxlKV09XCJpbWdWaXNcIiAobnpPbk9rKT1cInNhdmVTZXEoKVwiIChuek9uQ2FuY2VsKT1cImNhbmNsZSgpXCIgbnpNYXNrQ2xvc2FibGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICBbbnpTdHlsZV09XCJ7cGFkZGluZzowfVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm56TW9kYWxDb250ZW50PlxyXG4gIDxkaXYgc3R5bGU9XCJtYXgtaGVpZ2h0OjYwMHB4O292ZXJmbG93OmF1dG87bWFyZ2luLXRvcDogMTBweDtcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbWdzQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L256LW1vZGFsPlxyXG48bmctdGVtcGxhdGUgI2ltZ3NDb250ZW50PlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGltZ09wdCBvZiBpbWdVcmxzO2xldCBpID0gaW5kZXhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbWctZGl2XCI+XHJcbiAgICAgIDxpbWcgW3NyY109XCJpbWdPcHQudXJsXCIgW25nU3R5bGVdPVwieyB3aWR0aDogJzEwMHB4JyxkaXNwbGF5OiAnaW5saW5lLWJsb2NrJywgbWFyZ2luOic1cHgnIH1cIi8+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDogMjBweDsgY29sb3I6IGdyZXk7XCI+e3tpbWdPcHQuZmlsZS5uYW1lfX08L2Rpdj5cclxuICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMjBweDsgZmxleDogMTt0ZXh0LWFsaWduOiByaWdodDtcIj5cclxuICAgICAgICA8YSB0aXRsZT1cIuS4iuenu1wiICpuZ0lmPVwiIGkgPiAwXCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIiAoY2xpY2spPVwiYXJyb3dVcChpKVwiPlxyXG4gICAgICAgICAgPGkgbnotaWNvbiBuelR5cGU9XCJhcnJvdy11cFwiIG56VGhlbWU9XCJvdXRsaW5lXCIgc3R5bGU9XCJjb2xvcjogIzE4OTBmZjsgZm9udC1zaXplOiAxNXB4O1wiPjwvaT5cclxuICAgICAgICAgIOS4iuenuzwvYT5cclxuICAgICAgICA8YSB0aXRsZT1cIuS4i+enu1wiICpuZ0lmPVwiIGkgPCBpbWdVcmxzLmxlbmd0aCAtIDFcIiAoY2xpY2spPVwiYXJyb3dEb3duKGkpXCI+XHJcbiAgICAgICAgICA8aSBuei1pY29uIG56VHlwZT1cImFycm93LWRvd25cIiBuelRoZW1lPVwib3V0bGluZVwiIHN0eWxlPVwiY29sb3I6ICMxODkwZmY7IGZvbnQtc2l6ZTogMTVweFwiPjwvaT5cclxuICAgICAgICAgIOS4i+enuzwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiJdfQ==
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpbGwtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvcXVpbGwtZWRpdG9yL3F1aWxsLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3F1aWxsLWVkaXRvci9xdWlsbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBUSxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7Ozs7Ozs7O0FBQzNCLDhDQUE4QztBQUM5QywwQ0FBMEM7QUFDMUMsK0VBQStFO0FBQy9FLHFGQUFxRjtBQUNyRixXQUFXO0FBQ1gsMENBQTBDO0FBQzFDLG1GQUFtRjtBQUNuRixxRkFBcUY7QUFDckYsV0FBVztBQWVYLE1BQU0sT0FBTyxvQkFBb0I7SUFjL0IsWUFBb0IsZ0JBQWtDLEVBQVUsT0FBeUI7UUFBckUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBWmhGLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLFdBQU0sR0FBUSxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUMsQ0FB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RUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDN0JILGl2REFtQ0E7OzJGREphLG9CQUFvQjtrQkFiaEMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1QsZ0JBQWdCO3dCQUNoQjs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0hBSVEsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtOek1lc3NhZ2VTZXJ2aWNlfSBmcm9tICduZy16b3Jyby1hbnRkL21lc3NhZ2UnO1xyXG5pbXBvcnQge1VwbG9hZE9zc1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3VwbG9hZC1vc3Muc2VydmljZVwiO1xyXG5pbXBvcnQge1Rvb2xzVXRpbH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvdXRpbHMvVG9vbHNVdGlsXCI7XHJcbmltcG9ydCAgUXVpbGwgZnJvbSAncXVpbGwnO1xyXG4vLyBjb25zdCBpY29uczphbnkgPSBRdWlsbC5pbXBvcnQoJ3VpL2ljb25zJyk7XHJcbi8vIGljb25zLnVuZG8gPSBgPHN2ZyB2aWV3Ym94PVwiMCAwIDE4IDE4XCI+XHJcbi8vICAgPHBvbHlnb24gY2xhc3M9XCJxbC1maWxsIHFsLXN0cm9rZVwiIHBvaW50cz1cIjYgMTAgNCAxMiAyIDEwIDYgMTBcIj48L3BvbHlnb24+XHJcbi8vICAgPHBhdGggY2xhc3M9XCJxbC1zdHJva2VcIiBkPVwiTTguMDksMTMuOTFBNC42LDQuNiwwLDAsMCw5LDE0LDUsNSwwLDEsMCw0LDlcIj48L3BhdGg+XHJcbi8vIDwvc3ZnPmA7XHJcbi8vIGljb25zLnJlZG8gPSBgPHN2ZyB2aWV3Ym94PVwiMCAwIDE4IDE4XCI+XHJcbi8vICAgPHBvbHlnb24gY2xhc3M9XCJxbC1maWxsIHFsLXN0cm9rZVwiIHBvaW50cz1cIjEyIDEwIDE0IDEyIDE2IDEwIDEyIDEwXCI+PC9wb2x5Z29uPlxyXG4vLyAgIDxwYXRoIGNsYXNzPVwicWwtc3Ryb2tlXCIgZD1cIk05LjkxLDEzLjkxQTQuNiw0LjYsMCwwLDEsOSwxNGE1LDUsMCwxLDEsNS01XCI+PC9wYXRoPlxyXG4vLyA8L3N2Zz5gO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcXVpbGwtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcXVpbGwtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xdWlsbC1lZGl0b3IuY29tcG9uZW50Lmxlc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFVwbG9hZE9zc1NlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBRdWlsbEVkaXRvckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVpbGxFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAn6K+36L6T5YWlJztcclxuICBASW5wdXQoKSBzdHlsZXM6IGFueSA9IHtoZWlnaHQ6ICczNTBweCd9O1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgfCBhbnk7IC8vIOe7hOS7tuWvueW6lOeahCDigJwgbmdNb2RlbCDigJ1cclxuICBASW5wdXQoKSByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG5lZWRJbWdTZXE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlZGl0b3I6IGFueTtcclxuICBvbkNoYW5nZUxpc3RlbmVyOiBhbnk7IC8vIOaUueWPmOWAvOWbnuiwg1xyXG4gIG9uVG91Y2hlZExpc3RlbmVyOiBhbnk7IC8vIOS6pOS6kuWbnuiwg1xyXG4gIGltZ1VybHM6IGFueSA9IFtdO1xyXG4gIGVkaXRvciQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgaW1nVmlzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXBsb2FkT3NzU2VydmljZTogVXBsb2FkT3NzU2VydmljZSwgcHJpdmF0ZSBtZXNzYWdlOiBOek1lc3NhZ2VTZXJ2aWNlKSB7XHJcbiAgICBjb25zdCBpY29uczogYW55ICA9IFF1aWxsLmltcG9ydCgndWkvaWNvbnMnKTtcclxuICAgIGljb25zW1widW5kb1wiXSA9IGA8c3ZnIHZpZXdib3g9XCIwIDAgMTggMThcIj5cclxuICAgICAgPHBvbHlnb24gY2xhc3M9XCJxbC1maWxsIHFsLXN0cm9rZVwiIHBvaW50cz1cIjYgMTAgNCAxMiAyIDEwIDYgMTBcIj48L3BvbHlnb24+XHJcbiAgICAgIDxwYXRoIGNsYXNzPVwicWwtc3Ryb2tlXCIgZD1cIk04LjA5LDEzLjkxQTQuNiw0LjYsMCwwLDAsOSwxNCw1LDUsMCwxLDAsNCw5XCI+PC9wYXRoPlxyXG4gICAgPC9zdmc+YDtcclxuICAgIGljb25zW1wicmVkb1wiXSA9IGA8c3ZnIHZpZXdib3g9XCIwIDAgMTggMThcIj5cclxuICAgICAgPHBvbHlnb24gY2xhc3M9XCJxbC1maWxsIHFsLXN0cm9rZVwiIHBvaW50cz1cIjEyIDEwIDE0IDEyIDE2IDEwIDEyIDEwXCI+PC9wb2x5Z29uPlxyXG4gICAgICA8cGF0aCBjbGFzcz1cInFsLXN0cm9rZVwiIGQ9XCJNOS45MSwxMy45MUE0LjYsNC42LDAsMCwxLDksMTRhNSw1LDAsMSwxLDUtNVwiPjwvcGF0aD5cclxuICAgIDwvc3ZnPmA7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZWRpdG9yJC5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNzAwKVxyXG4gICAgKS5zdWJzY3JpYmUoKGVkaXRvckNvbnRlbnQ6IHN0cmluZykgPT4ge1xyXG4gICAgICBpZiAodHlwZW9mICh0aGlzLm9uQ2hhbmdlTGlzdGVuZXIpID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiAodGhpcy5vblRvdWNoZWRMaXN0ZW5lcikpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlTGlzdGVuZXIoZWRpdG9yQ29udGVudCk7IC8vIOWRiuiviWZvcm3vvIzkvaDnmoTooajljZXlgLzmlLnlj5jmiJDkuoZwYXlsb2FkXHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRMaXN0ZW5lcigpOyAvLyDlkYror4lmb3Jt77yM5L2g55qE6KGo5Y2V5pyJ5Lqk5LqS5Y+R55SfXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYW55W10pOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZUxpc3RlbmVyID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZExpc3RlbmVyID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UocXVpbGw6IGFueSkge1xyXG4gICAgdGhpcy5lZGl0b3IkLm5leHQocXVpbGwuaHRtbCk7XHJcbiAgfVxyXG5cclxuICBFZGl0b3JDcmVhdGVkKHF1aWxsOiBhbnkpIHtcclxuICAgIGNvbnN0IHRvb2xiYXIgPSBxdWlsbC5nZXRNb2R1bGUoJ3Rvb2xiYXInKTtcclxuICAgIHRvb2xiYXIuYWRkSGFuZGxlcignaW1hZ2UnLCB0aGlzLmltYWdlSGFuZGxlci5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuZWRpdG9yID0gcXVpbGw7XHJcbiAgICBsZXQgdGhhdCA9IHRoaXM7XHJcbiAgICBxdWlsbC5vbigndGV4dC1jaGFuZ2UnLCBmdW5jdGlvbiAoZGVsdGE6IGFueSwgb2xkRGVsdGE6IGFueSwgc291cmNlOiBhbnkpIHtcclxuICAgICAgaWYgKHNvdXJjZSA9PSAnYXBpJykge1xyXG4gICAgICB9IGVsc2UgaWYgKHNvdXJjZSA9PSAndXNlcicpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygndXNlcicpO1xyXG4gICAgICAgIHRoYXQudXBsb2FkSW1ncyhbXSwgMCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QmxvYkJ5QmFzZTY0KHVybDogYW55LCBvbGRVcmw6IGFueSkge1xyXG4gICAgY29uc3QgYzogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgICBjb25zb2xlLmxvZyhjKTtcclxuICAgIGNvbnN0IGN0eCA9IGMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgIGN0eC5zdHJva2UoKTtcclxuICAgIGxldCBibG9iOiBhbnkgPSBUb29sc1V0aWwuZGF0YVVSSXRvQmxvYih1cmwpO1xyXG4gICAgYmxvYi5uYW1lID0gJy5wbmcnO1xyXG4gICAgbGV0IGRlbHRhID0gdGhpcy5lZGl0b3IuZ2V0Q29udGVudHMoKTtcclxuICAgIGNvbnNvbGUubG9nKCdkZWx0YScsIGRlbHRhKVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWx0YS5vcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGRlbHRhLm9wc1tpXS5pbnNlcnQuaW1hZ2UgPT0gb2xkVXJsKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGluZGV4OiBpLFxyXG4gICAgICAgICAgYmxvYjogYmxvYixcclxuICAgICAgICAgIG9sZFVybDogb2xkVXJsXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICB1cGxvYWRJbWdzKGJsb2RzOiBhbnksIGluZGV4OiBhbnkpIHtcclxuICAgIGxldCBkZXRhaWxzID0gdGhpcy5lZGl0b3IuZ2V0Q29udGVudHMoKTtcclxuICAgIGxldCBvcHQgPSBkZXRhaWxzLm9wc1tpbmRleF07XHJcbiAgICBpZiAob3B0ICYmIG9wdC5pbnNlcnQgJiYgb3B0Lmluc2VydC5pbWFnZSkge1xyXG4gICAgICBpZiAoVG9vbHNVdGlsLmlzQmFzZTY0KG9wdC5pbnNlcnQuaW1hZ2UpKSB7XHJcbiAgICAgICAgYmxvZHMucHVzaCh0aGlzLmdldEJsb2JCeUJhc2U2NChvcHQuaW5zZXJ0LmltYWdlLCBvcHQuaW5zZXJ0LmltYWdlKSk7XHJcbiAgICAgICAgdGhpcy5pc0VuZENvbnRlbnRzKGJsb2RzLCBpbmRleClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgICAgIGxldCBjdHg6IGFueSA9IGMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgICBsZXQgaW1nID0gbmV3IEltYWdlKCk7XHJcbiAgICAgICAgaW1nLnNyYyA9IG9wdC5pbnNlcnQuaW1hZ2U7XHJcbiAgICAgICAgaW1nLnNldEF0dHJpYnV0ZSgnY3Jvc3NPcmlnaW4nLCAnKicpO1xyXG4gICAgICAgIGxldCB0aGF0ID0gdGhpcztcclxuICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgYy53aWR0aCA9IGltZy53aWR0aDtcclxuICAgICAgICAgIGMuaGVpZ2h0ID0gaW1nLmhlaWdodDtcclxuICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpO1xyXG4gICAgICAgICAgbGV0IHVybCA9IGMudG9EYXRhVVJMKCk7XHJcbiAgICAgICAgICBibG9kcy5wdXNoKHRoYXQuZ2V0QmxvYkJ5QmFzZTY0KHVybCwgaW1nLnNyYykpXHJcbiAgICAgICAgICB0aGF0LmlzRW5kQ29udGVudHMoYmxvZHMsIGluZGV4KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc0VuZENvbnRlbnRzKGJsb2RzLCBpbmRleClcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIHVwbG9hZEltZyhibG9kczphbnkpIHtcclxuICAgIGlmICghYmxvZHMgfHwgYmxvZHMubGVuZ3RoIDw9IDApIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgZm9yKGxldCBpID0gMDtpPCBibG9kcy5sZW5ndGg7aSsrKXtcclxuICAgICAgbGV0IGJsb2IgPSBibG9kc1tpXTtcclxuICAgICAgdGhpcy51cGxvYWRPc3NTZXJ2aWNlLnVwbG9hZE9zcyhibG9iKS5zdWJzY3JpYmUoKHVybCkgPT4ge1xyXG4gICAgICAgIGxldCBkZWx0YSA9IHRoaXMuZWRpdG9yLmdldENvbnRlbnRzKCk7XHJcbiAgICAgICAgZGVsdGEuZmlsdGVyKChvcHQ6YW55KSA9PiBvcHQgJiYgb3B0Lmluc2VydCAmJiBvcHQuaW5zZXJ0LmltYWdlID09IGJsb2RzW2ldLm9sZFVybCkuZm9yRWFjaCgob3B0OmFueSwgaW5kZXg6YW55KSA9PiB7XHJcbiAgICAgICAgICBvcHQuaW5zZXJ0LmltYWdlID0gdXJsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0Q29udGVudHMoZGVsdGEsICdhcGknKTtcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcbiAgaXNFbmRDb250ZW50cyhibG9kczphbnksIGluZGV4OmFueSkge1xyXG4gICAgbGV0IGRldGFpbHMgPSB0aGlzLmVkaXRvci5nZXRDb250ZW50cygpO1xyXG4gICAgaWYgKCsraW5kZXggIT0gZGV0YWlscy5vcHMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkSW1ncyhibG9kcywgaW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGxvYWRJbWcoYmxvZHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW1hZ2VIYW5kbGVyKCkge1xyXG4gICAgY29uc3QgSW1hZ2VpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICBJbWFnZWlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdmaWxlJyk7XHJcbiAgICBJbWFnZWlucHV0LnNldEF0dHJpYnV0ZSgnbXVsdGlwbGUnLCAnbXVsdGlwbGUnKTtcclxuICAgIEltYWdlaW5wdXQuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCAnaW1hZ2UvcG5nLCBpbWFnZS9naWYsIGltYWdlL2pwZWcsIGltYWdlL2JtcCcpO1xyXG4gICAgSW1hZ2VpbnB1dC5jbGFzc0xpc3QuYWRkKCdxbC1pbWFnZScpO1xyXG4gICAgSW1hZ2VpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm5lZWRJbWdTZXEpIHtcclxuICAgICAgICB0aGlzLmltZ1ZpcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2coSW1hZ2VpbnB1dCk7XHJcbiAgICAgIGxldCBmaWxlczogYW55ID0gSW1hZ2VpbnB1dC5maWxlcztcclxuICAgICAgaWYgKGZpbGVzID09PSBudWxsIHx8IGZpbGVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW1nVXJscyA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IGZpbGVzW2ldO1xyXG4gICAgICAgIGlmIChmaWxlID09PSBudWxsKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBjb25zdCBlcnJvciA9IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlLndhcm5pbmcoJ+S4iuS8oOWksei0pScpO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMudXBsb2FkT3NzU2VydmljZS51cGxvYWRPc3MoZmlsZSkuc3Vic2NyaWJlKCh1cmwpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGZpbGUpO1xyXG4gICAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgICB0aGlzLmltZ1VybHMucHVzaCh7dXJsOiB1cmwsIGZpbGU6IGZpbGUsIGluZGV4OiBpfSk7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5uZWVkSW1nU2VxKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5lZGl0b3IuaW5zZXJ0RW1iZWQodGhpcy5lZGl0b3IuZ2V0U2VsZWN0aW9uKHRydWUpLmluZGV4LCAnaW1hZ2UnLCB1cmwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2Uud2FybmluZygn5LiK5Lyg5aSx6LSlJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5uZWVkSW1nU2VxICYmIHRoaXMuaW1nVXJscy5sZW5ndGggPT0gZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW1nVmlzID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5pbWdVcmxzLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiBhLmluZGV4IC0gYi5pbmRleCk7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwidGVcIik/LmNsaWNrKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgSW1hZ2VpbnB1dC5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZVNlcSgpIHtcclxuICAgIGNvbnNvbGUubG9nKDEyMyk7XHJcbiAgICBmb3IgKGxldCBpID0gdGhpcy5pbWdVcmxzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yLmluc2VydEVtYmVkKHRoaXMuZWRpdG9yLmdldFNlbGVjdGlvbih0cnVlKS5pbmRleCwgJ2ltYWdlJywgdGhpcy5pbWdVcmxzW2ldLnVybCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmltZ1ZpcyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgYXJyb3dVcChpbmRleDogYW55KSB7XHJcbiAgICBsZXQgaW1nID0gdGhpcy5pbWdVcmxzW2luZGV4XTtcclxuICAgIHRoaXMuaW1nVXJsc1tpbmRleF0gPSB0aGlzLmltZ1VybHNbaW5kZXggLSAxXTtcclxuICAgIHRoaXMuaW1nVXJsc1tpbmRleCAtIDFdID0gaW1nO1xyXG4gIH1cclxuXHJcbiAgYXJyb3dEb3duKGluZGV4OiBhbnkpIHtcclxuICAgIGxldCBpbWcgPSB0aGlzLmltZ1VybHNbaW5kZXhdO1xyXG4gICAgdGhpcy5pbWdVcmxzW2luZGV4XSA9IHRoaXMuaW1nVXJsc1tpbmRleCArIDFdO1xyXG4gICAgdGhpcy5pbWdVcmxzW2luZGV4ICsgMV0gPSBpbWc7XHJcbiAgfVxyXG5cclxuICBjYW5jbGUoKSB7XHJcbiAgICB0aGlzLmltZ1ZpcyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdGUoKSB7XHJcbiAgICBjb25zb2xlLmxvZygn5LiK5Lyg5a6M5q+VJylcclxuICB9XHJcbn1cclxuIiwiPHF1aWxsLWVkaXRvclxyXG4gIFtzdHlsZXNdPVwic3R5bGVzXCJcclxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gIChvbkVkaXRvckNyZWF0ZWQpPVwiRWRpdG9yQ3JlYXRlZCgkZXZlbnQpXCJcclxuICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAob25Db250ZW50Q2hhbmdlZCk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxyXG4+PC9xdWlsbC1lZGl0b3I+XHJcbjwhLS3ov5nkuKpkaXYs5piv5Zug5Li65LiK5Lyg5a6M5q+V54Sm54K56L+Y5Zyo5a+M5paH5pys6YeMLOW8ueWHuuaXoOazleaYvuekui4uLi4uLS0+XHJcbjxkaXYgaWQ9XCJ0ZVwiIChjbGljayk9XCJ0ZSgpXCI+PC9kaXY+XHJcbjxuei1tb2RhbCBbKG56VmlzaWJsZSldPVwiaW1nVmlzXCIgKG56T25Payk9XCJzYXZlU2VxKClcIiAobnpPbkNhbmNlbCk9XCJjYW5jbGUoKVwiIG56TWFza0Nsb3NhYmxlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW256U3R5bGVdPVwie3BhZGRpbmc6MH1cIj5cclxuICA8bmctY29udGFpbmVyICpuek1vZGFsQ29udGVudD5cclxuICA8ZGl2IHN0eWxlPVwibWF4LWhlaWdodDo2MDBweDtvdmVyZmxvdzphdXRvO21hcmdpbi10b3A6IDEwcHg7XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW1nc0NvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uei1tb2RhbD5cclxuPG5nLXRlbXBsYXRlICNpbWdzQ29udGVudD5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWdPcHQgb2YgaW1nVXJscztsZXQgaSA9IGluZGV4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW1nLWRpdlwiPlxyXG4gICAgICA8aW1nIFtzcmNdPVwiaW1nT3B0LnVybFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6ICcxMDBweCcsZGlzcGxheTogJ2lubGluZS1ibG9jaycsIG1hcmdpbjonNXB4JyB9XCIvPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWxlZnQ6IDIwcHg7IGNvbG9yOiBncmV5O1wiPnt7aW1nT3B0LmZpbGUubmFtZX19PC9kaXY+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDIwcHg7IGZsZXg6IDE7dGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgPGEgdGl0bGU9XCLkuIrnp7tcIiAqbmdJZj1cIiBpID4gMFwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCIgKGNsaWNrKT1cImFycm93VXAoaSlcIj5cclxuICAgICAgICAgIDxpIG56LWljb24gbnpUeXBlPVwiYXJyb3ctdXBcIiBuelRoZW1lPVwib3V0bGluZVwiIHN0eWxlPVwiY29sb3I6ICMxODkwZmY7IGZvbnQtc2l6ZTogMTVweDtcIj48L2k+XHJcbiAgICAgICAgICDkuIrnp7s8L2E+XHJcbiAgICAgICAgPGEgdGl0bGU9XCLkuIvnp7tcIiAqbmdJZj1cIiBpIDwgaW1nVXJscy5sZW5ndGggLSAxXCIgKGNsaWNrKT1cImFycm93RG93bihpKVwiPlxyXG4gICAgICAgICAgPGkgbnotaWNvbiBuelR5cGU9XCJhcnJvdy1kb3duXCIgbnpUaGVtZT1cIm91dGxpbmVcIiBzdHlsZT1cImNvbG9yOiAjMTg5MGZmOyBmb250LXNpemU6IDE1cHhcIj48L2k+XHJcbiAgICAgICAgICDkuIvnp7s8L2E+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG4iXX0=