@simpleangularcontrols/sac-bootstrap3 10.0.0-rc.27 → 10.0.0-rc.28
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.
- package/bundles/simpleangularcontrols-sac-bootstrap3.umd.js +159 -166
- package/bundles/simpleangularcontrols-sac-bootstrap3.umd.js.map +1 -1
- package/bundles/simpleangularcontrols-sac-bootstrap3.umd.min.js +1 -1
- package/bundles/simpleangularcontrols-sac-bootstrap3.umd.min.js.map +1 -1
- package/controls/dialog/dialog.d.ts +3 -3
- package/controls/grid/grid.d.ts +1 -1
- package/controls/grid/gridbutton.d.ts +5 -2
- package/controls/grid/gridcolumn.d.ts +1 -1
- package/controls/grid/gridcolumnaction.d.ts +1 -1
- package/controls/grid/gridimage.d.ts +0 -1
- package/controls/list/dropdown.d.ts +2 -11
- package/controls/list/dropdownoption.directive.d.ts +11 -0
- package/controls/list/dropdownoption.directive.ngfactory.d.ts +1 -0
- package/controls/list/list.token.d.ts +3 -0
- package/controls/list/list.token.ngfactory.d.ts +1 -0
- package/controls/list/listbox.d.ts +4 -1
- package/controls/list/listboxoption.directive.d.ts +11 -0
- package/controls/list/listboxoption.directive.ngfactory.d.ts +1 -0
- package/controls/tabs/tab.d.ts +1 -1
- package/controls/upload/upload.d.ts +1 -1
- package/controls/validation/validationsummary.d.ts +1 -1
- package/esm2015/controls/buttons/button.js +4 -3
- package/esm2015/controls/buttons/button.module.js +5 -6
- package/esm2015/controls/buttons/button.module.ngfactory.js +1 -1
- package/esm2015/controls/checkbox/checkbox.js +2 -2
- package/esm2015/controls/checkbox/checkbox.module.js +7 -18
- package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +1 -1
- package/esm2015/controls/checkbox/radiobutton.js +1 -1
- package/esm2015/controls/checkbox/radiobuttons.js +2 -2
- package/esm2015/controls/confirm/confirm.module.js +5 -4
- package/esm2015/controls/confirm/confirm.module.ngfactory.js +1 -1
- package/esm2015/controls/contextmenu/contextmenu.js +2 -2
- package/esm2015/controls/contextmenu/contextmenu.module.js +3 -2
- package/esm2015/controls/contextmenu/contextmenu.module.ngfactory.js +1 -1
- package/esm2015/controls/datetime/date.js +7 -7
- package/esm2015/controls/datetime/dateselector.js +2 -2
- package/esm2015/controls/datetime/datetime.js +2 -2
- package/esm2015/controls/datetime/datetime.module.js +8 -16
- package/esm2015/controls/datetime/datetime.module.ngfactory.js +1 -1
- package/esm2015/controls/datetime/time.js +2 -2
- package/esm2015/controls/dialog/dialog.js +14 -9
- package/esm2015/controls/dialog/dialog.module.js +6 -7
- package/esm2015/controls/dialog/dialog.module.ngfactory.js +1 -1
- package/esm2015/controls/grid/grid.js +7 -5
- package/esm2015/controls/grid/grid.module.js +6 -5
- package/esm2015/controls/grid/grid.module.ngfactory.js +1 -1
- package/esm2015/controls/grid/gridbutton.js +12 -25
- package/esm2015/controls/grid/gridcolumn.js +5 -4
- package/esm2015/controls/grid/gridcolumnaction.js +5 -4
- package/esm2015/controls/grid/gridimage.js +2 -12
- package/esm2015/controls/grid/paging.js +8 -5
- package/esm2015/controls/input/input.js +2 -2
- package/esm2015/controls/input/input.module.js +7 -5
- package/esm2015/controls/input/input.module.ngfactory.js +1 -1
- package/esm2015/controls/input/inputarea.js +2 -2
- package/esm2015/controls/input/inputcurrency.js +2 -2
- package/esm2015/controls/input/inputdecimal.js +2 -2
- package/esm2015/controls/input/inputemail.js +2 -2
- package/esm2015/controls/input/inputinteger.js +2 -2
- package/esm2015/controls/input/inputpassword.js +2 -2
- package/esm2015/controls/input/inputsearch.js +2 -2
- package/esm2015/controls/list/dropdown.js +7 -27
- package/esm2015/controls/list/dropdownoption.directive.js +24 -0
- package/esm2015/controls/list/dropdownoption.directive.ngfactory.js +7 -0
- package/esm2015/controls/list/list.module.js +11 -16
- package/esm2015/controls/list/list.module.ngfactory.js +1 -1
- package/esm2015/controls/list/list.token.js +6 -0
- package/esm2015/controls/list/list.token.ngfactory.js +7 -0
- package/esm2015/controls/list/listbox.js +8 -5
- package/esm2015/controls/list/listboxoption.directive.js +24 -0
- package/esm2015/controls/list/listboxoption.directive.ngfactory.js +7 -0
- package/esm2015/controls/static/formcontainer.js +2 -2
- package/esm2015/controls/static/staticlabel.js +2 -2
- package/esm2015/controls/static/staticlabel.module.js +5 -8
- package/esm2015/controls/static/staticlabel.module.ngfactory.js +1 -1
- package/esm2015/controls/tabs/tab.js +5 -3
- package/esm2015/controls/tabs/tabs.module.js +6 -7
- package/esm2015/controls/tabs/tabs.module.ngfactory.js +1 -1
- package/esm2015/controls/tinymce/tinymce.js +2 -2
- package/esm2015/controls/tinymce/tinymce.module.js +7 -5
- package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +1 -1
- package/esm2015/controls/tooltip/tooltip.js +2 -2
- package/esm2015/controls/tooltip/tooltip.module.js +4 -3
- package/esm2015/controls/tooltip/tooltip.module.ngfactory.js +1 -1
- package/esm2015/controls/treeview/treeview.js +2 -2
- package/esm2015/controls/treeview/treeview.module.js +9 -2
- package/esm2015/controls/treeview/treeview.module.ngfactory.js +1 -1
- package/esm2015/controls/upload/dropzonemultiple.js +2 -2
- package/esm2015/controls/upload/dropzonesingle.js +2 -2
- package/esm2015/controls/upload/upload.js +4 -4
- package/esm2015/controls/upload/upload.module.js +9 -2
- package/esm2015/controls/upload/upload.module.ngfactory.js +1 -1
- package/esm2015/controls/upload/uploadmultiple.js +2 -2
- package/esm2015/controls/validation/validationsummary.js +3 -3
- package/esm2015/controls/validation/validationsummary.module.js +5 -6
- package/esm2015/controls/validation/validationsummary.module.ngfactory.js +1 -1
- package/esm2015/controls/wizard/wizard.module.js +6 -7
- package/esm2015/controls/wizard/wizard.module.ngfactory.js +1 -1
- package/esm2015/public_api.js +3 -1
- package/esm2015/simpleangularcontrols-sac-bootstrap3.js +2 -1
- package/fesm2015/simpleangularcontrols-sac-bootstrap3.js +157 -163
- package/fesm2015/simpleangularcontrols-sac-bootstrap3.js.map +1 -1
- package/package.json +2 -2
- package/public_api.d.ts +2 -0
- package/simpleangularcontrols-sac-bootstrap3-10.0.0-rc.28.tgz +0 -0
- package/simpleangularcontrols-sac-bootstrap3.d.ts +1 -0
- package/simpleangularcontrols-sac-bootstrap3.metadata.json +1 -1
- package/simpleangularcontrols-sac-bootstrap3-10.0.0-rc.27.tgz +0 -0
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
5
|
* tslint:disable
|
|
6
6
|
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL3VwbG9hZC5tb2R1bGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGkxIGZyb20gJy4vdXBsb2FkLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGk1IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcCc7XG5pbXBvcnQgKiBhcyBpNiBmcm9tICcuL3VwbG9hZCc7XG5pbXBvcnQgKiBhcyBpNyBmcm9tICcuL3VwbG9hZG11bHRpcGxlJztcbmltcG9ydCAqIGFzIGk4IGZyb20gJy4vZHJvcHpvbmVzaW5nbGUnO1xuaW1wb3J0ICogYXMgaTkgZnJvbSAnLi9kcm9wem9uZW11bHRpcGxlJztcbmltcG9ydCAqIGFzIGkxMCBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9saGVpZ2h0LnBpcGUnO1xuaW1wb3J0ICogYXMgaTExIGZyb20gJy4uL2xheW91dC90b2NvbnRyb2x3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxMiBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMyBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbHdpZHRoY3NzLnBpcGUnO1xuaW1wb3J0ICogYXMgaTE0IGZyb20gJy4uL2xheW91dC9sYXlvdXQubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxNSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmV4cG9ydCBjb25zdCBTQUNCb290c3RyYXAzVXBsb2FkTW9kdWxlTmdGYWN0b3J5OmkwLk5nTW9kdWxlRmFjdG9yeTxpMS5TQUNCb290c3RyYXAzVXBsb2FkTW9kdWxlPiA9IChudWxsIGFzIGFueSk7XG52YXIgX2RlY2wwXzA6aTIuTmdDbGFzcyA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOmkyLk5nQ29tcG9uZW50T3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI6aTIuTmdGb3JPZjxhbnksYW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOmkyLk5nSWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80OmkyLk5nVGVtcGxhdGVPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTppMi5OZ1N0eWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY6aTIuTmdTd2l0Y2ggPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzppMi5OZ1N3aXRjaENhc2UgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODppMi5OZ1N3aXRjaERlZmF1bHQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTppMi5OZ1BsdXJhbCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDppMi5OZ1BsdXJhbENhc2UgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE6aTMuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX3kgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTI6aTMuTmdTZWxlY3RPcHRpb24gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTMuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX3ggPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTQ6aTMuRGVmYXVsdFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTMuTnVtYmVyVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppMy5SYW5nZVZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTc6aTMuQ2hlY2tib3hDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xODppMy5TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOTppMy5TZWxlY3RNdWx0aXBsZUNvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIwOmkzLlJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjE6aTMuTmdDb250cm9sU3RhdHVzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIyOmkzLk5nQ29udHJvbFN0YXR1c0dyb3VwID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIzOmkzLlJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI0OmkzLk1pbkxlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppMy5NYXhMZW5ndGhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjY6aTMuUGF0dGVyblZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNzppMy5DaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI4OmkzLkVtYWlsVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI5OmkzLk5nTW9kZWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzA6aTMuTmdNb2RlbEdyb3VwID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMxOmkzLk5nRm9ybSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMjppNC5TYWNGb3JtTGF5b3V0RGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMzOmk1LlNhY1Rvb2x0aXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzQ6aTYuU2FjVXBsb2FkQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM1Omk3LlNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM2Omk4LlNhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM3Omk5LlNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzg6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM5OmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDA6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MjppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDM6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDQ6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDU6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NjppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDc6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDg6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDk6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTA6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUxOmkxMC5TYWNUb0NvbnRyb2xIZWlnaHRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUyOmkxMS5TYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTM6aTEyLlNhY1RvTGFiZWxIZWlnaHRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU0OmkxMy5TYWNUb0xhYmVsV2lkdGhDc3NQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU1OmkyLkNvbW1vbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NjppMy5Gb3Jtc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NzppMTQuU0FDQm9vdHN0cmFwM0xheW91dE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81ODppMTUuU0FDQm9vdHN0cmFwM1Rvb2x0aXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTk6aTAuVGVtcGxhdGVSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MDppMC5FbGVtZW50UmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzQuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzQuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM0LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV8xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNC5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM0LmlzQWRhcHRpdmVMYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnY29sLXhzLTEyIGNvbnRyb2wtbGFiZWwnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTQudHJhbnNmb3JtKF9kZWNsMF8zNC5sYWJlbFNpemVzKTogJ3NyLW9ubHknKV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM0Lm5hbWUsJ2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM0Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM0LmlzcmVxdWlyZWQ7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzQubGFiZWw7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzY7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzMoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNC5Jc1BhdXNlZCgpID09PSBmYWxzZSkpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM0LklzVXBsb2FkaW5nKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzQuSWNvblBhdXNlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBwZF80OmFueSA9ICgoPGFueT5fZGVjbDBfMzQucGF1c2VBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfNCgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzQuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpICYmIF9kZWNsMF8zNC5Jc1BhdXNlZCgpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNC5JY29uQ29udGludWU7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC51cGxvYWRBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfNSgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zNC5Jc1N0YXRlVG9VcGxvYWQoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNC5JY29uVXBsb2FkO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9kZWNsMF8zNC5idXR0b251cGxvYWQ/IF9kZWNsMF8zNC5idXR0b251cGxvYWQ6IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM0LmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzM0LnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvblVwbG9hZCkpKTtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgcGRfNTphbnkgPSAoKDxhbnk+X2RlY2wwXzM0LnVwbG9hZEFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV82KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNC5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzcoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM0LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNC5pbnZhbGlkKSAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNC5HZXRFcnJvck1lc3NhZ2UoKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV85KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpICYmIF9kZWNsMF8zNC5kaXNhYmxlbGFiZWwpICYmICgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNC5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzQuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzgoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzQuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3JvdyBmb3JtLWdyb3VwJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzUzLnRyYW5zZm9ybShfZGVjbDBfMzQuY29tcG9uZW50SGVpZ2h0KTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNC5uYW1lLCcnKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNC5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAnY29sLXhzLTEyJztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gWygoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNC5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKCgoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzQuZGlzYWJsZWxhYmVsKT8gJ2ZsZXgnOiBudWxsKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKCgoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzQuZGlzYWJsZWxhYmVsKT8gMTogbnVsbCk7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IChfZGVjbDBfMzQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzQuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAoX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM0LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IF9kZWNsMF8zNC5IYXNRdWV1ZUl0ZW0oKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgY3VyclZhbF8xMzphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IF9kZWNsMF8zNC5JY29uQnJvd3NlO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IChfZGVjbDBfMzQuYnV0dG9uYnJvd3NlPyBfZGVjbDBfMzQuYnV0dG9uYnJvd3NlOiBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNC5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKF9kZWNsMF8zNC52YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25Ccm93c2UpKSk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNC5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSBfZGVjbDBfMzQuSGFzUXVldWVJdGVtKCk7XG4gIGN1cnJWYWxfMTc7XG4gIGNvbnN0IGN1cnJWYWxfMTg6YW55ID0gKF9kZWNsMF8zNC5Qcm9ncmVzcygpID09PSAxMDApO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9IF9kZWNsMF8zNC5Qcm9ncmVzcygpO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9IF9kZWNsMF8zNC5Qcm9ncmVzcygpO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM0LkZpbGVuYW1lKCkpO1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9ICgoX2RlY2wwXzM0Lkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICBjdXJyVmFsXzIyO1xuICBjb25zdCBjdXJyVmFsXzIzOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzIzO1xuICBjb25zdCBjdXJyVmFsXzI0OmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjQ7XG4gIGNvbnN0IGN1cnJWYWxfMjU6YW55ID0gX2RlY2wwXzM0Lkljb25EZWxldGU7XG4gIGN1cnJWYWxfMjU7XG4gIGNvbnN0IGN1cnJWYWxfMjY6YW55ID0gKCgoX2RlY2wwXzM0LmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzM0LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM0LklzUGF1c2VkKCkgPT09IGZhbHNlKSkpO1xuICBjdXJyVmFsXzI2O1xuICBjb25zdCBjdXJyVmFsXzI3OmFueSA9ICgoX2RlY2wwXzM0LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSAmJiBfZGVjbDBfMzQuSXNQYXVzZWQoKSk7XG4gIGN1cnJWYWxfMjc7XG4gIGNvbnN0IGN1cnJWYWxfMjg6YW55ID0gKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSk7XG4gIGN1cnJWYWxfMjg7XG4gIGNvbnN0IGN1cnJWYWxfMjk6YW55ID0gKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMjk7XG4gIGNvbnN0IGN1cnJWYWxfMzA6YW55ID0gKChfZGVjbDBfMzQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM0LmludmFsaWQpICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8zMDtcbiAgY29uc3QgY3VyclZhbF8zMTphbnkgPSAoKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCkgJiYgX2RlY2wwXzM0LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMzE7XG4gIGNvbnN0IHBkXzMyOmFueSA9ICgoPGFueT4oX2FueS52YWx1ZSA9ICcnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzM6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC5vblVwbG9hZChfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzQ6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC5jYW5jZWxBbGwoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50X0hvc3RfMl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNS5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM1LmlzQWRhcHRpdmVMYWJlbCkgJiYgKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM1LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNS5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl8xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM1LmlzQWRhcHRpdmVMYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnY29sLXhzLTEyIGNvbnRyb2wtbGFiZWwnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTQudHJhbnNmb3JtKF9kZWNsMF8zNS5sYWJlbFNpemVzKTogJ3NyLW9ubHknKV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM1Lm5hbWUsJ2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM1Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM1LmlzcmVxdWlyZWQ7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzUubGFiZWw7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzY7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMygpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM1LklzUGF1c2VkKCkgPT09IGZhbHNlKSkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzUuSXNVcGxvYWRpbmcoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNS5JY29uUGF1c2U7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IHBkXzQ6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS5wYXVzZUFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzQoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM1LklzUGF1c2VkKCkgPT09IHRydWUpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNS5JY29uQ29udGludWU7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS51cGxvYWRBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl81KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM1LklzU3RhdGVUb1VwbG9hZCgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM1Lkljb25VcGxvYWQ7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoX2RlY2wwXzM1LmJ1dHRvbnVwbG9hZD8gX2RlY2wwXzM1LmJ1dHRvbnVwbG9hZDogX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzUubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhfZGVjbDBfMzUudmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSkpO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBwZF81OmFueSA9ICgoPGFueT5fZGVjbDBfMzUudXBsb2FkQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfNygpOnZvaWQge1xuICBpZiAoKCgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzUuZGlzYWJsZWxhYmVsKSAmJiAoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzUuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM1LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzYoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzUuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzUuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl85KCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgfHwgKChfZGVjbDBfMzUuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpICYmIChfYW55LnN0YXR1cyAhPT0gJ3BhdXNlZCcpKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9hbnkuc3RhdHVzICE9PSAndXBsb2FkaW5nJyk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM1Lkljb25QYXVzZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgcGRfNDphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LnBhdXNlKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzEwKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzID09PSAncGF1c2VkJykpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM1Lkljb25Db250aW51ZTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgcGRfMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LnVwbG9hZChfYW55LnVwbG9hZElkKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl8xMSgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKChfYW55LnN0YXR1cyAhPT0gJ2FkZGVkJykgJiYgKF9hbnkuc3RhdHVzICE9PSAncGF1c2VkJykpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNS5JY29uVXBsb2FkO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9kZWNsMF8zNS5idXR0b251cGxvYWQ/IF9kZWNsMF8zNS5idXR0b251cGxvYWQ6IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM1LmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzM1LnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvblVwbG9hZCkpKTtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgcGRfNTphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LnVwbG9hZChfYW55LnVwbG9hZElkKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl84KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2FueS5wcm9ncmVzcyA9PT0gMTAwKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2FueS5uYW1lO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zNS5JY29uRGVsZXRlO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzICE9PSAncGF1c2VkJykpKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzID09PSAncGF1c2VkJykpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBwZF8xNDphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LmNhbmNlbChfYW55LnVwbG9hZElkKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMTIoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM1LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMzUuaGVscHRleHQpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM1LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl8xMygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzUuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM1LmludmFsaWQpICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM1LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ3JvdyBmb3JtLWdyb3VwJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzUzLnRyYW5zZm9ybShfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0KTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNS5uYW1lLCcnKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKChfZGVjbDBfMzUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNS5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAnY29sLXhzLTEyJztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gWygoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNS5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKCgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzUuZGlzYWJsZWxhYmVsKT8gJ2ZsZXgnOiBudWxsKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNS5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNS5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICgoX2RlY2wwXzM1Lm1heGZpbGVzID4gMCkgJiYgKF9kZWNsMF8zNS51cGxvYWRzLmxlbmd0aCA+PSBfZGVjbDBfMzUubWF4ZmlsZXMpKTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IF9kZWNsMF8zNS5JY29uQnJvd3NlO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IChfZGVjbDBfMzUuYnV0dG9uYnJvd3NlPyBfZGVjbDBfMzUuYnV0dG9uYnJvd3NlOiBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNS5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKF9kZWNsMF8zNS52YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25Ccm93c2UpKSk7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNS5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgY3VyclZhbF8xNTtcbiAgY29uc3QgY3VyclZhbF8xNjphbnkgPSAoKF9kZWNsMF8zNS5tYXhmaWxlcyA+IDApICYmIChfZGVjbDBfMzUudXBsb2Fkcy5sZW5ndGggPj0gX2RlY2wwXzM1Lm1heGZpbGVzKSk7XG4gIGN1cnJWYWxfMTY7XG4gIGNvbnN0IGN1cnJWYWxfMTc6YW55ID0gKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNS5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9ICgoX2RlY2wwXzM1Lkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjE7XG4gIGNvbnN0IGN1cnJWYWxfMjI6YW55ID0gX2RlY2wwXzM1Lkljb25EZWxldGU7XG4gIGN1cnJWYWxfMjI7XG4gIGNvbnN0IGN1cnJWYWxfMjM6YW55ID0gKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM1LklzUGF1c2VkKCkgPT09IGZhbHNlKSkpO1xuICBjdXJyVmFsXzIzO1xuICBjb25zdCBjdXJyVmFsXzI0OmFueSA9ICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM1LklzUGF1c2VkKCkgPT09IHRydWUpKTtcbiAgY3VyclZhbF8yNDtcbiAgY29uc3QgY3VyclZhbF8yNTphbnkgPSAoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKTtcbiAgY3VyclZhbF8yNTtcbiAgY29uc3QgY3VyclZhbF8yNjphbnkgPSAoKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCkgJiYgX2RlY2wwXzM1LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMjY7XG4gIGNvbnN0IGN1cnJWYWxfMjc6YW55ID0gX2RlY2wwXzM1LnVwbG9hZHM7XG4gIGN1cnJWYWxfMjc7XG4gIGNvbnN0IGN1cnJWYWxfMjg6YW55ID0gKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMjg7XG4gIGNvbnN0IGN1cnJWYWxfMjk6YW55ID0gKChfZGVjbDBfMzUuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM1LmludmFsaWQpICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yOTtcbiAgY29uc3QgcGRfMzA6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMTphbnkgPSAoKDxhbnk+X2RlY2wwXzM1Lm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMjphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LmNhbmNlbEFsbCgpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfSG9zdF8zXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzYuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzYuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM2LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzYuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wteHMtMTIgY29udHJvbC1sYWJlbCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMzYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzM2LmxhYmVsU2l6ZXMpOiAnc3Itb25seScpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzYubmFtZSwnbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzYubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzYuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNi5sYWJlbDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM18zKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM2LnVwbG9hZHMubGVuZ3RoID09PSAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM2LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNi5pbnZhbGlkKSAmJiAoX2RlY2wwXzM2LmRpcnR5IHx8IF9kZWNsMF8zNi50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzUoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMzYuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzYuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM2LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM2LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9hbnkucHJvZ3Jlc3MgPT09IDEwMCk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfYW55LnByb2dyZXNzO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9hbnkubmFtZTtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICEoX2RlY2wwXzM2LmludmFsaWQgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8zNi5pbnZhbGlkICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8zNi5JY29uRGVsZXRlO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBwZF85OmFueSA9ICgoPGFueT5fZGVjbDBfMzYuY2FuY2VsKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzQoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNi51cGxvYWRzO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM182KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNi5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfNygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzYuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM2LmludmFsaWQpICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM2LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfOSgpOnZvaWQge1xuICBpZiAoKCgoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzYuZGlzYWJsZWxhYmVsKSAmJiAoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzYuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM2LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzgoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzYuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAncm93IGZvcm0tZ3JvdXAnO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zNi5jb21wb25lbnRIZWlnaHQpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM2Lm5hbWUsJycpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzM2LmludmFsaWQgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM2LmlzQWRhcHRpdmVMYWJlbCk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9ICdjb2wteHMtMTInO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBbKChfZGVjbDBfMzYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81Mi50cmFuc2Zvcm0oX2RlY2wwXzM2LmxhYmVsU2l6ZXMpOiAnJyldO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKCgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpICYmIF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwpPyAnZmxleCc6IG51bGwpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoKCgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpICYmIF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwpPyAxOiBudWxsKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzM2LnVwbG9hZGhlaWdodDtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zNi5hY3RpdmU7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gKF9kZWNsMF8zNi5pbnZhbGlkICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoX2RlY2wwXzM2LnVwbG9hZHMubGVuZ3RoID09PSAwKTtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgY3VyclZhbF8xMzphbnkgPSAoX2RlY2wwXzM2LnVwbG9hZHMubGVuZ3RoID4gMCk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNi5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfMzYuSGFzUXVldWVJdGVtKCk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gKChfZGVjbDBfMzYuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNi5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMTY7XG4gIGNvbnN0IGN1cnJWYWxfMTc6YW55ID0gKChfZGVjbDBfMzYuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM2LmludmFsaWQpICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAoKChfZGVjbDBfMzYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNi5oZWxwdGV4dCkgJiYgX2RlY2wwXzM2LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IHBkXzE5OmFueSA9ICgoPGFueT5fZGVjbDBfMzYuZHJvcEhhbmRsZXIoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIwOmFueSA9ICgoPGFueT5fZGVjbDBfMzYub25EcmFnT3ZlcihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjE6YW55ID0gKCg8YW55Pl9kZWNsMF8zNi5vbkRyYWdMZWF2ZShfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjI6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM2Lm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF9Ib3N0XzRfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM3LmlzQWRhcHRpdmVMYWJlbCkgJiYgKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM3LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNy5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzcuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wteHMtMTIgY29udHJvbC1sYWJlbCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMzcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzM3LmxhYmVsU2l6ZXMpOiAnc3Itb25seScpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzcubmFtZSwnbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzcubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzcuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNy5sYWJlbDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzMoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzcudXBsb2Fkcy5sZW5ndGggPT09IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzcuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM3LmludmFsaWQpICYmIChfZGVjbDBfMzcuZGlydHkgfHwgX2RlY2wwXzM3LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF81KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM3LnVwbG9hZHMubGVuZ3RoID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2FueSA+IDApO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8zNy5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNy5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzcuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzcuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2FueS5wcm9ncmVzcyA9PT0gMTAwKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9hbnkucHJvZ3Jlc3M7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfYW55LnByb2dyZXNzO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2FueS5uYW1lO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gIShfZGVjbDBfMzcuaW52YWxpZCAmJiAoX2RlY2wwXzM3LmRpcnR5IHx8IF9kZWNsMF8zNy50b3VjaGVkKSk7XG4gICAgY3VyclZhbF83O1xuICAgIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoX2RlY2wwXzM3LmludmFsaWQgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzM3Lkljb25EZWxldGU7XG4gICAgY3VyclZhbF85O1xuICAgIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMzcuY2FuY2VsKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfNCgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNy51cGxvYWRzLmxlbmd0aCA+IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM3LnVwbG9hZHM7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfNigpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzcuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfNygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzcuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM3LmludmFsaWQpICYmIChfZGVjbDBfMzcuZGlydHkgfHwgX2RlY2wwXzM3LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM3LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF85KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpICYmIF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwpICYmICgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNy5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzcuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF84KCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCkgJiYgX2RlY2wwXzM3LmRpc2FibGVsYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAncm93IGZvcm0tZ3JvdXAnO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zNy5jb21wb25lbnRIZWlnaHQpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM3Lm5hbWUsJycpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzM3LmludmFsaWQgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoKF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM3LmlzQWRhcHRpdmVMYWJlbCk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9ICdjb2wteHMtMTInO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBbKChfZGVjbDBfMzcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81Mi50cmFuc2Zvcm0oX2RlY2wwXzM3LmxhYmVsU2l6ZXMpOiAnJyldO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKCgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpICYmIF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwpPyAnZmxleCc6IG51bGwpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoKCgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpICYmIF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwpPyAxOiBudWxsKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzM3LmFjdGl2ZTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zNy51cGxvYWRoZWlnaHQ7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gKF9kZWNsMF8zNy5pbnZhbGlkICYmIChfZGVjbDBfMzcuZGlydHkgfHwgX2RlY2wwXzM3LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoX2RlY2wwXzM3LnVwbG9hZHMubGVuZ3RoID09PSAwKTtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgY3VyclZhbF8xMzphbnkgPSAoX2RlY2wwXzM3LnVwbG9hZHMubGVuZ3RoID4gMCk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNy5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfMzcuSGFzUXVldWVJdGVtKCk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMTY7XG4gIGNvbnN0IGN1cnJWYWxfMTc6YW55ID0gKChfZGVjbDBfMzcuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM3LmludmFsaWQpICYmIChfZGVjbDBfMzcuZGlydHkgfHwgX2RlY2wwXzM3LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAoKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCkgJiYgX2RlY2wwXzM3LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IHBkXzE5OmFueSA9ICgoPGFueT5fZGVjbDBfMzcuZHJvcEhhbmRsZXIoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIwOmFueSA9ICgoPGFueT5fZGVjbDBfMzcub25EcmFnT3ZlcihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjE6YW55ID0gKCg8YW55Pl9kZWNsMF8zNy5vbkRyYWdMZWF2ZShfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjI6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM3Lm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xufVxuIl19
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL3VwbG9hZC5tb2R1bGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGkxIGZyb20gJy4vdXBsb2FkLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGk1IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcCc7XG5pbXBvcnQgKiBhcyBpNiBmcm9tICcuL3VwbG9hZCc7XG5pbXBvcnQgKiBhcyBpNyBmcm9tICcuL3VwbG9hZG11bHRpcGxlJztcbmltcG9ydCAqIGFzIGk4IGZyb20gJy4vZHJvcHpvbmVzaW5nbGUnO1xuaW1wb3J0ICogYXMgaTkgZnJvbSAnLi9kcm9wem9uZW11bHRpcGxlJztcbmltcG9ydCAqIGFzIGkxMCBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9saGVpZ2h0LnBpcGUnO1xuaW1wb3J0ICogYXMgaTExIGZyb20gJy4uL2xheW91dC90b2NvbnRyb2x3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxMiBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMyBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbHdpZHRoY3NzLnBpcGUnO1xuaW1wb3J0ICogYXMgaTE0IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi4vbGF5b3V0L2xheW91dC5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTE2IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xuZXhwb3J0IGNvbnN0IFNBQ0Jvb3RzdHJhcDNVcGxvYWRNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLlNBQ0Jvb3RzdHJhcDNVcGxvYWRNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5OZ0NsYXNzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE6aTIuTmdDb21wb25lbnRPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjppMi5OZ0Zvck9mPGFueSxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM6aTIuTmdJZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTIuTmdUZW1wbGF0ZU91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OmkyLk5nU3R5bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjppMi5OZ1N3aXRjaCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OmkyLk5nU3dpdGNoQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OmkyLk5nU3dpdGNoRGVmYXVsdCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85OmkyLk5nUGx1cmFsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmkyLk5nUGx1cmFsQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTppMy7JtWFuZ3VsYXJfcGFja2FnZXNfZm9ybXNfZm9ybXNfeSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjppMy5OZ1NlbGVjdE9wdGlvbiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzppMy7JtWFuZ3VsYXJfcGFja2FnZXNfZm9ybXNfZm9ybXNfeCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppMy5EZWZhdWx0VmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNTppMy5OdW1iZXJWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2OmkzLlJhbmdlVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNzppMy5DaGVja2JveENvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE4OmkzLlNlbGVjdENvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5OmkzLlNlbGVjdE11bHRpcGxlQ29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjA6aTMuUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMTppMy5OZ0NvbnRyb2xTdGF0dXMgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjI6aTMuTmdDb250cm9sU3RhdHVzR3JvdXAgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjM6aTMuUmVxdWlyZWRWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjQ6aTMuTWluTGVuZ3RoVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI1OmkzLk1heExlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMy5QYXR0ZXJuVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI3OmkzLkNoZWNrYm94UmVxdWlyZWRWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjg6aTMuRW1haWxWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTMuTmdNb2RlbCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMDppMy5OZ01vZGVsR3JvdXAgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzE6aTMuTmdGb3JtID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmk0LlNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzM6aTUuU2FjVG9vbHRpcENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNDppNi5TYWNVcGxvYWRDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzU6aTcuU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzY6aTguU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzc6aTkuU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zODppMi5Bc3luY1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTIuVXBwZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MDppMi5Mb3dlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQxOmkyLkpzb25QaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQyOmkyLlNsaWNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MzppMi5EZWNpbWFsUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NDppMi5QZXJjZW50UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NTppMi5UaXRsZUNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ2OmkyLkN1cnJlbmN5UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NzppMi5EYXRlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80ODppMi5JMThuUGx1cmFsUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80OTppMi5JMThuU2VsZWN0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MDppMi5LZXlWYWx1ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTE6aTEwLlNhY1RvQ29udHJvbEhlaWdodFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTI6aTExLlNhY1RvQ29udHJvbFdpZHRoQ3NzUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MzppMTIuU2FjVG9MYWJlbEhlaWdodFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTQ6aTEzLlNhY1RvTGFiZWxXaWR0aENzc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTU6aTE0LlNhY1Rlc3RpbmdBdHRyaWJ1dGVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU2OmkyLkNvbW1vbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NzppMy5Gb3Jtc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81ODppMTUuU0FDQm9vdHN0cmFwM0xheW91dE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OTppMTYuU0FDQm9vdHN0cmFwM1Rvb2x0aXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjA6aTE0LlNBQ0NvbW1vblV0bGlsdGllc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MTppMC5UZW1wbGF0ZVJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzYyOmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50X0hvc3RfMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV8yKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNC5pc0FkYXB0aXZlTGFiZWwpICYmICgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNC5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzQuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzQuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wteHMtMTIgY29udHJvbC1sYWJlbCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzM0LmxhYmVsU2l6ZXMpOiAnc3Itb25seScpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzQubmFtZSwnbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzQubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzQuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNC5sYWJlbDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMygpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM0LmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzM0LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM0LklzUGF1c2VkKCkgPT09IGZhbHNlKSkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzQuSXNVcGxvYWRpbmcoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNC5JY29uUGF1c2U7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IHBkXzQ6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC5wYXVzZUFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV80KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgX2RlY2wwXzM0LklzUGF1c2VkKCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gIShfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM0Lkljb25Db250aW51ZTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgcGRfMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM0LnVwbG9hZEFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV81KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM0LmF1dG91cGxvYWQgPT09IGZhbHNlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM0LklzU3RhdGVUb1VwbG9hZCgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIShfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM0Lkljb25VcGxvYWQ7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoX2RlY2wwXzM0LmJ1dHRvbnVwbG9hZD8gX2RlY2wwXzM0LmJ1dHRvbnVwbG9hZDogX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzQubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhfZGVjbDBfMzQudmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSkpO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBwZF81OmFueSA9ICgoPGFueT5fZGVjbDBfMzQudXBsb2FkQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzYoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM0LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfNygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM0LmludmFsaWQpICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM0LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzkoKTp2b2lkIHtcbiAgaWYgKCgoKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCkgJiYgX2RlY2wwXzM0LmRpc2FibGVsYWJlbCkgJiYgKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM0LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNC5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfOCgpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpICYmIF9kZWNsMF8zNC5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAncm93IGZvcm0tZ3JvdXAnO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zNC5jb21wb25lbnRIZWlnaHQpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM0Lm5hbWUsJycpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfNTUudHJhbnNmb3JtKF9kZWNsMF8zNC5uYW1lLF9kZWNsMF8zNC5lMmVpZGVudGlmaWVyKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNC5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAnY29sLXhzLTEyJztcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gWygoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNC5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKCgoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzQuZGlzYWJsZWxhYmVsKT8gJ2ZsZXgnOiBudWxsKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKCgoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzQuZGlzYWJsZWxhYmVsKT8gMTogbnVsbCk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAoX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM0LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IChfZGVjbDBfMzQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzQuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gX2RlY2wwXzM0Lkhhc1F1ZXVlSXRlbSgpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gX2RlY2wwXzM0Lkljb25Ccm93c2U7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gKF9kZWNsMF8zNC5idXR0b25icm93c2U/IF9kZWNsMF8zNC5idXR0b25icm93c2U6IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM0LmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzM0LnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvbkJyb3dzZSkpKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM0Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICBjdXJyVmFsXzE3O1xuICBjb25zdCBjdXJyVmFsXzE4OmFueSA9IF9kZWNsMF8zNC5IYXNRdWV1ZUl0ZW0oKTtcbiAgY3VyclZhbF8xODtcbiAgY29uc3QgY3VyclZhbF8xOTphbnkgPSAoX2RlY2wwXzM0LlByb2dyZXNzKCkgPT09IDEwMCk7XG4gIGN1cnJWYWxfMTk7XG4gIGNvbnN0IGN1cnJWYWxfMjA6YW55ID0gX2RlY2wwXzM0LlByb2dyZXNzKCk7XG4gIGN1cnJWYWxfMjA7XG4gIGNvbnN0IGN1cnJWYWxfMjE6YW55ID0gX2RlY2wwXzM0LlByb2dyZXNzKCk7XG4gIGN1cnJWYWxfMjE7XG4gIGNvbnN0IGN1cnJWYWxfMjI6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzQuRmlsZW5hbWUoKSk7XG4gIGN1cnJWYWxfMjI7XG4gIGNvbnN0IGN1cnJWYWxfMjM6YW55ID0gKChfZGVjbDBfMzQuSGFzUXVldWVJdGVtKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gIGN1cnJWYWxfMjM7XG4gIGNvbnN0IGN1cnJWYWxfMjQ6YW55ID0gIShfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjQ7XG4gIGNvbnN0IGN1cnJWYWxfMjU6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yNTtcbiAgY29uc3QgY3VyclZhbF8yNjphbnkgPSBfZGVjbDBfMzQuSWNvbkRlbGV0ZTtcbiAgY3VyclZhbF8yNjtcbiAgY29uc3QgY3VyclZhbF8yNzphbnkgPSAoKChfZGVjbDBfMzQuYXV0b3VwbG9hZCA9PT0gZmFsc2UpICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgfHwgKChfZGVjbDBfMzQuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpICYmIChfZGVjbDBfMzQuSXNQYXVzZWQoKSA9PT0gZmFsc2UpKSk7XG4gIGN1cnJWYWxfMjc7XG4gIGNvbnN0IGN1cnJWYWxfMjg6YW55ID0gKChfZGVjbDBfMzQuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpICYmIF9kZWNsMF8zNC5Jc1BhdXNlZCgpKTtcbiAgY3VyclZhbF8yODtcbiAgY29uc3QgY3VyclZhbF8yOTphbnkgPSAoX2RlY2wwXzM0LmF1dG91cGxvYWQgPT09IGZhbHNlKTtcbiAgY3VyclZhbF8yOTtcbiAgY29uc3QgY3VyclZhbF8zMDphbnkgPSAoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8zMDtcbiAgY29uc3QgY3VyclZhbF8zMTphbnkgPSAoKF9kZWNsMF8zNC5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzQuaW52YWxpZCkgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzMxO1xuICBjb25zdCBjdXJyVmFsXzMyOmFueSA9ICgoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzQuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8zMjtcbiAgY29uc3QgcGRfMzM6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zNDphbnkgPSAoKDxhbnk+X2RlY2wwXzM0Lm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zNTphbnkgPSAoKDxhbnk+X2RlY2wwXzM0LmNhbmNlbEFsbCgpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfSG9zdF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzUuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzUuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM1LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzUuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wteHMtMTIgY29udHJvbC1sYWJlbCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMzUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzM1LmxhYmVsU2l6ZXMpOiAnc3Itb25seScpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzUubmFtZSwnbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzUubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzUuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNS5sYWJlbDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICgoX2RlY2wwXzM1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzUuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfNjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl8zKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgfHwgKChfZGVjbDBfMzUuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpICYmIChfZGVjbDBfMzUuSXNQYXVzZWQoKSA9PT0gZmFsc2UpKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zNS5Jc1VwbG9hZGluZygpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM1Lkljb25QYXVzZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgcGRfNDphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LnBhdXNlQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfNCgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzUuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpICYmIChfZGVjbDBfMzUuSXNQYXVzZWQoKSA9PT0gdHJ1ZSkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM1Lkljb25Db250aW51ZTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgcGRfMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LnVwbG9hZEFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzUoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzUuSXNTdGF0ZVRvVXBsb2FkKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzUuSWNvblVwbG9hZDtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IChfZGVjbDBfMzUuYnV0dG9udXBsb2FkPyBfZGVjbDBfMzUuYnV0dG9udXBsb2FkOiBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNS5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKF9kZWNsMF8zNS52YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25VcGxvYWQpKSk7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IHBkXzU6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS51cGxvYWRBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl83KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzM1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzUuaGVscHRleHQpICYmIF9kZWNsMF8zNS5kaXNhYmxlbGFiZWwpICYmICgoX2RlY2wwXzM1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzUuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNS5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzUuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfNigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzUuaGVscHRleHQpICYmIF9kZWNsMF8zNS5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzkoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzICE9PSAncGF1c2VkJykpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2FueS5zdGF0dXMgIT09ICd1cGxvYWRpbmcnKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzUuSWNvblBhdXNlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBwZF80OmFueSA9ICgoPGFueT5fZGVjbDBfMzUucGF1c2UoX2FueS51cGxvYWRJZCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMTAoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2FueS5zdGF0dXMgPT09ICdwYXVzZWQnKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzUuSWNvbkNvbnRpbnVlO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMzUudXBsb2FkKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzExKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoKF9hbnkuc3RhdHVzICE9PSAnYWRkZWQnKSAmJiAoX2FueS5zdGF0dXMgIT09ICdwYXVzZWQnKSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM1Lkljb25VcGxvYWQ7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoX2RlY2wwXzM1LmJ1dHRvbnVwbG9hZD8gX2RlY2wwXzM1LmJ1dHRvbnVwbG9hZDogX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzUubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhfZGVjbDBfMzUudmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSkpO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBwZF81OmFueSA9ICgoPGFueT5fZGVjbDBfMzUudXBsb2FkKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzgoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfYW55LnByb2dyZXNzID09PSAxMDApO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfYW55LnByb2dyZXNzO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfYW55LnByb2dyZXNzO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfYW55Lm5hbWU7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gX2RlY2wwXzM1Lkljb25EZWxldGU7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2FueS5zdGF0dXMgIT09ICdwYXVzZWQnKSkpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9ICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2FueS5zdGF0dXMgPT09ICdwYXVzZWQnKSk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IHBkXzE0OmFueSA9ICgoPGFueT5fZGVjbDBfMzUuY2FuY2VsKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl8xMigpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzUuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzEzKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzUuaW52YWxpZCkgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzUuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAncm93IGZvcm0tZ3JvdXAnO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM1Lm5hbWUsJycpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfNTUudHJhbnNmb3JtKF9kZWNsMF8zNS5uYW1lLF9kZWNsMF8zNS5lMmVpZGVudGlmaWVyKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKChfZGVjbDBfMzUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNS5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAnY29sLXhzLTEyJztcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gWygoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNS5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKCgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzUuZGlzYWJsZWxhYmVsKT8gJ2ZsZXgnOiBudWxsKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNS5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gKChfZGVjbDBfMzUubWF4ZmlsZXMgPiAwKSAmJiAoX2RlY2wwXzM1LnVwbG9hZHMubGVuZ3RoID49IF9kZWNsMF8zNS5tYXhmaWxlcykpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gX2RlY2wwXzM1Lkljb25Ccm93c2U7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gKF9kZWNsMF8zNS5idXR0b25icm93c2U/IF9kZWNsMF8zNS5idXR0b25icm93c2U6IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM1LmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzM1LnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvbkJyb3dzZSkpKTtcbiAgY3VyclZhbF8xNTtcbiAgY29uc3QgY3VyclZhbF8xNjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM1Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9ICgoX2RlY2wwXzM1Lm1heGZpbGVzID4gMCkgJiYgKF9kZWNsMF8zNS51cGxvYWRzLmxlbmd0aCA+PSBfZGVjbDBfMzUubWF4ZmlsZXMpKTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTk7XG4gIGNvbnN0IGN1cnJWYWxfMjA6YW55ID0gKChfZGVjbDBfMzUuSGFzUXVldWVJdGVtKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gIGN1cnJWYWxfMjA7XG4gIGNvbnN0IGN1cnJWYWxfMjE6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjE7XG4gIGNvbnN0IGN1cnJWYWxfMjI6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yMjtcbiAgY29uc3QgY3VyclZhbF8yMzphbnkgPSBfZGVjbDBfMzUuSWNvbkRlbGV0ZTtcbiAgY3VyclZhbF8yMztcbiAgY29uc3QgY3VyclZhbF8yNDphbnkgPSAoKChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgfHwgKChfZGVjbDBfMzUuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpICYmIChfZGVjbDBfMzUuSXNQYXVzZWQoKSA9PT0gZmFsc2UpKSk7XG4gIGN1cnJWYWxfMjQ7XG4gIGNvbnN0IGN1cnJWYWxfMjU6YW55ID0gKChfZGVjbDBfMzUuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpICYmIChfZGVjbDBfMzUuSXNQYXVzZWQoKSA9PT0gdHJ1ZSkpO1xuICBjdXJyVmFsXzI1O1xuICBjb25zdCBjdXJyVmFsXzI2OmFueSA9IChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzI2O1xuICBjb25zdCBjdXJyVmFsXzI3OmFueSA9ICgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzUuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8yNztcbiAgY29uc3QgY3VyclZhbF8yODphbnkgPSBfZGVjbDBfMzUudXBsb2FkcztcbiAgY3VyclZhbF8yODtcbiAgY29uc3QgY3VyclZhbF8yOTphbnkgPSAoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8yOTtcbiAgY29uc3QgY3VyclZhbF8zMDphbnkgPSAoKF9kZWNsMF8zNS5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzUuaW52YWxpZCkgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzMwO1xuICBjb25zdCBwZF8zMTphbnkgPSAoKDxhbnk+KF9hbnkudmFsdWUgPSAnJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzMyOmFueSA9ICgoPGFueT5fZGVjbDBfMzUub25VcGxvYWQoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzMzOmFueSA9ICgoPGFueT5fZGVjbDBfMzUuY2FuY2VsQWxsKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF9Ib3N0XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM18yKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNi5pc0FkYXB0aXZlTGFiZWwpICYmICgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNi5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzYuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNi5pc0FkYXB0aXZlTGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2NvbC14cy0xMiBjb250cm9sLWxhYmVsJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IFsoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzU0LnRyYW5zZm9ybShfZGVjbDBfMzYubGFiZWxTaXplcyk6ICdzci1vbmx5JyldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNi5uYW1lLCdsYWJlbCcpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNi5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zNi5pc3JlcXVpcmVkO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzM2LmxhYmVsO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMzYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNi5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF82O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzMoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPT09IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzYuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM2LmludmFsaWQpICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfNSgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNi51cGxvYWRzLmxlbmd0aCA+IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF8zNi5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNi5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzYuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzYuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2FueS5wcm9ncmVzcyA9PT0gMTAwKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9hbnkucHJvZ3Jlc3M7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfYW55LnByb2dyZXNzO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2FueS5uYW1lO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gIShfZGVjbDBfMzYuaW52YWxpZCAmJiAoX2RlY2wwXzM2LmRpcnR5IHx8IF9kZWNsMF8zNi50b3VjaGVkKSk7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoX2RlY2wwXzM2LmludmFsaWQgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfNztcbiAgICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzM2Lkljb25EZWxldGU7XG4gICAgY3VyclZhbF84O1xuICAgIGNvbnN0IHBkXzk6YW55ID0gKCg8YW55Pl9kZWNsMF8zNi5jYW5jZWwoX2FueS51cGxvYWRJZCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfNCgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNi51cGxvYWRzLmxlbmd0aCA+IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM2LnVwbG9hZHM7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzYoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM2LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM183KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNi5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzYuaW52YWxpZCkgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzYuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM185KCk6dm9pZCB7XG4gIGlmICgoKCgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpICYmIF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwpICYmICgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNi5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzYuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfOCgpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpICYmIF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNi5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdyb3cgZm9ybS1ncm91cCc7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF81My50cmFuc2Zvcm0oX2RlY2wwXzM2LmNvbXBvbmVudEhlaWdodCk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzYubmFtZSwnJyk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfZGVjbDBfMzYuaW52YWxpZCAmJiAoX2RlY2wwXzM2LmRpcnR5IHx8IF9kZWNsMF8zNi50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF81NS50cmFuc2Zvcm0oX2RlY2wwXzM2Lm5hbWUsX2RlY2wwXzM2LmUyZWlkZW50aWZpZXIpO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM2LmlzQWRhcHRpdmVMYWJlbCk7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9ICdjb2wteHMtMTInO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBbKChfZGVjbDBfMzYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81Mi50cmFuc2Zvcm0oX2RlY2wwXzM2LmxhYmVsU2l6ZXMpOiAnJyldO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoKCgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpICYmIF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwpPyAnZmxleCc6IG51bGwpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoKCgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpICYmIF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwpPyAxOiBudWxsKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zNi51cGxvYWRoZWlnaHQ7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gX2RlY2wwXzM2LmFjdGl2ZTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoX2RlY2wwXzM2LmludmFsaWQgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPT09IDApO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM2Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IF9kZWNsMF8zNi5IYXNRdWV1ZUl0ZW0oKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSAoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAoKF9kZWNsMF8zNi5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzYuaW52YWxpZCkgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9ICgoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzYuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8xOTtcbiAgY29uc3QgcGRfMjA6YW55ID0gKCg8YW55Pl9kZWNsMF8zNi5kcm9wSGFuZGxlcihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjE6YW55ID0gKCg8YW55Pl9kZWNsMF8zNi5vbkRyYWdPdmVyKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMjphbnkgPSAoKDxhbnk+X2RlY2wwXzM2Lm9uRHJhZ0xlYXZlKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMzphbnkgPSAoKDxhbnk+KF9hbnkudmFsdWUgPSAnJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI0OmFueSA9ICgoPGFueT5fZGVjbDBfMzYub25VcGxvYWQoX2FueSkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50X0hvc3RfNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzcuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzcuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM3LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8yO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNy5pc0FkYXB0aXZlTGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2NvbC14cy0xMiBjb250cm9sLWxhYmVsJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IFsoKF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzU0LnRyYW5zZm9ybShfZGVjbDBfMzcubGFiZWxTaXplcyk6ICdzci1vbmx5JyldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNy5uYW1lLCdsYWJlbCcpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNy5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zNy5pc3JlcXVpcmVkO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzM3LmxhYmVsO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF82O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfMygpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNy51cGxvYWRzLmxlbmd0aCA9PT0gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zNy5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzcuaW52YWxpZCkgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzUoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzcudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfYW55ID4gMCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM3LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM3LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNy5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNy5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfYW55LnByb2dyZXNzID09PSAxMDApO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9hbnkucHJvZ3Jlc3M7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfYW55Lm5hbWU7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAhKF9kZWNsMF8zNy5pbnZhbGlkICYmIChfZGVjbDBfMzcuZGlydHkgfHwgX2RlY2wwXzM3LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9IChfZGVjbDBfMzcuaW52YWxpZCAmJiAoX2RlY2wwXzM3LmRpcnR5IHx8IF9kZWNsMF8zNy50b3VjaGVkKSk7XG4gICAgY3VyclZhbF84O1xuICAgIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBfZGVjbDBfMzcuSWNvbkRlbGV0ZTtcbiAgICBjdXJyVmFsXzk7XG4gICAgY29uc3QgcGRfMTA6YW55ID0gKCg8YW55Pl9kZWNsMF8zNy5jYW5jZWwoX2FueS51cGxvYWRJZCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF80KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM3LnVwbG9hZHMubGVuZ3RoID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzcudXBsb2FkcztcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF82KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNy5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF83KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNy5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzcuaW52YWxpZCkgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzcuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzkoKTp2b2lkIHtcbiAgaWYgKCgoKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCkgJiYgX2RlY2wwXzM3LmRpc2FibGVsYWJlbCkgJiYgKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM3LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNy5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMjtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzgoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzcuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdyb3cgZm9ybS1ncm91cCc7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF81My50cmFuc2Zvcm0oX2RlY2wwXzM3LmNvbXBvbmVudEhlaWdodCk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzcubmFtZSwnJyk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfZGVjbDBfMzcuaW52YWxpZCAmJiAoX2RlY2wwXzM3LmRpcnR5IHx8IF9kZWNsMF8zNy50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF81NS50cmFuc2Zvcm0oX2RlY2wwXzM3Lm5hbWUsX2RlY2wwXzM3LmUyZWlkZW50aWZpZXIpO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAoKF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM3LmlzQWRhcHRpdmVMYWJlbCk7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9ICdjb2wteHMtMTInO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBbKChfZGVjbDBfMzcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81Mi50cmFuc2Zvcm0oX2RlY2wwXzM3LmxhYmVsU2l6ZXMpOiAnJyldO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoKCgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpICYmIF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwpPyAnZmxleCc6IG51bGwpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoKCgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpICYmIF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwpPyAxOiBudWxsKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IF9kZWNsMF8zNy5hY3RpdmU7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gX2RlY2wwXzM3LnVwbG9hZGhlaWdodDtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoX2RlY2wwXzM3LmludmFsaWQgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IChfZGVjbDBfMzcudXBsb2Fkcy5sZW5ndGggPT09IDApO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IChfZGVjbDBfMzcudXBsb2Fkcy5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM3Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IF9kZWNsMF8zNy5IYXNRdWV1ZUl0ZW0oKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSAoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAoKF9kZWNsMF8zNy5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzcuaW52YWxpZCkgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9ICgoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzcuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8xOTtcbiAgY29uc3QgcGRfMjA6YW55ID0gKCg8YW55Pl9kZWNsMF8zNy5kcm9wSGFuZGxlcihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjE6YW55ID0gKCg8YW55Pl9kZWNsMF8zNy5vbkRyYWdPdmVyKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMjphbnkgPSAoKDxhbnk+X2RlY2wwXzM3Lm9uRHJhZ0xlYXZlKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMzphbnkgPSAoKDxhbnk+KF9hbnkudmFsdWUgPSAnJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzI0OmFueSA9ICgoPGFueT5fZGVjbDBfMzcub25VcGxvYWQoX2FueSkpICE9PSBmYWxzZSk7XG59XG4iXX0=
|
|
@@ -19,7 +19,7 @@ export class SacUploadMultipleComponent extends SacUploadMultipleCommon {
|
|
|
19
19
|
SacUploadMultipleComponent.decorators = [
|
|
20
20
|
{ type: Component, args: [{
|
|
21
21
|
selector: 'sac-uploadmultiple',
|
|
22
|
-
template: "<div\n id=\"{{ name }}\"\n class=\"row form-group\"\n [class.has-error]=\"invalid && (dirty || touched)\"\n [ngClass]=\"componentHeight | toLabelHeight\">\n <label\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\n id=\"{{ name }}label\"\n for=\"{{ name }}_uploadinput\"\n class=\"col-xs-12 control-label\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\n [class.required]=\"isrequired\">\n <span class=\"text\">{{ label }}</span>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [class]=\"HelptextTooltipIcon\"\n style=\"margin-left: 5px\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-xs-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\n <div class=\"upload-component\">\n <div class=\"row\">\n <div\n class=\"col-xs-12\"\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\n <div\n class=\"btn-group\"\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\n <div\n class=\"btn upload-input custom-file\"\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <i [class]=\"IconBrowse\"></i>\n <span class=\"upload-browse\">{{ buttonbrowse ? buttonbrowse : (lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async) }}</span>\n <input\n id=\"{{ name }}_uploadinput\"\n type=\"file\"\n class=\"custom-file-input\"\n #files\n (click)=\"files.value = ''\"\n (uploadxState)=\"onUpload($event)\"\n multiple\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\" />\n </div>\n\n <div\n class=\"btn-group\"\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\n <!-- image-preview-clear button -->\n <a\n class=\"btn\"\n (click)=\"cancelAll()\"\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconDelete\"></span>\n </a>\n <a\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\n class=\"btn\"\n (click)=\"pauseAll()\"\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconPause\"></span>\n </a>\n <a\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\n class=\"btn\"\n (click)=\"uploadAll()\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconContinue\"></span>\n </a>\n <a\n *ngIf=\"autoupload === false\"\n class=\"btn\"\n (click)=\"uploadAll()\"\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconUpload\"></span>\n {{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </a>\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-static\"\n style=\"margin-left: 5px\">\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [class]=\"HelptextTooltipIcon\"\n style=\"margin-left: 5px; margin-right: 5px\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n </div>\n\n <div\n *ngFor=\"let file of uploads\"\n style=\"margin-top: 5px\">\n <div\n class=\"input-group upload-component upload-multiple\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\n <div class=\"form-control upload-progress\">\n <div class=\"progress\">\n <div\n class=\"progress-bar\"\n [class.progress-bar-success]=\"file.progress === 100\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"file.progress\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width.%]=\"file.progress\">\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\n </div>\n </div>\n </div>\n <div\n class=\"input-group-btn\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\n <!-- image-preview-clear button -->\n <a\n class=\"btn\"\n (click)=\"cancel(file.uploadId)\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconDelete\"></span>\n </a>\n <a\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\n class=\"btn\"\n (click)=\"pause(file.uploadId)\"\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconPause\"></span>\n </a>\n <a\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\n class=\"btn\"\n (click)=\"upload(file.uploadId)\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconContinue\"></span>\n </a>\n <a\n *ngIf=\"autoupload === false\"\n class=\"btn\"\n (click)=\"upload(file.uploadId)\"\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconUpload\"></span> {{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </a>\n </div>\n </div>\n </div>\n </div>\n\n <p\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"help-block\">\n {{ helptext }}\n </p>\n <div\n class=\"help-block help-block-error\"\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n</div>\n",
|
|
22
|
+
template: "<div\n id=\"{{ name }}\"\n class=\"row form-group\"\n [class.has-error]=\"invalid && (dirty || touched)\"\n [ngClass]=\"componentHeight | toLabelHeight\"\n [attr.data-e2e-key]=\"name | testingattribute : e2eidentifier\">\n <label\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\n id=\"{{ name }}label\"\n for=\"{{ name }}_uploadinput\"\n class=\"col-xs-12 control-label\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only']\"\n [class.required]=\"isrequired\">\n <span class=\"text\">{{ label }}</span>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [class]=\"HelptextTooltipIcon\"\n style=\"margin-left: 5px\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-xs-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\n <div class=\"upload-component\">\n <div class=\"row\">\n <div\n class=\"col-xs-12\"\n [style.display]=\"helptextmode === 'tooltip' && helptext && disablelabel ? 'flex' : null\">\n <div\n class=\"btn-group\"\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\n <div\n class=\"btn upload-input custom-file\"\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <i [class]=\"IconBrowse\"></i>\n <span class=\"upload-browse\">{{ buttonbrowse ? buttonbrowse : (lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async) }}</span>\n <input\n id=\"{{ name }}_uploadinput\"\n type=\"file\"\n class=\"custom-file-input\"\n #files\n (click)=\"files.value = ''\"\n (uploadxState)=\"onUpload($event)\"\n multiple\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\" />\n </div>\n\n <div\n class=\"btn-group\"\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\n <!-- image-preview-clear button -->\n <a\n class=\"btn\"\n (click)=\"cancelAll()\"\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconDelete\"></span>\n </a>\n <a\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\n class=\"btn\"\n (click)=\"pauseAll()\"\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconPause\"></span>\n </a>\n <a\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\n class=\"btn\"\n (click)=\"uploadAll()\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconContinue\"></span>\n </a>\n <a\n *ngIf=\"autoupload === false\"\n class=\"btn\"\n (click)=\"uploadAll()\"\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconUpload\"></span>\n {{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </a>\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-static\"\n style=\"margin-left: 5px\">\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [class]=\"HelptextTooltipIcon\"\n style=\"margin-left: 5px; margin-right: 5px\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n </div>\n\n <div\n *ngFor=\"let file of uploads\"\n style=\"margin-top: 5px\">\n <div\n class=\"input-group upload-component upload-multiple\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\n <div class=\"form-control upload-progress\">\n <div class=\"progress\">\n <div\n class=\"progress-bar\"\n [class.progress-bar-success]=\"file.progress === 100\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"file.progress\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width.%]=\"file.progress\">\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\n </div>\n </div>\n </div>\n <div\n class=\"input-group-btn\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\n <!-- image-preview-clear button -->\n <a\n class=\"btn\"\n (click)=\"cancel(file.uploadId)\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconDelete\"></span>\n </a>\n <a\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\n class=\"btn\"\n (click)=\"pause(file.uploadId)\"\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconPause\"></span>\n </a>\n <a\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\n class=\"btn\"\n (click)=\"upload(file.uploadId)\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconContinue\"></span>\n </a>\n <a\n *ngIf=\"autoupload === false\"\n class=\"btn\"\n (click)=\"upload(file.uploadId)\"\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\n [class.btn-default]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconUpload\"></span> {{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </a>\n </div>\n </div>\n </div>\n </div>\n\n <p\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"help-block\">\n {{ helptext }}\n </p>\n <div\n class=\"help-block help-block-error\"\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n {{ GetErrorMessage() | async }}\n </div>\n </div>\n</div>\n",
|
|
23
23
|
providers: [
|
|
24
24
|
{
|
|
25
25
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -41,4 +41,4 @@ SacUploadMultipleComponent.ctorParameters = () => [
|
|
|
41
41
|
{ type: Renderer2 },
|
|
42
42
|
{ type: NgZone }
|
|
43
43
|
];
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL3VwbG9hZG11bHRpcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBMkIsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RSw0Q0FBNEM7QUFrQjVDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSx1QkFBdUI7SUFDbkUsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ3dCLFVBQWtDLEVBQ3RELFFBQWtCLEVBQ2xCLFFBQW1CLEVBQ25CLE1BQWM7UUFFZCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7O1lBbENKLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5Qixxd1VBQW9DO2dCQUVwQyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLDBCQUEwQjtxQkFDeEM7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7cUJBQzFEO2lCQUNGOzthQUNGOzs7WUFuQlEsc0JBQXNCLHVCQStCdEIsSUFBSSxZQUFJLFFBQVE7WUF2Q3ZCLFFBQVE7WUFHUixTQUFTO1lBRlQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdCxcbiAgSW5qZWN0b3IsXG4gIE5nWm9uZSxcbiAgT3B0aW9uYWwsXG4gIFJlbmRlcmVyMixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNhY1VwbG9hZE11bHRpcGxlQ29tbW9uLCBTYWNUZXN0aW5nQXR0cmlidXRlUGlwZSB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2t1a2hhcmlldi9uZ3gtdXBsb2FkeC9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhYy11cGxvYWRtdWx0aXBsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWRtdWx0aXBsZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50KSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCBleHRlbmRzIFNhY1VwbG9hZE11bHRpcGxlQ29tbW9uIHtcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybUxheW91dCBTYWNGb3JtTGF5b3V0IHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciByZW5kZXJpbmcgZW5naW5lXG4gICAgICogQHBhcmFtIG5nWm9uZSBuZ1pvbmUgdG8gbWFuYWdlIGV4dGVybmFsIGphdmFzY3JpcHRzXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBuZ1pvbmU6IE5nWm9uZVxuICAgICkge1xuICAgICAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3RvciwgcmVuZGVyZXIsIG5nWm9uZSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { SacFormDirective } from '../form/form';
|
|
1
2
|
import { Component, Host, Injector, Optional } from '@angular/core';
|
|
2
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
4
|
import { SacValidationSummaryCommon } from '@simpleangularcontrols/sac-common';
|
|
4
|
-
import { SacFormDirective } from '../form/form';
|
|
5
5
|
export class SacValidationSummaryComponent extends SacValidationSummaryCommon {
|
|
6
6
|
// #region Constructors
|
|
7
7
|
/**
|
|
@@ -16,7 +16,7 @@ export class SacValidationSummaryComponent extends SacValidationSummaryCommon {
|
|
|
16
16
|
SacValidationSummaryComponent.decorators = [
|
|
17
17
|
{ type: Component, args: [{
|
|
18
18
|
selector: 'sac-validationsummary',
|
|
19
|
-
template: "<div
|
|
19
|
+
template: "<div\n class=\"alert alert-danger\"\n role=\"alert\"\n *ngIf=\"hasErrors\"\n [id]=\"name\"\n [attr.data-e2e-key]=\"name | testingattribute : e2eidentifier\">\n <ul>\n <li *ngFor=\"let error of formErrors\">{{ error | async }}</li>\n </ul>\n</div>\n",
|
|
20
20
|
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
21
21
|
providers: [
|
|
22
22
|
{
|
|
@@ -31,4 +31,4 @@ SacValidationSummaryComponent.ctorParameters = () => [
|
|
|
31
31
|
{ type: SacFormDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
32
32
|
{ type: Injector }
|
|
33
33
|
];
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdmFsaWRhdGlvbi92YWxpZGF0aW9uc3VtbWFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQWMvRSxNQUFNLE9BQU8sNkJBQThCLFNBQVEsMEJBQTBCO0lBQ3pFLHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBZ0MsV0FBNkIsRUFBRSxRQUFrQjtRQUM3RSxLQUFLLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OztZQXRCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsZ1NBQXVDO2dCQUN2QywrRkFBK0Y7Z0JBQy9GLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsNkJBQTZCO3FCQUM3QztpQkFDSjthQUNKOzs7WUFoQlEsZ0JBQWdCLHVCQXlCUixJQUFJLFlBQUksUUFBUTtZQXhCUCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4uL2Zvcm0vZm9ybSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTYWNWYWxpZGF0aW9uU3VtbWFyeUNvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2FjLXZhbGlkYXRpb25zdW1tYXJ5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmFsaWRhdGlvbnN1bW1hcnkuaHRtbCcsXG4gICAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBTYWNWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTYWNWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCBleHRlbmRzIFNhY1ZhbGlkYXRpb25TdW1tYXJ5Q29tbW9uIHtcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybUNvbnRyb2wgSW5zdGFuY2Ugb2YgRm9ybSBDb21wb25lbnQgdG8gcmVjZWl2ZSBpbnZhbGlkIGZvcm0gY29udHJvbHNcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUNvbnRyb2w6IFNhY0Zvcm1EaXJlY3RpdmUsIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihmb3JtQ29udHJvbCwgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG59XG4iXX0=
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
1
|
import { SacValidationSummaryComponent } from './validationsummary';
|
|
3
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { SACCommonUtliltiesModule } from '@simpleangularcontrols/sac-common';
|
|
4
5
|
export class SACBootstrap3ValidationSummaryModule {
|
|
5
6
|
}
|
|
6
7
|
SACBootstrap3ValidationSummaryModule.decorators = [
|
|
7
8
|
{ type: NgModule, args: [{
|
|
8
9
|
declarations: [SacValidationSummaryComponent],
|
|
9
|
-
imports: [
|
|
10
|
-
|
|
11
|
-
],
|
|
12
|
-
exports: [SacValidationSummaryComponent]
|
|
10
|
+
imports: [CommonModule, SACCommonUtliltiesModule],
|
|
11
|
+
exports: [SacValidationSummaryComponent],
|
|
13
12
|
},] }
|
|
14
13
|
];
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3ZhbGlkYXRpb24vdmFsaWRhdGlvbnN1bW1hcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBTzdFLE1BQU0sT0FBTyxvQ0FBb0M7OztZQUxoRCxRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBQzdDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQztnQkFDakQsT0FBTyxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJy4vdmFsaWRhdGlvbnN1bW1hcnknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTQUNDb21tb25VdGxpbHRpZXNNb2R1bGUgfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1NhY1ZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTQUNDb21tb25VdGxpbHRpZXNNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtTYWNWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNBQ0Jvb3RzdHJhcDNWYWxpZGF0aW9uU3VtbWFyeU1vZHVsZSB7fVxuIl19
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
5
|
* tslint:disable
|
|
6
6
|
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkubW9kdWxlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy92YWxpZGF0aW9uL3ZhbGlkYXRpb25zdW1tYXJ5Lm1vZHVsZS5uZ2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgaTEgZnJvbSAnLi92YWxpZGF0aW9uc3VtbWFyeS5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCAqIGFzIGkzIGZyb20gJy4vdmFsaWRhdGlvbnN1bW1hcnknO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcbmV4cG9ydCBjb25zdCBTQUNCb290c3RyYXAzVmFsaWRhdGlvblN1bW1hcnlNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLlNBQ0Jvb3RzdHJhcDNWYWxpZGF0aW9uU3VtbWFyeU1vZHVsZT4gPSAobnVsbCBhcyBhbnkpO1xudmFyIF9kZWNsMF8wOmkyLk5nQ2xhc3MgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTppMi5OZ0NvbXBvbmVudE91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOmkyLk5nRm9yT2Y8YW55LGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzppMi5OZ0lmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDppMi5OZ1RlbXBsYXRlT3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU6aTIuTmdTdHlsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82OmkyLk5nU3dpdGNoID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc6aTIuTmdTd2l0Y2hDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg6aTIuTmdTd2l0Y2hEZWZhdWx0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk6aTIuTmdQbHVyYWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA6aTIuTmdQbHVyYWxDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOmkzLlNhY1ZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmkyLkFzeW5jUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMzppMi5VcHBlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE0OmkyLkxvd2VyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTIuSnNvblBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY6aTIuU2xpY2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3OmkyLkRlY2ltYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE4OmkyLlBlcmNlbnRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5OmkyLlRpdGxlQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjA6aTIuQ3VycmVuY3lQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIxOmkyLkRhdGVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIyOmkyLkkxOG5QbHVyYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIzOmkyLkkxOG5TZWxlY3RQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI0OmkyLktleVZhbHVlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppNC5TYWNUZXN0aW5nQXR0cmlidXRlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMi5Db21tb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTQuU0FDQ29tbW9uVXRsaWx0aWVzTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI4OmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTAuRWxlbWVudFJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG5mdW5jdGlvbiBfVmlld19TYWNWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnRfMV8yKCk6dm9pZCB7XG4gIGlmIChfZGVjbDBfMTEuaGFzRXJyb3JzKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzEyLnRyYW5zZm9ybShfYW55KTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1ZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50XzFfMSgpOnZvaWQge1xuICBpZiAoX2RlY2wwXzExLmhhc0Vycm9ycykge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xMS5uYW1lO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzI1LnRyYW5zZm9ybShfZGVjbDBfMTEubmFtZSxfZGVjbDBfMTEuZTJlaWRlbnRpZmllcik7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTEuZm9ybUVycm9ycztcbiAgICBjdXJyVmFsXzI7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1ZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzExLmhhc0Vycm9ycztcbiAgY3VyclZhbF8wO1xufVxuIl19
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
1
|
import { SacWizardComponent } from './wizard';
|
|
4
2
|
import { SacWizardItemComponent } from './wizarditem';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { NgModule } from '@angular/core';
|
|
5
|
+
import { SACCommonUtliltiesModule } from '@simpleangularcontrols/sac-common';
|
|
5
6
|
export class SACBootstrap3WizardModule {
|
|
6
7
|
}
|
|
7
8
|
SACBootstrap3WizardModule.decorators = [
|
|
8
9
|
{ type: NgModule, args: [{
|
|
9
10
|
declarations: [SacWizardComponent, SacWizardItemComponent],
|
|
10
|
-
imports: [
|
|
11
|
-
|
|
12
|
-
],
|
|
13
|
-
exports: [SacWizardComponent, SacWizardItemComponent]
|
|
11
|
+
imports: [CommonModule, SACCommonUtliltiesModule],
|
|
12
|
+
exports: [SacWizardComponent, SacWizardItemComponent],
|
|
14
13
|
},] }
|
|
15
14
|
];
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy93aXphcmQvd2l6YXJkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBTzdFLE1BQU0sT0FBTyx5QkFBeUI7OztZQUxyQyxRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLENBQUM7Z0JBQzFELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQztnQkFDakQsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLENBQUM7YUFDeEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNXaXphcmRDb21wb25lbnQgfSBmcm9tICcuL3dpemFyZCc7XG5pbXBvcnQgeyBTYWNXaXphcmRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi93aXphcmRpdGVtJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU0FDQ29tbW9uVXRsaWx0aWVzTW9kdWxlIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtTYWNXaXphcmRDb21wb25lbnQsIFNhY1dpemFyZEl0ZW1Db21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNBQ0NvbW1vblV0bGlsdGllc01vZHVsZV0sXG4gICAgZXhwb3J0czogW1NhY1dpemFyZENvbXBvbmVudCwgU2FjV2l6YXJkSXRlbUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNBQ0Jvb3RzdHJhcDNXaXphcmRNb2R1bGUge31cbiJdfQ==
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
5
|
* tslint:disable
|
|
6
6
|
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLm1vZHVsZS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDMvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvd2l6YXJkL3dpemFyZC5tb2R1bGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGkxIGZyb20gJy4vd2l6YXJkLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnLi93aXphcmQnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi93aXphcmRpdGVtJztcbmltcG9ydCAqIGFzIGk1IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XG5leHBvcnQgY29uc3QgU0FDQm9vdHN0cmFwM1dpemFyZE1vZHVsZU5nRmFjdG9yeTppMC5OZ01vZHVsZUZhY3Rvcnk8aTEuU0FDQm9vdHN0cmFwM1dpemFyZE1vZHVsZT4gPSAobnVsbCBhcyBhbnkpO1xudmFyIF9kZWNsMF8wOmkyLk5nQ2xhc3MgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTppMi5OZ0NvbXBvbmVudE91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOmkyLk5nRm9yT2Y8YW55LGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzppMi5OZ0lmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDppMi5OZ1RlbXBsYXRlT3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU6aTIuTmdTdHlsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82OmkyLk5nU3dpdGNoID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc6aTIuTmdTd2l0Y2hDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg6aTIuTmdTd2l0Y2hEZWZhdWx0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk6aTIuTmdQbHVyYWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA6aTIuTmdQbHVyYWxDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOmkzLlNhY1dpemFyZENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjppNC5TYWNXaXphcmRJdGVtQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzOmkyLkFzeW5jUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppMi5VcHBlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1OmkyLkxvd2VyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY6aTIuSnNvblBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTc6aTIuU2xpY2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE4OmkyLkRlY2ltYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE5OmkyLlBlcmNlbnRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIwOmkyLlRpdGxlQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjE6aTIuQ3VycmVuY3lQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIyOmkyLkRhdGVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIzOmkyLkkxOG5QbHVyYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI0OmkyLkkxOG5TZWxlY3RQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI1OmkyLktleVZhbHVlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppNS5TYWNUZXN0aW5nQXR0cmlidXRlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNzppMi5Db21tb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjg6aTUuU0FDQ29tbW9uVXRsaWx0aWVzTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI5OmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzA6aTAuRWxlbWVudFJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG5mdW5jdGlvbiBfVmlld19TYWNXaXphcmRDb21wb25lbnRfSG9zdF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1dpemFyZENvbXBvbmVudF8xXzEoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICduYXYtaXRlbSc7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IHsnYWN0aXZlJzpfYW55Ll9hY3RpdmUsJ2Rpc2FibGVkJzpfYW55Ll9kaXNhYmxlZCwnc3VjY2Vzcyc6X2FueS5faXNjb21wbGV0ZX07XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IHsnY3Vyc29yJzooX2FueS5fZGlzYWJsZWQ/ICdub3QtYWxsb3dlZCc6ICdwb2ludGVyJyl9O1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfYW55LmxhYmVsO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IHBkXzQ6YW55ID0gKCg8YW55Pl9kZWNsMF8xMS5zZWxlY3RTdGVwKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF81OmFueSA9ICgoPGFueT5fZGVjbDBfMTEuc2VsZWN0U3RlcChfYW55KSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1dpemFyZENvbXBvbmVudF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xMS5uYW1lO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTEuX3dpemFyZEl0ZW1zO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19TYWNXaXphcmRJdGVtQ29tcG9uZW50X0hvc3RfMl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNXaXphcmRJdGVtQ29tcG9uZW50XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuIl19
|
package/esm2015/public_api.js
CHANGED
|
@@ -58,7 +58,9 @@ export * from './controls/layout/tocontrolwidthcss.pipe';
|
|
|
58
58
|
export * from './controls/layout/tolabelheight.pipe';
|
|
59
59
|
export * from './controls/layout/tolabelwidthcss.pipe';
|
|
60
60
|
export * from './controls/list/dropdown';
|
|
61
|
+
export * from './controls/list/dropdownoption.directive';
|
|
61
62
|
export * from './controls/list/listbox';
|
|
63
|
+
export * from './controls/list/listboxoption.directive';
|
|
62
64
|
export * from './controls/static/formcontainer';
|
|
63
65
|
export * from './controls/static/staticlabel';
|
|
64
66
|
export * from './controls/tabs/tab';
|
|
@@ -73,4 +75,4 @@ export * from './controls/upload/uploadmultiple';
|
|
|
73
75
|
export * from './controls/validation/validationsummary';
|
|
74
76
|
export * from './controls/wizard/wizard';
|
|
75
77
|
export * from './controls/wizard/wizarditem';
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwMy9zcmMvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUvRixjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsZ0RBQWdELENBQUM7QUFFL0QsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCwwQkFBMEI7QUFDMUIsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxrQkFBa0I7QUFDbEIsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGNBQWMsZ0RBQWdELENBQUM7QUFFL0QsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxjQUFjLHdDQUF3QyxDQUFDO0FBRXZELGNBQWMsMENBQTBDLENBQUM7QUFFekQsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLHdDQUF3QyxDQUFDO0FBRXZELGNBQWMsMEJBQTBCLENBQUM7QUFFekMsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGNBQWMseUNBQXlDLENBQUM7QUFFeEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELGNBQWMsa0NBQWtDLENBQUM7QUFFakQsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMseUNBQXlDLENBQUM7QUFFeEQsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzYWMtYm9vdHN0cmFwM1xuICovXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2J1dHRvbnMvYnV0dG9uLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvY2hlY2tib3gvY2hlY2tib3gubW9kdWxlJztcblxuZXhwb3J0IHsgU0FDQm9vdHN0cmFwM0NvbmZpcm1Nb2R1bGUsIFNlcnZpY2VDb25maXJtIH0gZnJvbSAnLi9jb250cm9scy9jb25maXJtL2NvbmZpcm0ubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9jb250ZXh0bWVudS9jb250ZXh0bWVudS5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2RhdGV0aW1lL2RhdGV0aW1lLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZGlhbG9nL2RpYWxvZy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2dyaWQvZ3JpZC5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2lucHV0L2lucHV0Lm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvbGF5b3V0L2xheW91dC5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2xpc3QvbGlzdC5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3N0YXRpYy9zdGF0aWNsYWJlbC5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3RhYnMvdGFicy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3RpbnltY2UvdGlueW1jZS5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3RyZWV2aWV3L3RyZWV2aWV3Lm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvdXBsb2FkL3VwbG9hZC5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3ZhbGlkYXRpb24vdmFsaWRhdGlvbnN1bW1hcnkubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy93aXphcmQvd2l6YXJkLm1vZHVsZSc7XG5cbi8vIEZvcm0gTW9kdWxlIGFuZCBDbGFzc2VzXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2Zvcm0vZm9ybS5tb2R1bGUnO1xuXG4vLyBFeHBvcnQgQ29udHJvbHNcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvYnV0dG9ucy9idXR0b24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2NoZWNrYm94L2NoZWNrYm94JztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9jaGVja2JveC9yYWRpb2J1dHRvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvY2hlY2tib3gvcmFkaW9idXR0b25zJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9jb25maXJtL2NvbmZpcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2NvbnRleHRtZW51L2NvbnRleHRtZW51JztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9jb250ZXh0bWVudS9jb250ZXh0bWVudWFuY2hvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvY29udGV4dG1lbnUvY29udGV4dG1lbnVpdGVtYnV0dG9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9jb250ZXh0bWVudS9jb250ZXh0bWVudWl0ZW1zcGxpdHRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZGF0ZXRpbWUvZGF0ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZGF0ZXRpbWUvZGF0ZXNlbGVjdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9kYXRldGltZS9kYXRldGltZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZGF0ZXRpbWUvdGltZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZGlhbG9nL2RpYWxvZyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZm9ybS9mb3JtJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9mb3JtL2luaGVyaXRmb3JtLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZ3JpZC9ncmlkJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9ncmlkL2dyaWRidXR0b24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2dyaWQvZ3JpZGNvbHVtbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZ3JpZC9ncmlkY29sdW1uYWN0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9ncmlkL2dyaWRpbWFnZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvZ3JpZC9wYWdpbmcnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2lucHV0L2lucHV0JztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9pbnB1dC9pbnB1dGFyZWEnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2lucHV0L2lucHV0Y3VycmVuY3knO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2lucHV0L2lucHV0ZGVjaW1hbCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvaW5wdXQvaW5wdXRlbWFpbCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvaW5wdXQvaW5wdXRpbnRlZ2VyJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9pbnB1dC9pbnB1dHBhc3N3b3JkJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9pbnB1dC9pbnB1dHNlYXJjaCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9sYXlvdXQvdG9jb250cm9saGVpZ2h0LnBpcGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2xheW91dC90b2NvbnRyb2x3aWR0aGNzcy5waXBlJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9sYXlvdXQvdG9sYWJlbGhlaWdodC5waXBlJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9sYXlvdXQvdG9sYWJlbHdpZHRoY3NzLnBpcGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2xpc3QvZHJvcGRvd24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2xpc3QvZHJvcGRvd25vcHRpb24uZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9saXN0L2xpc3Rib3gnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2xpc3QvbGlzdGJveG9wdGlvbi5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3N0YXRpYy9mb3JtY29udGFpbmVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9zdGF0aWMvc3RhdGljbGFiZWwnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3RhYnMvdGFiJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy90YWJzL3RhYml0ZW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3RpbnltY2UvdGlueW1jZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvdG9vbHRpcC90b29sdGlwJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy90cmVldmlldy90cmVldmlldyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvdXBsb2FkL2Ryb3B6b25lbXVsdGlwbGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL3VwbG9hZC9kcm9wem9uZXNpbmdsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvdXBsb2FkL3VwbG9hZCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvdXBsb2FkL3VwbG9hZG11bHRpcGxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy92YWxpZGF0aW9uL3ZhbGlkYXRpb25zdW1tYXJ5JztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy93aXphcmQvd2l6YXJkJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy93aXphcmQvd2l6YXJkaXRlbSc7XG4iXX0=
|
|
@@ -3,4 +3,5 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from './public_api';
|
|
5
5
|
export { SacContextmenuContainerDirective as ɵa } from './controls/contextmenu/contextmenucontainer';
|
|
6
|
-
|
|
6
|
+
export { DROPDOWN_TOKEN as ɵb, LISTBOX_TOKEN as ɵc } from './controls/list/list.token';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlYW5ndWxhcmNvbnRyb2xzLXNhYy1ib290c3RyYXAzLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXAzL3NyYy8iLCJzb3VyY2VzIjpbInNpbXBsZWFuZ3VsYXJjb250cm9scy1zYWMtYm9vdHN0cmFwMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRyxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7U2FjQ29udGV4dG1lbnVDb250YWluZXJEaXJlY3RpdmUgYXMgybVhfSBmcm9tICcuL2NvbnRyb2xzL2NvbnRleHRtZW51L2NvbnRleHRtZW51Y29udGFpbmVyJztcbmV4cG9ydCB7RFJPUERPV05fVE9LRU4gYXMgybViLExJU1RCT1hfVE9LRU4gYXMgybVjfSBmcm9tICcuL2NvbnRyb2xzL2xpc3QvbGlzdC50b2tlbic7Il19
|