@simpleangularcontrols/sac-bootstrap5 10.0.0-rc.20 → 10.0.0-rc.22
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/README.md +17 -17
- package/bundles/simpleangularcontrols-sac-bootstrap5.umd.js +3273 -3242
- package/bundles/simpleangularcontrols-sac-bootstrap5.umd.js.map +1 -1
- package/bundles/simpleangularcontrols-sac-bootstrap5.umd.min.js +1 -1
- package/bundles/simpleangularcontrols-sac-bootstrap5.umd.min.js.map +1 -1
- package/components/browser/browser.d.ts +45 -45
- package/components/browser/browser.d.ts.map +1 -1
- package/components/browser/browser.module.d.ts +2 -2
- package/components/browser/browser.module.d.ts.map +1 -1
- package/components/browser/browser.module.ngfactory.d.ts +3 -3
- package/components/browser/browser.module.ngfactory.d.ts.map +1 -1
- package/components/browser/browser.ngfactory.d.ts +1 -1
- package/components/browser/browser.ngfactory.d.ts.map +1 -1
- package/controls/buttons/button.d.ts +8 -8
- package/controls/buttons/button.d.ts.map +1 -1
- package/controls/buttons/button.module.d.ts +2 -2
- package/controls/buttons/button.module.d.ts.map +1 -1
- package/controls/buttons/button.module.ngfactory.d.ts +3 -3
- package/controls/buttons/button.module.ngfactory.d.ts.map +1 -1
- package/controls/buttons/button.ngfactory.d.ts +1 -1
- package/controls/buttons/button.ngfactory.d.ts.map +1 -1
- package/controls/checkbox/checkbox.d.ts +14 -14
- package/controls/checkbox/checkbox.d.ts.map +1 -1
- package/controls/checkbox/checkbox.module.d.ts +2 -2
- package/controls/checkbox/checkbox.module.d.ts.map +1 -1
- package/controls/checkbox/checkbox.module.ngfactory.d.ts +3 -3
- package/controls/checkbox/checkbox.module.ngfactory.d.ts.map +1 -1
- package/controls/checkbox/checkbox.ngfactory.d.ts +1 -1
- package/controls/checkbox/checkbox.ngfactory.d.ts.map +1 -1
- package/controls/checkbox/checkbox.scss.ngstyle.d.ts +1 -1
- package/controls/checkbox/checkbox.scss.ngstyle.d.ts.map +1 -1
- package/controls/checkbox/checkbox.scss.shim.ngstyle.d.ts +1 -1
- package/controls/checkbox/checkbox.scss.shim.ngstyle.d.ts.map +1 -1
- package/controls/checkbox/radiobutton.d.ts +16 -16
- package/controls/checkbox/radiobutton.d.ts.map +1 -1
- package/controls/checkbox/radiobutton.ngfactory.d.ts +1 -1
- package/controls/checkbox/radiobutton.ngfactory.d.ts.map +1 -1
- package/controls/checkbox/radiobutton.scss.ngstyle.d.ts +1 -1
- package/controls/checkbox/radiobutton.scss.ngstyle.d.ts.map +1 -1
- package/controls/checkbox/radiobutton.scss.shim.ngstyle.d.ts +1 -1
- package/controls/checkbox/radiobutton.scss.shim.ngstyle.d.ts.map +1 -1
- package/controls/checkbox/radiobuttons.d.ts +14 -14
- package/controls/checkbox/radiobuttons.d.ts.map +1 -1
- package/controls/checkbox/radiobuttons.ngfactory.d.ts +1 -1
- package/controls/checkbox/radiobuttons.ngfactory.d.ts.map +1 -1
- package/controls/confirm/confirm.d.ts +6 -6
- package/controls/confirm/confirm.d.ts.map +1 -1
- package/controls/confirm/confirm.module.d.ts +11 -11
- package/controls/confirm/confirm.module.d.ts.map +1 -1
- package/controls/confirm/confirm.module.ngfactory.d.ts +3 -3
- package/controls/confirm/confirm.module.ngfactory.d.ts.map +1 -1
- package/controls/confirm/confirm.ngfactory.d.ts +1 -1
- package/controls/confirm/confirm.ngfactory.d.ts.map +1 -1
- package/controls/confirm/confirm.service.d.ts +54 -54
- package/controls/confirm/confirm.service.d.ts.map +1 -1
- package/controls/confirm/confirm.service.ngfactory.d.ts +1 -1
- package/controls/confirm/confirm.service.ngfactory.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.d.ts +16 -16
- package/controls/contextmenu/contextmenu.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.module.d.ts +2 -2
- package/controls/contextmenu/contextmenu.module.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.module.ngfactory.d.ts +3 -3
- package/controls/contextmenu/contextmenu.module.ngfactory.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.ngfactory.d.ts +1 -1
- package/controls/contextmenu/contextmenu.ngfactory.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuanchor.d.ts +12 -12
- package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts +1 -1
- package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts.map +1 -1
- package/controls/contextmenu/contextmenucontainer.d.ts +12 -12
- package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
- package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts +1 -1
- package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuitembutton.d.ts +10 -10
- package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts +1 -1
- package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuitemsplitter.d.ts +6 -6
- package/controls/contextmenu/contextmenuitemsplitter.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuitemsplitter.ngfactory.d.ts +1 -1
- package/controls/contextmenu/contextmenuitemsplitter.ngfactory.d.ts.map +1 -1
- package/controls/datetime/date.d.ts +16 -16
- package/controls/datetime/date.d.ts.map +1 -1
- package/controls/datetime/date.ngfactory.d.ts +1 -1
- package/controls/datetime/date.ngfactory.d.ts.map +1 -1
- package/controls/datetime/dateselector.d.ts +6 -6
- package/controls/datetime/dateselector.d.ts.map +1 -1
- package/controls/datetime/dateselector.ngfactory.d.ts +1 -1
- package/controls/datetime/dateselector.ngfactory.d.ts.map +1 -1
- package/controls/datetime/datetime.d.ts +16 -16
- package/controls/datetime/datetime.d.ts.map +1 -1
- package/controls/datetime/datetime.module.d.ts +2 -2
- package/controls/datetime/datetime.module.d.ts.map +1 -1
- package/controls/datetime/datetime.module.ngfactory.d.ts +3 -3
- package/controls/datetime/datetime.module.ngfactory.d.ts.map +1 -1
- package/controls/datetime/datetime.ngfactory.d.ts +1 -1
- package/controls/datetime/datetime.ngfactory.d.ts.map +1 -1
- package/controls/datetime/time.d.ts +16 -16
- package/controls/datetime/time.d.ts.map +1 -1
- package/controls/datetime/time.ngfactory.d.ts +1 -1
- package/controls/datetime/time.ngfactory.d.ts.map +1 -1
- package/controls/dialog/dialog.d.ts +25 -25
- package/controls/dialog/dialog.d.ts.map +1 -1
- package/controls/dialog/dialog.module.d.ts +2 -2
- package/controls/dialog/dialog.module.d.ts.map +1 -1
- package/controls/dialog/dialog.module.ngfactory.d.ts +3 -3
- package/controls/dialog/dialog.module.ngfactory.d.ts.map +1 -1
- package/controls/dialog/dialog.ngfactory.d.ts +1 -1
- package/controls/dialog/dialog.ngfactory.d.ts.map +1 -1
- package/controls/form/form.d.ts +25 -25
- package/controls/form/form.d.ts.map +1 -1
- package/controls/form/form.module.d.ts +2 -2
- package/controls/form/form.module.d.ts.map +1 -1
- package/controls/form/form.module.ngfactory.d.ts +3 -3
- package/controls/form/form.module.ngfactory.d.ts.map +1 -1
- package/controls/form/form.ngfactory.d.ts +1 -1
- package/controls/form/form.ngfactory.d.ts.map +1 -1
- package/controls/form/inheritform.directive.d.ts +24 -24
- package/controls/form/inheritform.directive.d.ts.map +1 -1
- package/controls/form/inheritform.directive.ngfactory.d.ts +1 -1
- package/controls/form/inheritform.directive.ngfactory.d.ts.map +1 -1
- package/controls/grid/grid.d.ts +20 -20
- package/controls/grid/grid.d.ts.map +1 -1
- package/controls/grid/grid.module.d.ts +2 -2
- package/controls/grid/grid.module.d.ts.map +1 -1
- package/controls/grid/grid.module.ngfactory.d.ts +3 -3
- package/controls/grid/grid.module.ngfactory.d.ts.map +1 -1
- package/controls/grid/grid.ngfactory.d.ts +1 -1
- package/controls/grid/grid.ngfactory.d.ts.map +1 -1
- package/controls/grid/gridbutton.d.ts +10 -10
- package/controls/grid/gridbutton.d.ts.map +1 -1
- package/controls/grid/gridbutton.ngfactory.d.ts +1 -1
- package/controls/grid/gridbutton.ngfactory.d.ts.map +1 -1
- package/controls/grid/gridcolumn.d.ts +14 -14
- package/controls/grid/gridcolumn.d.ts.map +1 -1
- package/controls/grid/gridcolumn.ngfactory.d.ts +1 -1
- package/controls/grid/gridcolumn.ngfactory.d.ts.map +1 -1
- package/controls/grid/gridcolumnaction.d.ts +14 -14
- package/controls/grid/gridcolumnaction.d.ts.map +1 -1
- package/controls/grid/gridcolumnaction.ngfactory.d.ts +1 -1
- package/controls/grid/gridcolumnaction.ngfactory.d.ts.map +1 -1
- package/controls/grid/gridimage.d.ts +11 -11
- package/controls/grid/gridimage.d.ts.map +1 -1
- package/controls/grid/gridimage.ngfactory.d.ts +1 -1
- package/controls/grid/gridimage.ngfactory.d.ts.map +1 -1
- package/controls/grid/paging.d.ts +12 -12
- package/controls/grid/paging.d.ts.map +1 -1
- package/controls/grid/paging.ngfactory.d.ts +1 -1
- package/controls/grid/paging.ngfactory.d.ts.map +1 -1
- package/controls/input/input.d.ts +14 -14
- package/controls/input/input.d.ts.map +1 -1
- package/controls/input/input.module.d.ts +2 -2
- package/controls/input/input.module.d.ts.map +1 -1
- package/controls/input/input.module.ngfactory.d.ts +3 -3
- package/controls/input/input.module.ngfactory.d.ts.map +1 -1
- package/controls/input/input.ngfactory.d.ts +1 -1
- package/controls/input/input.ngfactory.d.ts.map +1 -1
- package/controls/input/inputarea.d.ts +14 -14
- package/controls/input/inputarea.d.ts.map +1 -1
- package/controls/input/inputarea.ngfactory.d.ts +1 -1
- package/controls/input/inputarea.ngfactory.d.ts.map +1 -1
- package/controls/input/inputcurrency.d.ts +14 -14
- package/controls/input/inputcurrency.d.ts.map +1 -1
- package/controls/input/inputcurrency.ngfactory.d.ts +1 -1
- package/controls/input/inputcurrency.ngfactory.d.ts.map +1 -1
- package/controls/input/inputdecimal.d.ts +14 -14
- package/controls/input/inputdecimal.d.ts.map +1 -1
- package/controls/input/inputdecimal.ngfactory.d.ts +1 -1
- package/controls/input/inputdecimal.ngfactory.d.ts.map +1 -1
- package/controls/input/inputemail.d.ts +14 -14
- package/controls/input/inputemail.d.ts.map +1 -1
- package/controls/input/inputemail.ngfactory.d.ts +1 -1
- package/controls/input/inputemail.ngfactory.d.ts.map +1 -1
- package/controls/input/inputinteger.d.ts +14 -14
- package/controls/input/inputinteger.d.ts.map +1 -1
- package/controls/input/inputinteger.ngfactory.d.ts +1 -1
- package/controls/input/inputinteger.ngfactory.d.ts.map +1 -1
- package/controls/input/inputpassword.d.ts +14 -14
- package/controls/input/inputpassword.d.ts.map +1 -1
- package/controls/input/inputpassword.ngfactory.d.ts +1 -1
- package/controls/input/inputpassword.ngfactory.d.ts.map +1 -1
- package/controls/input/inputsearch.d.ts +14 -14
- package/controls/input/inputsearch.d.ts.map +1 -1
- package/controls/input/inputsearch.ngfactory.d.ts +1 -1
- package/controls/input/inputsearch.ngfactory.d.ts.map +1 -1
- package/controls/layout/formlayout.directive.d.ts +3 -3
- package/controls/layout/formlayout.directive.d.ts.map +1 -1
- package/controls/layout/formlayout.directive.ngfactory.d.ts +1 -1
- package/controls/layout/formlayout.directive.ngfactory.d.ts.map +1 -1
- package/controls/layout/layout.module.d.ts +2 -2
- package/controls/layout/layout.module.d.ts.map +1 -1
- package/controls/layout/layout.module.ngfactory.d.ts +3 -3
- package/controls/layout/layout.module.ngfactory.d.ts.map +1 -1
- package/controls/layout/tocontrolheight.pipe.d.ts +9 -9
- package/controls/layout/tocontrolheight.pipe.d.ts.map +1 -1
- package/controls/layout/tocontrolheight.pipe.ngfactory.d.ts +1 -1
- package/controls/layout/tocontrolheight.pipe.ngfactory.d.ts.map +1 -1
- package/controls/layout/tocontrolwidthcss.pipe.d.ts +16 -16
- package/controls/layout/tocontrolwidthcss.pipe.d.ts.map +1 -1
- package/controls/layout/tocontrolwidthcss.pipe.ngfactory.d.ts +1 -1
- package/controls/layout/tocontrolwidthcss.pipe.ngfactory.d.ts.map +1 -1
- package/controls/layout/tolabelheight.pipe.d.ts +9 -9
- package/controls/layout/tolabelheight.pipe.d.ts.map +1 -1
- package/controls/layout/tolabelheight.pipe.ngfactory.d.ts +1 -1
- package/controls/layout/tolabelheight.pipe.ngfactory.d.ts.map +1 -1
- package/controls/layout/tolabelwidthcss.pipe.d.ts +10 -10
- package/controls/layout/tolabelwidthcss.pipe.d.ts.map +1 -1
- package/controls/layout/tolabelwidthcss.pipe.ngfactory.d.ts +1 -1
- package/controls/layout/tolabelwidthcss.pipe.ngfactory.d.ts.map +1 -1
- package/controls/list/dropdown.d.ts +28 -28
- package/controls/list/dropdown.d.ts.map +1 -1
- package/controls/list/dropdown.module.d.ts +2 -2
- package/controls/list/dropdown.module.d.ts.map +1 -1
- package/controls/list/dropdown.module.ngfactory.d.ts +3 -3
- package/controls/list/dropdown.module.ngfactory.d.ts.map +1 -1
- package/controls/list/dropdown.ngfactory.d.ts +1 -1
- package/controls/list/dropdown.ngfactory.d.ts.map +1 -1
- package/controls/list/list.module.d.ts +2 -2
- package/controls/list/list.module.d.ts.map +1 -1
- package/controls/list/list.module.ngfactory.d.ts +3 -3
- package/controls/list/list.module.ngfactory.d.ts.map +1 -1
- package/controls/list/listbox.d.ts +26 -26
- package/controls/list/listbox.d.ts.map +1 -1
- package/controls/list/listbox.ngfactory.d.ts +1 -1
- package/controls/list/listbox.ngfactory.d.ts.map +1 -1
- package/controls/multilanguage/multilanguage.module.d.ts +2 -2
- package/controls/multilanguage/multilanguage.module.d.ts.map +1 -1
- package/controls/multilanguage/multilanguage.module.ngfactory.d.ts +3 -3
- package/controls/multilanguage/multilanguage.module.ngfactory.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinput.d.ts +18 -18
- package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinput.ngfactory.d.ts +1 -1
- package/controls/multilanguage/multilanguageinput.ngfactory.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinputarea.d.ts +18 -18
- package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts +1 -1
- package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts.map +1 -1
- package/controls/multilanguage/multilanguagemenu.d.ts +24 -24
- package/controls/multilanguage/multilanguagemenu.d.ts.map +1 -1
- package/controls/multilanguage/multilanguagemenu.ngfactory.d.ts +1 -1
- package/controls/multilanguage/multilanguagemenu.ngfactory.d.ts.map +1 -1
- package/controls/multilanguage/multilanguagemenuanchor.d.ts +12 -12
- package/controls/multilanguage/multilanguagemenuanchor.d.ts.map +1 -1
- package/controls/multilanguage/multilanguagemenuanchor.ngfactory.d.ts +1 -1
- package/controls/multilanguage/multilanguagemenuanchor.ngfactory.d.ts.map +1 -1
- package/controls/multilanguage/multilanguagemenucontainer.d.ts +12 -12
- package/controls/multilanguage/multilanguagemenucontainer.d.ts.map +1 -1
- package/controls/multilanguage/multilanguagemenucontainer.ngfactory.d.ts +1 -1
- package/controls/multilanguage/multilanguagemenucontainer.ngfactory.d.ts.map +1 -1
- package/controls/multilanguage/multilanguagemenuitembutton.d.ts +10 -10
- package/controls/multilanguage/multilanguagemenuitembutton.d.ts.map +1 -1
- package/controls/multilanguage/multilanguagemenuitembutton.ngfactory.d.ts +1 -1
- package/controls/multilanguage/multilanguagemenuitembutton.ngfactory.d.ts.map +1 -1
- package/controls/static/formcontainer.d.ts +25 -25
- package/controls/static/formcontainer.d.ts.map +1 -1
- package/controls/static/formcontainer.ngfactory.d.ts +1 -1
- package/controls/static/formcontainer.ngfactory.d.ts.map +1 -1
- package/controls/static/staticlabel.d.ts +14 -14
- package/controls/static/staticlabel.d.ts.map +1 -1
- package/controls/static/staticlabel.module.d.ts +2 -2
- package/controls/static/staticlabel.module.d.ts.map +1 -1
- package/controls/static/staticlabel.module.ngfactory.d.ts +3 -3
- package/controls/static/staticlabel.module.ngfactory.d.ts.map +1 -1
- package/controls/static/staticlabel.ngfactory.d.ts +1 -1
- package/controls/static/staticlabel.ngfactory.d.ts.map +1 -1
- package/controls/tabs/tab.d.ts +17 -17
- package/controls/tabs/tab.d.ts.map +1 -1
- package/controls/tabs/tab.ngfactory.d.ts +1 -1
- package/controls/tabs/tab.ngfactory.d.ts.map +1 -1
- package/controls/tabs/tabitem.d.ts +6 -6
- package/controls/tabs/tabitem.d.ts.map +1 -1
- package/controls/tabs/tabitem.ngfactory.d.ts +1 -1
- package/controls/tabs/tabitem.ngfactory.d.ts.map +1 -1
- package/controls/tabs/tabs.module.d.ts +2 -2
- package/controls/tabs/tabs.module.d.ts.map +1 -1
- package/controls/tabs/tabs.module.ngfactory.d.ts +3 -3
- package/controls/tabs/tabs.module.ngfactory.d.ts.map +1 -1
- package/controls/tinymce/tinymce.d.ts +20 -20
- package/controls/tinymce/tinymce.d.ts.map +1 -1
- package/controls/tinymce/tinymce.module.d.ts +2 -2
- package/controls/tinymce/tinymce.module.d.ts.map +1 -1
- package/controls/tinymce/tinymce.module.ngfactory.d.ts +3 -3
- package/controls/tinymce/tinymce.module.ngfactory.d.ts.map +1 -1
- package/controls/tinymce/tinymce.ngfactory.d.ts +1 -1
- package/controls/tinymce/tinymce.ngfactory.d.ts.map +1 -1
- package/controls/tinymce/tinymce.scss.ngstyle.d.ts +1 -1
- package/controls/tinymce/tinymce.scss.ngstyle.d.ts.map +1 -1
- package/controls/tinymce/tinymce.scss.shim.ngstyle.d.ts +1 -1
- package/controls/tinymce/tinymce.scss.shim.ngstyle.d.ts.map +1 -1
- package/controls/tooltip/tooltip.d.ts +34 -34
- package/controls/tooltip/tooltip.d.ts.map +1 -1
- package/controls/tooltip/tooltip.module.d.ts +2 -2
- package/controls/tooltip/tooltip.module.d.ts.map +1 -1
- package/controls/tooltip/tooltip.module.ngfactory.d.ts +3 -3
- package/controls/tooltip/tooltip.module.ngfactory.d.ts.map +1 -1
- package/controls/tooltip/tooltip.ngfactory.d.ts +1 -1
- package/controls/tooltip/tooltip.ngfactory.d.ts.map +1 -1
- package/controls/treeview/treeview.d.ts +14 -14
- package/controls/treeview/treeview.d.ts.map +1 -1
- package/controls/treeview/treeview.module.d.ts +2 -2
- package/controls/treeview/treeview.module.d.ts.map +1 -1
- package/controls/treeview/treeview.module.ngfactory.d.ts +3 -3
- package/controls/treeview/treeview.module.ngfactory.d.ts.map +1 -1
- package/controls/treeview/treeview.ngfactory.d.ts +1 -1
- package/controls/treeview/treeview.ngfactory.d.ts.map +1 -1
- package/controls/upload/dropzone.scss.ngstyle.d.ts +1 -1
- package/controls/upload/dropzone.scss.ngstyle.d.ts.map +1 -1
- package/controls/upload/dropzone.scss.shim.ngstyle.d.ts +1 -1
- package/controls/upload/dropzone.scss.shim.ngstyle.d.ts.map +1 -1
- package/controls/upload/dropzonemultiple.d.ts +21 -21
- package/controls/upload/dropzonemultiple.d.ts.map +1 -1
- package/controls/upload/dropzonemultiple.ngfactory.d.ts +1 -1
- package/controls/upload/dropzonemultiple.ngfactory.d.ts.map +1 -1
- package/controls/upload/dropzonesingle.d.ts +21 -21
- package/controls/upload/dropzonesingle.d.ts.map +1 -1
- package/controls/upload/dropzonesingle.ngfactory.d.ts +1 -1
- package/controls/upload/dropzonesingle.ngfactory.d.ts.map +1 -1
- package/controls/upload/upload.d.ts +17 -17
- package/controls/upload/upload.d.ts.map +1 -1
- package/controls/upload/upload.module.d.ts +2 -2
- package/controls/upload/upload.module.d.ts.map +1 -1
- package/controls/upload/upload.module.ngfactory.d.ts +3 -3
- package/controls/upload/upload.module.ngfactory.d.ts.map +1 -1
- package/controls/upload/upload.ngfactory.d.ts +1 -1
- package/controls/upload/upload.ngfactory.d.ts.map +1 -1
- package/controls/upload/upload.scss.ngstyle.d.ts +1 -1
- package/controls/upload/upload.scss.ngstyle.d.ts.map +1 -1
- package/controls/upload/upload.scss.shim.ngstyle.d.ts +1 -1
- package/controls/upload/upload.scss.shim.ngstyle.d.ts.map +1 -1
- package/controls/upload/uploadmultiple.d.ts +17 -17
- package/controls/upload/uploadmultiple.d.ts.map +1 -1
- package/controls/upload/uploadmultiple.ngfactory.d.ts +1 -1
- package/controls/upload/uploadmultiple.ngfactory.d.ts.map +1 -1
- package/controls/validation/validationsummary.d.ts +14 -14
- package/controls/validation/validationsummary.d.ts.map +1 -1
- package/controls/validation/validationsummary.module.d.ts +2 -2
- package/controls/validation/validationsummary.module.d.ts.map +1 -1
- package/controls/validation/validationsummary.module.ngfactory.d.ts +3 -3
- package/controls/validation/validationsummary.module.ngfactory.d.ts.map +1 -1
- package/controls/validation/validationsummary.ngfactory.d.ts +1 -1
- package/controls/validation/validationsummary.ngfactory.d.ts.map +1 -1
- package/controls/wizard/wizard.d.ts +17 -17
- package/controls/wizard/wizard.d.ts.map +1 -1
- package/controls/wizard/wizard.module.d.ts +2 -2
- package/controls/wizard/wizard.module.d.ts.map +1 -1
- package/controls/wizard/wizard.module.ngfactory.d.ts +3 -3
- package/controls/wizard/wizard.module.ngfactory.d.ts.map +1 -1
- package/controls/wizard/wizard.ngfactory.d.ts +1 -1
- package/controls/wizard/wizard.ngfactory.d.ts.map +1 -1
- package/controls/wizard/wizarditem.d.ts +6 -6
- package/controls/wizard/wizarditem.d.ts.map +1 -1
- package/controls/wizard/wizarditem.ngfactory.d.ts +1 -1
- package/controls/wizard/wizarditem.ngfactory.d.ts.map +1 -1
- package/esm2015/components/browser/browser.js +109 -109
- package/esm2015/components/browser/browser.module.js +28 -28
- package/esm2015/components/browser/browser.module.ngfactory.js +7 -7
- package/esm2015/components/browser/browser.ngfactory.js +7 -7
- package/esm2015/controls/buttons/button.js +16 -16
- package/esm2015/controls/buttons/button.module.js +15 -15
- package/esm2015/controls/buttons/button.module.ngfactory.js +7 -7
- package/esm2015/controls/buttons/button.ngfactory.js +7 -7
- package/esm2015/controls/checkbox/checkbox.js +44 -44
- package/esm2015/controls/checkbox/checkbox.module.js +29 -29
- package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +7 -7
- package/esm2015/controls/checkbox/checkbox.ngfactory.js +7 -7
- package/esm2015/controls/checkbox/checkbox.scss.ngstyle.js +7 -7
- package/esm2015/controls/checkbox/checkbox.scss.shim.ngstyle.js +7 -7
- package/esm2015/controls/checkbox/radiobutton.js +32 -32
- package/esm2015/controls/checkbox/radiobutton.ngfactory.js +7 -7
- package/esm2015/controls/checkbox/radiobutton.scss.ngstyle.js +7 -7
- package/esm2015/controls/checkbox/radiobutton.scss.shim.ngstyle.js +7 -7
- package/esm2015/controls/checkbox/radiobuttons.js +42 -42
- package/esm2015/controls/checkbox/radiobuttons.ngfactory.js +7 -7
- package/esm2015/controls/confirm/confirm.js +14 -14
- package/esm2015/controls/confirm/confirm.module.js +31 -31
- package/esm2015/controls/confirm/confirm.module.ngfactory.js +7 -7
- package/esm2015/controls/confirm/confirm.ngfactory.js +7 -7
- package/esm2015/controls/confirm/confirm.service.js +102 -102
- package/esm2015/controls/confirm/confirm.service.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenu.js +34 -34
- package/esm2015/controls/contextmenu/contextmenu.module.js +28 -28
- package/esm2015/controls/contextmenu/contextmenu.module.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenu.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenuanchor.js +30 -30
- package/esm2015/controls/contextmenu/contextmenuanchor.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenucontainer.js +30 -30
- package/esm2015/controls/contextmenu/contextmenucontainer.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenuitembutton.js +28 -28
- package/esm2015/controls/contextmenu/contextmenuitembutton.ngfactory.js +7 -7
- package/esm2015/controls/contextmenu/contextmenuitemsplitter.js +20 -20
- package/esm2015/controls/contextmenu/contextmenuitemsplitter.ngfactory.js +7 -7
- package/esm2015/controls/datetime/date.js +55 -55
- package/esm2015/controls/datetime/date.ngfactory.js +7 -7
- package/esm2015/controls/datetime/dateselector.js +14 -14
- package/esm2015/controls/datetime/dateselector.ngfactory.js +7 -7
- package/esm2015/controls/datetime/datetime.js +46 -46
- package/esm2015/controls/datetime/datetime.module.js +34 -34
- package/esm2015/controls/datetime/datetime.module.ngfactory.js +7 -7
- package/esm2015/controls/datetime/datetime.ngfactory.js +7 -7
- package/esm2015/controls/datetime/time.js +46 -46
- package/esm2015/controls/datetime/time.ngfactory.js +7 -7
- package/esm2015/controls/dialog/dialog.js +44 -44
- package/esm2015/controls/dialog/dialog.module.js +15 -15
- package/esm2015/controls/dialog/dialog.module.ngfactory.js +7 -7
- package/esm2015/controls/dialog/dialog.ngfactory.js +7 -7
- package/esm2015/controls/form/form.js +41 -41
- package/esm2015/controls/form/form.module.js +15 -15
- package/esm2015/controls/form/form.module.ngfactory.js +7 -7
- package/esm2015/controls/form/form.ngfactory.js +7 -7
- package/esm2015/controls/form/inheritform.directive.js +57 -57
- package/esm2015/controls/form/inheritform.directive.ngfactory.js +7 -7
- package/esm2015/controls/grid/grid.js +44 -44
- package/esm2015/controls/grid/grid.module.js +21 -21
- package/esm2015/controls/grid/grid.module.ngfactory.js +7 -7
- package/esm2015/controls/grid/grid.ngfactory.js +7 -7
- package/esm2015/controls/grid/gridbutton.js +39 -39
- package/esm2015/controls/grid/gridbutton.ngfactory.js +7 -7
- package/esm2015/controls/grid/gridcolumn.js +34 -34
- package/esm2015/controls/grid/gridcolumn.ngfactory.js +7 -7
- package/esm2015/controls/grid/gridcolumnaction.js +35 -35
- package/esm2015/controls/grid/gridcolumnaction.ngfactory.js +7 -7
- package/esm2015/controls/grid/gridimage.js +28 -28
- package/esm2015/controls/grid/gridimage.ngfactory.js +7 -7
- package/esm2015/controls/grid/paging.js +34 -34
- package/esm2015/controls/grid/paging.ngfactory.js +7 -7
- package/esm2015/controls/input/input.js +38 -38
- package/esm2015/controls/input/input.module.js +44 -44
- package/esm2015/controls/input/input.module.ngfactory.js +7 -7
- package/esm2015/controls/input/input.ngfactory.js +7 -7
- package/esm2015/controls/input/inputarea.js +42 -42
- package/esm2015/controls/input/inputarea.ngfactory.js +7 -7
- package/esm2015/controls/input/inputcurrency.js +42 -42
- package/esm2015/controls/input/inputcurrency.ngfactory.js +7 -7
- package/esm2015/controls/input/inputdecimal.js +42 -42
- package/esm2015/controls/input/inputdecimal.ngfactory.js +7 -7
- package/esm2015/controls/input/inputemail.js +42 -42
- package/esm2015/controls/input/inputemail.ngfactory.js +7 -7
- package/esm2015/controls/input/inputinteger.js +42 -42
- package/esm2015/controls/input/inputinteger.ngfactory.js +7 -7
- package/esm2015/controls/input/inputpassword.js +42 -42
- package/esm2015/controls/input/inputpassword.ngfactory.js +7 -7
- package/esm2015/controls/input/inputsearch.js +42 -42
- package/esm2015/controls/input/inputsearch.ngfactory.js +7 -7
- package/esm2015/controls/layout/formlayout.directive.js +10 -10
- package/esm2015/controls/layout/formlayout.directive.ngfactory.js +7 -7
- package/esm2015/controls/layout/layout.module.js +29 -29
- package/esm2015/controls/layout/layout.module.ngfactory.js +7 -7
- package/esm2015/controls/layout/tocontrolheight.pipe.js +29 -29
- package/esm2015/controls/layout/tocontrolheight.pipe.ngfactory.js +7 -7
- package/esm2015/controls/layout/tocontrolwidthcss.pipe.js +53 -53
- package/esm2015/controls/layout/tocontrolwidthcss.pipe.ngfactory.js +7 -7
- package/esm2015/controls/layout/tolabelheight.pipe.js +29 -29
- package/esm2015/controls/layout/tolabelheight.pipe.ngfactory.js +7 -7
- package/esm2015/controls/layout/tolabelwidthcss.pipe.js +37 -37
- package/esm2015/controls/layout/tolabelwidthcss.pipe.ngfactory.js +7 -7
- package/esm2015/controls/list/dropdown.js +71 -71
- package/esm2015/controls/list/dropdown.module.js +19 -19
- package/esm2015/controls/list/dropdown.module.ngfactory.js +7 -7
- package/esm2015/controls/list/dropdown.ngfactory.js +7 -7
- package/esm2015/controls/list/list.module.js +19 -19
- package/esm2015/controls/list/list.module.ngfactory.js +7 -7
- package/esm2015/controls/list/listbox.js +67 -67
- package/esm2015/controls/list/listbox.ngfactory.js +7 -7
- package/esm2015/controls/multilanguage/multilanguage.module.js +31 -31
- package/esm2015/controls/multilanguage/multilanguage.module.ngfactory.js +7 -7
- package/esm2015/controls/multilanguage/multilanguageinput.js +48 -48
- package/esm2015/controls/multilanguage/multilanguageinput.ngfactory.js +7 -7
- package/esm2015/controls/multilanguage/multilanguageinputarea.js +48 -48
- package/esm2015/controls/multilanguage/multilanguageinputarea.ngfactory.js +7 -7
- package/esm2015/controls/multilanguage/multilanguagemenu.js +45 -45
- package/esm2015/controls/multilanguage/multilanguagemenu.ngfactory.js +7 -7
- package/esm2015/controls/multilanguage/multilanguagemenuanchor.js +30 -30
- package/esm2015/controls/multilanguage/multilanguagemenuanchor.ngfactory.js +7 -7
- package/esm2015/controls/multilanguage/multilanguagemenucontainer.js +30 -30
- package/esm2015/controls/multilanguage/multilanguagemenucontainer.ngfactory.js +7 -7
- package/esm2015/controls/multilanguage/multilanguagemenuitembutton.js +28 -28
- package/esm2015/controls/multilanguage/multilanguagemenuitembutton.ngfactory.js +7 -7
- package/esm2015/controls/static/formcontainer.js +53 -53
- package/esm2015/controls/static/formcontainer.ngfactory.js +7 -7
- package/esm2015/controls/static/staticlabel.js +42 -42
- package/esm2015/controls/static/staticlabel.module.js +20 -20
- package/esm2015/controls/static/staticlabel.module.ngfactory.js +7 -7
- package/esm2015/controls/static/staticlabel.ngfactory.js +7 -7
- package/esm2015/controls/tabs/tab.js +25 -25
- package/esm2015/controls/tabs/tab.ngfactory.js +7 -7
- package/esm2015/controls/tabs/tabitem.js +14 -14
- package/esm2015/controls/tabs/tabitem.ngfactory.js +7 -7
- package/esm2015/controls/tabs/tabs.module.js +14 -14
- package/esm2015/controls/tabs/tabs.module.ngfactory.js +7 -7
- package/esm2015/controls/tinymce/tinymce.js +54 -54
- package/esm2015/controls/tinymce/tinymce.module.js +29 -29
- package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +7 -7
- package/esm2015/controls/tinymce/tinymce.ngfactory.js +7 -7
- package/esm2015/controls/tinymce/tinymce.scss.ngstyle.js +7 -7
- package/esm2015/controls/tinymce/tinymce.scss.shim.ngstyle.js +7 -7
- package/esm2015/controls/tooltip/tooltip.js +52 -52
- package/esm2015/controls/tooltip/tooltip.module.js +13 -13
- package/esm2015/controls/tooltip/tooltip.module.ngfactory.js +7 -7
- package/esm2015/controls/tooltip/tooltip.ngfactory.js +7 -7
- package/esm2015/controls/treeview/treeview.js +41 -41
- package/esm2015/controls/treeview/treeview.module.js +16 -16
- package/esm2015/controls/treeview/treeview.module.ngfactory.js +7 -7
- package/esm2015/controls/treeview/treeview.ngfactory.js +7 -7
- package/esm2015/controls/upload/dropzone.scss.ngstyle.js +7 -7
- package/esm2015/controls/upload/dropzone.scss.shim.ngstyle.js +7 -7
- package/esm2015/controls/upload/dropzonemultiple.js +55 -55
- package/esm2015/controls/upload/dropzonemultiple.ngfactory.js +7 -7
- package/esm2015/controls/upload/dropzonesingle.js +55 -55
- package/esm2015/controls/upload/dropzonesingle.ngfactory.js +7 -7
- package/esm2015/controls/upload/upload.js +47 -47
- package/esm2015/controls/upload/upload.module.js +34 -34
- package/esm2015/controls/upload/upload.module.ngfactory.js +7 -7
- package/esm2015/controls/upload/upload.ngfactory.js +7 -7
- package/esm2015/controls/upload/upload.scss.ngstyle.js +7 -7
- package/esm2015/controls/upload/upload.scss.shim.ngstyle.js +7 -7
- package/esm2015/controls/upload/uploadmultiple.js +47 -47
- package/esm2015/controls/upload/uploadmultiple.ngfactory.js +7 -7
- package/esm2015/controls/validation/validationsummary.js +37 -37
- package/esm2015/controls/validation/validationsummary.module.js +15 -15
- package/esm2015/controls/validation/validationsummary.module.ngfactory.js +7 -7
- package/esm2015/controls/validation/validationsummary.ngfactory.js +7 -7
- package/esm2015/controls/wizard/wizard.js +30 -30
- package/esm2015/controls/wizard/wizard.module.js +15 -15
- package/esm2015/controls/wizard/wizard.module.ngfactory.js +7 -7
- package/esm2015/controls/wizard/wizard.ngfactory.js +7 -7
- package/esm2015/controls/wizard/wizarditem.js +14 -14
- package/esm2015/controls/wizard/wizarditem.ngfactory.js +7 -7
- package/esm2015/public-api.js +82 -82
- package/esm2015/public-api.ngfactory.js +7 -7
- package/esm2015/simpleangularcontrols-sac-bootstrap5.js +10 -10
- package/esm2015/simpleangularcontrols-sac-bootstrap5.ngfactory.js +7 -7
- package/fesm2015/simpleangularcontrols-sac-bootstrap5.js +2596 -2596
- package/fesm2015/simpleangularcontrols-sac-bootstrap5.js.map +1 -1
- package/package.json +31 -31
- package/public-api.d.ts +76 -76
- package/public-api.d.ts.map +1 -1
- package/public-api.ngfactory.d.ts +1 -1
- package/public-api.ngfactory.d.ts.map +1 -1
- package/simpleangularcontrols-sac-bootstrap5-10.0.0-rc.22.tgz +0 -0
- package/simpleangularcontrols-sac-bootstrap5.d.ts +9 -9
- package/simpleangularcontrols-sac-bootstrap5.d.ts.map +1 -1
- package/simpleangularcontrols-sac-bootstrap5.metadata.json +1 -1
- package/simpleangularcontrols-sac-bootstrap5.ngfactory.d.ts +1 -1
- package/simpleangularcontrols-sac-bootstrap5.ngfactory.d.ts.map +1 -1
- package/simpleangularcontrols-sac-bootstrap5-10.0.0-rc.20.tgz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
-
*
|
|
4
|
-
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
-
* tslint:disable
|
|
6
|
-
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC91cGxvYWQubW9kdWxlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL3VwbG9hZC5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCAqIGFzIGkzIGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIGk0IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgKiBhcyBpNSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi91cGxvYWQnO1xuaW1wb3J0ICogYXMgaTcgZnJvbSAnLi91cGxvYWRtdWx0aXBsZSc7XG5pbXBvcnQgKiBhcyBpOCBmcm9tICcuL2Ryb3B6b25lc2luZ2xlJztcbmltcG9ydCAqIGFzIGk5IGZyb20gJy4vZHJvcHpvbmVtdWx0aXBsZSc7XG5pbXBvcnQgKiBhcyBpMTAgZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMSBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9sd2lkdGhjc3MucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTIgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWxoZWlnaHQucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTMgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxNCBmcm9tICcuLi9sYXlvdXQvbGF5b3V0Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTUgZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5leHBvcnQgY29uc3QgU0FDQm9vdHN0cmFwNVVwbG9hZE1vZHVsZU5nRmFjdG9yeTppMC5OZ01vZHVsZUZhY3Rvcnk8aTEuU0FDQm9vdHN0cmFwNVVwbG9hZE1vZHVsZT4gPSAobnVsbCBhcyBhbnkpO1xudmFyIF9kZWNsMF8wOmkyLk5nQ2xhc3MgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTppMi5OZ0NvbXBvbmVudE91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOmkyLk5nRm9yT2Y8YW55LGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzppMi5OZ0lmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDppMi5OZ1RlbXBsYXRlT3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU6aTIuTmdTdHlsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82OmkyLk5nU3dpdGNoID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzc6aTIuTmdTd2l0Y2hDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzg6aTIuTmdTd2l0Y2hEZWZhdWx0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzk6aTIuTmdQbHVyYWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTA6aTIuTmdQbHVyYWxDYXNlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzExOmkzLsm1YW5ndWxhcl9wYWNrYWdlc19mb3Jtc19mb3Jtc195ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmkzLk5nU2VsZWN0T3B0aW9uID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzOmkzLsm1YW5ndWxhcl9wYWNrYWdlc19mb3Jtc19mb3Jtc194ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE0OmkzLkRlZmF1bHRWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1OmkzLk51bWJlclZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY6aTMuUmFuZ2VWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3OmkzLkNoZWNrYm94Q29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTMuU2VsZWN0Q29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTk6aTMuU2VsZWN0TXVsdGlwbGVDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMDppMy5SYWRpb0NvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIxOmkzLk5nQ29udHJvbFN0YXR1cyA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMjppMy5OZ0NvbnRyb2xTdGF0dXNHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMzppMy5SZXF1aXJlZFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNDppMy5NaW5MZW5ndGhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjU6aTMuTWF4TGVuZ3RoVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI2OmkzLlBhdHRlcm5WYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjc6aTMuQ2hlY2tib3hSZXF1aXJlZFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yODppMy5FbWFpbFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOTppMy5OZ01vZGVsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMwOmkzLk5nTW9kZWxHcm91cCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMTppMy5OZ0Zvcm0gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzI6aTQuU2FjRm9ybUxheW91dERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMzppNS5TYWNUb29sdGlwQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM0Omk2LlNhY1VwbG9hZENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNTppNy5TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNjppOC5TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNzppOS5TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM4OmkyLkFzeW5jUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOTppMi5VcHBlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQwOmkyLkxvd2VyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDE6aTIuSnNvblBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDI6aTIuU2xpY2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQzOmkyLkRlY2ltYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ0OmkyLlBlcmNlbnRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ1OmkyLlRpdGxlQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDY6aTIuQ3VycmVuY3lQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ3OmkyLkRhdGVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ4OmkyLkkxOG5QbHVyYWxQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ5OmkyLkkxOG5TZWxlY3RQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUwOmkyLktleVZhbHVlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MTppMTAuU2FjVG9Db250cm9sSGVpZ2h0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81MjppMTEuU2FjVG9Db250cm9sV2lkdGhDc3NQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUzOmkxMi5TYWNUb0xhYmVsSGVpZ2h0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NDppMTMuU2FjVG9MYWJlbFdpZHRoQ3NzUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NTppMi5Db21tb25Nb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTY6aTMuRm9ybXNNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTc6aTE0LlNBQ0Jvb3RzdHJhcDVMYXlvdXRNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTg6aTE1LlNBQ0Jvb3RzdHJhcDVUb29sdGlwTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU5OmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjA6aTAuRWxlbWVudFJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfSG9zdF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNC5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM0LmlzQWRhcHRpdmVMYWJlbCkgJiYgKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM0LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICdtcy0xJztcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNC5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMztcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNC5pc0FkYXB0aXZlTGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2NvbC0xMiBjb2wtZm9ybS1sYWJlbCBkLWZsZXgnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTQudHJhbnNmb3JtKF9kZWNsMF8zNC5sYWJlbFNpemVzKTogJ3Zpc3VhbGx5LWhpZGRlbicpLFxuICAgICAgICBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zNC5jb21wb25lbnRIZWlnaHQpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzQubmFtZSwnX2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM0Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM0LmlzcmVxdWlyZWQ7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzQuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzM0LmxhYmVsO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF83O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV8zKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzQuYXV0b3VwbG9hZCA9PT0gZmFsc2UpICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgfHwgKChfZGVjbDBfMzQuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpICYmIChfZGVjbDBfMzQuSXNQYXVzZWQoKSA9PT0gZmFsc2UpKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zNC5Jc1VwbG9hZGluZygpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKChfZGVjbDBfMzQuSXNVcGxvYWRpbmcoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zNC5JY29uUGF1c2U7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IHBkXzU6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC5wYXVzZUFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV80KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgX2RlY2wwXzM0LklzUGF1c2VkKCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gIShfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM0Lkljb25Db250aW51ZTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgcGRfMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM0LnVwbG9hZEFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV81KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM0LmF1dG91cGxvYWQgPT09IGZhbHNlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM0LklzU3RhdGVUb1VwbG9hZCgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKChfZGVjbDBfMzQuSXNTdGF0ZVRvVXBsb2FkKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzQuSWNvblVwbG9hZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM0LmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzM0LnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvblVwbG9hZCkpO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBwZF82OmFueSA9ICgoPGFueT5fZGVjbDBfMzQudXBsb2FkQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzYoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM0LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNC5pbnZhbGlkKSAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNC5HZXRFcnJvck1lc3NhZ2UoKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV83KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNC5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzgoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzQuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdmb3JtLWNvbnRyb2wtcGxhaW50ZXh0IGFsaWduLXNlbGYtdG9wIG1zLTIgbWUtMSB3LWF1dG8nO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gW19kZWNsMF81MS50cmFuc2Zvcm0oX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM0LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9ICdtbC0xJztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNC5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNC5uYW1lLCcnKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzM0LmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNC5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAnY29sLTEyJztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gWygoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNC5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKCgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpICYmIF9kZWNsMF8zNC5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCkgJiYgX2RlY2wwXzM0LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IChfZGVjbDBfMzQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzQuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IChfZGVjbDBfMzQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzQuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9ICgoX2RlY2wwXzM0LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNC5pbnZhbGlkKSAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSBfZGVjbDBfMzQuSGFzUXVldWVJdGVtKCk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gIShfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgY3VyclZhbF8xMzphbnkgPSBfZGVjbDBfMzQuSWNvbkJyb3dzZTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNC5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKF9kZWNsMF8zNC52YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25Ccm93c2UpKTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM0Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IF9kZWNsMF8zNC5IYXNRdWV1ZUl0ZW0oKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSAnZm9ybS1jb250cm9sIHVwbG9hZC1wcm9ncmVzcyc7XG4gIGN1cnJWYWxfMTc7XG4gIGNvbnN0IGN1cnJWYWxfMTg6YW55ID0gW19kZWNsMF81MS50cmFuc2Zvcm0oX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCldO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTk7XG4gIGNvbnN0IGN1cnJWYWxfMjA6YW55ID0gKF9kZWNsMF8zNC5Qcm9ncmVzcygpID09PSAxMDApO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9IF9kZWNsMF8zNC5Qcm9ncmVzcygpO1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9IF9kZWNsMF8zNC5Qcm9ncmVzcygpO1xuICBjdXJyVmFsXzIyO1xuICBjb25zdCBjdXJyVmFsXzIzOmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM0LkZpbGVuYW1lKCkpO1xuICBjdXJyVmFsXzIzO1xuICBjb25zdCBjdXJyVmFsXzI0OmFueSA9ICgoX2RlY2wwXzM0Lkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICBjdXJyVmFsXzI0O1xuICBjb25zdCBjdXJyVmFsXzI1OmFueSA9ICgoX2RlY2wwXzM0Lkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICBjdXJyVmFsXzI1O1xuICBjb25zdCBjdXJyVmFsXzI2OmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzI2O1xuICBjb25zdCBjdXJyVmFsXzI3OmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjc7XG4gIGNvbnN0IGN1cnJWYWxfMjg6YW55ID0gX2RlY2wwXzM0Lkljb25EZWxldGU7XG4gIGN1cnJWYWxfMjg7XG4gIGNvbnN0IGN1cnJWYWxfMjk6YW55ID0gKCgoX2RlY2wwXzM0LmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzQuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzM0LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM0LklzUGF1c2VkKCkgPT09IGZhbHNlKSkpO1xuICBjdXJyVmFsXzI5O1xuICBjb25zdCBjdXJyVmFsXzMwOmFueSA9ICgoX2RlY2wwXzM0LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSAmJiBfZGVjbDBfMzQuSXNQYXVzZWQoKSk7XG4gIGN1cnJWYWxfMzA7XG4gIGNvbnN0IGN1cnJWYWxfMzE6YW55ID0gKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSk7XG4gIGN1cnJWYWxfMzE7XG4gIGNvbnN0IGN1cnJWYWxfMzI6YW55ID0gKChfZGVjbDBfMzQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM0LmludmFsaWQpICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8zMjtcbiAgY29uc3QgY3VyclZhbF8zMzphbnkgPSAoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8zMztcbiAgY29uc3QgY3VyclZhbF8zNDphbnkgPSAoKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCkgJiYgX2RlY2wwXzM0LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMzQ7XG4gIGNvbnN0IHBkXzM1OmFueSA9ICgoPGFueT4oX2FueS52YWx1ZSA9ICcnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzY6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC5vblVwbG9hZChfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzc6YW55ID0gKCg8YW55Pl9kZWNsMF8zNC5jYW5jZWxBbGwoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50X0hvc3RfMl8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNS5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM1LmlzQWRhcHRpdmVMYWJlbCkgJiYgKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM1LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICdtcy0xJztcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNS5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMztcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl8xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM1LmlzQWRhcHRpdmVMYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnY29sLTEyIGNvbC1mb3JtLWxhYmVsIGQtZmxleCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMzUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzM1LmxhYmVsU2l6ZXMpOiAndmlzdWFsbHktaGlkZGVuJyksXG4gICAgICAgIF9kZWNsMF81My50cmFuc2Zvcm0oX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNS5uYW1lLCdfbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzUubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzUuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNS5zcGxpdGxhYmVsYW5kaGVscHRleHQ7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMzUubGFiZWw7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzc7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMygpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM1LklzUGF1c2VkKCkgPT09IGZhbHNlKSkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzUuSXNVcGxvYWRpbmcoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNS5JY29uUGF1c2U7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IHBkXzQ6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS5wYXVzZUFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzQoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM1LklzUGF1c2VkKCkgPT09IHRydWUpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNS5JY29uQ29udGludWU7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS51cGxvYWRBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl81KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM1LklzU3RhdGVUb1VwbG9hZCgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM1Lkljb25VcGxvYWQ7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNS5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKF9kZWNsMF8zNS52YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25VcGxvYWQpKTtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgcGRfNTphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LnVwbG9hZEFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzYoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzUuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdmb3JtLWNvbnRyb2wtcGxhaW50ZXh0IGFsaWduLXNlbGYtdG9wIG1zLTIgbWUtMSB3LWF1dG8nO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gW19kZWNsMF81MS50cmFuc2Zvcm0oX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM1LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9ICdtbC0xJztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNS5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl83KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzUuaW52YWxpZCkgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzUuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl84KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNS5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMTAoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzICE9PSAncGF1c2VkJykpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2FueS5zdGF0dXMgIT09ICd1cGxvYWRpbmcnKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzUuSWNvblBhdXNlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBwZF80OmFueSA9ICgoPGFueT5fZGVjbDBfMzUucGF1c2UoX2FueS51cGxvYWRJZCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMTEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2FueS5zdGF0dXMgPT09ICdwYXVzZWQnKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzUuSWNvbkNvbnRpbnVlO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMzUudXBsb2FkKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzEyKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoKF9hbnkuc3RhdHVzICE9PSAnYWRkZWQnKSAmJiAoX2FueS5zdGF0dXMgIT09ICdwYXVzZWQnKSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM1Lkljb25VcGxvYWQ7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNS5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKF9kZWNsMF8zNS52YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25VcGxvYWQpKTtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgcGRfNTphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LnVwbG9hZChfYW55LnVwbG9hZElkKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl85KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2FueS5wcm9ncmVzcyA9PT0gMTAwKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2FueS5uYW1lO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzM1Lkljb25EZWxldGU7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAoKChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgfHwgKChfZGVjbDBfMzUuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpICYmIChfYW55LnN0YXR1cyAhPT0gJ3BhdXNlZCcpKSk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gKChfZGVjbDBfMzUuYXV0b3VwbG9hZCAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpICYmIChfYW55LnN0YXR1cyA9PT0gJ3BhdXNlZCcpKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKTtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgcGRfMTM6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS5jYW5jZWwoX2FueS51cGxvYWRJZCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzUubmFtZSwnJyk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zNS5kaXNhYmxlbGFiZWw7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9ICgoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzUuaXNBZGFwdGl2ZUxhYmVsKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gJ2NvbC0xMic7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IFsoKF9kZWNsMF8zNS5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzUyLnRyYW5zZm9ybShfZGVjbDBfMzUubGFiZWxTaXplcyk6ICcnKV07XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9ICgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzUuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKChfZGVjbDBfMzUuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM1LmludmFsaWQpICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNS5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNS5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKChfZGVjbDBfMzUuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM1LmludmFsaWQpICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICgoX2RlY2wwXzM1Lm1heGZpbGVzID4gMCkgJiYgKF9kZWNsMF8zNS51cGxvYWRzLmxlbmd0aCA+PSBfZGVjbDBfMzUubWF4ZmlsZXMpKTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IF9kZWNsMF8zNS5JY29uQnJvd3NlO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzUubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gKChfZGVjbDBfMzUubWF4ZmlsZXMgPiAwKSAmJiAoX2RlY2wwXzM1LnVwbG9hZHMubGVuZ3RoID49IF9kZWNsMF8zNS5tYXhmaWxlcykpO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfMTY7XG4gIGNvbnN0IGN1cnJWYWxfMTc6YW55ID0gKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNS5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgY3VyclZhbF8xNztcbiAgY29uc3QgY3VyclZhbF8xODphbnkgPSAoKF9kZWNsMF8zNS5IYXNRdWV1ZUl0ZW0oKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgY3VyclZhbF8xODtcbiAgY29uc3QgY3VyclZhbF8xOTphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xOTtcbiAgY29uc3QgY3VyclZhbF8yMDphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9IF9kZWNsMF8zNS5JY29uRGVsZXRlO1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9ICgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNS5Jc1BhdXNlZCgpID09PSBmYWxzZSkpKTtcbiAgY3VyclZhbF8yMjtcbiAgY29uc3QgY3VyclZhbF8yMzphbnkgPSAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNS5Jc1BhdXNlZCgpID09PSB0cnVlKSk7XG4gIGN1cnJWYWxfMjM7XG4gIGNvbnN0IGN1cnJWYWxfMjQ6YW55ID0gKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSk7XG4gIGN1cnJWYWxfMjQ7XG4gIGNvbnN0IGN1cnJWYWxfMjU6YW55ID0gKCgoX2RlY2wwXzM1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzUuaGVscHRleHQpICYmIF9kZWNsMF8zNS5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzI1O1xuICBjb25zdCBjdXJyVmFsXzI2OmFueSA9ICgoX2RlY2wwXzM1LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNS5pbnZhbGlkKSAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjY7XG4gIGNvbnN0IGN1cnJWYWxfMjc6YW55ID0gKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMjc7XG4gIGNvbnN0IGN1cnJWYWxfMjg6YW55ID0gX2RlY2wwXzM1LnVwbG9hZHM7XG4gIGN1cnJWYWxfMjg7XG4gIGNvbnN0IHBkXzI5OmFueSA9ICgoPGFueT4oX2FueS52YWx1ZSA9ICcnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzA6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS5vblVwbG9hZChfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMzE6YW55ID0gKCg8YW55Pl9kZWNsMF8zNS5jYW5jZWxBbGwoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50X0hvc3RfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM2LmlzQWRhcHRpdmVMYWJlbCkgJiYgKChfZGVjbDBfMzYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNi5oZWxwdGV4dCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM2LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICdtcy0xJztcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8zNi5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMztcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM18xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM2LmlzQWRhcHRpdmVMYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnY29sLTEyIGNvbC1mb3JtLWxhYmVsIGQtZmxleCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMzYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzM2LmxhYmVsU2l6ZXMpOiAndmlzdWFsbHktaGlkZGVuJyksXG4gICAgICAgIF9kZWNsMF81My50cmFuc2Zvcm0oX2RlY2wwXzM2LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNi5uYW1lLCdfbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzYubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzYuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNi5zcGxpdGxhYmVsYW5kaGVscHRleHQ7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMzYubGFiZWw7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzc7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfMygpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNi51cGxvYWRzLmxlbmd0aCA9PT0gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zNi5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzYuaW52YWxpZCkgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM181KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM2LnVwbG9hZHMubGVuZ3RoID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzM2LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM2LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8zNi5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNi5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfYW55LnByb2dyZXNzID09PSAxMDApO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9hbnkucHJvZ3Jlc3M7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfYW55Lm5hbWU7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAhKF9kZWNsMF8zNi5pbnZhbGlkICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzY7XG4gICAgY29uc3QgY3VyclZhbF83OmFueSA9IChfZGVjbDBfMzYuaW52YWxpZCAmJiAoX2RlY2wwXzM2LmRpcnR5IHx8IF9kZWNsMF8zNi50b3VjaGVkKSk7XG4gICAgY3VyclZhbF83O1xuICAgIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfMzYuSWNvbkRlbGV0ZTtcbiAgICBjdXJyVmFsXzg7XG4gICAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2RlY2wwXzM2LmNhbmNlbChfYW55LnVwbG9hZElkKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM180KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM2LnVwbG9hZHMubGVuZ3RoID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzYudXBsb2FkcztcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfNigpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzYuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM2LmludmFsaWQpICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM2LkdldEVycm9yTWVzc2FnZSgpKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfNygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzYuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNi5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzYuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzgoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzYuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdmb3JtLWNvbnRyb2wtcGxhaW50ZXh0IGFsaWduLXNlbGYtdG9wIG1zLTIgbWUtMSB3LWF1dG8nO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gW19kZWNsMF81MS50cmFuc2Zvcm0oX2RlY2wwXzM2LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM2LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9ICdtbC0xJztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNi5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM2Lm5hbWUsJycpO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMzYuZGlzYWJsZWxhYmVsO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM2LmlzQWRhcHRpdmVMYWJlbCk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9ICdjb2wtMTInO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBbKChfZGVjbDBfMzYuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81Mi50cmFuc2Zvcm0oX2RlY2wwXzM2LmxhYmVsU2l6ZXMpOiAnJyldO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAoKChfZGVjbDBfMzYuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNi5oZWxwdGV4dCkgJiYgX2RlY2wwXzM2LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9ICgoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzYuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzM2LnVwbG9hZGhlaWdodDtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzM2LmFjdGl2ZTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gKF9kZWNsMF8zNi5pbnZhbGlkICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPT09IDApO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9IChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPiAwKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM2Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IF9kZWNsMF8zNi5IYXNRdWV1ZUl0ZW0oKTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSAoKF9kZWNsMF8zNi5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzYuaW52YWxpZCkgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9ICgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9ICgoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzYuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgcGRfMTc6YW55ID0gKCg8YW55Pl9kZWNsMF8zNi5kcm9wSGFuZGxlcihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTg6YW55ID0gKCg8YW55Pl9kZWNsMF8zNi5vbkRyYWdPdmVyKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xOTphbnkgPSAoKDxhbnk+X2RlY2wwXzM2Lm9uRHJhZ0xlYXZlKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMDphbnkgPSAoKDxhbnk+KF9hbnkudmFsdWUgPSAnJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIxOmFueSA9ICgoPGFueT5fZGVjbDBfMzYub25VcGxvYWQoX2FueSkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50X0hvc3RfNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzcuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzcuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ21zLTEnO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM3LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8zO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNy5pc0FkYXB0aXZlTGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2NvbC0xMiBjb2wtZm9ybS1sYWJlbCBkLWZsZXgnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzM3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTQudHJhbnNmb3JtKF9kZWNsMF8zNy5sYWJlbFNpemVzKTogJ3Zpc3VhbGx5LWhpZGRlbicpLFxuICAgICAgICBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zNy5jb21wb25lbnRIZWlnaHQpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzcubmFtZSwnX2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM3Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM3LmlzcmVxdWlyZWQ7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzcuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzM3LmxhYmVsO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF83O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfMygpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNy51cGxvYWRzLmxlbmd0aCA9PT0gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zNy5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzcuaW52YWxpZCkgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzUoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzcudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfYW55ID4gMCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM3LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM3LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNy5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNy5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfYW55LnByb2dyZXNzID09PSAxMDApO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9hbnkucHJvZ3Jlc3M7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfYW55Lm5hbWU7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAhKF9kZWNsMF8zNy5pbnZhbGlkICYmIChfZGVjbDBfMzcuZGlydHkgfHwgX2RlY2wwXzM3LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9IChfZGVjbDBfMzcuaW52YWxpZCAmJiAoX2RlY2wwXzM3LmRpcnR5IHx8IF9kZWNsMF8zNy50b3VjaGVkKSk7XG4gICAgY3VyclZhbF84O1xuICAgIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBfZGVjbDBfMzcuSWNvbkRlbGV0ZTtcbiAgICBjdXJyVmFsXzk7XG4gICAgY29uc3QgcGRfMTA6YW55ID0gKCg8YW55Pl9kZWNsMF8zNy5jYW5jZWwoX2FueS51cGxvYWRJZCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF80KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM3LnVwbG9hZHMubGVuZ3RoID4gMCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzcudXBsb2FkcztcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF82KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNy5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzcuaW52YWxpZCkgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzcuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzcoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM3LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzgoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzcuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdmb3JtLWNvbnRyb2wtcGxhaW50ZXh0IGFsaWduLXNlbGYtdG9wIG1zLTIgbWUtMSB3LWF1dG8nO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gW19kZWNsMF81MS50cmFuc2Zvcm0oX2RlY2wwXzM3LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM3LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9ICdtbC0xJztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNy5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzcubmFtZSwnJyk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zNy5kaXNhYmxlbGFiZWw7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9ICgoX2RlY2wwXzM3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzcuaXNBZGFwdGl2ZUxhYmVsKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gJ2NvbC0xMic7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IFsoKF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzUyLnRyYW5zZm9ybShfZGVjbDBfMzcubGFiZWxTaXplcyk6ICcnKV07XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9ICgoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzcuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKCgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpICYmIF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMzcuYWN0aXZlO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfMzcudXBsb2FkaGVpZ2h0O1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoX2RlY2wwXzM3LmludmFsaWQgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gKF9kZWNsMF8zNy51cGxvYWRzLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gKF9kZWNsMF8zNy51cGxvYWRzLmxlbmd0aCA+IDApO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzcubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzM3Lkhhc1F1ZXVlSXRlbSgpO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9ICgoX2RlY2wwXzM3LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNy5pbnZhbGlkKSAmJiAoX2RlY2wwXzM3LmRpcnR5IHx8IF9kZWNsMF8zNy50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gKCgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpICYmIF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBwZF8xNzphbnkgPSAoKDxhbnk+X2RlY2wwXzM3LmRyb3BIYW5kbGVyKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xODphbnkgPSAoKDxhbnk+X2RlY2wwXzM3Lm9uRHJhZ092ZXIoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE5OmFueSA9ICgoPGFueT5fZGVjbDBfMzcub25EcmFnTGVhdmUoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIwOmFueSA9ICgoPGFueT4oX2FueS52YWx1ZSA9ICcnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjE6YW55ID0gKCg8YW55Pl9kZWNsMF8zNy5vblVwbG9hZChfYW55KSkgIT09IGZhbHNlKTtcbn1cbiJdfQ==
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
+
*
|
|
4
|
+
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
+
* tslint:disable
|
|
6
|
+
*/
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL3VwbG9hZC5tb2R1bGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGkxIGZyb20gJy4vdXBsb2FkLm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMiBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgaTQgZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIGk1IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcCc7XG5pbXBvcnQgKiBhcyBpNiBmcm9tICcuL3VwbG9hZCc7XG5pbXBvcnQgKiBhcyBpNyBmcm9tICcuL3VwbG9hZG11bHRpcGxlJztcbmltcG9ydCAqIGFzIGk4IGZyb20gJy4vZHJvcHpvbmVzaW5nbGUnO1xuaW1wb3J0ICogYXMgaTkgZnJvbSAnLi9kcm9wem9uZW11bHRpcGxlJztcbmltcG9ydCAqIGFzIGkxMCBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9saGVpZ2h0LnBpcGUnO1xuaW1wb3J0ICogYXMgaTExIGZyb20gJy4uL2xheW91dC90b2NvbnRyb2x3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxMiBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMyBmcm9tICcuLi9sYXlvdXQvdG9sYWJlbHdpZHRoY3NzLnBpcGUnO1xuaW1wb3J0ICogYXMgaTE0IGZyb20gJy4uL2xheW91dC9sYXlvdXQubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxNSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmV4cG9ydCBjb25zdCBTQUNCb290c3RyYXA1VXBsb2FkTW9kdWxlTmdGYWN0b3J5OmkwLk5nTW9kdWxlRmFjdG9yeTxpMS5TQUNCb290c3RyYXA1VXBsb2FkTW9kdWxlPiA9IChudWxsIGFzIGFueSk7XG52YXIgX2RlY2wwXzA6aTIuTmdDbGFzcyA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOmkyLk5nQ29tcG9uZW50T3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI6aTIuTmdGb3JPZjxhbnksYW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOmkyLk5nSWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80OmkyLk5nVGVtcGxhdGVPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTppMi5OZ1N0eWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY6aTIuTmdTd2l0Y2ggPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzppMi5OZ1N3aXRjaENhc2UgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODppMi5OZ1N3aXRjaERlZmF1bHQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTppMi5OZ1BsdXJhbCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDppMi5OZ1BsdXJhbENhc2UgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE6aTMuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX3kgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTI6aTMuTmdTZWxlY3RPcHRpb24gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTMuybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX3ggPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTQ6aTMuRGVmYXVsdFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTMuTnVtYmVyVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNjppMy5SYW5nZVZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTc6aTMuQ2hlY2tib3hDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xODppMy5TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOTppMy5TZWxlY3RNdWx0aXBsZUNvbnRyb2xWYWx1ZUFjY2Vzc29yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIwOmkzLlJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjE6aTMuTmdDb250cm9sU3RhdHVzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIyOmkzLk5nQ29udHJvbFN0YXR1c0dyb3VwID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIzOmkzLlJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI0OmkzLk1pbkxlbmd0aFZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppMy5NYXhMZW5ndGhWYWxpZGF0b3IgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjY6aTMuUGF0dGVyblZhbGlkYXRvciA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNzppMy5DaGVja2JveFJlcXVpcmVkVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI4OmkzLkVtYWlsVmFsaWRhdG9yID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI5OmkzLk5nTW9kZWwgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzA6aTMuTmdNb2RlbEdyb3VwID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMxOmkzLk5nRm9ybSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMjppNC5TYWNGb3JtTGF5b3V0RGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMzOmk1LlNhY1Rvb2x0aXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzQ6aTYuU2FjVXBsb2FkQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM1Omk3LlNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM2Omk4LlNhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM3Omk5LlNhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzg6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM5OmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDA6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MTppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MjppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDM6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDQ6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDU6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80NjppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDc6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDg6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDk6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTA6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUxOmkxMC5TYWNUb0NvbnRyb2xIZWlnaHRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzUyOmkxMS5TYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTM6aTEyLlNhY1RvTGFiZWxIZWlnaHRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU0OmkxMy5TYWNUb0xhYmVsV2lkdGhDc3NQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU1OmkyLkNvbW1vbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NjppMy5Gb3Jtc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81NzppMTQuU0FDQm9vdHN0cmFwNUxheW91dE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81ODppMTUuU0FDQm9vdHN0cmFwNVRvb2x0aXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTk6aTAuVGVtcGxhdGVSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82MDppMC5FbGVtZW50UmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzQuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzQuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ21zLTEnO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM0LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8zO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV8xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNC5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM0LmlzQWRhcHRpdmVMYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnY29sLTEyIGNvbC1mb3JtLWxhYmVsIGQtZmxleCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMzQuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzM0LmxhYmVsU2l6ZXMpOiAndmlzdWFsbHktaGlkZGVuJyksXG4gICAgICAgIF9kZWNsMF81My50cmFuc2Zvcm0oX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNC5uYW1lLCdfbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzQubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzQuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNC5zcGxpdGxhYmVsYW5kaGVscHRleHQ7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMzQubGFiZWw7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzc7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzMoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNC5Jc1BhdXNlZCgpID09PSBmYWxzZSkpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM0LklzVXBsb2FkaW5nKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoKF9kZWNsMF8zNC5Jc1VwbG9hZGluZygpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gIShfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM0Lkljb25QYXVzZTtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgcGRfNTphbnkgPSAoKDxhbnk+X2RlY2wwXzM0LnBhdXNlQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzQoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM0LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSAmJiBfZGVjbDBfMzQuSXNQYXVzZWQoKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzQuSWNvbkNvbnRpbnVlO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMzQudXBsb2FkQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzUoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzQuYXV0b3VwbG9hZCA9PT0gZmFsc2UpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMzQuSXNTdGF0ZVRvVXBsb2FkKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoKF9kZWNsMF8zNC5Jc1N0YXRlVG9VcGxvYWQoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9ICdwZS0yJztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNC5JY29uVXBsb2FkO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKF9kZWNsMF8zNC5idXR0b251cGxvYWQ/IF9kZWNsMF8zNC5idXR0b251cGxvYWQ6IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM0LmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzM0LnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvblVwbG9hZCkpKTtcbiAgICBjdXJyVmFsXzY7XG4gICAgY29uc3QgcGRfNzphbnkgPSAoKDxhbnk+X2RlY2wwXzM0LnVwbG9hZEFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV82KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNC5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzQuaW52YWxpZCkgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzQuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkQ29tcG9uZW50XzFfNygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzQuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRDb21wb25lbnRfMV84KCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCkgJiYgX2RlY2wwXzM0LmRpc2FibGVsYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnZm9ybS1jb250cm9sLXBsYWludGV4dCBhbGlnbi1zZWxmLXRvcCBtcy0yIG1lLTEgdy1hdXRvJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IFtfZGVjbDBfNTEudHJhbnNmb3JtKF9kZWNsMF8zNC5jb21wb25lbnRIZWlnaHQpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8zNC5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAnbWwtMSc7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzQuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzU7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZENvbXBvbmVudF8xXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzQubmFtZSwnJyk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zNC5kaXNhYmxlbGFiZWw7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9ICgoX2RlY2wwXzM0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzQuaXNBZGFwdGl2ZUxhYmVsKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gJ2NvbC0xMic7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IFsoKF9kZWNsMF8zNC5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzUyLnRyYW5zZm9ybShfZGVjbDBfMzQubGFiZWxTaXplcyk6ICcnKV07XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9ICgoKF9kZWNsMF8zNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzQuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKCgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpICYmIF9kZWNsMF8zNC5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM0LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoX2RlY2wwXzM0LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM0LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoKF9kZWNsMF8zNC5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzQuaW52YWxpZCkgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gX2RlY2wwXzM0Lkhhc1F1ZXVlSXRlbSgpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICEoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IChfZGVjbDBfMzQuaW52YWxpZCAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gJ3BlLTInO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IF9kZWNsMF8zNC5JY29uQnJvd3NlO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IChfZGVjbDBfMzQuYnV0dG9uYnJvd3NlPyBfZGVjbDBfMzQuYnV0dG9uYnJvd3NlOiBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNC5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKF9kZWNsMF8zNC52YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25Ccm93c2UpKSk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNC5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSBfZGVjbDBfMzQuSGFzUXVldWVJdGVtKCk7XG4gIGN1cnJWYWxfMTc7XG4gIGNvbnN0IGN1cnJWYWxfMTg6YW55ID0gJ2Zvcm0tY29udHJvbCB1cGxvYWQtcHJvZ3Jlc3MnO1xuICBjdXJyVmFsXzE4O1xuICBjb25zdCBjdXJyVmFsXzE5OmFueSA9IFtfZGVjbDBfNTEudHJhbnNmb3JtKF9kZWNsMF8zNC5jb21wb25lbnRIZWlnaHQpXTtcbiAgY3VyclZhbF8xOTtcbiAgY29uc3QgY3VyclZhbF8yMDphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9IChfZGVjbDBfMzQuUHJvZ3Jlc3MoKSA9PT0gMTAwKTtcbiAgY3VyclZhbF8yMTtcbiAgY29uc3QgY3VyclZhbF8yMjphbnkgPSBfZGVjbDBfMzQuUHJvZ3Jlc3MoKTtcbiAgY3VyclZhbF8yMjtcbiAgY29uc3QgY3VyclZhbF8yMzphbnkgPSBfZGVjbDBfMzQuUHJvZ3Jlc3MoKTtcbiAgY3VyclZhbF8yMztcbiAgY29uc3QgY3VyclZhbF8yNDphbnkgPSBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNC5GaWxlbmFtZSgpKTtcbiAgY3VyclZhbF8yNDtcbiAgY29uc3QgY3VyclZhbF8yNTphbnkgPSAoKF9kZWNsMF8zNC5IYXNRdWV1ZUl0ZW0oKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgY3VyclZhbF8yNTtcbiAgY29uc3QgY3VyclZhbF8yNjphbnkgPSAoKF9kZWNsMF8zNC5IYXNRdWV1ZUl0ZW0oKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgY3VyclZhbF8yNjtcbiAgY29uc3QgY3VyclZhbF8yNzphbnkgPSAhKF9kZWNsMF8zNC5pbnZhbGlkICYmIChfZGVjbDBfMzQuZGlydHkgfHwgX2RlY2wwXzM0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yNztcbiAgY29uc3QgY3VyclZhbF8yODphbnkgPSAoX2RlY2wwXzM0LmludmFsaWQgJiYgKF9kZWNsMF8zNC5kaXJ0eSB8fCBfZGVjbDBfMzQudG91Y2hlZCkpO1xuICBjdXJyVmFsXzI4O1xuICBjb25zdCBjdXJyVmFsXzI5OmFueSA9IF9kZWNsMF8zNC5JY29uRGVsZXRlO1xuICBjdXJyVmFsXzI5O1xuICBjb25zdCBjdXJyVmFsXzMwOmFueSA9ICgoKF9kZWNsMF8zNC5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM0LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNC5Jc1BhdXNlZCgpID09PSBmYWxzZSkpKTtcbiAgY3VyclZhbF8zMDtcbiAgY29uc3QgY3VyclZhbF8zMTphbnkgPSAoKF9kZWNsMF8zNC5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNC5lbmFibGVwYXVzZSkgJiYgX2RlY2wwXzM0LklzUGF1c2VkKCkpO1xuICBjdXJyVmFsXzMxO1xuICBjb25zdCBjdXJyVmFsXzMyOmFueSA9IChfZGVjbDBfMzQuYXV0b3VwbG9hZCA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzMyO1xuICBjb25zdCBjdXJyVmFsXzMzOmFueSA9ICgoX2RlY2wwXzM0LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNC5pbnZhbGlkKSAmJiAoX2RlY2wwXzM0LmRpcnR5IHx8IF9kZWNsMF8zNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMzM7XG4gIGNvbnN0IGN1cnJWYWxfMzQ6YW55ID0gKChfZGVjbDBfMzQuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNC5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMzQ7XG4gIGNvbnN0IGN1cnJWYWxfMzU6YW55ID0gKCgoX2RlY2wwXzM0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzQuaGVscHRleHQpICYmIF9kZWNsMF8zNC5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzM1O1xuICBjb25zdCBwZF8zNjphbnkgPSAoKDxhbnk+KF9hbnkudmFsdWUgPSAnJykpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzM3OmFueSA9ICgoPGFueT5fZGVjbDBfMzQub25VcGxvYWQoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzM4OmFueSA9ICgoPGFueT5fZGVjbDBfMzQuY2FuY2VsQWxsKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF9Ib3N0XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl8yKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNS5pc0FkYXB0aXZlTGFiZWwpICYmICgoX2RlY2wwXzM1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzUuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNS5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAnbXMtMSc7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzUuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzM7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNS5pc0FkYXB0aXZlTGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2NvbC0xMiBjb2wtZm9ybS1sYWJlbCBkLWZsZXgnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWygoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTQudHJhbnNmb3JtKF9kZWNsMF8zNS5sYWJlbFNpemVzKTogJ3Zpc3VhbGx5LWhpZGRlbicpLFxuICAgICAgICBfZGVjbDBfNTMudHJhbnNmb3JtKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQpXTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzUubmFtZSwnX2xhYmVsJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM1Lm5hbWUsJ191cGxvYWRpbnB1dCcpO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM1LmlzcmVxdWlyZWQ7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMzUuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBjdXJyVmFsXzY6YW55ID0gX2RlY2wwXzM1LmxhYmVsO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCk7XG4gICAgY3VyclZhbF83O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzMoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNS5Jc1BhdXNlZCgpID09PSBmYWxzZSkpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM1LklzVXBsb2FkaW5nKCkgPT09IGZhbHNlKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzUuSWNvblBhdXNlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBwZF80OmFueSA9ICgoPGFueT5fZGVjbDBfMzUucGF1c2VBbGwoKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl80KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9kZWNsMF8zNS5Jc1BhdXNlZCgpID09PSB0cnVlKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzUuSWNvbkNvbnRpbnVlO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMzUudXBsb2FkQWxsKCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfNSgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8zNS5Jc1N0YXRlVG9VcGxvYWQoKSA9PT0gZmFsc2UpPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9ICdwZS0yJztcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zNS5JY29uVXBsb2FkO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKF9kZWNsMF8zNS5idXR0b251cGxvYWQ/IF9kZWNsMF8zNS5idXR0b251cGxvYWQ6IF9kZWNsMF8zOC50cmFuc2Zvcm0oX2RlY2wwXzM1LmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoX2RlY2wwXzM1LnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZEJ1dHRvblVwbG9hZCkpKTtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgcGRfNjphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LnVwbG9hZEFsbCgpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzYoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzUuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdmb3JtLWNvbnRyb2wtcGxhaW50ZXh0IGFsaWduLXNlbGYtdG9wIG1zLTIgbWUtMSB3LWF1dG8nO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gW19kZWNsMF81MS50cmFuc2Zvcm0oX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzM1LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9ICdtbC0xJztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNS5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl83KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzUuaW52YWxpZCkgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzUuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnRfMl84KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNS5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMTAoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzICE9PSAncGF1c2VkJykpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2FueS5zdGF0dXMgIT09ICd1cGxvYWRpbmcnKT8gJ2Rpc2FibGVkJzogbnVsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzUuSWNvblBhdXNlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBwZF80OmFueSA9ICgoPGFueT5fZGVjbDBfMzUucGF1c2UoX2FueS51cGxvYWRJZCkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMTEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2FueS5zdGF0dXMgPT09ICdwYXVzZWQnKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAhKF9kZWNsMF8zNS5pbnZhbGlkICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzUuSWNvbkNvbnRpbnVlO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMzUudXBsb2FkKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzEyKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoKF9hbnkuc3RhdHVzICE9PSAnYWRkZWQnKSAmJiAoX2FueS5zdGF0dXMgIT09ICdwYXVzZWQnKSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gIShfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gJ3BlLTInO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzM1Lkljb25VcGxvYWQ7XG4gICAgY3VyclZhbF80O1xuICAgIGNvbnN0IGN1cnJWYWxfNTphbnkgPSAoX2RlY2wwXzM1LmJ1dHRvbnVwbG9hZD8gX2RlY2wwXzM1LmJ1dHRvbnVwbG9hZDogX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzUubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhfZGVjbDBfMzUudmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkQnV0dG9uVXBsb2FkKSkpO1xuICAgIGN1cnJWYWxfNTtcbiAgICBjb25zdCBwZF82OmFueSA9ICgoPGFueT5fZGVjbDBfMzUudXBsb2FkKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudF8yXzkoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzUuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzUuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfYW55LnByb2dyZXNzID09PSAxMDApO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfYW55LnByb2dyZXNzO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfYW55LnByb2dyZXNzO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfYW55Lm5hbWU7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBfZGVjbDBfMzUuSWNvbkRlbGV0ZTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICgoKF9kZWNsMF8zNS5hdXRvdXBsb2FkID09PSBmYWxzZSkgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSB8fCAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzICE9PSAncGF1c2VkJykpKTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAoKF9kZWNsMF8zNS5hdXRvdXBsb2FkICYmIF9kZWNsMF8zNS5lbmFibGVwYXVzZSkgJiYgKF9hbnkuc3RhdHVzID09PSAncGF1c2VkJykpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IChfZGVjbDBfMzUuYXV0b3VwbG9hZCA9PT0gZmFsc2UpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBwZF8xMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LmNhbmNlbChfYW55LnVwbG9hZElkKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNS5uYW1lLCcnKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzM1LmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKChfZGVjbDBfMzUuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNS5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAnY29sLTEyJztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gWygoX2RlY2wwXzM1LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNS5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKCgoX2RlY2wwXzM1LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzUuaGVscHRleHQpICYmIF9kZWNsMF8zNS5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKF9kZWNsMF8zNS5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzUuaW52YWxpZCkgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoKF9kZWNsMF8zNS5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzUuaW52YWxpZCkgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gKChfZGVjbDBfMzUubWF4ZmlsZXMgPiAwKSAmJiAoX2RlY2wwXzM1LnVwbG9hZHMubGVuZ3RoID49IF9kZWNsMF8zNS5tYXhmaWxlcykpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gJ3BlLTInO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IF9kZWNsMF8zNS5JY29uQnJvd3NlO1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IChfZGVjbDBfMzUuYnV0dG9uYnJvd3NlPyBfZGVjbDBfMzUuYnV0dG9uYnJvd3NlOiBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNS5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKF9kZWNsMF8zNS52YWxpZGF0aW9uS2V5U2VydmljZS5VcGxvYWRCdXR0b25Ccm93c2UpKSk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNS5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSAoKF9kZWNsMF8zNS5tYXhmaWxlcyA+IDApICYmIChfZGVjbDBfMzUudXBsb2Fkcy5sZW5ndGggPj0gX2RlY2wwXzM1Lm1heGZpbGVzKSk7XG4gIGN1cnJWYWxfMTc7XG4gIGNvbnN0IGN1cnJWYWxfMTg6YW55ID0gKF9kZWNsMF8zNS5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8zNS5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF8xODtcbiAgY29uc3QgY3VyclZhbF8xOTphbnkgPSAoX2RlY2wwXzM1LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM1LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9ICgoX2RlY2wwXzM1Lkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSk/ICdkaXNhYmxlZCc6IG51bGwpO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9ICEoX2RlY2wwXzM1LmludmFsaWQgJiYgKF9kZWNsMF8zNS5kaXJ0eSB8fCBfZGVjbDBfMzUudG91Y2hlZCkpO1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9IChfZGVjbDBfMzUuaW52YWxpZCAmJiAoX2RlY2wwXzM1LmRpcnR5IHx8IF9kZWNsMF8zNS50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMjI7XG4gIGNvbnN0IGN1cnJWYWxfMjM6YW55ID0gX2RlY2wwXzM1Lkljb25EZWxldGU7XG4gIGN1cnJWYWxfMjM7XG4gIGNvbnN0IGN1cnJWYWxfMjQ6YW55ID0gKCgoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKSAmJiBfZGVjbDBfMzUuZW5hYmxlcGF1c2UpIHx8ICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM1LklzUGF1c2VkKCkgPT09IGZhbHNlKSkpO1xuICBjdXJyVmFsXzI0O1xuICBjb25zdCBjdXJyVmFsXzI1OmFueSA9ICgoX2RlY2wwXzM1LmF1dG91cGxvYWQgJiYgX2RlY2wwXzM1LmVuYWJsZXBhdXNlKSAmJiAoX2RlY2wwXzM1LklzUGF1c2VkKCkgPT09IHRydWUpKTtcbiAgY3VyclZhbF8yNTtcbiAgY29uc3QgY3VyclZhbF8yNjphbnkgPSAoX2RlY2wwXzM1LmF1dG91cGxvYWQgPT09IGZhbHNlKTtcbiAgY3VyclZhbF8yNjtcbiAgY29uc3QgY3VyclZhbF8yNzphbnkgPSAoKChfZGVjbDBfMzUuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNS5oZWxwdGV4dCkgJiYgX2RlY2wwXzM1LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMjc7XG4gIGNvbnN0IGN1cnJWYWxfMjg6YW55ID0gKChfZGVjbDBfMzUuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM1LmludmFsaWQpICYmIChfZGVjbDBfMzUuZGlydHkgfHwgX2RlY2wwXzM1LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8yODtcbiAgY29uc3QgY3VyclZhbF8yOTphbnkgPSAoKF9kZWNsMF8zNS5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM1LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8yOTtcbiAgY29uc3QgY3VyclZhbF8zMDphbnkgPSBfZGVjbDBfMzUudXBsb2FkcztcbiAgY3VyclZhbF8zMDtcbiAgY29uc3QgcGRfMzE6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMjphbnkgPSAoKDxhbnk+X2RlY2wwXzM1Lm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8zMzphbnkgPSAoKDxhbnk+X2RlY2wwXzM1LmNhbmNlbEFsbCgpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfSG9zdF8zXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzYuaXNBZGFwdGl2ZUxhYmVsKSAmJiAoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzYuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ21zLTEnO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzM2LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8zO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzYuaXNBZGFwdGl2ZUxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdjb2wtMTIgY29sLWZvcm0tbGFiZWwgZC1mbGV4JztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IFsoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzU0LnRyYW5zZm9ybShfZGVjbDBfMzYubGFiZWxTaXplcyk6ICd2aXN1YWxseS1oaWRkZW4nKSxcbiAgICAgICAgX2RlY2wwXzUzLnRyYW5zZm9ybShfZGVjbDBfMzYuY29tcG9uZW50SGVpZ2h0KV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzM2Lm5hbWUsJ19sYWJlbCcpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNi5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8zNi5pc3JlcXVpcmVkO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzM2LnNwbGl0bGFiZWxhbmRoZWxwdGV4dDtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8zNi5sYWJlbDtcbiAgICBjdXJyVmFsXzY7XG4gICAgY29uc3QgY3VyclZhbF83OmFueSA9ICgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpO1xuICAgIGN1cnJWYWxfNztcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM18zKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM2LnVwbG9hZHMubGVuZ3RoID09PSAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM2LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNi5pbnZhbGlkKSAmJiAoX2RlY2wwXzM2LmRpcnR5IHx8IF9kZWNsMF8zNi50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzUoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMzYuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzYuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2RlY2wwXzM2LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM2LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9hbnkucHJvZ3Jlc3MgPT09IDEwMCk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfYW55LnByb2dyZXNzO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9hbnkubmFtZTtcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9ICEoX2RlY2wwXzM2LmludmFsaWQgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfNjtcbiAgICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8zNi5pbnZhbGlkICYmIChfZGVjbDBfMzYuZGlydHkgfHwgX2RlY2wwXzM2LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzc7XG4gICAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8zNi5JY29uRGVsZXRlO1xuICAgIGN1cnJWYWxfODtcbiAgICBjb25zdCBwZF85OmFueSA9ICgoPGFueT5fZGVjbDBfMzYuY2FuY2VsKF9hbnkudXBsb2FkSWQpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzQoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzYudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNi51cGxvYWRzO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM182KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNi5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMzYuaW52YWxpZCkgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM4LnRyYW5zZm9ybShfZGVjbDBfMzYuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVTaW5nbGVDb21wb25lbnRfM183KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNi5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50XzNfOCgpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpICYmIF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2Zvcm0tY29udHJvbC1wbGFpbnRleHQgYWxpZ24tc2VsZi10b3AgbXMtMiBtZS0xIHctYXV0byc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbX2RlY2wwXzUxLnRyYW5zZm9ybShfZGVjbDBfMzYuY29tcG9uZW50SGVpZ2h0KV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzYuaGVscHRleHQ7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ21sLTEnO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzM2LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF81O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudF8zXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzYubmFtZSwnJyk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8zNi5kaXNhYmxlbGFiZWw7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9ICgoX2RlY2wwXzM2LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpICYmICFfZGVjbDBfMzYuaXNBZGFwdGl2ZUxhYmVsKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gJ2NvbC0xMic7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IFsoKF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzUyLnRyYW5zZm9ybShfZGVjbDBfMzYubGFiZWxTaXplcyk6ICcnKV07XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9ICgoKF9kZWNsMF8zNi5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM2LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMzYuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF81O1xuICBjb25zdCBjdXJyVmFsXzY6YW55ID0gKCgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpICYmIF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMzYudXBsb2FkaGVpZ2h0O1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfMzYuYWN0aXZlO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAoX2RlY2wwXzM2LmludmFsaWQgJiYgKF9kZWNsMF8zNi5kaXJ0eSB8fCBfZGVjbDBfMzYudG91Y2hlZCkpO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gKF9kZWNsMF8zNi51cGxvYWRzLmxlbmd0aCA9PT0gMCk7XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gKF9kZWNsMF8zNi51cGxvYWRzLmxlbmd0aCA+IDApO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzYubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gX2RlY2wwXzM2Lkhhc1F1ZXVlSXRlbSgpO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9ICgoX2RlY2wwXzM2LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNi5pbnZhbGlkKSAmJiAoX2RlY2wwXzM2LmRpcnR5IHx8IF9kZWNsMF8zNi50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gKChfZGVjbDBfMzYuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNi5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gKCgoX2RlY2wwXzM2LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzYuaGVscHRleHQpICYmIF9kZWNsMF8zNi5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBwZF8xNzphbnkgPSAoKDxhbnk+X2RlY2wwXzM2LmRyb3BIYW5kbGVyKF9hbnkpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xODphbnkgPSAoKDxhbnk+X2RlY2wwXzM2Lm9uRHJhZ092ZXIoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE5OmFueSA9ICgoPGFueT5fZGVjbDBfMzYub25EcmFnTGVhdmUoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzIwOmFueSA9ICgoPGFueT4oX2FueS52YWx1ZSA9ICcnKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjE6YW55ID0gKCg8YW55Pl9kZWNsMF8zNi5vblVwbG9hZChfYW55KSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfSG9zdF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF8yKCk6dm9pZCB7XG4gIGlmICgoKChfZGVjbDBfMzcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNy5pc0FkYXB0aXZlTGFiZWwpICYmICgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNy5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAnbXMtMSc7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMzcuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzM7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF8xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKSAmJiAhX2RlY2wwXzM3LmlzQWRhcHRpdmVMYWJlbCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnY29sLTEyIGNvbC1mb3JtLWxhYmVsIGQtZmxleCc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKChfZGVjbDBfMzcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF81NC50cmFuc2Zvcm0oX2RlY2wwXzM3LmxhYmVsU2l6ZXMpOiAndmlzdWFsbHktaGlkZGVuJyksXG4gICAgICAgIF9kZWNsMF81My50cmFuc2Zvcm0oX2RlY2wwXzM3LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNy5uYW1lLCdfbGFiZWwnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMzcubmFtZSwnX3VwbG9hZGlucHV0Jyk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMzcuaXNyZXF1aXJlZDtcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8zNy5zcGxpdGxhYmVsYW5kaGVscHRleHQ7XG4gICAgY3VyclZhbF81O1xuICAgIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMzcubGFiZWw7XG4gICAgY3VyclZhbF82O1xuICAgIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KTtcbiAgICBjdXJyVmFsXzc7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY0Ryb3B6b25lTXVsdGlwbGVDb21wb25lbnRfNF8zKCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzM3LnVwbG9hZHMubGVuZ3RoID09PSAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzM3LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNy5pbnZhbGlkKSAmJiAoX2RlY2wwXzM3LmRpcnR5IHx8IF9kZWNsMF8zNy50b3VjaGVkKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfNSgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8zNy51cGxvYWRzLmxlbmd0aCA+IDApKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9hbnkgPiAwKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMzcuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMzcuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzM3LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzM3LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKF9hbnkucHJvZ3Jlc3MgPT09IDEwMCk7XG4gICAgY3VyclZhbF8zO1xuICAgIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfYW55LnByb2dyZXNzO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2FueS5wcm9ncmVzcztcbiAgICBjdXJyVmFsXzU7XG4gICAgY29uc3QgY3VyclZhbF82OmFueSA9IF9hbnkubmFtZTtcbiAgICBjdXJyVmFsXzY7XG4gICAgY29uc3QgY3VyclZhbF83OmFueSA9ICEoX2RlY2wwXzM3LmludmFsaWQgJiYgKF9kZWNsMF8zNy5kaXJ0eSB8fCBfZGVjbDBfMzcudG91Y2hlZCkpO1xuICAgIGN1cnJWYWxfNztcbiAgICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8zNy5pbnZhbGlkICYmIChfZGVjbDBfMzcuZGlydHkgfHwgX2RlY2wwXzM3LnRvdWNoZWQpKTtcbiAgICBjdXJyVmFsXzg7XG4gICAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8zNy5JY29uRGVsZXRlO1xuICAgIGN1cnJWYWxfOTtcbiAgICBjb25zdCBwZF8xMDphbnkgPSAoKDxhbnk+X2RlY2wwXzM3LmNhbmNlbChfYW55LnVwbG9hZElkKSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzQoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMzcudXBsb2Fkcy5sZW5ndGggPiAwKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8zNy51cGxvYWRzO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudF80XzYoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzM3LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8zNy5pbnZhbGlkKSAmJiAoX2RlY2wwXzM3LmRpcnR5IHx8IF9kZWNsMF8zNy50b3VjaGVkKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzgudHJhbnNmb3JtKF9kZWNsMF8zNy5HZXRFcnJvck1lc3NhZ2UoKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfNygpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzcuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfOCgpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpICYmIF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2Zvcm0tY29udHJvbC1wbGFpbnRleHQgYWxpZ24tc2VsZi10b3AgbXMtMiBtZS0xIHctYXV0byc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbX2RlY2wwXzUxLnRyYW5zZm9ybShfZGVjbDBfMzcuY29tcG9uZW50SGVpZ2h0KV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMzcuaGVscHRleHQ7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ21sLTEnO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzM3LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF81O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNEcm9wem9uZU11bHRpcGxlQ29tcG9uZW50XzRfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNy5uYW1lLCcnKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzM3LmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKChfZGVjbDBfMzcuZGlzYWJsZWxhYmVsID09PSBmYWxzZSkgJiYgIV9kZWNsMF8zNy5pc0FkYXB0aXZlTGFiZWwpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAnY29sLTEyJztcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gWygoX2RlY2wwXzM3LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfNTIudHJhbnNmb3JtKF9kZWNsMF8zNy5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gKCgoX2RlY2wwXzM3LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMzcuaGVscHRleHQpICYmIF9kZWNsMF8zNy5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSAoKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCkgJiYgX2RlY2wwXzM3LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8zNy5hY3RpdmU7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IF9kZWNsMF8zNy51cGxvYWRoZWlnaHQ7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IChfZGVjbDBfMzcuaW52YWxpZCAmJiAoX2RlY2wwXzM3LmRpcnR5IHx8IF9kZWNsMF8zNy50b3VjaGVkKSk7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgY3VyclZhbF8xMDphbnkgPSAoX2RlY2wwXzM3LnVwbG9hZHMubGVuZ3RoID09PSAwKTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAoX2RlY2wwXzM3LnVwbG9hZHMubGVuZ3RoID4gMCk7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8zNy5uYW1lLCdfdXBsb2FkaW5wdXQnKTtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgY3VyclZhbF8xMzphbnkgPSBfZGVjbDBfMzcuSGFzUXVldWVJdGVtKCk7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gKChfZGVjbDBfMzcuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzM3LmludmFsaWQpICYmIChfZGVjbDBfMzcuZGlydHkgfHwgX2RlY2wwXzM3LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSAoKF9kZWNsMF8zNy5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzM3LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8xNTtcbiAgY29uc3QgY3VyclZhbF8xNjphbnkgPSAoKChfZGVjbDBfMzcuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8zNy5oZWxwdGV4dCkgJiYgX2RlY2wwXzM3LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMTY7XG4gIGNvbnN0IHBkXzE3OmFueSA9ICgoPGFueT5fZGVjbDBfMzcuZHJvcEhhbmRsZXIoX2FueSkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzE4OmFueSA9ICgoPGFueT5fZGVjbDBfMzcub25EcmFnT3ZlcihfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTk6YW55ID0gKCg8YW55Pl9kZWNsMF8zNy5vbkRyYWdMZWF2ZShfYW55KSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMjA6YW55ID0gKCg8YW55PihfYW55LnZhbHVlID0gJycpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8yMTphbnkgPSAoKDxhbnk+X2RlY2wwXzM3Lm9uVXBsb2FkKF9hbnkpKSAhPT0gZmFsc2UpO1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
-
*
|
|
4
|
-
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
-
* tslint:disable
|
|
6
|
-
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
+
*
|
|
4
|
+
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
+
* tslint:disable
|
|
6
|
+
*/
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy91cGxvYWQvdXBsb2FkLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
-
*
|
|
4
|
-
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
-
* tslint:disable
|
|
6
|
-
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
+
*
|
|
4
|
+
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
+
* tslint:disable
|
|
6
|
+
*/
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNjc3MubmdzdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy91cGxvYWQvdXBsb2FkLnNjc3MubmdzdHlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
-
*
|
|
4
|
-
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
-
* tslint:disable
|
|
6
|
-
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
+
*
|
|
4
|
+
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
+
* tslint:disable
|
|
6
|
+
*/
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNjc3Muc2hpbS5uZ3N0eWxlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC91cGxvYWQuc2Nzcy5zaGltLm5nc3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiJdfQ==
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { SacFormLayoutDirective } from '../layout/formlayout.directive';
|
|
2
|
-
import { Component, Host, Injector, NgZone, Optional, Renderer2, forwardRef } from '@angular/core';
|
|
3
|
-
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { SacUploadMultipleCommon } from '@simpleangularcontrols/sac-common';
|
|
5
|
-
/**
|
|
6
|
-
* Upload Komponente für den Upload mehrer Files
|
|
7
|
-
* @see https://github.com/kukhariev/ngx-uploadx/
|
|
8
|
-
*/
|
|
9
|
-
export class SacUploadMultipleComponent extends SacUploadMultipleCommon {
|
|
10
|
-
// #region Constructors
|
|
11
|
-
/**
|
|
12
|
-
* Constructor
|
|
13
|
-
* @param formLayout SacFormLayout to define scoped layout settings
|
|
14
|
-
* @param injector Injector for injecting services
|
|
15
|
-
* @param renderer Angular rendering engine
|
|
16
|
-
* @param ngZone ngZone to manage external javascripts
|
|
17
|
-
*/
|
|
18
|
-
constructor(formLayout, injector, renderer, ngZone) {
|
|
19
|
-
super(formLayout, injector, renderer, ngZone);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
SacUploadMultipleComponent.decorators = [
|
|
23
|
-
{ type: Component, args: [{
|
|
24
|
-
selector: 'sac-uploadmultiple',
|
|
25
|
-
template: "<div\r\n id=\"{{ name }}\"\r\n class=\"row mb-3\"\r\n [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{ name }}_label\"\r\n for=\"{{ name }}_uploadinput\"\r\n class=\"col-12 col-form-label d-flex\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\r\n [class.required]=\"isrequired\">\r\n <div\r\n class=\"text flex-grow-0\"\r\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\r\n {{ label }}\r\n </div>\r\n <sac-tooltip\r\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [ngClass]=\"HelptextTooltipIcon\"\r\n class=\"ms-1\">\r\n </span>\r\n </sac-tooltip>\r\n </label>\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <i\r\n [class]=\"IconBrowse\"\r\n class=\"pe-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\" />\r\n </div>\r\n\r\n <div\r\n class=\"btn-group\"\r\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span\r\n [class]=\"IconUpload\"\r\n class=\"pe-2\"></span>\r\n {{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\r\n class=\"form-control-plaintext align-self-top ms-2 me-1 w-auto\"\r\n [ngClass]=\"[componentHeight | toControlHeight]\">\r\n <sac-tooltip\r\n [tooltiptext]=\"helptext\"\r\n [inlinemode]=\"true\">\r\n <span\r\n [ngClass]=\"HelptextTooltipIcon\"\r\n class=\"ml-1\">\r\n </span>\r\n </sac-tooltip>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\">\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n <div\r\n *ngIf=\"helptextmode === 'text' && helptext\"\r\n class=\"form-text\">\r\n {{ helptext }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let file of uploads\"\r\n style=\"margin-top: 5px\">\r\n <div\r\n class=\"input-group upload-component upload-multiple\"\r\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\r\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\">\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress === 100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\">\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\">\r\n <span\r\n [class]=\"IconUpload\"\r\n class=\"pe-2\"></span\r\n >{{ lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
26
|
-
providers: [
|
|
27
|
-
{
|
|
28
|
-
provide: NG_VALUE_ACCESSOR,
|
|
29
|
-
multi: true,
|
|
30
|
-
useExisting: SacUploadMultipleComponent,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
provide: NG_VALIDATORS,
|
|
34
|
-
multi: true,
|
|
35
|
-
useExisting: forwardRef(() => SacUploadMultipleComponent),
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
styles: [".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.upload-component.upload-multiple .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{border:0;padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{left:0;position:absolute;right:0}"]
|
|
39
|
-
},] }
|
|
40
|
-
];
|
|
41
|
-
SacUploadMultipleComponent.ctorParameters = () => [
|
|
42
|
-
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
43
|
-
{ type: Injector },
|
|
44
|
-
{ type: Renderer2 },
|
|
45
|
-
{ type: NgZone }
|
|
46
|
-
];
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { SacFormLayoutDirective } from '../layout/formlayout.directive';
|
|
2
|
+
import { Component, Host, Injector, NgZone, Optional, Renderer2, forwardRef } from '@angular/core';
|
|
3
|
+
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { SacUploadMultipleCommon } from '@simpleangularcontrols/sac-common';
|
|
5
|
+
/**
|
|
6
|
+
* Upload Komponente für den Upload mehrer Files
|
|
7
|
+
* @see https://github.com/kukhariev/ngx-uploadx/
|
|
8
|
+
*/
|
|
9
|
+
export class SacUploadMultipleComponent extends SacUploadMultipleCommon {
|
|
10
|
+
// #region Constructors
|
|
11
|
+
/**
|
|
12
|
+
* Constructor
|
|
13
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
14
|
+
* @param injector Injector for injecting services
|
|
15
|
+
* @param renderer Angular rendering engine
|
|
16
|
+
* @param ngZone ngZone to manage external javascripts
|
|
17
|
+
*/
|
|
18
|
+
constructor(formLayout, injector, renderer, ngZone) {
|
|
19
|
+
super(formLayout, injector, renderer, ngZone);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
SacUploadMultipleComponent.decorators = [
|
|
23
|
+
{ type: Component, args: [{
|
|
24
|
+
selector: 'sac-uploadmultiple',
|
|
25
|
+
template: "<div\n id=\"{{ name }}\"\n class=\"row mb-3\"\n [class.g-0]=\"disablelabel\">\n <label\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\n id=\"{{ name }}_label\"\n for=\"{{ name }}_uploadinput\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\">\n <div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ms-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\">\n <div class=\"upload-component\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n <div\n class=\"btn-group\"\n [class.btn-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.btn-group-lg]=\"componentHeight === ControlHeight.Large\"\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n <div\n class=\"btn upload-input custom-file\"\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <i\n [ngClass]=\"IconBrowse\"\n class=\"pe-2\"></i>\n <span class=\"upload-browse\">{{\n buttonbrowse ? buttonbrowse : (lngResourceService.GetString(validationKeyService.UploadButtonBrowse) | async)\n }}</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 <button\n class=\"btn\"\n (click)=\"cancelAll()\"\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconDelete\"></span>\n </button>\n <button\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-secondary]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconPause\"></span>\n </button>\n <button\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\n class=\"btn\"\n (click)=\"uploadAll()\"\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconContinue\"></span>\n </button>\n <button\n *ngIf=\"autoupload === false\"\n class=\"btn text-nowrap\"\n (click)=\"uploadAll()\"\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span\n [ngClass]=\"IconUpload\"\n class=\"pe-2\"></span\n >{{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </button>\n </div>\n </div>\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ms-2 me-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n <div\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n class=\"invalid-feedback\">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text\">\n {{ helptext }}\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\n class=\"form-control upload-progress\"\n [class.is-invalid]=\"invalid && (dirty || touched)\">\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\n <button\n class=\"btn\"\n (click)=\"cancel(file.uploadId)\"\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconDelete\"></span>\n </button>\n <button\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-secondary]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconPause\"></span>\n </button>\n <button\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\n class=\"btn\"\n (click)=\"upload(file.uploadId)\"\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span [class]=\"IconContinue\"></span>\n </button>\n <button\n *ngIf=\"autoupload === false\"\n class=\"btn text-nowrap\"\n (click)=\"upload(file.uploadId)\"\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\n [class.btn-danger]=\"invalid && (dirty || touched)\">\n <span\n [ngClass]=\"IconUpload\"\n class=\"pe-2\"></span\n >{{ buttonupload ? buttonupload : (lngResourceService.GetString(validationKeyService.UploadButtonUpload) | async) }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n",
|
|
26
|
+
providers: [
|
|
27
|
+
{
|
|
28
|
+
provide: NG_VALUE_ACCESSOR,
|
|
29
|
+
multi: true,
|
|
30
|
+
useExisting: SacUploadMultipleComponent,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
provide: NG_VALIDATORS,
|
|
34
|
+
multi: true,
|
|
35
|
+
useExisting: forwardRef(() => SacUploadMultipleComponent),
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
styles: [".upload-component .custom-file{height:100%}.upload-component .custom-file .custom-file-input{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.upload-component.upload-multiple .upload-progress .progress{border-bottom-right-radius:0;border-top-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{border:0;padding:0}.upload-component .upload-progress .progress{height:100%}.upload-component .upload-progress .progress .progress-text{left:0;position:absolute;right:0}"]
|
|
39
|
+
},] }
|
|
40
|
+
];
|
|
41
|
+
SacUploadMultipleComponent.ctorParameters = () => [
|
|
42
|
+
{ type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
43
|
+
{ type: Injector },
|
|
44
|
+
{ type: Renderer2 },
|
|
45
|
+
{ type: NgZone }
|
|
46
|
+
];
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL3VwbG9hZG11bHRpcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTVFOzs7R0FHRztBQWtCSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsdUJBQXVCO0lBQ25FLHVCQUF1QjtJQUV2Qjs7Ozs7O09BTUc7SUFDSCxZQUN3QixVQUFrQyxFQUN0RCxRQUFrQixFQUNsQixRQUFtQixFQUNuQixNQUFjO1FBRWQsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7OztZQWxDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsd3FXQUFvQztnQkFFcEMsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSwwQkFBMEI7cUJBQzFDO29CQUNEO3dCQUNJLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO3FCQUM1RDtpQkFDSjs7YUFDSjs7O1lBekJRLHNCQUFzQix1QkFxQ3RCLElBQUksWUFBSSxRQUFRO1lBcENDLFFBQVE7WUFBb0IsU0FBUztZQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjRm9ybUxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIEluamVjdG9yLCBOZ1pvbmUsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2FjVXBsb2FkTXVsdGlwbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xuXG4vKipcbiAqIFVwbG9hZCBLb21wb25lbnRlIGbDvHIgZGVuIFVwbG9hZCBtZWhyZXIgRmlsZXNcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2t1a2hhcmlldi9uZ3gtdXBsb2FkeC9cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYWMtdXBsb2FkbXVsdGlwbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91cGxvYWRtdWx0aXBsZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91cGxvYWQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNhY1VwbG9hZE11bHRpcGxlQ29tcG9uZW50LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnQgZXh0ZW5kcyBTYWNVcGxvYWRNdWx0aXBsZUNvbW1vbiB7XG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICogQHBhcmFtIHJlbmRlcmVyIEFuZ3VsYXIgcmVuZGVyaW5nIGVuZ2luZVxuICAgICAqIEBwYXJhbSBuZ1pvbmUgbmdab25lIHRvIG1hbmFnZSBleHRlcm5hbCBqYXZhc2NyaXB0c1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgbmdab25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IsIHJlbmRlcmVyLCBuZ1pvbmUpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
-
*
|
|
4
|
-
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
-
* tslint:disable
|
|
6
|
-
*/
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
+
*
|
|
4
|
+
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
+
* tslint:disable
|
|
6
|
+
*/
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC91cGxvYWRtdWx0aXBsZS5uZ2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiJdfQ==
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { Component, Host, Injector, Optional } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { SacValidationSummaryCommon } from '@simpleangularcontrols/sac-common';
|
|
4
|
-
import { SacFormDirective } from '../form/form';
|
|
5
|
-
/**
|
|
6
|
-
* Validation Summary Kompontente
|
|
7
|
-
*/
|
|
8
|
-
export class SacValidationSummaryComponent extends SacValidationSummaryCommon {
|
|
9
|
-
// #region Constructors
|
|
10
|
-
/**
|
|
11
|
-
* Constructor
|
|
12
|
-
* @param formControl Instance of Form Component to receive invalid form controls
|
|
13
|
-
* @param injector Injector for injecting services
|
|
14
|
-
*/
|
|
15
|
-
constructor(formControl, injector) {
|
|
16
|
-
super(formControl, injector);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
SacValidationSummaryComponent.decorators = [
|
|
20
|
-
{ type: Component, args: [{
|
|
21
|
-
selector: 'sac-validationsummary',
|
|
22
|
-
template: "<div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"hasErrors\">\
|
|
23
|
-
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
24
|
-
providers: [
|
|
25
|
-
{
|
|
26
|
-
provide: NG_VALUE_ACCESSOR,
|
|
27
|
-
multi: true,
|
|
28
|
-
useExisting: SacValidationSummaryComponent,
|
|
29
|
-
},
|
|
30
|
-
]
|
|
31
|
-
},] }
|
|
32
|
-
];
|
|
33
|
-
SacValidationSummaryComponent.ctorParameters = () => [
|
|
34
|
-
{ type: SacFormDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
35
|
-
{ type: Injector }
|
|
36
|
-
];
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, Host, Injector, Optional } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { SacValidationSummaryCommon } from '@simpleangularcontrols/sac-common';
|
|
4
|
+
import { SacFormDirective } from '../form/form';
|
|
5
|
+
/**
|
|
6
|
+
* Validation Summary Kompontente
|
|
7
|
+
*/
|
|
8
|
+
export class SacValidationSummaryComponent extends SacValidationSummaryCommon {
|
|
9
|
+
// #region Constructors
|
|
10
|
+
/**
|
|
11
|
+
* Constructor
|
|
12
|
+
* @param formControl Instance of Form Component to receive invalid form controls
|
|
13
|
+
* @param injector Injector for injecting services
|
|
14
|
+
*/
|
|
15
|
+
constructor(formControl, injector) {
|
|
16
|
+
super(formControl, injector);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
SacValidationSummaryComponent.decorators = [
|
|
20
|
+
{ type: Component, args: [{
|
|
21
|
+
selector: 'sac-validationsummary',
|
|
22
|
+
template: "<div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"hasErrors\">\n <ul class=\"mb-0\">\n <li *ngFor=\"let error of formErrors\">{{error | async}}</li>\n </ul>\n</div>\n",
|
|
23
|
+
// Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
|
|
24
|
+
providers: [
|
|
25
|
+
{
|
|
26
|
+
provide: NG_VALUE_ACCESSOR,
|
|
27
|
+
multi: true,
|
|
28
|
+
useExisting: SacValidationSummaryComponent,
|
|
29
|
+
},
|
|
30
|
+
]
|
|
31
|
+
},] }
|
|
32
|
+
];
|
|
33
|
+
SacValidationSummaryComponent.ctorParameters = () => [
|
|
34
|
+
{ type: SacFormDirective, decorators: [{ type: Host }, { type: Optional }] },
|
|
35
|
+
{ type: Injector }
|
|
36
|
+
];
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdmFsaWRhdGlvbi92YWxpZGF0aW9uc3VtbWFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRDs7R0FFRztBQWFILE1BQU0sT0FBTyw2QkFBOEIsU0FBUSwwQkFBMEI7SUFDM0UsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUNzQixXQUE2QixFQUNqRCxRQUFrQjtRQUVsQixLQUFLLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7OztZQXpCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsOExBQXVDO2dCQUN2QywrRkFBK0Y7Z0JBQy9GLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsNkJBQTZCO3FCQUMzQztpQkFDRjthQUNGOzs7WUFoQlEsZ0JBQWdCLHVCQTBCcEIsSUFBSSxZQUFJLFFBQVE7WUE3QkssUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdCwgSW5qZWN0b3IsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNhY1ZhbGlkYXRpb25TdW1tYXJ5Q29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcbmltcG9ydCB7IFNhY0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9mb3JtL2Zvcm0nO1xuXG4vKipcbiAqIFZhbGlkYXRpb24gU3VtbWFyeSBLb21wb250ZW50ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYWMtdmFsaWRhdGlvbnN1bW1hcnknLFxuICB0ZW1wbGF0ZVVybDogJy4vdmFsaWRhdGlvbnN1bW1hcnkuaHRtbCcsXG4gIC8vIFZhbHVlIEFjY2VzcyBQcm92aWRlciByZWdpc3RyaWVyZW4sIGRhbWl0IFdlcnQgdmlhIE1vZGVsIGdlc2NocmllYmVuIHVuZCBnZWxlc2VuIHdlcmRlbiBrYW5uXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogU2FjVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2FjVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgZXh0ZW5kcyBTYWNWYWxpZGF0aW9uU3VtbWFyeUNvbW1vbiB7XG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBmb3JtQ29udHJvbCBJbnN0YW5jZSBvZiBGb3JtIENvbXBvbmVudCB0byByZWNlaXZlIGludmFsaWQgZm9ybSBjb250cm9sc1xuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtQ29udHJvbDogU2FjRm9ybURpcmVjdGl2ZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoZm9ybUNvbnRyb2wsIGluamVjdG9yKTtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG59XG4iXX0=
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { SacValidationSummaryComponent } from './validationsummary';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
export class SACBootstrap5ValidationSummaryModule {
|
|
5
|
-
}
|
|
6
|
-
SACBootstrap5ValidationSummaryModule.decorators = [
|
|
7
|
-
{ type: NgModule, args: [{
|
|
8
|
-
declarations: [SacValidationSummaryComponent],
|
|
9
|
-
imports: [
|
|
10
|
-
CommonModule
|
|
11
|
-
],
|
|
12
|
-
exports: [SacValidationSummaryComponent]
|
|
13
|
-
},] }
|
|
14
|
-
];
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { SacValidationSummaryComponent } from './validationsummary';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
export class SACBootstrap5ValidationSummaryModule {
|
|
5
|
+
}
|
|
6
|
+
SACBootstrap5ValidationSummaryModule.decorators = [
|
|
7
|
+
{ type: NgModule, args: [{
|
|
8
|
+
declarations: [SacValidationSummaryComponent],
|
|
9
|
+
imports: [
|
|
10
|
+
CommonModule
|
|
11
|
+
],
|
|
12
|
+
exports: [SacValidationSummaryComponent]
|
|
13
|
+
},] }
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3ZhbGlkYXRpb24vdmFsaWRhdGlvbnN1bW1hcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBUy9DLE1BQU0sT0FBTyxvQ0FBb0M7OztZQVBoRCxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBQzdDLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO2FBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhY1ZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0aW9uc3VtbWFyeSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTYWNWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1NhY1ZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTQUNCb290c3RyYXA1VmFsaWRhdGlvblN1bW1hcnlNb2R1bGUgeyB9XG4iXX0=
|