coer-elements 0.0.17 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. package/components/lib/coer-button/coer-button.component.d.ts +2 -2
  2. package/components/lib/coer-filebox/coer-filebox.component.d.ts +1 -1
  3. package/components/lib/coer-grid/coer-grid.component.d.ts +1 -1
  4. package/components/lib/coer-grid/coer-grid.extension.d.ts +1 -1
  5. package/components/lib/coer-grid/coer-grid.templates.d.ts +1 -1
  6. package/components/lib/coer-numberbox/coer-numberbox.component.d.ts +1 -1
  7. package/components/lib/coer-page-title/coer-page-title.component.d.ts +1 -1
  8. package/components/lib/coer-switch/coer-switch.component.d.ts +1 -1
  9. package/components/lib/coer-textarea/coer-textarea.component.d.ts +1 -1
  10. package/components/lib/coer-textbox/coer-textbox.component.d.ts +1 -1
  11. package/directives/lib/life-cycle.directive.d.ts +5 -3
  12. package/esm2022/components/lib/coer-alert/coer-alert.component.mjs +2 -2
  13. package/esm2022/components/lib/coer-button/coer-button.component.mjs +2 -2
  14. package/esm2022/components/lib/coer-checkbox/coer-checkbox.component.mjs +2 -2
  15. package/esm2022/components/lib/coer-filebox/coer-filebox.component.mjs +3 -3
  16. package/esm2022/components/lib/coer-grid/coer-grid.component.mjs +3 -3
  17. package/esm2022/components/lib/coer-grid/coer-grid.extension.mjs +1 -1
  18. package/esm2022/components/lib/coer-grid/coer-grid.templates.mjs +1 -1
  19. package/esm2022/components/lib/coer-numberbox/coer-numberbox.component.mjs +2 -2
  20. package/esm2022/components/lib/coer-page-title/coer-page-title.component.mjs +3 -3
  21. package/esm2022/components/lib/coer-selectbox/coer-selectbox.component.mjs +2 -2
  22. package/esm2022/components/lib/coer-switch/coer-switch.component.mjs +2 -2
  23. package/esm2022/components/lib/coer-tab/coer-tab.component.mjs +2 -2
  24. package/esm2022/components/lib/coer-textarea/coer-textarea.component.mjs +2 -2
  25. package/esm2022/components/lib/coer-textbox/coer-textbox.component.mjs +2 -2
  26. package/esm2022/directives/lib/life-cycle.directive.mjs +6 -2
  27. package/esm2022/interfaces/index.mjs +36 -2
  28. package/esm2022/interfaces/lib/coer-menu/menu-selected.interface.mjs +2 -0
  29. package/esm2022/interfaces/lib/service/http-request.interface.mjs +2 -0
  30. package/esm2022/interfaces/lib/service/http-response.interface.mjs +2 -0
  31. package/esm2022/interfaces/lib/service/patch.interface.mjs +2 -0
  32. package/esm2022/signals/index.mjs +3 -1
  33. package/esm2022/signals/lib/is-menu-open.signal.mjs +3 -0
  34. package/esm2022/signals/lib/menu.signal.mjs +3 -0
  35. package/esm2022/tools/lib/breadcrumbs.class.mjs +1 -1
  36. package/esm2022/tools/lib/menu.class.mjs +1 -1
  37. package/esm2022/tools/lib/page.class.mjs +1 -1
  38. package/esm2022/tools/lib/screen.class.mjs +1 -1
  39. package/esm2022/tools/lib/source.class.mjs +1 -1
  40. package/fesm2022/coer-elements.mjs +34 -26
  41. package/fesm2022/coer-elements.mjs.map +1 -1
  42. package/interfaces/index.d.ts +30 -1
  43. package/interfaces/lib/coer-menu/menu-selected.interface.d.ts +10 -0
  44. package/interfaces/lib/service/http-request.interface.d.ts +10 -0
  45. package/interfaces/lib/service/http-response.interface.d.ts +6 -0
  46. package/package.json +1 -1
  47. package/signals/index.d.ts +2 -0
  48. package/signals/lib/is-menu-open.signal.d.ts +1 -0
  49. package/signals/lib/menu.signal.d.ts +2 -0
  50. package/src/interfaces/index.ts +48 -3
  51. package/src/interfaces/lib/service/http-request.interface.ts +11 -0
  52. package/src/interfaces/lib/service/http-response.interface.ts +6 -0
  53. package/src/styles/colors.scss +10 -0
  54. package/styles/coer-elements.css +123 -0
  55. package/tools/lib/breadcrumbs.class.d.ts +1 -1
  56. package/tools/lib/menu.class.d.ts +1 -1
  57. package/tools/lib/page.class.d.ts +1 -2
  58. package/tools/lib/screen.class.d.ts +1 -1
  59. package/tools/lib/source.class.d.ts +1 -1
  60. package/esm2022/interfaces/coer-filebox/index.mjs +0 -3
  61. package/esm2022/interfaces/coer-grid/index.mjs +0 -21
  62. package/esm2022/interfaces/lib/patch.interface.mjs +0 -2
  63. package/esm2022/interfaces/page-title/index.mjs +0 -3
  64. package/interfaces/coer-filebox/index.d.ts +0 -2
  65. package/interfaces/coer-grid/index.d.ts +0 -20
  66. package/interfaces/page-title/index.d.ts +0 -2
  67. package/src/interfaces/coer-filebox/index.ts +0 -2
  68. package/src/interfaces/coer-grid/index.ts +0 -20
  69. package/src/interfaces/coer-menu/index.ts +0 -3
  70. package/src/interfaces/page-title/index.ts +0 -2
  71. /package/interfaces/lib/{patch.interface.d.ts → service/patch.interface.d.ts} +0 -0
  72. /package/src/interfaces/lib/{patch.interface.ts → service/patch.interface.ts} +0 -0
@@ -409,4 +409,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
409
409
  }], checkbox: [{
410
410
  type: Input
411
411
  }] } });
412
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1ncmlkLmV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvc3JjL2NvbXBvbmVudHMvbGliL2NvZXItZ3JpZC9jb2VyLWdyaWQuZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBTWpELE1BQU0sT0FBTyxpQkFBcUIsU0FBUSxZQUFZO0lBSnREOztRQU1JLFlBQVk7UUFDTyxVQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLFVBQVU7UUFDQSxjQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBYSxjQUFjLENBQUMsQ0FBQztRQUMzRCxnQkFBVyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWMsYUFBYSxDQUFDLENB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QUFDLEtBQUssQ0FBQztJQUN0RSxDQUFDOytHQXJkUSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw2c0lBUWUsV0FBVyx1RkFDVCxhQUFhLHVGQUNiLGFBQWEsc0ZBQ2QsWUFBWSx1RkFiNUMsRUFBRTs7NEZBRUgsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzhCQWlDWSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUdyaWRCdXR0b25CeVJvdywgSUdyaWRDb2x1bW4sIElHcmlkRGF0YVNvdXJjZSwgSUdyaWRJbXBvcnQsIElHcmlkSGVhZGVyQnV0dG9uLCBJR3JpZEhlYWRlckV4cG9ydEJ1dHRvbiwgSUdyaWRLZXl1cEVudGVyLCBJR3JpZFNlYXJjaCwgSUdyaWRJbnB1dFN3aXRjaENoYW5nZSwgSUdyaWRJbnB1dFRleHRib3gsIElHcmlkU29ydCwgSUdyaWRDaGVja2JveCwgSUdyaWRJbnB1dENoZWNrYm94LCBJR3JpZEhlYWRlciB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL2NvZXItZ3JpZFwiO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZCwgdmlld0NoaWxkcmVuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29lckFsZXJ0IH0gZnJvbSBcIi4uLy4uL2xpYi9jb2VyLWFsZXJ0L2NvZXItYWxlcnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvZXJDaGVja2JveCB9IGZyb20gXCIuLi8uLi9saWIvY29lci1jaGVja2JveC9jb2VyLWNoZWNrYm94LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb2VyTnVtYmVyQm94IH0gZnJvbSBcIi4uLy4uL2xpYi9jb2VyLW51bWJlcmJveC9jb2VyLW51bWJlcmJveC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29lclNlbGVjdGJveCB9IGZyb20gXCIuLi8uLi9saWIvY29lci1zZWxlY3Rib3gvY29lci1zZWxlY3Rib3guY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvZXJUZXh0Qm94IH0gZnJvbSBcIi4uLy4uL2xpYi9jb2VyLXRleHRib3gvY29lci10ZXh0Ym94LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWUgfSBmcm9tICcuLi8uLi8uLi90b29scy9saWIvY29udHJvbC12YWx1ZS5jbGFzcyc7XHJcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvbGliL2RhdGUtdGltZS5jbGFzcyc7XHJcbmltcG9ydCB7IFNjcmVlbiB9IGZyb20gJy4uLy4uLy4uL3Rvb2xzL2xpYi9zY3JlZW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBUb29scyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xzL2xpYi90b29scyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY29lci1ncmlkLWV4dGVuc2lvbicsXHJcbiAgICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJHcmlkRXh0ZW5zaW9uPFQ+IGV4dGVuZHMgQ29udHJvbFZhbHVlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgLy9JbmplY3Rpb25zXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWxlcnQgPSBpbmplY3QoQ29lckFsZXJ0KTtcclxuXHJcbiAgICAvL0VsZW1lbnRzXHJcbiAgICBwcm90ZWN0ZWQgaW5wdXRGaWxlID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KCdpbnB1dEZpbGVSZWYnKTtcclxuICAgIHByb3RlY3RlZCBpbnB1dFNlYXJjaCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxDb2VyVGV4dEJveD4oJ2lucHV0U2VhcmNoJyk7XHJcbiAgICBwcm90ZWN0ZWQgY29lclRleHRib3hMaXN0ID0gdmlld0NoaWxkcmVuKENvZXJUZXh0Qm94KTtcclxuICAgIHByb3RlY3RlZCBjb2VyTnVtYmVyYm94TGlzdCA9IHZpZXdDaGlsZHJlbihDb2VyTnVtYmVyQm94KTtcclxuICAgIHByb3RlY3RlZCBjb2VyU2VsZWN0Ym94TGlzdCA9IHZpZXdDaGlsZHJlbihDb2VyU2VsZWN0Ym94KTtcclxuICAgIHByb3RlY3RlZCBjb2VyQ2hlY2tib3hMaXN0ID0gdmlld0NoaWxkcmVuKENvZXJDaGVja2JveCk7XHJcblxyXG4gICAgLy9WYXJpYWJsZXNcclxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfdmFsdWU6IFRbXSA9IFtdO1xyXG4gICAgcHJvdGVjdGVkIHZhbHVlX3NpZ25hbCA9IHNpZ25hbDxUW10+KFtdKTtcclxuICAgIHByb3RlY3RlZCBfZ3JpZFNlYXJjaCA9IHNpZ25hbDxzdHJpbmcgfCBudW1iZXI+KCcnKTtcclxuICAgIHByb3RlY3RlZCBfaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHByb3RlY3RlZCBfaXNMb2FkaW5nTWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBwcm90ZWN0ZWQgX2lkOiBzdHJpbmcgPSBUb29scy5HZXRHdWlkKCdjb2VyLWdyaWQnKTtcclxuICAgIHByb3RlY3RlZCBfZXhwYW5kZWRHcm91cHM6IHN0cmluZ1tdID0gW107XHJcbiAgICBwcm90ZWN0ZWQgX2VuYWJsZUFuaW1hdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByb3RlY3RlZCBfaW5kZXhGb2N1cyA9IHNpZ25hbDxudW1iZXI+KDApO1xyXG4gICAgcHJvdGVjdGVkIF9zb3J0ID0gc2lnbmFsPElHcmlkU29ydD4oeyBjb2x1bW5OYW1lOiAnJywgZGlyZWN0aW9uOiAnbm9uZScsIGljb246ICcnIH0pO1xyXG5cclxuICAgIC8vR2VuZXJpYyBUb29sc1xyXG4gICAgcHJvdGVjdGVkIEdldE51bWVyaWNGb3JtYXQgPSBUb29scy5HZXROdW1lcmljRm9ybWF0O1xyXG4gICAgcHJvdGVjdGVkIEdldERhdGVGb3JtYXQgPSBEYXRlVGltZS5HZXREYXRlRm9ybWF0O1xyXG5cclxuICAgIC8vSW5wdXRzXHJcbiAgICBwdWJsaWMgY29sdW1ucyA9IGlucHV0PElHcmlkQ29sdW1uPFQ+W10+KFtdKTtcclxuICAgIHB1YmxpYyBjbGVhbkNvbHVtbk5hbWUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICAgIEBJbnB1dCgpIGFkZEJ1dHRvbjogSUdyaWRIZWFkZXJCdXR0b24gPSB7IHNob3c6IGZhbHNlIH07XHJcbiAgICBASW5wdXQoKSBleHBvcnRCdXR0b246IElHcmlkSGVhZGVyRXhwb3J0QnV0dG9uID0geyBzaG93OiBmYWxzZSB9O1xyXG4gICAgQElucHV0KCkgaW1wb3J0QnV0dG9uOiBJR3JpZEhlYWRlckJ1dHRvbiA9IHsgc2hvdzogZmFsc2UgfTtcclxuICAgIEBJbnB1dCgpIHNlYXJjaDogSUdyaWRTZWFyY2ggPSB7IHNob3c6IGZhbHNlLCBpZ25vcmU6IGZhbHNlIH07XHJcbiAgICBASW5wdXQoKSBidXR0b25CeVJvdzogSUdyaWRCdXR0b25CeVJvdzxUPiA9IHt9O1xyXG4gICAgQElucHV0KCkgY2hlY2tib3g6IElHcmlkQ2hlY2tib3ggPSB7IHNob3c6IGZhbHNlIH07XHJcbiAgICBwdWJsaWMgdG9vbHRpcEJ5Um93ID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgcm93c0J5UGFnZSA9IGlucHV0PG51bWJlcj4oNTApO1xyXG4gICAgcHVibGljIGdyb3VwQnkgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIHB1YmxpYyBzaG93Q29sdW1uR3JvdXBlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyByb3dzQnlHcm91cCA9IGlucHV0PG51bWJlcj4oNTApO1xyXG4gICAgcHVibGljIGlzSW52aXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIHNob3dGb290ZXIgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICAgIHB1YmxpYyB3aWR0aCA9IGlucHV0PHN0cmluZz4oJzEwMCUnKTtcclxuICAgIHB1YmxpYyBNaW5XaWR0aCA9IGlucHV0PHN0cmluZz4oJzI1MHB4Jyk7XHJcbiAgICBwdWJsaWMgTWF4V2lkdGggPSBpbnB1dDxzdHJpbmc+KCcxMDAlJyk7XHJcbiAgICBwdWJsaWMgaGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMzUwcHgnKTtcclxuICAgIHB1YmxpYyBtaW5IZWlnaHQgPSBpbnB1dDxzdHJpbmc+KCcxNDBweCcpO1xyXG4gICAgcHVibGljIG1heEhlaWdodCA9IGlucHV0PHN0cmluZz4oJzEwMHZoJyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luID0gaW5wdXQ8c3RyaW5nPignYXV0bycpO1xyXG4gICAgcHVibGljIGVuYWJsZVNvcnQgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICAgIHB1YmxpYyBlbmFibGVSb3dGb2N1cyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICAgIC8vT3V0cHV0c1xyXG4gICAgcHVibGljIG9uQ2xpY2tBZGQgPSBvdXRwdXQ8dm9pZD4oKTtcclxuICAgIHB1YmxpYyBvbkNsaWNrSW1wb3J0ID0gb3V0cHV0PElHcmlkSW1wb3J0PFQ+PigpO1xyXG4gICAgcHVibGljIG9uQ2xpY2tFeHBvcnQgPSBvdXRwdXQ8VFtdPigpO1xyXG4gICAgcHVibGljIG9uQ2xpY2tSb3cgPSBvdXRwdXQ8VD4oKTtcclxuICAgIHB1YmxpYyBvbkRvdWJsZUNsaWNrUm93ID0gb3V0cHV0PFQ+KCk7XHJcbiAgICBwdWJsaWMgb25DbGlja0RlbGV0ZVJvdyA9IG91dHB1dDxUPigpO1xyXG4gICAgcHVibGljIG9uQ2xpY2tFZGl0Um93ID0gb3V0cHV0PFQ+KCk7XHJcbiAgICBwdWJsaWMgb25DbGlja0dvUm93ID0gb3V0cHV0PFQ+KCk7XHJcbiAgICBwdWJsaWMgb25LZXl1cEVudGVyID0gb3V0cHV0PElHcmlkS2V5dXBFbnRlcj4oKTtcclxuICAgIHB1YmxpYyBvbktleXVwRW50ZXJMYXN0ID0gb3V0cHV0PHZvaWQ+KCk7XHJcbiAgICBwdWJsaWMgb25Td2l0Y2hDaGFuZ2UgPSBvdXRwdXQ8SUdyaWRJbnB1dFN3aXRjaENoYW5nZTxUPj4oKTtcclxuICAgIHB1YmxpYyBvblRleHRib3hDaGFuZ2UgPSBvdXRwdXQ8SUdyaWRJbnB1dFRleHRib3g8VD4+KCk7XHJcbiAgICBwdWJsaWMgb25TZWxlY3Rib3hDaGFuZ2UgPSBvdXRwdXQ8SUdyaWRJbnB1dFRleHRib3g8VD4+KCk7XHJcbiAgICBwdWJsaWMgb25DaGVja2JveENoYW5nZSA9IG91dHB1dDxJR3JpZElucHV0Q2hlY2tib3g8VD4+KCk7XHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9pc0Rpc2FibGVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzRGlzYWJsZWQoKSB8fCB0aGlzLmlzTG9hZGluZygpIHx8IHRoaXMuaXNJbnZpc2libGUoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBfaXNHcm91cGVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwQnkoKS5sZW5ndGggPiAwO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHByb3RlY3RlZCBnZXQgX2hlaWdodCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSB0aGlzLmhlaWdodCgpO1xyXG5cclxuICAgICAgICBpZiAoaGVpZ2h0ID09ICdmdWxsJykge1xyXG4gICAgICAgICAgICBjb25zdCBUT09MQkFSID0gNDU7XHJcbiAgICAgICAgICAgIGNvbnN0IFBBR0VfSEVBREVSID0gNzA7XHJcbiAgICAgICAgICAgIGNvbnN0IEdSSURfSEVBREVSID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5faWR9LWhlYWRlcmApITtcclxuICAgICAgICAgICAgY29uc3QgSEVBREVSID0gKEdSSURfSEVBREVSICYmIEdSSURfSEVBREVSLmNoaWxkcmVuLmxlbmd0aCA+IDApID8gNTAgOiAwO1xyXG4gICAgICAgICAgICBjb25zdCBNQVJHSU4gPSAzMDtcclxuICAgICAgICAgICAgY29uc3QgUEFERElORyA9IDIwO1xyXG4gICAgICAgICAgICBjb25zdCBGT09URVIgPSB0aGlzLnNob3dGb290ZXIoKSA/IDI0LjUgOiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQgPSAoU2NyZWVuLldJTkRPV19IRUlHSFQgLSBUT09MQkFSIC0gUEFHRV9IRUFERVIgLSBNQVJHSU4gLSBIRUFERVIgLSBQQURESU5HIC0gRk9PVEVSKSArICdweCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBfb25seU9uZUNoZWNrKCkge1xyXG4gICAgICAgIHJldHVybiBUb29scy5Jc05vdE51bGwodGhpcy5jaGVja2JveC5vbmx5T25lQ2hlY2spICYmIHRoaXMuY2hlY2tib3gub25seU9uZUNoZWNrO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fZW5hYmxlQW5pbWF0aW9ucyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9pc0xvYWRpbmdNZXNzYWdlID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9Db250cm9sVmFsdWVBY2Nlc3NvclxyXG4gICAgcHVibGljIG92ZXJyaWRlIFNldFZhbHVlKHZhbHVlOiBUW10pOiB2b2lkIHtcclxuICAgICAgICBsZXQgaW5kZXhSb3cgPSAwO1xyXG4gICAgICAgIGlmKCFUb29scy5Jc05vdE51bGwodmFsdWUpKSB2YWx1ZSA9IFtdO1xyXG5cclxuICAgICAgICBjb25zdCBkYXRhU291cmNlID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UodmFsdWUpLm1hcCgoaXRlbTogYW55KSA9PlxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHsgY2hlY2tlZDogZmFsc2UgfSwgeyAuLi5pdGVtIH0sIHsgaW5kZXhSb3c6IGluZGV4Um93KysgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLl9VcGRhdGVWYWx1ZShkYXRhU291cmNlKTtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IGRhdGFTb3VyY2U7XHJcbiAgICAgICAgdGhpcy52YWx1ZV9zaWduYWwuc2V0KGRhdGFTb3VyY2UpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL0NvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogVFtdKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IGluZGV4Um93ID0gMDtcclxuICAgICAgICBpZighVG9vbHMuSXNOb3ROdWxsKHZhbHVlKSkgdmFsdWUgPSBbXTtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IFRvb2xzLkJyZWFrUmVmZXJlbmNlKHZhbHVlKS5tYXAoKGl0ZW06IGFueSkgPT5cclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7IGNoZWNrZWQ6IGZhbHNlIH0sIHsgLi4uaXRlbSB9LCB7IGluZGV4Um93OiBpbmRleFJvdysrIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBkYXRhU291cmNlO1xyXG4gICAgICAgIHRoaXMudmFsdWVfc2lnbmFsLnNldChkYXRhU291cmNlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgIC8vY29tcHV0ZWRcclxuICAgICBwcm90ZWN0ZWQgZ3JpZENvbHVtbnMgPSBjb21wdXRlZDxJR3JpZEhlYWRlcltdPigoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgU0VUX0NPTFVNTlMgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgICAgICAgLy9IYXMgZmlsdGVyIGNvbHVtbnM/XHJcbiAgICAgICAgaWYgKHRoaXMuY29sdW1ucygpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCB7IHByb3BlcnR5IH0gb2YgdGhpcy5jb2x1bW5zKCkpIHtcclxuICAgICAgICAgICAgICAgIFNFVF9DT0xVTU5TLmFkZChwcm9wZXJ0eSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vR2V0IGFsbCBjb2x1bW5zXHJcbiAgICAgICAgZWxzZSBmb3IgKGNvbnN0IHJvdyBvZiB0aGlzLnZhbHVlX3NpZ25hbCgpKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gcm93KSB7XHJcbiAgICAgICAgICAgICAgICBTRVRfQ09MVU1OUy5hZGQocHJvcGVydHkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1JlbW92ZSBpbmRleFJvdyBjb2x1bW5cclxuICAgICAgICBpZiAoU0VUX0NPTFVNTlMuaGFzKCdpbmRleFJvdycpKSB7XHJcbiAgICAgICAgICAgIFNFVF9DT0xVTU5TLmRlbGV0ZSgnaW5kZXhSb3cnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vUmVtb3ZlIGdyb3VwQnkgY29sdW1uXHJcbiAgICAgICAgaWYgKHRoaXMuX2lzR3JvdXBlZCgpICYmICF0aGlzLnNob3dDb2x1bW5Hcm91cGVkKCkgJiYgU0VUX0NPTFVNTlMuaGFzKHRoaXMuZ3JvdXBCeSgpKSkge1xyXG4gICAgICAgICAgICBTRVRfQ09MVU1OUy5kZWxldGUodGhpcy5ncm91cEJ5KCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9TZXQgaW5kZXggY29sdW1uXHJcbiAgICAgICAgbGV0IGluZGV4Q29sdW1uID0gMDtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShTRVRfQ09MVU1OUykubWFwKHByb3BlcnR5ID0+IFRvb2xzLkJyZWFrUmVmZXJlbmNlPElHcmlkSGVhZGVyPih7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6IHByb3BlcnR5LFxyXG4gICAgICAgICAgICBpbmRleENvbHVtbjogaW5kZXhDb2x1bW4rKyxcclxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuX0dldENvbHVtbkNvbmZpZyhwcm9wZXJ0eSk/LndpZHRoIHx8ICdhdXRvJ1xyXG4gICAgICAgIH0pKTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgZ3JpZERhdGFTb3VyY2UgPSBjb21wdXRlZDxJR3JpZERhdGFTb3VyY2VbXT4oKCkgPT4ge1xyXG4gICAgICAgIGxldCBsaXN0ID0gdGhpcy5ncmlkRGF0YVNvdXJjZUZpbHRlcmVkKCk7XHJcblxyXG4gICAgICAgIC8vSXQncyBHcm91cGVkP1xyXG4gICAgICAgIGlmICh0aGlzLl9pc0dyb3VwZWQoKSkge1xyXG4gICAgICAgICAgICAvL2xldCBpbmRleFJvdyA9IDA7XHJcbiAgICAgICAgICAgIGxldCBpbmRleEdyb3VwID0gMDtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IFNFVF9DT0xVTU4gPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByb3cgb2YgbGlzdCBhcyBhbnkpIHtcclxuICAgICAgICAgICAgICAgIFNFVF9DT0xVTU4uYWRkKHJvd1t0aGlzLmdyb3VwQnkoKV0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBEQVRBX1NPVVJDRV9HUk9QVUVEID0gW107XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIFNFVF9DT0xVTU4pIHtcclxuICAgICAgICAgICAgICAgIERBVEFfU09VUkNFX0dST1BVRUQucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBCeTogY29sdW1uLFxyXG4gICAgICAgICAgICAgICAgICAgIGluZGV4R3JvdXA6IGluZGV4R3JvdXArKyxcclxuICAgICAgICAgICAgICAgICAgICBsZW5ndGg6IGxpc3QuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy5ncm91cEJ5KCldID09IGNvbHVtbikubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgIHJvd3M6IFsuLi5saXN0XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy5ncm91cEJ5KCldID09IGNvbHVtbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGljZSgwLCB0aGlzLnJvd3NCeUdyb3VwKCkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vLm1hcCgoaXRlbTogYW55KSA9PiBPYmplY3QuYXNzaWduKHsgaW5kZXhSb3c6IGluZGV4Um93KysgfSwgaXRlbSkpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9SZXNwb25zZSBieSBncm91cFxyXG4gICAgICAgICAgICByZXR1cm4gWy4uLkRBVEFfU09VUkNFX0dST1BVRURdLnNwbGljZSgwLCB0aGlzLnJvd3NCeVBhZ2UoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1Jlc3BvbnNlXHJcbiAgICAgICAgcmV0dXJuIFt7XHJcbiAgICAgICAgICAgIGdyb3VwQnk6ICdOb3QgR3JvdXBlZCcsXHJcbiAgICAgICAgICAgIGluZGV4R3JvdXA6IC0xLFxyXG4gICAgICAgICAgICBsZW5ndGg6IC0xLFxyXG4gICAgICAgICAgICByb3dzOiBbLi4ubGlzdF0uc3BsaWNlKDAsIHRoaXMucm93c0J5UGFnZSgpKVxyXG4gICAgICAgIH1dO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBncmlkRGF0YVNvdXJjZUZpbHRlcmVkID0gY29tcHV0ZWQ8VFtdPigoKSA9PiB7XHJcbiAgICAgICAgbGV0IGxpc3Q6IFRbXSA9IFtdO1xyXG5cclxuICAgICAgICBjb25zdCBkYXRhU291cmNlID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UodGhpcy52YWx1ZV9zaWduYWwoKSk7XHJcblxyXG4gICAgICAgIC8vSWdub3JlIEZpbHRlclxyXG4gICAgICAgIGlmICh0aGlzLl9ncmlkU2VhcmNoKCkgPT0gJycgfHwgdGhpcy5zZWFyY2g/Lmlnbm9yZSkge1xyXG4gICAgICAgICAgICBsaXN0ID0gZGF0YVNvdXJjZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vRmlsdGVyIGJ5IHNlYXJjaFxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBTRVRfUk9XID0gbmV3IFNldDxudW1iZXI+KCk7XHJcblxyXG4gICAgICAgICAgICBsZXQgbGlzdEZpbHRlcmVkOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgICBmb3IoY29uc3QgeyBjb2x1bW5OYW1lIH0gb2YgdGhpcy5ncmlkQ29sdW1ucygpKSB7XHJcbiAgICAgICAgICAgICAgICBsaXN0RmlsdGVyZWQgPSBkYXRhU291cmNlLmZpbHRlcigoaXRlbTogYW55KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICFTRVRfUk9XLmhhcyhpdGVtWydpbmRleFJvdyddKVxyXG4gICAgICAgICAgICAgICAgICAgICYmIFN0cmluZyhpdGVtW1Rvb2xzLkZpcnN0Q2hhclRvTG93ZXIoY29sdW1uTmFtZSldKS50cmltKCkudG9VcHBlckNhc2UoKS5pbmNsdWRlcyhTdHJpbmcodGhpcy5fZ3JpZFNlYXJjaCgpKS50cmltKCkudG9VcHBlckNhc2UoKSlcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yKGNvbnN0IHsgaW5kZXhSb3cgfSBvZiBsaXN0RmlsdGVyZWQgYXMgYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgU0VUX1JPVy5hZGQoaW5kZXhSb3cpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxpc3QgPSBUb29scy5CcmVha1JlZmVyZW5jZShsaXN0LmNvbmNhdChsaXN0RmlsdGVyZWQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLkJyZWFrUmVmZXJlbmNlKGxpc3QpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8qKiBHZXQgQ29sdW1uIENvbmZpZ3VyYXRpb24gKi9cclxuICAgIHByb3RlY3RlZCBfR2V0Q29sdW1uQ29uZmlnID0gKGNvbHVtbk5hbWU6IHN0cmluZyk6IElHcmlkQ29sdW1uPFQ+IHwgdW5kZWZpbmVkID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW5zKCkuZmluZCh4ID0+IHgucHJvcGVydHkucmVwbGFjZUFsbCgnICcsICcnKS50b1VwcGVyQ2FzZSgpID09IGNvbHVtbk5hbWUucmVwbGFjZUFsbCgnICcsICcnKS50b1VwcGVyQ2FzZSgpKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqIENsZWFuIE5hbWUgb3IgZ2V0IGFsaWFzICovXHJcbiAgICBwcm90ZWN0ZWQgX0dldENvbHVtbk5hbWUgPSAoY29sdW1uTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICAgICAgICBjb25zdCBjb2x1bW5Db25maWcgPSB0aGlzLl9HZXRDb2x1bW5Db25maWcoY29sdW1uTmFtZSk7XHJcblxyXG4gICAgICAgIC8vR2V0IEFsaWFzXHJcbiAgICAgICAgaWYgKGNvbHVtbkNvbmZpZyAmJiBjb2x1bW5Db25maWcuYWxpYXMgJiYgY29sdW1uQ29uZmlnLmFsaWFzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbkNvbmZpZy5hbGlhcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vQ2xlYW4gaGVhZGVyTmFtZVxyXG4gICAgICAgIGlmICh0aGlzLmNsZWFuQ29sdW1uTmFtZSgpICYmIGNvbHVtbk5hbWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lID0gVG9vbHMuRmlyc3RDaGFyVG9Mb3dlcihjb2x1bW5OYW1lKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGNoYXJBcnJheSA9IFtdO1xyXG4gICAgICAgICAgICBmb3IoY29uc3QgY2hhciBvZiBjb2x1bW5OYW1lKSB7XHJcbiAgICAgICAgICAgICAgICBpZihjaGFyID09PSBjaGFyLnRvVXBwZXJDYXNlKCkpIGNoYXJBcnJheS5wdXNoKCcgJyk7XHJcbiAgICAgICAgICAgICAgICBjaGFyQXJyYXkucHVzaChjaGFyKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2hhckFycmF5WzBdID0gY2hhckFycmF5WzBdLnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWUgPSBjaGFyQXJyYXkuam9pbignJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY29sdW1uTmFtZS50cmltKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIF9HZXRTaG9ydEljb24gPSAoY29sdW1uTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvcnQoKS5jb2x1bW5OYW1lID09IGNvbHVtbk5hbWUgPyB0aGlzLl9zb3J0KCkuaWNvbiA6ICcnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBfR2V0SWQgPSAoaW5kZXhSb3c6IG51bWJlciwgaW5kZXhDb2x1bW46IG51bWJlciwgc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgaWYgKHN1ZmZpeC5sZW5ndGggPiAwKSBzdWZmaXggPSBgLSR7c3VmZml4fWA7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuX2lkfS1yb3cke2luZGV4Um93fWNvbHVtbiR7aW5kZXhDb2x1bW59JHtzdWZmaXh9YDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgX0dldENlbGxWYWx1ZSA9IChyb3c6IGFueSwgY29sdW1uTmFtZTogc3RyaW5nKTogYW55ID0+IHtcclxuICAgICAgICByZXR1cm4gcm93W1Rvb2xzLkZpcnN0Q2hhclRvTG93ZXIoY29sdW1uTmFtZSkucmVwbGFjZUFsbCgnICcsICcnKV07XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIF9HZXRUb29sdGlwID0gKHByZWZpeDogc3RyaW5nLCByb3c6IGFueSwgc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgbGV0IGNvbHVtbiA9IFRvb2xzLkZpcnN0Q2hhclRvTG93ZXIodGhpcy50b29sdGlwQnlSb3coKSkucmVwbGFjZUFsbCgnICcsICcnKTtcclxuXHJcbiAgICAgICAgaWYgKHN1ZmZpeC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHN1ZmZpeCA9IGAgJHtzdWZmaXh9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBCeVJvdygpLmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgPyBgJHtwcmVmaXh9ICR7cm93W2NvbHVtbl19JHtzdWZmaXh9YFxyXG4gICAgICAgICAgICA6IGAke3ByZWZpeH0ke3N1ZmZpeH1gO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBfSGlkZVJvdyA9IChncm91cDogSUdyaWREYXRhU291cmNlKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLl9pc0dyb3VwZWQoKSA/ICEodGhpcy5fZXhwYW5kZWRHcm91cHMuc29tZSh4ID0+IHggPT0gZ3JvdXAuZ3JvdXBCeSkpIDogZmFsc2UpXHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIF9Jc0NlbGxUeXBlKHByb3BlcnR5OiBzdHJpbmcsIGRhdGE6IGFueSwgdHlwZTogJ251bWJlcicgfCAnZGF0ZScgfCAndGVtcGxhdGUnIHwgJ2NvZXJUZXh0Ym94JyB8ICdjb2VyTnVtYmVyYm94JyB8ICdjb2VyU2VsZWN0Ym94JyAgfCAnY29lclN3aXRjaCcpOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgcmVzcG9uc2UgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBjb2x1bW5Db25maWcgPSB0aGlzLl9HZXRDb2x1bW5Db25maWcocHJvcGVydHkpO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YVtwcm9wZXJ0eV07XHJcbiAgICAgICAgY29uc3Qgcm93ID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UoZGF0YSk7XHJcblxyXG4gICAgICAgIGlmIChjb2x1bW5Db25maWcpIHtcclxuICAgICAgICAgICAgaWYgKFsnY29lclRleHRib3gnLCAnY29lck51bWJlcmJveCcsICdjb2VyU2VsZWN0Ym94JywgJ2NvZXJTd2l0Y2gnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW5wdXRDb25maWc6IGFueSA9IGNvbHVtbkNvbmZpZztcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gaW5wdXRDb25maWcuaGFzT3duUHJvcGVydHkodHlwZSlcclxuICAgICAgICAgICAgICAgICAgICAmJiB0eXBlb2YgaW5wdXRDb25maWdbdHlwZV0gPT09ICdmdW5jdGlvbidcclxuICAgICAgICAgICAgICAgICAgICAmJiBpbnB1dENvbmZpZ1t0eXBlXSh7IHByb3BlcnR5LCByb3csIHZhbHVlIH0pLmlzSW5wdXQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGVsc2Ugc3dpdGNoKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbHVtbkNvbmZpZy50eXBlTnVtYmVyID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBjb2x1bW5Db25maWcudHlwZU51bWJlcjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjb2x1bW5Db25maWcudHlwZU51bWJlciA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IChkYXRhID09PSBudWxsKSA/IGZhbHNlIDogY29sdW1uQ29uZmlnLnR5cGVOdW1iZXIoeyBwcm9wZXJ0eSwgcm93LCB2YWx1ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGUnOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2x1bW5Db25maWcudHlwZURhdGUgPT09ICdib29sZWFuJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IGNvbHVtbkNvbmZpZy50eXBlRGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjb2x1bW5Db25maWcudHlwZURhdGUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSAoZGF0YSA9PT0gbnVsbCkgPyBmYWxzZSA6IGNvbHVtbkNvbmZpZy50eXBlRGF0ZSh7IHByb3BlcnR5LCByb3csIHZhbHVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAndGVtcGxhdGUnOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9ICh0eXBlb2YgY29sdW1uQ29uZmlnLnRlbXBsYXRlID09PSAnc3RyaW5nJykgfHwgKHR5cGVvZiBjb2x1bW5Db25maWcudGVtcGxhdGUgPT09ICdmdW5jdGlvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIF9Jc0NlbGxDb2xvcihwcm9wZXJ0eTogc3RyaW5nLCBkYXRhOiBhbnksIGNvbG9yOiAnY29sb3JCbHVlJyB8ICdjb2xvckdyZWVuJyB8ICdjb2xvclllbGxvdycgfCAnY29sb3JSZWQnKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgY29sdW1uQ29uZmlnOiBhbnkgPSB0aGlzLl9HZXRDb2x1bW5Db25maWcocHJvcGVydHkpO1xyXG5cclxuICAgICAgICBpZiAoY29sdW1uQ29uZmlnKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29sdW1uQ29uZmlnW2NvbG9yXSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IGNvbHVtbkNvbmZpZ1tjb2xvcl07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBjb2x1bW5Db25maWdbY29sb3JdID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IGNvbHVtbkNvbmZpZ1tjb2xvcl0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LFxyXG4gICAgICAgICAgICAgICAgICAgIHJvdzogVG9vbHMuQnJlYWtSZWZlcmVuY2UoZGF0YSksXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGRhdGFbcHJvcGVydHldXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXRBdHRyaWJ1dGUocHJvcGVydHk6IHN0cmluZywgZGF0YTogYW55LCBhdHRyaWJ1dGU6IHN0cmluZywgdHlwZTogJ2NvZXJTd2l0Y2gnIHwgJ2NvZXJUZXh0Ym94JyB8ICdjb2VyTnVtYmVyYm94J3wgJ2NvZXJTZWxlY3Rib3gnIHwgJ2RlZmF1bC1jZWxsJyApOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbkNvbmZpZyA9IHRoaXMuX0dldENvbHVtbkNvbmZpZyhwcm9wZXJ0eSk7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBUb29scy5Jc05vdE51bGwoZGF0YSkgPyBkYXRhW3Byb3BlcnR5XSA6IG51bGw7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UoZGF0YSk7XHJcblxyXG4gICAgICAgIGlmIChjb2x1bW5Db25maWcpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdkZWZhdWwtY2VsbCcpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaChhdHRyaWJ1dGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICd0ZXh0QWxpZ24nOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2x1bW5Db25maWc/LnRleHRBbGlnbiB8fCAnbGVmdCc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjYXNlICd0ZW1wbGF0ZSc6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRDb25maWc6IGFueSA9IGNvbHVtbkNvbmZpZztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dENvbmZpZy5oYXNPd25Qcm9wZXJ0eShhdHRyaWJ1dGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0eXBlb2YgaW5wdXRDb25maWdbYXR0cmlidXRlXSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5wdXRDb25maWdbYXR0cmlidXRlXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHR5cGVvZiBpbnB1dENvbmZpZ1thdHRyaWJ1dGVdID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlucHV0Q29uZmlnW2F0dHJpYnV0ZV0oeyBwcm9wZXJ0eSwgcm93LCB2YWx1ZSB9KSB8fCAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZWxzZSBpZihbJ2NvZXJUZXh0Ym94JywgJ2NvZXJOdW1iZXJib3gnLCAnY29lclNlbGVjdGJveCcsICdjb2VyU3dpdGNoJ10uaW5jbHVkZXModHlwZSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0Q29uZmlnOiBhbnkgPSBjb2x1bW5Db25maWc7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXRDb25maWcuaGFzT3duUHJvcGVydHkodHlwZSkgJiYgdHlwZW9mIGlucHV0Q29uZmlnW3R5cGVdID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlucHV0Q29uZmlnW3R5cGVdKHsgcHJvcGVydHksIHJvdywgdmFsdWUgfSlbYXR0cmlidXRlXSB8fCBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgQnV0dG9uQnlSb3cocHJvcGVydHk6ICdzaG93RGVsZXRlQnV0dG9uJyB8ICdzaG93RWRpdEJ1dHRvbicgfCAnc2hvd0dvQnV0dG9uJywgZGF0YTogYW55ID0gbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCByZXNwb25zZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbkJ5Um93OiBhbnkgPSB0aGlzLmJ1dHRvbkJ5Um93O1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IFRvb2xzLklzTm90TnVsbChkYXRhKSA/IFRvb2xzLkJyZWFrUmVmZXJlbmNlKGRhdGEpIDogbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKGJ1dHRvbkJ5Um93Lmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xyXG4gICAgICAgICAgICBpZiAocm93ID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9ICh0eXBlb2YgYnV0dG9uQnlSb3dbcHJvcGVydHldID09PSAnYm9vbGVhbicpID8gYnV0dG9uQnlSb3dbcHJvcGVydHldIDogdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGJ1dHRvbkJ5Um93W3Byb3BlcnR5XSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IGJ1dHRvbkJ5Um93W3Byb3BlcnR5XTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGJ1dHRvbkJ5Um93W3Byb3BlcnR5XSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBidXR0b25CeVJvd1twcm9wZXJ0eV0oeyBwcm9wZXJ0eSwgcm93LCB2YWx1ZTogbnVsbCB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlID8gKHRoaXMuX3ZhbHVlICYmIHRoaXMuX3ZhbHVlLmxlbmd0aCA+IDApIDogZmFsc2U7XHJcbiAgICB9XHJcbn0iXX0=
412
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1ncmlkLmV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvc3JjL2NvbXBvbmVudHMvbGliL2NvZXItZ3JpZC9jb2VyLWdyaWQuZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBTWpELE1BQU0sT0FBTyxpQkFBcUIsU0FBUSxZQUFZO0lBSnREOztRQU1JLFlBQVk7UUFDTyxVQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLFVBQVU7UUFDQSxjQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBYSxjQUFjLENBQUMsQ0FBQztRQUMzRCxnQkFBVyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWMsYUFBYSxDQUFDLENBQUM7UUFDN0Qsb0JBQWUsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsc0JBQWlCLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELHNCQUFpQixHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRCxxQkFBZ0IsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFeEQsV0FBVztRQUNRLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBRyxNQUFNLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxNQUFNLENBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0Isc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBQ2xDLFFBQUcsR0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBQy9CLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxnQkFBVyxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoQyxVQUFLLEdBQUcsTUFBTSxDQUFZLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJGLGVBQWU7UUFDTCxxQkFBZ0IsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFDMUMsa0JBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBRWpELFFBQVE7UUFDRCxZQUFPLEdBQUcsS0FBSyxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUN0QyxvQkFBZSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNyQyxjQUFTLEdBQXNCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQy9DLGlCQUFZLEdBQTRCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3hELGlCQUFZLEdBQXNCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xELFdBQU0sR0FBZ0IsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNyRCxnQkFBVyxHQUF3QixFQUFFLENBQUM7UUFDdEMsYUFBUSxHQUFrQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM1QyxpQkFBWSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNqQyxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkMsZUFBVSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMvQixZQUFPLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLHNCQUFpQixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMxQyxnQkFBVyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNwQyxlQUFVLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ2xDLFVBQUssR0FBRyxLQUFLLENBQVMsTUFBTSxDQUFDLENBQUM7UUFDOUIsYUFBUSxHQUFHLEtBQUssQ0FBUyxPQUFPLENBQUMsQ0FBQztRQUNsQyxhQUFRLEdBQUcsS0FBSyxDQUFTLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxLQUFLLENBQVMsT0FBTyxDQUFDLENBQUM7UUFDaEMsY0FBUyxHQUFHLEtBQUssQ0FBUyxPQUFPLENBQUMsQ0FBQztRQUNuQyxjQUFTLEdBQUcsS0FBSyxDQUFTLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLFdBQU0sR0FBRyxLQUFLLENBQVMsTUFBTSxDQUFDLENBQUM7UUFDL0IsZUFBVSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNsQyxtQkFBYyxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUU3QyxTQUFTO1FBQ0YsZUFBVSxHQUFHLE1BQU0sRUFBUSxDQUFDO1FBQzVCLGtCQUFhLEdBQUcsTUFBTSxFQUFrQixDQUFDO1FBQ3pDLGtCQUFhLEdBQUcsTUFBTSxFQUFPLENBQUM7UUFDOUIsZUFBVSxHQUFHLE1BQU0sRUFBSyxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLE1BQU0sRUFBSyxDQUFDO1FBQy9CLHFCQUFnQixHQUFHLE1BQU0sRUFBSyxDQUFDO1FBQy9CLG1CQUFjLEdBQUcsTUFBTSxFQUFLLENBQUM7UUFDN0IsaUJBQVksR0FBRyxNQUFNLEVBQUssQ0FBQztRQUMzQixpQkFBWSxHQUFHLE1BQU0sRUFBbUIsQ0FBQztRQUN6QyxxQkFBZ0IsR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUNsQyxtQkFBYyxHQUFHLE1BQU0sRUFBNkIsQ0FBQztRQUNyRCxvQkFBZSxHQUFHLE1BQU0sRUFBd0IsQ0FBQztRQUNqRCxzQkFBaUIsR0FBRyxNQUFNLEVBQXdCLENBQUM7UUFDbkQscUJBQWdCLEdBQUcsTUFBTSxFQUF5QixDQUFDO1FBRTFELFVBQVU7UUFDQSxnQkFBVyxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUVILFVBQVU7UUFDQSxlQUFVLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRTtZQUMxQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBZ0VGLFVBQVU7UUFDQSxnQkFBVyxHQUFHLFFBQVEsQ0FBZ0IsR0FBRyxFQUFFO1lBQ2xELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7WUFFdEMscUJBQXFCO1lBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7b0JBQ3hDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlCLENBQUM7WUFDTCxDQUFDO1lBRUQsaUJBQWlCOztnQkFDWixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO29CQUN6QyxLQUFLLE1BQU0sUUFBUSxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUN6QixXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM5QixDQUFDO2dCQUNMLENBQUM7WUFFRCx3QkFBd0I7WUFDeEIsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUVELHVCQUF1QjtZQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDcEYsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBRUQsa0JBQWtCO1lBQ2xCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNwQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBYztnQkFDN0UsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFdBQVcsRUFBRSxXQUFXLEVBQUU7Z0JBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxJQUFJLE1BQU07YUFDMUQsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztRQUdILFVBQVU7UUFDQSxtQkFBYyxHQUFHLFFBQVEsQ0FBb0IsR0FBRyxFQUFFO1lBQ3hELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBRXpDLGVBQWU7WUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUNwQixtQkFBbUI7Z0JBQ25CLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFFbkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztnQkFDckMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFXLEVBQUUsQ0FBQztvQkFDNUIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztnQkFFRCxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDOUIsbUJBQW1CLENBQUMsSUFBSSxDQUFDO3dCQUNyQixPQUFPLEVBQUUsTUFBTTt3QkFDZixVQUFVLEVBQUUsVUFBVSxFQUFFO3dCQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLE1BQU07d0JBQ3pFLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDOzZCQUNWLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQzs2QkFDckQsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQzlCLG9FQUFvRTtxQkFDM0UsQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBRUQsbUJBQW1CO2dCQUNuQixPQUFPLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQztZQUVELFVBQVU7WUFDVixPQUFPLENBQUM7b0JBQ0osT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQ2QsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDVixJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUMvQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUdILFVBQVU7UUFDQSwyQkFBc0IsR0FBRyxRQUFRLENBQU0sR0FBRyxFQUFFO1lBQ2xELElBQUksSUFBSSxHQUFRLEVBQUUsQ0FBQztZQUVuQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBRTdELGVBQWU7WUFDZixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUN0QixDQUFDO1lBRUQsa0JBQWtCO2lCQUNiLENBQUM7Z0JBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztnQkFFbEMsSUFBSSxZQUFZLEdBQVUsRUFBRSxDQUFDO2dCQUM3QixLQUFJLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztvQkFDN0MsWUFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUMzQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDOzJCQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUNySSxDQUFDO29CQUVGLEtBQUksTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLFlBQW1CLEVBQUUsQ0FBQzt3QkFDNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDMUIsQ0FBQztvQkFFRCxJQUFJLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQzNELENBQUM7WUFDTCxDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBR0gsK0JBQStCO1FBQ3JCLHFCQUFnQixHQUFHLENBQUMsVUFBa0IsRUFBOEIsRUFBRTtZQUM1RSxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsSSxDQUFDLENBQUE7UUFHRCw4QkFBOEI7UUFDcEIsbUJBQWMsR0FBRyxDQUFDLFVBQWtCLEVBQVUsRUFBRTtZQUN0RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFdkQsV0FBVztZQUNYLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RFLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQztZQUM5QixDQUFDO1lBRUQsa0JBQWtCO1lBQ2xCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELFVBQVUsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRWhELE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDckIsS0FBSSxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDM0IsSUFBRyxJQUFJLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTt3QkFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNwRCxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixDQUFDO2dCQUVELFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzFDLFVBQVUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFFRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUE7UUFHRCxNQUFNO1FBQ0ksa0JBQWEsR0FBRyxDQUFDLFVBQWtCLEVBQUUsRUFBRTtZQUM3QyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUUsQ0FBQyxDQUFBO1FBR0QsTUFBTTtRQUNJLFdBQU0sR0FBRyxDQUFDLFFBQWdCLEVBQUUsV0FBbUIsRUFBRSxTQUFpQixFQUFFLEVBQVUsRUFBRTtZQUN0RixJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFBRSxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUM3QyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxRQUFRLFNBQVMsV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3JFLENBQUMsQ0FBQTtRQUdELE1BQU07UUFDSSxrQkFBYSxHQUFHLENBQUMsR0FBUSxFQUFFLFVBQWtCLEVBQU8sRUFBRTtZQUM1RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQTtRQUdELE1BQU07UUFDSSxnQkFBVyxHQUFHLENBQUMsTUFBYyxFQUFFLEdBQVEsRUFBRSxTQUFpQixFQUFFLEVBQVUsRUFBRTtZQUM5RSxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUU3RSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzFCLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLEVBQUU7Z0JBQ3JDLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUE7UUFHRCxNQUFNO1FBQ0ksYUFBUSxHQUFHLENBQUMsS0FBc0IsRUFBVyxFQUFFO1lBQ3JELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUYsQ0FBQyxDQUFBO0tBK0lKO0lBbllHLFFBQVE7SUFDUixJQUFjLE9BQU87UUFDakIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTNCLElBQUksTUFBTSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNuQixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDdkIsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBRSxDQUFDO1lBQ25FLE1BQU0sTUFBTSxHQUFHLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RSxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDbEIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxPQUFPLEdBQUcsV0FBVyxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQUcsT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4RyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUdELFFBQVE7SUFDUixJQUFjLGFBQWE7UUFDdkIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFDckYsQ0FBQztJQUdELGVBQWU7UUFDWCxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsc0JBQXNCO0lBQ04sUUFBUSxDQUFDLEtBQVU7UUFDL0IsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFdkMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUM3RCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQzNFLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFHRCxzQkFBc0I7SUFDTixVQUFVLENBQUMsS0FBVTtRQUNqQyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsSUFBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUV2QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQzdELE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FDM0UsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUE0TEQsTUFBTTtJQUNJLFdBQVcsQ0FBQyxRQUFnQixFQUFFLElBQVMsRUFBRSxJQUF3RztRQUN2SixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2pGLE1BQU0sV0FBVyxHQUFRLFlBQVksQ0FBQztnQkFDdEMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO3VCQUNwQyxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVO3VCQUN2QyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQy9ELENBQUM7O2dCQUVJLFFBQU8sSUFBSSxFQUFFLENBQUM7b0JBQ2YsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO3dCQUNaLElBQUksT0FBTyxZQUFZLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDOzRCQUMvQyxRQUFRLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQzt3QkFDdkMsQ0FBQzs2QkFFSSxJQUFJLE9BQU8sWUFBWSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQzs0QkFDckQsUUFBUSxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7d0JBQzNGLENBQUM7d0JBRUQsTUFBTTtvQkFDVixDQUFDO29CQUVELEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQzt3QkFDVixJQUFJLElBQUksS0FBSyxJQUFJOzRCQUFFLE9BQU8sS0FBSyxDQUFDO3dCQUVoQyxJQUFJLE9BQU8sWUFBWSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQzs0QkFDN0MsUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7d0JBQ3JDLENBQUM7NkJBRUksSUFBSSxPQUFPLFlBQVksQ0FBQyxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUM7NEJBQ25ELFFBQVEsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO3dCQUN6RixDQUFDO3dCQUVELE1BQU07b0JBQ1YsQ0FBQztvQkFFRCxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQ2QsSUFBSSxJQUFJLEtBQUssSUFBSTs0QkFBRSxPQUFPLEtBQUssQ0FBQzt3QkFDaEMsUUFBUSxHQUFHLENBQUMsT0FBTyxZQUFZLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxZQUFZLENBQUMsUUFBUSxLQUFLLFVBQVUsQ0FBQyxDQUFDO3dCQUN4RyxNQUFNO29CQUNWLENBQUM7Z0JBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBR0QsTUFBTTtJQUNJLFlBQVksQ0FBQyxRQUFnQixFQUFFLElBQVMsRUFBRSxLQUE4RDtRQUM5RyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxZQUFZLEdBQVEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFELElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixJQUFJLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMzQyxRQUFRLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLENBQUM7aUJBRUksSUFBSSxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDakQsUUFBUSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDM0IsUUFBUTtvQkFDUixHQUFHLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7b0JBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDO2lCQUN4QixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFHRCxNQUFNO0lBQ0ksWUFBWSxDQUFDLFFBQWdCLEVBQUUsSUFBUyxFQUFFLFNBQWlCLEVBQUUsSUFBcUY7UUFDeEosTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzVELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNmLElBQUksSUFBSSxLQUFLLGFBQWEsRUFBRSxDQUFDO2dCQUN6QixRQUFPLFNBQVMsRUFBRSxDQUFDO29CQUNmLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQzt3QkFDZixPQUFPLFlBQVksRUFBRSxTQUFTLElBQUksTUFBTSxDQUFDO29CQUM3QyxDQUFDO29CQUVELEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQzt3QkFDZCxNQUFNLFdBQVcsR0FBUSxZQUFZLENBQUM7d0JBRXRDLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDOzRCQUN4QyxJQUFHLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dDQUM1QyxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQzs0QkFDbEMsQ0FBQztpQ0FFSSxJQUFHLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFVBQVUsRUFBRSxDQUFDO2dDQUNuRCxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7NEJBQ2xFLENBQUM7d0JBQ0wsQ0FBQztvQkFDTCxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO2lCQUVJLElBQUcsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckYsTUFBTSxXQUFXLEdBQVEsWUFBWSxDQUFDO2dCQUN0QyxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQzlFLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQztnQkFDMUUsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUdELE1BQU07SUFDSSxXQUFXLENBQUMsUUFBZ0UsRUFBRSxPQUFZLElBQUk7UUFDcEcsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE1BQU0sV0FBVyxHQUFRLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXRFLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNmLFFBQVEsR0FBRyxDQUFDLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMzRixDQUFDO2lCQUVJLElBQUksT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2xELFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckMsQ0FBQztpQkFFSSxJQUFJLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNuRCxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNyRSxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN0RSxDQUFDOytHQXJkUSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw2c0lBUWUsV0FBVyx1RkFDVCxhQUFhLHVGQUNiLGFBQWEsc0ZBQ2QsWUFBWSx1RkFiNUMsRUFBRTs7NEZBRUgsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzhCQWlDWSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUdyaWRCdXR0b25CeVJvdywgSUdyaWRDb2x1bW4sIElHcmlkRGF0YVNvdXJjZSwgSUdyaWRJbXBvcnQsIElHcmlkSGVhZGVyQnV0dG9uLCBJR3JpZEhlYWRlckV4cG9ydEJ1dHRvbiwgSUdyaWRLZXl1cEVudGVyLCBJR3JpZFNlYXJjaCwgSUdyaWRJbnB1dFN3aXRjaENoYW5nZSwgSUdyaWRJbnB1dFRleHRib3gsIElHcmlkU29ydCwgSUdyaWRDaGVja2JveCwgSUdyaWRJbnB1dENoZWNrYm94LCBJR3JpZEhlYWRlciB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgdmlld0NoaWxkLCB2aWV3Q2hpbGRyZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb2VyQWxlcnQgfSBmcm9tIFwiLi4vLi4vbGliL2NvZXItYWxlcnQvY29lci1hbGVydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29lckNoZWNrYm94IH0gZnJvbSBcIi4uLy4uL2xpYi9jb2VyLWNoZWNrYm94L2NvZXItY2hlY2tib3guY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvZXJOdW1iZXJCb3ggfSBmcm9tIFwiLi4vLi4vbGliL2NvZXItbnVtYmVyYm94L2NvZXItbnVtYmVyYm94LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb2VyU2VsZWN0Ym94IH0gZnJvbSBcIi4uLy4uL2xpYi9jb2VyLXNlbGVjdGJveC9jb2VyLXNlbGVjdGJveC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29lclRleHRCb3ggfSBmcm9tIFwiLi4vLi4vbGliL2NvZXItdGV4dGJveC9jb2VyLXRleHRib3guY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xzL2xpYi9jb250cm9sLXZhbHVlLmNsYXNzJztcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICcuLi8uLi8uLi90b29scy9saWIvZGF0ZS10aW1lLmNsYXNzJztcclxuaW1wb3J0IHsgU2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvbGliL3NjcmVlbi5jbGFzcyc7XHJcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvbGliL3Rvb2xzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLWdyaWQtZXh0ZW5zaW9uJyxcclxuICAgIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29lckdyaWRFeHRlbnNpb248VD4gZXh0ZW5kcyBDb250cm9sVmFsdWUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgICAvL0luamVjdGlvbnNcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydCA9IGluamVjdChDb2VyQWxlcnQpO1xyXG5cclxuICAgIC8vRWxlbWVudHNcclxuICAgIHByb3RlY3RlZCBpbnB1dEZpbGUgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZj4oJ2lucHV0RmlsZVJlZicpO1xyXG4gICAgcHJvdGVjdGVkIGlucHV0U2VhcmNoID0gdmlld0NoaWxkLnJlcXVpcmVkPENvZXJUZXh0Qm94PignaW5wdXRTZWFyY2gnKTtcclxuICAgIHByb3RlY3RlZCBjb2VyVGV4dGJveExpc3QgPSB2aWV3Q2hpbGRyZW4oQ29lclRleHRCb3gpO1xyXG4gICAgcHJvdGVjdGVkIGNvZXJOdW1iZXJib3hMaXN0ID0gdmlld0NoaWxkcmVuKENvZXJOdW1iZXJCb3gpO1xyXG4gICAgcHJvdGVjdGVkIGNvZXJTZWxlY3Rib3hMaXN0ID0gdmlld0NoaWxkcmVuKENvZXJTZWxlY3Rib3gpO1xyXG4gICAgcHJvdGVjdGVkIGNvZXJDaGVja2JveExpc3QgPSB2aWV3Q2hpbGRyZW4oQ29lckNoZWNrYm94KTtcclxuXHJcbiAgICAvL1ZhcmlhYmxlc1xyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF92YWx1ZTogVFtdID0gW107XHJcbiAgICBwcm90ZWN0ZWQgdmFsdWVfc2lnbmFsID0gc2lnbmFsPFRbXT4oW10pO1xyXG4gICAgcHJvdGVjdGVkIF9ncmlkU2VhcmNoID0gc2lnbmFsPHN0cmluZyB8IG51bWJlcj4oJycpO1xyXG4gICAgcHJvdGVjdGVkIF9pc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcHJvdGVjdGVkIF9pc0xvYWRpbmdNZXNzYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZyA9IFRvb2xzLkdldEd1aWQoJ2NvZXItZ3JpZCcpO1xyXG4gICAgcHJvdGVjdGVkIF9leHBhbmRlZEdyb3Vwczogc3RyaW5nW10gPSBbXTtcclxuICAgIHByb3RlY3RlZCBfZW5hYmxlQW5pbWF0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJvdGVjdGVkIF9pbmRleEZvY3VzID0gc2lnbmFsPG51bWJlcj4oMCk7XHJcbiAgICBwcm90ZWN0ZWQgX3NvcnQgPSBzaWduYWw8SUdyaWRTb3J0Pih7IGNvbHVtbk5hbWU6ICcnLCBkaXJlY3Rpb246ICdub25lJywgaWNvbjogJycgfSk7XHJcblxyXG4gICAgLy9HZW5lcmljIFRvb2xzXHJcbiAgICBwcm90ZWN0ZWQgR2V0TnVtZXJpY0Zvcm1hdCA9IFRvb2xzLkdldE51bWVyaWNGb3JtYXQ7XHJcbiAgICBwcm90ZWN0ZWQgR2V0RGF0ZUZvcm1hdCA9IERhdGVUaW1lLkdldERhdGVGb3JtYXQ7XHJcblxyXG4gICAgLy9JbnB1dHNcclxuICAgIHB1YmxpYyBjb2x1bW5zID0gaW5wdXQ8SUdyaWRDb2x1bW48VD5bXT4oW10pO1xyXG4gICAgcHVibGljIGNsZWFuQ29sdW1uTmFtZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gICAgQElucHV0KCkgYWRkQnV0dG9uOiBJR3JpZEhlYWRlckJ1dHRvbiA9IHsgc2hvdzogZmFsc2UgfTtcclxuICAgIEBJbnB1dCgpIGV4cG9ydEJ1dHRvbjogSUdyaWRIZWFkZXJFeHBvcnRCdXR0b24gPSB7IHNob3c6IGZhbHNlIH07XHJcbiAgICBASW5wdXQoKSBpbXBvcnRCdXR0b246IElHcmlkSGVhZGVyQnV0dG9uID0geyBzaG93OiBmYWxzZSB9O1xyXG4gICAgQElucHV0KCkgc2VhcmNoOiBJR3JpZFNlYXJjaCA9IHsgc2hvdzogZmFsc2UsIGlnbm9yZTogZmFsc2UgfTtcclxuICAgIEBJbnB1dCgpIGJ1dHRvbkJ5Um93OiBJR3JpZEJ1dHRvbkJ5Um93PFQ+ID0ge307XHJcbiAgICBASW5wdXQoKSBjaGVja2JveDogSUdyaWRDaGVja2JveCA9IHsgc2hvdzogZmFsc2UgfTtcclxuICAgIHB1YmxpYyB0b29sdGlwQnlSb3cgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNEaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyByb3dzQnlQYWdlID0gaW5wdXQ8bnVtYmVyPig1MCk7XHJcbiAgICBwdWJsaWMgZ3JvdXBCeSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gICAgcHVibGljIHNob3dDb2x1bW5Hcm91cGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIHJvd3NCeUdyb3VwID0gaW5wdXQ8bnVtYmVyPig1MCk7XHJcbiAgICBwdWJsaWMgaXNJbnZpc2libGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgc2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gICAgcHVibGljIHdpZHRoID0gaW5wdXQ8c3RyaW5nPignMTAwJScpO1xyXG4gICAgcHVibGljIE1pbldpZHRoID0gaW5wdXQ8c3RyaW5nPignMjUwcHgnKTtcclxuICAgIHB1YmxpYyBNYXhXaWR0aCA9IGlucHV0PHN0cmluZz4oJzEwMCUnKTtcclxuICAgIHB1YmxpYyBoZWlnaHQgPSBpbnB1dDxzdHJpbmc+KCczNTBweCcpO1xyXG4gICAgcHVibGljIG1pbkhlaWdodCA9IGlucHV0PHN0cmluZz4oJzE0MHB4Jyk7XHJcbiAgICBwdWJsaWMgbWF4SGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMTAwdmgnKTtcclxuICAgIHB1YmxpYyBtYXJnaW4gPSBpbnB1dDxzdHJpbmc+KCdhdXRvJyk7XHJcbiAgICBwdWJsaWMgZW5hYmxlU29ydCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gICAgcHVibGljIGVuYWJsZVJvd0ZvY3VzID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gICAgLy9PdXRwdXRzXHJcbiAgICBwdWJsaWMgb25DbGlja0FkZCA9IG91dHB1dDx2b2lkPigpO1xyXG4gICAgcHVibGljIG9uQ2xpY2tJbXBvcnQgPSBvdXRwdXQ8SUdyaWRJbXBvcnQ8VD4+KCk7XHJcbiAgICBwdWJsaWMgb25DbGlja0V4cG9ydCA9IG91dHB1dDxUW10+KCk7XHJcbiAgICBwdWJsaWMgb25DbGlja1JvdyA9IG91dHB1dDxUPigpO1xyXG4gICAgcHVibGljIG9uRG91YmxlQ2xpY2tSb3cgPSBvdXRwdXQ8VD4oKTtcclxuICAgIHB1YmxpYyBvbkNsaWNrRGVsZXRlUm93ID0gb3V0cHV0PFQ+KCk7XHJcbiAgICBwdWJsaWMgb25DbGlja0VkaXRSb3cgPSBvdXRwdXQ8VD4oKTtcclxuICAgIHB1YmxpYyBvbkNsaWNrR29Sb3cgPSBvdXRwdXQ8VD4oKTtcclxuICAgIHB1YmxpYyBvbktleXVwRW50ZXIgPSBvdXRwdXQ8SUdyaWRLZXl1cEVudGVyPigpO1xyXG4gICAgcHVibGljIG9uS2V5dXBFbnRlckxhc3QgPSBvdXRwdXQ8dm9pZD4oKTtcclxuICAgIHB1YmxpYyBvblN3aXRjaENoYW5nZSA9IG91dHB1dDxJR3JpZElucHV0U3dpdGNoQ2hhbmdlPFQ+PigpO1xyXG4gICAgcHVibGljIG9uVGV4dGJveENoYW5nZSA9IG91dHB1dDxJR3JpZElucHV0VGV4dGJveDxUPj4oKTtcclxuICAgIHB1YmxpYyBvblNlbGVjdGJveENoYW5nZSA9IG91dHB1dDxJR3JpZElucHV0VGV4dGJveDxUPj4oKTtcclxuICAgIHB1YmxpYyBvbkNoZWNrYm94Q2hhbmdlID0gb3V0cHV0PElHcmlkSW5wdXRDaGVja2JveDxUPj4oKTtcclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgX2lzRGlzYWJsZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNEaXNhYmxlZCgpIHx8IHRoaXMuaXNMb2FkaW5nKCkgfHwgdGhpcy5pc0ludmlzaWJsZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9pc0dyb3VwZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXBCeSgpLmxlbmd0aCA+IDA7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBfaGVpZ2h0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IHRoaXMuaGVpZ2h0KCk7XHJcblxyXG4gICAgICAgIGlmIChoZWlnaHQgPT0gJ2Z1bGwnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IFRPT0xCQVIgPSA0NTtcclxuICAgICAgICAgICAgY29uc3QgUEFHRV9IRUFERVIgPSA3MDtcclxuICAgICAgICAgICAgY29uc3QgR1JJRF9IRUFERVIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLl9pZH0taGVhZGVyYCkhO1xyXG4gICAgICAgICAgICBjb25zdCBIRUFERVIgPSAoR1JJRF9IRUFERVIgJiYgR1JJRF9IRUFERVIuY2hpbGRyZW4ubGVuZ3RoID4gMCkgPyA1MCA6IDA7XHJcbiAgICAgICAgICAgIGNvbnN0IE1BUkdJTiA9IDMwO1xyXG4gICAgICAgICAgICBjb25zdCBQQURESU5HID0gMjA7XHJcbiAgICAgICAgICAgIGNvbnN0IEZPT1RFUiA9IHRoaXMuc2hvd0Zvb3RlcigpID8gMjQuNSA6IDA7XHJcbiAgICAgICAgICAgIGhlaWdodCA9IChTY3JlZW4uV0lORE9XX0hFSUdIVCAtIFRPT0xCQVIgLSBQQUdFX0hFQURFUiAtIE1BUkdJTiAtIEhFQURFUiAtIFBBRERJTkcgLSBGT09URVIpICsgJ3B4JztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBoZWlnaHQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vZ2V0dGVyXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IF9vbmx5T25lQ2hlY2soKSB7XHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLklzTm90TnVsbCh0aGlzLmNoZWNrYm94Lm9ubHlPbmVDaGVjaykgJiYgdGhpcy5jaGVja2JveC5vbmx5T25lQ2hlY2s7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9lbmFibGVBbmltYXRpb25zID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZ01lc3NhZ2UgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvL0NvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgU2V0VmFsdWUodmFsdWU6IFRbXSk6IHZvaWQge1xyXG4gICAgICAgIGxldCBpbmRleFJvdyA9IDA7XHJcbiAgICAgICAgaWYoIVRvb2xzLklzTm90TnVsbCh2YWx1ZSkpIHZhbHVlID0gW107XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBUb29scy5CcmVha1JlZmVyZW5jZSh2YWx1ZSkubWFwKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oeyBjaGVja2VkOiBmYWxzZSB9LCB7IC4uLml0ZW0gfSwgeyBpbmRleFJvdzogaW5kZXhSb3crKyB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuX1VwZGF0ZVZhbHVlKGRhdGFTb3VyY2UpO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gZGF0YVNvdXJjZTtcclxuICAgICAgICB0aGlzLnZhbHVlX3NpZ25hbC5zZXQoZGF0YVNvdXJjZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBUW10pOiB2b2lkIHtcclxuICAgICAgICBsZXQgaW5kZXhSb3cgPSAwO1xyXG4gICAgICAgIGlmKCFUb29scy5Jc05vdE51bGwodmFsdWUpKSB2YWx1ZSA9IFtdO1xyXG5cclxuICAgICAgICBjb25zdCBkYXRhU291cmNlID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UodmFsdWUpLm1hcCgoaXRlbTogYW55KSA9PlxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHsgY2hlY2tlZDogZmFsc2UgfSwgeyAuLi5pdGVtIH0sIHsgaW5kZXhSb3c6IGluZGV4Um93KysgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLl92YWx1ZSA9IGRhdGFTb3VyY2U7XHJcbiAgICAgICAgdGhpcy52YWx1ZV9zaWduYWwuc2V0KGRhdGFTb3VyY2UpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAgLy9jb21wdXRlZFxyXG4gICAgIHByb3RlY3RlZCBncmlkQ29sdW1ucyA9IGNvbXB1dGVkPElHcmlkSGVhZGVyW10+KCgpID0+IHtcclxuICAgICAgICBjb25zdCBTRVRfQ09MVU1OUyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICAgICAgICAvL0hhcyBmaWx0ZXIgY29sdW1ucz9cclxuICAgICAgICBpZiAodGhpcy5jb2x1bW5zKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHsgcHJvcGVydHkgfSBvZiB0aGlzLmNvbHVtbnMoKSkge1xyXG4gICAgICAgICAgICAgICAgU0VUX0NPTFVNTlMuYWRkKHByb3BlcnR5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9HZXQgYWxsIGNvbHVtbnNcclxuICAgICAgICBlbHNlIGZvciAoY29uc3Qgcm93IG9mIHRoaXMudmFsdWVfc2lnbmFsKCkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiByb3cpIHtcclxuICAgICAgICAgICAgICAgIFNFVF9DT0xVTU5TLmFkZChwcm9wZXJ0eSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vUmVtb3ZlIGluZGV4Um93IGNvbHVtblxyXG4gICAgICAgIGlmIChTRVRfQ09MVU1OUy5oYXMoJ2luZGV4Um93JykpIHtcclxuICAgICAgICAgICAgU0VUX0NPTFVNTlMuZGVsZXRlKCdpbmRleFJvdycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9SZW1vdmUgZ3JvdXBCeSBjb2x1bW5cclxuICAgICAgICBpZiAodGhpcy5faXNHcm91cGVkKCkgJiYgIXRoaXMuc2hvd0NvbHVtbkdyb3VwZWQoKSAmJiBTRVRfQ09MVU1OUy5oYXModGhpcy5ncm91cEJ5KCkpKSB7XHJcbiAgICAgICAgICAgIFNFVF9DT0xVTU5TLmRlbGV0ZSh0aGlzLmdyb3VwQnkoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1NldCBpbmRleCBjb2x1bW5cclxuICAgICAgICBsZXQgaW5kZXhDb2x1bW4gPSAwO1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKFNFVF9DT0xVTU5TKS5tYXAocHJvcGVydHkgPT4gVG9vbHMuQnJlYWtSZWZlcmVuY2U8SUdyaWRIZWFkZXI+KHtcclxuICAgICAgICAgICAgY29sdW1uTmFtZTogcHJvcGVydHksXHJcbiAgICAgICAgICAgIGluZGV4Q29sdW1uOiBpbmRleENvbHVtbisrLFxyXG4gICAgICAgICAgICB3aWR0aDogdGhpcy5fR2V0Q29sdW1uQ29uZmlnKHByb3BlcnR5KT8ud2lkdGggfHwgJ2F1dG8nXHJcbiAgICAgICAgfSkpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBncmlkRGF0YVNvdXJjZSA9IGNvbXB1dGVkPElHcmlkRGF0YVNvdXJjZVtdPigoKSA9PiB7XHJcbiAgICAgICAgbGV0IGxpc3QgPSB0aGlzLmdyaWREYXRhU291cmNlRmlsdGVyZWQoKTtcclxuXHJcbiAgICAgICAgLy9JdCdzIEdyb3VwZWQ/XHJcbiAgICAgICAgaWYgKHRoaXMuX2lzR3JvdXBlZCgpKSB7XHJcbiAgICAgICAgICAgIC8vbGV0IGluZGV4Um93ID0gMDtcclxuICAgICAgICAgICAgbGV0IGluZGV4R3JvdXAgPSAwO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgU0VUX0NPTFVNTiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiBsaXN0IGFzIGFueSkge1xyXG4gICAgICAgICAgICAgICAgU0VUX0NPTFVNTi5hZGQocm93W3RoaXMuZ3JvdXBCeSgpXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IERBVEFfU09VUkNFX0dST1BVRUQgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjb2x1bW4gb2YgU0VUX0NPTFVNTikge1xyXG4gICAgICAgICAgICAgICAgREFUQV9TT1VSQ0VfR1JPUFVFRC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICBncm91cEJ5OiBjb2x1bW4sXHJcbiAgICAgICAgICAgICAgICAgICAgaW5kZXhHcm91cDogaW5kZXhHcm91cCsrLFxyXG4gICAgICAgICAgICAgICAgICAgIGxlbmd0aDogbGlzdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLmdyb3VwQnkoKV0gPT0gY29sdW1uKS5sZW5ndGgsXHJcbiAgICAgICAgICAgICAgICAgICAgcm93czogWy4uLmxpc3RdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLmdyb3VwQnkoKV0gPT0gY29sdW1uKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BsaWNlKDAsIHRoaXMucm93c0J5R3JvdXAoKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8ubWFwKChpdGVtOiBhbnkpID0+IE9iamVjdC5hc3NpZ24oeyBpbmRleFJvdzogaW5kZXhSb3crKyB9LCBpdGVtKSlcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL1Jlc3BvbnNlIGJ5IGdyb3VwXHJcbiAgICAgICAgICAgIHJldHVybiBbLi4uREFUQV9TT1VSQ0VfR1JPUFVFRF0uc3BsaWNlKDAsIHRoaXMucm93c0J5UGFnZSgpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vUmVzcG9uc2VcclxuICAgICAgICByZXR1cm4gW3tcclxuICAgICAgICAgICAgZ3JvdXBCeTogJ05vdCBHcm91cGVkJyxcclxuICAgICAgICAgICAgaW5kZXhHcm91cDogLTEsXHJcbiAgICAgICAgICAgIGxlbmd0aDogLTEsXHJcbiAgICAgICAgICAgIHJvd3M6IFsuLi5saXN0XS5zcGxpY2UoMCwgdGhpcy5yb3dzQnlQYWdlKCkpXHJcbiAgICAgICAgfV07XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIGdyaWREYXRhU291cmNlRmlsdGVyZWQgPSBjb21wdXRlZDxUW10+KCgpID0+IHtcclxuICAgICAgICBsZXQgbGlzdDogVFtdID0gW107XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBUb29scy5CcmVha1JlZmVyZW5jZSh0aGlzLnZhbHVlX3NpZ25hbCgpKTtcclxuXHJcbiAgICAgICAgLy9JZ25vcmUgRmlsdGVyXHJcbiAgICAgICAgaWYgKHRoaXMuX2dyaWRTZWFyY2goKSA9PSAnJyB8fCB0aGlzLnNlYXJjaD8uaWdub3JlKSB7XHJcbiAgICAgICAgICAgIGxpc3QgPSBkYXRhU291cmNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9GaWx0ZXIgYnkgc2VhcmNoXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IFNFVF9ST1cgPSBuZXcgU2V0PG51bWJlcj4oKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBsaXN0RmlsdGVyZWQ6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgIGZvcihjb25zdCB7IGNvbHVtbk5hbWUgfSBvZiB0aGlzLmdyaWRDb2x1bW5zKCkpIHtcclxuICAgICAgICAgICAgICAgIGxpc3RGaWx0ZXJlZCA9IGRhdGFTb3VyY2UuZmlsdGVyKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgIVNFVF9ST1cuaGFzKGl0ZW1bJ2luZGV4Um93J10pXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgU3RyaW5nKGl0ZW1bVG9vbHMuRmlyc3RDaGFyVG9Mb3dlcihjb2x1bW5OYW1lKV0pLnRyaW0oKS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKFN0cmluZyh0aGlzLl9ncmlkU2VhcmNoKCkpLnRyaW0oKS50b1VwcGVyQ2FzZSgpKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IoY29uc3QgeyBpbmRleFJvdyB9IG9mIGxpc3RGaWx0ZXJlZCBhcyBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICBTRVRfUk9XLmFkZChpbmRleFJvdyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbGlzdCA9IFRvb2xzLkJyZWFrUmVmZXJlbmNlKGxpc3QuY29uY2F0KGxpc3RGaWx0ZXJlZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gVG9vbHMuQnJlYWtSZWZlcmVuY2UobGlzdCk7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLyoqIEdldCBDb2x1bW4gQ29uZmlndXJhdGlvbiAqL1xyXG4gICAgcHJvdGVjdGVkIF9HZXRDb2x1bW5Db25maWcgPSAoY29sdW1uTmFtZTogc3RyaW5nKTogSUdyaWRDb2x1bW48VD4gfCB1bmRlZmluZWQgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbnMoKS5maW5kKHggPT4geC5wcm9wZXJ0eS5yZXBsYWNlQWxsKCcgJywgJycpLnRvVXBwZXJDYXNlKCkgPT0gY29sdW1uTmFtZS5yZXBsYWNlQWxsKCcgJywgJycpLnRvVXBwZXJDYXNlKCkpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogQ2xlYW4gTmFtZSBvciBnZXQgYWxpYXMgKi9cclxuICAgIHByb3RlY3RlZCBfR2V0Q29sdW1uTmFtZSA9IChjb2x1bW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbkNvbmZpZyA9IHRoaXMuX0dldENvbHVtbkNvbmZpZyhjb2x1bW5OYW1lKTtcclxuXHJcbiAgICAgICAgLy9HZXQgQWxpYXNcclxuICAgICAgICBpZiAoY29sdW1uQ29uZmlnICYmIGNvbHVtbkNvbmZpZy5hbGlhcyAmJiBjb2x1bW5Db25maWcuYWxpYXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gY29sdW1uQ29uZmlnLmFsaWFzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9DbGVhbiBoZWFkZXJOYW1lXHJcbiAgICAgICAgaWYgKHRoaXMuY2xlYW5Db2x1bW5OYW1lKCkgJiYgY29sdW1uTmFtZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbk5hbWUgPSBUb29scy5GaXJzdENoYXJUb0xvd2VyKGNvbHVtbk5hbWUpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgY2hhckFycmF5ID0gW107XHJcbiAgICAgICAgICAgIGZvcihjb25zdCBjaGFyIG9mIGNvbHVtbk5hbWUpIHtcclxuICAgICAgICAgICAgICAgIGlmKGNoYXIgPT09IGNoYXIudG9VcHBlckNhc2UoKSkgY2hhckFycmF5LnB1c2goJyAnKTtcclxuICAgICAgICAgICAgICAgIGNoYXJBcnJheS5wdXNoKGNoYXIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjaGFyQXJyYXlbMF0gPSBjaGFyQXJyYXlbMF0udG9VcHBlckNhc2UoKTtcclxuICAgICAgICAgICAgY29sdW1uTmFtZSA9IGNoYXJBcnJheS5qb2luKCcnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjb2x1bW5OYW1lLnRyaW0oKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgX0dldFNob3J0SWNvbiA9IChjb2x1bW5OYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc29ydCgpLmNvbHVtbk5hbWUgPT0gY29sdW1uTmFtZSA/IHRoaXMuX3NvcnQoKS5pY29uIDogJyc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIF9HZXRJZCA9IChpbmRleFJvdzogbnVtYmVyLCBpbmRleENvbHVtbjogbnVtYmVyLCBzdWZmaXg6IHN0cmluZyA9ICcnKTogc3RyaW5nID0+IHtcclxuICAgICAgICBpZiAoc3VmZml4Lmxlbmd0aCA+IDApIHN1ZmZpeCA9IGAtJHtzdWZmaXh9YDtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5faWR9LXJvdyR7aW5kZXhSb3d9Y29sdW1uJHtpbmRleENvbHVtbn0ke3N1ZmZpeH1gO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBfR2V0Q2VsbFZhbHVlID0gKHJvdzogYW55LCBjb2x1bW5OYW1lOiBzdHJpbmcpOiBhbnkgPT4ge1xyXG4gICAgICAgIHJldHVybiByb3dbVG9vbHMuRmlyc3RDaGFyVG9Mb3dlcihjb2x1bW5OYW1lKS5yZXBsYWNlQWxsKCcgJywgJycpXTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgX0dldFRvb2x0aXAgPSAocHJlZml4OiBzdHJpbmcsIHJvdzogYW55LCBzdWZmaXg6IHN0cmluZyA9ICcnKTogc3RyaW5nID0+IHtcclxuICAgICAgICBsZXQgY29sdW1uID0gVG9vbHMuRmlyc3RDaGFyVG9Mb3dlcih0aGlzLnRvb2x0aXBCeVJvdygpKS5yZXBsYWNlQWxsKCcgJywgJycpO1xyXG5cclxuICAgICAgICBpZiAoc3VmZml4Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgc3VmZml4ID0gYCAke3N1ZmZpeH1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcEJ5Um93KCkubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICA/IGAke3ByZWZpeH0gJHtyb3dbY29sdW1uXX0ke3N1ZmZpeH1gXHJcbiAgICAgICAgICAgIDogYCR7cHJlZml4fSR7c3VmZml4fWA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIF9IaWRlUm93ID0gKGdyb3VwOiBJR3JpZERhdGFTb3VyY2UpOiBib29sZWFuID0+IHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuX2lzR3JvdXBlZCgpID8gISh0aGlzLl9leHBhbmRlZEdyb3Vwcy5zb21lKHggPT4geCA9PSBncm91cC5ncm91cEJ5KSkgOiBmYWxzZSlcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgX0lzQ2VsbFR5cGUocHJvcGVydHk6IHN0cmluZywgZGF0YTogYW55LCB0eXBlOiAnbnVtYmVyJyB8ICdkYXRlJyB8ICd0ZW1wbGF0ZScgfCAnY29lclRleHRib3gnIHwgJ2NvZXJOdW1iZXJib3gnIHwgJ2NvZXJTZWxlY3Rib3gnICB8ICdjb2VyU3dpdGNoJyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCByZXNwb25zZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbkNvbmZpZyA9IHRoaXMuX0dldENvbHVtbkNvbmZpZyhwcm9wZXJ0eSk7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhW3Byb3BlcnR5XTtcclxuICAgICAgICBjb25zdCByb3cgPSBUb29scy5CcmVha1JlZmVyZW5jZShkYXRhKTtcclxuXHJcbiAgICAgICAgaWYgKGNvbHVtbkNvbmZpZykge1xyXG4gICAgICAgICAgICBpZiAoWydjb2VyVGV4dGJveCcsICdjb2VyTnVtYmVyYm94JywgJ2NvZXJTZWxlY3Rib3gnLCAnY29lclN3aXRjaCddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbnB1dENvbmZpZzogYW55ID0gY29sdW1uQ29uZmlnO1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBpbnB1dENvbmZpZy5oYXNPd25Qcm9wZXJ0eSh0eXBlKVxyXG4gICAgICAgICAgICAgICAgICAgICYmIHR5cGVvZiBpbnB1dENvbmZpZ1t0eXBlXSA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICAgICAgICAgICYmIGlucHV0Q29uZmlnW3R5cGVdKHsgcHJvcGVydHksIHJvdywgdmFsdWUgfSkuaXNJbnB1dDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZWxzZSBzd2l0Y2godHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzoge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29sdW1uQ29uZmlnLnR5cGVOdW1iZXIgPT09ICdib29sZWFuJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IGNvbHVtbkNvbmZpZy50eXBlTnVtYmVyO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNvbHVtbkNvbmZpZy50eXBlTnVtYmVyID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gKGRhdGEgPT09IG51bGwpID8gZmFsc2UgOiBjb2x1bW5Db25maWcudHlwZU51bWJlcih7IHByb3BlcnR5LCByb3csIHZhbHVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZSc6IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbHVtbkNvbmZpZy50eXBlRGF0ZSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gY29sdW1uQ29uZmlnLnR5cGVEYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNvbHVtbkNvbmZpZy50eXBlRGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IChkYXRhID09PSBudWxsKSA/IGZhbHNlIDogY29sdW1uQ29uZmlnLnR5cGVEYXRlKHsgcHJvcGVydHksIHJvdywgdmFsdWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlICd0ZW1wbGF0ZSc6IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gKHR5cGVvZiBjb2x1bW5Db25maWcudGVtcGxhdGUgPT09ICdzdHJpbmcnKSB8fCAodHlwZW9mIGNvbHVtbkNvbmZpZy50ZW1wbGF0ZSA9PT0gJ2Z1bmN0aW9uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgX0lzQ2VsbENvbG9yKHByb3BlcnR5OiBzdHJpbmcsIGRhdGE6IGFueSwgY29sb3I6ICdjb2xvckJsdWUnIHwgJ2NvbG9yR3JlZW4nIHwgJ2NvbG9yWWVsbG93JyB8ICdjb2xvclJlZCcpOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgcmVzcG9uc2UgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBjb2x1bW5Db25maWc6IGFueSA9IHRoaXMuX0dldENvbHVtbkNvbmZpZyhwcm9wZXJ0eSk7XHJcblxyXG4gICAgICAgIGlmIChjb2x1bW5Db25maWcpIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2x1bW5Db25maWdbY29sb3JdID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gY29sdW1uQ29uZmlnW2NvbG9yXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNvbHVtbkNvbmZpZ1tjb2xvcl0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gY29sdW1uQ29uZmlnW2NvbG9yXSh7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHksXHJcbiAgICAgICAgICAgICAgICAgICAgcm93OiBUb29scy5CcmVha1JlZmVyZW5jZShkYXRhKSxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZGF0YVtwcm9wZXJ0eV1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIEdldEF0dHJpYnV0ZShwcm9wZXJ0eTogc3RyaW5nLCBkYXRhOiBhbnksIGF0dHJpYnV0ZTogc3RyaW5nLCB0eXBlOiAnY29lclN3aXRjaCcgfCAnY29lclRleHRib3gnIHwgJ2NvZXJOdW1iZXJib3gnfCAnY29lclNlbGVjdGJveCcgfCAnZGVmYXVsLWNlbGwnICk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgY29sdW1uQ29uZmlnID0gdGhpcy5fR2V0Q29sdW1uQ29uZmlnKHByb3BlcnR5KTtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IFRvb2xzLklzTm90TnVsbChkYXRhKSA/IGRhdGFbcHJvcGVydHldIDogbnVsbDtcclxuICAgICAgICBjb25zdCByb3cgPSBUb29scy5CcmVha1JlZmVyZW5jZShkYXRhKTtcclxuXHJcbiAgICAgICAgaWYgKGNvbHVtbkNvbmZpZykge1xyXG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2RlZmF1bC1jZWxsJykge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoKGF0dHJpYnV0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RleHRBbGlnbic6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbkNvbmZpZz8udGV4dEFsaWduIHx8ICdsZWZ0JztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RlbXBsYXRlJzoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dENvbmZpZzogYW55ID0gY29sdW1uQ29uZmlnO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0Q29uZmlnLmhhc093blByb3BlcnR5KGF0dHJpYnV0ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHR5cGVvZiBpbnB1dENvbmZpZ1thdHRyaWJ1dGVdID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dENvbmZpZ1thdHRyaWJ1dGVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodHlwZW9mIGlucHV0Q29uZmlnW2F0dHJpYnV0ZV0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5wdXRDb25maWdbYXR0cmlidXRlXSh7IHByb3BlcnR5LCByb3csIHZhbHVlIH0pIHx8ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmKFsnY29lclRleHRib3gnLCAnY29lck51bWJlcmJveCcsICdjb2VyU2VsZWN0Ym94JywgJ2NvZXJTd2l0Y2gnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW5wdXRDb25maWc6IGFueSA9IGNvbHVtbkNvbmZpZztcclxuICAgICAgICAgICAgICAgIGlmIChpbnB1dENvbmZpZy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSAmJiB0eXBlb2YgaW5wdXRDb25maWdbdHlwZV0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5wdXRDb25maWdbdHlwZV0oeyBwcm9wZXJ0eSwgcm93LCB2YWx1ZSB9KVthdHRyaWJ1dGVdIHx8IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBCdXR0b25CeVJvdyhwcm9wZXJ0eTogJ3Nob3dEZWxldGVCdXR0b24nIHwgJ3Nob3dFZGl0QnV0dG9uJyB8ICdzaG93R29CdXR0b24nLCBkYXRhOiBhbnkgPSBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgYnV0dG9uQnlSb3c6IGFueSA9IHRoaXMuYnV0dG9uQnlSb3c7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gVG9vbHMuSXNOb3ROdWxsKGRhdGEpID8gVG9vbHMuQnJlYWtSZWZlcmVuY2UoZGF0YSkgOiBudWxsO1xyXG5cclxuICAgICAgICBpZiAoYnV0dG9uQnlSb3cuaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcbiAgICAgICAgICAgIGlmIChyb3cgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gKHR5cGVvZiBidXR0b25CeVJvd1twcm9wZXJ0eV0gPT09ICdib29sZWFuJykgPyBidXR0b25CeVJvd1twcm9wZXJ0eV0gOiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgYnV0dG9uQnlSb3dbcHJvcGVydHldID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gYnV0dG9uQnlSb3dbcHJvcGVydHldO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgYnV0dG9uQnlSb3dbcHJvcGVydHldID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IGJ1dHRvbkJ5Um93W3Byb3BlcnR5XSh7IHByb3BlcnR5LCByb3csIHZhbHVlOiBudWxsIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzcG9uc2UgPyAodGhpcy5fdmFsdWUgJiYgdGhpcy5fdmFsdWUubGVuZ3RoID4gMCkgOiBmYWxzZTtcclxuICAgIH1cclxufSJdfQ==
@@ -27,4 +27,4 @@ export const GridTemplates = {
27
27
  isInvalid: item.value.length <= 0
28
28
  })
29
29
  };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1ncmlkLnRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvc3JjL2NvbXBvbmVudHMvbGliL2NvZXItZ3JpZC9jb2VyLWdyaWQudGVtcGxhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUV6QixvQ0FBb0M7SUFDcEMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFvQixFQUFVLEVBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPOzs7O2FBSU4sQ0FBQztRQUNOLENBQUM7YUFFSSxDQUFDO1lBQ0YsT0FBTzs7OzthQUlOLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxrQkFBa0IsRUFBRSxDQUFDLElBQW9CLEVBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFXLEVBQUU7S0FDcEQsQ0FBQztJQUdGLGlDQUFpQztJQUNqQyxtQkFBbUIsRUFBRSxDQUFDLElBQW9CLEVBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE9BQU8sRUFBRSxJQUFJO1FBQ2IsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7S0FDcEMsQ0FBQztDQUNMLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJR3JpZENvZXJTd2l0Y2gsIElHcmlkQ29lclRleHRCb3gsIElHcmlkSXRlbSB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL2NvZXItZ3JpZFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdyaWRUZW1wbGF0ZXMgPSB7XHJcblxyXG4gICAgLyoqIFRlbXBsYXRlIGZvciBib29sZWFuIHByb3BlcnR5ICovXHJcbiAgICBpc0FjdGl2ZVRlbXBsYXRlOiAoaXRlbTogSUdyaWRJdGVtPGFueT4pOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ndGV4dC1ncmVlbi1ib2xkJz5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNpcmNsZS1jaGVja1wiPjwvaT4gQWN0aXZlXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGBcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSd0ZXh0LWdyYXktYm9sZCc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaXJjbGUtbWludXNcIj48L2k+IERpc2FibGVkXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKiogVGVtcGxhdGUgZm9yIGJvb2xlYW4gcHJvcGVydHkgKi9cclxuICAgIGNvZXJTd2l0Y2hUZW1wbGF0ZTogKGl0ZW06IElHcmlkSXRlbTxhbnk+KTogSUdyaWRDb2VyU3dpdGNoID0+ICh7XHJcbiAgICAgICAgaXNJbnB1dDogdHJ1ZSxcclxuICAgICAgICB0b29sdGlwOiBgJHtpdGVtLnZhbHVlID8gJ0FjdGl2ZScgOiAnRGlzYWJsZWQnIH1gXHJcbiAgICB9KSxcclxuXHJcbiAgICBcclxuICAgIC8qKiBUZW1wbGF0ZSBmb3IgdGV4dCBwcm9wZXJ0eSAqL1xyXG4gICAgY29lclRleHRib3hUZW1wbGF0ZTogKGl0ZW06IElHcmlkSXRlbTxhbnk+KTogSUdyaWRDb2VyVGV4dEJveCA9PiAoe1xyXG4gICAgICAgIGlzSW5wdXQ6IHRydWUsXHJcbiAgICAgICAgaXNJbnZhbGlkOiBpdGVtLnZhbHVlLmxlbmd0aCA8PSAwXHJcbiAgICB9KVxyXG59Il19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1ncmlkLnRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvc3JjL2NvbXBvbmVudHMvbGliL2NvZXItZ3JpZC9jb2VyLWdyaWQudGVtcGxhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUV6QixvQ0FBb0M7SUFDcEMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFvQixFQUFVLEVBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPOzs7O2FBSU4sQ0FBQztRQUNOLENBQUM7YUFFSSxDQUFDO1lBQ0YsT0FBTzs7OzthQUlOLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxrQkFBa0IsRUFBRSxDQUFDLElBQW9CLEVBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFXLEVBQUU7S0FDcEQsQ0FBQztJQUdGLGlDQUFpQztJQUNqQyxtQkFBbUIsRUFBRSxDQUFDLElBQW9CLEVBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE9BQU8sRUFBRSxJQUFJO1FBQ2IsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7S0FDcEMsQ0FBQztDQUNMLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJR3JpZENvZXJTd2l0Y2gsIElHcmlkQ29lclRleHRCb3gsIElHcmlkSXRlbSB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgR3JpZFRlbXBsYXRlcyA9IHtcclxuXHJcbiAgICAvKiogVGVtcGxhdGUgZm9yIGJvb2xlYW4gcHJvcGVydHkgKi9cclxuICAgIGlzQWN0aXZlVGVtcGxhdGU6IChpdGVtOiBJR3JpZEl0ZW08YW55Pik6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0udmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGBcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSd0ZXh0LWdyZWVuLWJvbGQnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2lyY2xlLWNoZWNrXCI+PC9pPiBBY3RpdmVcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gYFxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J3RleHQtZ3JheS1ib2xkJz5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNpcmNsZS1taW51c1wiPjwvaT4gRGlzYWJsZWRcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgYDtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKiBUZW1wbGF0ZSBmb3IgYm9vbGVhbiBwcm9wZXJ0eSAqL1xyXG4gICAgY29lclN3aXRjaFRlbXBsYXRlOiAoaXRlbTogSUdyaWRJdGVtPGFueT4pOiBJR3JpZENvZXJTd2l0Y2ggPT4gKHtcclxuICAgICAgICBpc0lucHV0OiB0cnVlLFxyXG4gICAgICAgIHRvb2x0aXA6IGAke2l0ZW0udmFsdWUgPyAnQWN0aXZlJyA6ICdEaXNhYmxlZCcgfWBcclxuICAgIH0pLFxyXG5cclxuXHJcbiAgICAvKiogVGVtcGxhdGUgZm9yIHRleHQgcHJvcGVydHkgKi9cclxuICAgIGNvZXJUZXh0Ym94VGVtcGxhdGU6IChpdGVtOiBJR3JpZEl0ZW08YW55Pik6IElHcmlkQ29lclRleHRCb3ggPT4gKHtcclxuICAgICAgICBpc0lucHV0OiB0cnVlLFxyXG4gICAgICAgIGlzSW52YWxpZDogaXRlbS52YWx1ZS5sZW5ndGggPD0gMFxyXG4gICAgfSlcclxufSJdfQ==
@@ -247,11 +247,11 @@ export class CoerNumberBox extends ControlValue {
247
247
  });
248
248
  }
249
249
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerNumberBox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
250
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CoerNumberBox, selector: "coer-numberbox", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, decimals: { classPropertyName: "decimals", publicName: "decimals", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, marginTop: { classPropertyName: "marginTop", publicName: "marginTop", isSignal: true, isRequired: false, transformFunction: null }, marginRight: { classPropertyName: "marginRight", publicName: "marginRight", isSignal: true, isRequired: false, transformFunction: null }, marginBottom: { classPropertyName: "marginBottom", publicName: "marginBottom", isSignal: true, isRequired: false, transformFunction: null }, marginLeft: { classPropertyName: "marginLeft", publicName: "marginLeft", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, isValid: { classPropertyName: "isValid", publicName: "isValid", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: true, isRequired: false, transformFunction: null }, textPosition: { classPropertyName: "textPosition", publicName: "textPosition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onKeyupEnter: "onKeyupEnter", onInput: "onInput" }, providers: [CONTROL_VALUE(CoerNumberBox)], viewQueries: [{ propertyName: "matFormField", first: true, predicate: ["matFormField"], descendants: true, isSignal: true }, { propertyName: "coerNumberbox", first: true, predicate: ["coerNumberbox"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"coer-number-box\">\r\n <mat-form-field\r\n [id]=\"_id + '-container'\"\r\n [floatLabel]=\"floatLabel()\"\r\n [ngClass]=\"{\r\n 'readonly': isReadonly() && !isLoading()\r\n }\"\r\n [style]=\"{\r\n 'width': width(),\r\n 'min-width': minWidth(),\r\n 'max-width': maxWidth(),\r\n 'margin-top': marginTop(),\r\n 'margin-right': marginRight(),\r\n 'margin-bottom': marginBottom(),\r\n 'margin-left': marginLeft()\r\n }\">\r\n <mat-label>{{ label() }}</mat-label>\r\n\r\n <input #coerNumberbox matInput\r\n [id]=\"_id\"\r\n type=\"text\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"!_isEnable()\"\r\n [value]=\"_value\"\r\n (input)=\"SetValue(coerNumberbox.value)\"\r\n (blur)=\"SetTouched(true)\"\r\n [ngClass]=\"{ 'caret-none': hideCaret }\"\r\n [style]=\"{\r\n 'cursor': isLoading() ? 'wait' : null,\r\n 'margin-top': (floatLabel() == 'auto') ? '15px' : '9px',\r\n 'padding-right': paddingRight(),\r\n 'text-align': textPosition()\r\n }\">\r\n\r\n @if(isLoading()) {\r\n <div class=\"placeholder-glow\">\r\n <span class=\"placeholder\"></span>\r\n </div>\r\n }\r\n\r\n <span ngClass=\"icon-container\">\r\n @if(isInvalid() && !isDisabled() && !isLoading()) {\r\n <i class=\"fa-solid fa-circle-exclamation\"></i>\r\n }\r\n\r\n @else if(isValid() && !isDisabled() && !isLoading()) {\r\n <i class=\"fa-solid fa-circle-check text-green\"></i>\r\n }\r\n </span>\r\n </mat-form-field>\r\n</div>", styles: ["div.coer-number-box .text-blue{color:#0d6efd!important}div.coer-number-box .text-blue-bold{color:#0d6efd!important;font-weight:700!important}div.coer-number-box .background-blue{background-color:#0d6efd!important}div.coer-number-box .background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}div.coer-number-box .border-blue{border-color:#0d6efd!important}div.coer-number-box .text-gray{color:#6c757d!important}div.coer-number-box .text-gray-bold{color:#6c757d!important;font-weight:700!important}div.coer-number-box .background-gray{background-color:#6c757d!important}div.coer-number-box .background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}div.coer-number-box .border-gray{border-color:#6c757d!important}div.coer-number-box .text-green{color:#198754!important}div.coer-number-box .text-green-bold{color:#198754!important;font-weight:700!important}div.coer-number-box .background-green{background-color:#198754!important}div.coer-number-box .background-border-green{background-color:#198754!important;border-color:#198754!important}div.coer-number-box .border-green{border-color:#198754!important}div.coer-number-box .text-yellow{color:#ffc107!important}div.coer-number-box .text-yellow-bold{color:#ffc107!important;font-weight:700!important}div.coer-number-box .background-yellow{background-color:#ffc107!important}div.coer-number-box .background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}div.coer-number-box .border-yellow{border-color:#ffc107!important}div.coer-number-box .text-red{color:#dc3545!important}div.coer-number-box .text-red-bold{color:#dc3545!important;font-weight:700!important}div.coer-number-box .background-red{background-color:#dc3545!important}div.coer-number-box .background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}div.coer-number-box .border-red{border-color:#dc3545!important}div.coer-number-box .text-white{color:#f5f5f5!important}div.coer-number-box .text-white-bold{color:#f5f5f5!important;font-weight:700!important}div.coer-number-box .background-white{background-color:#f5f5f5!important}div.coer-number-box .background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}div.coer-number-box .border-white{border-color:#f5f5f5!important}div.coer-number-box .text-black{color:#252525!important}div.coer-number-box .text-black-bold{color:#252525!important;font-weight:700!important}div.coer-number-box .background-black{background-color:#252525!important}div.coer-number-box .background-border-black{background-color:#252525!important;border-color:#252525!important}div.coer-number-box .border-black{border-color:#252525!important}div.coer-number-box .text-orange{color:#fd6031!important}div.coer-number-box .text-orange-bold{color:#fd6031!important;font-weight:700!important}div.coer-number-box .background-orange{background-color:#fd6031!important}div.coer-number-box .background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}div.coer-number-box .border-orange{border-color:#fd6031!important}div.coer-number-box mat-form-field{position:relative!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex{height:40px!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix{width:100%!important;height:40px!important;padding:0!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix label{overflow:visible!important;position:absolute!important;top:20px!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix label.mdc-floating-label--float-above mat-label{color:#fd6031;font-weight:700;position:relative;left:-10px;top:2px}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input{font-weight:400!important;font-size:17px!important;color:#252525!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input.caret-none{caret-color:transparent!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active,div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active:before,div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active:after{border-bottom-color:#fd6031!important}div.coer-number-box mat-form-field div.mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{height:0px!important}div.coer-number-box mat-form-field span.icon-container{position:absolute!important;top:1px!important;right:-14px!important;z-index:5!important;width:30px;height:40px;display:flex;align-items:center;justify-content:center}div.coer-number-box mat-form-field span.icon-container i{font-size:20px!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-xmark,div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-magnifying-glass{color:#caced1!important;cursor:pointer!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-xmark:hover,div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-magnifying-glass:hover{color:#6c757d!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-circle-check{color:#198754!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-circle-exclamation{color:#dc3545!important}div.coer-number-box mat-form-field span.placeholder{width:calc(100% + 32px)!important;height:40px!important;position:absolute!important;z-index:1!important;top:0!important;left:-16px!important}div.coer-number-box mat-form-field .placeholder,div.coer-number-box mat-form-field .placeholder *,div.coer-number-box mat-form-field .placeholder-glow,div.coer-number-box mat-form-field .placeholder-glow *{cursor:wait!important}div.coer-number-box mat-form-field.readonly div.mat-mdc-text-field-wrapper.mdc-text-field{background-color:#bbbbbb83!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field{background-color:transparent!important;padding-left:9px!important;padding-right:9px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple,coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple:before,coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple:after{border-bottom-color:transparent!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex{height:28px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix{height:28px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input{margin-top:3px!important;font-size:14px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field span.icon-container{transform:translate(-5px,-6px)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }] }); }
250
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CoerNumberBox, selector: "coer-numberbox", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, decimals: { classPropertyName: "decimals", publicName: "decimals", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, marginTop: { classPropertyName: "marginTop", publicName: "marginTop", isSignal: true, isRequired: false, transformFunction: null }, marginRight: { classPropertyName: "marginRight", publicName: "marginRight", isSignal: true, isRequired: false, transformFunction: null }, marginBottom: { classPropertyName: "marginBottom", publicName: "marginBottom", isSignal: true, isRequired: false, transformFunction: null }, marginLeft: { classPropertyName: "marginLeft", publicName: "marginLeft", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, isValid: { classPropertyName: "isValid", publicName: "isValid", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: true, isRequired: false, transformFunction: null }, textPosition: { classPropertyName: "textPosition", publicName: "textPosition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onKeyupEnter: "onKeyupEnter", onInput: "onInput" }, providers: [CONTROL_VALUE(CoerNumberBox)], viewQueries: [{ propertyName: "matFormField", first: true, predicate: ["matFormField"], descendants: true, isSignal: true }, { propertyName: "coerNumberbox", first: true, predicate: ["coerNumberbox"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"coer-number-box\">\r\n <mat-form-field\r\n [id]=\"_id + '-container'\"\r\n [floatLabel]=\"floatLabel()\"\r\n [ngClass]=\"{\r\n 'readonly': isReadonly() && !isLoading()\r\n }\"\r\n [style]=\"{\r\n 'width': width(),\r\n 'min-width': minWidth(),\r\n 'max-width': maxWidth(),\r\n 'margin-top': marginTop(),\r\n 'margin-right': marginRight(),\r\n 'margin-bottom': marginBottom(),\r\n 'margin-left': marginLeft()\r\n }\">\r\n <mat-label>{{ label() }}</mat-label>\r\n\r\n <input #coerNumberbox matInput\r\n [id]=\"_id\"\r\n type=\"text\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"!_isEnable()\"\r\n [value]=\"_value\"\r\n (input)=\"SetValue(coerNumberbox.value)\"\r\n (blur)=\"SetTouched(true)\"\r\n [ngClass]=\"{ 'caret-none': hideCaret }\"\r\n [style]=\"{\r\n 'cursor': isLoading() ? 'wait' : null,\r\n 'margin-top': (floatLabel() == 'auto') ? '15px' : '9px',\r\n 'padding-right': paddingRight(),\r\n 'text-align': textPosition()\r\n }\">\r\n\r\n @if(isLoading()) {\r\n <div class=\"placeholder-glow\">\r\n <span class=\"placeholder\"></span>\r\n </div>\r\n }\r\n\r\n <span ngClass=\"icon-container\">\r\n @if(isInvalid() && !isDisabled() && !isLoading()) {\r\n <i class=\"fa-solid fa-circle-exclamation\"></i>\r\n }\r\n\r\n @else if(isValid() && !isDisabled() && !isLoading()) {\r\n <i class=\"fa-solid fa-circle-check text-green\"></i>\r\n }\r\n </span>\r\n </mat-form-field>\r\n</div>", styles: ["div.coer-number-box *{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031}div.coer-number-box .text-blue{color:#0d6efd!important}div.coer-number-box .text-blue-bold{color:#0d6efd!important;font-weight:700!important}div.coer-number-box .background-blue{background-color:#0d6efd!important}div.coer-number-box .background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}div.coer-number-box .border-blue{border-color:#0d6efd!important}div.coer-number-box .text-gray{color:#6c757d!important}div.coer-number-box .text-gray-bold{color:#6c757d!important;font-weight:700!important}div.coer-number-box .background-gray{background-color:#6c757d!important}div.coer-number-box .background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}div.coer-number-box .border-gray{border-color:#6c757d!important}div.coer-number-box .text-green{color:#198754!important}div.coer-number-box .text-green-bold{color:#198754!important;font-weight:700!important}div.coer-number-box .background-green{background-color:#198754!important}div.coer-number-box .background-border-green{background-color:#198754!important;border-color:#198754!important}div.coer-number-box .border-green{border-color:#198754!important}div.coer-number-box .text-yellow{color:#ffc107!important}div.coer-number-box .text-yellow-bold{color:#ffc107!important;font-weight:700!important}div.coer-number-box .background-yellow{background-color:#ffc107!important}div.coer-number-box .background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}div.coer-number-box .border-yellow{border-color:#ffc107!important}div.coer-number-box .text-red{color:#dc3545!important}div.coer-number-box .text-red-bold{color:#dc3545!important;font-weight:700!important}div.coer-number-box .background-red{background-color:#dc3545!important}div.coer-number-box .background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}div.coer-number-box .border-red{border-color:#dc3545!important}div.coer-number-box .text-white{color:#f5f5f5!important}div.coer-number-box .text-white-bold{color:#f5f5f5!important;font-weight:700!important}div.coer-number-box .background-white{background-color:#f5f5f5!important}div.coer-number-box .background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}div.coer-number-box .border-white{border-color:#f5f5f5!important}div.coer-number-box .text-black{color:#252525!important}div.coer-number-box .text-black-bold{color:#252525!important;font-weight:700!important}div.coer-number-box .background-black{background-color:#252525!important}div.coer-number-box .background-border-black{background-color:#252525!important;border-color:#252525!important}div.coer-number-box .border-black{border-color:#252525!important}div.coer-number-box .text-orange{color:#fd6031!important}div.coer-number-box .text-orange-bold{color:#fd6031!important;font-weight:700!important}div.coer-number-box .background-orange{background-color:#fd6031!important}div.coer-number-box .background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}div.coer-number-box .border-orange{border-color:#fd6031!important}div.coer-number-box mat-form-field{position:relative!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex{height:40px!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix{width:100%!important;height:40px!important;padding:0!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix label{overflow:visible!important;position:absolute!important;top:20px!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix label.mdc-floating-label--float-above mat-label{color:#fd6031;font-weight:700;position:relative;left:-10px;top:2px}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input{font-weight:400!important;font-size:17px!important;color:#252525!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input.caret-none{caret-color:transparent!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active,div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active:before,div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active:after{border-bottom-color:#fd6031!important}div.coer-number-box mat-form-field div.mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{height:0px!important}div.coer-number-box mat-form-field span.icon-container{position:absolute!important;top:1px!important;right:-14px!important;z-index:5!important;width:30px;height:40px;display:flex;align-items:center;justify-content:center}div.coer-number-box mat-form-field span.icon-container i{font-size:20px!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-xmark,div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-magnifying-glass{color:#caced1!important;cursor:pointer!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-xmark:hover,div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-magnifying-glass:hover{color:#6c757d!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-circle-check{color:#198754!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-circle-exclamation{color:#dc3545!important}div.coer-number-box mat-form-field span.placeholder{width:calc(100% + 32px)!important;height:40px!important;position:absolute!important;z-index:1!important;top:0!important;left:-16px!important}div.coer-number-box mat-form-field .placeholder,div.coer-number-box mat-form-field .placeholder *,div.coer-number-box mat-form-field .placeholder-glow,div.coer-number-box mat-form-field .placeholder-glow *{cursor:wait!important}div.coer-number-box mat-form-field.readonly div.mat-mdc-text-field-wrapper.mdc-text-field{background-color:#bbbbbb83!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field{background-color:transparent!important;padding-left:9px!important;padding-right:9px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple,coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple:before,coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple:after{border-bottom-color:transparent!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex{height:28px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix{height:28px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input{margin-top:3px!important;font-size:14px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field span.icon-container{transform:translate(-5px,-6px)!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }] }); }
251
251
  }
252
252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerNumberBox, decorators: [{
253
253
  type: Component,
254
- args: [{ selector: 'coer-numberbox', providers: [CONTROL_VALUE(CoerNumberBox)], template: "<div class=\"coer-number-box\">\r\n <mat-form-field\r\n [id]=\"_id + '-container'\"\r\n [floatLabel]=\"floatLabel()\"\r\n [ngClass]=\"{\r\n 'readonly': isReadonly() && !isLoading()\r\n }\"\r\n [style]=\"{\r\n 'width': width(),\r\n 'min-width': minWidth(),\r\n 'max-width': maxWidth(),\r\n 'margin-top': marginTop(),\r\n 'margin-right': marginRight(),\r\n 'margin-bottom': marginBottom(),\r\n 'margin-left': marginLeft()\r\n }\">\r\n <mat-label>{{ label() }}</mat-label>\r\n\r\n <input #coerNumberbox matInput\r\n [id]=\"_id\"\r\n type=\"text\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"!_isEnable()\"\r\n [value]=\"_value\"\r\n (input)=\"SetValue(coerNumberbox.value)\"\r\n (blur)=\"SetTouched(true)\"\r\n [ngClass]=\"{ 'caret-none': hideCaret }\"\r\n [style]=\"{\r\n 'cursor': isLoading() ? 'wait' : null,\r\n 'margin-top': (floatLabel() == 'auto') ? '15px' : '9px',\r\n 'padding-right': paddingRight(),\r\n 'text-align': textPosition()\r\n }\">\r\n\r\n @if(isLoading()) {\r\n <div class=\"placeholder-glow\">\r\n <span class=\"placeholder\"></span>\r\n </div>\r\n }\r\n\r\n <span ngClass=\"icon-container\">\r\n @if(isInvalid() && !isDisabled() && !isLoading()) {\r\n <i class=\"fa-solid fa-circle-exclamation\"></i>\r\n }\r\n\r\n @else if(isValid() && !isDisabled() && !isLoading()) {\r\n <i class=\"fa-solid fa-circle-check text-green\"></i>\r\n }\r\n </span>\r\n </mat-form-field>\r\n</div>", styles: ["div.coer-number-box .text-blue{color:#0d6efd!important}div.coer-number-box .text-blue-bold{color:#0d6efd!important;font-weight:700!important}div.coer-number-box .background-blue{background-color:#0d6efd!important}div.coer-number-box .background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}div.coer-number-box .border-blue{border-color:#0d6efd!important}div.coer-number-box .text-gray{color:#6c757d!important}div.coer-number-box .text-gray-bold{color:#6c757d!important;font-weight:700!important}div.coer-number-box .background-gray{background-color:#6c757d!important}div.coer-number-box .background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}div.coer-number-box .border-gray{border-color:#6c757d!important}div.coer-number-box .text-green{color:#198754!important}div.coer-number-box .text-green-bold{color:#198754!important;font-weight:700!important}div.coer-number-box .background-green{background-color:#198754!important}div.coer-number-box .background-border-green{background-color:#198754!important;border-color:#198754!important}div.coer-number-box .border-green{border-color:#198754!important}div.coer-number-box .text-yellow{color:#ffc107!important}div.coer-number-box .text-yellow-bold{color:#ffc107!important;font-weight:700!important}div.coer-number-box .background-yellow{background-color:#ffc107!important}div.coer-number-box .background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}div.coer-number-box .border-yellow{border-color:#ffc107!important}div.coer-number-box .text-red{color:#dc3545!important}div.coer-number-box .text-red-bold{color:#dc3545!important;font-weight:700!important}div.coer-number-box .background-red{background-color:#dc3545!important}div.coer-number-box .background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}div.coer-number-box .border-red{border-color:#dc3545!important}div.coer-number-box .text-white{color:#f5f5f5!important}div.coer-number-box .text-white-bold{color:#f5f5f5!important;font-weight:700!important}div.coer-number-box .background-white{background-color:#f5f5f5!important}div.coer-number-box .background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}div.coer-number-box .border-white{border-color:#f5f5f5!important}div.coer-number-box .text-black{color:#252525!important}div.coer-number-box .text-black-bold{color:#252525!important;font-weight:700!important}div.coer-number-box .background-black{background-color:#252525!important}div.coer-number-box .background-border-black{background-color:#252525!important;border-color:#252525!important}div.coer-number-box .border-black{border-color:#252525!important}div.coer-number-box .text-orange{color:#fd6031!important}div.coer-number-box .text-orange-bold{color:#fd6031!important;font-weight:700!important}div.coer-number-box .background-orange{background-color:#fd6031!important}div.coer-number-box .background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}div.coer-number-box .border-orange{border-color:#fd6031!important}div.coer-number-box mat-form-field{position:relative!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex{height:40px!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix{width:100%!important;height:40px!important;padding:0!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix label{overflow:visible!important;position:absolute!important;top:20px!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix label.mdc-floating-label--float-above mat-label{color:#fd6031;font-weight:700;position:relative;left:-10px;top:2px}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input{font-weight:400!important;font-size:17px!important;color:#252525!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input.caret-none{caret-color:transparent!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active,div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active:before,div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active:after{border-bottom-color:#fd6031!important}div.coer-number-box mat-form-field div.mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{height:0px!important}div.coer-number-box mat-form-field span.icon-container{position:absolute!important;top:1px!important;right:-14px!important;z-index:5!important;width:30px;height:40px;display:flex;align-items:center;justify-content:center}div.coer-number-box mat-form-field span.icon-container i{font-size:20px!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-xmark,div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-magnifying-glass{color:#caced1!important;cursor:pointer!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-xmark:hover,div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-magnifying-glass:hover{color:#6c757d!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-circle-check{color:#198754!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-circle-exclamation{color:#dc3545!important}div.coer-number-box mat-form-field span.placeholder{width:calc(100% + 32px)!important;height:40px!important;position:absolute!important;z-index:1!important;top:0!important;left:-16px!important}div.coer-number-box mat-form-field .placeholder,div.coer-number-box mat-form-field .placeholder *,div.coer-number-box mat-form-field .placeholder-glow,div.coer-number-box mat-form-field .placeholder-glow *{cursor:wait!important}div.coer-number-box mat-form-field.readonly div.mat-mdc-text-field-wrapper.mdc-text-field{background-color:#bbbbbb83!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field{background-color:transparent!important;padding-left:9px!important;padding-right:9px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple,coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple:before,coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple:after{border-bottom-color:transparent!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex{height:28px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix{height:28px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input{margin-top:3px!important;font-size:14px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field span.icon-container{transform:translate(-5px,-6px)!important}\n"] }]
254
+ args: [{ selector: 'coer-numberbox', providers: [CONTROL_VALUE(CoerNumberBox)], template: "<div class=\"coer-number-box\">\r\n <mat-form-field\r\n [id]=\"_id + '-container'\"\r\n [floatLabel]=\"floatLabel()\"\r\n [ngClass]=\"{\r\n 'readonly': isReadonly() && !isLoading()\r\n }\"\r\n [style]=\"{\r\n 'width': width(),\r\n 'min-width': minWidth(),\r\n 'max-width': maxWidth(),\r\n 'margin-top': marginTop(),\r\n 'margin-right': marginRight(),\r\n 'margin-bottom': marginBottom(),\r\n 'margin-left': marginLeft()\r\n }\">\r\n <mat-label>{{ label() }}</mat-label>\r\n\r\n <input #coerNumberbox matInput\r\n [id]=\"_id\"\r\n type=\"text\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"!_isEnable()\"\r\n [value]=\"_value\"\r\n (input)=\"SetValue(coerNumberbox.value)\"\r\n (blur)=\"SetTouched(true)\"\r\n [ngClass]=\"{ 'caret-none': hideCaret }\"\r\n [style]=\"{\r\n 'cursor': isLoading() ? 'wait' : null,\r\n 'margin-top': (floatLabel() == 'auto') ? '15px' : '9px',\r\n 'padding-right': paddingRight(),\r\n 'text-align': textPosition()\r\n }\">\r\n\r\n @if(isLoading()) {\r\n <div class=\"placeholder-glow\">\r\n <span class=\"placeholder\"></span>\r\n </div>\r\n }\r\n\r\n <span ngClass=\"icon-container\">\r\n @if(isInvalid() && !isDisabled() && !isLoading()) {\r\n <i class=\"fa-solid fa-circle-exclamation\"></i>\r\n }\r\n\r\n @else if(isValid() && !isDisabled() && !isLoading()) {\r\n <i class=\"fa-solid fa-circle-check text-green\"></i>\r\n }\r\n </span>\r\n </mat-form-field>\r\n</div>", styles: ["div.coer-number-box *{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031}div.coer-number-box .text-blue{color:#0d6efd!important}div.coer-number-box .text-blue-bold{color:#0d6efd!important;font-weight:700!important}div.coer-number-box .background-blue{background-color:#0d6efd!important}div.coer-number-box .background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}div.coer-number-box .border-blue{border-color:#0d6efd!important}div.coer-number-box .text-gray{color:#6c757d!important}div.coer-number-box .text-gray-bold{color:#6c757d!important;font-weight:700!important}div.coer-number-box .background-gray{background-color:#6c757d!important}div.coer-number-box .background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}div.coer-number-box .border-gray{border-color:#6c757d!important}div.coer-number-box .text-green{color:#198754!important}div.coer-number-box .text-green-bold{color:#198754!important;font-weight:700!important}div.coer-number-box .background-green{background-color:#198754!important}div.coer-number-box .background-border-green{background-color:#198754!important;border-color:#198754!important}div.coer-number-box .border-green{border-color:#198754!important}div.coer-number-box .text-yellow{color:#ffc107!important}div.coer-number-box .text-yellow-bold{color:#ffc107!important;font-weight:700!important}div.coer-number-box .background-yellow{background-color:#ffc107!important}div.coer-number-box .background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}div.coer-number-box .border-yellow{border-color:#ffc107!important}div.coer-number-box .text-red{color:#dc3545!important}div.coer-number-box .text-red-bold{color:#dc3545!important;font-weight:700!important}div.coer-number-box .background-red{background-color:#dc3545!important}div.coer-number-box .background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}div.coer-number-box .border-red{border-color:#dc3545!important}div.coer-number-box .text-white{color:#f5f5f5!important}div.coer-number-box .text-white-bold{color:#f5f5f5!important;font-weight:700!important}div.coer-number-box .background-white{background-color:#f5f5f5!important}div.coer-number-box .background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}div.coer-number-box .border-white{border-color:#f5f5f5!important}div.coer-number-box .text-black{color:#252525!important}div.coer-number-box .text-black-bold{color:#252525!important;font-weight:700!important}div.coer-number-box .background-black{background-color:#252525!important}div.coer-number-box .background-border-black{background-color:#252525!important;border-color:#252525!important}div.coer-number-box .border-black{border-color:#252525!important}div.coer-number-box .text-orange{color:#fd6031!important}div.coer-number-box .text-orange-bold{color:#fd6031!important;font-weight:700!important}div.coer-number-box .background-orange{background-color:#fd6031!important}div.coer-number-box .background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}div.coer-number-box .border-orange{border-color:#fd6031!important}div.coer-number-box mat-form-field{position:relative!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex{height:40px!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix{width:100%!important;height:40px!important;padding:0!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix label{overflow:visible!important;position:absolute!important;top:20px!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix label.mdc-floating-label--float-above mat-label{color:#fd6031;font-weight:700;position:relative;left:-10px;top:2px}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input{font-weight:400!important;font-size:17px!important;color:#252525!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input.caret-none{caret-color:transparent!important}div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active,div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active:before,div.coer-number-box mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple.mdc-line-ripple--active:after{border-bottom-color:#fd6031!important}div.coer-number-box mat-form-field div.mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{height:0px!important}div.coer-number-box mat-form-field span.icon-container{position:absolute!important;top:1px!important;right:-14px!important;z-index:5!important;width:30px;height:40px;display:flex;align-items:center;justify-content:center}div.coer-number-box mat-form-field span.icon-container i{font-size:20px!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-xmark,div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-magnifying-glass{color:#caced1!important;cursor:pointer!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-xmark:hover,div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-magnifying-glass:hover{color:#6c757d!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-circle-check{color:#198754!important}div.coer-number-box mat-form-field span.icon-container i.fa-solid.fa-circle-exclamation{color:#dc3545!important}div.coer-number-box mat-form-field span.placeholder{width:calc(100% + 32px)!important;height:40px!important;position:absolute!important;z-index:1!important;top:0!important;left:-16px!important}div.coer-number-box mat-form-field .placeholder,div.coer-number-box mat-form-field .placeholder *,div.coer-number-box mat-form-field .placeholder-glow,div.coer-number-box mat-form-field .placeholder-glow *{cursor:wait!important}div.coer-number-box mat-form-field.readonly div.mat-mdc-text-field-wrapper.mdc-text-field{background-color:#bbbbbb83!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field{background-color:transparent!important;padding-left:9px!important;padding-right:9px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple,coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple:before,coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mdc-line-ripple:after{border-bottom-color:transparent!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex{height:28px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix{height:28px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field div.mat-mdc-text-field-wrapper.mdc-text-field div.mat-mdc-form-field-flex div.mat-mdc-form-field-infix input{margin-top:3px!important;font-size:14px!important}coer-grid table tbody tr td.coer-numberbox mat-form-field span.icon-container{transform:translate(-5px,-6px)!important}\n"] }]
255
255
  }], propDecorators: { value: [{
256
256
  type: Input
257
257
  }], id: [{
@@ -25,11 +25,11 @@ export class CoerPageTitle {
25
25
  return 'bi bi-house-door-fill';
26
26
  }
27
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerPageTitle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CoerPageTitle, selector: "coer-page-title", inputs: { title: "title", showNavigation: "showNavigation", breadcrumbs: "breadcrumbs", goBack: "goBack", showInformation: "showInformation" }, ngImport: i0, template: "<header class=\"coer-page-title\" title=''>\r\n <h2>\r\n <span> {{ title }} </span>\r\n\r\n <!-- Button Information -->\r\n <button\r\n *ngIf=\"showInformation\">\r\n <i class=\"bi bi-info-circle\"></i>\r\n </button>\r\n </h2>\r\n\r\n <!-- Navigation -->\r\n <nav *ngIf=\"showNavigation\" aria-label=\"breadcrumb\">\r\n <ol class=\"breadcrumb\">\r\n <li class=\"breadcrumb-item\">\r\n <a><i [class]=\"_icon\"></i></a>\r\n </li>\r\n\r\n <li *ngFor=\"let nav of breadcrumbs\" class=\"breadcrumb-item\">\r\n <a [routerLink]='(nav.path && nav.path.length > 0) ? nav.path : null'\r\n [queryParams]='nav.queryParams'\r\n (click)=\"(nav.click) ? nav.click() : null\">\r\n {{ nav.page }}\r\n </a>\r\n </li>\r\n </ol>\r\n\r\n <!-- Go Back -->\r\n <a *ngIf=\"goBack.show\"\r\n [routerLink]=\"goBack.path\"\r\n [queryParams]='goBack.queryParams'\r\n (click)=\"(goBack.click) ? goBack.click() : null\">\r\n Go back\r\n </a>\r\n </nav>\r\n\r\n <!-- Tooltip\r\n <dx-tooltip coer-tooltip target=\"#btn-information\" text='Information'></dx-tooltip> -->\r\n</header>\r\n\r\n\r\n<!-- Information\r\n<dx-popup\r\n [(visible)]=\"showModal\"\r\n minWidth=\"500px\" minHeight=\"430px\"\r\n [width]=\"width\" [height]=\"height\"\r\n [hideOnOutsideClick]=\"true\"\r\n [resizeEnabled]=\"false\"\r\n [dragEnabled]=\"true\"\r\n (onHidden)=\"(showModal = false)\"\r\n >\r\n\r\n -- Header --\r\n <header *dxTemplate=\"let data of 'title'\">\r\n <div class=\"modal-header\">\r\n <h5> <i [class]=\"informationIcon\" [style]=\"{ 'color': informationIconColor }\"></i> {{ informationTitle }} </h5>\r\n <button (click)=\"(showModal = false)\" class=\"btn btn-close\"></button>\r\n </div>\r\n </header>\r\n\r\n -- Body --\r\n <section *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view width=\"100%\" height=\"100%\">\r\n <ol class=\"list-group list-group-numbered\">\r\n <li class=\"list-group-item\">Respects the order of the columns like the template.</li>\r\n\r\n <li class=\"list-group-item\">\r\n For more information<a [href]=\"urlTemplate\">click here </a>to download the template\r\n </li>\r\n </ol>\r\n </dx-scroll-view>\r\n </section>\r\n\r\n -- Button --\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\">\r\n <div *dxTemplate=\"let data of 'menu-item'\" class=\"h-100\">\r\n <dx-button\r\n coer-button\r\n icon=\"fa-solid fa-xmark\" text=\"CLOSE\"\r\n width=\"125px\" height=\"40px\"\r\n (onClick)=\"(showModal = false)\"\r\n color=\"red\"\r\n ></dx-button>\r\n </div>\r\n </dxi-toolbar-item>\r\n</dx-popup> -->", styles: ["header.coer-page-title{margin:15px 30px 0}header.coer-page-title .text-blue{color:#0d6efd!important}header.coer-page-title .text-blue-bold{color:#0d6efd!important;font-weight:700!important}header.coer-page-title .background-blue{background-color:#0d6efd!important}header.coer-page-title .background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}header.coer-page-title .border-blue{border-color:#0d6efd!important}header.coer-page-title .text-gray{color:#6c757d!important}header.coer-page-title .text-gray-bold{color:#6c757d!important;font-weight:700!important}header.coer-page-title .background-gray{background-color:#6c757d!important}header.coer-page-title .background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}header.coer-page-title .border-gray{border-color:#6c757d!important}header.coer-page-title .text-green{color:#198754!important}header.coer-page-title .text-green-bold{color:#198754!important;font-weight:700!important}header.coer-page-title .background-green{background-color:#198754!important}header.coer-page-title .background-border-green{background-color:#198754!important;border-color:#198754!important}header.coer-page-title .border-green{border-color:#198754!important}header.coer-page-title .text-yellow{color:#ffc107!important}header.coer-page-title .text-yellow-bold{color:#ffc107!important;font-weight:700!important}header.coer-page-title .background-yellow{background-color:#ffc107!important}header.coer-page-title .background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}header.coer-page-title .border-yellow{border-color:#ffc107!important}header.coer-page-title .text-red{color:#dc3545!important}header.coer-page-title .text-red-bold{color:#dc3545!important;font-weight:700!important}header.coer-page-title .background-red{background-color:#dc3545!important}header.coer-page-title .background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}header.coer-page-title .border-red{border-color:#dc3545!important}header.coer-page-title .text-white{color:#f5f5f5!important}header.coer-page-title .text-white-bold{color:#f5f5f5!important;font-weight:700!important}header.coer-page-title .background-white{background-color:#f5f5f5!important}header.coer-page-title .background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}header.coer-page-title .border-white{border-color:#f5f5f5!important}header.coer-page-title .text-black{color:#252525!important}header.coer-page-title .text-black-bold{color:#252525!important;font-weight:700!important}header.coer-page-title .background-black{background-color:#252525!important}header.coer-page-title .background-border-black{background-color:#252525!important;border-color:#252525!important}header.coer-page-title .border-black{border-color:#252525!important}header.coer-page-title .text-orange{color:#fd6031!important}header.coer-page-title .text-orange-bold{color:#fd6031!important;font-weight:700!important}header.coer-page-title .background-orange{background-color:#fd6031!important}header.coer-page-title .background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}header.coer-page-title .border-orange{border-color:#fd6031!important}header.coer-page-title h2{margin:0 0 10px;display:flex;align-items:center;justify-content:space-between;height:20px;font-size:20px}header.coer-page-title h2 span{font-size:20px!important}header.coer-page-title nav{height:25px;font-size:small;background-color:#f5f5f5;display:flex;align-items:center;justify-content:space-between}header.coer-page-title ol,header.coer-page-title a,header.coer-page-title .bi-info-circle{margin:0;padding-left:5px;text-decoration:none;color:#0d6efd!important;font-weight:400!important;cursor:pointer!important}header.coer-page-title ol::selection,header.coer-page-title a::selection{background-color:transparent!important}header.coer-page-title li{border:none}header.coer-page-title li.list-group-item a{color:#fd6031!important}header.coer-page-title button{border:none;outline:none;background-color:transparent;padding-right:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CoerPageTitle, selector: "coer-page-title", inputs: { title: "title", showNavigation: "showNavigation", breadcrumbs: "breadcrumbs", goBack: "goBack", showInformation: "showInformation" }, ngImport: i0, template: "<header class=\"coer-page-title\" title=''>\r\n <h2>\r\n <span> {{ title }} </span>\r\n\r\n <!-- Button Information -->\r\n <button\r\n *ngIf=\"showInformation\">\r\n <i class=\"bi bi-info-circle\"></i>\r\n </button>\r\n </h2>\r\n\r\n <!-- Navigation -->\r\n <nav *ngIf=\"showNavigation\" aria-label=\"breadcrumb\">\r\n <ol class=\"breadcrumb\">\r\n <li class=\"breadcrumb-item\">\r\n <a><i [class]=\"_icon\"></i></a>\r\n </li>\r\n\r\n <li *ngFor=\"let nav of breadcrumbs\" class=\"breadcrumb-item\">\r\n <a [routerLink]='(nav.path && nav.path.length > 0) ? nav.path : null'\r\n [queryParams]='nav.queryParams'\r\n (click)=\"(nav.click) ? nav.click() : null\">\r\n {{ nav.page }}\r\n </a>\r\n </li>\r\n </ol>\r\n\r\n <!-- Go Back -->\r\n <a *ngIf=\"goBack.show\"\r\n [routerLink]=\"goBack.path\"\r\n [queryParams]='goBack.queryParams'\r\n (click)=\"(goBack.click) ? goBack.click() : null\">\r\n Go back\r\n </a>\r\n </nav>\r\n\r\n <!-- Tooltip\r\n <dx-tooltip coer-tooltip target=\"#btn-information\" text='Information'></dx-tooltip> -->\r\n</header>\r\n\r\n\r\n<!-- Information\r\n<dx-popup\r\n [(visible)]=\"showModal\"\r\n minWidth=\"500px\" minHeight=\"430px\"\r\n [width]=\"width\" [height]=\"height\"\r\n [hideOnOutsideClick]=\"true\"\r\n [resizeEnabled]=\"false\"\r\n [dragEnabled]=\"true\"\r\n (onHidden)=\"(showModal = false)\"\r\n >\r\n\r\n -- Header --\r\n <header *dxTemplate=\"let data of 'title'\">\r\n <div class=\"modal-header\">\r\n <h5> <i [class]=\"informationIcon\" [style]=\"{ 'color': informationIconColor }\"></i> {{ informationTitle }} </h5>\r\n <button (click)=\"(showModal = false)\" class=\"btn btn-close\"></button>\r\n </div>\r\n </header>\r\n\r\n -- Body --\r\n <section *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view width=\"100%\" height=\"100%\">\r\n <ol class=\"list-group list-group-numbered\">\r\n <li class=\"list-group-item\">Respects the order of the columns like the template.</li>\r\n\r\n <li class=\"list-group-item\">\r\n For more information<a [href]=\"urlTemplate\">click here </a>to download the template\r\n </li>\r\n </ol>\r\n </dx-scroll-view>\r\n </section>\r\n\r\n -- Button --\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\">\r\n <div *dxTemplate=\"let data of 'menu-item'\" class=\"h-100\">\r\n <dx-button\r\n coer-button\r\n icon=\"fa-solid fa-xmark\" text=\"CLOSE\"\r\n width=\"125px\" height=\"40px\"\r\n (onClick)=\"(showModal = false)\"\r\n color=\"red\"\r\n ></dx-button>\r\n </div>\r\n </dxi-toolbar-item>\r\n</dx-popup> -->", styles: ["header.coer-page-title{margin:15px 30px 0}header.coer-page-title *{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031}header.coer-page-title .text-blue{color:#0d6efd!important}header.coer-page-title .text-blue-bold{color:#0d6efd!important;font-weight:700!important}header.coer-page-title .background-blue{background-color:#0d6efd!important}header.coer-page-title .background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}header.coer-page-title .border-blue{border-color:#0d6efd!important}header.coer-page-title .text-gray{color:#6c757d!important}header.coer-page-title .text-gray-bold{color:#6c757d!important;font-weight:700!important}header.coer-page-title .background-gray{background-color:#6c757d!important}header.coer-page-title .background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}header.coer-page-title .border-gray{border-color:#6c757d!important}header.coer-page-title .text-green{color:#198754!important}header.coer-page-title .text-green-bold{color:#198754!important;font-weight:700!important}header.coer-page-title .background-green{background-color:#198754!important}header.coer-page-title .background-border-green{background-color:#198754!important;border-color:#198754!important}header.coer-page-title .border-green{border-color:#198754!important}header.coer-page-title .text-yellow{color:#ffc107!important}header.coer-page-title .text-yellow-bold{color:#ffc107!important;font-weight:700!important}header.coer-page-title .background-yellow{background-color:#ffc107!important}header.coer-page-title .background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}header.coer-page-title .border-yellow{border-color:#ffc107!important}header.coer-page-title .text-red{color:#dc3545!important}header.coer-page-title .text-red-bold{color:#dc3545!important;font-weight:700!important}header.coer-page-title .background-red{background-color:#dc3545!important}header.coer-page-title .background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}header.coer-page-title .border-red{border-color:#dc3545!important}header.coer-page-title .text-white{color:#f5f5f5!important}header.coer-page-title .text-white-bold{color:#f5f5f5!important;font-weight:700!important}header.coer-page-title .background-white{background-color:#f5f5f5!important}header.coer-page-title .background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}header.coer-page-title .border-white{border-color:#f5f5f5!important}header.coer-page-title .text-black{color:#252525!important}header.coer-page-title .text-black-bold{color:#252525!important;font-weight:700!important}header.coer-page-title .background-black{background-color:#252525!important}header.coer-page-title .background-border-black{background-color:#252525!important;border-color:#252525!important}header.coer-page-title .border-black{border-color:#252525!important}header.coer-page-title .text-orange{color:#fd6031!important}header.coer-page-title .text-orange-bold{color:#fd6031!important;font-weight:700!important}header.coer-page-title .background-orange{background-color:#fd6031!important}header.coer-page-title .background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}header.coer-page-title .border-orange{border-color:#fd6031!important}header.coer-page-title h2{margin:0 0 10px;display:flex;align-items:center;justify-content:space-between;height:20px;font-size:20px}header.coer-page-title h2 span{font-size:20px!important}header.coer-page-title nav{height:25px;font-size:small;background-color:#f5f5f5;display:flex;align-items:center;justify-content:space-between}header.coer-page-title ol,header.coer-page-title a,header.coer-page-title .bi-info-circle{margin:0;padding-left:5px;text-decoration:none;color:#0d6efd!important;font-weight:400!important;cursor:pointer!important}header.coer-page-title ol::selection,header.coer-page-title a::selection{background-color:transparent!important}header.coer-page-title li{border:none}header.coer-page-title li.list-group-item a{color:#fd6031!important}header.coer-page-title button{border:none;outline:none;background-color:transparent;padding-right:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerPageTitle, decorators: [{
31
31
  type: Component,
32
- args: [{ selector: 'coer-page-title', template: "<header class=\"coer-page-title\" title=''>\r\n <h2>\r\n <span> {{ title }} </span>\r\n\r\n <!-- Button Information -->\r\n <button\r\n *ngIf=\"showInformation\">\r\n <i class=\"bi bi-info-circle\"></i>\r\n </button>\r\n </h2>\r\n\r\n <!-- Navigation -->\r\n <nav *ngIf=\"showNavigation\" aria-label=\"breadcrumb\">\r\n <ol class=\"breadcrumb\">\r\n <li class=\"breadcrumb-item\">\r\n <a><i [class]=\"_icon\"></i></a>\r\n </li>\r\n\r\n <li *ngFor=\"let nav of breadcrumbs\" class=\"breadcrumb-item\">\r\n <a [routerLink]='(nav.path && nav.path.length > 0) ? nav.path : null'\r\n [queryParams]='nav.queryParams'\r\n (click)=\"(nav.click) ? nav.click() : null\">\r\n {{ nav.page }}\r\n </a>\r\n </li>\r\n </ol>\r\n\r\n <!-- Go Back -->\r\n <a *ngIf=\"goBack.show\"\r\n [routerLink]=\"goBack.path\"\r\n [queryParams]='goBack.queryParams'\r\n (click)=\"(goBack.click) ? goBack.click() : null\">\r\n Go back\r\n </a>\r\n </nav>\r\n\r\n <!-- Tooltip\r\n <dx-tooltip coer-tooltip target=\"#btn-information\" text='Information'></dx-tooltip> -->\r\n</header>\r\n\r\n\r\n<!-- Information\r\n<dx-popup\r\n [(visible)]=\"showModal\"\r\n minWidth=\"500px\" minHeight=\"430px\"\r\n [width]=\"width\" [height]=\"height\"\r\n [hideOnOutsideClick]=\"true\"\r\n [resizeEnabled]=\"false\"\r\n [dragEnabled]=\"true\"\r\n (onHidden)=\"(showModal = false)\"\r\n >\r\n\r\n -- Header --\r\n <header *dxTemplate=\"let data of 'title'\">\r\n <div class=\"modal-header\">\r\n <h5> <i [class]=\"informationIcon\" [style]=\"{ 'color': informationIconColor }\"></i> {{ informationTitle }} </h5>\r\n <button (click)=\"(showModal = false)\" class=\"btn btn-close\"></button>\r\n </div>\r\n </header>\r\n\r\n -- Body --\r\n <section *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view width=\"100%\" height=\"100%\">\r\n <ol class=\"list-group list-group-numbered\">\r\n <li class=\"list-group-item\">Respects the order of the columns like the template.</li>\r\n\r\n <li class=\"list-group-item\">\r\n For more information<a [href]=\"urlTemplate\">click here </a>to download the template\r\n </li>\r\n </ol>\r\n </dx-scroll-view>\r\n </section>\r\n\r\n -- Button --\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\">\r\n <div *dxTemplate=\"let data of 'menu-item'\" class=\"h-100\">\r\n <dx-button\r\n coer-button\r\n icon=\"fa-solid fa-xmark\" text=\"CLOSE\"\r\n width=\"125px\" height=\"40px\"\r\n (onClick)=\"(showModal = false)\"\r\n color=\"red\"\r\n ></dx-button>\r\n </div>\r\n </dxi-toolbar-item>\r\n</dx-popup> -->", styles: ["header.coer-page-title{margin:15px 30px 0}header.coer-page-title .text-blue{color:#0d6efd!important}header.coer-page-title .text-blue-bold{color:#0d6efd!important;font-weight:700!important}header.coer-page-title .background-blue{background-color:#0d6efd!important}header.coer-page-title .background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}header.coer-page-title .border-blue{border-color:#0d6efd!important}header.coer-page-title .text-gray{color:#6c757d!important}header.coer-page-title .text-gray-bold{color:#6c757d!important;font-weight:700!important}header.coer-page-title .background-gray{background-color:#6c757d!important}header.coer-page-title .background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}header.coer-page-title .border-gray{border-color:#6c757d!important}header.coer-page-title .text-green{color:#198754!important}header.coer-page-title .text-green-bold{color:#198754!important;font-weight:700!important}header.coer-page-title .background-green{background-color:#198754!important}header.coer-page-title .background-border-green{background-color:#198754!important;border-color:#198754!important}header.coer-page-title .border-green{border-color:#198754!important}header.coer-page-title .text-yellow{color:#ffc107!important}header.coer-page-title .text-yellow-bold{color:#ffc107!important;font-weight:700!important}header.coer-page-title .background-yellow{background-color:#ffc107!important}header.coer-page-title .background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}header.coer-page-title .border-yellow{border-color:#ffc107!important}header.coer-page-title .text-red{color:#dc3545!important}header.coer-page-title .text-red-bold{color:#dc3545!important;font-weight:700!important}header.coer-page-title .background-red{background-color:#dc3545!important}header.coer-page-title .background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}header.coer-page-title .border-red{border-color:#dc3545!important}header.coer-page-title .text-white{color:#f5f5f5!important}header.coer-page-title .text-white-bold{color:#f5f5f5!important;font-weight:700!important}header.coer-page-title .background-white{background-color:#f5f5f5!important}header.coer-page-title .background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}header.coer-page-title .border-white{border-color:#f5f5f5!important}header.coer-page-title .text-black{color:#252525!important}header.coer-page-title .text-black-bold{color:#252525!important;font-weight:700!important}header.coer-page-title .background-black{background-color:#252525!important}header.coer-page-title .background-border-black{background-color:#252525!important;border-color:#252525!important}header.coer-page-title .border-black{border-color:#252525!important}header.coer-page-title .text-orange{color:#fd6031!important}header.coer-page-title .text-orange-bold{color:#fd6031!important;font-weight:700!important}header.coer-page-title .background-orange{background-color:#fd6031!important}header.coer-page-title .background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}header.coer-page-title .border-orange{border-color:#fd6031!important}header.coer-page-title h2{margin:0 0 10px;display:flex;align-items:center;justify-content:space-between;height:20px;font-size:20px}header.coer-page-title h2 span{font-size:20px!important}header.coer-page-title nav{height:25px;font-size:small;background-color:#f5f5f5;display:flex;align-items:center;justify-content:space-between}header.coer-page-title ol,header.coer-page-title a,header.coer-page-title .bi-info-circle{margin:0;padding-left:5px;text-decoration:none;color:#0d6efd!important;font-weight:400!important;cursor:pointer!important}header.coer-page-title ol::selection,header.coer-page-title a::selection{background-color:transparent!important}header.coer-page-title li{border:none}header.coer-page-title li.list-group-item a{color:#fd6031!important}header.coer-page-title button{border:none;outline:none;background-color:transparent;padding-right:8px}\n"] }]
32
+ args: [{ selector: 'coer-page-title', template: "<header class=\"coer-page-title\" title=''>\r\n <h2>\r\n <span> {{ title }} </span>\r\n\r\n <!-- Button Information -->\r\n <button\r\n *ngIf=\"showInformation\">\r\n <i class=\"bi bi-info-circle\"></i>\r\n </button>\r\n </h2>\r\n\r\n <!-- Navigation -->\r\n <nav *ngIf=\"showNavigation\" aria-label=\"breadcrumb\">\r\n <ol class=\"breadcrumb\">\r\n <li class=\"breadcrumb-item\">\r\n <a><i [class]=\"_icon\"></i></a>\r\n </li>\r\n\r\n <li *ngFor=\"let nav of breadcrumbs\" class=\"breadcrumb-item\">\r\n <a [routerLink]='(nav.path && nav.path.length > 0) ? nav.path : null'\r\n [queryParams]='nav.queryParams'\r\n (click)=\"(nav.click) ? nav.click() : null\">\r\n {{ nav.page }}\r\n </a>\r\n </li>\r\n </ol>\r\n\r\n <!-- Go Back -->\r\n <a *ngIf=\"goBack.show\"\r\n [routerLink]=\"goBack.path\"\r\n [queryParams]='goBack.queryParams'\r\n (click)=\"(goBack.click) ? goBack.click() : null\">\r\n Go back\r\n </a>\r\n </nav>\r\n\r\n <!-- Tooltip\r\n <dx-tooltip coer-tooltip target=\"#btn-information\" text='Information'></dx-tooltip> -->\r\n</header>\r\n\r\n\r\n<!-- Information\r\n<dx-popup\r\n [(visible)]=\"showModal\"\r\n minWidth=\"500px\" minHeight=\"430px\"\r\n [width]=\"width\" [height]=\"height\"\r\n [hideOnOutsideClick]=\"true\"\r\n [resizeEnabled]=\"false\"\r\n [dragEnabled]=\"true\"\r\n (onHidden)=\"(showModal = false)\"\r\n >\r\n\r\n -- Header --\r\n <header *dxTemplate=\"let data of 'title'\">\r\n <div class=\"modal-header\">\r\n <h5> <i [class]=\"informationIcon\" [style]=\"{ 'color': informationIconColor }\"></i> {{ informationTitle }} </h5>\r\n <button (click)=\"(showModal = false)\" class=\"btn btn-close\"></button>\r\n </div>\r\n </header>\r\n\r\n -- Body --\r\n <section *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view width=\"100%\" height=\"100%\">\r\n <ol class=\"list-group list-group-numbered\">\r\n <li class=\"list-group-item\">Respects the order of the columns like the template.</li>\r\n\r\n <li class=\"list-group-item\">\r\n For more information<a [href]=\"urlTemplate\">click here </a>to download the template\r\n </li>\r\n </ol>\r\n </dx-scroll-view>\r\n </section>\r\n\r\n -- Button --\r\n <dxi-toolbar-item toolbar=\"bottom\" location=\"after\">\r\n <div *dxTemplate=\"let data of 'menu-item'\" class=\"h-100\">\r\n <dx-button\r\n coer-button\r\n icon=\"fa-solid fa-xmark\" text=\"CLOSE\"\r\n width=\"125px\" height=\"40px\"\r\n (onClick)=\"(showModal = false)\"\r\n color=\"red\"\r\n ></dx-button>\r\n </div>\r\n </dxi-toolbar-item>\r\n</dx-popup> -->", styles: ["header.coer-page-title{margin:15px 30px 0}header.coer-page-title *{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031}header.coer-page-title .text-blue{color:#0d6efd!important}header.coer-page-title .text-blue-bold{color:#0d6efd!important;font-weight:700!important}header.coer-page-title .background-blue{background-color:#0d6efd!important}header.coer-page-title .background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}header.coer-page-title .border-blue{border-color:#0d6efd!important}header.coer-page-title .text-gray{color:#6c757d!important}header.coer-page-title .text-gray-bold{color:#6c757d!important;font-weight:700!important}header.coer-page-title .background-gray{background-color:#6c757d!important}header.coer-page-title .background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}header.coer-page-title .border-gray{border-color:#6c757d!important}header.coer-page-title .text-green{color:#198754!important}header.coer-page-title .text-green-bold{color:#198754!important;font-weight:700!important}header.coer-page-title .background-green{background-color:#198754!important}header.coer-page-title .background-border-green{background-color:#198754!important;border-color:#198754!important}header.coer-page-title .border-green{border-color:#198754!important}header.coer-page-title .text-yellow{color:#ffc107!important}header.coer-page-title .text-yellow-bold{color:#ffc107!important;font-weight:700!important}header.coer-page-title .background-yellow{background-color:#ffc107!important}header.coer-page-title .background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}header.coer-page-title .border-yellow{border-color:#ffc107!important}header.coer-page-title .text-red{color:#dc3545!important}header.coer-page-title .text-red-bold{color:#dc3545!important;font-weight:700!important}header.coer-page-title .background-red{background-color:#dc3545!important}header.coer-page-title .background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}header.coer-page-title .border-red{border-color:#dc3545!important}header.coer-page-title .text-white{color:#f5f5f5!important}header.coer-page-title .text-white-bold{color:#f5f5f5!important;font-weight:700!important}header.coer-page-title .background-white{background-color:#f5f5f5!important}header.coer-page-title .background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}header.coer-page-title .border-white{border-color:#f5f5f5!important}header.coer-page-title .text-black{color:#252525!important}header.coer-page-title .text-black-bold{color:#252525!important;font-weight:700!important}header.coer-page-title .background-black{background-color:#252525!important}header.coer-page-title .background-border-black{background-color:#252525!important;border-color:#252525!important}header.coer-page-title .border-black{border-color:#252525!important}header.coer-page-title .text-orange{color:#fd6031!important}header.coer-page-title .text-orange-bold{color:#fd6031!important;font-weight:700!important}header.coer-page-title .background-orange{background-color:#fd6031!important}header.coer-page-title .background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}header.coer-page-title .border-orange{border-color:#fd6031!important}header.coer-page-title h2{margin:0 0 10px;display:flex;align-items:center;justify-content:space-between;height:20px;font-size:20px}header.coer-page-title h2 span{font-size:20px!important}header.coer-page-title nav{height:25px;font-size:small;background-color:#f5f5f5;display:flex;align-items:center;justify-content:space-between}header.coer-page-title ol,header.coer-page-title a,header.coer-page-title .bi-info-circle{margin:0;padding-left:5px;text-decoration:none;color:#0d6efd!important;font-weight:400!important;cursor:pointer!important}header.coer-page-title ol::selection,header.coer-page-title a::selection{background-color:transparent!important}header.coer-page-title li{border:none}header.coer-page-title li.list-group-item a{color:#fd6031!important}header.coer-page-title button{border:none;outline:none;background-color:transparent;padding-right:8px}\n"] }]
33
33
  }], propDecorators: { title: [{
34
34
  type: Input
35
35
  }], showNavigation: [{
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
41
41
  }], showInformation: [{
42
42
  type: Input
43
43
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1wYWdlLXRpdGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvc3JjL2NvbXBvbmVudHMvbGliL2NvZXItcGFnZS10aXRsZS9jb2VyLXBhZ2UtdGl0bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci1wYWdlLXRpdGxlL2NvZXItcGFnZS10aXRsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFDckQsMkRBQTJEO0FBQzNELHdEQUF3RDtBQUN4RCw0RUFBNEU7QUFPNUUsTUFBTSxPQUFPLGFBQWE7SUFMMUI7UUFPYSxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQixnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFDaEMsV0FBTSxHQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xDLG9CQUFlLEdBQVksS0FBSyxDQUFDO0tBK0I3QztJQTdCRyxJQUFjLEtBQUs7UUFDZixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFeEIsSUFBRyxJQUFJLEVBQUUsQ0FBQztZQUNOLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsSUFBRyxhQUFhLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQyxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDOUIsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLHVCQUF1QixDQUFDO0lBQ25DLENBQUM7K0dBbkJRLGFBQWE7bUdBQWIsYUFBYSx1TUNaMUIsa2lHQXFGZTs7NEZEekVGLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0ksaUJBQWlCOzhCQU1sQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQnJlYWRjcnVtYiwgSUdvQmFjayB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvcGFnZS10aXRsZSc7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuLi8uLi8uLi90b29scy9saWIvbWVudS5jbGFzcyc7XHJcbi8vaW1wb3J0IHsgbmF2aWdhdGlvbiB9IGZyb20gJ3NyYy9hcHAvYXBwLXJvdXRpbmcuc2lkZW5hdic7XHJcbi8vaW1wb3J0IHsgU291cmNlIH0gZnJvbSAnc3JjL2FwcC9tb2R1bGVzL2hvbWUvY2xhc3Nlcyc7XHJcbi8vaW1wb3J0IHsgSUFwcE5hdmlnYXRpb24sIElHb0JhY2sgfSBmcm9tICdzcmMvYXBwL21vZHVsZXMvaG9tZS9pbnRlcmZhY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLXBhZ2UtdGl0bGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZXItcGFnZS10aXRsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb2VyLXBhZ2UtdGl0bGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29lclBhZ2VUaXRsZSB7XHJcblxyXG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gICAgQElucHV0KCkgc2hvd05hdmlnYXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgYnJlYWRjcnVtYnM6IElCcmVhZGNydW1iW10gPSBbXTtcclxuICAgIEBJbnB1dCgpIGdvQmFjazogSUdvQmFjayA9IHsgc2hvdzogZmFsc2UgfTtcclxuICAgIEBJbnB1dCgpIHNob3dJbmZvcm1hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByb3RlY3RlZCBnZXQgX2ljb24oKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBNRU5VID0gTWVudS5HZXQoKTtcclxuXHJcbiAgICAgICAgaWYoTUVOVSkge1xyXG4gICAgICAgICAgICBjb25zdCBNRU5VX1NFTEVDVEVEID0gTUVOVS50cmVlLnNoaWZ0KCk7XHJcbiAgICAgICAgICAgIGlmKE1FTlVfU0VMRUNURUQgJiYgTUVOVV9TRUxFQ1RFRC5pY29uKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gTUVOVV9TRUxFQ1RFRC5pY29uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gJ2JpIGJpLWhvdXNlLWRvb3ItZmlsbCc7XHJcbiAgICB9XHJcblxyXG4gICAgLy9Nb2RhbCBJbmZvcm1hdGlvblxyXG4gICAgLy9wcm90ZWN0ZWQgc2hvd01vZGFsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvL0BJbnB1dCgpIHVybFRlbXBsYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgIC8vQElucHV0KCkgaW5mb3JtYXRpb25UaXRsZTogc3RyaW5nID0gJ0luZm9ybWF0aW9uJztcclxuICAgIC8vQElucHV0KCkgaW5mb3JtYXRpb25JY29uOiBzdHJpbmcgPSAnYmkgYmktaW5mby1jaXJjbGUnO1xyXG4gICAgLy9ASW5wdXQoKSBpbmZvcm1hdGlvbkljb25Db2xvcjogc3RyaW5nID0gJ2JsYWNrJztcclxuICAgIC8vQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICc1MDBweCc7XHJcbiAgICAvL0BJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gJzQzMHB4JztcclxuXHJcbiAgICAvL25nT25Jbml0KCkge1xyXG4gICAgLy8gICAgbGV0IG1vZHVsZSA9IFNvdXJjZS5HZXRDdXJyZW50TW9kdWxlKCkgYXMgYW55O1xyXG4gICAgLy8gICAgaWYgKG1vZHVsZS5tb2R1bGUpIHtcclxuICAgIC8vICAgICAgICBtb2R1bGUgPSBuYXZpZ2F0aW9uLmZpbmQoeCA9PiB4LnRleHQgPT0gbW9kdWxlLm1vZHVsZSk7XHJcbiAgICAvLyAgICAgICAgaWYgKG1vZHVsZSAmJiBtb2R1bGUuaWNvbikgdGhpcy5pY29uID0gbW9kdWxlLmljb247XHJcbiAgICAvLyAgICB9XHJcbiAgICAvL31cclxufSIsIjxoZWFkZXIgY2xhc3M9XCJjb2VyLXBhZ2UtdGl0bGVcIiB0aXRsZT0nJz5cclxuICAgIDxoMj5cclxuICAgICAgICA8c3Bhbj4ge3sgdGl0bGUgfX0gPC9zcGFuPlxyXG5cclxuICAgICAgICA8IS0tIEJ1dHRvbiBJbmZvcm1hdGlvbiAtLT5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0luZm9ybWF0aW9uXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktaW5mby1jaXJjbGVcIj48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2gyPlxyXG5cclxuICAgIDwhLS0gTmF2aWdhdGlvbiAtLT5cclxuICAgIDxuYXYgKm5nSWY9XCJzaG93TmF2aWdhdGlvblwiIGFyaWEtbGFiZWw9XCJicmVhZGNydW1iXCI+XHJcbiAgICAgICAgPG9sIGNsYXNzPVwiYnJlYWRjcnVtYlwiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJicmVhZGNydW1iLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxhPjxpIFtjbGFzc109XCJfaWNvblwiPjwvaT48L2E+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcblxyXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IG5hdiBvZiBicmVhZGNydW1ic1wiIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8YSAgW3JvdXRlckxpbmtdPScobmF2LnBhdGggJiYgbmF2LnBhdGgubGVuZ3RoID4gMCkgPyBuYXYucGF0aCA6IG51bGwnXHJcbiAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT0nbmF2LnF1ZXJ5UGFyYW1zJ1xyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIobmF2LmNsaWNrKSA/IG5hdi5jbGljaygpIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IG5hdi5wYWdlIH19XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC9vbD5cclxuXHJcbiAgICAgICAgPCEtLSBHbyBCYWNrIC0tPlxyXG4gICAgICAgIDxhICAqbmdJZj1cImdvQmFjay5zaG93XCJcclxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZ29CYWNrLnBhdGhcIlxyXG4gICAgICAgICAgICBbcXVlcnlQYXJhbXNdPSdnb0JhY2sucXVlcnlQYXJhbXMnXHJcbiAgICAgICAgICAgIChjbGljayk9XCIoZ29CYWNrLmNsaWNrKSA/IGdvQmFjay5jbGljaygpIDogbnVsbFwiPlxyXG4gICAgICAgICAgICBHbyBiYWNrXHJcbiAgICAgICAgPC9hPlxyXG4gICAgPC9uYXY+XHJcblxyXG4gICAgPCEtLSBUb29sdGlwXHJcbiAgICA8ZHgtdG9vbHRpcCBjb2VyLXRvb2x0aXAgdGFyZ2V0PVwiI2J0bi1pbmZvcm1hdGlvblwiIHRleHQ9J0luZm9ybWF0aW9uJz48L2R4LXRvb2x0aXA+IC0tPlxyXG48L2hlYWRlcj5cclxuXHJcblxyXG48IS0tIEluZm9ybWF0aW9uXHJcbjxkeC1wb3B1cFxyXG4gICAgWyh2aXNpYmxlKV09XCJzaG93TW9kYWxcIlxyXG4gICAgbWluV2lkdGg9XCI1MDBweFwiIG1pbkhlaWdodD1cIjQzMHB4XCJcclxuICAgIFt3aWR0aF09XCJ3aWR0aFwiIFtoZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgIFtoaWRlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXHJcbiAgICBbcmVzaXplRW5hYmxlZF09XCJmYWxzZVwiXHJcbiAgICBbZHJhZ0VuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAob25IaWRkZW4pPVwiKHNob3dNb2RhbCA9IGZhbHNlKVwiXHJcbiAgICA+XHJcblxyXG4gICAgLS0gSGVhZGVyIC0tXHJcbiAgICA8aGVhZGVyICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ3RpdGxlJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPGg1PiA8aSBbY2xhc3NdPVwiaW5mb3JtYXRpb25JY29uXCIgW3N0eWxlXT1cInsgJ2NvbG9yJzogaW5mb3JtYXRpb25JY29uQ29sb3IgfVwiPjwvaT4ge3sgaW5mb3JtYXRpb25UaXRsZSB9fSA8L2g1PlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCIoc2hvd01vZGFsID0gZmFsc2UpXCIgY2xhc3M9XCJidG4gYnRuLWNsb3NlXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2hlYWRlcj5cclxuXHJcbiAgICAtLSBCb2R5IC0tXHJcbiAgICA8c2VjdGlvbiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdjb250ZW50J1wiPlxyXG4gICAgICAgIDxkeC1zY3JvbGwtdmlldyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICAgICAgICAgIDxvbCBjbGFzcz1cImxpc3QtZ3JvdXAgbGlzdC1ncm91cC1udW1iZXJlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+UmVzcGVjdHMgdGhlIG9yZGVyIG9mIHRoZSBjb2x1bW5zIGxpa2UgdGhlIHRlbXBsYXRlLjwvbGk+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgRm9yIG1vcmUgaW5mb3JtYXRpb248YSBbaHJlZl09XCJ1cmxUZW1wbGF0ZVwiPmNsaWNrIGhlcmUgPC9hPnRvIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC9vbD5cclxuICAgICAgICA8L2R4LXNjcm9sbC12aWV3PlxyXG4gICAgPC9zZWN0aW9uPlxyXG5cclxuICAgIC0tIEJ1dHRvbiAtLVxyXG4gICAgPGR4aS10b29sYmFyLWl0ZW0gdG9vbGJhcj1cImJvdHRvbVwiIGxvY2F0aW9uPVwiYWZ0ZXJcIj5cclxuICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ21lbnUtaXRlbSdcIiBjbGFzcz1cImgtMTAwXCI+XHJcbiAgICAgICAgICAgIDxkeC1idXR0b25cclxuICAgICAgICAgICAgICAgIGNvZXItYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBpY29uPVwiZmEtc29saWQgZmEteG1hcmtcIiB0ZXh0PVwiQ0xPU0VcIlxyXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMjVweFwiIGhlaWdodD1cIjQwcHhcIlxyXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiKHNob3dNb2RhbCA9IGZhbHNlKVwiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInJlZFwiXHJcbiAgICAgICAgICAgID48L2R4LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZHhpLXRvb2xiYXItaXRlbT5cclxuPC9keC1wb3B1cD4gLS0+Il19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1wYWdlLXRpdGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvc3JjL2NvbXBvbmVudHMvbGliL2NvZXItcGFnZS10aXRsZS9jb2VyLXBhZ2UtdGl0bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci1wYWdlLXRpdGxlL2NvZXItcGFnZS10aXRsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFDckQsMkRBQTJEO0FBQzNELHdEQUF3RDtBQUN4RCw0RUFBNEU7QUFPNUUsTUFBTSxPQUFPLGFBQWE7SUFMMUI7UUFPYSxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQixnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFDaEMsV0FBTSxHQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xDLG9CQUFlLEdBQVksS0FBSyxDQUFDO0tBK0I3QztJQTdCRyxJQUFjLEtBQUs7UUFDZixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFeEIsSUFBRyxJQUFJLEVBQUUsQ0FBQztZQUNOLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsSUFBRyxhQUFhLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQyxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDOUIsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLHVCQUF1QixDQUFDO0lBQ25DLENBQUM7K0dBbkJRLGFBQWE7bUdBQWIsYUFBYSx1TUNaMUIsa2lHQXFGZTs7NEZEekVGLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0ksaUJBQWlCOzhCQU1sQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQnJlYWRjcnVtYiwgSUdvQmFjayB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvbGliL21lbnUuY2xhc3MnO1xyXG4vL2ltcG9ydCB7IG5hdmlnYXRpb24gfSBmcm9tICdzcmMvYXBwL2FwcC1yb3V0aW5nLnNpZGVuYXYnO1xyXG4vL2ltcG9ydCB7IFNvdXJjZSB9IGZyb20gJ3NyYy9hcHAvbW9kdWxlcy9ob21lL2NsYXNzZXMnO1xyXG4vL2ltcG9ydCB7IElBcHBOYXZpZ2F0aW9uLCBJR29CYWNrIH0gZnJvbSAnc3JjL2FwcC9tb2R1bGVzL2hvbWUvaW50ZXJmYWNlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY29lci1wYWdlLXRpdGxlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLXBhZ2UtdGl0bGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29lci1wYWdlLXRpdGxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJQYWdlVGl0bGUge1xyXG5cclxuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgIEBJbnB1dCgpIHNob3dOYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGJyZWFkY3J1bWJzOiBJQnJlYWRjcnVtYltdID0gW107XHJcbiAgICBASW5wdXQoKSBnb0JhY2s6IElHb0JhY2sgPSB7IHNob3c6IGZhbHNlIH07XHJcbiAgICBASW5wdXQoKSBzaG93SW5mb3JtYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IF9pY29uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgTUVOVSA9IE1lbnUuR2V0KCk7XHJcblxyXG4gICAgICAgIGlmKE1FTlUpIHtcclxuICAgICAgICAgICAgY29uc3QgTUVOVV9TRUxFQ1RFRCA9IE1FTlUudHJlZS5zaGlmdCgpO1xyXG4gICAgICAgICAgICBpZihNRU5VX1NFTEVDVEVEICYmIE1FTlVfU0VMRUNURUQuaWNvbikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE1FTlVfU0VMRUNURUQuaWNvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuICdiaSBiaS1ob3VzZS1kb29yLWZpbGwnO1xyXG4gICAgfVxyXG5cclxuICAgIC8vTW9kYWwgSW5mb3JtYXRpb25cclxuICAgIC8vcHJvdGVjdGVkIHNob3dNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLy9ASW5wdXQoKSB1cmxUZW1wbGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgICAvL0BJbnB1dCgpIGluZm9ybWF0aW9uVGl0bGU6IHN0cmluZyA9ICdJbmZvcm1hdGlvbic7XHJcbiAgICAvL0BJbnB1dCgpIGluZm9ybWF0aW9uSWNvbjogc3RyaW5nID0gJ2JpIGJpLWluZm8tY2lyY2xlJztcclxuICAgIC8vQElucHV0KCkgaW5mb3JtYXRpb25JY29uQ29sb3I6IHN0cmluZyA9ICdibGFjayc7XHJcbiAgICAvL0BJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnNTAwcHgnO1xyXG4gICAgLy9ASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9ICc0MzBweCc7XHJcblxyXG4gICAgLy9uZ09uSW5pdCgpIHtcclxuICAgIC8vICAgIGxldCBtb2R1bGUgPSBTb3VyY2UuR2V0Q3VycmVudE1vZHVsZSgpIGFzIGFueTtcclxuICAgIC8vICAgIGlmIChtb2R1bGUubW9kdWxlKSB7XHJcbiAgICAvLyAgICAgICAgbW9kdWxlID0gbmF2aWdhdGlvbi5maW5kKHggPT4geC50ZXh0ID09IG1vZHVsZS5tb2R1bGUpO1xyXG4gICAgLy8gICAgICAgIGlmIChtb2R1bGUgJiYgbW9kdWxlLmljb24pIHRoaXMuaWNvbiA9IG1vZHVsZS5pY29uO1xyXG4gICAgLy8gICAgfVxyXG4gICAgLy99XHJcbn0iLCI8aGVhZGVyIGNsYXNzPVwiY29lci1wYWdlLXRpdGxlXCIgdGl0bGU9Jyc+XHJcbiAgICA8aDI+XHJcbiAgICAgICAgPHNwYW4+IHt7IHRpdGxlIH19IDwvc3Bhbj5cclxuXHJcbiAgICAgICAgPCEtLSBCdXR0b24gSW5mb3JtYXRpb24gLS0+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cInNob3dJbmZvcm1hdGlvblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWluZm8tY2lyY2xlXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9oMj5cclxuXHJcbiAgICA8IS0tIE5hdmlnYXRpb24gLS0+XHJcbiAgICA8bmF2ICpuZ0lmPVwic2hvd05hdmlnYXRpb25cIiBhcmlhLWxhYmVsPVwiYnJlYWRjcnVtYlwiPlxyXG4gICAgICAgIDxvbCBjbGFzcz1cImJyZWFkY3J1bWJcIj5cclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8YT48aSBbY2xhc3NdPVwiX2ljb25cIj48L2k+PC9hPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBuYXYgb2YgYnJlYWRjcnVtYnNcIiBjbGFzcz1cImJyZWFkY3J1bWItaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPGEgIFtyb3V0ZXJMaW5rXT0nKG5hdi5wYXRoICYmIG5hdi5wYXRoLmxlbmd0aCA+IDApID8gbmF2LnBhdGggOiBudWxsJ1xyXG4gICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109J25hdi5xdWVyeVBhcmFtcydcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiKG5hdi5jbGljaykgPyBuYXYuY2xpY2soKSA6IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBuYXYucGFnZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvb2w+XHJcblxyXG4gICAgICAgIDwhLS0gR28gQmFjayAtLT5cclxuICAgICAgICA8YSAgKm5nSWY9XCJnb0JhY2suc2hvd1wiXHJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImdvQmFjay5wYXRoXCJcclxuICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT0nZ29CYWNrLnF1ZXJ5UGFyYW1zJ1xyXG4gICAgICAgICAgICAoY2xpY2spPVwiKGdvQmFjay5jbGljaykgPyBnb0JhY2suY2xpY2soKSA6IG51bGxcIj5cclxuICAgICAgICAgICAgR28gYmFja1xyXG4gICAgICAgIDwvYT5cclxuICAgIDwvbmF2PlxyXG5cclxuICAgIDwhLS0gVG9vbHRpcFxyXG4gICAgPGR4LXRvb2x0aXAgY29lci10b29sdGlwIHRhcmdldD1cIiNidG4taW5mb3JtYXRpb25cIiB0ZXh0PSdJbmZvcm1hdGlvbic+PC9keC10b29sdGlwPiAtLT5cclxuPC9oZWFkZXI+XHJcblxyXG5cclxuPCEtLSBJbmZvcm1hdGlvblxyXG48ZHgtcG9wdXBcclxuICAgIFsodmlzaWJsZSldPVwic2hvd01vZGFsXCJcclxuICAgIG1pbldpZHRoPVwiNTAwcHhcIiBtaW5IZWlnaHQ9XCI0MzBweFwiXHJcbiAgICBbd2lkdGhdPVwid2lkdGhcIiBbaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICBbaGlkZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIlxyXG4gICAgW3Jlc2l6ZUVuYWJsZWRdPVwiZmFsc2VcIlxyXG4gICAgW2RyYWdFbmFibGVkXT1cInRydWVcIlxyXG4gICAgKG9uSGlkZGVuKT1cIihzaG93TW9kYWwgPSBmYWxzZSlcIlxyXG4gICAgPlxyXG5cclxuICAgIC0tIEhlYWRlciAtLVxyXG4gICAgPGhlYWRlciAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICd0aXRsZSdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxoNT4gPGkgW2NsYXNzXT1cImluZm9ybWF0aW9uSWNvblwiIFtzdHlsZV09XCJ7ICdjb2xvcic6IGluZm9ybWF0aW9uSWNvbkNvbG9yIH1cIj48L2k+IHt7IGluZm9ybWF0aW9uVGl0bGUgfX0gPC9oNT5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiKHNob3dNb2RhbCA9IGZhbHNlKVwiIGNsYXNzPVwiYnRuIGJ0bi1jbG9zZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9oZWFkZXI+XHJcblxyXG4gICAgLS0gQm9keSAtLVxyXG4gICAgPHNlY3Rpb24gKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY29udGVudCdcIj5cclxuICAgICAgICA8ZHgtc2Nyb2xsLXZpZXcgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICA8b2wgY2xhc3M9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtbnVtYmVyZWRcIj5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiPlJlc3BlY3RzIHRoZSBvcmRlciBvZiB0aGUgY29sdW1ucyBsaWtlIHRoZSB0ZW1wbGF0ZS48L2xpPlxyXG5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uPGEgW2hyZWZdPVwidXJsVGVtcGxhdGVcIj5jbGljayBoZXJlIDwvYT50byBkb3dubG9hZCB0aGUgdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvb2w+XHJcbiAgICAgICAgPC9keC1zY3JvbGwtdmlldz5cclxuICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAtLSBCdXR0b24gLS1cclxuICAgIDxkeGktdG9vbGJhci1pdGVtIHRvb2xiYXI9XCJib3R0b21cIiBsb2NhdGlvbj1cImFmdGVyXCI+XHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdtZW51LWl0ZW0nXCIgY2xhc3M9XCJoLTEwMFwiPlxyXG4gICAgICAgICAgICA8ZHgtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjb2VyLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgaWNvbj1cImZhLXNvbGlkIGZhLXhtYXJrXCIgdGV4dD1cIkNMT1NFXCJcclxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTI1cHhcIiBoZWlnaHQ9XCI0MHB4XCJcclxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIihzaG93TW9kYWwgPSBmYWxzZSlcIlxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJyZWRcIlxyXG4gICAgICAgICAgICA+PC9keC1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2R4aS10b29sYmFyLWl0ZW0+XHJcbjwvZHgtcG9wdXA+IC0tPiJdfQ==