coer-elements 0.0.22 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. package/components/index.d.ts +5 -16
  2. package/components/lib/coer-button/coer-button.component.d.ts +3 -3
  3. package/components/lib/coer-checkbox/coer-checkbox.component.d.ts +1 -1
  4. package/components/lib/coer-filebox/coer-filebox.component.d.ts +3 -3
  5. package/components/lib/coer-grid/coer-grid.component.d.ts +1 -1
  6. package/components/lib/coer-grid/coer-grid.extension.d.ts +3 -5
  7. package/components/lib/coer-grid/coer-grid.templates.d.ts +1 -1
  8. package/components/lib/coer-modal/coer-modal.component.d.ts +2 -2
  9. package/components/lib/coer-numberbox/coer-numberbox.component.d.ts +1 -2
  10. package/components/lib/coer-page-title/coer-page-title.component.d.ts +1 -1
  11. package/components/lib/coer-selectbox/coer-selectbox.component.d.ts +1 -1
  12. package/components/lib/coer-switch/coer-switch.component.d.ts +1 -1
  13. package/components/lib/coer-tab/coer-tab.component.d.ts +1 -1
  14. package/components/lib/coer-textarea/coer-textarea.component.d.ts +1 -1
  15. package/components/lib/coer-textbox/coer-textbox.component.d.ts +1 -1
  16. package/components/lib/components.module.d.ts +25 -26
  17. package/components/public-api.d.ts +15 -0
  18. package/directives/index.d.ts +5 -3
  19. package/directives/public-api.d.ts +3 -0
  20. package/esm2022/coer-elements.mjs +2 -2
  21. package/esm2022/components/coer-elements-components.mjs +5 -0
  22. package/esm2022/components/lib/coer-button/coer-button.component.mjs +2 -2
  23. package/esm2022/components/lib/coer-checkbox/coer-checkbox.component.mjs +2 -3
  24. package/esm2022/components/lib/coer-filebox/coer-filebox.component.mjs +3 -5
  25. package/esm2022/components/lib/coer-form/coer-form.component.mjs +2 -3
  26. package/esm2022/components/lib/coer-grid/coer-grid.component.mjs +4 -7
  27. package/esm2022/components/lib/coer-grid/coer-grid.extension.mjs +2 -6
  28. package/esm2022/components/lib/coer-grid/coer-grid.templates.mjs +1 -1
  29. package/esm2022/components/lib/coer-modal/coer-modal.component.mjs +4 -5
  30. package/esm2022/components/lib/coer-numberbox/coer-numberbox.component.mjs +2 -4
  31. package/esm2022/components/lib/coer-page-title/coer-page-title.component.mjs +2 -2
  32. package/esm2022/components/lib/coer-selectbox/coer-selectbox.component.mjs +2 -3
  33. package/esm2022/components/lib/coer-switch/coer-switch.component.mjs +2 -3
  34. package/esm2022/components/lib/coer-tab/coer-tab.component.mjs +4 -4
  35. package/esm2022/components/lib/coer-textarea/coer-textarea.component.mjs +2 -3
  36. package/esm2022/components/lib/coer-textbox/coer-textbox.component.mjs +2 -3
  37. package/esm2022/components/lib/components.module.mjs +10 -15
  38. package/esm2022/components/public-api.mjs +16 -0
  39. package/esm2022/directives/coer-elements-directives.mjs +5 -0
  40. package/esm2022/directives/lib/coer-ref.directive.mjs +1 -1
  41. package/esm2022/directives/lib/directives.module.mjs +1 -1
  42. package/esm2022/directives/lib/life-cycle.directive.mjs +1 -1
  43. package/esm2022/directives/public-api.mjs +4 -0
  44. package/esm2022/index.mjs +2 -0
  45. package/esm2022/interfaces/coer-elements-interfaces.mjs +5 -0
  46. package/esm2022/interfaces/lib/app-source.interface.mjs +1 -1
  47. package/esm2022/interfaces/lib/coer-filebox/file-image.interface.mjs +1 -1
  48. package/esm2022/interfaces/lib/coer-filebox/file.interface.mjs +1 -1
  49. package/esm2022/interfaces/lib/coer-grid/grid-button-by-row.interface.mjs +1 -1
  50. package/esm2022/interfaces/lib/coer-grid/grid-checkbox.interface.mjs +1 -1
  51. package/esm2022/interfaces/lib/coer-grid/grid-coer-numberbox.interface.mjs +1 -1
  52. package/esm2022/interfaces/lib/coer-grid/grid-coer-selectbox.interface.mjs +1 -1
  53. package/esm2022/interfaces/lib/coer-grid/grid-coer-switch.interface.mjs +1 -1
  54. package/esm2022/interfaces/lib/coer-grid/grid-coer-textbox.interface.mjs +1 -1
  55. package/esm2022/interfaces/lib/coer-grid/grid-column.interface.mjs +1 -1
  56. package/esm2022/interfaces/lib/coer-grid/grid-data-source.interface.mjs +1 -1
  57. package/esm2022/interfaces/lib/coer-grid/grid-header-button.interface.mjs +1 -1
  58. package/esm2022/interfaces/lib/coer-grid/grid-header-export-button.interface.mjs +1 -1
  59. package/esm2022/interfaces/lib/coer-grid/grid-header.interface.mjs +1 -1
  60. package/esm2022/interfaces/lib/coer-grid/grid-import.interface.mjs +1 -1
  61. package/esm2022/interfaces/lib/coer-grid/grid-input-checkbox.interface.mjs +1 -1
  62. package/esm2022/interfaces/lib/coer-grid/grid-input-switch-change.interface.mjs +1 -1
  63. package/esm2022/interfaces/lib/coer-grid/grid-input-textbox.interface.mjs +1 -1
  64. package/esm2022/interfaces/lib/coer-grid/grid-item.interface.mjs +1 -1
  65. package/esm2022/interfaces/lib/coer-grid/grid-keyup-enter.interface.mjs +1 -1
  66. package/esm2022/interfaces/lib/coer-grid/grid-length.interface.mjs +1 -1
  67. package/esm2022/interfaces/lib/coer-grid/grid-search.interface.mjs +1 -1
  68. package/esm2022/interfaces/lib/coer-grid/grid-sort.interface.mjs +1 -1
  69. package/esm2022/interfaces/lib/coer-menu/menu-option-selected.interface.mjs +1 -1
  70. package/esm2022/interfaces/lib/coer-menu/menu-selected.interface.mjs +1 -1
  71. package/esm2022/interfaces/lib/coer-menu/menu.interface.mjs +1 -1
  72. package/esm2022/interfaces/lib/coer-ref.interface.mjs +1 -1
  73. package/esm2022/interfaces/lib/page-title/breadcrumb.interface.mjs +1 -1
  74. package/esm2022/interfaces/lib/page-title/go-back.interface.mjs +1 -1
  75. package/esm2022/interfaces/lib/screen-size.interface.mjs +1 -1
  76. package/esm2022/interfaces/lib/service/http-request.interface.mjs +1 -1
  77. package/esm2022/interfaces/lib/service/http-response.interface.mjs +1 -1
  78. package/esm2022/interfaces/lib/service/patch.interface.mjs +1 -1
  79. package/esm2022/interfaces/public-api.mjs +39 -0
  80. package/esm2022/pipes/coer-elements-pipes.mjs +5 -0
  81. package/esm2022/pipes/lib/html.pipe.mjs +1 -1
  82. package/esm2022/pipes/lib/no-image.pipe.mjs +3 -3
  83. package/esm2022/pipes/lib/numeric-format.pipe.mjs +2 -2
  84. package/esm2022/pipes/lib/pipes.module.mjs +1 -1
  85. package/esm2022/pipes/public-api.mjs +5 -0
  86. package/esm2022/signals/coer-elements-signals.mjs +5 -0
  87. package/esm2022/signals/lib/breakpoint.signal.mjs +2 -2
  88. package/esm2022/signals/lib/is-loading.signal.mjs +1 -1
  89. package/esm2022/signals/lib/is-menu-open.signal.mjs +1 -1
  90. package/esm2022/signals/lib/is-modal-open.signal.mjs +1 -1
  91. package/esm2022/signals/lib/menu.signal.mjs +1 -1
  92. package/esm2022/signals/public-api.mjs +6 -0
  93. package/esm2022/tools/coer-elements-tools.mjs +5 -0
  94. package/esm2022/tools/lib/breadcrumbs.class.mjs +1 -1
  95. package/esm2022/tools/lib/coer-alert/coer-alert.component.mjs +228 -0
  96. package/esm2022/tools/lib/control-value.class.mjs +1 -1
  97. package/esm2022/tools/lib/date-time.class.mjs +1 -1
  98. package/esm2022/tools/lib/files.class.mjs +1 -1
  99. package/esm2022/tools/lib/menu.class.mjs +1 -1
  100. package/esm2022/tools/lib/page.class.mjs +4 -4
  101. package/esm2022/tools/lib/screen.class.mjs +1 -1
  102. package/esm2022/tools/lib/service.class.mjs +24 -25
  103. package/esm2022/tools/lib/source.class.mjs +3 -3
  104. package/esm2022/tools/lib/tools.mjs +1 -1
  105. package/esm2022/tools/public-api.mjs +12 -0
  106. package/fesm2022/coer-elements-components.mjs +2718 -0
  107. package/fesm2022/coer-elements-components.mjs.map +1 -0
  108. package/fesm2022/coer-elements-directives.mjs +82 -0
  109. package/fesm2022/coer-elements-directives.mjs.map +1 -0
  110. package/fesm2022/coer-elements-interfaces.mjs +6 -0
  111. package/fesm2022/coer-elements-interfaces.mjs.map +1 -0
  112. package/fesm2022/coer-elements-pipes.mjs +83 -0
  113. package/fesm2022/coer-elements-pipes.mjs.map +1 -0
  114. package/fesm2022/coer-elements-signals.mjs +19 -0
  115. package/fesm2022/coer-elements-signals.mjs.map +1 -0
  116. package/fesm2022/coer-elements-tools.mjs +1223 -0
  117. package/fesm2022/coer-elements-tools.mjs.map +1 -0
  118. package/fesm2022/coer-elements.mjs +0 -4081
  119. package/fesm2022/coer-elements.mjs.map +1 -1
  120. package/index.d.ts +1 -5
  121. package/interfaces/index.d.ts +5 -33
  122. package/interfaces/public-api.d.ts +33 -0
  123. package/package.json +37 -1
  124. package/pipes/index.d.ts +5 -4
  125. package/pipes/public-api.d.ts +4 -0
  126. package/signals/index.d.ts +5 -5
  127. package/signals/lib/menu.signal.d.ts +1 -1
  128. package/signals/public-api.d.ts +5 -0
  129. package/styles/angular-material.scss +8 -11
  130. package/styles/bootstrap.scss +3 -3
  131. package/tools/index.d.ts +5 -10
  132. package/tools/lib/breadcrumbs.class.d.ts +1 -1
  133. package/tools/lib/menu.class.d.ts +1 -1
  134. package/tools/lib/page.class.d.ts +2 -2
  135. package/tools/lib/screen.class.d.ts +1 -1
  136. package/tools/lib/service.class.d.ts +2 -2
  137. package/tools/lib/source.class.d.ts +1 -1
  138. package/tools/public-api.d.ts +11 -0
  139. package/esm2022/components/index.mjs +0 -17
  140. package/esm2022/components/lib/coer-alert/coer-alert.component.mjs +0 -227
  141. package/esm2022/directives/index.mjs +0 -4
  142. package/esm2022/interfaces/index.mjs +0 -39
  143. package/esm2022/pipes/index.mjs +0 -5
  144. package/esm2022/public_api.mjs +0 -6
  145. package/esm2022/signals/index.mjs +0 -6
  146. package/esm2022/tools/index.mjs +0 -11
  147. package/public_api.d.ts +0 -5
  148. /package/{components → tools}/lib/coer-alert/coer-alert.component.d.ts +0 -0
@@ -1,6 +1,5 @@
1
1
  import { Component, computed, input, Input, output, signal, viewChild } from '@angular/core';
2
- import { CONTROL_VALUE, ControlValue } from '../../../tools/lib/control-value.class';
3
- import { Tools } from '../../../tools/lib/tools';
2
+ import { CONTROL_VALUE, ControlValue, Tools } from 'coer-elements/tools';
4
3
  import * as i0 from "@angular/core";
5
4
  import * as i1 from "@angular/common";
6
5
  import * as i2 from "@angular/material/input";
@@ -336,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
336
335
  }], id: [{
337
336
  type: Input
338
337
  }] } });
339
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1zZWxlY3Rib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci1zZWxlY3Rib3gvY29lci1zZWxlY3Rib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci1zZWxlY3Rib3gvY29lci1zZWxlY3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFRakQsTUFBTSxPQUFPLGFBQWlCLFNBQVEsWUFBWTtJQU5sRDs7UUFRSSxpQkFBaUI7UUFDRSxXQUFNLEdBQWEsSUFBSSxDQUFDO1FBRTNDLFdBQVc7UUFDTSxpQkFBWSxHQUFXLElBQUksQ0FBQztRQUNuQyxpQkFBWSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWEsYUFBYSxDQUFDLENBQUM7UUFDN0QsUUFBRyxHQUFXLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QyxXQUFNLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsWUFBTyxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM3QixZQUFPLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7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SUFBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFL0IsSUFBRyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztxQkFFSSxDQUFDO29CQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixDQUFDO2dCQUVELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQWpaUSxhQUFhO21HQUFiLGFBQWEsK2dGQUZYLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLDhLQ1I3QywwaEdBZ0ZBOzs0RkR0RWEsYUFBYTtrQkFOekIsU0FBUzsrQkFDSSxnQkFBZ0IsYUFHZixDQUFDLGFBQWEsZUFBZSxDQUFDOzhCQXVCNUIsS0FBSztzQkFBakIsS0FBSztnQkFLRyxFQUFFO3NCQUFWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBpbnB1dCwgSW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDT05UUk9MX1ZBTFVFLCBDb250cm9sVmFsdWUgfSBmcm9tICcuLi8uLi8uLi90b29scy9saWIvY29udHJvbC12YWx1ZS5jbGFzcyc7XHJcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvbGliL3Rvb2xzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLXNlbGVjdGJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29lci1zZWxlY3Rib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NvZXItc2VsZWN0Ym94LmNvbXBvbmVudC5zY3NzJyxcclxuICAgIHByb3ZpZGVyczogW0NPTlRST0xfVkFMVUUoQ29lclNlbGVjdGJveCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2VyU2VsZWN0Ym94PFQ+IGV4dGVuZHMgQ29udHJvbFZhbHVlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICAvL0NvbXBvbmVudCBWYWx1ZVxyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF92YWx1ZTogVCB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8vVmFyaWFibGVzXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zY3JvbGxCeVJvdzogbnVtYmVyID0gNDAuODtcclxuICAgIHByb3RlY3RlZCBfY29lclRleHRCb3ggPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZj4oJ2NvZXJUZXh0Qm94Jyk7XHJcbiAgICBwcm90ZWN0ZWQgX2lkOiBzdHJpbmcgPSBUb29scy5HZXRHdWlkKCdjb2VyLXNlbGVjdEJveCcpO1xyXG4gICAgcHJvdGVjdGVkIF9pbmRleCA9IHNpZ25hbDxudW1iZXI+KC0xKTtcclxuICAgIHByb3RlY3RlZCBfc2VhcmNoID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG4gICAgcHJvdGVjdGVkIF9pc09wZW4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIF9pc0RpcnR5ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCBfaXNPdmVyTWVudSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwcm90ZWN0ZWQgX2lzTG9hZGluZ0V2ZW50ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCBfc2Nyb2xsID0gc2lnbmFsPG51bWJlcj4oMCk7XHJcbiAgICBwcm90ZWN0ZWQgX3RleHRib3ghOiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgcHJvdGVjdGVkIF9kcm9wRG93bk1lbnUhOiBIVE1MRWxlbWVudDtcclxuICAgIHByb3RlY3RlZCBfY29udGFpbmVyITogSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgLy9JbnB1dHNcclxuICAgIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWx1ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZihUb29scy5Jc051bGwodmFsdWUpKSB2YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5TZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIGxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgICBwdWJsaWMgZGF0YVNvdXJjZSA9IGlucHV0PFRbXT4oW10pO1xyXG4gICAgcHVibGljIHByb3BEaXNwbGF5ID0gaW5wdXQ8c3RyaW5nPignbmFtZScpO1xyXG4gICAgcHVibGljIHJvd3NCeVBhZ2UgPSBpbnB1dDxudW1iZXI+KDUwKTtcclxuICAgIHB1YmxpYyBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJy0tIFNlbGVjdCAtLScpO1xyXG4gICAgcHVibGljIHdpZHRoID0gaW5wdXQ8c3RyaW5nPignMTAwJScpO1xyXG4gICAgcHVibGljIG1pbldpZHRoID0gaW5wdXQ8c3RyaW5nPignMTkwcHgnKTtcclxuICAgIHB1YmxpYyBtYXhXaWR0aCA9IGlucHV0PHN0cmluZz4oJzEwMCUnKTtcclxuICAgIHB1YmxpYyBtYXJnaW5Ub3AgPSBpbnB1dDxzdHJpbmc+KCcwcHgnKTtcclxuICAgIHB1YmxpYyBtYXJnaW5SaWdodCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIG1hcmdpbkJvdHRvbSA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIG1hcmdpbkxlZnQgPSBpbnB1dDxzdHJpbmc+KCcwcHgnKTtcclxuICAgIHB1YmxpYyBpc0ludmFsaWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNWYWxpZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0Rpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzUmVhZG9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAgIC8vT3V0cHV0c1xyXG4gICAgcHVibGljIG9uU2VsZWN0ZWQgPSBvdXRwdXQ8VD4oKTtcclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLlNldEV2ZW50cygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vZ2V0dGVyXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHByb3RlY3RlZCBnZXQgX2Rpc3BsYXllZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBUb29scy5Jc05vdE51bGwodGhpcy5fdmFsdWUpID8gKHRoaXMuX3ZhbHVlIGFzIGFueSlbdGhpcy5wcm9wRGlzcGxheSgpXSA6ICcnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBfcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgcGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2UoKS5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgICAgICBwbGFjZWhvbGRlciA9ICctLSBObyBPcHRpb25zIC0tJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBUb29scy5Jc05vdE51bGwodGhpcy5fdmFsdWUpXHJcbiAgICAgICAgICAgID8gdGhpcy5fZGlzcGxheWVkXHJcbiAgICAgICAgICAgIDogcGxhY2Vob2xkZXI7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBnZXQgX3Nob3dDYW5jZWwoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLklzTm90TnVsbCh0aGlzLl92YWx1ZSlcclxuICAgICAgICAgICAgJiYgdGhpcy5fc2VhcmNoKCkubGVuZ3RoIDw9IDA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBnZXQgcGFkZGluZ1JpZ2h0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNJbnZhbGlkKCkgfHwgdGhpcy5pc1ZhbGlkKCkgfHwgdGhpcy5fc2hvd0NhbmNlbFxyXG4gICAgICAgICAgICA/ICc0MHB4JyA6ICcxNXB4JztcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIGdldCB3aWR0aEljb25zKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNJbnZhbGlkKCkgfHwgdGhpcy5pc1ZhbGlkKCkgfHwgdGhpcy5fc2hvd0NhbmNlbFxyXG4gICAgICAgICAgICA/ICc1NXB4JyA6ICczMHB4JztcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9pc0VuYWJsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuaXNEaXNhYmxlZCgpICYmICF0aGlzLmlzTG9hZGluZygpICYmICF0aGlzLmlzUmVhZG9ubHkoKTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgZmxvYXRMYWJlbCA9IGNvbXB1dGVkPCdhdXRvJyB8ICdhbHdheXMnPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGFiZWwoKSA9PSAnJyA/ICdhbHdheXMnIDogJ2F1dG8nXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9kYXRhU291cmNlID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICAgICAgY29uc3Qgc2VhcmNoID0gdGhpcy5fc2VhcmNoKCk7XHJcbiAgICAgICAgY29uc3QgcHJvcERpc3BsYXkgPSB0aGlzLnByb3BEaXNwbGF5KCk7XHJcbiAgICAgICAgbGV0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UoKS5tYXAoKGl0ZW06IGFueSkgPT4gT2JqZWN0LmFzc2lnbihpdGVtLCB7IGluZGV4OiBpbmRleCsrIH0pKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2lzRGlydHkoKSAmJiAhdGhpcy5faXNMb2FkaW5nRXZlbnQoKSkge1xyXG4gICAgICAgICAgICBkYXRhU291cmNlID0gWy4uLmRhdGFTb3VyY2VdLmZpbHRlcigoaXRlbTogYW55KSA9PiBTdHJpbmcoaXRlbVtwcm9wRGlzcGxheV0pLnRyaW0oKS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50cmltKCkudG9VcHBlckNhc2UoKSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGluZGV4Um93ID0gMDtcclxuICAgICAgICByZXR1cm4gVG9vbHMuQnJlYWtSZWZlcmVuY2UoZGF0YVNvdXJjZSlcclxuICAgICAgICAgICAgLnNwbGljZSgwLCB0aGlzLnJvd3NCeVBhZ2UoKSlcclxuICAgICAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiBPYmplY3QuYXNzaWduKGl0ZW0sIHsgaW5kZXhSb3c6IGluZGV4Um93KysgfSkpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIFNldFZhbHVlKF92YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYoX3ZhbHVlID09PSB1bmRlZmluZWQpIF92YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fVXBkYXRlVmFsdWUoX3ZhbHVlKTtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IF92YWx1ZTtcclxuICAgICAgICB0aGlzLl9zZWFyY2guc2V0KHRoaXMuR2V0RGlzcGxheShfdmFsdWUpKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgd3JpdGVWYWx1ZShfdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmKF92YWx1ZSA9PT0gdW5kZWZpbmVkKSBfdmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gX3ZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3NlYXJjaC5zZXQodGhpcy5HZXREaXNwbGF5KF92YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgU2V0RXZlbnRzKCk6IHZvaWQge1xyXG4gICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbigoKT0+IHtcclxuICAgICAgICAgICAgLy9Db250YWluZXJcclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5faWR9LWNvbnRhaW5lcmApISBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faXNPdmVyTWVudS5zZXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pc092ZXJNZW51LnNldChmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgLy9Ecm9wRG93blxyXG4gICAgICAgICAgICB0aGlzLl9kcm9wRG93bk1lbnUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLl9pZH0tZHJvcGRvd24tbWVudWApISBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2Ryb3BEb3duTWVudS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faXNPdmVyTWVudS5zZXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fZHJvcERvd25NZW51LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pc092ZXJNZW51LnNldChmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgLy9UZXh0Qm94XHJcbiAgICAgICAgICAgIHRoaXMuX3RleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLl9pZCkhIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl90ZXh0Ym94LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lzRW5hYmxlKCkpIHRoaXMuRm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5CbHVyKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fdGV4dGJveC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChbJ0Fycm93VXAnLCAnQXJyb3dEb3duJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J10uaW5jbHVkZXMoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGtleSA9PT0gJ0Fycm93VXAnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0SW5kZXggPSAodGhpcy5fZGF0YVNvdXJjZSgpLmxlbmd0aCA8PSAwKSA/IC0xIDogMDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCh0aGlzLl9pbmRleCgpIC0gMSkgPj0gZmlyc3RJbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5kZXgudXBkYXRlKGluZGV4ID0+IGluZGV4IC0gMSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5faW5kZXgoKSA+PSAzKSB0aGlzLl9zY3JvbGwudXBkYXRlKHNjcm9sbCA9PiBzY3JvbGwgLT0gdGhpcy5fc2Nyb2xsQnlSb3cpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLl9zY3JvbGwuc2V0KDApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Ryb3BEb3duTWVudS5zY3JvbGxUbygwLCB0aGlzLl9zY3JvbGwoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2Nyb2xsLnNldCgwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4LnNldCgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90ZXh0Ym94LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90ZXh0Ym94LnNlbGVjdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kcm9wRG93bk1lbnUuc2Nyb2xsVG8oMCwgdGhpcy5fc2Nyb2xsKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihrZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RJbmRleCA9ICh0aGlzLl9kYXRhU291cmNlKCkubGVuZ3RoIC0gMSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRoaXMuX2luZGV4KCkgKyAxKSA8PSBsYXN0SW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4LnVwZGF0ZShpbmRleCA9PiBpbmRleCArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5faW5kZXgoKSA+PSAzKSB0aGlzLl9zY3JvbGwudXBkYXRlKHNjcm9sbCA9PiBzY3JvbGwgKz0gdGhpcy5fc2Nyb2xsQnlSb3cpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kcm9wRG93bk1lbnUuc2Nyb2xsVG8oMCwgdGhpcy5fc2Nyb2xsKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoWydBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCddLmluY2x1ZGVzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoVG9vbHMuSXNOb3ROdWxsKHRoaXMuX3ZhbHVlKSAmJiAhdGhpcy5faXNEaXJ0eSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY3JvbGwuc2V0KDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZHJvcERvd25NZW51LnNjcm9sbFRvKDAsIHRoaXMuX3Njcm9sbCgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU2VhcmNoKHRoaXMuX2Rpc3BsYXllZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzRGlydHkuc2V0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICdEZWxldGUnICYmIHRoaXMuX3NlYXJjaCgpID09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuVW5zZWxlY3QoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzRGlydHkuc2V0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3RleHRib3guYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2lzT3Zlck1lbnUuc2V0KHRydWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3RleHRib3guYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2lzT3Zlck1lbnUuc2V0KGZhbHNlKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl90ZXh0Ym94LmFkZEV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKF8gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlYXJjaC51cGRhdGUoc2VhcmNoID0+IHNlYXJjaCA9IHNlYXJjaC50b1N0cmluZygpLnRyaW0oKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvL0RvY3VtZW50XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYoIXRoaXMuX2lzT3Zlck1lbnUoKSkgdGhpcy5CbHVyKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faW5kZXgoKSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChUb29scy5Jc05vdE51bGwodGhpcy5fdmFsdWUpICYmIHRoaXMuX3NlYXJjaCgpID09ICh0aGlzLl92YWx1ZSBhcyBhbnkpW3RoaXMucHJvcERpc3BsYXkoKV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IFRvb2xzLkJyZWFrUmVmZXJlbmNlKHRoaXMuX2RhdGFTb3VyY2UoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IF92YWx1ZSA9IGRhdGFTb3VyY2UuZmluZCh4ID0+IHguaW5kZXhSb3cgPT0gdGhpcy5faW5kZXgoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU2VsZWN0SXRlbShfdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc0xvYWRpbmdFdmVudC5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5CbHVyKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXRJbmRleFJvdyA9IChpdGVtOiBhbnkpOiBudW1iZXIgPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtWydpbmRleFJvdyddO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXREaXNwbGF5ID0gKGl0ZW06IGFueSk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLklzTm90TnVsbChpdGVtKSA/IGl0ZW1bdGhpcy5wcm9wRGlzcGxheSgpXSA6ICcnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBTZWxlY3RJdGVtKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChUb29scy5Jc05vdE51bGwoaXRlbSkpIHtcclxuICAgICAgICAgICAgY29uc3QgX2l0ZW0gPSBUb29scy5CcmVha1JlZmVyZW5jZTxhbnk+KHRoaXMuZGF0YVNvdXJjZSgpW2l0ZW0uaW5kZXhdKTtcclxuXHJcbiAgICAgICAgICAgIGlmKFRvb2xzLklzTm90TnVsbChfaXRlbSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuU2V0VmFsdWUoVG9vbHMuQnJlYWtSZWZlcmVuY2UoX2l0ZW0pKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuQmx1cigpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBkZWxldGUgX2l0ZW0uaW5kZXhSb3c7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBfaXRlbS5pbmRleDtcclxuICAgICAgICAgICAgdGhpcy5vblNlbGVjdGVkLmVtaXQoeyAuLi5faXRlbSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIFVuc2VsZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NlYXJjaC5zZXQoJycpO1xyXG4gICAgICAgIHRoaXMuU2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgdGhpcy5CbHVyKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIEZvY3VzKHRpbWVvdXQ6IG51bWJlciA9IDApOiB2b2lkIHtcclxuICAgICAgICBpZih0aGlzLl9pc0xvYWRpbmdFdmVudCgpKSByZXR1cm47XHJcbiAgICAgICAgZWxzZSB0aGlzLl9pc0xvYWRpbmdFdmVudC5zZXQodHJ1ZSk7XHJcblxyXG4gICAgICAgIFRvb2xzLlNsZWVwKHRpbWVvdXQpLnRoZW4oXyA9PiB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuX2lzRW5hYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3RleHRib3guZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3RleHRib3guc2VsZWN0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLk9wZW4oKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKF8gPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTm90TnVsbCh0aGlzLl92YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlNlYXJjaCh0aGlzLl9kaXNwbGF5ZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldChmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBCbHVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmKHRoaXMuX2lzTG9hZGluZ0V2ZW50KCkpIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuX2lzRGlydHkuc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLl9pbmRleC5zZXQoLTEpO1xyXG4gICAgICAgIHRoaXMuX3Njcm9sbC5zZXQoMCk7XHJcbiAgICAgICAgdGhpcy5fZHJvcERvd25NZW51LnNjcm9sbFRvKDAsIHRoaXMuX3Njcm9sbCgpKTtcclxuICAgICAgICB0aGlzLl9zZWFyY2guc2V0KHRoaXMuX2Rpc3BsYXllZCk7XHJcblxyXG4gICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbihfID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fdGV4dGJveC5ibHVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuQ2xvc2UoKTtcclxuXHJcbiAgICAgICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbihfID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLl9pZH0tY29udGFpbmVyIC5tZGMtbGluZS1yaXBwbGUtLWFjdGl2ZWApO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnbWRjLWxpbmUtcmlwcGxlLS1hY3RpdmUnKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pc0xvYWRpbmdFdmVudC5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIE9wZW4oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9kcm9wRG93bk1lbnUuY2xhc3NMaXN0LmNvbnRhaW5zKCdzaG93JykpIHtcclxuICAgICAgICAgICAgdGhpcy5fZHJvcERvd25NZW51LmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2lzT3Blbi5zZXQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBDbG9zZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fZHJvcERvd25NZW51LmNsYXNzTGlzdC5jb250YWlucygnc2hvdycpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Ryb3BEb3duTWVudS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9pc09wZW4uc2V0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgU2VhcmNoKF92YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2VhcmNoLnNldChTdHJpbmcoX3ZhbHVlKSk7XHJcblxyXG4gICAgICAgIFRvb2xzLlNsZWVwKDAsIGAke3RoaXMuX2lkfS1zZWFyY2hgKS50aGVuKF8gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5fZGF0YVNvdXJjZSgpLmZpbmQoaXRlbSA9PiBTdHJpbmcoaXRlbVt0aGlzLnByb3BEaXNwbGF5KCldKS50cmltKCkudG9VcHBlckNhc2UoKS5pbmNsdWRlcyhTdHJpbmcoX3ZhbHVlKS50cmltKCkudG9VcHBlckNhc2UoKSkpO1xyXG5cclxuICAgICAgICAgICAgaWYoVG9vbHMuSXNOb3ROdWxsKGl0ZW0pKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbmRleC5zZXQoaXRlbS5pbmRleFJvdyk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5faW5kZXgoKSA+PSAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2Nyb2xsLnNldCgodGhpcy5faW5kZXgoKSAtIDIpICogdGhpcy5fc2Nyb2xsQnlSb3cpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Njcm9sbC5zZXQoMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZHJvcERvd25NZW51LnNjcm9sbFRvKDAsIHRoaXMuX3Njcm9sbCgpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNvZXItc2VsZWN0LWJveFwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkXHJcbiAgICAgICAgW2lkXT1cIl9pZCArICctY29udGFpbmVyJ1wiXHJcbiAgICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbCgpXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICdyZWFkb25seSc6IGlzUmVhZG9ubHkoKSAmJiAhaXNMb2FkaW5nKClcclxuICAgICAgICB9XCJcclxuICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgICAnd2lkdGgnOiB3aWR0aCgpLFxyXG4gICAgICAgICAgICAnbWluLXdpZHRoJzogbWluV2lkdGgoKSxcclxuICAgICAgICAgICAgJ21heC13aWR0aCc6IG1heFdpZHRoKCksXHJcbiAgICAgICAgICAgICdtYXJnaW4tdG9wJzogbWFyZ2luVG9wKCksXHJcbiAgICAgICAgICAgICdtYXJnaW4tcmlnaHQnOiBtYXJnaW5SaWdodCgpLFxyXG4gICAgICAgICAgICAnbWFyZ2luLWJvdHRvbSc6IG1hcmdpbkJvdHRvbSgpLFxyXG4gICAgICAgICAgICAnbWFyZ2luLWxlZnQnOiBtYXJnaW5MZWZ0KClcclxuICAgICAgICB9XCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbCgpIH19PC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxpbnB1dCAjY29lclRleHRCb3ggbWF0SW5wdXRcclxuICAgICAgICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cIl9zZWFyY2goKVwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJfcGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIV9pc0VuYWJsZSgpXCJcclxuICAgICAgICAgICAgKGlucHV0KT1cIlNlYXJjaChjb2VyVGV4dEJveC52YWx1ZSlcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJTZXRUb3VjaGVkKHRydWUpXCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICdjdXJzb3InOiBpc0xvYWRpbmcoKSA/ICd3YWl0JyA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcCc6IChmbG9hdExhYmVsKCkgPT0gJ2F1dG8nKSA/ICcxNXB4JyA6ICc5cHgnLFxyXG4gICAgICAgICAgICAgICAgJ3BhZGRpbmctcmlnaHQnOiBwYWRkaW5nUmlnaHRcclxuICAgICAgICAgICAgfVwiPlxyXG5cclxuICAgICAgICBAaWYoaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyLWdsb3dcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGxhY2Vob2xkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPHNwYW4gbmdDbGFzcz1cImljb24tY29udGFpbmVyXCIgW3N0eWxlXT1cInsgJ3dpZHRoJzogd2lkdGhJY29ucyB9XCI+XHJcbiAgICAgICAgICAgIEBpZihfc2hvd0NhbmNlbCAmJiBfaXNFbmFibGUoKSAmJiAhaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEteG1hcmsgdGV4dC1zZWNvbmRhcnlcIiAoY2xpY2spPVwiVW5zZWxlY3QoKVwiPjwvaT5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGVsc2UgaWYoaXNJbnZhbGlkKCkgJiYgIWlzTG9hZGluZygpKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNpcmNsZS1leGNsYW1hdGlvblwiPjwvaT5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGVsc2UgaWYoaXNWYWxpZCgpICYmICFpc0xvYWRpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaXJjbGUtY2hlY2sgdGV4dC1ncmVlblwiPjwvaT5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGlmKF9pc09wZW4oKSAmJiBfaXNFbmFibGUoKSAmJiAhaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2FyZXQtdXAgY3Vyc29yLXBvaW50ZXIgdGV4dC1vcmFuZ2VcIiAoY2xpY2spPVwiQmx1cigpXCI+PC9pPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAZWxzZSBpZihfaXNFbmFibGUoKSAmJiAhaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2FyZXQtZG93biBjdXJzb3ItcG9pbnRlciB0ZXh0LXNlY29uZGFyeVwiPjwvaT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgPCEtLSBPcHRpb25zIENvbnRhaW5lciAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIj5cclxuICAgICAgICA8dWwgW2lkXT1cIl9pZCArICctZHJvcGRvd24tbWVudSdcIiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIj5cclxuICAgICAgICAgICAgQGZvcihpdGVtIG9mIF9kYXRhU291cmNlKCk7IHRyYWNrIEdldEluZGV4Um93KGl0ZW0pKSB7XHJcbiAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT1cIlNlbGVjdEl0ZW0oaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtpZF09XCJpZCArICctZHJvcGRvd24tb3B0aW9uLScgKyBHZXRJbmRleFJvdyhpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkcm9wZG93bi1pdGVtJzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJzb3ItcG9pbnRlcic6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHJvcGRvd24taXRlbS1mb2N1cyc6IF9pbmRleCgpID09IEdldEluZGV4Um93KGl0ZW0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgID57eyBHZXREaXNwbGF5KGl0ZW0pIH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cImRyb3Bkb3duLWRpdmlkZXJcIj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuIl19
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1zZWxlY3Rib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9jb21wb25lbnRzL2xpYi9jb2VyLXNlbGVjdGJveC9jb2VyLXNlbGVjdGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItc2VsZWN0Ym94L2NvZXItc2VsZWN0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFjLEtBQUssRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBUXpFLE1BQU0sT0FBTyxhQUFpQixTQUFRLFlBQVk7SUFObEQ7O1FBUUksaUJBQWlCO1FBQ0UsV0FBTSxHQUFhLElBQUksQ0FBQztRQUUzQyxXQUFXO1FBQ00saUJBQVksR0FBVyxJQUFJLENBQUM7UUFDbkMsaUJBQVksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFhLGFBQWEsQ0FBQyxDQUFDO1FBQzdELFFBQUcsR0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUMsV0FBTSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDN0IsWUFBTyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxhQUFRLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFD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QUFDO2dCQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRS9CLElBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzlELENBQUM7cUJBRUksQ0FBQztvQkFDRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsQ0FBQztnQkFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbkQsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FqWlEsYUFBYTttR0FBYixhQUFhLCtnRkFGWCxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyw4S0NQN0MsMGhHQWdGQTs7NEZEdkVhLGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0ksZ0JBQWdCLGFBR2YsQ0FBQyxhQUFhLGVBQWUsQ0FBQzs4QkF1QjVCLEtBQUs7c0JBQWpCLEtBQUs7Z0JBS0csRUFBRTtzQkFBVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgaW5wdXQsIElucHV0LCBPbkluaXQsIG91dHB1dCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ09OVFJPTF9WQUxVRSwgQ29udHJvbFZhbHVlLCBUb29scyB9IGZyb20gJ2NvZXItZWxlbWVudHMvdG9vbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvZXItc2VsZWN0Ym94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLXNlbGVjdGJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY29lci1zZWxlY3Rib3guY29tcG9uZW50LnNjc3MnLFxyXG4gICAgcHJvdmlkZXJzOiBbQ09OVFJPTF9WQUxVRShDb2VyU2VsZWN0Ym94KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJTZWxlY3Rib3g8VD4gZXh0ZW5kcyBDb250cm9sVmFsdWUgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIC8vQ29tcG9uZW50IFZhbHVlXHJcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX3ZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLy9WYXJpYWJsZXNcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Njcm9sbEJ5Um93OiBudW1iZXIgPSA0MC44O1xyXG4gICAgcHJvdGVjdGVkIF9jb2VyVGV4dEJveCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPignY29lclRleHRCb3gnKTtcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZyA9IFRvb2xzLkdldEd1aWQoJ2NvZXItc2VsZWN0Qm94Jyk7XHJcbiAgICBwcm90ZWN0ZWQgX2luZGV4ID0gc2lnbmFsPG51bWJlcj4oLTEpO1xyXG4gICAgcHJvdGVjdGVkIF9zZWFyY2ggPSBzaWduYWw8c3RyaW5nPignJyk7XHJcbiAgICBwcm90ZWN0ZWQgX2lzT3BlbiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwcm90ZWN0ZWQgX2lzRGlydHkgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIF9pc092ZXJNZW51ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCBfaXNMb2FkaW5nRXZlbnQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIF9zY3JvbGwgPSBzaWduYWw8bnVtYmVyPigwKTtcclxuICAgIHByb3RlY3RlZCBfdGV4dGJveCE6IEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBwcm90ZWN0ZWQgX2Ryb3BEb3duTWVudSE6IEhUTUxFbGVtZW50O1xyXG4gICAgcHJvdGVjdGVkIF9jb250YWluZXIhOiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvL0lucHV0c1xyXG4gICAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmKFRvb2xzLklzTnVsbCh2YWx1ZSkpIHZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLlNldFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIHB1YmxpYyBkYXRhU291cmNlID0gaW5wdXQ8VFtdPihbXSk7XHJcbiAgICBwdWJsaWMgcHJvcERpc3BsYXkgPSBpbnB1dDxzdHJpbmc+KCduYW1lJyk7XHJcbiAgICBwdWJsaWMgcm93c0J5UGFnZSA9IGlucHV0PG51bWJlcj4oNTApO1xyXG4gICAgcHVibGljIHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignLS0gU2VsZWN0IC0tJyk7XHJcbiAgICBwdWJsaWMgd2lkdGggPSBpbnB1dDxzdHJpbmc+KCcxMDAlJyk7XHJcbiAgICBwdWJsaWMgbWluV2lkdGggPSBpbnB1dDxzdHJpbmc+KCcxOTBweCcpO1xyXG4gICAgcHVibGljIG1heFdpZHRoID0gaW5wdXQ8c3RyaW5nPignMTAwJScpO1xyXG4gICAgcHVibGljIG1hcmdpblRvcCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIG1hcmdpblJpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luQm90dG9tID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luTGVmdCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIGlzSW52YWxpZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc1ZhbGlkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNSZWFkb25seSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gICAgLy9PdXRwdXRzXHJcbiAgICBwdWJsaWMgb25TZWxlY3RlZCA9IG91dHB1dDxUPigpO1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuU2V0RXZlbnRzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBfZGlzcGxheWVkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLklzTm90TnVsbCh0aGlzLl92YWx1ZSkgPyAodGhpcy5fdmFsdWUgYXMgYW55KVt0aGlzLnByb3BEaXNwbGF5KCldIDogJyc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vZ2V0dGVyXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IF9wbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBwbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSgpLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gJy0tIE5vIE9wdGlvbnMgLS0nO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLklzTm90TnVsbCh0aGlzLl92YWx1ZSlcclxuICAgICAgICAgICAgPyB0aGlzLl9kaXNwbGF5ZWRcclxuICAgICAgICAgICAgOiBwbGFjZWhvbGRlcjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIGdldCBfc2hvd0NhbmNlbCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gVG9vbHMuSXNOb3ROdWxsKHRoaXMuX3ZhbHVlKVxyXG4gICAgICAgICAgICAmJiB0aGlzLl9zZWFyY2goKS5sZW5ndGggPD0gMDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIGdldCBwYWRkaW5nUmlnaHQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0ludmFsaWQoKSB8fCB0aGlzLmlzVmFsaWQoKSB8fCB0aGlzLl9zaG93Q2FuY2VsXHJcbiAgICAgICAgICAgID8gJzQwcHgnIDogJzE1cHgnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IHdpZHRoSWNvbnMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0ludmFsaWQoKSB8fCB0aGlzLmlzVmFsaWQoKSB8fCB0aGlzLl9zaG93Q2FuY2VsXHJcbiAgICAgICAgICAgID8gJzU1cHgnIDogJzMwcHgnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgX2lzRW5hYmxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5pc0Rpc2FibGVkKCkgJiYgIXRoaXMuaXNMb2FkaW5nKCkgJiYgIXRoaXMuaXNSZWFkb25seSgpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBmbG9hdExhYmVsID0gY29tcHV0ZWQ8J2F1dG8nIHwgJ2Fsd2F5cyc+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYWJlbCgpID09ICcnID8gJ2Fsd2F5cycgOiAnYXV0bydcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgX2RhdGFTb3VyY2UgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgICBjb25zdCBzZWFyY2ggPSB0aGlzLl9zZWFyY2goKTtcclxuICAgICAgICBjb25zdCBwcm9wRGlzcGxheSA9IHRoaXMucHJvcERpc3BsYXkoKTtcclxuICAgICAgICBsZXQgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpLm1hcCgoaXRlbTogYW55KSA9PiBPYmplY3QuYXNzaWduKGl0ZW0sIHsgaW5kZXg6IGluZGV4KysgfSkpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5faXNEaXJ0eSgpICYmICF0aGlzLl9pc0xvYWRpbmdFdmVudCgpKSB7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2UgPSBbLi4uZGF0YVNvdXJjZV0uZmlsdGVyKChpdGVtOiBhbnkpID0+IFN0cmluZyhpdGVtW3Byb3BEaXNwbGF5XSkudHJpbSgpLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoLnRyaW0oKS50b1VwcGVyQ2FzZSgpKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgaW5kZXhSb3cgPSAwO1xyXG4gICAgICAgIHJldHVybiBUb29scy5CcmVha1JlZmVyZW5jZShkYXRhU291cmNlKVxyXG4gICAgICAgICAgICAuc3BsaWNlKDAsIHRoaXMucm93c0J5UGFnZSgpKVxyXG4gICAgICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IE9iamVjdC5hc3NpZ24oaXRlbSwgeyBpbmRleFJvdzogaW5kZXhSb3crKyB9KSk7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgU2V0VmFsdWUoX3ZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZihfdmFsdWUgPT09IHVuZGVmaW5lZCkgX3ZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9VcGRhdGVWYWx1ZShfdmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gX3ZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3NlYXJjaC5zZXQodGhpcy5HZXREaXNwbGF5KF92YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKF92YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYoX3ZhbHVlID09PSB1bmRlZmluZWQpIF92YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBfdmFsdWU7XHJcbiAgICAgICAgdGhpcy5fc2VhcmNoLnNldCh0aGlzLkdldERpc3BsYXkoX3ZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBTZXRFdmVudHMoKTogdm9pZCB7XHJcbiAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpPT4ge1xyXG4gICAgICAgICAgICAvL0NvbnRhaW5lclxyXG4gICAgICAgICAgICB0aGlzLl9jb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLl9pZH0tY29udGFpbmVyYCkhIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pc092ZXJNZW51LnNldCh0cnVlKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2lzT3Zlck1lbnUuc2V0KGZhbHNlKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvL0Ryb3BEb3duXHJcbiAgICAgICAgICAgIHRoaXMuX2Ryb3BEb3duTWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke3RoaXMuX2lkfS1kcm9wZG93bi1tZW51YCkhIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fZHJvcERvd25NZW51LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pc092ZXJNZW51LnNldCh0cnVlKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9kcm9wRG93bk1lbnUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2lzT3Zlck1lbnUuc2V0KGZhbHNlKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvL1RleHRCb3hcclxuICAgICAgICAgICAgdGhpcy5fdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuX2lkKSEgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3RleHRib3guYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faXNFbmFibGUoKSkgdGhpcy5Gb2N1cygpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSB0aGlzLkJsdXIoKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl90ZXh0Ym94LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKFsnQXJyb3dVcCcsICdBcnJvd0Rvd24nLCAnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnXS5pbmNsdWRlcyhrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoa2V5ID09PSAnQXJyb3dVcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RJbmRleCA9ICh0aGlzLl9kYXRhU291cmNlKCkubGVuZ3RoIDw9IDApID8gLTEgOiAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoKHRoaXMuX2luZGV4KCkgLSAxKSA+PSBmaXJzdEluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbmRleC51cGRhdGUoaW5kZXggPT4gaW5kZXggLSAxKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLl9pbmRleCgpID49IDMpIHRoaXMuX3Njcm9sbC51cGRhdGUoc2Nyb2xsID0+IHNjcm9sbCAtPSB0aGlzLl9zY3JvbGxCeVJvdyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMuX3Njcm9sbC5zZXQoMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZHJvcERvd25NZW51LnNjcm9sbFRvKDAsIHRoaXMuX3Njcm9sbCgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY3JvbGwuc2V0KDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5kZXguc2V0KC0xKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RleHRib3guZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RleHRib3guc2VsZWN0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Ryb3BEb3duTWVudS5zY3JvbGxUbygwLCB0aGlzLl9zY3JvbGwoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gKHRoaXMuX2RhdGFTb3VyY2UoKS5sZW5ndGggLSAxKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodGhpcy5faW5kZXgoKSArIDEpIDw9IGxhc3RJbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5kZXgudXBkYXRlKGluZGV4ID0+IGluZGV4ICsgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLl9pbmRleCgpID49IDMpIHRoaXMuX3Njcm9sbC51cGRhdGUoc2Nyb2xsID0+IHNjcm9sbCArPSB0aGlzLl9zY3JvbGxCeVJvdyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Ryb3BEb3duTWVudS5zY3JvbGxUbygwLCB0aGlzLl9zY3JvbGwoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChbJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J10uaW5jbHVkZXMoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihUb29scy5Jc05vdE51bGwodGhpcy5fdmFsdWUpICYmICF0aGlzLl9pc0RpcnR5KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Njcm9sbC5zZXQoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kcm9wRG93bk1lbnUuc2Nyb2xsVG8oMCwgdGhpcy5fc2Nyb2xsKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5TZWFyY2godGhpcy5fZGlzcGxheWVkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNEaXJ0eS5zZXQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gJ0RlbGV0ZScgJiYgdGhpcy5fc2VhcmNoKCkgPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5VbnNlbGVjdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNEaXJ0eS5zZXQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fdGV4dGJveC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faXNPdmVyTWVudS5zZXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fdGV4dGJveC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faXNPdmVyTWVudS5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3RleHRib3guYWRkRXZlbnRMaXN0ZW5lcigncGFzdGUnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oXyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VhcmNoLnVwZGF0ZShzZWFyY2ggPT4gc2VhcmNoID0gc2VhcmNoLnRvU3RyaW5nKCkudHJpbSgpKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vRG9jdW1lbnRcclxuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5faXNPdmVyTWVudSgpKSB0aGlzLkJsdXIoKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pbmRleCgpID49IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFRvb2xzLklzTm90TnVsbCh0aGlzLl92YWx1ZSkgJiYgdGhpcy5fc2VhcmNoKCkgPT0gKHRoaXMuX3ZhbHVlIGFzIGFueSlbdGhpcy5wcm9wRGlzcGxheSgpXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhU291cmNlID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UodGhpcy5fZGF0YVNvdXJjZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgX3ZhbHVlID0gZGF0YVNvdXJjZS5maW5kKHggPT4geC5pbmRleFJvdyA9PSB0aGlzLl9pbmRleCgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5TZWxlY3RJdGVtKF92YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLkJsdXIoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIEdldEluZGV4Um93ID0gKGl0ZW06IGFueSk6IG51bWJlciA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1bJ2luZGV4Um93J107XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIEdldERpc3BsYXkgPSAoaXRlbTogYW55KTogc3RyaW5nID0+IHtcclxuICAgICAgICByZXR1cm4gVG9vbHMuSXNOb3ROdWxsKGl0ZW0pID8gaXRlbVt0aGlzLnByb3BEaXNwbGF5KCldIDogJyc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIFNlbGVjdEl0ZW0oaXRlbTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKFRvb2xzLklzTm90TnVsbChpdGVtKSkge1xyXG4gICAgICAgICAgICBjb25zdCBfaXRlbSA9IFRvb2xzLkJyZWFrUmVmZXJlbmNlPGFueT4odGhpcy5kYXRhU291cmNlKClbaXRlbS5pbmRleF0pO1xyXG5cclxuICAgICAgICAgICAgaWYoVG9vbHMuSXNOb3ROdWxsKF9pdGVtKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5TZXRWYWx1ZShUb29scy5CcmVha1JlZmVyZW5jZShfaXRlbSkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5CbHVyKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGRlbGV0ZSBfaXRlbS5pbmRleFJvdztcclxuICAgICAgICAgICAgZGVsZXRlIF9pdGVtLmluZGV4O1xyXG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0ZWQuZW1pdCh7IC4uLl9pdGVtIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgVW5zZWxlY3QoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2VhcmNoLnNldCgnJyk7XHJcbiAgICAgICAgdGhpcy5TZXRWYWx1ZShudWxsKTtcclxuICAgICAgICB0aGlzLkJsdXIoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgRm9jdXModGltZW91dDogbnVtYmVyID0gMCk6IHZvaWQge1xyXG4gICAgICAgIGlmKHRoaXMuX2lzTG9hZGluZ0V2ZW50KCkpIHJldHVybjtcclxuICAgICAgICBlbHNlIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldCh0cnVlKTtcclxuXHJcbiAgICAgICAgVG9vbHMuU2xlZXAodGltZW91dCkudGhlbihfID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy5faXNFbmFibGUoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdGV4dGJveC5mb2N1cygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdGV4dGJveC5zZWxlY3QoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuT3BlbigpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oXyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoVG9vbHMuSXNOb3ROdWxsKHRoaXMuX3ZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuU2VhcmNoKHRoaXMuX2Rpc3BsYXllZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KGZhbHNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIEJsdXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5faXNMb2FkaW5nRXZlbnQoKSkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLl9pc0xvYWRpbmdFdmVudC5zZXQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5faXNEaXJ0eS5zZXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuX2luZGV4LnNldCgtMSk7XHJcbiAgICAgICAgdGhpcy5fc2Nyb2xsLnNldCgwKTtcclxuICAgICAgICB0aGlzLl9kcm9wRG93bk1lbnUuc2Nyb2xsVG8oMCwgdGhpcy5fc2Nyb2xsKCkpO1xyXG4gICAgICAgIHRoaXMuX3NlYXJjaC5zZXQodGhpcy5fZGlzcGxheWVkKTtcclxuXHJcbiAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKF8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl90ZXh0Ym94LmJsdXIoKTtcclxuICAgICAgICAgICAgdGhpcy5DbG9zZSgpO1xyXG5cclxuICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKF8gPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMuX2lkfS1jb250YWluZXIgLm1kYy1saW5lLXJpcHBsZS0tYWN0aXZlYCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCkgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdtZGMtbGluZS1yaXBwbGUtLWFjdGl2ZScpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldChmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgT3BlbigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2Ryb3BEb3duTWVudS5jbGFzc0xpc3QuY29udGFpbnMoJ3Nob3cnKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9kcm9wRG93bk1lbnUuY2xhc3NMaXN0LmFkZCgnc2hvdycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5faXNPcGVuLnNldCh0cnVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIENsb3NlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9kcm9wRG93bk1lbnUuY2xhc3NMaXN0LmNvbnRhaW5zKCdzaG93JykpIHtcclxuICAgICAgICAgICAgdGhpcy5fZHJvcERvd25NZW51LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2lzT3Blbi5zZXQoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBTZWFyY2goX3ZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZWFyY2guc2V0KFN0cmluZyhfdmFsdWUpKTtcclxuXHJcbiAgICAgICAgVG9vbHMuU2xlZXAoMCwgYCR7dGhpcy5faWR9LXNlYXJjaGApLnRoZW4oXyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLl9kYXRhU291cmNlKCkuZmluZChpdGVtID0+IFN0cmluZyhpdGVtW3RoaXMucHJvcERpc3BsYXkoKV0pLnRyaW0oKS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKFN0cmluZyhfdmFsdWUpLnRyaW0oKS50b1VwcGVyQ2FzZSgpKSk7XHJcblxyXG4gICAgICAgICAgICBpZihUb29scy5Jc05vdE51bGwoaXRlbSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2luZGV4LnNldChpdGVtLmluZGV4Um93KTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLl9pbmRleCgpID49IDMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY3JvbGwuc2V0KCh0aGlzLl9pbmRleCgpIC0gMikgKiB0aGlzLl9zY3JvbGxCeVJvdyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2Nyb2xsLnNldCgwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kcm9wRG93bk1lbnUuc2Nyb2xsVG8oMCwgdGhpcy5fc2Nyb2xsKCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiY29lci1zZWxlY3QtYm94XCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGRcclxuICAgICAgICBbaWRdPVwiX2lkICsgJy1jb250YWluZXInXCJcclxuICAgICAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsKClcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgJ3JlYWRvbmx5JzogaXNSZWFkb25seSgpICYmICFpc0xvYWRpbmcoKVxyXG4gICAgICAgIH1cIlxyXG4gICAgICAgIFtzdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICd3aWR0aCc6IHdpZHRoKCksXHJcbiAgICAgICAgICAgICdtaW4td2lkdGgnOiBtaW5XaWR0aCgpLFxyXG4gICAgICAgICAgICAnbWF4LXdpZHRoJzogbWF4V2lkdGgoKSxcclxuICAgICAgICAgICAgJ21hcmdpbi10b3AnOiBtYXJnaW5Ub3AoKSxcclxuICAgICAgICAgICAgJ21hcmdpbi1yaWdodCc6IG1hcmdpblJpZ2h0KCksXHJcbiAgICAgICAgICAgICdtYXJnaW4tYm90dG9tJzogbWFyZ2luQm90dG9tKCksXHJcbiAgICAgICAgICAgICdtYXJnaW4tbGVmdCc6IG1hcmdpbkxlZnQoKVxyXG4gICAgICAgIH1cIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsKCkgfX08L21hdC1sYWJlbD5cclxuXHJcbiAgICAgICAgPGlucHV0ICNjb2VyVGV4dEJveCBtYXRJbnB1dFxyXG4gICAgICAgICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBbdmFsdWVdPVwiX3NlYXJjaCgpXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIl9wbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhX2lzRW5hYmxlKClcIlxyXG4gICAgICAgICAgICAoaW5wdXQpPVwiU2VhcmNoKGNvZXJUZXh0Qm94LnZhbHVlKVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIlNldFRvdWNoZWQodHJ1ZSlcIlxyXG4gICAgICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2N1cnNvcic6IGlzTG9hZGluZygpID8gJ3dhaXQnIDogbnVsbCxcclxuICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wJzogKGZsb2F0TGFiZWwoKSA9PSAnYXV0bycpID8gJzE1cHgnIDogJzlweCcsXHJcbiAgICAgICAgICAgICAgICAncGFkZGluZy1yaWdodCc6IHBhZGRpbmdSaWdodFxyXG4gICAgICAgICAgICB9XCI+XHJcblxyXG4gICAgICAgIEBpZihpc0xvYWRpbmcoKSkge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXItZ2xvd1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8c3BhbiBuZ0NsYXNzPVwiaWNvbi1jb250YWluZXJcIiBbc3R5bGVdPVwieyAnd2lkdGgnOiB3aWR0aEljb25zIH1cIj5cclxuICAgICAgICAgICAgQGlmKF9zaG93Q2FuY2VsICYmIF9pc0VuYWJsZSgpICYmICFpc0xvYWRpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS14bWFyayB0ZXh0LXNlY29uZGFyeVwiIChjbGljayk9XCJVbnNlbGVjdCgpXCI+PC9pPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAZWxzZSBpZihpc0ludmFsaWQoKSAmJiAhaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2lyY2xlLWV4Y2xhbWF0aW9uXCI+PC9pPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAZWxzZSBpZihpc1ZhbGlkKCkgJiYgIWlzTG9hZGluZygpKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNpcmNsZS1jaGVjayB0ZXh0LWdyZWVuXCI+PC9pPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaWYoX2lzT3BlbigpICYmIF9pc0VuYWJsZSgpICYmICFpc0xvYWRpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jYXJldC11cCBjdXJzb3ItcG9pbnRlciB0ZXh0LW9yYW5nZVwiIChjbGljayk9XCJCbHVyKClcIj48L2k+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBlbHNlIGlmKF9pc0VuYWJsZSgpICYmICFpc0xvYWRpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jYXJldC1kb3duIGN1cnNvci1wb2ludGVyIHRleHQtc2Vjb25kYXJ5XCI+PC9pPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICA8IS0tIE9wdGlvbnMgQ29udGFpbmVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiPlxyXG4gICAgICAgIDx1bCBbaWRdPVwiX2lkICsgJy1kcm9wZG93bi1tZW51J1wiIGNsYXNzPVwiZHJvcGRvd24tbWVudVwiPlxyXG4gICAgICAgICAgICBAZm9yKGl0ZW0gb2YgX2RhdGFTb3VyY2UoKTsgdHJhY2sgR2V0SW5kZXhSb3coaXRlbSkpIHtcclxuICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwiU2VsZWN0SXRlbShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2lkXT1cImlkICsgJy1kcm9wZG93bi1vcHRpb24tJyArIEdldEluZGV4Um93KGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Ryb3Bkb3duLWl0ZW0nOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnNvci1wb2ludGVyJzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkcm9wZG93bi1pdGVtLWZvY3VzJzogX2luZGV4KCkgPT0gR2V0SW5kZXhSb3coaXRlbSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPnt7IEdldERpc3BsYXkoaXRlbSkgfX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
@@ -1,6 +1,5 @@
1
1
  import { Component, computed, input, Input, output, ViewChild } from '@angular/core';
2
- import { CONTROL_VALUE, ControlValue } from '../../../tools/lib/control-value.class';
3
- import { Tools } from '../../../tools/lib/tools';
2
+ import { CONTROL_VALUE, ControlValue, Tools } from 'coer-elements/tools';
4
3
  import { Tooltip } from 'bootstrap';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "@angular/common";
@@ -91,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
91
90
  }], tooltip: [{
92
91
  type: Input
93
92
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1zd2l0Y2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci1zd2l0Y2gvY29lci1zd2l0Y2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci1zd2l0Y2gvY29lci1zd2l0Y2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBUXBDLE1BQU0sT0FBTyxVQUFXLFNBQVEsWUFBWTtJQU41Qzs7UUFRSSxXQUFXO1FBQ1EsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUNqQyxRQUFHLEdBQVcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBV3JCLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFDbEIsVUFBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBcUIsT0FBTyxDQUFDLENBQUM7UUFDbkQsZUFBVSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuQyxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtB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VUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUdILEtBQUs7c0JBQXhCLEtBQUs7Z0JBS0csRUFBRTtzQkFBVixLQUFLO2dCQVFPLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBvdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IENPTlRST0xfVkFMVUUsIENvbnRyb2xWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xzL2xpYi9jb250cm9sLXZhbHVlLmNsYXNzJztcclxuaW1wb3J0IHsgVG9vbHMgfSBmcm9tICcuLi8uLi8uLi90b29scy9saWIvdG9vbHMnO1xyXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnYm9vdHN0cmFwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLXN3aXRjaCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29lci1zd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NvZXItc3dpdGNoLmNvbXBvbmVudC5zY3NzJyxcclxuICAgIHByb3ZpZGVyczogW0NPTlRST0xfVkFMVUUoQ29lclN3aXRjaCldLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29lclN3aXRjaCBleHRlbmRzIENvbnRyb2xWYWx1ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICAvL1ZhcmlhYmxlc1xyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF92YWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJvdGVjdGVkIF9pZDogc3RyaW5nID0gVG9vbHMuR2V0R3VpZCgnY29lci1zd2l0Y2gnKTtcclxuICAgIHByaXZhdGUgX3Rvb2x0aXA6IHN0cmluZyA9ICcnO1xyXG4gICAgcHJpdmF0ZSBfdG9vbHRpcEVsZW1lbnQhOiBUb29sdGlwO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2NvZXJTd2l0Y2gnKSBjb2VyU3dpdGNoITogTWF0U2xpZGVUb2dnbGU7XHJcblxyXG4gICAgLy9JbnB1dHNcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYoVG9vbHMuSXNOdWxsKHZhbHVlKSkgdmFsdWUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLlNldFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIHB1YmxpYyBsYWJlbFBvc2l0aW9uID0gaW5wdXQ8J2JlZm9yZScgfCAnYWZ0ZXInPignYWZ0ZXInKTtcclxuICAgIHB1YmxpYyBpc0Rpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0ludmlzaWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyB0b29sdGlwUG9zaXRpb24gPSBpbnB1dDwndG9wJyB8ICdyaWdodCcgfCAnYm90dG9tJyB8ICdsZWZ0Jz4oJ3RvcCcpO1xyXG5cclxuICAgIEBJbnB1dCgpIHNldCB0b29sdGlwKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl90b29sdGlwID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuX3Rvb2x0aXBFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Rvb2x0aXBFbGVtZW50LnNldENvbnRlbnQoeyAnLnRvb2x0aXAtaW5uZXInOiB0aGlzLl90b29sdGlwIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9PdXRwdXRzXHJcbiAgICBwdWJsaWMgb25DaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuXHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLl9pZCkhO1xyXG5cclxuICAgICAgICAgICAgaWYgKGh0bWxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICBodG1sRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl90b29sdGlwRWxlbWVudCkgdGhpcy5fdG9vbHRpcEVsZW1lbnQuaGlkZSgpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl90b29sdGlwRWxlbWVudCA9IG5ldyBUb29sdGlwKGh0bWxFbGVtZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy5fdG9vbHRpcCxcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6IHRoaXMudG9vbHRpcFBvc2l0aW9uKClcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Rvb2x0aXBFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbigoKSA9PiB0aGlzLl90b29sdGlwRWxlbWVudC5kaXNwb3NlKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2Nvbm1wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9pc0VuYWJsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuaXNMb2FkaW5nKCkgJiYgIXRoaXMuaXNEaXNhYmxlZCgpICYmICF0aGlzLmlzSW52aXNpYmxlKCk7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgRm9jdXMoKTogdm9pZCB7XHJcbiAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy5faXNFbmFibGUoKSkgdGhpcy5jb2VyU3dpdGNoLmZvY3VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIENoYW5nZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuU2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IFtuZ0NsYXNzXT1cInsgJ2NvZXItc3dpdGNoJzogdHJ1ZSwgJ3BsYWNlaG9sZGVyLWdsb3cnOiBpc0xvYWRpbmcoKSwgJ2ludmlzaWJsZSc6IGlzSW52aXNpYmxlKCkgfVwiPlxyXG4gICAgPGRpdiBbaWRdPVwiX2lkXCIgW25nQ2xhc3NdPVwieyAncGxhY2Vob2xkZXInOiBpc0xvYWRpbmcoKSB9XCI+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcclxuICAgICAgICAgICAgI2NvZXJTd2l0Y2hcclxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiX3ZhbHVlXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFfaXNFbmFibGUoKVwiXHJcbiAgICAgICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cImxhYmVsUG9zaXRpb24oKVwiXHJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiQ2hhbmdlKCRldmVudC5jaGVja2VkKVwiXHJcbiAgICAgICAgPnt7IGxhYmVsKCkgfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1zd2l0Y2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9jb21wb25lbnRzL2xpYi9jb2VyLXN3aXRjaC9jb2VyLXN3aXRjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItc3dpdGNoL2NvZXItc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQVFwQyxNQUFNLE9BQU8sVUFBVyxTQUFRLFlBQVk7SUFONUM7O1FBUUksV0FBVztRQUNRLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDakMsUUFBRyxHQUFXLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0MsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQVdyQixPQUFFLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFVBQUssR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDMUIsa0JBQWEsR0FBRyxLQUFLLENBQXFCLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkMsY0FBUyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsQyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNwQyxvQkFBZSxHQUFHLEtBQUssQ0FBc0Ms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QUF4QixLQUFLO2dCQUtHLEVBQUU7c0JBQVYsS0FBSztnQkFRTyxPQUFPO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgb3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ09OVFJPTF9WQUxVRSwgQ29udHJvbFZhbHVlLCBUb29scyB9IGZyb20gJ2NvZXItZWxlbWVudHMvdG9vbHMnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdib290c3RyYXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvZXItc3dpdGNoJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLXN3aXRjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY29lci1zd2l0Y2guY29tcG9uZW50LnNjc3MnLFxyXG4gICAgcHJvdmlkZXJzOiBbQ09OVFJPTF9WQUxVRShDb2VyU3dpdGNoKV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2VyU3dpdGNoIGV4dGVuZHMgQ29udHJvbFZhbHVlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIC8vVmFyaWFibGVzXHJcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX3ZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcm90ZWN0ZWQgX2lkOiBzdHJpbmcgPSBUb29scy5HZXRHdWlkKCdjb2VyLXN3aXRjaCcpO1xyXG4gICAgcHJpdmF0ZSBfdG9vbHRpcDogc3RyaW5nID0gJyc7XHJcbiAgICBwcml2YXRlIF90b29sdGlwRWxlbWVudCE6IFRvb2x0aXA7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnY29lclN3aXRjaCcpIGNvZXJTd2l0Y2ghOiBNYXRTbGlkZVRvZ2dsZTtcclxuXHJcbiAgICAvL0lucHV0c1xyXG4gICAgQElucHV0KCkgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZihUb29scy5Jc051bGwodmFsdWUpKSB2YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuU2V0VmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBsYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gICAgcHVibGljIGxhYmVsUG9zaXRpb24gPSBpbnB1dDwnYmVmb3JlJyB8ICdhZnRlcic+KCdhZnRlcicpO1xyXG4gICAgcHVibGljIGlzRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzSW52aXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIHRvb2x0aXBQb3NpdGlvbiA9IGlucHV0PCd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnPigndG9wJyk7XHJcblxyXG4gICAgQElucHV0KCkgc2V0IHRvb2x0aXAodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3Rvb2x0aXAgPSB2YWx1ZTtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdGhpcy5fdG9vbHRpcEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5fdG9vbHRpcEVsZW1lbnQuc2V0Q29udGVudCh7ICcudG9vbHRpcC1pbm5lcic6IHRoaXMuX3Rvb2x0aXAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL091dHB1dHNcclxuICAgIHB1YmxpYyBvbkNoYW5nZSA9IG91dHB1dDxib29sZWFuPigpO1xyXG5cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuX2lkKSE7XHJcblxyXG4gICAgICAgICAgICBpZiAoaHRtbEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGh0bWxFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3Rvb2x0aXBFbGVtZW50KSB0aGlzLl90b29sdGlwRWxlbWVudC5oaWRlKClcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3Rvb2x0aXBFbGVtZW50ID0gbmV3IFRvb2x0aXAoaHRtbEVsZW1lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICBodG1sOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLl90b29sdGlwLFxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogdGhpcy50b29sdGlwUG9zaXRpb24oKVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fdG9vbHRpcEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHRoaXMuX3Rvb2x0aXBFbGVtZW50LmRpc3Bvc2UoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vY29ubXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgX2lzRW5hYmxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5pc0xvYWRpbmcoKSAmJiAhdGhpcy5pc0Rpc2FibGVkKCkgJiYgIXRoaXMuaXNJbnZpc2libGUoKTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBGb2N1cygpOiB2b2lkIHtcclxuICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLl9pc0VuYWJsZSgpKSB0aGlzLmNvZXJTd2l0Y2guZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgQ2hhbmdlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5TZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgIH1cclxufSIsIjxkaXYgW25nQ2xhc3NdPVwieyAnY29lci1zd2l0Y2gnOiB0cnVlLCAncGxhY2Vob2xkZXItZ2xvdyc6IGlzTG9hZGluZygpLCAnaW52aXNpYmxlJzogaXNJbnZpc2libGUoKSB9XCI+XHJcbiAgICA8ZGl2IFtpZF09XCJfaWRcIiBbbmdDbGFzc109XCJ7ICdwbGFjZWhvbGRlcic6IGlzTG9hZGluZygpIH1cIj5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxyXG4gICAgICAgICAgICAjY29lclN3aXRjaFxyXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJfdmFsdWVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIV9pc0VuYWJsZSgpXCJcclxuICAgICAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwibGFiZWxQb3NpdGlvbigpXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJDaGFuZ2UoJGV2ZW50LmNoZWNrZWQpXCJcclxuICAgICAgICA+e3sgbGFiZWwoKSB9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -1,11 +1,11 @@
1
1
  import { Component, ContentChildren, Input, input, output, viewChild, computed } from '@angular/core';
2
- import { CoerRefDirective } from '../../../directives/lib/coer-ref.directive';
3
- import { Tools } from '../../../tools/lib/tools';
2
+ import { CoerRefDirective } from 'coer-elements/directives';
3
+ import { Tools } from 'coer-elements/tools';
4
4
  import { Tooltip } from 'bootstrap';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
7
  import * as i2 from "@angular/material/tabs";
8
- import * as i3 from "../../../directives/lib/life-cycle.directive";
8
+ import * as i3 from "coer-elements/directives";
9
9
  export class CoerTab {
10
10
  constructor() {
11
11
  //Variables
@@ -113,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
113
113
  }], alignTabs: [{
114
114
  type: Input
115
115
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci10YWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci10YWIvY29lci10YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci10YWIvY29lci10YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV6SCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFPcEMsTUFBTSxPQUFPLE9BQU87SUFMcEI7UUFTSSxXQUFXO1FBQ0QsUUFBRyxHQUFXLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFFM0IsZ0JBQVcsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFjLGFBQWEsQ0FBQyxDQUFDO1FBQy9ELGlCQUFZLEdBQXdDLEVBQUUsQ0FBQztRQUUvRCxRQUFRO1FBQ0QsV0FBTSxHQUFHLEtBQUssQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUMvQixjQUFTLEdBQUcsS0FBSyxDQUFTLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLGNBQVMsR0FBRyxLQUFLLENBQVMsTUFBTSxDQUFDLENBQUM7UUFzQnpDLFVBQVU7UUFDQSxnQkFBVyxHQUFHLFFBQVEsQ0FBYSxHQUFHLEVBQUUsQ0FBQyxLQUFL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QUFDO0lBR0QsTUFBTTtJQUNJLGFBQWEsQ0FBQyxPQUFvQjtRQUN4QyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzRCxJQUFJLEtBQUssSUFBSSxDQUFDO1lBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBbkhRLE9BQU87bUdBQVAsT0FBTyw2eEJBRUMsZ0JBQWdCLHlKQ2RyQyxrL0NBaUNNOzs0RkRyQk8sT0FBTztrQkFMbkIsU0FBUzsrQkFDSSxVQUFVOzhCQU1lLFVBQVU7c0JBQTVDLGVBQWU7dUJBQUMsZ0JBQWdCO2dCQWNwQixhQUFhO3NCQUF6QixLQUFLO2dCQU1PLFNBQVM7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSW5wdXQsIGlucHV0LCBPbkluaXQsIG91dHB1dCwgdmlld0NoaWxkLCBjb21wdXRlZCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbmltcG9ydCB7IENvZXJSZWZEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2xpYi9jb2VyLXJlZi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUb29scyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xzL2xpYi90b29scyc7XHJcbmltcG9ydCB7IElDb2VyUmVmIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdib290c3RyYXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvZXItdGFiJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLXRhYi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY29lci10YWIuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2VyVGFiIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oQ29lclJlZkRpcmVjdGl2ZSkgY29udGVudFJlZiE6IGFueTtcclxuXHJcbiAgICAvL1ZhcmlhYmxlc1xyXG4gICAgcHJvdGVjdGVkIF9pZDogc3RyaW5nID0gVG9vbHMuR2V0R3VpZCgnY29lci10YWInKTtcclxuICAgIHByb3RlY3RlZCBfc2VsZWN0ZWRJbmRleDogbnVtYmVyID0gMDtcclxuICAgIHByaXZhdGUgX21hdFRhYkdyb3VwITogSFRNTEVsZW1lbnQ7XHJcbiAgICBwcm90ZWN0ZWQgbWF0VGFiR3JvdXAgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8TWF0VGFiR3JvdXA+KCdtYXRUYWJHcm91cCcpO1xyXG4gICAgcHJpdmF0ZSBfdG9vbHRpcExpc3Q6IHsgaWQ6IHN0cmluZywgdG9vbHRpcD86IFRvb2x0aXAgfVtdID0gW107XHJcblxyXG4gICAgLy9JbnB1dHNcclxuICAgIHB1YmxpYyBoZWlnaHQgPSBpbnB1dDxzdHJpbmc+KCdhdXRvJyk7XHJcbiAgICBwdWJsaWMgbWluSGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMzAwcHgnKTtcclxuICAgIHB1YmxpYyBtYXhIZWlnaHQgPSBpbnB1dDxzdHJpbmc+KCdhdXRvJyk7XHJcblxyXG4gICAgQElucHV0KCkgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIGlmIChUb29scy5Jc05vdE51bGwodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgc2V0IGFsaWduVGFicyh2YWx1ZTogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcpIHtcclxuICAgICAgICBpZihUb29scy5Jc05vdE51bGwodGhpcy5fbWF0VGFiR3JvdXApKSB7XHJcbiAgICAgICAgICAgIGlmIChUb29scy5Jc05vdE51bGwodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXRUYWJHcm91cC5yZW1vdmVBdHRyaWJ1dGUoJ21hdC1hbGlnbi10YWJzJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXRUYWJHcm91cC5zZXRBdHRyaWJ1dGUoJ21hdC1hbGlnbi10YWJzJywgdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHRoaXMuYWxpZ25UYWJzID0gdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBjb250ZW50TGlzdCA9IGNvbXB1dGVkPElDb2VyUmVmW10+KCgpID0+IEFycmF5LmZyb20odGhpcy5jb250ZW50UmVmLl9yZXN1bHRzKSk7XHJcblxyXG4gICAgLy9PdXRwdXRzXHJcbiAgICBwdWJsaWMgb25TZWxlY3RlZFRhYiA9IG91dHB1dDxJQ29lclJlZj4oKTtcclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLl9tYXRUYWJHcm91cCA9IHRoaXMubWF0VGFiR3JvdXAoKS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGZvcihjb25zdCBfdG9vbHRpcCBvZiB0aGlzLl90b29sdGlwTGlzdCkge1xyXG4gICAgICAgICAgICBfdG9vbHRpcC50b29sdGlwPy5kaXNwb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIFNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkSW5kZXg7XHJcbiAgICAgICAgdGhpcy5vblNlbGVjdGVkVGFiLmVtaXQodGhpcy5jb250ZW50TGlzdCgpW3NlbGVjdGVkSW5kZXhdKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgR2V0VGl0bGUodGFiOiBJQ29lclJlZik6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcmVmID0gdGhpcy5jb250ZW50TGlzdCgpLmZpbmQoeCA9PiB4LmNvZXJSZWYoKSA9PSB0YWIuY29lclJlZigpKSE7XHJcbiAgICAgICAgcmV0dXJuIChyZWYudGl0bGUoKS5sZW5ndGggPiAwKSA/IHJlZi50aXRsZSgpIDogcmVmLmNvZXJSZWYoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgR2V0SWNvbih0YWI6IElDb2VyUmVmKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50TGlzdCgpLmZpbmQoeCA9PiB4LmNvZXJSZWYoKSA9PSB0YWIuY29lclJlZigpKSEuaWNvbigpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBTZWxlY3RUYWJCeShjYWxsYmFjazogKHRhYjogSUNvZXJSZWYpID0+IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY29udGVudExpc3QoKS5maW5kSW5kZXgoY2FsbGJhY2sgYXMgYW55KTtcclxuICAgICAgICBpZihpbmRleCA+PSAwKSB0aGlzLl9zZWxlY3RlZEluZGV4ID0gaW5kZXg7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIFNldFRvb2xUaXAodGFiOiBJQ29lclJlZik6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgaWQgPSBgJHt0aGlzLl9pZH0tJHt0YWIuY29lclJlZigpfWA7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fdG9vbHRpcExpc3Quc29tZSh4ID0+IHguaWQgPT0gaWQpICYmIHRhYi50b29sdGlwKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl90b29sdGlwTGlzdC5wdXNoKHsgaWQgfSk7XHJcblxyXG4gICAgICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkhO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChodG1sRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBuZXcgVG9vbHRpcChodG1sRWxlbWVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGFiLnRvb2x0aXAoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAndG9wJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBodG1sRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbEVsZW1lbnQpIHRvb2x0aXAuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX3Rvb2x0aXBMaXN0LmZpbmRJbmRleCh4ID0+IHguaWQgPT0gaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB0aGlzLl90b29sdGlwTGlzdFtpbmRleF0udG9vbHRpcCA9IHRvb2x0aXA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGlkO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBSZW1vdmVUb29sdGlwKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaWQgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnaWQnKTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX3Rvb2x0aXBMaXN0LmZpbmRJbmRleCh4ID0+IHguaWQgPT0gaWQpO1xyXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB0aGlzLl90b29sdGlwTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNvZXItdGFiXCI+XHJcbiAgICA8bWF0LXRhYi1ncm91cCAjbWF0VGFiR3JvdXBcclxuICAgICAgICBtYXQtc3RyZXRjaC10YWJzPVwiZmFsc2VcIlxyXG4gICAgICAgIFtzZWxlY3RlZEluZGV4XT1cIl9zZWxlY3RlZEluZGV4XCJcclxuICAgICAgICAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJTZWxlY3RlZEluZGV4Q2hhbmdlKCRldmVudClcIj5cclxuXHJcbiAgICAgICAgQGZvcih0YWIgb2YgY29udGVudExpc3QoKTsgdHJhY2sgdGFiLmNvZXJSZWYoKSkge1xyXG4gICAgICAgICAgICBAaWYodGFiLnNob3coKSkge1xyXG4gICAgICAgICAgICAgICAgPG1hdC10YWIgW2xhYmVsXT1cInRhYi5jb2VyUmVmKClcIiBbZGlzYWJsZWRdPVwidGFiLmlzRGlzYWJsZWQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaWRdPVwiU2V0VG9vbFRpcCh0YWIpXCIgY2xhc3M9XCJ0YWJcIiBsaWZlY3ljbGUgKG9uRGVzdHJveSk9XCJSZW1vdmVUb29sdGlwKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJHZXRJY29uKHRhYilcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiR2V0SWNvbih0YWIpLmxlbmd0aCA+IDAgPyAnbXMtMicgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IEdldFRpdGxlKHRhYikgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnOiBoZWlnaHQoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWluLWhlaWdodCc6IG1pbkhlaWdodCgpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JzogbWF4SGVpZ2h0KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYi50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgPC9tYXQtdGFiLWdyb3VwPlxyXG48L2Rpdj4iXX0=
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci10YWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9jb21wb25lbnRzL2xpYi9jb2VyLXRhYi9jb2VyLXRhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItdGFiL2NvZXItdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFekgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBT3BDLE1BQU0sT0FBTyxPQUFPO0lBTHBCO1FBU0ksV0FBVztRQUNELFFBQUcsR0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBRTNCLGdCQUFXLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBYyxhQUFhLENBQUMsQ0FBQztRQUMvRCxpQkFBWSxHQUF3QyxFQUFFLENBQUM7UUFFL0QsUUFBUTtRQUNELFdBQU0sR0FBRyxLQUFLLENBQVMsTUFBTSxDQUFDLENBQUM7UUFDL0IsY0FBUyxHQUFHLEtBQUssQ0FBUyxPQUFPLENBQUMsQ0FBQztRQUNuQyxjQUFTLEdBQUcsS0FBSyxDQUFTLE1BQU0sQ0FBQyxDQUFDO1FBc0J6QyxVQUFVO1FBQ0EsZ0JBQVcsR0FBRyxRQUFRLENBQWEsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLElB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LE1BQU07SUFDSSxhQUFhLENBQUMsT0FBb0I7UUFDeEMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxLQUFLLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOytHQW5IUSxPQUFPO21HQUFQLE9BQU8sNnhCQUVDLGdCQUFnQix5SkNkckMsay9DQWlDTTs7NEZEckJPLE9BQU87a0JBTG5CLFNBQVM7K0JBQ0ksVUFBVTs4QkFNZSxVQUFVO3NCQUE1QyxlQUFlO3VCQUFDLGdCQUFnQjtnQkFjcEIsYUFBYTtzQkFBekIsS0FBSztnQkFNTyxTQUFTO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIElucHV0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIHZpZXdDaGlsZCwgY29tcHV0ZWQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRUYWJHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xyXG5pbXBvcnQgeyBDb2VyUmVmRGlyZWN0aXZlIH0gZnJvbSAnY29lci1lbGVtZW50cy9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgVG9vbHMgfSBmcm9tICdjb2VyLWVsZW1lbnRzL3Rvb2xzJztcclxuaW1wb3J0IHsgSUNvZXJSZWYgfSBmcm9tICdjb2VyLWVsZW1lbnRzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnYm9vdHN0cmFwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLXRhYicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29lci10YWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NvZXItdGFiLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29lclRhYiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKENvZXJSZWZEaXJlY3RpdmUpIGNvbnRlbnRSZWYhOiBhbnk7XHJcblxyXG4gICAgLy9WYXJpYWJsZXNcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZyA9IFRvb2xzLkdldEd1aWQoJ2NvZXItdGFiJyk7XHJcbiAgICBwcm90ZWN0ZWQgX3NlbGVjdGVkSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgICBwcml2YXRlIF9tYXRUYWJHcm91cCE6IEhUTUxFbGVtZW50O1xyXG4gICAgcHJvdGVjdGVkIG1hdFRhYkdyb3VwID0gdmlld0NoaWxkLnJlcXVpcmVkPE1hdFRhYkdyb3VwPignbWF0VGFiR3JvdXAnKTtcclxuICAgIHByaXZhdGUgX3Rvb2x0aXBMaXN0OiB7IGlkOiBzdHJpbmcsIHRvb2x0aXA/OiBUb29sdGlwIH1bXSA9IFtdO1xyXG5cclxuICAgIC8vSW5wdXRzXHJcbiAgICBwdWJsaWMgaGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPignYXV0bycpO1xyXG4gICAgcHVibGljIG1pbkhlaWdodCA9IGlucHV0PHN0cmluZz4oJzMwMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWF4SGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPignYXV0bycpO1xyXG5cclxuICAgIEBJbnB1dCgpIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoVG9vbHMuSXNOb3ROdWxsKHZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpIHNldCBhbGlnblRhYnModmFsdWU6ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnKSB7XHJcbiAgICAgICAgaWYoVG9vbHMuSXNOb3ROdWxsKHRoaXMuX21hdFRhYkdyb3VwKSkge1xyXG4gICAgICAgICAgICBpZiAoVG9vbHMuSXNOb3ROdWxsKHZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbWF0VGFiR3JvdXAucmVtb3ZlQXR0cmlidXRlKCdtYXQtYWxpZ24tdGFicycpO1xyXG5cclxuICAgICAgICAgICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWF0VGFiR3JvdXAuc2V0QXR0cmlidXRlKCdtYXQtYWxpZ24tdGFicycsIHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIFRvb2xzLlNsZWVwKCkudGhlbigoKSA9PiB0aGlzLmFsaWduVGFicyA9IHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvL0NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgY29udGVudExpc3QgPSBjb21wdXRlZDxJQ29lclJlZltdPigoKSA9PiBBcnJheS5mcm9tKHRoaXMuY29udGVudFJlZi5fcmVzdWx0cykpO1xyXG5cclxuICAgIC8vT3V0cHV0c1xyXG4gICAgcHVibGljIG9uU2VsZWN0ZWRUYWIgPSBvdXRwdXQ8SUNvZXJSZWY+KCk7XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5fbWF0VGFiR3JvdXAgPSB0aGlzLm1hdFRhYkdyb3VwKCkuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBmb3IoY29uc3QgX3Rvb2x0aXAgb2YgdGhpcy5fdG9vbHRpcExpc3QpIHtcclxuICAgICAgICAgICAgX3Rvb2x0aXAudG9vbHRpcD8uZGlzcG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSBzZWxlY3RlZEluZGV4O1xyXG4gICAgICAgIHRoaXMub25TZWxlY3RlZFRhYi5lbWl0KHRoaXMuY29udGVudExpc3QoKVtzZWxlY3RlZEluZGV4XSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIEdldFRpdGxlKHRhYjogSUNvZXJSZWYpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHJlZiA9IHRoaXMuY29udGVudExpc3QoKS5maW5kKHggPT4geC5jb2VyUmVmKCkgPT0gdGFiLmNvZXJSZWYoKSkhO1xyXG4gICAgICAgIHJldHVybiAocmVmLnRpdGxlKCkubGVuZ3RoID4gMCkgPyByZWYudGl0bGUoKSA6IHJlZi5jb2VyUmVmKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIEdldEljb24odGFiOiBJQ29lclJlZik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudExpc3QoKS5maW5kKHggPT4geC5jb2VyUmVmKCkgPT0gdGFiLmNvZXJSZWYoKSkhLmljb24oKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgU2VsZWN0VGFiQnkoY2FsbGJhY2s6ICh0YWI6IElDb2VyUmVmKSA9PiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNvbnRlbnRMaXN0KCkuZmluZEluZGV4KGNhbGxiYWNrIGFzIGFueSk7XHJcbiAgICAgICAgaWYoaW5kZXggPj0gMCkgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBTZXRUb29sVGlwKHRhYjogSUNvZXJSZWYpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGlkID0gYCR7dGhpcy5faWR9LSR7dGFiLmNvZXJSZWYoKX1gO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX3Rvb2x0aXBMaXN0LnNvbWUoeCA9PiB4LmlkID09IGlkKSAmJiB0YWIudG9vbHRpcCgpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fdG9vbHRpcExpc3QucHVzaCh7IGlkIH0pO1xyXG5cclxuICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpITtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaHRtbEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b29sdGlwID0gbmV3IFRvb2x0aXAoaHRtbEVsZW1lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRhYi50b29sdGlwKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ3RvcCdcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWxFbGVtZW50KSB0b29sdGlwLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl90b29sdGlwTGlzdC5maW5kSW5kZXgoeCA9PiB4LmlkID09IGlkKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkgdGhpcy5fdG9vbHRpcExpc3RbaW5kZXhdLnRvb2x0aXAgPSB0b29sdGlwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBpZDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgUmVtb3ZlVG9vbHRpcChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGlkID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2lkJyk7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl90b29sdGlwTGlzdC5maW5kSW5kZXgoeCA9PiB4LmlkID09IGlkKTtcclxuICAgICAgICBpZiAoaW5kZXggPj0gMCkgdGhpcy5fdG9vbHRpcExpc3Quc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjb2VyLXRhYlwiPlxyXG4gICAgPG1hdC10YWItZ3JvdXAgI21hdFRhYkdyb3VwXHJcbiAgICAgICAgbWF0LXN0cmV0Y2gtdGFicz1cImZhbHNlXCJcclxuICAgICAgICBbc2VsZWN0ZWRJbmRleF09XCJfc2VsZWN0ZWRJbmRleFwiXHJcbiAgICAgICAgKHNlbGVjdGVkSW5kZXhDaGFuZ2UpPVwiU2VsZWN0ZWRJbmRleENoYW5nZSgkZXZlbnQpXCI+XHJcblxyXG4gICAgICAgIEBmb3IodGFiIG9mIGNvbnRlbnRMaXN0KCk7IHRyYWNrIHRhYi5jb2VyUmVmKCkpIHtcclxuICAgICAgICAgICAgQGlmKHRhYi5zaG93KCkpIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCJ0YWIuY29lclJlZigpXCIgW2Rpc2FibGVkXT1cInRhYi5pc0Rpc2FibGVkKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lkXT1cIlNldFRvb2xUaXAodGFiKVwiIGNsYXNzPVwidGFiXCIgbGlmZWN5Y2xlIChvbkRlc3Ryb3kpPVwiUmVtb3ZlVG9vbHRpcCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiR2V0SWNvbih0YWIpXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkdldEljb24odGFiKS5sZW5ndGggPiAwID8gJ21zLTInIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBHZXRUaXRsZSh0YWIpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JzogaGVpZ2h0KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21pbi1oZWlnaHQnOiBtaW5IZWlnaHQoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4LWhlaWdodCc6IG1heEhlaWdodCgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIudGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIDwvbWF0LXRhYi1ncm91cD5cclxuPC9kaXY+Il19
@@ -1,6 +1,5 @@
1
1
  import { Component, computed, input, Input, output, signal, viewChild } from '@angular/core';
2
- import { CONTROL_VALUE, ControlValue } from '../../../tools/lib/control-value.class';
3
- import { Tools } from '../../../tools/lib/tools';
2
+ import { CONTROL_VALUE, ControlValue, Tools } from 'coer-elements/tools';
4
3
  import * as i0 from "@angular/core";
5
4
  import * as i1 from "@angular/common";
6
5
  import * as i2 from "@angular/material/input";
@@ -154,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
154
153
  }], id: [{
155
154
  type: Input
156
155
  }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci10ZXh0YXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL3NyYy9jb21wb25lbnRzL2xpYi9jb2VyLXRleHRhcmVhL2NvZXItdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci10ZXh0YXJlYS9jb2VyLXRleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFjLEtBQUssRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBUWpELE1BQU0sT0FBTyxZQUFhLFNBQVEsWUFBWTtJQU45Qzs7UUFRSSxpQkFBaUI7UUFDRSxXQUFNLEdBQW9CLEVBQUUsQ0FBQztRQUN0QyxpQkFBWSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWEsY0FBYyxDQUFDLENBQUM7UUFDOUQsZ0JBQVcsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFhLGNBQWMsQ0FBQyxDQUFDO1FBRXZFLFdBQVc7UUFDRCxRQUFHLEdBQVcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVMxQyxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFVBQUssR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDMUIsZ0JBQVcsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7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UUFFcEMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFcEIsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ3BCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxxQ0FBcUMsQ0FBQyxDQUFDO29CQUMxRixJQUFJLE9BQU87d0JBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztnQkFDckUsQ0FBQyxDQUFDLENBQUE7WUFDTixDQUFDO1lBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsTUFBTTtJQUNDLEtBQUs7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDOytHQW5LUSxZQUFZO21HQUFaLFlBQVksdXdGQUZWLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLDZSQ1I1Qyw2Z0VBd0RNOzs0RkQ5Q08sWUFBWTtrQkFOeEIsU0FBUzsrQkFDSSxlQUFlLGFBR2QsQ0FBQyxhQUFhLGNBQWMsQ0FBQzs4QkFlM0IsS0FBSztzQkFBakIsS0FBSztnQkFLRyxFQUFFO3NCQUFWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBpbnB1dCwgSW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDT05UUk9MX1ZBTFVFLCBDb250cm9sVmFsdWUgfSBmcm9tICcuLi8uLi8uLi90b29scy9saWIvY29udHJvbC12YWx1ZS5jbGFzcyc7XHJcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvbGliL3Rvb2xzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLXRleHRhcmVhJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLXRleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9jb2VyLXRleHRhcmVhLmNvbXBvbmVudC5zY3NzJyxcclxuICAgIHByb3ZpZGVyczogW0NPTlRST0xfVkFMVUUoQ29lclRleHRhcmVhKV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJUZXh0YXJlYSBleHRlbmRzIENvbnRyb2xWYWx1ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgLy9Db21wb25lbnQgVmFsdWVcclxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfdmFsdWU6IHN0cmluZyB8IG51bWJlciA9ICcnO1xyXG4gICAgcHJvdGVjdGVkIG1hdEZvcm1GaWVsZCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPignbWF0Rm9ybUZpZWxkJyk7XHJcbiAgICBwcm90ZWN0ZWQgY29lclRleHRCb3ggPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZj4oJ2NvZXJUZXh0QXJlYScpO1xyXG5cclxuICAgIC8vVmFyaWFibGVzXHJcbiAgICBwcm90ZWN0ZWQgX2lkOiBzdHJpbmcgPSBUb29scy5HZXRHdWlkKCdjb2VyLXRleHRBcmVhJyk7XHJcbiAgICBwcm90ZWN0ZWQgX2lzTG9hZGluZ0V2ZW50ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHByaXZhdGUgZWxlbWVudCE6IEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgLy9JbnB1dHNcclxuICAgIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmKFRvb2xzLklzTnVsbCh2YWx1ZSkpIHZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5TZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIGxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIHB1YmxpYyBtaW5MZW5ndGggPSBpbnB1dDxudW1iZXIgfCBzdHJpbmc+KDApO1xyXG4gICAgcHVibGljIG1heExlbmd0aCA9IGlucHV0PG51bWJlciB8IHN0cmluZz4oMjUwMCk7XHJcbiAgICBwdWJsaWMgd2lkdGggPSBpbnB1dDxzdHJpbmc+KCcxMDAlJyk7XHJcbiAgICBwdWJsaWMgbWluV2lkdGggPSBpbnB1dDxzdHJpbmc+KCcxOTBweCcpO1xyXG4gICAgcHVibGljIG1heFdpZHRoID0gaW5wdXQ8c3RyaW5nPignMTAwJScpO1xyXG4gICAgcHVibGljIG1hcmdpblRvcCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIG1hcmdpblJpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luQm90dG9tID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luTGVmdCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIGlzSW52YWxpZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc1ZhbGlkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNSZWFkb25seSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgc2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gICAgcHVibGljIHJlc2l6ZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyB0ZXh0UG9zaXRpb24gPSBpbnB1dDwnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCc+KCdsZWZ0Jyk7XHJcblxyXG4gICAgLy9PdXRwdXRzXHJcbiAgICBwdWJsaWMgb25JbnB1dCA9IG91dHB1dDxzdHJpbmcgfCBudW1iZXI+KCk7XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5TZXRFdmVudHMoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHVibGljIGdldCBmb290ZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke1Rvb2xzLklzTm90TnVsbCh0aGlzLl92YWx1ZSkgPyBTdHJpbmcodGhpcy5fdmFsdWUpLmxlbmd0aCA6ICcwJyB9IC8gJHt0aGlzLm1heExlbmd0aCgpfWA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBfaXNFbmFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzRGlzYWJsZWQoKSAmJiAhdGhpcy5pc0xvYWRpbmcoKSAmJiAhdGhpcy5pc1JlYWRvbmx5KCk7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIGZsb2F0TGFiZWwgPSBjb21wdXRlZDwnYXV0bycgfCAnYWx3YXlzJz4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxhYmVsKCkgPT0gJycgPyAnYWx3YXlzJyA6ICdhdXRvJ1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBwYWRkaW5nUmlnaHQgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNJbnZhbGlkKCkgfHwgdGhpcy5pc1ZhbGlkKClcclxuICAgICAgICAgICAgPyAnMThweCcgOiAnMHB4JztcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgU2V0RXZlbnRzKCk6IHZvaWQge1xyXG4gICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbigoKT0+IHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5faWQpISBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5faXNFbmFibGUoKSkgdGhpcy5CbHVyKCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuQmx1cigpKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvZXJUZXh0Qm94KCkubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lzRW5hYmxlKCkpIHRoaXMub25JbnB1dC5lbWl0KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGFzdGUnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5TZXRWYWx1ZSh0aGlzLl92YWx1ZS50b1N0cmluZygpLnRyaW0oKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBGb2N1cyh0aW1lb3V0OiBudW1iZXIgPSAwKTogdm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5faXNMb2FkaW5nRXZlbnQoKSkgcmV0dXJuO1xyXG4gICAgICAgIGVsc2UgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KHRydWUpO1xyXG5cclxuICAgICAgICBUb29scy5TbGVlcCh0aW1lb3V0KS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy5faXNFbmFibGUoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIFNlbGVjdCh0aW1lb3V0OiBudW1iZXIgPSAwKTogdm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5faXNMb2FkaW5nRXZlbnQoKSkgcmV0dXJuO1xyXG4gICAgICAgIGVsc2UgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KHRydWUpO1xyXG5cclxuICAgICAgICBUb29scy5TbGVlcCh0aW1lb3V0KS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy5faXNFbmFibGUoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIEJsdXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5faXNMb2FkaW5nRXZlbnQoKSkgcmV0dXJuO1xyXG4gICAgICAgIGVsc2UgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KHRydWUpO1xyXG5cclxuICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLmVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5ibHVyKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy5faWR9LWNvbnRhaW5lciAubWRjLWxpbmUtcmlwcGxlLS1hY3RpdmVgKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCkgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdtZGMtbGluZS1yaXBwbGUtLWFjdGl2ZScpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgQ2xlYXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5TZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgdGhpcy5Gb2N1cygpO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNvZXItdGV4dGFyZWFcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgICAgIFtpZF09XCJfaWQgKyAnLWNvbnRhaW5lcidcIlxyXG4gICAgICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWwoKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAncmVhZG9ubHknOiBpc1JlYWRvbmx5KCkgJiYgIWlzTG9hZGluZygpXHJcbiAgICAgICAgfVwiXHJcbiAgICAgICAgW3N0eWxlXT1cIntcclxuICAgICAgICAgICAgJ3dpZHRoJzogd2lkdGgoKSxcclxuICAgICAgICAgICAgJ21pbi13aWR0aCc6IG1pbldpZHRoKCksXHJcbiAgICAgICAgICAgICdtYXgtd2lkdGgnOiBtYXhXaWR0aCgpLFxyXG4gICAgICAgICAgICAnbWFyZ2luLXRvcCc6IG1hcmdpblRvcCgpLFxyXG4gICAgICAgICAgICAnbWFyZ2luLXJpZ2h0JzogbWFyZ2luUmlnaHQoKSxcclxuICAgICAgICAgICAgJ21hcmdpbi1ib3R0b20nOiBtYXJnaW5Cb3R0b20oKSxcclxuICAgICAgICAgICAgJ21hcmdpbi1sZWZ0JzogbWFyZ2luTGVmdCgpXHJcbiAgICAgICAgfVwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwoKSB9fTwvbWF0LWxhYmVsPlxyXG5cclxuICAgICAgICA8dGV4dGFyZWEgI2NvZXJUZXh0QXJlYSBtYXRJbnB1dFxyXG4gICAgICAgICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcbiAgICAgICAgICAgIFttaW5MZW5ndGhdPVwibWluTGVuZ3RoKClcIlxyXG4gICAgICAgICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aCgpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFfaXNFbmFibGUoKVwiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJfdmFsdWVcIlxyXG4gICAgICAgICAgICAoaW5wdXQpPVwiU2V0VmFsdWUoY29lclRleHRBcmVhLnZhbHVlKVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIlNldFRvdWNoZWQodHJ1ZSlcIlxyXG4gICAgICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2N1cnNvcic6IGlzTG9hZGluZygpID8gJ3dhaXQnIDogbnVsbCxcclxuICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wJzogKGZsb2F0TGFiZWwoKSA9PSAnYXV0bycpID8gJzE1cHgnIDogJzlweCcsXHJcbiAgICAgICAgICAgICAgICAncGFkZGluZy1yaWdodCc6IHBhZGRpbmdSaWdodCgpLFxyXG4gICAgICAgICAgICAgICAgJ3RleHQtYWxpZ24nOiB0ZXh0UG9zaXRpb24oKSxcclxuICAgICAgICAgICAgICAgICdyZXNpemUnOiAoIXJlc2l6ZSgpIHx8ICFfaXNFbmFibGUoKSkgPyAnbm9uZScgOiAnJ1xyXG4gICAgICAgICAgICB9XCI+PC90ZXh0YXJlYT5cclxuXHJcbiAgICAgICAgQGlmKGlzTG9hZGluZygpKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlci1nbG93XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBsYWNlaG9sZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxzcGFuIG5nQ2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICBAaWYoaXNJbnZhbGlkKCkgJiYgIWlzRGlzYWJsZWQoKSAmJiAhaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2lyY2xlLWV4Y2xhbWF0aW9uXCI+PC9pPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAZWxzZSBpZihpc1ZhbGlkKCkgJiYgIWlzRGlzYWJsZWQoKSAmJiAhaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2lyY2xlLWNoZWNrIHRleHQtZ3JlZW5cIj48L2k+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgIEBpZihzaG93Rm9vdGVyKCkpIHtcclxuICAgICAgICA8Zm9vdGVyPiB7eyBmb290ZXIgfX0gPC9mb290ZXI+XHJcbiAgICB9XHJcbjwvZGl2PiJdfQ==
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci10ZXh0YXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItdGV4dGFyZWEvY29lci10ZXh0YXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItdGV4dGFyZWEvY29lci10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYyxLQUFLLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQVF6RSxNQUFNLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFOOUM7O1FBUUksaUJBQWlCO1FBQ0UsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFDdEMsaUJBQVksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFhLGNBQWMsQ0FBQyxDQUFDO1FBQzlELGdCQUFXLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBYSxjQUFjLENBQUMsQ0FBQztRQUV2RSxXQUFXO1FBQ0QsUUFBRyxHQUFXLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0Msb0JBQWUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFTMUMsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUNsQixVQUFLLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxLQUFLLENBQWtCLENBQUMsQ0FBQyxDQUFD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R0FBRyxFQUFFO1lBQ3BCLElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRXBCLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNwQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcscUNBQXFDLENBQUMsQ0FBQztvQkFDMUYsSUFBSSxPQUFPO3dCQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7Z0JBQ3JFLENBQUMsQ0FBQyxDQUFBO1lBQ04sQ0FBQztZQUVELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELE1BQU07SUFDQyxLQUFLO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQzsrR0FuS1EsWUFBWTttR0FBWixZQUFZLHV3RkFGVixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyw2UkNQNUMsNmdFQXdETTs7NEZEL0NPLFlBQVk7a0JBTnhCLFNBQVM7K0JBQ0ksZUFBZSxhQUdkLENBQUMsYUFBYSxjQUFjLENBQUM7OEJBZTNCLEtBQUs7c0JBQWpCLEtBQUs7Z0JBS0csRUFBRTtzQkFBVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgaW5wdXQsIElucHV0LCBPbkluaXQsIG91dHB1dCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ09OVFJPTF9WQUxVRSwgQ29udHJvbFZhbHVlLCBUb29scyB9IGZyb20gJ2NvZXItZWxlbWVudHMvdG9vbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvZXItdGV4dGFyZWEnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZXItdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NvZXItdGV4dGFyZWEuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgcHJvdmlkZXJzOiBbQ09OVFJPTF9WQUxVRShDb2VyVGV4dGFyZWEpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29lclRleHRhcmVhIGV4dGVuZHMgQ29udHJvbFZhbHVlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICAvL0NvbXBvbmVudCBWYWx1ZVxyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF92YWx1ZTogc3RyaW5nIHwgbnVtYmVyID0gJyc7XHJcbiAgICBwcm90ZWN0ZWQgbWF0Rm9ybUZpZWxkID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KCdtYXRGb3JtRmllbGQnKTtcclxuICAgIHByb3RlY3RlZCBjb2VyVGV4dEJveCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPignY29lclRleHRBcmVhJyk7XHJcblxyXG4gICAgLy9WYXJpYWJsZXNcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZyA9IFRvb2xzLkdldEd1aWQoJ2NvZXItdGV4dEFyZWEnKTtcclxuICAgIHByb3RlY3RlZCBfaXNMb2FkaW5nRXZlbnQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHJpdmF0ZSBlbGVtZW50ITogSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgICAvL0lucHV0c1xyXG4gICAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYoVG9vbHMuSXNOdWxsKHZhbHVlKSkgdmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLlNldFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIHB1YmxpYyBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gICAgcHVibGljIG1pbkxlbmd0aCA9IGlucHV0PG51bWJlciB8IHN0cmluZz4oMCk7XHJcbiAgICBwdWJsaWMgbWF4TGVuZ3RoID0gaW5wdXQ8bnVtYmVyIHwgc3RyaW5nPigyNTAwKTtcclxuICAgIHB1YmxpYyB3aWR0aCA9IGlucHV0PHN0cmluZz4oJzEwMCUnKTtcclxuICAgIHB1YmxpYyBtaW5XaWR0aCA9IGlucHV0PHN0cmluZz4oJzE5MHB4Jyk7XHJcbiAgICBwdWJsaWMgbWF4V2lkdGggPSBpbnB1dDxzdHJpbmc+KCcxMDAlJyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luVG9wID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luUmlnaHQgPSBpbnB1dDxzdHJpbmc+KCcwcHgnKTtcclxuICAgIHB1YmxpYyBtYXJnaW5Cb3R0b20gPSBpbnB1dDxzdHJpbmc+KCcwcHgnKTtcclxuICAgIHB1YmxpYyBtYXJnaW5MZWZ0ID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgaXNJbnZhbGlkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzVmFsaWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNEaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc1JlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBzaG93Rm9vdGVyID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgICBwdWJsaWMgcmVzaXplID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIHRleHRQb3NpdGlvbiA9IGlucHV0PCdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jz4oJ2xlZnQnKTtcclxuXHJcbiAgICAvL091dHB1dHNcclxuICAgIHB1YmxpYyBvbklucHV0ID0gb3V0cHV0PHN0cmluZyB8IG51bWJlcj4oKTtcclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLlNldEV2ZW50cygpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vZ2V0dGVyXHJcbiAgICBwdWJsaWMgZ2V0IGZvb3RlcigpIHtcclxuICAgICAgICByZXR1cm4gYCR7VG9vbHMuSXNOb3ROdWxsKHRoaXMuX3ZhbHVlKSA/IFN0cmluZyh0aGlzLl92YWx1ZSkubGVuZ3RoIDogJzAnIH0gLyAke3RoaXMubWF4TGVuZ3RoKCl9YDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9pc0VuYWJsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuaXNEaXNhYmxlZCgpICYmICF0aGlzLmlzTG9hZGluZygpICYmICF0aGlzLmlzUmVhZG9ubHkoKTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgZmxvYXRMYWJlbCA9IGNvbXB1dGVkPCdhdXRvJyB8ICdhbHdheXMnPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGFiZWwoKSA9PSAnJyA/ICdhbHdheXMnIDogJ2F1dG8nXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIHBhZGRpbmdSaWdodCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0ludmFsaWQoKSB8fCB0aGlzLmlzVmFsaWQoKVxyXG4gICAgICAgICAgICA/ICcxOHB4JyA6ICcwcHgnO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBTZXRFdmVudHMoKTogdm9pZCB7XHJcbiAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLl9pZCkhIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9pc0VuYWJsZSgpKSB0aGlzLkJsdXIoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4gdGhpcy5CbHVyKCkpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY29lclRleHRCb3goKS5uYXRpdmVFbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faXNFbmFibGUoKSkgdGhpcy5vbklucHV0LmVtaXQodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdwYXN0ZScsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlNldFZhbHVlKHRoaXMuX3ZhbHVlLnRvU3RyaW5nKCkudHJpbSgpKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIEZvY3VzKHRpbWVvdXQ6IG51bWJlciA9IDApOiB2b2lkIHtcclxuICAgICAgICBpZih0aGlzLl9pc0xvYWRpbmdFdmVudCgpKSByZXR1cm47XHJcbiAgICAgICAgZWxzZSB0aGlzLl9pc0xvYWRpbmdFdmVudC5zZXQodHJ1ZSk7XHJcblxyXG4gICAgICAgIFRvb2xzLlNsZWVwKHRpbWVvdXQpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLl9pc0VuYWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgU2VsZWN0KHRpbWVvdXQ6IG51bWJlciA9IDApOiB2b2lkIHtcclxuICAgICAgICBpZih0aGlzLl9pc0xvYWRpbmdFdmVudCgpKSByZXR1cm47XHJcbiAgICAgICAgZWxzZSB0aGlzLl9pc0xvYWRpbmdFdmVudC5zZXQodHJ1ZSk7XHJcblxyXG4gICAgICAgIFRvb2xzLlNsZWVwKHRpbWVvdXQpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLl9pc0VuYWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zZWxlY3QoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgQmx1cigpOiB2b2lkIHtcclxuICAgICAgICBpZih0aGlzLl9pc0xvYWRpbmdFdmVudCgpKSByZXR1cm47XHJcbiAgICAgICAgZWxzZSB0aGlzLl9pc0xvYWRpbmdFdmVudC5zZXQodHJ1ZSk7XHJcblxyXG4gICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmJsdXIoKTtcclxuXHJcbiAgICAgICAgICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLl9pZH0tY29udGFpbmVyIC5tZGMtbGluZS1yaXBwbGUtLWFjdGl2ZWApO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50KSBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ21kYy1saW5lLXJpcHBsZS0tYWN0aXZlJyk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9pc0xvYWRpbmdFdmVudC5zZXQoZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBDbGVhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLlNldFZhbHVlKCcnKTtcclxuICAgICAgICB0aGlzLkZvY3VzKCk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiY29lci10ZXh0YXJlYVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkXHJcbiAgICAgICAgW2lkXT1cIl9pZCArICctY29udGFpbmVyJ1wiXHJcbiAgICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbCgpXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICdyZWFkb25seSc6IGlzUmVhZG9ubHkoKSAmJiAhaXNMb2FkaW5nKClcclxuICAgICAgICB9XCJcclxuICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgICAnd2lkdGgnOiB3aWR0aCgpLFxyXG4gICAgICAgICAgICAnbWluLXdpZHRoJzogbWluV2lkdGgoKSxcclxuICAgICAgICAgICAgJ21heC13aWR0aCc6IG1heFdpZHRoKCksXHJcbiAgICAgICAgICAgICdtYXJnaW4tdG9wJzogbWFyZ2luVG9wKCksXHJcbiAgICAgICAgICAgICdtYXJnaW4tcmlnaHQnOiBtYXJnaW5SaWdodCgpLFxyXG4gICAgICAgICAgICAnbWFyZ2luLWJvdHRvbSc6IG1hcmdpbkJvdHRvbSgpLFxyXG4gICAgICAgICAgICAnbWFyZ2luLWxlZnQnOiBtYXJnaW5MZWZ0KClcclxuICAgICAgICB9XCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbCgpIH19PC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDx0ZXh0YXJlYSAjY29lclRleHRBcmVhIG1hdElucHV0XHJcbiAgICAgICAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuICAgICAgICAgICAgW21pbkxlbmd0aF09XCJtaW5MZW5ndGgoKVwiXHJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwibWF4TGVuZ3RoKClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIV9pc0VuYWJsZSgpXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cIl92YWx1ZVwiXHJcbiAgICAgICAgICAgIChpbnB1dCk9XCJTZXRWYWx1ZShjb2VyVGV4dEFyZWEudmFsdWUpXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwiU2V0VG91Y2hlZCh0cnVlKVwiXHJcbiAgICAgICAgICAgIFtzdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAnY3Vyc29yJzogaXNMb2FkaW5nKCkgPyAnd2FpdCcgOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgJ21hcmdpbi10b3AnOiAoZmxvYXRMYWJlbCgpID09ICdhdXRvJykgPyAnMTVweCcgOiAnOXB4JyxcclxuICAgICAgICAgICAgICAgICdwYWRkaW5nLXJpZ2h0JzogcGFkZGluZ1JpZ2h0KCksXHJcbiAgICAgICAgICAgICAgICAndGV4dC1hbGlnbic6IHRleHRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgICAgICAgJ3Jlc2l6ZSc6ICghcmVzaXplKCkgfHwgIV9pc0VuYWJsZSgpKSA/ICdub25lJyA6ICcnXHJcbiAgICAgICAgICAgIH1cIj48L3RleHRhcmVhPlxyXG5cclxuICAgICAgICBAaWYoaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyLWdsb3dcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGxhY2Vob2xkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPHNwYW4gbmdDbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIEBpZihpc0ludmFsaWQoKSAmJiAhaXNEaXNhYmxlZCgpICYmICFpc0xvYWRpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaXJjbGUtZXhjbGFtYXRpb25cIj48L2k+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBlbHNlIGlmKGlzVmFsaWQoKSAmJiAhaXNEaXNhYmxlZCgpICYmICFpc0xvYWRpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaXJjbGUtY2hlY2sgdGV4dC1ncmVlblwiPjwvaT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgQGlmKHNob3dGb290ZXIoKSkge1xyXG4gICAgICAgIDxmb290ZXI+IHt7IGZvb3RlciB9fSA8L2Zvb3Rlcj5cclxuICAgIH1cclxuPC9kaXY+Il19
@@ -1,6 +1,5 @@
1
1
  import { Component, computed, input, Input, output, signal, viewChild } from '@angular/core';
2
- import { CONTROL_VALUE, ControlValue } from '../../../tools/lib/control-value.class';
3
- import { Tools } from '../../../tools/lib/tools';
2
+ import { CONTROL_VALUE, ControlValue, Tools } from 'coer-elements/tools';
4
3
  import * as i0 from "@angular/core";
5
4
  import * as i1 from "@angular/common";
6
5
  import * as i2 from "@angular/material/input";
@@ -193,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
193
192
  }], id: [{
194
193
  type: Input
195
194
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci10ZXh0Ym94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvc3JjL2NvbXBvbmVudHMvbGliL2NvZXItdGV4dGJveC9jb2VyLXRleHRib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9zcmMvY29tcG9uZW50cy9saWIvY29lci10ZXh0Ym94L2NvZXItdGV4dGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYyxLQUFLLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQVFqRCxNQUFNLE9BQU8sV0FBWSxTQUFRLFlBQVk7SUFON0M7O1FBUUksaUJBQWlCO1FBQ0UsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFDdEMsaUJBQVksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFhLGNBQWMsQ0FBQyxDQUFDO1FBQzlELGdCQUFXLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBYSxhQUFhLENBQUMsQ0FBQztRQUV0RSxXQUFXO1FBQ0QsUUFBRyxHQUFXLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUMsb0JBQWUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFTMUMsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUNsQixVQUFLLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hD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b250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEVsZW1lbnRSZWYsIGlucHV0LCBJbnB1dCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENPTlRST0xfVkFMVUUsIENvbnRyb2xWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xzL2xpYi9jb250cm9sLXZhbHVlLmNsYXNzJztcclxuaW1wb3J0IHsgVG9vbHMgfSBmcm9tICcuLi8uLi8uLi90b29scy9saWIvdG9vbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvZXItdGV4dGJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29lci10ZXh0Ym94LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9jb2VyLXRleHRib3guY29tcG9uZW50LnNjc3MnLFxyXG4gICAgcHJvdmlkZXJzOiBbQ09OVFJPTF9WQUxVRShDb2VyVGV4dEJveCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2VyVGV4dEJveCBleHRlbmRzIENvbnRyb2xWYWx1ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgLy9Db21wb25lbnQgVmFsdWVcclxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfdmFsdWU6IHN0cmluZyB8IG51bWJlciA9ICcnO1xyXG4gICAgcHJvdGVjdGVkIG1hdEZvcm1GaWVsZCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPignbWF0Rm9ybUZpZWxkJyk7XHJcbiAgICBwcm90ZWN0ZWQgY29lclRleHRCb3ggPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZj4oJ2NvZXJUZXh0Qm94Jyk7XHJcblxyXG4gICAgLy9WYXJpYWJsZXNcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZyA9IFRvb2xzLkdldEd1aWQoJ2NvZXItdGV4dEJveCcpO1xyXG4gICAgcHJvdGVjdGVkIF9pc0xvYWRpbmdFdmVudCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwcml2YXRlIGVsZW1lbnQhOiBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgIC8vSW5wdXRzXHJcbiAgICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZihUb29scy5Jc051bGwodmFsdWUpKSB2YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMuU2V0VmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBsYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gICAgcHVibGljIHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgICBwdWJsaWMgbWluTGVuZ3RoID0gaW5wdXQ8bnVtYmVyIHwgc3RyaW5nPigwKTtcclxuICAgIHB1YmxpYyBtYXhMZW5ndGggPSBpbnB1dDxudW1iZXIgfCBzdHJpbmc+KDUwKTtcclxuICAgIHB1YmxpYyBzaG93U2VhcmNoSWNvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBzaG93Q2xlYXJJY29uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIHdpZHRoID0gaW5wdXQ8c3RyaW5nPignMTAwJScpO1xyXG4gICAgcHVibGljIG1pbldpZHRoID0gaW5wdXQ8c3RyaW5nPignMTkwcHgnKTtcclxuICAgIHB1YmxpYyBtYXhXaWR0aCA9IGlucHV0PHN0cmluZz4oJzEwMCUnKTtcclxuICAgIHB1YmxpYyBtYXJnaW5Ub3AgPSBpbnB1dDxzdHJpbmc+KCcwcHgnKTtcclxuICAgIHB1YmxpYyBtYXJnaW5SaWdodCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIG1hcmdpbkJvdHRvbSA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIG1hcmdpbkxlZnQgPSBpbnB1dDxzdHJpbmc+KCcwcHgnKTtcclxuICAgIHB1YmxpYyBpc0ludmFsaWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNWYWxpZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0Rpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzUmVhZG9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIHNlbGVjdE9uRm9jdXMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICAgIHB1YmxpYyB0ZXh0UG9zaXRpb24gPSBpbnB1dDwnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCc+KCdsZWZ0Jyk7XHJcblxyXG4gICAgLy9PdXRwdXRzXHJcbiAgICBwdWJsaWMgb25LZXl1cEVudGVyID0gb3V0cHV0PHN0cmluZyB8IG51bWJlcj4oKTtcclxuICAgIHB1YmxpYyBvbklucHV0ID0gb3V0cHV0PHN0cmluZyB8IG51bWJlcj4oKTtcclxuICAgIHB1YmxpYyBvbkNsaWNrQ2xlYXIgPSBvdXRwdXQ8dm9pZD4oKTtcclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLlNldEV2ZW50cygpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBfc2hvd1NlYXJjaEljb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd1NlYXJjaEljb24oKVxyXG4gICAgICAgICAgICAmJiAhdGhpcy5fc2hvd0NsZWFySWNvblxyXG4gICAgICAgICAgICAmJiAhdGhpcy5pc0Rpc2FibGVkKClcclxuICAgICAgICAgICAgJiYgIXRoaXMuaXNMb2FkaW5nKClcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHByb3RlY3RlZCBnZXQgX3Nob3dDbGVhckljb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0NsZWFySWNvbigpXHJcbiAgICAgICAgICAgICYmICF0aGlzLmlzRGlzYWJsZWQoKVxyXG4gICAgICAgICAgICAmJiAhdGhpcy5pc0xvYWRpbmcoKVxyXG4gICAgICAgICAgICAmJiB0aGlzLl92YWx1ZSAhPSB1bmRlZmluZWRcclxuICAgICAgICAgICAgJiYgU3RyaW5nKHRoaXMuX3ZhbHVlKS5sZW5ndGggPiAwXHJcbiAgICB9XHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgX2lzRW5hYmxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5pc0Rpc2FibGVkKCkgJiYgIXRoaXMuaXNMb2FkaW5nKCkgJiYgIXRoaXMuaXNSZWFkb25seSgpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgZmxvYXRMYWJlbCA9IGNvbXB1dGVkPCdhdXRvJyB8ICdhbHdheXMnPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGFiZWwoKSA9PSAnJyA/ICdhbHdheXMnIDogJ2F1dG8nXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIHBhZGRpbmdSaWdodCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0ludmFsaWQoKSB8fCB0aGlzLmlzVmFsaWQoKVxyXG4gICAgICAgICAgICA/ICcxOHB4JyA6ICcwcHgnO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBTZXRFdmVudHMoKTogdm9pZCB7XHJcbiAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLl9pZCkhIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9pc0VuYWJsZSgpKSB0aGlzLkJsdXIoKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnNlbGVjdE9uRm9jdXMoKSkgdGhpcy5TZWxlY3QoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc0VuYWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsga2V5IH0gPSBldmVudDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb2VyVGV4dEJveCgpLm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uS2V5dXBFbnRlci5lbWl0KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQmx1cigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB0aGlzLkJsdXIoKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb2VyVGV4dEJveCgpLm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc0VuYWJsZSgpKSB0aGlzLm9uSW5wdXQuZW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuU2V0VmFsdWUodGhpcy5fdmFsdWUudG9TdHJpbmcoKS50cmltKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgRm9jdXModGltZW91dDogbnVtYmVyID0gMCk6IHZvaWQge1xyXG4gICAgICAgIGlmKHRoaXMuX2lzTG9hZGluZ0V2ZW50KCkpIHJldHVybjtcclxuICAgICAgICBlbHNlIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldCh0cnVlKTtcclxuXHJcbiAgICAgICAgVG9vbHMuU2xlZXAodGltZW91dCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuX2lzRW5hYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9pc0xvYWRpbmdFdmVudC5zZXQoZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBTZWxlY3QodGltZW91dDogbnVtYmVyID0gMCk6IHZvaWQge1xyXG4gICAgICAgIGlmKHRoaXMuX2lzTG9hZGluZ0V2ZW50KCkpIHJldHVybjtcclxuICAgICAgICBlbHNlIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldCh0cnVlKTtcclxuXHJcbiAgICAgICAgVG9vbHMuU2xlZXAodGltZW91dCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuX2lzRW5hYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnNlbGVjdCgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9pc0xvYWRpbmdFdmVudC5zZXQoZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBCbHVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmKHRoaXMuX2lzTG9hZGluZ0V2ZW50KCkpIHJldHVybjtcclxuICAgICAgICBlbHNlIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldCh0cnVlKTtcclxuXHJcbiAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy5lbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYmx1cigpO1xyXG5cclxuICAgICAgICAgICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMuX2lkfS1jb250YWluZXIgLm1kYy1saW5lLXJpcHBsZS0tYWN0aXZlYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnbWRjLWxpbmUtcmlwcGxlLS1hY3RpdmUnKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIENsZWFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuU2V0VmFsdWUoJycpO1xyXG4gICAgICAgIHRoaXMuRm9jdXMoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgQ2xpY2tTZWFyY2goKTogdm9pZCB7XHJcbiAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2lzRW5hYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNob3dDbGVhckljb24oKSkgdGhpcy5Gb2N1cygpO1xyXG5cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25LZXl1cEVudGVyLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQmx1cigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjb2VyLXRleHQtYm94XCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGRcclxuICAgICAgICBbaWRdPVwiX2lkICsgJy1jb250YWluZXInXCJcclxuICAgICAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsKClcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgJ3JlYWRvbmx5JzogaXNSZWFkb25seSgpICYmICFpc0xvYWRpbmcoKVxyXG4gICAgICAgIH1cIlxyXG4gICAgICAgIFtzdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICd3aWR0aCc6IHdpZHRoKCksXHJcbiAgICAgICAgICAgICdtaW4td2lkdGgnOiBtaW5XaWR0aCgpLFxyXG4gICAgICAgICAgICAnbWF4LXdpZHRoJzogbWF4V2lkdGgoKSxcclxuICAgICAgICAgICAgJ21hcmdpbi10b3AnOiBtYXJnaW5Ub3AoKSxcclxuICAgICAgICAgICAgJ21hcmdpbi1yaWdodCc6IG1hcmdpblJpZ2h0KCksXHJcbiAgICAgICAgICAgICdtYXJnaW4tYm90dG9tJzogbWFyZ2luQm90dG9tKCksXHJcbiAgICAgICAgICAgICdtYXJnaW4tbGVmdCc6IG1hcmdpbkxlZnQoKVxyXG4gICAgICAgIH1cIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsKCkgfX08L21hdC1sYWJlbD5cclxuXHJcbiAgICAgICAgPGlucHV0ICNjb2VyVGV4dEJveCBtYXRJbnB1dFxyXG4gICAgICAgICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcbiAgICAgICAgICAgIFttaW5MZW5ndGhdPVwibWluTGVuZ3RoKClcIlxyXG4gICAgICAgICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aCgpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFfaXNFbmFibGUoKVwiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJfdmFsdWVcIlxyXG4gICAgICAgICAgICAoaW5wdXQpPVwiU2V0VmFsdWUoY29lclRleHRCb3gudmFsdWUpXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwiU2V0VG91Y2hlZCh0cnVlKVwiXHJcbiAgICAgICAgICAgIFtzdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAnY3Vyc29yJzogaXNMb2FkaW5nKCkgPyAnd2FpdCcgOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgJ21hcmdpbi10b3AnOiAoZmxvYXRMYWJlbCgpID09ICdhdXRvJykgPyAnMTVweCcgOiAnOXB4JyxcclxuICAgICAgICAgICAgICAgICdwYWRkaW5nLXJpZ2h0JzogcGFkZGluZ1JpZ2h0KCksXHJcbiAgICAgICAgICAgICAgICAndGV4dC1hbGlnbic6IHRleHRQb3NpdGlvbigpXHJcbiAgICAgICAgICAgIH1cIj5cclxuXHJcbiAgICAgICAgQGlmKGlzTG9hZGluZygpKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFjZWhvbGRlci1nbG93XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBsYWNlaG9sZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxzcGFuIG5nQ2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICBAaWYoX3Nob3dTZWFyY2hJY29uKSB7XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLW1hZ25pZnlpbmctZ2xhc3MgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiQ2xpY2tTZWFyY2goKVwiPjwvaT5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGVsc2UgaWYoX3Nob3dDbGVhckljb24pIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEteG1hcmsgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiQ2xlYXIoKTsgdGhpcy5vbkNsaWNrQ2xlYXIuZW1pdCgpO1wiPjwvaT5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGVsc2UgaWYoaXNJbnZhbGlkKCkgJiYgIWlzRGlzYWJsZWQoKSAmJiAhaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2lyY2xlLWV4Y2xhbWF0aW9uXCI+PC9pPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAZWxzZSBpZihpc1ZhbGlkKCkgJiYgIWlzRGlzYWJsZWQoKSAmJiAhaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2lyY2xlLWNoZWNrIHRleHQtZ3JlZW5cIj48L2k+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPiBcclxuPC9kaXY+Il19
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci10ZXh0Ym94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvY29tcG9uZW50cy9saWIvY29lci10ZXh0Ym94L2NvZXItdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItdGV4dGJveC9jb2VyLXRleHRib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFRekUsTUFBTSxPQUFPLFdBQVksU0FBUSxZQUFZO0lBTjdDOztRQVFJLGlCQUFpQjtRQUNFLFdBQU0sR0FBb0IsRUFBRSxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBYSxjQUFjLENBQUMsQ0FBQztRQUM5RCxnQkFBVyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWEsYUFBYSxDQUFDLENBQUM7UUFFdEUsV0FBVztRQUNELFFBQUcsR0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLG9CQUFlLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBUzFDLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFDbEIsVUFBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxQixnQkFBVyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoQyxjQUFTLEdBQUcsS0FBSyxDQUFrQixDQUFDLENBQUMsQ0FBQztRQUN0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bGVtZW50UmVmLCBpbnB1dCwgSW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDT05UUk9MX1ZBTFVFLCBDb250cm9sVmFsdWUsIFRvb2xzIH0gZnJvbSAnY29lci1lbGVtZW50cy90b29scyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY29lci10ZXh0Ym94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLXRleHRib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NvZXItdGV4dGJveC5jb21wb25lbnQuc2NzcycsXHJcbiAgICBwcm92aWRlcnM6IFtDT05UUk9MX1ZBTFVFKENvZXJUZXh0Qm94KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJUZXh0Qm94IGV4dGVuZHMgQ29udHJvbFZhbHVlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICAvL0NvbXBvbmVudCBWYWx1ZVxyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF92YWx1ZTogc3RyaW5nIHwgbnVtYmVyID0gJyc7XHJcbiAgICBwcm90ZWN0ZWQgbWF0Rm9ybUZpZWxkID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KCdtYXRGb3JtRmllbGQnKTtcclxuICAgIHByb3RlY3RlZCBjb2VyVGV4dEJveCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPignY29lclRleHRCb3gnKTtcclxuXHJcbiAgICAvL1ZhcmlhYmxlc1xyXG4gICAgcHJvdGVjdGVkIF9pZDogc3RyaW5nID0gVG9vbHMuR2V0R3VpZCgnY29lci10ZXh0Qm94Jyk7XHJcbiAgICBwcm90ZWN0ZWQgX2lzTG9hZGluZ0V2ZW50ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHByaXZhdGUgZWxlbWVudCE6IEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgLy9JbnB1dHNcclxuICAgIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmKFRvb2xzLklzTnVsbCh2YWx1ZSkpIHZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5TZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIGxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIHB1YmxpYyBtaW5MZW5ndGggPSBpbnB1dDxudW1iZXIgfCBzdHJpbmc+KDApO1xyXG4gICAgcHVibGljIG1heExlbmd0aCA9IGlucHV0PG51bWJlciB8IHN0cmluZz4oNTApO1xyXG4gICAgcHVibGljIHNob3dTZWFyY2hJY29uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIHNob3dDbGVhckljb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgd2lkdGggPSBpbnB1dDxzdHJpbmc+KCcxMDAlJyk7XHJcbiAgICBwdWJsaWMgbWluV2lkdGggPSBpbnB1dDxzdHJpbmc+KCcxOTBweCcpO1xyXG4gICAgcHVibGljIG1heFdpZHRoID0gaW5wdXQ8c3RyaW5nPignMTAwJScpO1xyXG4gICAgcHVibGljIG1hcmdpblRvcCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIG1hcmdpblJpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luQm90dG9tID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luTGVmdCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIGlzSW52YWxpZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc1ZhbGlkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNSZWFkb25seSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgc2VsZWN0T25Gb2N1cyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gICAgcHVibGljIHRleHRQb3NpdGlvbiA9IGlucHV0PCdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jz4oJ2xlZnQnKTtcclxuXHJcbiAgICAvL091dHB1dHNcclxuICAgIHB1YmxpYyBvbktleXVwRW50ZXIgPSBvdXRwdXQ8c3RyaW5nIHwgbnVtYmVyPigpO1xyXG4gICAgcHVibGljIG9uSW5wdXQgPSBvdXRwdXQ8c3RyaW5nIHwgbnVtYmVyPigpO1xyXG4gICAgcHVibGljIG9uQ2xpY2tDbGVhciA9IG91dHB1dDx2b2lkPigpO1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuU2V0RXZlbnRzKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vZ2V0dGVyXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IF9zaG93U2VhcmNoSWNvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zaG93U2VhcmNoSWNvbigpXHJcbiAgICAgICAgICAgICYmICF0aGlzLl9zaG93Q2xlYXJJY29uXHJcbiAgICAgICAgICAgICYmICF0aGlzLmlzRGlzYWJsZWQoKVxyXG4gICAgICAgICAgICAmJiAhdGhpcy5pc0xvYWRpbmcoKVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBfc2hvd0NsZWFySWNvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zaG93Q2xlYXJJY29uKClcclxuICAgICAgICAgICAgJiYgIXRoaXMuaXNEaXNhYmxlZCgpXHJcbiAgICAgICAgICAgICYmICF0aGlzLmlzTG9hZGluZygpXHJcbiAgICAgICAgICAgICYmIHRoaXMuX3ZhbHVlICE9IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAmJiBTdHJpbmcodGhpcy5fdmFsdWUpLmxlbmd0aCA+IDBcclxuICAgIH1cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBfaXNFbmFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzRGlzYWJsZWQoKSAmJiAhdGhpcy5pc0xvYWRpbmcoKSAmJiAhdGhpcy5pc1JlYWRvbmx5KCk7XHJcbiAgICB9KTtcclxuXHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBmbG9hdExhYmVsID0gY29tcHV0ZWQ8J2F1dG8nIHwgJ2Fsd2F5cyc+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYWJlbCgpID09ICcnID8gJ2Fsd2F5cycgOiAnYXV0bydcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgcGFkZGluZ1JpZ2h0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzSW52YWxpZCgpIHx8IHRoaXMuaXNWYWxpZCgpXHJcbiAgICAgICAgICAgID8gJzE4cHgnIDogJzBweCc7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIFNldEV2ZW50cygpOiB2b2lkIHtcclxuICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCk9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuX2lkKSEgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2lzRW5hYmxlKCkpIHRoaXMuQmx1cigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0T25Gb2N1cygpKSB0aGlzLlNlbGVjdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lzRW5hYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvZXJUZXh0Qm94KCkubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25LZXl1cEVudGVyLmVtaXQodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5CbHVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuQmx1cigpKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvZXJUZXh0Qm94KCkubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lzRW5hYmxlKCkpIHRoaXMub25JbnB1dC5lbWl0KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGFzdGUnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5TZXRWYWx1ZSh0aGlzLl92YWx1ZS50b1N0cmluZygpLnRyaW0oKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBGb2N1cyh0aW1lb3V0OiBudW1iZXIgPSAwKTogdm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5faXNMb2FkaW5nRXZlbnQoKSkgcmV0dXJuO1xyXG4gICAgICAgIGVsc2UgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KHRydWUpO1xyXG5cclxuICAgICAgICBUb29scy5TbGVlcCh0aW1lb3V0KS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy5faXNFbmFibGUoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIFNlbGVjdCh0aW1lb3V0OiBudW1iZXIgPSAwKTogdm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5faXNMb2FkaW5nRXZlbnQoKSkgcmV0dXJuO1xyXG4gICAgICAgIGVsc2UgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KHRydWUpO1xyXG5cclxuICAgICAgICBUb29scy5TbGVlcCh0aW1lb3V0KS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy5faXNFbmFibGUoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZ0V2ZW50LnNldChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIEJsdXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5faXNMb2FkaW5nRXZlbnQoKSkgcmV0dXJuO1xyXG4gICAgICAgIGVsc2UgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KHRydWUpO1xyXG5cclxuICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLmVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5ibHVyKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy5faWR9LWNvbnRhaW5lciAubWRjLWxpbmUtcmlwcGxlLS1hY3RpdmVgKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCkgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdtZGMtbGluZS1yaXBwbGUtLWFjdGl2ZScpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nRXZlbnQuc2V0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgQ2xlYXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5TZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgdGhpcy5Gb2N1cygpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBDbGlja1NlYXJjaCgpOiB2b2lkIHtcclxuICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5faXNFbmFibGUoKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0NsZWFySWNvbigpKSB0aGlzLkZvY3VzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbktleXVwRW50ZXIuZW1pdCh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5CbHVyKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNvZXItdGV4dC1ib3hcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgICAgIFtpZF09XCJfaWQgKyAnLWNvbnRhaW5lcidcIlxyXG4gICAgICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWwoKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAncmVhZG9ubHknOiBpc1JlYWRvbmx5KCkgJiYgIWlzTG9hZGluZygpXHJcbiAgICAgICAgfVwiXHJcbiAgICAgICAgW3N0eWxlXT1cIntcclxuICAgICAgICAgICAgJ3dpZHRoJzogd2lkdGgoKSxcclxuICAgICAgICAgICAgJ21pbi13aWR0aCc6IG1pbldpZHRoKCksXHJcbiAgICAgICAgICAgICdtYXgtd2lkdGgnOiBtYXhXaWR0aCgpLFxyXG4gICAgICAgICAgICAnbWFyZ2luLXRvcCc6IG1hcmdpblRvcCgpLFxyXG4gICAgICAgICAgICAnbWFyZ2luLXJpZ2h0JzogbWFyZ2luUmlnaHQoKSxcclxuICAgICAgICAgICAgJ21hcmdpbi1ib3R0b20nOiBtYXJnaW5Cb3R0b20oKSxcclxuICAgICAgICAgICAgJ21hcmdpbi1sZWZ0JzogbWFyZ2luTGVmdCgpXHJcbiAgICAgICAgfVwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwoKSB9fTwvbWF0LWxhYmVsPlxyXG5cclxuICAgICAgICA8aW5wdXQgI2NvZXJUZXh0Qm94IG1hdElucHV0XHJcbiAgICAgICAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuICAgICAgICAgICAgW21pbkxlbmd0aF09XCJtaW5MZW5ndGgoKVwiXHJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwibWF4TGVuZ3RoKClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIV9pc0VuYWJsZSgpXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cIl92YWx1ZVwiXHJcbiAgICAgICAgICAgIChpbnB1dCk9XCJTZXRWYWx1ZShjb2VyVGV4dEJveC52YWx1ZSlcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJTZXRUb3VjaGVkKHRydWUpXCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICdjdXJzb3InOiBpc0xvYWRpbmcoKSA/ICd3YWl0JyA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcCc6IChmbG9hdExhYmVsKCkgPT0gJ2F1dG8nKSA/ICcxNXB4JyA6ICc5cHgnLFxyXG4gICAgICAgICAgICAgICAgJ3BhZGRpbmctcmlnaHQnOiBwYWRkaW5nUmlnaHQoKSxcclxuICAgICAgICAgICAgICAgICd0ZXh0LWFsaWduJzogdGV4dFBvc2l0aW9uKClcclxuICAgICAgICAgICAgfVwiPlxyXG5cclxuICAgICAgICBAaWYoaXNMb2FkaW5nKCkpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyLWdsb3dcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGxhY2Vob2xkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPHNwYW4gbmdDbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIEBpZihfc2hvd1NlYXJjaEljb24pIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtbWFnbmlmeWluZy1nbGFzcyBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJDbGlja1NlYXJjaCgpXCI+PC9pPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAZWxzZSBpZihfc2hvd0NsZWFySWNvbikge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS14bWFyayBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJDbGVhcigpOyB0aGlzLm9uQ2xpY2tDbGVhci5lbWl0KCk7XCI+PC9pPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAZWxzZSBpZihpc0ludmFsaWQoKSAmJiAhaXNEaXNhYmxlZCgpICYmICFpc0xvYWRpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaXJjbGUtZXhjbGFtYXRpb25cIj48L2k+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBlbHNlIGlmKGlzVmFsaWQoKSAmJiAhaXNEaXNhYmxlZCgpICYmICFpc0xvYWRpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaXJjbGUtY2hlY2sgdGV4dC1ncmVlblwiPjwvaT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+IFxyXG48L2Rpdj4iXX0=