@gravitee/ui-components 3.17.0 → 3.17.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/package.json +18 -24
  2. package/src/atoms/gv-autocomplete.js +6 -5
  3. package/src/atoms/gv-button.js +4 -4
  4. package/src/atoms/gv-checkbox.js +3 -3
  5. package/src/atoms/gv-date-picker-calendar.js +5 -4
  6. package/src/atoms/gv-date-picker-cell.js +4 -4
  7. package/src/atoms/gv-date-picker.js +5 -4
  8. package/src/atoms/gv-file-upload.js +5 -4
  9. package/src/atoms/gv-icon.js +7 -15
  10. package/src/atoms/gv-image.js +4 -4
  11. package/src/atoms/gv-input-message.js +3 -2
  12. package/src/atoms/gv-input.js +3 -3
  13. package/src/atoms/gv-link.js +6 -6
  14. package/src/atoms/gv-message.js +3 -3
  15. package/src/atoms/gv-metric.js +3 -3
  16. package/src/atoms/gv-relative-time.js +4 -6
  17. package/src/atoms/gv-select.js +5 -5
  18. package/src/atoms/gv-spinner.js +2 -2
  19. package/src/atoms/gv-state.js +3 -3
  20. package/src/atoms/gv-switch.js +4 -4
  21. package/src/atoms/gv-tag.js +3 -3
  22. package/src/atoms/gv-text.js +4 -4
  23. package/src/charts/gv-chart-bar.js +2 -2
  24. package/src/charts/gv-chart-gauge.js +2 -2
  25. package/src/charts/gv-chart-histogram.js +2 -2
  26. package/src/charts/gv-chart-line.js +2 -2
  27. package/src/charts/gv-chart-map.js +2 -2
  28. package/src/charts/gv-chart-pie.js +2 -2
  29. package/src/lib/item.js +2 -2
  30. package/src/lib/studio.js +3 -3
  31. package/src/mixins/chart-element.js +4 -3
  32. package/src/mixins/input-element.js +3 -3
  33. package/src/mixins/item-resource.js +3 -3
  34. package/src/mixins/with-skeleton-attribute.js +2 -2
  35. package/src/molecules/gv-card-full.js +3 -3
  36. package/src/molecules/gv-card-list.js +4 -3
  37. package/src/molecules/gv-card.js +3 -3
  38. package/src/molecules/gv-category-list.js +3 -2
  39. package/src/molecules/gv-category.js +3 -3
  40. package/src/molecules/gv-code-hint.js +2 -2
  41. package/src/molecules/gv-code.js +3 -3
  42. package/src/molecules/gv-confirm.js +3 -2
  43. package/src/molecules/gv-cron-editor.js +3 -3
  44. package/src/molecules/gv-dropdown-menu.js +3 -2
  45. package/src/molecules/gv-expandable.js +3 -3
  46. package/src/molecules/gv-expression-language.js +3 -2
  47. package/src/molecules/gv-identity-picture.js +4 -3
  48. package/src/molecules/gv-list.js +4 -4
  49. package/src/molecules/gv-metrics.js +4 -4
  50. package/src/molecules/gv-modal.js +2 -2
  51. package/src/molecules/gv-nav.js +5 -5
  52. package/src/molecules/gv-option.js +6 -6
  53. package/src/molecules/gv-plans.js +6 -5
  54. package/src/molecules/gv-popover.js +4 -3
  55. package/src/molecules/gv-promote.js +3 -3
  56. package/src/molecules/gv-rating-list.js +5 -4
  57. package/src/molecules/gv-rating.js +4 -4
  58. package/src/molecules/gv-row-expandable.js +2 -2
  59. package/src/molecules/gv-row.js +3 -3
  60. package/src/molecules/gv-stats.js +4 -4
  61. package/src/molecules/gv-stepper.js +4 -4
  62. package/src/molecules/gv-table.js +8 -7
  63. package/src/molecules/gv-tree.js +4 -4
  64. package/src/organisms/gv-documentation.js +2 -2
  65. package/src/organisms/gv-header.js +6 -6
  66. package/src/organisms/gv-http-client.js +2 -2
  67. package/src/organisms/gv-menu.js +3 -3
  68. package/src/organisms/gv-newsletter-subscription.js +2 -2
  69. package/src/organisms/gv-pagination.js +2 -2
  70. package/src/organisms/gv-properties.js +3 -3
  71. package/src/organisms/gv-resizable-views.js +4 -3
  72. package/src/organisms/gv-resources.js +2 -2
  73. package/src/organisms/gv-schema-form-array.js +3 -3
  74. package/src/organisms/gv-schema-form-control-object.js +3 -3
  75. package/src/organisms/gv-schema-form-control.js +3 -2
  76. package/src/organisms/gv-schema-form.js +3 -3
  77. package/src/organisms/gv-tabs.js +3 -2
  78. package/src/organisms/gv-user-menu.js +4 -4
  79. package/src/organisms/gv-vertical-menu.js +2 -2
  80. package/src/policy-studio/gv-flow-step.js +3 -3
  81. package/src/policy-studio/gv-flow.js +3 -3
  82. package/src/policy-studio/gv-policy-studio-menu.js +4 -4
  83. package/src/policy-studio/gv-policy-studio.js +3 -3
  84. package/src/styles/empty.js +2 -2
  85. package/src/styles/input.js +2 -2
  86. package/src/styles/link.js +2 -2
  87. package/src/styles/skeleton.js +2 -2
  88. package/src/styles/zoom.js +2 -2
  89. package/src/theme/gv-theme.js +2 -2
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css } from 'lit';
16
+ import { css } from 'lit-element';
17
17
  import { GvExpandable } from './gv-expandable';
18
18
  /**
19
19
  * Expandable row
@@ -36,4 +36,4 @@ export class GvRowExpandable extends GvExpandable {
36
36
 
37
37
  }
38
38
  window.customElements.define('gv-row-expandable', GvRowExpandable);
39
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1yb3ctZXhwYW5kYWJsZS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJHdkV4cGFuZGFibGUiLCJHdlJvd0V4cGFuZGFibGUiLCJjb25zdHJ1Y3RvciIsImljb24iLCJpY29uT3BlbmVkIiwiY2xpY2thYmxlIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsUUFBb0IsS0FBcEI7QUFDQSxTQUFTQyxZQUFULFFBQTZCLGlCQUE3QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxlQUFOLFNBQThCRCxZQUE5QixDQUEyQztBQUNoREUsRUFBQUEsV0FBVyxHQUFHO0FBQ1o7QUFDQSxTQUFLQyxJQUFMLEdBQVksaUJBQVo7QUFDQSxTQUFLQyxVQUFMLEdBQWtCLGlCQUFsQjtBQUNBLFNBQUtDLFNBQUwsR0FBaUIsSUFBakI7QUFDRDs7QUFFZ0IsYUFBTkMsTUFBTSxHQUFHO0FBQ2xCLFdBQU8sQ0FDTCxHQUFHLE1BQU1BLE1BREosRUFFTDtBQUNBUCxJQUFBQSxHQUFHLG9FQUhFLENBQVA7QUFTRDs7QUFsQitDO0FBcUJsRFEsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixtQkFBN0IsRUFBa0RSLGVBQWxEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBHdkV4cGFuZGFibGUgfSBmcm9tICcuL2d2LWV4cGFuZGFibGUnO1xuXG4vKipcbiAqIEV4cGFuZGFibGUgcm93XG4gKiAgQGV4dGVuZHMgR3ZFeHBhbmRhYmxlXG4gKlxuICovXG5leHBvcnQgY2xhc3MgR3ZSb3dFeHBhbmRhYmxlIGV4dGVuZHMgR3ZFeHBhbmRhYmxlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmljb24gPSAnZ2VuZXJhbDpvdGhlciMyJztcbiAgICB0aGlzLmljb25PcGVuZWQgPSAnZ2VuZXJhbDpvdGhlciMyJztcbiAgICB0aGlzLmNsaWNrYWJsZSA9IHRydWU7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uc3VwZXIuc3R5bGVzLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIC5ib3g6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IsICNmNWY1ZjUpO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3Ytcm93LWV4cGFuZGFibGUnLCBHdlJvd0V4cGFuZGFibGUpO1xuIl19
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1yb3ctZXhwYW5kYWJsZS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJHdkV4cGFuZGFibGUiLCJHdlJvd0V4cGFuZGFibGUiLCJjb25zdHJ1Y3RvciIsImljb24iLCJpY29uT3BlbmVkIiwiY2xpY2thYmxlIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsUUFBb0IsYUFBcEI7QUFDQSxTQUFTQyxZQUFULFFBQTZCLGlCQUE3QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxlQUFOLFNBQThCRCxZQUE5QixDQUEyQztBQUNoREUsRUFBQUEsV0FBVyxHQUFHO0FBQ1o7QUFDQSxTQUFLQyxJQUFMLEdBQVksaUJBQVo7QUFDQSxTQUFLQyxVQUFMLEdBQWtCLGlCQUFsQjtBQUNBLFNBQUtDLFNBQUwsR0FBaUIsSUFBakI7QUFDRDs7QUFFZ0IsYUFBTkMsTUFBTSxHQUFHO0FBQ2xCLFdBQU8sQ0FDTCxHQUFHLE1BQU1BLE1BREosRUFFTDtBQUNBUCxJQUFBQSxHQUFHLG9FQUhFLENBQVA7QUFTRDs7QUFsQitDO0FBcUJsRFEsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixtQkFBN0IsRUFBa0RSLGVBQWxEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcyB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IEd2RXhwYW5kYWJsZSB9IGZyb20gJy4vZ3YtZXhwYW5kYWJsZSc7XG5cbi8qKlxuICogRXhwYW5kYWJsZSByb3dcbiAqICBAZXh0ZW5kcyBHdkV4cGFuZGFibGVcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlJvd0V4cGFuZGFibGUgZXh0ZW5kcyBHdkV4cGFuZGFibGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWNvbiA9ICdnZW5lcmFsOm90aGVyIzInO1xuICAgIHRoaXMuaWNvbk9wZW5lZCA9ICdnZW5lcmFsOm90aGVyIzInO1xuICAgIHRoaXMuY2xpY2thYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5zdXBlci5zdHlsZXMsXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgLmJveDpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI2Y1ZjVmNSk7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1yb3ctZXhwYW5kYWJsZScsIEd2Um93RXhwYW5kYWJsZSk7XG4iXX0=
@@ -13,10 +13,10 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, html, LitElement } from 'lit';
16
+ import { css, html, LitElement } from 'lit-element';
17
17
  import { skeleton } from '../styles/skeleton';
18
18
  import { link } from '../styles/link';
19
- import { classMap } from 'lit/directives/class-map';
19
+ import { classMap } from 'lit-html/directives/class-map';
20
20
  import { i18n } from '../lib/i18n';
21
21
  import { ItemResource } from '../mixins/item-resource';
22
22
  import { withResizeObserver } from '../mixins/with-resize-observer';
@@ -81,4 +81,4 @@ export class GvRow extends withResizeObserver(ItemResource(LitElement)) {
81
81
 
82
82
  }
83
83
  window.customElements.define('gv-row', GvRow);
84
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1yb3cuanMiXSwibmFtZXMiOlsiY3NzIiwiaHRtbCIsIkxpdEVsZW1lbnQiLCJza2VsZXRvbiIsImxpbmsiLCJjbGFzc01hcCIsImkxOG4iLCJJdGVtUmVzb3VyY2UiLCJ3aXRoUmVzaXplT2JzZXJ2ZXIiLCJnZXRPd25lciIsImdldFRpdGxlIiwiZ2V0RGVzY3JpcHRpb24iLCJnZXRWZXJzaW9uIiwiR3ZSb3ciLCJzdHlsZXMiLCJwcm9wZXJ0aWVzIiwic21hbGwiLCJ0eXBlIiwiQm9vbGVhbiIsImNvbnN0cnVjdG9yIiwiYnJlYWtwb2ludHMiLCJ3aWR0aCIsInJlbmRlciIsImNsYXNzZXMiLCJyb3ciLCJlcnJvciIsIl9za2VsZXRvbiIsIl9lcnJvciIsIl9lbXB0eSIsIm93bmVyIiwiX2l0ZW0iLCJfcmVuZGVySW1hZ2UiLCJncm91cCIsIm1ldGEiLCJ0cmltIiwibGVuZ3RoIiwiX3JlbmRlckxhYmVscyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLElBQWQsRUFBb0JDLFVBQXBCLFFBQXNDLEtBQXRDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixvQkFBekI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGdCQUFyQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsMEJBQXpCO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixhQUFyQjtBQUNBLFNBQVNDLFlBQVQsUUFBNkIseUJBQTdCO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsZ0NBQW5DO0FBQ0EsU0FBU0MsUUFBVCxFQUFtQkMsUUFBbkIsRUFBNkJDLGNBQTdCLEVBQTZDQyxVQUE3QyxRQUErRCxhQUEvRDtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLEtBQU4sU0FBb0JMLGtCQUFrQixDQUFDRCxZQUFZLENBQUNMLFVBQUQsQ0FBYixDQUF0QyxDQUFpRTtBQUNyRCxhQUFOWSxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMLEdBQUcsTUFBTUEsTUFESixFQUVMO0FBQ0FkLElBQUFBLEdBQUcsOC9DQUhFLEVBbUhMSSxJQW5ISyxFQW9ITEQsUUFwSEssQ0FBUDtBQXNIRDs7QUFFb0IsYUFBVlksVUFBVSxHQUFHO0FBQ3RCLFdBQU8sRUFDTCxHQUFHLE1BQU1BLFVBREo7O0FBRUw7QUFDQUMsTUFBQUEsS0FBSyxFQUFFO0FBQUVDLFFBQUFBLElBQUksRUFBRUM7QUFBUjtBQUhGLEtBQVA7QUFLRDs7QUFFREMsRUFBQUEsV0FBVyxHQUFHO0FBQ1o7QUFDQSxTQUFLQyxXQUFMLEdBQW1CO0FBQ2pCQyxNQUFBQSxLQUFLLEVBQUUsQ0FBQyxHQUFEO0FBRFUsS0FBbkI7QUFHQSxTQUFLTCxLQUFMLEdBQWEsS0FBYjtBQUNEOztBQUVETSxFQUFBQSxNQUFNLEdBQUc7QUFDUCxVQUFNQyxPQUFPLEdBQUc7QUFDZEMsTUFBQUEsR0FBRyxFQUFFLElBRFM7QUFFZHBCLE1BQUFBLElBQUksRUFBRSxJQUZRO0FBR2RxQixNQUFBQSxLQUFLLEVBQUUsQ0FBQyxLQUFLQyxTQUFOLEtBQW9CLEtBQUtDLE1BQUwsSUFBZSxLQUFLQyxNQUF4QztBQUhPLEtBQWhCO0FBS0EsVUFBTUMsS0FBSyxHQUFHcEIsUUFBUSxDQUFDLEtBQUtxQixLQUFOLENBQXRCO0FBQ0EsV0FBTzdCLElBQUksZ0JBQ0lJLFFBQVEsQ0FBQ2tCLE9BQUQsQ0FEWixNQUVMLENBQUMsS0FBS0csU0FBTixLQUFvQixLQUFLQyxNQUFMLElBQWUsS0FBS0MsTUFBeEMsSUFDRTNCLElBQUksd0JBQXdCLEtBQUswQixNQUFMLEdBQWNyQixJQUFJLENBQUMsY0FBRCxDQUFsQixHQUFxQ0EsSUFBSSxDQUFDLGNBQUQsQ0FBakUsUUFETixHQUVFTCxJQUFJLGdCQUNZSSxRQUFRLENBQUM7QUFBRUYsTUFBQUEsUUFBUSxFQUFFLEtBQUt1QjtBQUFqQixLQUFELENBRHBCLEtBQ3VELEtBQUtLLFlBQUwsRUFEdkQsc0JBRVkxQixRQUFRLENBQUM7QUFBRTJCLE1BQUFBLEtBQUssRUFBRSxJQUFUO0FBQWU3QixNQUFBQSxRQUFRLEVBQUUsS0FBS3VCO0FBQTlCLEtBQUQsQ0FGcEIsMkNBSXFCaEIsUUFBUSxDQUFDLEtBQUtvQixLQUFOLENBSjdCLDhCQUt5QmxCLFVBQVUsQ0FBQyxLQUFLa0IsS0FBTixDQUxuQywwQ0FPMkJuQixjQUFjLENBQUMsS0FBS21CLEtBQU4sQ0FQekMsNkJBU1l6QixRQUFRLENBQUM7QUFBRTRCLE1BQUFBLElBQUksRUFBRSxJQUFSO0FBQWM5QixNQUFBQSxRQUFRLEVBQUUsS0FBS3VCO0FBQTdCLEtBQUQsQ0FUcEIsZ0NBV0lHLEtBQUssSUFBSSxJQUFULElBQWlCQSxLQUFLLENBQUNLLElBQU4sR0FBYUMsTUFBYixHQUFzQixDQUF2QyxHQUEyQ2xDLElBQUksc0RBQXNENEIsS0FBdEQsRUFBL0MsR0FBK0csRUFYbkgsV0FhRSxLQUFLYixLQUFMLEtBQWUsSUFBZixHQUFzQmYsSUFBSSwyQkFBMkIsS0FBS21DLGFBQUwsRUFBM0IsUUFBMUIsR0FBb0YsRUFidEYsVUFKRCxVQUFYO0FBc0JEOztBQXZLcUU7QUEwS3hFQyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLFFBQTdCLEVBQXVDMUIsS0FBdkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcbmltcG9ydCB7IGxpbmsgfSBmcm9tICcuLi9zdHlsZXMvbGluayc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSAnLi4vbGliL2kxOG4nO1xuaW1wb3J0IHsgSXRlbVJlc291cmNlIH0gZnJvbSAnLi4vbWl4aW5zL2l0ZW0tcmVzb3VyY2UnO1xuaW1wb3J0IHsgd2l0aFJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnLi4vbWl4aW5zL3dpdGgtcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7IGdldE93bmVyLCBnZXRUaXRsZSwgZ2V0RGVzY3JpcHRpb24sIGdldFZlcnNpb24gfSBmcm9tICcuLi9saWIvaXRlbSc7XG5cbi8qKlxuICogUm93IGNvbXBvbmVudFxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBhdHRyIHtQcm9taXNlPGFueT59IGl0ZW0gLSBBbiBpdGVtLlxuICogQGF0dHIge0Jvb2xlYW59IHNtYWxsIC0gV2hlbiB0cnVlLCBub3QgZGlzcGxheSBsYWJlbHNcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXJvdy1ob3Zlci0tYmdjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlciwgI2ZhZmFmYSldIC0gSG9vdmVyIGJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXJvdy1ob3Zlci0tdHJmLXR5PTBweF0gLSBIb292ZXIgdHJhbnNmb3JtIHRyYW5zbGF0ZVlcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXJvdy1pbWFnZS0taD0zNXB4XSAtIEltYWdlIGhlaWdodFxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3Ytcm93LWltYWdlLS13PTM1cHhdIC0gSW1hZ2Ugd2lkdGhcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlJvdyBleHRlbmRzIHdpdGhSZXNpemVPYnNlcnZlcihJdGVtUmVzb3VyY2UoTGl0RWxlbWVudCkpIHtcbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnN1cGVyLnN0eWxlcyxcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgLS1ob3Zlci1iZ2M6IHZhcigtLWd2LXJvdy1ob3Zlci0tYmdjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXIsICNmYWZhZmEpKTtcbiAgICAgICAgICAtLXRyZi10eTogdmFyKC0tZ3Ytcm93LWhvdmVyLS10cmYtdHksIDBweCk7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbX2ludmlzaWJsZV0pIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdyB7XG4gICAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3c6aG92ZXIge1xuICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiAtd2Via2l0LXRyYW5zbGF0ZVkodmFyKC0tdHJmLXR5KSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLXRyZi10eSkpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhvdmVyLWJnYyk7XG4gICAgICAgIH1cblxuICAgICAgICAucm93Om5vdCguZXJyb3IpIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogY2FsYyh2YXIoLS1ndi1yb3ctaW1hZ2UtLXcsIDM1cHgpICsgNXB4KSBhdXRvIGZpdC1jb250ZW50KDIwJSk7XG4gICAgICAgICAgZ3JpZC1nYXA6IDEwcHg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFt3LWx0LTQ1MF0pIC5tZXRhIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdyAubmFtZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdyAubmFtZSxcbiAgICAgICAgLnJvdyAubWV0YV9fb3duZXIge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cgLnZlcnNpb24ge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdyAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgIC0tbGg6IDEuNHJlbTtcbiAgICAgICAgICAtLW1heC1saW5lczogMjtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKHZhcigtLWxoKSAqIHZhcigtLW1heC1saW5lcykpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saCk7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICB0ZXh0LWFmdGVyLW92ZXJmbG93OiAnLi4uJztcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cgLm1ldGEge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAucm93IC5tZXRhX19vd25lciB7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpO1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMTZweDtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjZDlkOWQ5KTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdyAubWV0YV9fdGFncyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5za2VsZXRvbiB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogMC41cztcbiAgICAgICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmVycm9yIHtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWRlbnRpdHktcGljdHVyZSB7XG4gICAgICAgICAgaGVpZ2h0OiB2YXIoLS1ndi1yb3ctaW1hZ2UtLWgsIDM1cHgpO1xuICAgICAgICAgIHdpZHRoOiB2YXIoLS1ndi1yb3ctaW1hZ2UtLXcsIDM1cHgpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgICAgLS1ndi1pbWFnZS0tb2Y6IGNvbnRhaW47XG4gICAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBoMyB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdyA+IC5ncm91cCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG4gICAgICBgLFxuICAgICAgbGluayxcbiAgICAgIHNrZWxldG9uLFxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLnByb3BlcnRpZXMsXG4gICAgICAvKiogQHJlcXVpcmVkICovXG4gICAgICBzbWFsbDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5icmVha3BvaW50cyA9IHtcbiAgICAgIHdpZHRoOiBbNDUwXSxcbiAgICB9O1xuICAgIHRoaXMuc21hbGwgPSBmYWxzZTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgcm93OiB0cnVlLFxuICAgICAgbGluazogdHJ1ZSxcbiAgICAgIGVycm9yOiAhdGhpcy5fc2tlbGV0b24gJiYgKHRoaXMuX2Vycm9yIHx8IHRoaXMuX2VtcHR5KSxcbiAgICB9O1xuICAgIGNvbnN0IG93bmVyID0gZ2V0T3duZXIodGhpcy5faXRlbSk7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPSR7Y2xhc3NNYXAoY2xhc3Nlcyl9PlxuICAgICAgICAkeyF0aGlzLl9za2VsZXRvbiAmJiAodGhpcy5fZXJyb3IgfHwgdGhpcy5fZW1wdHkpXG4gICAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+JHt0aGlzLl9lcnJvciA/IGkxOG4oJ2d2LXJvdy5lcnJvcicpIDogaTE4bignZ3Ytcm93LmVtcHR5Jyl9PC9kaXY+YFxuICAgICAgICAgIDogaHRtbGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24gfSl9XCI+JHt0aGlzLl9yZW5kZXJJbWFnZSgpfTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IGdyb3VwOiB0cnVlLCBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24gfSl9XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJuYW1lXCI+JHtnZXRUaXRsZSh0aGlzLl9pdGVtKX08L2gzPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZlcnNpb25cIj4ke2dldFZlcnNpb24odGhpcy5faXRlbSl9PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+JHtnZXREZXNjcmlwdGlvbih0aGlzLl9pdGVtKX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgbWV0YTogdHJ1ZSwgc2tlbGV0b246IHRoaXMuX3NrZWxldG9uIH0pfVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRhX19vd25lclwiPlxuICAgICAgICAgICAgICAgICAgJHtvd25lciAhPSBudWxsICYmIG93bmVyLnRyaW0oKS5sZW5ndGggPiAwID8gaHRtbGA8Z3YtaWNvbiBzaGFwZT1cImdlbmVyYWw6dXNlclwiIHNpemU9XCI4cHhcIj48L2d2LWljb24+JHtvd25lcn1gIDogJyd9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgJHt0aGlzLnNtYWxsICE9PSB0cnVlID8gaHRtbGA8ZGl2IGNsYXNzPVwibWV0YV9fdGFnc1wiPiR7dGhpcy5fcmVuZGVyTGFiZWxzKCl9PC9kaXY+YCA6ICcnfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGB9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXJvdycsIEd2Um93KTtcbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1yb3cuanMiXSwibmFtZXMiOlsiY3NzIiwiaHRtbCIsIkxpdEVsZW1lbnQiLCJza2VsZXRvbiIsImxpbmsiLCJjbGFzc01hcCIsImkxOG4iLCJJdGVtUmVzb3VyY2UiLCJ3aXRoUmVzaXplT2JzZXJ2ZXIiLCJnZXRPd25lciIsImdldFRpdGxlIiwiZ2V0RGVzY3JpcHRpb24iLCJnZXRWZXJzaW9uIiwiR3ZSb3ciLCJzdHlsZXMiLCJwcm9wZXJ0aWVzIiwic21hbGwiLCJ0eXBlIiwiQm9vbGVhbiIsImNvbnN0cnVjdG9yIiwiYnJlYWtwb2ludHMiLCJ3aWR0aCIsInJlbmRlciIsImNsYXNzZXMiLCJyb3ciLCJlcnJvciIsIl9za2VsZXRvbiIsIl9lcnJvciIsIl9lbXB0eSIsIm93bmVyIiwiX2l0ZW0iLCJfcmVuZGVySW1hZ2UiLCJncm91cCIsIm1ldGEiLCJ0cmltIiwibGVuZ3RoIiwiX3JlbmRlckxhYmVscyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLElBQWQsRUFBb0JDLFVBQXBCLFFBQXNDLGFBQXRDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixvQkFBekI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGdCQUFyQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsK0JBQXpCO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixhQUFyQjtBQUNBLFNBQVNDLFlBQVQsUUFBNkIseUJBQTdCO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsZ0NBQW5DO0FBQ0EsU0FBU0MsUUFBVCxFQUFtQkMsUUFBbkIsRUFBNkJDLGNBQTdCLEVBQTZDQyxVQUE3QyxRQUErRCxhQUEvRDtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLEtBQU4sU0FBb0JMLGtCQUFrQixDQUFDRCxZQUFZLENBQUNMLFVBQUQsQ0FBYixDQUF0QyxDQUFpRTtBQUNyRCxhQUFOWSxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMLEdBQUcsTUFBTUEsTUFESixFQUVMO0FBQ0FkLElBQUFBLEdBQUcsOC9DQUhFLEVBbUhMSSxJQW5ISyxFQW9ITEQsUUFwSEssQ0FBUDtBQXNIRDs7QUFFb0IsYUFBVlksVUFBVSxHQUFHO0FBQ3RCLFdBQU8sRUFDTCxHQUFHLE1BQU1BLFVBREo7O0FBRUw7QUFDQUMsTUFBQUEsS0FBSyxFQUFFO0FBQUVDLFFBQUFBLElBQUksRUFBRUM7QUFBUjtBQUhGLEtBQVA7QUFLRDs7QUFFREMsRUFBQUEsV0FBVyxHQUFHO0FBQ1o7QUFDQSxTQUFLQyxXQUFMLEdBQW1CO0FBQ2pCQyxNQUFBQSxLQUFLLEVBQUUsQ0FBQyxHQUFEO0FBRFUsS0FBbkI7QUFHQSxTQUFLTCxLQUFMLEdBQWEsS0FBYjtBQUNEOztBQUVETSxFQUFBQSxNQUFNLEdBQUc7QUFDUCxVQUFNQyxPQUFPLEdBQUc7QUFDZEMsTUFBQUEsR0FBRyxFQUFFLElBRFM7QUFFZHBCLE1BQUFBLElBQUksRUFBRSxJQUZRO0FBR2RxQixNQUFBQSxLQUFLLEVBQUUsQ0FBQyxLQUFLQyxTQUFOLEtBQW9CLEtBQUtDLE1BQUwsSUFBZSxLQUFLQyxNQUF4QztBQUhPLEtBQWhCO0FBS0EsVUFBTUMsS0FBSyxHQUFHcEIsUUFBUSxDQUFDLEtBQUtxQixLQUFOLENBQXRCO0FBQ0EsV0FBTzdCLElBQUksZ0JBQ0lJLFFBQVEsQ0FBQ2tCLE9BQUQsQ0FEWixNQUVMLENBQUMsS0FBS0csU0FBTixLQUFvQixLQUFLQyxNQUFMLElBQWUsS0FBS0MsTUFBeEMsSUFDRTNCLElBQUksd0JBQXdCLEtBQUswQixNQUFMLEdBQWNyQixJQUFJLENBQUMsY0FBRCxDQUFsQixHQUFxQ0EsSUFBSSxDQUFDLGNBQUQsQ0FBakUsUUFETixHQUVFTCxJQUFJLGdCQUNZSSxRQUFRLENBQUM7QUFBRUYsTUFBQUEsUUFBUSxFQUFFLEtBQUt1QjtBQUFqQixLQUFELENBRHBCLEtBQ3VELEtBQUtLLFlBQUwsRUFEdkQsc0JBRVkxQixRQUFRLENBQUM7QUFBRTJCLE1BQUFBLEtBQUssRUFBRSxJQUFUO0FBQWU3QixNQUFBQSxRQUFRLEVBQUUsS0FBS3VCO0FBQTlCLEtBQUQsQ0FGcEIsMkNBSXFCaEIsUUFBUSxDQUFDLEtBQUtvQixLQUFOLENBSjdCLDhCQUt5QmxCLFVBQVUsQ0FBQyxLQUFLa0IsS0FBTixDQUxuQywwQ0FPMkJuQixjQUFjLENBQUMsS0FBS21CLEtBQU4sQ0FQekMsNkJBU1l6QixRQUFRLENBQUM7QUFBRTRCLE1BQUFBLElBQUksRUFBRSxJQUFSO0FBQWM5QixNQUFBQSxRQUFRLEVBQUUsS0FBS3VCO0FBQTdCLEtBQUQsQ0FUcEIsZ0NBV0lHLEtBQUssSUFBSSxJQUFULElBQWlCQSxLQUFLLENBQUNLLElBQU4sR0FBYUMsTUFBYixHQUFzQixDQUF2QyxHQUEyQ2xDLElBQUksc0RBQXNENEIsS0FBdEQsRUFBL0MsR0FBK0csRUFYbkgsV0FhRSxLQUFLYixLQUFMLEtBQWUsSUFBZixHQUFzQmYsSUFBSSwyQkFBMkIsS0FBS21DLGFBQUwsRUFBM0IsUUFBMUIsR0FBb0YsRUFidEYsVUFKRCxVQUFYO0FBc0JEOztBQXZLcUU7QUEwS3hFQyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLFFBQTdCLEVBQXVDMUIsS0FBdkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0LWVsZW1lbnQnO1xuaW1wb3J0IHsgc2tlbGV0b24gfSBmcm9tICcuLi9zdHlsZXMvc2tlbGV0b24nO1xuaW1wb3J0IHsgbGluayB9IGZyb20gJy4uL3N0eWxlcy9saW5rJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IEl0ZW1SZXNvdXJjZSB9IGZyb20gJy4uL21peGlucy9pdGVtLXJlc291cmNlJztcbmltcG9ydCB7IHdpdGhSZXNpemVPYnNlcnZlciB9IGZyb20gJy4uL21peGlucy93aXRoLXJlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQgeyBnZXRPd25lciwgZ2V0VGl0bGUsIGdldERlc2NyaXB0aW9uLCBnZXRWZXJzaW9uIH0gZnJvbSAnLi4vbGliL2l0ZW0nO1xuXG4vKipcbiAqIFJvdyBjb21wb25lbnRcbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiBAYXR0ciB7UHJvbWlzZTxhbnk+fSBpdGVtIC0gQW4gaXRlbS5cbiAqIEBhdHRyIHtCb29sZWFufSBzbWFsbCAtIFdoZW4gdHJ1ZSwgbm90IGRpc3BsYXkgbGFiZWxzXG4gKlxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1yb3ctaG92ZXItLWJnYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXIsICNmYWZhZmEpXSAtIEhvb3ZlciBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1yb3ctaG92ZXItLXRyZi10eT0wcHhdIC0gSG9vdmVyIHRyYW5zZm9ybSB0cmFuc2xhdGVZXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1yb3ctaW1hZ2UtLWg9MzVweF0gLSBJbWFnZSBoZWlnaHRcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXJvdy1pbWFnZS0tdz0zNXB4XSAtIEltYWdlIHdpZHRoXG4gKlxuICovXG5leHBvcnQgY2xhc3MgR3ZSb3cgZXh0ZW5kcyB3aXRoUmVzaXplT2JzZXJ2ZXIoSXRlbVJlc291cmNlKExpdEVsZW1lbnQpKSB7XG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5zdXBlci5zdHlsZXMsXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIC0taG92ZXItYmdjOiB2YXIoLS1ndi1yb3ctaG92ZXItLWJnYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVyLCAjZmFmYWZhKSk7XG4gICAgICAgICAgLS10cmYtdHk6IHZhcigtLWd2LXJvdy1ob3Zlci0tdHJmLXR5LCAwcHgpO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW19pbnZpc2libGVdKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cge1xuICAgICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAucm93OmhvdmVyIHtcbiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogLXdlYmtpdC10cmFuc2xhdGVZKHZhcigtLXRyZi10eSkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS10cmYtdHkpKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ob3Zlci1iZ2MpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdzpub3QoLmVycm9yKSB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGNhbGModmFyKC0tZ3Ytcm93LWltYWdlLS13LCAzNXB4KSArIDVweCkgYXV0byBmaXQtY29udGVudCgyMCUpO1xuICAgICAgICAgIGdyaWQtZ2FwOiAxMHB4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbdy1sdC00NTBdKSAubWV0YSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cgLm5hbWUge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cgLm5hbWUsXG4gICAgICAgIC5yb3cgLm1ldGFfX293bmVyIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAucm93IC52ZXJzaW9uIHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjZDlkOWQ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cgLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAtLWxoOiAxLjRyZW07XG4gICAgICAgICAgLS1tYXgtbGluZXM6IDI7XG4gICAgICAgICAgbWF4LWhlaWdodDogY2FsYyh2YXIoLS1saCkgKiB2YXIoLS1tYXgtbGluZXMpKTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tbGgpO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgdGV4dC1hZnRlci1vdmVyZmxvdzogJy4uLic7XG4gICAgICAgIH1cblxuICAgICAgICAucm93IC5tZXRhIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdyAubWV0YV9fb3duZXIge1xuICAgICAgICAgIC0tZ3YtaWNvbi0tYzogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjZDlkOWQ5KTtcbiAgICAgICAgICAtLWd2LWljb24tLXM6IDE2cHg7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2Q5ZDlkOSk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cgLm1ldGFfX3RhZ3Mge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuc2tlbGV0b24ge1xuICAgICAgICAgIHRyYW5zaXRpb246IDAuNXM7XG4gICAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5lcnJvciB7XG4gICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWlkZW50aXR5LXBpY3R1cmUge1xuICAgICAgICAgIGhlaWdodDogdmFyKC0tZ3Ytcm93LWltYWdlLS1oLCAzNXB4KTtcbiAgICAgICAgICB3aWR0aDogdmFyKC0tZ3Ytcm93LWltYWdlLS13LCAzNXB4KTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICAgIC0tZ3YtaW1hZ2UtLW9mOiBjb250YWluO1xuICAgICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cgPiAuZ3JvdXAge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICAgIGxpbmssXG4gICAgICBza2VsZXRvbixcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdXBlci5wcm9wZXJ0aWVzLFxuICAgICAgLyoqIEByZXF1aXJlZCAqL1xuICAgICAgc21hbGw6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYnJlYWtwb2ludHMgPSB7XG4gICAgICB3aWR0aDogWzQ1MF0sXG4gICAgfTtcbiAgICB0aGlzLnNtYWxsID0gZmFsc2U7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgIHJvdzogdHJ1ZSxcbiAgICAgIGxpbms6IHRydWUsXG4gICAgICBlcnJvcjogIXRoaXMuX3NrZWxldG9uICYmICh0aGlzLl9lcnJvciB8fCB0aGlzLl9lbXB0eSksXG4gICAgfTtcbiAgICBjb25zdCBvd25lciA9IGdldE93bmVyKHRoaXMuX2l0ZW0pO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz0ke2NsYXNzTWFwKGNsYXNzZXMpfT5cbiAgICAgICAgJHshdGhpcy5fc2tlbGV0b24gJiYgKHRoaXMuX2Vycm9yIHx8IHRoaXMuX2VtcHR5KVxuICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPiR7dGhpcy5fZXJyb3IgPyBpMThuKCdndi1yb3cuZXJyb3InKSA6IGkxOG4oJ2d2LXJvdy5lbXB0eScpfTwvZGl2PmBcbiAgICAgICAgICA6IGh0bWxgXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgc2tlbGV0b246IHRoaXMuX3NrZWxldG9uIH0pfVwiPiR7dGhpcy5fcmVuZGVySW1hZ2UoKX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBncm91cDogdHJ1ZSwgc2tlbGV0b246IHRoaXMuX3NrZWxldG9uIH0pfVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibmFtZVwiPiR7Z2V0VGl0bGUodGhpcy5faXRlbSl9PC9oMz5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJzaW9uXCI+JHtnZXRWZXJzaW9uKHRoaXMuX2l0ZW0pfTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPiR7Z2V0RGVzY3JpcHRpb24odGhpcy5faXRlbSl9PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IG1ldGE6IHRydWUsIHNrZWxldG9uOiB0aGlzLl9za2VsZXRvbiB9KX1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YV9fb3duZXJcIj5cbiAgICAgICAgICAgICAgICAgICR7b3duZXIgIT0gbnVsbCAmJiBvd25lci50cmltKCkubGVuZ3RoID4gMCA/IGh0bWxgPGd2LWljb24gc2hhcGU9XCJnZW5lcmFsOnVzZXJcIiBzaXplPVwiOHB4XCI+PC9ndi1pY29uPiR7b3duZXJ9YCA6ICcnfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICR7dGhpcy5zbWFsbCAhPT0gdHJ1ZSA/IGh0bWxgPGRpdiBjbGFzcz1cIm1ldGFfX3RhZ3NcIj4ke3RoaXMuX3JlbmRlckxhYmVscygpfTwvZGl2PmAgOiAnJ31cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1yb3cnLCBHdlJvdyk7XG4iXX0=
@@ -13,11 +13,11 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, html, LitElement } from 'lit';
16
+ import { css, html, LitElement } from 'lit-element';
17
17
  import '../atoms/gv-button';
18
18
  import '../atoms/gv-tag';
19
- import { repeat } from 'lit/directives/repeat';
20
- import { classMap } from 'lit/directives/class-map';
19
+ import { repeat } from 'lit-html/directives/repeat';
20
+ import { classMap } from 'lit-html/directives/class-map';
21
21
  import { i18n } from '../lib/i18n';
22
22
  import { withSkeletonAttribute } from '../mixins/with-skeleton-attribute';
23
23
  /**
@@ -93,4 +93,4 @@ export class GvStats extends withSkeletonAttribute(LitElement) {
93
93
 
94
94
  }
95
95
  window.customElements.define('gv-stats', GvStats);
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1zdGF0cy5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsInJlcGVhdCIsImNsYXNzTWFwIiwiaTE4biIsIndpdGhTa2VsZXRvbkF0dHJpYnV0ZSIsIkd2U3RhdHMiLCJwcm9wZXJ0aWVzIiwic3RhdHMiLCJ0eXBlIiwiT2JqZWN0Iiwib3B0aW9ucyIsIkFycmF5Iiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJfc2tlbGV0b25BdHRyaWJ1dGUiLCJfZ2V0U3RhdCIsIm9wdGlvbiIsInZhbHVlIiwiTWF0aCIsInJvdW5kIiwia2V5IiwiaXNOYU4iLCJmYWxsYmFjayIsImZpbmQiLCJsYWJlbCIsImNvbG9yIiwidW5pdCIsInJlbmRlciIsIl9lcnJvciIsIl9lbXB0eSIsInNrZWxldG9uIiwiX3NrZWxldG9uIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsSUFBZCxFQUFvQkMsVUFBcEIsUUFBc0MsS0FBdEM7QUFDQSxPQUFPLG9CQUFQO0FBQ0EsT0FBTyxpQkFBUDtBQUNBLFNBQVNDLE1BQVQsUUFBdUIsdUJBQXZCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwwQkFBekI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGFBQXJCO0FBQ0EsU0FBU0MscUJBQVQsUUFBc0MsbUNBQXRDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsT0FBTixTQUFzQkQscUJBQXFCLENBQUNKLFVBQUQsQ0FBM0MsQ0FBd0Q7QUFDeEMsYUFBVk0sVUFBVSxHQUFHO0FBQ3RCLFdBQU87QUFDTEMsTUFBQUEsS0FBSyxFQUFFO0FBQUVDLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQURGO0FBRUxDLE1BQUFBLE9BQU8sRUFBRTtBQUFFRixRQUFBQSxJQUFJLEVBQUVHO0FBQVI7QUFGSixLQUFQO0FBSUQ7O0FBRWdCLGFBQU5DLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0wsR0FBRyxNQUFNQSxNQURKLEVBRUw7QUFDQWQsSUFBQUEsR0FBRyxzUUFIRSxDQUFQO0FBOEJEOztBQUVEZSxFQUFBQSxXQUFXLEdBQUc7QUFDWjtBQUNBLFNBQUtDLGtCQUFMLEdBQTBCLE9BQTFCO0FBQ0Q7O0FBRURDLEVBQUFBLFFBQVEsQ0FBQ0MsTUFBRCxFQUFTO0FBQ2YsUUFBSSxDQUFDLEtBQUtULEtBQVYsRUFBaUI7QUFDZixhQUFPLGFBQVA7QUFDRDs7QUFDRCxRQUFJVSxLQUFLLEdBQUdDLElBQUksQ0FBQ0MsS0FBTCxDQUFXLEtBQUtaLEtBQUwsQ0FBV1MsTUFBTSxDQUFDSSxHQUFsQixDQUFYLENBQVo7O0FBQ0EsUUFBSUMsS0FBSyxDQUFDSixLQUFELENBQVQsRUFBa0I7QUFDaEJBLE1BQUFBLEtBQUssR0FBRyxDQUFSO0FBQ0Q7O0FBQ0QsUUFBSUEsS0FBSyxLQUFLLENBQVYsSUFBZUQsTUFBTSxDQUFDTSxRQUExQixFQUFvQztBQUNsQyxZQUFNQSxRQUFRLEdBQUdOLE1BQU0sQ0FBQ00sUUFBUCxDQUFnQkMsSUFBaEIsQ0FBc0JELFFBQUQsSUFBY0osSUFBSSxDQUFDQyxLQUFMLENBQVcsS0FBS1osS0FBTCxDQUFXZSxRQUFRLENBQUNGLEdBQXBCLENBQVgsSUFBdUMsQ0FBMUUsQ0FBakI7O0FBQ0EsVUFBSUUsUUFBSixFQUFjO0FBQ1pOLFFBQUFBLE1BQU0sQ0FBQ0ksR0FBUCxHQUFhRSxRQUFRLENBQUNGLEdBQXRCO0FBQ0FKLFFBQUFBLE1BQU0sQ0FBQ1EsS0FBUCxHQUFlRixRQUFRLENBQUNFLEtBQXhCO0FBQ0FQLFFBQUFBLEtBQUssR0FBR0MsSUFBSSxDQUFDQyxLQUFMLENBQVcsS0FBS1osS0FBTCxDQUFXUyxNQUFNLENBQUNJLEdBQWxCLENBQVgsQ0FBUjtBQUNEO0FBQ0Y7O0FBRUQsV0FBT3JCLElBQUksOENBQ29DaUIsTUFBTSxDQUFDUyxLQUQzQywrQkFFb0JSLEtBRnBCLEdBRTRCRCxNQUFNLENBQUNVLElBRm5DLG1DQUdvQlYsTUFBTSxDQUFDUSxLQUFQLElBQWdCUixNQUFNLENBQUNJLEdBSDNDLGdCQUFYO0FBTUQ7O0FBRURPLEVBQUFBLE1BQU0sR0FBRztBQUNQLFFBQUksS0FBS0MsTUFBVCxFQUFpQjtBQUNmLGFBQU83QixJQUFJLHNCQUFzQkksSUFBSSxDQUFDLGdCQUFELENBQTFCLFFBQVg7QUFDRDs7QUFDRCxRQUFJLEtBQUswQixNQUFULEVBQWlCO0FBQ2YsYUFBTzlCLElBQUksc0JBQXNCSSxJQUFJLENBQUMsZ0JBQUQsQ0FBMUIsUUFBWDtBQUNEOztBQUNELFdBQU9KLElBQUksZUFBZUcsUUFBUSxDQUFDO0FBQUVLLE1BQUFBLEtBQUssRUFBRSxJQUFUO0FBQWV1QixNQUFBQSxRQUFRLEVBQUUsS0FBS0M7QUFBOUIsS0FBRCxDQUF2QixNQUNQOUIsTUFBTSxDQUNOLEtBQUtTLE9BREMsRUFFTE0sTUFBRCxJQUFZQSxNQUZOLEVBR0xBLE1BQUQsSUFBWSxLQUFLRCxRQUFMLENBQWNDLE1BQWQsQ0FITixDQURDLFVBQVg7QUFPRDs7QUFyRjREO0FBd0YvRGdCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsVUFBN0IsRUFBeUM3QixPQUF6QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1idXR0b24nO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi10YWcnO1xuaW1wb3J0IHsgcmVwZWF0IH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVwZWF0JztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGkxOG4gfSBmcm9tICcuLi9saWIvaTE4bic7XG5pbXBvcnQgeyB3aXRoU2tlbGV0b25BdHRyaWJ1dGUgfSBmcm9tICcuLi9taXhpbnMvd2l0aC1za2VsZXRvbi1hdHRyaWJ1dGUnO1xuXG4vKipcbiAqIFN0YXRzIGNvbXBvbmVudFxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBhdHRyIHtPYmplY3R9IHN0YXRzIC0gVGhlIHN0YXRzIChjb3VudCBieSBrZXkpLiBLZXkgY2FuIGJlOiBjb3VudCwgbWluLCBtYXgsIGF2Zywgc3VtLCBycHMsIHJwbSBvciBycGguXG4gKiBAYXR0ciB7QXJyYXk8YW55Pn0gb3B0aW9ucyAtIFRoZSBsaXN0IG9mIG9wdGlvbnMgdG8gZGlzcGxheS5cbiAqL1xuZXhwb3J0IGNsYXNzIEd2U3RhdHMgZXh0ZW5kcyB3aXRoU2tlbGV0b25BdHRyaWJ1dGUoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgb3B0aW9uczogeyB0eXBlOiBBcnJheSB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uc3VwZXIuc3R5bGVzLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIC5zdGF0cyB7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdGF0cy1jb250YWluZXIge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICBtYXJnaW46IDE1cHg7XG4gICAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdGF0cy12YWx1ZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdGF0cy1sYWJlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9za2VsZXRvbkF0dHJpYnV0ZSA9ICdzdGF0cyc7XG4gIH1cblxuICBfZ2V0U3RhdChvcHRpb24pIHtcbiAgICBpZiAoIXRoaXMuc3RhdHMpIHtcbiAgICAgIHJldHVybiAnPGRpdj48L2Rpdj4nO1xuICAgIH1cbiAgICBsZXQgdmFsdWUgPSBNYXRoLnJvdW5kKHRoaXMuc3RhdHNbb3B0aW9uLmtleV0pO1xuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gMDtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSAwICYmIG9wdGlvbi5mYWxsYmFjaykge1xuICAgICAgY29uc3QgZmFsbGJhY2sgPSBvcHRpb24uZmFsbGJhY2suZmluZCgoZmFsbGJhY2spID0+IE1hdGgucm91bmQodGhpcy5zdGF0c1tmYWxsYmFjay5rZXldKSA+IDApO1xuICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgIG9wdGlvbi5rZXkgPSBmYWxsYmFjay5rZXk7XG4gICAgICAgIG9wdGlvbi5sYWJlbCA9IGZhbGxiYWNrLmxhYmVsO1xuICAgICAgICB2YWx1ZSA9IE1hdGgucm91bmQodGhpcy5zdGF0c1tvcHRpb24ua2V5XSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic3RhdHMtY29udGFpbmVyXCIgc3R5bGU9XCJjb2xvcjogJHtvcHRpb24uY29sb3J9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0cy12YWx1ZVwiPiR7dmFsdWV9JHtvcHRpb24udW5pdH08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLWxhYmVsXCI+JHtvcHRpb24ubGFiZWwgfHwgb3B0aW9uLmtleX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuX2Vycm9yKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZXJyb3JcIj4ke2kxOG4oJ2d2LXN0YXRzLmVycm9yJyl9PC9kaXY+YDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2VtcHR5KSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZW1wdHlcIj4ke2kxOG4oJ2d2LXN0YXRzLmVtcHR5Jyl9PC9kaXY+YDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBzdGF0czogdHJ1ZSwgc2tlbGV0b246IHRoaXMuX3NrZWxldG9uIH0pfVwiPlxuICAgICAgJHtyZXBlYXQoXG4gICAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLFxuICAgICAgICAob3B0aW9uKSA9PiB0aGlzLl9nZXRTdGF0KG9wdGlvbiksXG4gICAgICApfVxuICAgIDwvZGl2PiBgO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXN0YXRzJywgR3ZTdGF0cyk7XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1zdGF0cy5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsInJlcGVhdCIsImNsYXNzTWFwIiwiaTE4biIsIndpdGhTa2VsZXRvbkF0dHJpYnV0ZSIsIkd2U3RhdHMiLCJwcm9wZXJ0aWVzIiwic3RhdHMiLCJ0eXBlIiwiT2JqZWN0Iiwib3B0aW9ucyIsIkFycmF5Iiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJfc2tlbGV0b25BdHRyaWJ1dGUiLCJfZ2V0U3RhdCIsIm9wdGlvbiIsInZhbHVlIiwiTWF0aCIsInJvdW5kIiwia2V5IiwiaXNOYU4iLCJmYWxsYmFjayIsImZpbmQiLCJsYWJlbCIsImNvbG9yIiwidW5pdCIsInJlbmRlciIsIl9lcnJvciIsIl9lbXB0eSIsInNrZWxldG9uIiwiX3NrZWxldG9uIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsSUFBZCxFQUFvQkMsVUFBcEIsUUFBc0MsYUFBdEM7QUFDQSxPQUFPLG9CQUFQO0FBQ0EsT0FBTyxpQkFBUDtBQUNBLFNBQVNDLE1BQVQsUUFBdUIsNEJBQXZCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwrQkFBekI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGFBQXJCO0FBQ0EsU0FBU0MscUJBQVQsUUFBc0MsbUNBQXRDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsT0FBTixTQUFzQkQscUJBQXFCLENBQUNKLFVBQUQsQ0FBM0MsQ0FBd0Q7QUFDeEMsYUFBVk0sVUFBVSxHQUFHO0FBQ3RCLFdBQU87QUFDTEMsTUFBQUEsS0FBSyxFQUFFO0FBQUVDLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQURGO0FBRUxDLE1BQUFBLE9BQU8sRUFBRTtBQUFFRixRQUFBQSxJQUFJLEVBQUVHO0FBQVI7QUFGSixLQUFQO0FBSUQ7O0FBRWdCLGFBQU5DLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0wsR0FBRyxNQUFNQSxNQURKLEVBRUw7QUFDQWQsSUFBQUEsR0FBRyxzUUFIRSxDQUFQO0FBOEJEOztBQUVEZSxFQUFBQSxXQUFXLEdBQUc7QUFDWjtBQUNBLFNBQUtDLGtCQUFMLEdBQTBCLE9BQTFCO0FBQ0Q7O0FBRURDLEVBQUFBLFFBQVEsQ0FBQ0MsTUFBRCxFQUFTO0FBQ2YsUUFBSSxDQUFDLEtBQUtULEtBQVYsRUFBaUI7QUFDZixhQUFPLGFBQVA7QUFDRDs7QUFDRCxRQUFJVSxLQUFLLEdBQUdDLElBQUksQ0FBQ0MsS0FBTCxDQUFXLEtBQUtaLEtBQUwsQ0FBV1MsTUFBTSxDQUFDSSxHQUFsQixDQUFYLENBQVo7O0FBQ0EsUUFBSUMsS0FBSyxDQUFDSixLQUFELENBQVQsRUFBa0I7QUFDaEJBLE1BQUFBLEtBQUssR0FBRyxDQUFSO0FBQ0Q7O0FBQ0QsUUFBSUEsS0FBSyxLQUFLLENBQVYsSUFBZUQsTUFBTSxDQUFDTSxRQUExQixFQUFvQztBQUNsQyxZQUFNQSxRQUFRLEdBQUdOLE1BQU0sQ0FBQ00sUUFBUCxDQUFnQkMsSUFBaEIsQ0FBc0JELFFBQUQsSUFBY0osSUFBSSxDQUFDQyxLQUFMLENBQVcsS0FBS1osS0FBTCxDQUFXZSxRQUFRLENBQUNGLEdBQXBCLENBQVgsSUFBdUMsQ0FBMUUsQ0FBakI7O0FBQ0EsVUFBSUUsUUFBSixFQUFjO0FBQ1pOLFFBQUFBLE1BQU0sQ0FBQ0ksR0FBUCxHQUFhRSxRQUFRLENBQUNGLEdBQXRCO0FBQ0FKLFFBQUFBLE1BQU0sQ0FBQ1EsS0FBUCxHQUFlRixRQUFRLENBQUNFLEtBQXhCO0FBQ0FQLFFBQUFBLEtBQUssR0FBR0MsSUFBSSxDQUFDQyxLQUFMLENBQVcsS0FBS1osS0FBTCxDQUFXUyxNQUFNLENBQUNJLEdBQWxCLENBQVgsQ0FBUjtBQUNEO0FBQ0Y7O0FBRUQsV0FBT3JCLElBQUksOENBQ29DaUIsTUFBTSxDQUFDUyxLQUQzQywrQkFFb0JSLEtBRnBCLEdBRTRCRCxNQUFNLENBQUNVLElBRm5DLG1DQUdvQlYsTUFBTSxDQUFDUSxLQUFQLElBQWdCUixNQUFNLENBQUNJLEdBSDNDLGdCQUFYO0FBTUQ7O0FBRURPLEVBQUFBLE1BQU0sR0FBRztBQUNQLFFBQUksS0FBS0MsTUFBVCxFQUFpQjtBQUNmLGFBQU83QixJQUFJLHNCQUFzQkksSUFBSSxDQUFDLGdCQUFELENBQTFCLFFBQVg7QUFDRDs7QUFDRCxRQUFJLEtBQUswQixNQUFULEVBQWlCO0FBQ2YsYUFBTzlCLElBQUksc0JBQXNCSSxJQUFJLENBQUMsZ0JBQUQsQ0FBMUIsUUFBWDtBQUNEOztBQUNELFdBQU9KLElBQUksZUFBZUcsUUFBUSxDQUFDO0FBQUVLLE1BQUFBLEtBQUssRUFBRSxJQUFUO0FBQWV1QixNQUFBQSxRQUFRLEVBQUUsS0FBS0M7QUFBOUIsS0FBRCxDQUF2QixNQUNQOUIsTUFBTSxDQUNOLEtBQUtTLE9BREMsRUFFTE0sTUFBRCxJQUFZQSxNQUZOLEVBR0xBLE1BQUQsSUFBWSxLQUFLRCxRQUFMLENBQWNDLE1BQWQsQ0FITixDQURDLFVBQVg7QUFPRDs7QUFyRjREO0FBd0YvRGdCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsVUFBN0IsRUFBeUM3QixPQUF6QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWJ1dHRvbic7XG5pbXBvcnQgJy4uL2F0b21zL2d2LXRhZyc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL3JlcGVhdCc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGkxOG4gfSBmcm9tICcuLi9saWIvaTE4bic7XG5pbXBvcnQgeyB3aXRoU2tlbGV0b25BdHRyaWJ1dGUgfSBmcm9tICcuLi9taXhpbnMvd2l0aC1za2VsZXRvbi1hdHRyaWJ1dGUnO1xuXG4vKipcbiAqIFN0YXRzIGNvbXBvbmVudFxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBhdHRyIHtPYmplY3R9IHN0YXRzIC0gVGhlIHN0YXRzIChjb3VudCBieSBrZXkpLiBLZXkgY2FuIGJlOiBjb3VudCwgbWluLCBtYXgsIGF2Zywgc3VtLCBycHMsIHJwbSBvciBycGguXG4gKiBAYXR0ciB7QXJyYXk8YW55Pn0gb3B0aW9ucyAtIFRoZSBsaXN0IG9mIG9wdGlvbnMgdG8gZGlzcGxheS5cbiAqL1xuZXhwb3J0IGNsYXNzIEd2U3RhdHMgZXh0ZW5kcyB3aXRoU2tlbGV0b25BdHRyaWJ1dGUoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgb3B0aW9uczogeyB0eXBlOiBBcnJheSB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uc3VwZXIuc3R5bGVzLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIC5zdGF0cyB7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdGF0cy1jb250YWluZXIge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICBtYXJnaW46IDE1cHg7XG4gICAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdGF0cy12YWx1ZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdGF0cy1sYWJlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9za2VsZXRvbkF0dHJpYnV0ZSA9ICdzdGF0cyc7XG4gIH1cblxuICBfZ2V0U3RhdChvcHRpb24pIHtcbiAgICBpZiAoIXRoaXMuc3RhdHMpIHtcbiAgICAgIHJldHVybiAnPGRpdj48L2Rpdj4nO1xuICAgIH1cbiAgICBsZXQgdmFsdWUgPSBNYXRoLnJvdW5kKHRoaXMuc3RhdHNbb3B0aW9uLmtleV0pO1xuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gMDtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSAwICYmIG9wdGlvbi5mYWxsYmFjaykge1xuICAgICAgY29uc3QgZmFsbGJhY2sgPSBvcHRpb24uZmFsbGJhY2suZmluZCgoZmFsbGJhY2spID0+IE1hdGgucm91bmQodGhpcy5zdGF0c1tmYWxsYmFjay5rZXldKSA+IDApO1xuICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgIG9wdGlvbi5rZXkgPSBmYWxsYmFjay5rZXk7XG4gICAgICAgIG9wdGlvbi5sYWJlbCA9IGZhbGxiYWNrLmxhYmVsO1xuICAgICAgICB2YWx1ZSA9IE1hdGgucm91bmQodGhpcy5zdGF0c1tvcHRpb24ua2V5XSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic3RhdHMtY29udGFpbmVyXCIgc3R5bGU9XCJjb2xvcjogJHtvcHRpb24uY29sb3J9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0cy12YWx1ZVwiPiR7dmFsdWV9JHtvcHRpb24udW5pdH08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLWxhYmVsXCI+JHtvcHRpb24ubGFiZWwgfHwgb3B0aW9uLmtleX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuX2Vycm9yKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZXJyb3JcIj4ke2kxOG4oJ2d2LXN0YXRzLmVycm9yJyl9PC9kaXY+YDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2VtcHR5KSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZW1wdHlcIj4ke2kxOG4oJ2d2LXN0YXRzLmVtcHR5Jyl9PC9kaXY+YDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBzdGF0czogdHJ1ZSwgc2tlbGV0b246IHRoaXMuX3NrZWxldG9uIH0pfVwiPlxuICAgICAgJHtyZXBlYXQoXG4gICAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLFxuICAgICAgICAob3B0aW9uKSA9PiB0aGlzLl9nZXRTdGF0KG9wdGlvbiksXG4gICAgICApfVxuICAgIDwvZGl2PiBgO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXN0YXRzJywgR3ZTdGF0cyk7XG4iXX0=
@@ -13,9 +13,9 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, html, LitElement } from 'lit';
17
- import { repeat } from 'lit/directives/repeat';
18
- import { classMap } from 'lit/directives/class-map';
16
+ import { css, html, LitElement } from 'lit-element';
17
+ import { repeat } from 'lit-html/directives/repeat';
18
+ import { classMap } from 'lit-html/directives/class-map';
19
19
  import { link } from '../styles/link';
20
20
  import { dispatchCustomEvent } from '../lib/events';
21
21
  import { i18n } from '../lib/i18n';
@@ -141,4 +141,4 @@ export class GvStepper extends LitElement {
141
141
 
142
142
  }
143
143
  window.customElements.define('gv-stepper', GvStepper);
144
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1zdGVwcGVyLmpzIl0sIm5hbWVzIjpbImNzcyIsImh0bWwiLCJMaXRFbGVtZW50IiwicmVwZWF0IiwiY2xhc3NNYXAiLCJsaW5rIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImkxOG4iLCJHdlN0ZXBwZXIiLCJwcm9wZXJ0aWVzIiwiY3VycmVudCIsInR5cGUiLCJOdW1iZXIiLCJyZWZsZWN0Iiwic3RlcHMiLCJBcnJheSIsImRpc2FibGVkIiwiQm9vbGVhbiIsIl9lcnJvciIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiX3N0ZXBzIiwiX2VtcHR5IiwiX29uQ2xpY2siLCJpbmRleCIsInBlcmZvcm1VcGRhdGUiLCJQcm9taXNlIiwiYWxsIiwidGhlbiIsIm1hcCIsInN0ZXAiLCJfaW5kZXgiLCJwYXNzZWQiLCJ2YWxpZCIsImxlbmd0aCIsImNhdGNoIiwiX2dldEljb24iLCJpbnZhbGlkIiwiX2dldFN0ZXAiLCJjbGFzc2VzIiwiZmlyc3QiLCJlbmQiLCJjb250ZW50Q2xhc3NlcyIsImNvbnRlbnQiLCJiaW5kIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInJlbmRlciIsInN0ZXBwZXIiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxJQUFkLEVBQW9CQyxVQUFwQixRQUFzQyxLQUF0QztBQUNBLFNBQVNDLE1BQVQsUUFBdUIsdUJBQXZCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwwQkFBekI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGdCQUFyQjtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixhQUFyQjtBQUVBO0FB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S0FBcEIsQ0FIWCxDQURDLFVBQVg7QUFPRDs7QUFsUHVDO0FBcVAxQ3lCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsWUFBN0IsRUFBMkMzQyxTQUEzQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcmVwZWF0IH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVwZWF0JztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGxpbmsgfSBmcm9tICcuLi9zdHlsZXMvbGluayc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSAnLi4vbGliL2kxOG4nO1xuXG4vKipcbiAqIFN0ZXBwZXIgY29tcG9uZW50XG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGZpcmVzIGd2LXN0ZXBwZXI6Y2hhbmdlIC0gd2hlbiBzdGVwIGNoYW5nZVxuICpcbiAqIEBhdHRyIHtMZW5ndGh9IGN1cnJlbnQgLSBUaGUgY3VycmVudCBzZWxlY3RlZCBzdGVwXG4gKiBAYXR0ciB7QXJyYXl9IHN0ZXBzIC0gQXJyYXkgb2Ygc3RlcCB7dGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdmFsaWQ6IGJvb2xlYW4sIGludmFsaWQ6IGJvb2xlYW59XG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2Rpc2FibGVkPWZhbHNlXSAtIEluZGljYXRlIGlmIHN0ZXBwZXIgaXMgZGlzYWJsZWRcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXN0ZXBwZXItdmFsaWQtLWJnYz12YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCldIC0gVmFsaWQgYmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1zdGVwcGVyLXBhc3NlZC0tYmRjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKV0gLSBQYXNzZWQgYm9yZGVyIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXN0ZXBwZXItLWJnYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpXSAtIEJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3Ytc3RlcHBlci0tYmRjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZildIC0gQm9yZGVyIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXN0ZXBwZXItLWM9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjYmZiZmJmKV0gLSBDb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1zdGVwcGVyLXBhc3NlZC0tYz0jNTk1OTU5XSAtIFBhc3NlZCBjb2xvclxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3Ytc3RlcHBlci1pY29uLS1zPTMycHhdIC0gSGVpZ2h0IGFuZCBpY29uIHdpZHRoXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlN0ZXBwZXIgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjdXJyZW50OiB7IHR5cGU6IE51bWJlciwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgc3RlcHM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIGRpc2FibGVkOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIF9lcnJvcjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBsaW5rLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIC0tcGFzc2VkLS1iZ2M6IHZhcigtLWd2LXN0ZXBwZXItdmFsaWQtLWJnYywgdmFyKC0tZ3YtdGhlbWUtY29sb3IsICM1YTc2ODQpKTtcbiAgICAgICAgICAtLXBhc3NlZC0tYmRjOiB2YXIoLS1ndi1zdGVwcGVyLXBhc3NlZC0tYmRjLCB2YXIoLS1ndi10aGVtZS1jb2xvci1saWdodCwgIzg2YzNkMCkpO1xuICAgICAgICAgIC0tYmRjOiB2YXIoLS1ndi1zdGVwcGVyLS1iZGMsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZikpO1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi1zdGVwcGVyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZikpO1xuICAgICAgICAgIC0tcGFzc2VkLS1jOiB2YXIoLS1ndi1zdGVwcGVyLXBhc3NlZC0tYywgIzU5NTk1OSk7XG4gICAgICAgICAgLS1jOiB2YXIoLS1ndi1zdGVwcGVyLS1jLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdGVwcGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRpc2FibGVkIC5zdGVwIHtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN0ZXAge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuZ3JhcGgge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgICAgICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucm91bmQge1xuICAgICAgICAgIG1pbi13aWR0aDogNnB4O1xuICAgICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgICAgbWluLWhlaWdodDogNnB4O1xuICAgICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICBtYXJnaW46IDJweCA3cHggMnB4IDdweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3JkZXIge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdW5kIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgICAgICAuYm9yZGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZGMpO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhc3NlZCAucm91bmQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhc3NlZC0tYmdjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXNzZWQgLmJvcmRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFzc2VkLS1iZGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhc3NlZCAucm91bmQge1xuICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMHB4O1xuICAgICAgICAgIG1pbi13aWR0aDogMTBweDtcbiAgICAgICAgICBtYXJnaW46IDAgNXB4IDAgNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpcnN0IC5ib3JkZXI6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmVuZCAuYm9yZGVyOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLWwsIDE2cHgpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXNzZWQgLmNvbnRlbnQge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1wYXNzZWQtLWMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtbSwgMTRweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuZXJyb3Ige1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaXJjbGUge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXBhc3NlZC0tYmdjKTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtMTJweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgYW5pbWF0aW9uOiB2YWxpZGF0ZSAwLjJzIGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgICAgICAuaW52YWxpZC5jaXJjbGUge1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1wYXNzZWQtLWJnYyk7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiB2YXIoLS1ndi1zdGVwcGVyLWljb24tLXMsIDMycHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmludmFsaWQgZ3YtaWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi10aGVtZS1jb2xvci1kYW5nZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGtleWZyYW1lcyB2YWxpZGF0ZSB7XG4gICAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0byB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmN1cnJlbnQgPSAwO1xuICAgIHRoaXMuX3N0ZXBzID0gW107XG4gICAgdGhpcy5fZXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLl9lbXB0eSA9IHRydWU7XG4gIH1cblxuICBfb25DbGljayhpbmRleCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkICE9PSB0cnVlKSB7XG4gICAgICB0aGlzLmN1cnJlbnQgPSBpbmRleCArIDE7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2UnLCB7IGN1cnJlbnQ6IHRoaXMuY3VycmVudCB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBwZXJmb3JtVXBkYXRlKCkge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFt0aGlzLnN0ZXBzLCB0aGlzLmN1cnJlbnRdKVxuICAgICAgLnRoZW4oKFtzdGVwcywgY3VycmVudF0pID0+IHtcbiAgICAgICAgdGhpcy5fc3RlcHMgPSBzdGVwcy5tYXAoKHN0ZXAsIF9pbmRleCkgPT4ge1xuICAgICAgICAgIHN0ZXAucGFzc2VkID0gc3RlcC52YWxpZCA9PT0gdHJ1ZSB8fCAoY3VycmVudCA+IDAgJiYgX2luZGV4ICsgMSA8PSBjdXJyZW50KTtcbiAgICAgICAgICByZXR1cm4gc3RlcDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2Vycm9yID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2VtcHR5ID0gISh0aGlzLl9zdGVwcyAmJiB0aGlzLl9zdGVwcy5sZW5ndGggPiAwKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aGlzLl9lcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtcHR5ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICBzdXBlci5wZXJmb3JtVXBkYXRlKCk7XG4gIH1cblxuICBfZ2V0SWNvbihzdGVwKSB7XG4gICAgaWYgKHN0ZXAuaW52YWxpZCkge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImNpcmNsZSBpbnZhbGlkXCI+PGd2LWljb24gc2hhcGU9XCJjb2RlOmVycm9yXCI+PC9ndi1pY29uPjwvZGl2PmA7XG4gICAgfVxuICAgIGlmIChzdGVwLnZhbGlkKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiY2lyY2xlXCI+PGd2LWljb24gc2hhcGU9XCJjb2RlOmNoZWNrXCI+PC9ndi1pY29uPjwvZGl2PmA7XG4gICAgfVxuICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJyb3VuZFwiPjwvZGl2PmA7XG4gIH1cblxuICBfZ2V0U3RlcChzdGVwLCBpbmRleCkge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICBwYXNzZWQ6IHN0ZXAucGFzc2VkLFxuICAgICAgdmFsaWQ6IHN0ZXAudmFsaWQsXG4gICAgICBzdGVwOiB0cnVlLFxuICAgICAgZmlyc3Q6IGluZGV4ID09PSAwLFxuICAgICAgZW5kOiBpbmRleCA9PT0gdGhpcy5fc3RlcHMubGVuZ3RoIC0gMSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29udGVudENsYXNzZXMgPSB7XG4gICAgICBjb250ZW50OiB0cnVlLFxuICAgICAgbGluazogIXRoaXMuZGlzYWJsZWQsXG4gICAgfTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiIEBjbGljaz1cIiR7dGhpcy5fb25DbGljay5iaW5kKHRoaXMsIGluZGV4KX1cIiB0aXRsZT1cIiR7c3RlcC50aXRsZX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyYXBoXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlclwiPjwvZGl2PlxuICAgICAgICAgICR7dGhpcy5fZ2V0SWNvbihzdGVwKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjb250ZW50Q2xhc3Nlcyl9XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+JHtzdGVwLnRpdGxlfTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPiR7c3RlcC5kZXNjcmlwdGlvbn08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLl9lcnJvcikge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImVycm9yXCI+JHtpMThuKCdndi1zdGVwcGVyLmVycm9yJyl9PC9kaXY+YDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2VtcHR5KSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2PjwvZGl2PmA7XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzZXMgPSB7IHN0ZXBwZXI6IHRydWUsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH07XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICAke3JlcGVhdChcbiAgICAgICAgdGhpcy5fc3RlcHMsXG4gICAgICAgIChzdGVwKSA9PiBzdGVwLFxuICAgICAgICAoc3RlcCwgaW5kZXgpID0+IHRoaXMuX2dldFN0ZXAoc3RlcCwgaW5kZXgpLFxuICAgICAgKX1cbiAgICA8L2Rpdj4gYDtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1zdGVwcGVyJywgR3ZTdGVwcGVyKTtcbiJdfQ==
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1zdGVwcGVyLmpzIl0sIm5hbWVzIjpbImNzcyIsImh0bWwiLCJMaXRFbGVtZW50IiwicmVwZWF0IiwiY2xhc3NNYXAiLCJsaW5rIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImkxOG4iLCJHdlN0ZXBwZXIiLCJwcm9wZXJ0aWVzIiwiY3VycmVudCIsInR5cGUiLCJOdW1iZXIiLCJyZWZsZWN0Iiwic3RlcHMiLCJBcnJheSIsImRpc2FibGVkIiwiQm9vbGVhbiIsIl9lcnJvciIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiX3N0ZXBzIiwiX2VtcHR5IiwiX29uQ2xpY2siLCJpbmRleCIsInBlcmZvcm1VcGRhdGUiLCJQcm9taXNlIiwiYWxsIiwidGhlbiIsIm1hcCIsInN0ZXAiLCJfaW5kZXgiLCJwYXNzZWQiLCJ2YWxpZCIsImxlbmd0aCIsImNhdGNoIiwiX2dldEljb24iLCJpbnZhbGlkIiwiX2dldFN0ZXAiLCJjbGFzc2VzIiwiZmlyc3QiLCJlbmQiLCJjb250ZW50Q2xhc3NlcyIsImNvbnRlbnQiLCJiaW5kIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInJlbmRlciIsInN0ZXBwZXIiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxJQUFkLEVBQW9CQyxVQUFwQixRQUFzQyxhQUF0QztBQUNBLFNBQVNDLE1BQVQsUUFBdUIsNEJBQXZCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwrQkFBekI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGdCQUFyQjtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixhQUFyQjtBQUVBO0FB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S0FBcEIsQ0FIWCxDQURDLFVBQVg7QUFPRDs7QUFsUHVDO0FBcVAxQ3lCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsWUFBN0IsRUFBMkMzQyxTQUEzQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL3JlcGVhdCc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGxpbmsgfSBmcm9tICcuLi9zdHlsZXMvbGluayc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSAnLi4vbGliL2kxOG4nO1xuXG4vKipcbiAqIFN0ZXBwZXIgY29tcG9uZW50XG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGZpcmVzIGd2LXN0ZXBwZXI6Y2hhbmdlIC0gd2hlbiBzdGVwIGNoYW5nZVxuICpcbiAqIEBhdHRyIHtMZW5ndGh9IGN1cnJlbnQgLSBUaGUgY3VycmVudCBzZWxlY3RlZCBzdGVwXG4gKiBAYXR0ciB7QXJyYXl9IHN0ZXBzIC0gQXJyYXkgb2Ygc3RlcCB7dGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdmFsaWQ6IGJvb2xlYW4sIGludmFsaWQ6IGJvb2xlYW59XG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2Rpc2FibGVkPWZhbHNlXSAtIEluZGljYXRlIGlmIHN0ZXBwZXIgaXMgZGlzYWJsZWRcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXN0ZXBwZXItdmFsaWQtLWJnYz12YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCldIC0gVmFsaWQgYmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1zdGVwcGVyLXBhc3NlZC0tYmRjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKV0gLSBQYXNzZWQgYm9yZGVyIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXN0ZXBwZXItLWJnYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpXSAtIEJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3Ytc3RlcHBlci0tYmRjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZildIC0gQm9yZGVyIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXN0ZXBwZXItLWM9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjYmZiZmJmKV0gLSBDb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1zdGVwcGVyLXBhc3NlZC0tYz0jNTk1OTU5XSAtIFBhc3NlZCBjb2xvclxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3Ytc3RlcHBlci1pY29uLS1zPTMycHhdIC0gSGVpZ2h0IGFuZCBpY29uIHdpZHRoXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlN0ZXBwZXIgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjdXJyZW50OiB7IHR5cGU6IE51bWJlciwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgc3RlcHM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIGRpc2FibGVkOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIF9lcnJvcjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBsaW5rLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIC0tcGFzc2VkLS1iZ2M6IHZhcigtLWd2LXN0ZXBwZXItdmFsaWQtLWJnYywgdmFyKC0tZ3YtdGhlbWUtY29sb3IsICM1YTc2ODQpKTtcbiAgICAgICAgICAtLXBhc3NlZC0tYmRjOiB2YXIoLS1ndi1zdGVwcGVyLXBhc3NlZC0tYmRjLCB2YXIoLS1ndi10aGVtZS1jb2xvci1saWdodCwgIzg2YzNkMCkpO1xuICAgICAgICAgIC0tYmRjOiB2YXIoLS1ndi1zdGVwcGVyLS1iZGMsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZikpO1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi1zdGVwcGVyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZikpO1xuICAgICAgICAgIC0tcGFzc2VkLS1jOiB2YXIoLS1ndi1zdGVwcGVyLXBhc3NlZC0tYywgIzU5NTk1OSk7XG4gICAgICAgICAgLS1jOiB2YXIoLS1ndi1zdGVwcGVyLS1jLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdGVwcGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRpc2FibGVkIC5zdGVwIHtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN0ZXAge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuZ3JhcGgge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgICAgICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucm91bmQge1xuICAgICAgICAgIG1pbi13aWR0aDogNnB4O1xuICAgICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgICAgbWluLWhlaWdodDogNnB4O1xuICAgICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICBtYXJnaW46IDJweCA3cHggMnB4IDdweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3JkZXIge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdW5kIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgICAgICAuYm9yZGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZGMpO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhc3NlZCAucm91bmQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhc3NlZC0tYmdjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXNzZWQgLmJvcmRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGFzc2VkLS1iZGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhc3NlZCAucm91bmQge1xuICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMHB4O1xuICAgICAgICAgIG1pbi13aWR0aDogMTBweDtcbiAgICAgICAgICBtYXJnaW46IDAgNXB4IDAgNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpcnN0IC5ib3JkZXI6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmVuZCAuYm9yZGVyOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLWwsIDE2cHgpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXNzZWQgLmNvbnRlbnQge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1wYXNzZWQtLWMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtbSwgMTRweCk7XG4gICAgICAgIH1cblxuICAgICAgICAuZXJyb3Ige1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaXJjbGUge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXBhc3NlZC0tYmdjKTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtMTJweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgYW5pbWF0aW9uOiB2YWxpZGF0ZSAwLjJzIGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgICAgICAuaW52YWxpZC5jaXJjbGUge1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1wYXNzZWQtLWJnYyk7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiB2YXIoLS1ndi1zdGVwcGVyLWljb24tLXMsIDMycHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmludmFsaWQgZ3YtaWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi10aGVtZS1jb2xvci1kYW5nZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGtleWZyYW1lcyB2YWxpZGF0ZSB7XG4gICAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0byB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmN1cnJlbnQgPSAwO1xuICAgIHRoaXMuX3N0ZXBzID0gW107XG4gICAgdGhpcy5fZXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLl9lbXB0eSA9IHRydWU7XG4gIH1cblxuICBfb25DbGljayhpbmRleCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkICE9PSB0cnVlKSB7XG4gICAgICB0aGlzLmN1cnJlbnQgPSBpbmRleCArIDE7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2UnLCB7IGN1cnJlbnQ6IHRoaXMuY3VycmVudCB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBwZXJmb3JtVXBkYXRlKCkge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFt0aGlzLnN0ZXBzLCB0aGlzLmN1cnJlbnRdKVxuICAgICAgLnRoZW4oKFtzdGVwcywgY3VycmVudF0pID0+IHtcbiAgICAgICAgdGhpcy5fc3RlcHMgPSBzdGVwcy5tYXAoKHN0ZXAsIF9pbmRleCkgPT4ge1xuICAgICAgICAgIHN0ZXAucGFzc2VkID0gc3RlcC52YWxpZCA9PT0gdHJ1ZSB8fCAoY3VycmVudCA+IDAgJiYgX2luZGV4ICsgMSA8PSBjdXJyZW50KTtcbiAgICAgICAgICByZXR1cm4gc3RlcDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2Vycm9yID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2VtcHR5ID0gISh0aGlzLl9zdGVwcyAmJiB0aGlzLl9zdGVwcy5sZW5ndGggPiAwKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aGlzLl9lcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtcHR5ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICBzdXBlci5wZXJmb3JtVXBkYXRlKCk7XG4gIH1cblxuICBfZ2V0SWNvbihzdGVwKSB7XG4gICAgaWYgKHN0ZXAuaW52YWxpZCkge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImNpcmNsZSBpbnZhbGlkXCI+PGd2LWljb24gc2hhcGU9XCJjb2RlOmVycm9yXCI+PC9ndi1pY29uPjwvZGl2PmA7XG4gICAgfVxuICAgIGlmIChzdGVwLnZhbGlkKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiY2lyY2xlXCI+PGd2LWljb24gc2hhcGU9XCJjb2RlOmNoZWNrXCI+PC9ndi1pY29uPjwvZGl2PmA7XG4gICAgfVxuICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJyb3VuZFwiPjwvZGl2PmA7XG4gIH1cblxuICBfZ2V0U3RlcChzdGVwLCBpbmRleCkge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICBwYXNzZWQ6IHN0ZXAucGFzc2VkLFxuICAgICAgdmFsaWQ6IHN0ZXAudmFsaWQsXG4gICAgICBzdGVwOiB0cnVlLFxuICAgICAgZmlyc3Q6IGluZGV4ID09PSAwLFxuICAgICAgZW5kOiBpbmRleCA9PT0gdGhpcy5fc3RlcHMubGVuZ3RoIC0gMSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29udGVudENsYXNzZXMgPSB7XG4gICAgICBjb250ZW50OiB0cnVlLFxuICAgICAgbGluazogIXRoaXMuZGlzYWJsZWQsXG4gICAgfTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiIEBjbGljaz1cIiR7dGhpcy5fb25DbGljay5iaW5kKHRoaXMsIGluZGV4KX1cIiB0aXRsZT1cIiR7c3RlcC50aXRsZX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyYXBoXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlclwiPjwvZGl2PlxuICAgICAgICAgICR7dGhpcy5fZ2V0SWNvbihzdGVwKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjb250ZW50Q2xhc3Nlcyl9XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+JHtzdGVwLnRpdGxlfTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPiR7c3RlcC5kZXNjcmlwdGlvbn08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLl9lcnJvcikge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImVycm9yXCI+JHtpMThuKCdndi1zdGVwcGVyLmVycm9yJyl9PC9kaXY+YDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2VtcHR5KSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2PjwvZGl2PmA7XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzZXMgPSB7IHN0ZXBwZXI6IHRydWUsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH07XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICAke3JlcGVhdChcbiAgICAgICAgdGhpcy5fc3RlcHMsXG4gICAgICAgIChzdGVwKSA9PiBzdGVwLFxuICAgICAgICAoc3RlcCwgaW5kZXgpID0+IHRoaXMuX2dldFN0ZXAoc3RlcCwgaW5kZXgpLFxuICAgICAgKX1cbiAgICA8L2Rpdj4gYDtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1zdGVwcGVyJywgR3ZTdGVwcGVyKTtcbiJdfQ==
@@ -13,18 +13,19 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, LitElement, html } from 'lit';
16
+ import { css, LitElement } from 'lit-element';
17
+ import { html } from 'lit-html';
17
18
  import { skeleton } from '../styles/skeleton';
18
19
  import { empty } from '../styles/empty';
19
20
  import { link } from '../styles/link';
20
- import { classMap } from 'lit/directives/class-map';
21
- import { repeat } from 'lit/directives/repeat';
21
+ import { classMap } from 'lit-html/directives/class-map';
22
+ import { repeat } from 'lit-html/directives/repeat';
22
23
  import { dispatchCustomEvent } from '../lib/events';
23
24
  import { getLanguage, i18n } from '../lib/i18n';
24
- import { until } from 'lit/directives/until';
25
- import { styleMap } from 'lit/directives/style-map';
25
+ import { until } from 'lit-html/directives/until';
26
+ import { styleMap } from 'lit-html/directives/style-map';
26
27
  import { withResizeObserver } from '../mixins/with-resize-observer';
27
- import { ifDefined } from 'lit/directives/if-defined';
28
+ import { ifDefined } from 'lit-html/directives/if-defined';
28
29
  import '../atoms/gv-image';
29
30
  import '../organisms/gv-pagination';
30
31
  import { getCssVar } from '../lib/style';
@@ -572,4 +573,4 @@ export class GvTable extends withResizeObserver(LitElement) {
572
573
 
573
574
  }
574
575
  window.customElements.define('gv-table', GvTable);
575
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi10YWJsZS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJMaXRFbGVtZW50IiwiaHRtbCIsInNrZWxldG9uIiwiZW1wdHkiLCJsaW5rIiwiY2xhc3NNYXAiLCJyZXBlYXQiLCJkaXNwYXRjaEN1c3RvbUV2ZW50IiwiZ2V0TGFuZ3VhZ2UiLCJpMThuIiwidW50aWwiLCJzdHlsZU1hcCIsIndpdGhSZXNpemVPYnNlcnZlciIsImlmRGVmaW5lZCIsImdldENzc1ZhciIsIkd2VGFibGUiLCJwcm9wZXJ0aWVzIiwiaXRlbXMiLCJ0eXBlIiwiQXJyYXkiLCJ0aXRsZSIsIlN0cmluZyIsIm9yZGVyIiwib3B0aW9ucyIsIm5vaGVhZGVyIiwiQm9vbGVhbiIsIm5vc29ydCIsInJvd3NoZWlnaHQiLCJyb3doZWlnaHQiLCJlbXB0eW1lc3NhZ2UiLCJmb3JtYXQiLCJGdW5jdGlvbiIsImNvbXBhcmVGbiIsInNlbGVjdGVkIiwicmVmbGVjdCIsInRvdGFsIiwiX2l0ZW1zIiwiYXR0cmlidXRlIiwiX3NrZWxldG9uIiwiX2Vycm9yIiwiX2VtcHR5IiwiX2l0ZW1zUHJvdmlkZXIiLCJfcGFnZSIsIk51bWJlciIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiX2lkIiwiRGF0ZSIsImdldFRpbWUiLCJicmVha3BvaW50cyIsIndpZHRoIiwiaXRlbSIsIml0ZW0yIiwidmFsdWUiLCJpdGVtRGF0YSIsIl9nZXREYXRhRnJvbUZpZWxkIiwidG9Mb3dlckNhc2UiLCJpdGVtRGF0YTIiLCJzdGFydHNXaXRoIiwibG9jYWxlQ29tcGFyZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJlIiwiZGV0YWlsIiwicGFnZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm1hcCIsImluZGV4IiwiaWQiLCJfb25Tb3J0Q2hhbmdlZCIsImxlbmd0aCIsImNhdGNoIiwiY29uc29sZSIsImVycm9yIiwiZmllbGQiLCJwcmV2ZW50RGVmYXVsdCIsImRlc2MiLCJwcmV2aW91c09yZGVyIiwic3Vic3RyaW5nIiwic29ydCIsInBhZ2luZyIsInNwbGljZSIsIl9nZXRJdGVtSWQiLCJfb25TZWxlY3QiLCJldmVudCIsInRhcmdldCIsImRhdGFzZXQiLCJwcmV2ZW50U2VsZWN0Iiwic2VsZWN0YWJsZSIsIml0ZW1JZCIsIl9pc1NlbGVjdGVkIiwiZmlsdGVyIiwic2VsZWN0ZWRJdGVtcyIsImluY2x1ZGVzIiwiX29uTW91c2VFbnRlciIsIl9vbk1vdXNlTGVhdmUiLCJfcmVuZGVySGVhZGVyIiwic3R5bGVHcmlkQ29sdW1ucyIsInN0eWxlIiwiaGVpZ2h0IiwidGhlYWRlciIsImRhdGEiLCJvcHRpb24iLCJvcmRlclZhbHVlIiwibGFiZWwiLCJoZWFkZXJTdHlsZSIsImJpbmQiLCJ0YWciLCJfcmVuZGVySWNvbiIsIml0ZW1JbmRleCIsImljb24iLCJpY29uVGl0bGUiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29uZGl0aW9uIiwiZWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImF0dHJpYnV0ZXMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInJlcGxhY2UiLCJjbGFzc0xpc3QiLCJhZGQiLCJzdG9wUHJvcGFnYXRpb24iLCJvcHRpb25Db25maXJtIiwiY29uZmlybSIsInNldFRpbWVvdXQiLCJ0IiwibXNnIiwibWVzc2FnZSIsImRhbmdlciIsIm9uQ2xpY2siLCJhcHBlbmRDaGlsZCIsIl9yZW5kZXJDZWxsIiwiZm9ybWF0dGVkVmFsdWUiLCJhbHQiLCJfcmVuZGVySW1hZ2UiLCJfZ2V0Rm9ybWF0dGVkQ2VsbFZhbHVlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwidG9Mb2NhbGVTdHJpbmciLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJfcmVuZGVyUm93cyIsInJvdyIsImN1cnNvciIsIl9yZW5kZXJUYWciLCJfcmVuZGVySXRlbXMiLCJ3aWR0aFRlbXBsYXRlIiwibyIsImZpeGVkRGF0YSIsImZpeGVkV2lkdGgiLCJyZWR1Y2UiLCJhY2MiLCJwYXJzZUludCIsImNvbHVtbkdhcCIsImpvaW4iLCJfcmVuZGVyUGFnaW5hdGlvbiIsInBhZ2luYXRpb25EYXRhIiwiZmlyc3QiLCJsYXN0IiwiY3VycmVudF9wYWdlIiwidG90YWxfcGFnZXMiLCJzcGxpdCIsInAiLCJjIiwiX29uSW1hZ2VMb2FkZWQiLCJwaWN0dXJlIiwidXBkYXRlZCIsInByb3BzIiwicmVuZGVyIiwiY2xhc3NlcyIsInRhYmxlIiwiZW1wdHlTdHlsZSIsImRpc3BsYXkiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxVQUFkLEVBQTBCQyxJQUExQixRQUFzQyxLQUF0QztBQUNBLFNBQVNDLFFBQVQsUUFBeUIsb0JBQXpCO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQixpQkFBdEI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGdCQUFyQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsMEJBQXpCO0FBQ0EsU0FBU0MsTUFBVCxRQUF1Qix1QkFBdkI7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLFNBQVNDLFdBQVQsRUFBc0JDLElBQXRCLFFBQWtDLGFBQWxDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQixzQkFBdEI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLDBCQUF6QjtBQUNBLFNBQVNDLGtCQUFULFFBQW1DLGdDQUFuQztBQUNBLFNBQVNDLFNBQVQsUUFBMEIsMkJBQTFCO0FBQ0EsT0FBTyxtQkFBUDtBQUNBLE9BQU8sNEJBQVA7QUFDQSxTQUFTQyxTQUFULFFBQTBCLGNBQTFCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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LFVBQXZCLEdBQW9DO0FBRDNCLEtBQW5CO0FBSUEsV0FBTzFCLElBQUksZ0JBQ0lJLFFBQVEsQ0FBQ3NLLE9BQUQsQ0FEWixZQUNnQ2hLLFFBQVEsQ0FBQztBQUFFbUssTUFBQUEsT0FBTyxFQUFFLEtBQUtuSixVQUFMLEdBQWtCLE9BQWxCLEdBQTRCO0FBQXZDLEtBQUQsQ0FEeEMsTUFFTCxLQUFLUCxLQUFMLEdBQ0VuQixJQUFJLDRDQUVFLEtBQUttQixLQUZQLElBRWdCLENBQUMsS0FBS29CLE1BQU4sR0FBZXZDLElBQUksVUFBVSxLQUFLa0MsS0FBTCxJQUFlLEtBQUtDLE1BQUwsSUFBZSxLQUFLQSxNQUFMLENBQVltQyxNQUFwRCxVQUFuQixHQUEyRixFQUYzRyxlQUROLEdBTUUsRUFSRyxJQVNMLENBQUMsS0FBSy9CLE1BQU4sSUFBZ0IsS0FBS2pCLE9BQXJCLElBQWdDLEtBQUtBLE9BQUwsQ0FBYStFLElBQTdDLEdBQ0UsS0FBSzZDLFlBQUwsRUFERixHQUVFbEosSUFBSSw4QkFBOEJVLFFBQVEsQ0FBQ2tLLFVBQUQsQ0FBdEMsTUFDQSxLQUFLaEosWUFBTCxHQUFvQixLQUFLQSxZQUF6QixHQUF3Q3BCLElBQUksQ0FBQyxnQkFBRCxDQUQ1QyxTQVhELFVBQVg7QUFnQkQ7O0FBcG1CeUQ7QUF1bUI1RHNLLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsVUFBN0IsRUFBeUNsSyxPQUF6QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIExpdEVsZW1lbnQsIGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgc2tlbGV0b24gfSBmcm9tICcuLi9zdHlsZXMvc2tlbGV0b24nO1xuaW1wb3J0IHsgZW1wdHkgfSBmcm9tICcuLi9zdHlsZXMvZW1wdHknO1xuaW1wb3J0IHsgbGluayB9IGZyb20gJy4uL3N0eWxlcy9saW5rJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IHJlcGVhdCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlcGVhdCc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBnZXRMYW5ndWFnZSwgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IHVudGlsIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvdW50aWwnO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9zdHlsZS1tYXAnO1xuaW1wb3J0IHsgd2l0aFJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnLi4vbWl4aW5zL3dpdGgtcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7IGlmRGVmaW5lZCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2lmLWRlZmluZWQnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1pbWFnZSc7XG5pbXBvcnQgJy4uL29yZ2FuaXNtcy9ndi1wYWdpbmF0aW9uJztcbmltcG9ydCB7IGdldENzc1ZhciB9IGZyb20gJy4uL2xpYi9zdHlsZSc7XG5cbi8qKlxuICogVGFibGUgY29tcG9uZW50XG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGZpcmVzIGd2LXRhYmxlOnNlbGVjdCAtIHdoZW4gdGFibGUgcm93IGlzIHNlbGVjdGVkXG4gKiBAZmlyZXMgZ3YtdGFibGU6bW91c2VlbnRlciAtIHdoZW4gdGhlIHBvaW50ZXIgaXMgZW50ZXJpbmcgb24gYSB0YWJsZSByb3dcbiAqIEBmaXJlcyBndi10YWJsZTptb3VzZWxlYXZlIC0gd2hlbiB0aGUgcG9pbnRlciBpcyBsZWF2aW5nIGEgdGFibGUgcm93XG4gKiBAZmlyZXMgZ3YtdGFibGU6c29ydCAtIHdoZW4gdGhlIG9yZGVyIGlzIGNoYW5nZWRcbiAqXG4gKiBAYXR0ciB7QXJyYXk8YW55Pn0gaXRlbXMgLSBBIGxpc3Qgb2YgaXRlbXMgdG8gZGlzcGxheVxuICogQGF0dHIge1N0cmluZ30gdGl0bGUgLSBBIHRpdGxlIHRvIGRpc3BsYXlcbiAqIEBhdHRyIHtTdHJpbmd9IG9yZGVyIC0gSWYgZGVmaW5lZCwgdGhlIHRhYmxlIHdpbGwgYmUgb3JkZXJlZCBieSB0aGUgZmllbGQuIFN0YXJ0IHdpdGggJy0nIHRvIHNvcnQgaW4gZGVzY1xuICogQGF0dHIge0FycmF5PGFueT59IG9wdGlvbnMgLSBUaGUgbGlzdCBvZiBvcHRpb25zIHRvIGRpc3BsYXlcbiAqIEBhdHRyIHtCb29sZWFufSBub2hlYWRlciAtIFVzZWQgdG8gaGlkZSB0aGUgdGFibGUgaGVhZGVyXG4gKiBAYXR0ciB7Qm9vbGVhbn0gbm9zb3J0IC0gVXNlZCB0byBkaXNhYmxlIHRoZSBjbGljayBvbiBoZWFkZXIgdG8gc29ydFxuICogQGF0dHIge1N0cmluZ30gcm93c2hlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHRhYmxlIHJvd3NcbiAqIEBhdHRyIHtTdHJpbmd9IHJvd2hlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHRhYmxlIHNpbmdsZSByb3dcbiAqIEBhdHRyIHtTdHJpbmd9IGVtcHR5bWVzc2FnZSAtIFRoZSBlbXB0eSBtZXNzYWdlIHRvIGRpc3BsYXlcbiAqIEBhdHRyIHtGdW5jdGlvbn0gZm9ybWF0IC0gQSBmdW5jdGlvbiB0byBmb3JtYXQgdGFibGUgaGVhZGVycyBhbmQgc3RyaW5nIGNlbGxzXG4gKiBAYXR0ciB7RnVuY3Rpb259IGNvbXBhcmVGbiAtIEEgZnVuY3Rpb24gdG8gZGVmaW5lIGhvdyB0byBzb3J0LiBEZWZhdWx0IGZ1bmN0aW9uIHdpbGwgc29ydCBzZWxlY3RlZCBmaWVsZCBpZ25vcmluZyBjYXNlXG4gKiBAYXR0ciB7QXJyYXk8YW55Pn0gc2VsZWN0ZWQgLSBBIGxpc3Qgb2Ygc2VsZWN0ZWQgaWRzIG9mIHRoZSBpdGVtcyBkaXNwbGF5ZWRcbiAqIEBhdHRyIHtTdHJpbmd9IHRvdGFsIC0gVG90YWwgb2YgZGF0YSBkaXNwbGF5ZWQgb24gdGhlIHRhYmxlICh1c2VmdWwgd2l0aCBpbiBjYXNlIG9mIHBhZ2luYXRpb24pXG4gKiBAYXR0ciB7Qm9vbGVhbn0gc2tlbGV0b24gLSBGb3JjZSBndi10YWJsZSB0byBiZSBpbiBza2VsZXRvbiBtb2RlXG4gKlxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi10YWJsZS1zZWxlY3RlZC0tYmdjPXZhcigtLWd2LXRoZW1lLWNvbG9yLCAjNWE3Njg0KV0gLSBTZWxlY3RlZCBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXRhYmxlLWhvdmVyLS1iZ2M9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVyLCAjZmFmYWZhKV0gLSBSb3cgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi10YWJsZS0tYmdjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpXSAtIEJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtdGFibGUtLWJkYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpXSAtIEJvcmRlciBjb2xvclxuICogQGNzc3Byb3Age1N0cmluZ30gWy0tZ3YtdGFibGUtaGVhZGVyLS1mej12YXIoLS1ndi10aGVtZS1mb250LXNpemUtbCwgMjBweCldIC0gVGl0bGUgZm9udCBzaXplXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi10YWJsZS1oZWFkZXItLXA9MnJlbSA0cmVtXSAtIFRpdGxlIHBhZGRpbmdcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LXRhYmxlLXJvd3MtLW92PWF1dG9dIC0gT3ZlcmZsb3cgb24gdGFibGVcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXRhYmxlLS1jb2xtZz0wLjJyZW1dIC0gQ29sdW1uIGdhcFxuICogQGNzc3Byb3Age1N0cmluZ30gWy0tZ3YtdGFibGUtcm93LS1haT1jZW50ZXJdIC0gUm93IGFsaWduLWl0ZW1zXG4gKiBAY3NzcHJvcCB7U3RyaW5nfSBbLS1ndi10YWJsZS1yb3ctLWFjPWNlbnRlcl0gLSBSb3cgYWxpZ24tY29udGVudFxuICogQGNzc3Byb3Age1N0cmluZ30gWy0tZ3YtdGFibGUtY2VsbC0tZD1mbGV4XSAtIENlbGwgZGlzcGxheVxuICovXG5leHBvcnQgY2xhc3MgR3ZUYWJsZSBleHRlbmRzIHdpdGhSZXNpemVPYnNlcnZlcihMaXRFbGVtZW50KSB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIHRpdGxlOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgb3JkZXI6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBvcHRpb25zOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBub2hlYWRlcjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBub3NvcnQ6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgcm93c2hlaWdodDogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHJvd2hlaWdodDogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGVtcHR5bWVzc2FnZTogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGZvcm1hdDogeyB0eXBlOiBGdW5jdGlvbiB9LFxuICAgICAgY29tcGFyZUZuOiB7IHR5cGU6IEZ1bmN0aW9uIH0sXG4gICAgICBzZWxlY3RlZDogeyB0eXBlOiBBcnJheSwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgdG90YWw6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBza2VsZXRvbjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBfaXRlbXM6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9za2VsZXRvbjogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfZXJyb3I6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2VtcHR5OiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9pdGVtc1Byb3ZpZGVyOiB7IHR5cGU6IEFycmF5LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfcGFnZTogeyB0eXBlOiBOdW1iZXIsIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGxpbmssXG4gICAgICBza2VsZXRvbixcbiAgICAgIGVtcHR5LFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAtLXNlbGVjdGVkLS1iZ2M6IHZhcigtLWd2LXRhYmxlLXNlbGVjdGVkLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLCAjNWE3Njg0KSk7XG4gICAgICAgICAgLS1ob3Zlci1iZ2M6IHZhcigtLWd2LXRhYmxlLWhvdmVyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlciwgI2ZhZmFmYSkpO1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi10YWJsZS0tYmdjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXN0LCAjZmZmZmZmKSk7XG4gICAgICAgICAgLS1iZGM6IHZhcigtLWd2LXRhYmxlLS1iZGMsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2Q5ZDlkOSkpO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgLnRhYmxlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucm93cyB7XG4gICAgICAgICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAgICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgICAgICAgICBvdmVyZmxvdzogdmFyKC0tZ3YtdGFibGUtcm93cy0tb3YsIGF1dG8pO1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAyNTBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3dzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFt3LWx0LTc2OF0pIC5yb3cge1xuICAgICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFt3LWx0LTU4MF0pIC5yb3cge1xuICAgICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFt3LWx0LTQwMF0pIC5yb3cge1xuICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aGVhZGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXIpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHBhZGRpbmc6IDAgMC4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdyxcbiAgICAgICAgLnRoZWFkZXIge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiB2YXIoLS1ndi10YWJsZS1yb3ctLWFpLCBjZW50ZXIpO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IHZhcigtLWd2LXRhYmxlLXJvdy0tYWMsIGNlbnRlcik7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBzb2xpZCB0aGljayB0cmFuc3BhcmVudDtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNlbGwge1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBkaXNwbGF5OiB2YXIoLS1ndi10YWJsZS1jZWxsLS1kLCBmbGV4KTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCAzcHggLTZweCB2YXIoLS1iZGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvdzpob3ZlcixcbiAgICAgICAgLnJvdy5zZWxlY3RlZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taG92ZXItYmdjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3cuc2VsZWN0ZWQge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2VsZWN0ZWQtLWJnYyk7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1iZGMpO1xuICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWd2LXRhYmxlLWhlYWRlci0tcCwgMnJlbSA0cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10YWJsZS1oZWFkZXItLWZ6LCB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtbCwgMjBweCkpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ndi10YWJsZS1oZWFkZXItLWZ6LCB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtbCwgMjBweCkpO1xuICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSBzcGFuIHtcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLXMpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtcyk7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIH1cblxuICAgICAgICBndi1pZGVudGl0eS1waWN0dXJlIHtcbiAgICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAgICAgLS1ndi1pbWFnZS0tb2Y6IGNvbnRhaW47XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBndi1pY29uIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAtLWd2LWljb24tLXM6IDE4cHg7XG4gICAgICAgIH1cblxuICAgICAgICBndi1pY29uLmRlc2Mge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICBndi1wYWdpbmF0aW9uIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jZWxsID4gKjpub3QoZ3YtdGFnKSB7XG4gICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2lkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgdGhpcy5icmVha3BvaW50cyA9IHtcbiAgICAgIHdpZHRoOiBbNDAwLCA1ODAsIDc2OF0sXG4gICAgfTtcbiAgICB0aGlzLl9lbXB0eSA9IGZhbHNlO1xuICAgIHRoaXMub3JkZXIgPSAnJztcbiAgICB0aGlzLl9wYWdlID0gMTtcbiAgICB0aGlzLl9pdGVtc1Byb3ZpZGVyID0gW107XG4gICAgdGhpcy5zZWxlY3RlZCA9IFtdO1xuICAgIHRoaXMuY29tcGFyZUZuID0gKGl0ZW0sIGl0ZW0yLCB2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgaXRlbURhdGEgPVxuICAgICAgICB0aGlzLl9nZXREYXRhRnJvbUZpZWxkKGl0ZW0sIHZhbHVlKSAmJiB0aGlzLl9nZXREYXRhRnJvbUZpZWxkKGl0ZW0sIHZhbHVlKS50b0xvd2VyQ2FzZVxuICAgICAgICAgID8gdGhpcy5fZ2V0RGF0YUZyb21GaWVsZChpdGVtLCB2YWx1ZSkudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIDogJyc7XG4gICAgICBjb25zdCBpdGVtRGF0YTIgPVxuICAgICAgICB0aGlzLl9nZXREYXRhRnJvbUZpZWxkKGl0ZW0yLCB2YWx1ZSkgJiYgdGhpcy5fZ2V0RGF0YUZyb21GaWVsZChpdGVtMiwgdmFsdWUpLnRvTG93ZXJDYXNlXG4gICAgICAgICAgPyB0aGlzLl9nZXREYXRhRnJvbUZpZWxkKGl0ZW0yLCB2YWx1ZSkudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIDogJyc7XG4gICAgICBpZiAodGhpcy5vcmRlci5zdGFydHNXaXRoKCctJykpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1EYXRhMi5sb2NhbGVDb21wYXJlKGl0ZW1EYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpdGVtRGF0YS5sb2NhbGVDb21wYXJlKGl0ZW1EYXRhMik7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2d2LXBhZ2luYXRpb246cGFnaW5hdGUnLCAoZSkgPT4ge1xuICAgICAgdGhpcy5fcGFnZSA9IGUuZGV0YWlsLnBhZ2U7XG4gICAgfSk7XG4gIH1cblxuICBzZXQgaXRlbXMoaXRlbXMpIHtcbiAgICB0aGlzLl9za2VsZXRvbiA9IHRydWU7XG4gICAgUHJvbWlzZS5yZXNvbHZlKGl0ZW1zKVxuICAgICAgLnRoZW4oKGl0ZW1zKSA9PiB7XG4gICAgICAgIGlmIChpdGVtcykge1xuICAgICAgICAgIHRoaXMuX2l0ZW1zUHJvdmlkZXIgPSBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpdGVtLl9pZCA9IGl0ZW0uaWQgPT0gbnVsbCA/IGluZGV4IDogaXRlbS5pZDtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuX29uU29ydENoYW5nZWQoKTtcbiAgICAgICAgICB0aGlzLl9lbXB0eSA9IHRoaXMuX2l0ZW1zUHJvdmlkZXIubGVuZ3RoID09PSAwO1xuICAgICAgICAgIHRoaXMuX3NrZWxldG9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgdGhpcy5fZXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLl9za2VsZXRvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9pdGVtc1Byb3ZpZGVyID0gW107XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldCBpdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXNQcm92aWRlcjtcbiAgfVxuXG4gIF9vblNvcnRDaGFuZ2VkKGZpZWxkLCBlKSB7XG4gICAgaWYgKGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2l0ZW1zUHJvdmlkZXIgJiYgdGhpcy5vcmRlcikge1xuICAgICAgY29uc3QgZGVzYyA9IHRoaXMub3JkZXIuc3RhcnRzV2l0aCgnLScpO1xuICAgICAgY29uc3QgcHJldmlvdXNPcmRlciA9IGRlc2MgPyB0aGlzLm9yZGVyLnN1YnN0cmluZygxKSA6IHRoaXMub3JkZXI7XG4gICAgICBjb25zdCB2YWx1ZSA9IGZpZWxkIHx8IHByZXZpb3VzT3JkZXI7XG4gICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgdGhpcy5vcmRlciA9IHByZXZpb3VzT3JkZXIgPT09IHZhbHVlID8gKGRlc2MgPyB2YWx1ZSA6ICctJyArIHZhbHVlKSA6IHZhbHVlO1xuICAgICAgfVxuICAgICAgdGhpcy5faXRlbXNQcm92aWRlciA9IHRoaXMuX2l0ZW1zUHJvdmlkZXIuc29ydCgoaXRlbSwgaXRlbTIpID0+IHRoaXMuY29tcGFyZUZuKGl0ZW0sIGl0ZW0yLCB2YWx1ZSkpO1xuICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3NvcnQnLCB7IG9yZGVyOiB0aGlzLm9yZGVyIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBfaXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuX2l0ZW1zUHJvdmlkZXIpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnBhZ2luZyAmJiB0aGlzLm9wdGlvbnMucGFnaW5nIDwgdGhpcy5faXRlbXNQcm92aWRlci5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSAodGhpcy5fcGFnZSAtIDEpICogdGhpcy5vcHRpb25zLnBhZ2luZztcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLl9pdGVtc1Byb3ZpZGVyXS5zcGxpY2UoaW5kZXgsIHRoaXMub3B0aW9ucy5wYWdpbmcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zUHJvdmlkZXI7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIF9nZXRJdGVtSWQoaXRlbSkge1xuICAgIHJldHVybiBpdGVtLmlkID09IG51bGwgPyBpdGVtLl9pZCA6IGl0ZW0uaWQ7XG4gIH1cblxuICBfb25TZWxlY3QoaXRlbSwgZXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuX3NrZWxldG9uICYmICFldmVudC50YXJnZXQuZGF0YXNldC5wcmV2ZW50U2VsZWN0KSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLnNlbGVjdGFibGUpIHtcbiAgICAgICAgY29uc3QgaXRlbUlkID0gdGhpcy5fZ2V0SXRlbUlkKGl0ZW0pO1xuICAgICAgICBpZiAodGhpcy5faXNTZWxlY3RlZChpdGVtKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkLmZpbHRlcigoaWQpID0+IGl0ZW1JZCAhPT0gaWQpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5zZWxlY3RhYmxlID09PSAnbXVsdGknKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IFsuLi50aGlzLnNlbGVjdGVkLCBpdGVtSWRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBbaXRlbUlkXTtcbiAgICAgICAgfVxuICAgICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdzZWxlY3QnLCB7IGl0ZW1zOiB0aGlzLnNlbGVjdGVkSXRlbXMsIG9wdGlvbnM6IHRoaXMub3B0aW9ucyB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3NlbGVjdCcsIHsgaXRlbXM6IFtpdGVtXSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRJdGVtcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZCAmJiB0aGlzLl9pdGVtc1Byb3ZpZGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5faXRlbXNQcm92aWRlci5maWx0ZXIoKGl0ZW0pID0+IHRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyh0aGlzLl9nZXRJdGVtSWQoaXRlbSkpKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgX29uTW91c2VFbnRlcihpdGVtKSB7XG4gICAgaWYgKCEodGhpcy5zZWxlY3RlZCAmJiB0aGlzLnNlbGVjdGVkLmxlbmd0aCA+IDApICYmICF0aGlzLl9za2VsZXRvbikge1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnbW91c2VlbnRlcicsIHsgaXRlbSB9KTtcbiAgICB9XG4gIH1cblxuICBfb25Nb3VzZUxlYXZlKCkge1xuICAgIGlmICghKHRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5zZWxlY3RlZC5sZW5ndGggPiAwKSAmJiAhdGhpcy5fc2tlbGV0b24pIHtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ21vdXNlbGVhdmUnKTtcbiAgICB9XG4gIH1cblxuICBfcmVuZGVySGVhZGVyKHN0eWxlR3JpZENvbHVtbnMpIHtcbiAgICBpZiAodGhpcy5ub2hlYWRlcikge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgICAgLi4uc3R5bGVHcmlkQ29sdW1ucyxcbiAgICAgICAgLi4ue1xuICAgICAgICAgIGhlaWdodDogdGhpcy5yb3doZWlnaHQsXG4gICAgICAgICAgJ2dyaWQtYXV0by1yb3dzJzogdGhpcy5yb3doZWlnaHQgPyBudWxsIDogJ21pbm1heCg4MHB4LCBhdXRvKScsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gaHRtbGAgPGRpdiBjbGFzcz0ke2NsYXNzTWFwKHsgdGhlYWRlcjogdHJ1ZSB9KX0gc3R5bGU9JHtzdHlsZU1hcChzdHlsZSl9PlxuICAgICAgICAke3RoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuZGF0YSAmJiB0aGlzLl9pdGVtcyAmJiB0aGlzLl9pdGVtcy5sZW5ndGhcbiAgICAgICAgICA/IHJlcGVhdChcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRhdGEsXG4gICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbixcbiAgICAgICAgICAgICAgKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyVmFsdWUgPSB0aGlzLm9yZGVyICYmIHRoaXMub3JkZXIuc3RhcnRzV2l0aCgnLScpID8gdGhpcy5vcmRlci5zdWJzdHJpbmcoMSkgOiB0aGlzLm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5mb3JtYXQgJiYgb3B0aW9uLmxhYmVsID8gdGhpcy5mb3JtYXQob3B0aW9uLmxhYmVsKSA6IG9wdGlvbi5sYWJlbDtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IHR5cGVvZiBvcHRpb24uaGVhZGVyU3R5bGUgPT09ICdmdW5jdGlvbicgPyBvcHRpb24uaGVhZGVyU3R5bGUobGFiZWwpIDogb3B0aW9uLmhlYWRlclN0eWxlO1xuICAgICAgICAgICAgICAgIHJldHVybiBodG1sYCA8ZGl2IHN0eWxlPVwiJHtzdHlsZSB8fCAnJ31cIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5vcmRlciAmJiAhdGhpcy5ub3NvcnRcbiAgICAgICAgICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgIDxndi1idXR0b24gbGluayBAY2xpY2s9XCIke3RoaXMuX29uU29ydENoYW5nZWQuYmluZCh0aGlzLCBvcHRpb24uZmllbGQgfHwgb3B0aW9uLnRhZyl9XCI+JHt1bnRpbChsYWJlbCl9PC9ndi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyVmFsdWUgPT09IG9wdGlvbi50YWcgfHwgKG9yZGVyVmFsdWUgPT09IG9wdGlvbi5maWVsZCAmJiBvcHRpb24udHlwZSAhPT0gJ2ltYWdlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBodG1sYCA8Z3YtaWNvbiBjbGFzcz0ke2NsYXNzTWFwKHsgZGVzYzogdGhpcy5vcmRlci5zdGFydHNXaXRoKCctJykgfSl9IHNoYXBlPVwiZGVzaWduOnRyaWFuZ2xlXCI+PC9ndi1pY29uPmBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9hPmBcbiAgICAgICAgICAgICAgICAgICAgOiB1bnRpbChsYWJlbCl9XG4gICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6ICcnfVxuICAgICAgPC9kaXY+YDtcbiAgICB9XG4gIH1cblxuICBfcmVuZGVySWNvbihpdGVtLCBpdGVtSW5kZXgsIG9wdGlvbikge1xuICAgIGNvbnN0IGljb24gPSB0eXBlb2Ygb3B0aW9uLmljb24gPT09ICdmdW5jdGlvbicgPyBvcHRpb24uaWNvbihpdGVtKSA6IG9wdGlvbi5pY29uO1xuICAgIGNvbnN0IGljb25UaXRsZSA9IHR5cGVvZiBvcHRpb24uaWNvblRpdGxlID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmljb25UaXRsZShpdGVtKSA6IG9wdGlvbi5pY29uVGl0bGU7XG4gICAgaWYgKGljb24pIHtcbiAgICAgIHJldHVybiBodG1sYCA8Z3YtaWNvbiBzaGFwZT1cIiR7aWNvbn1cIiB0aXRsZT1cIiR7aWNvblRpdGxlfVwiPjwvZ3YtaWNvbj5gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBfcmVuZGVyQ29tcG9uZW50KGl0ZW0sIGl0ZW1JbmRleCwgb3B0aW9uLCB2YWx1ZSwgdHlwZSkge1xuICAgIGlmIChvcHRpb24uY29uZGl0aW9uICYmICFvcHRpb24uY29uZGl0aW9uKGl0ZW0pKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpO1xuICAgIGVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAob3B0aW9uLmF0dHJpYnV0ZXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKG9wdGlvbi5hdHRyaWJ1dGVzKS5mb3JFYWNoKChhdHRyaWJ1dGUpID0+IHtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZS5zdGFydHNXaXRoKCdvbicpKSB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBhdHRyaWJ1dGUucmVwbGFjZSgnb24nLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBpZiAoZXZlbnQgPT09ICdjbGljaycpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbGluaycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbGVtZW50LmRhdGFzZXQucHJldmVudFNlbGVjdCA9IHRydWU7XG4gICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCAoZSkgPT4ge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbkNvbmZpcm0gPSB0eXBlb2Ygb3B0aW9uLmNvbmZpcm0gPT09ICdmdW5jdGlvbicgPyBvcHRpb24uY29uZmlybShpdGVtKSA6IG9wdGlvbi5jb25maXJtO1xuICAgICAgICAgICAgaWYgKG9wdGlvbkNvbmZpcm0gPT0gbnVsbCkge1xuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBvcHRpb24uYXR0cmlidXRlc1thdHRyaWJ1dGVdKGl0ZW0sIGUsIGVsZW1lbnQsIHRoaXMpO1xuICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9uLmF0dHJpYnV0ZXNbYXR0cmlidXRlXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gb3B0aW9uLmF0dHJpYnV0ZXNbYXR0cmlidXRlXShpdGVtKTtcbiAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgZWxlbWVudFthdHRyaWJ1dGVdID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCAmJiB0eXBlb2Ygb3B0aW9uLmF0dHJpYnV0ZXNbYXR0cmlidXRlXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0KG9wdGlvbi5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV0pLnRoZW4oKHQpID0+IHtcbiAgICAgICAgICAgICAgZWxlbWVudFthdHRyaWJ1dGVdID0gdDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbGVtZW50W2F0dHJpYnV0ZV0gPSBvcHRpb24uYXR0cmlidXRlc1thdHRyaWJ1dGVdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCAoZXZlbnQpID0+IHtcbiAgICAgIHRoaXMuX2l0ZW1zW2l0ZW1JbmRleF1bb3B0aW9uLmZpZWxkXSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG9wdGlvbkNvbmZpcm0gPSB0eXBlb2Ygb3B0aW9uLmNvbmZpcm0gPT09ICdmdW5jdGlvbicgPyBvcHRpb24uY29uZmlybShpdGVtKSA6IG9wdGlvbi5jb25maXJtO1xuXG4gICAgaWYgKG9wdGlvbkNvbmZpcm0pIHtcbiAgICAgIGNvbnN0IGNvbmZpcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdndi1jb25maXJtJyk7XG4gICAgICBpZiAodGhpcy5mb3JtYXQpIHtcbiAgICAgICAgdGhpcy5mb3JtYXQob3B0aW9uQ29uZmlybS5tc2cpLnRoZW4oKHQpID0+IChjb25maXJtLm1lc3NhZ2UgPSB0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25maXJtLm1lc3NhZ2UgPSBvcHRpb25Db25maXJtLm1zZztcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25Db25maXJtLmRhbmdlcikge1xuICAgICAgICBjb25maXJtLmRhbmdlciA9IHRydWU7XG4gICAgICB9XG4gICAgICBjb25maXJtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCkpO1xuICAgICAgY29uZmlybS5hZGRFdmVudExpc3RlbmVyKCdndi1jb25maXJtOm9rJywgKGUpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgb3B0aW9uLmF0dHJpYnV0ZXMub25DbGljayhpdGVtLCBlLCBlbGVtZW50KTtcbiAgICAgIH0pO1xuICAgICAgY29uZmlybS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgIHJldHVybiBjb25maXJtO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxuXG4gIF9yZW5kZXJDZWxsKGZvcm1hdHRlZFZhbHVlLCBvcHRpb24sIGl0ZW0sIGl0ZW1JbmRleCkge1xuICAgIGlmIChvcHRpb24udHlwZSkge1xuICAgICAgaWYgKG9wdGlvbi50eXBlID09PSAnaW1hZ2UnKSB7XG4gICAgICAgIGxldCBhbHQgPSAnJztcbiAgICAgICAgaWYgKG9wdGlvbi5hbHQpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbi5hbHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGFsdCA9IG9wdGlvbi5hbHQoaXRlbSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFsdCA9IHRoaXMuX2dldERhdGFGcm9tRmllbGQoaXRlbSwgb3B0aW9uLmFsdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJJbWFnZShmb3JtYXR0ZWRWYWx1ZSwgYWx0KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbi50eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJDb21wb25lbnQoaXRlbSwgaXRlbUluZGV4LCBvcHRpb24sIGZvcm1hdHRlZFZhbHVlLCBvcHRpb24udHlwZShpdGVtKSk7XG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbi50eXBlLnN0YXJ0c1dpdGgoJ2d2LScpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJDb21wb25lbnQoaXRlbSwgaXRlbUluZGV4LCBvcHRpb24sIGZvcm1hdHRlZFZhbHVlLCBvcHRpb24udHlwZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bnRpbChmb3JtYXR0ZWRWYWx1ZSk7XG4gIH1cblxuICBfZ2V0Rm9ybWF0dGVkQ2VsbFZhbHVlKG9wdGlvbiwgaXRlbSkge1xuICAgIGxldCB2YWx1ZSA9IG9wdGlvbi5maWVsZCA/IHRoaXMuX2dldERhdGFGcm9tRmllbGQoaXRlbSwgb3B0aW9uLmZpZWxkKSA6ICcnO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAob3B0aW9uLnR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKS50b0xvY2FsZURhdGVTdHJpbmcoZ2V0TGFuZ3VhZ2UoKSk7XG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbi50eXBlID09PSAnZGF0ZXRpbWUnKSB7XG4gICAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUpLnRvTG9jYWxlU3RyaW5nKGdldExhbmd1YWdlKCkpO1xuICAgICAgfSBlbHNlIGlmIChvcHRpb24udHlwZSA9PT0gJ3RpbWUnKSB7XG4gICAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUpLnRvTG9jYWxlVGltZVN0cmluZyhnZXRMYW5ndWFnZSgpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3B0aW9uLmZvcm1hdCkge1xuICAgICAgdmFsdWUgPSBvcHRpb24uZm9ybWF0KHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBfaXNTZWxlY3RlZChpdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyh0aGlzLl9nZXRJdGVtSWQoaXRlbSkpO1xuICB9XG5cbiAgX3JlbmRlclJvd3Moc3R5bGVHcmlkQ29sdW1ucykge1xuICAgIHJldHVybiBodG1sYCA8ZGl2XG4gICAgICBjbGFzcz1cInJvd3NcIlxuICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7IGhlaWdodDogdGhpcy5yb3dzaGVpZ2h0LCAndXNlci1zZWxlY3QnOiB0aGlzLm9wdGlvbnMuc2VsZWN0YWJsZSA/ICdub25lJyA6ICcnIH0pfVxuICAgICAgQG1vdXNlbGVhdmU9XCIke3RoaXMuX29uTW91c2VMZWF2ZS5iaW5kKHRoaXMpfVwiXG4gICAgPlxuICAgICAgJHt0aGlzLl9pdGVtcyAmJiB0aGlzLl9pdGVtcy5sZW5ndGhcbiAgICAgICAgPyByZXBlYXQoXG4gICAgICAgICAgICB0aGlzLl9pdGVtcyxcbiAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLFxuICAgICAgICAgICAgKGl0ZW0sIGl0ZW1JbmRleCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPSR7Y2xhc3NNYXAoe1xuICAgICAgICAgICAgcm93OiB0cnVlLFxuICAgICAgICAgICAgc2tlbGV0b246IHRoaXMuX3NrZWxldG9uLFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuX2lzU2VsZWN0ZWQoaXRlbSksXG4gICAgICAgICAgfSl9IHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgICAgIC4uLnN0eWxlR3JpZENvbHVtbnMsXG4gICAgICAgICAgICAgICAgLi4ue1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLnJvd2hlaWdodCxcbiAgICAgICAgICAgICAgICAgICdncmlkLWF1dG8tcm93cyc6IHRoaXMucm93aGVpZ2h0ID8gbnVsbCA6ICdtaW5tYXgoODBweCwgYXV0byknLFxuICAgICAgICAgICAgICAgICAgY3Vyc29yOiB0aGlzLm9wdGlvbnMuc2VsZWN0YWJsZSA/ICdwb2ludGVyJyA6ICcnLFxuICAgICAgICAgICAgICAgICAgJ2JvcmRlci1jb2xvcic6IHRoaXMub3B0aW9ucy5zZWxlY3RhYmxlICYmIHRoaXMuX2lzU2VsZWN0ZWQoaXRlbSkgPyAndmFyKC0tc2VsZWN0ZWQtLWJnYyknIDogJycsXG4gICAgICAgICAgICAgICAgICAnY29sdW1uLWdhcCc6ICd2YXIoLS1ndi10YWJsZS0tY29sbWcsIDAuMnJlbSknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgQGNsaWNrPVwiJHt0aGlzLl9vblNlbGVjdC5iaW5kKHRoaXMsIGl0ZW0pfVwiXG4gICAgICAgICAgICBAbW91c2VlbnRlcj1cIiR7dGhpcy5fb25Nb3VzZUVudGVyLmJpbmQodGhpcywgaXRlbSl9XCI+XG4gICAgICAgICAgICAke1xuICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmRhdGFcbiAgICAgICAgICAgICAgICA/IHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gdHlwZW9mIG9wdGlvbi5zdHlsZSA9PT0gJ2Z1bmN0aW9uJyA/IG9wdGlvbi5zdHlsZShpdGVtKSA6IG9wdGlvbi5zdHlsZTtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuX2dldEZvcm1hdHRlZENlbGxWYWx1ZShvcHRpb24sIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJjZWxsXCIgc3R5bGU9XCIke2lmRGVmaW5lZChzdHlsZSl9XCIgdGl0bGU9XCIke2Zvcm1hdHRlZFZhbHVlfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJDZWxsKGZvcm1hdHRlZFZhbHVlLCBvcHRpb24sIGl0ZW0sIGl0ZW1JbmRleCl9JHt0aGlzLl9yZW5kZXJUYWcob3B0aW9uLCBpdGVtKX0ke29wdGlvbi5pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5fcmVuZGVySWNvbihpdGVtLCBpdGVtSW5kZXgsIG9wdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ31cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gYDtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIClcbiAgICAgICAgOiAnJ31cbiAgICA8L2Rpdj5gO1xuICB9XG5cbiAgX3JlbmRlckl0ZW1zKCkge1xuICAgIGxldCB3aWR0aFRlbXBsYXRlID0gdGhpcy5vcHRpb25zLmRhdGEubWFwKChvKSA9PiB7XG4gICAgICBpZiAoby53aWR0aCkge1xuICAgICAgICByZXR1cm4gby53aWR0aDtcbiAgICAgIH0gZWxzZSBpZiAoby50eXBlID09PSAnaW1hZ2UnKSB7XG4gICAgICAgIHJldHVybiAnODBweCc7XG4gICAgICB9IGVsc2UgaWYgKG8udHlwZSA9PT0gJ2ljb24nKSB7XG4gICAgICAgIHJldHVybiAnNDBweCc7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgICBjb25zdCBmaXhlZERhdGEgPSB3aWR0aFRlbXBsYXRlLmZpbHRlcigod2lkdGgpID0+IHdpZHRoICE9PSBudWxsKTtcbiAgICBjb25zdCBmaXhlZFdpZHRoID0gZml4ZWREYXRhLnJlZHVjZSgoYWNjLCB3aWR0aCkgPT4ge1xuICAgICAgcmV0dXJuIGFjYyArIHBhcnNlSW50KHdpZHRoLnJlcGxhY2UoJ3B4JywgJycpLCAxMCk7XG4gICAgfSwgMCk7XG5cbiAgICB3aWR0aFRlbXBsYXRlID0gd2lkdGhUZW1wbGF0ZS5tYXAoKHdpZHRoKSA9PiB7XG4gICAgICBpZiAod2lkdGggPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBjb2x1bW5HYXAgPSBnZXRDc3NWYXIodGhpcywgJy0tZ3YtdGFibGUtLWNvbG1nJywgJzAuMnJlbScpO1xuICAgICAgICByZXR1cm4gYGNhbGMoKDEwMCUgLSAoICR7Zml4ZWRXaWR0aH1weCArICR7dGhpcy5vcHRpb25zLmRhdGEubGVuZ3RoIC0gMX0gKiAke2NvbHVtbkdhcH0gKSApIC8gJHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuZGF0YS5sZW5ndGggLSBmaXhlZERhdGEubGVuZ3RoXG4gICAgICAgIH0pYDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB3aWR0aDtcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0eWxlR3JpZENvbHVtbnMgPSB7ICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiB3aWR0aFRlbXBsYXRlLmpvaW4oJyAnKSB9O1xuICAgIHJldHVybiBodG1sYCAke3RoaXMuX3JlbmRlckhlYWRlcihzdHlsZUdyaWRDb2x1bW5zKX0gJHt0aGlzLl9yZW5kZXJSb3dzKHN0eWxlR3JpZENvbHVtbnMpfSAke3RoaXMuX3JlbmRlclBhZ2luYXRpb24oKX0gYDtcbiAgfVxuXG4gIF9yZW5kZXJQYWdpbmF0aW9uKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnBhZ2luZyAmJiB0aGlzLl9pdGVtc1Byb3ZpZGVyKSB7XG4gICAgICBjb25zdCBwYWdpbmF0aW9uRGF0YSA9IHtcbiAgICAgICAgZmlyc3Q6IDEsXG4gICAgICAgIGxhc3Q6IHRoaXMuX2l0ZW1zUHJvdmlkZXIubGVuZ3RoIC8gdGhpcy5vcHRpb25zLnBhZ2luZyxcbiAgICAgICAgdG90YWw6IHRoaXMuX2l0ZW1zUHJvdmlkZXIubGVuZ3RoLFxuICAgICAgICBjdXJyZW50X3BhZ2U6IHRoaXMuX3BhZ2UsXG4gICAgICAgIHRvdGFsX3BhZ2VzOiB0aGlzLl9pdGVtc1Byb3ZpZGVyLmxlbmd0aCAvIHRoaXMub3B0aW9ucy5wYWdpbmcsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGh0bWxgPGd2LXBhZ2luYXRpb24gLmRhdGE9XCIke3BhZ2luYXRpb25EYXRhfVwiIHdpZGdldD1cInRydWVcIj48L2d2LXBhZ2luYXRpb24+YDtcbiAgICB9XG4gIH1cblxuICBfZ2V0RGF0YUZyb21GaWVsZChpdGVtLCBmaWVsZCkge1xuICAgIGlmICh0eXBlb2YgZmllbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBmaWVsZChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZpZWxkLnNwbGl0KCcuJykucmVkdWNlKChwLCBjKSA9PiBwICYmIHBbY10sIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIF9yZW5kZXJUYWcob3B0aW9uLCBpdGVtKSB7XG4gICAgaWYgKG9wdGlvbi50YWcpIHtcbiAgICAgIGxldCB0YWc7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbi50YWcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGFnID0gb3B0aW9uLnRhZyhpdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhZyA9IG9wdGlvbi5mb3JtYXQgPyBvcHRpb24uZm9ybWF0KHRoaXMuX2dldERhdGFGcm9tRmllbGQoaXRlbSwgb3B0aW9uLnRhZykpIDogdGhpcy5fZ2V0RGF0YUZyb21GaWVsZChpdGVtLCBvcHRpb24udGFnKTtcbiAgICAgIH1cbiAgICAgIGlmICh0YWcpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgIDxndi10YWcgP3NrZWxldG9uPVwiJHt0aGlzLl9za2VsZXRvbn1cIj4ke3RhZ308L2d2LXRhZz5gO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBfb25JbWFnZUxvYWRlZCgpIHtcbiAgICB0aGlzLl9za2VsZXRvbiA9IGZhbHNlO1xuICB9XG5cbiAgX3JlbmRlckltYWdlKHBpY3R1cmUsIGFsdCkge1xuICAgIHJldHVybiBodG1sYDxndi1pZGVudGl0eS1waWN0dXJlIC5waWN0dXJlPVwiJHtwaWN0dXJlfVwiIC5kaXNwbGF5X25hbWU9XCIke2FsdH1cIj48L2d2LWlkZW50aXR5LXBpY3R1cmU+YDtcbiAgfVxuXG4gIHVwZGF0ZWQocHJvcHMpIHtcbiAgICB0aGlzLl9vblNvcnRDaGFuZ2VkKCk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuX2Vycm9yKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZXJyb3JcIj4ke2kxOG4oJ2d2LXRhYmxlLmVycm9yJyl9PC9kaXY+YDtcbiAgICB9XG5cbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgdGFibGU6IHRydWUsXG4gICAgICBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24gfHwgdGhpcy5za2VsZXRvbixcbiAgICB9O1xuXG4gICAgY29uc3QgZW1wdHlTdHlsZSA9IHtcbiAgICAgIGhlaWdodDogdGhpcy5yb3dzaGVpZ2h0ID8gdGhpcy5yb3dzaGVpZ2h0IDogJycsXG4gICAgfTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz0ke2NsYXNzTWFwKGNsYXNzZXMpfSBzdHlsZT1cIiR7c3R5bGVNYXAoeyBkaXNwbGF5OiB0aGlzLnJvd3NoZWlnaHQgPyAnYmxvY2snIDogJ2ZsZXgnIH0pfVwiPlxuICAgICAgICAke3RoaXMudGl0bGVcbiAgICAgICAgICA/IGh0bWxgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAke3RoaXMudGl0bGV9ICR7IXRoaXMuX2VtcHR5ID8gaHRtbGA8c3Bhbj4oJHt0aGlzLnRvdGFsIHx8ICh0aGlzLl9pdGVtcyAmJiB0aGlzLl9pdGVtcy5sZW5ndGgpfSk8L3NwYW4+YCA6ICcnfVxuICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgIDogJyd9XG4gICAgICAgICR7IXRoaXMuX2VtcHR5ICYmIHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuZGF0YVxuICAgICAgICAgID8gdGhpcy5fcmVuZGVySXRlbXMoKVxuICAgICAgICAgIDogaHRtbGAgPGRpdiBjbGFzcz1cImVtcHR5XCIgc3R5bGU9XCIke3N0eWxlTWFwKGVtcHR5U3R5bGUpfVwiPlxuICAgICAgICAgICAgICAke3RoaXMuZW1wdHltZXNzYWdlID8gdGhpcy5lbXB0eW1lc3NhZ2UgOiBpMThuKCdndi10YWJsZS5lbXB0eScpfVxuICAgICAgICAgICAgPC9kaXY+YH1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtdGFibGUnLCBHdlRhYmxlKTtcbiJdfQ==
576
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi10YWJsZS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJMaXRFbGVtZW50IiwiaHRtbCIsInNrZWxldG9uIiwiZW1wdHkiLCJsaW5rIiwiY2xhc3NNYXAiLCJyZXBlYXQiLCJkaXNwYXRjaEN1c3RvbUV2ZW50IiwiZ2V0TGFuZ3VhZ2UiLCJpMThuIiwidW50aWwiLCJzdHlsZU1hcCIsIndpdGhSZXNpemVPYnNlcnZlciIsImlmRGVmaW5lZCIsImdldENzc1ZhciIsIkd2VGFibGUiLCJwcm9wZXJ0aWVzIiwiaXRlbXMiLCJ0eXBlIiwiQXJyYXkiLCJ0aXRsZSIsIlN0cmluZyIsIm9yZGVyIiwib3B0aW9ucyIsIm5vaGVhZGVyIiwiQm9vbGVhbiIsIm5vc29ydCIsInJvd3NoZWlnaHQiLCJyb3doZWlnaHQiLCJlbXB0eW1lc3NhZ2UiLCJmb3JtYXQiLCJGdW5jdGlvbiIsImNvbXBhcmVGbiIsInNlbGVjdGVkIiwicmVmbGVjdCIsInRvdGFsIiwiX2l0ZW1zIiwiYXR0cmlidXRlIiwiX3NrZWxldG9uIiwiX2Vycm9yIiwiX2VtcHR5IiwiX2l0ZW1zUHJvdmlkZXIiLCJfcGFnZSIsIk51bWJlciIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiX2lkIiwiRGF0ZSIsImdldFRpbWUiLCJicmVha3BvaW50cyIsIndpZHRoIiwiaXRlbSIsIml0ZW0yIiwidmFsdWUiLCJpdGVtRGF0YSIsIl9nZXREYXRhRnJvbUZpZWxkIiwidG9Mb3dlckNhc2UiLCJpdGVtRGF0YTIiLCJzdGFydHNXaXRoIiwibG9jYWxlQ29tcGFyZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJlIiwiZGV0YWlsIiwicGFnZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm1hcCIsImluZGV4IiwiaWQiLCJfb25Tb3J0Q2hhbmdlZCIsImxlbmd0aCIsImNhdGNoIiwiY29uc29sZSIsImVycm9yIiwiZmllbGQiLCJwcmV2ZW50RGVmYXVsdCIsImRlc2MiLCJwcmV2aW91c09yZGVyIiwic3Vic3RyaW5nIiwic29ydCIsInBhZ2luZyIsInNwbGljZSIsIl9nZXRJdGVtSWQiLCJfb25TZWxlY3QiLCJldmVudCIsInRhcmdldCIsImRhdGFzZXQiLCJwcmV2ZW50U2VsZWN0Iiwic2VsZWN0YWJsZSIsIml0ZW1JZCIsIl9pc1NlbGVjdGVkIiwiZmlsdGVyIiwic2VsZWN0ZWRJdGVtcyIsImluY2x1ZGVzIiwiX29uTW91c2VFbnRlciIsIl9vbk1vdXNlTGVhdmUiLCJfcmVuZGVySGVhZGVyIiwic3R5bGVHcmlkQ29sdW1ucyIsInN0eWxlIiwiaGVpZ2h0IiwidGhlYWRlciIsImRhdGEiLCJvcHRpb24iLCJvcmRlclZhbHVlIiwibGFiZWwiLCJoZWFkZXJTdHlsZSIsImJpbmQiLCJ0YWciLCJfcmVuZGVySWNvbiIsIml0ZW1JbmRleCIsImljb24iLCJpY29uVGl0bGUiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29uZGl0aW9uIiwiZWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImF0dHJpYnV0ZXMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInJlcGxhY2UiLCJjbGFzc0xpc3QiLCJhZGQiLCJzdG9wUHJvcGFnYXRpb24iLCJvcHRpb25Db25maXJtIiwiY29uZmlybSIsInNldFRpbWVvdXQiLCJ0IiwibXNnIiwibWVzc2FnZSIsImRhbmdlciIsIm9uQ2xpY2siLCJhcHBlbmRDaGlsZCIsIl9yZW5kZXJDZWxsIiwiZm9ybWF0dGVkVmFsdWUiLCJhbHQiLCJfcmVuZGVySW1hZ2UiLCJfZ2V0Rm9ybWF0dGVkQ2VsbFZhbHVlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwidG9Mb2NhbGVTdHJpbmciLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJfcmVuZGVyUm93cyIsInJvdyIsImN1cnNvciIsIl9yZW5kZXJUYWciLCJfcmVuZGVySXRlbXMiLCJ3aWR0aFRlbXBsYXRlIiwibyIsImZpeGVkRGF0YSIsImZpeGVkV2lkdGgiLCJyZWR1Y2UiLCJhY2MiLCJwYXJzZUludCIsImNvbHVtbkdhcCIsImpvaW4iLCJfcmVuZGVyUGFnaW5hdGlvbiIsInBhZ2luYXRpb25EYXRhIiwiZmlyc3QiLCJsYXN0IiwiY3VycmVudF9wYWdlIiwidG90YWxfcGFnZXMiLCJzcGxpdCIsInAiLCJjIiwiX29uSW1hZ2VMb2FkZWQiLCJwaWN0dXJlIiwidXBkYXRlZCIsInByb3BzIiwicmVuZGVyIiwiY2xhc3NlcyIsInRhYmxlIiwiZW1wdHlTdHlsZSIsImRpc3BsYXkiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxVQUFkLFFBQWdDLGFBQWhDO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixVQUFyQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsb0JBQXpCO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQixpQkFBdEI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGdCQUFyQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsK0JBQXpCO0FBQ0EsU0FBU0MsTUFBVCxRQUF1Qiw0QkFBdkI7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLFNBQVNDLFdBQVQsRUFBc0JDLElBQXRCLFFBQWtDLGFBQWxDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQiwyQkFBdEI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLCtCQUF6QjtBQUNBLFNBQVNDLGtCQUFULFFBQW1DLGdDQUFuQztBQUNBLFNBQVNDLFNBQVQsUUFBMEIsZ0NBQTFCO0FBQ0EsT0FBTyxtQkFBUDtBQUNBLE9BQU8sNEJBQVA7QUFDQSxTQUFTQyxTQUFULFFBQTBCLGNBQTFCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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QUFMLEdBQWtCLEtBQUtBLFVBQXZCLEdBQW9DO0FBRDNCLEtBQW5CO0FBSUEsV0FBTzFCLElBQUksZ0JBQ0lJLFFBQVEsQ0FBQ3NLLE9BQUQsQ0FEWixZQUNnQ2hLLFFBQVEsQ0FBQztBQUFFbUssTUFBQUEsT0FBTyxFQUFFLEtBQUtuSixVQUFMLEdBQWtCLE9BQWxCLEdBQTRCO0FBQXZDLEtBQUQsQ0FEeEMsTUFFTCxLQUFLUCxLQUFMLEdBQ0VuQixJQUFJLDRDQUVFLEtBQUttQixLQUZQLElBRWdCLENBQUMsS0FBS29CLE1BQU4sR0FBZXZDLElBQUksVUFBVSxLQUFLa0MsS0FBTCxJQUFlLEtBQUtDLE1BQUwsSUFBZSxLQUFLQSxNQUFMLENBQVltQyxNQUFwRCxVQUFuQixHQUEyRixFQUYzRyxlQUROLEdBTUUsRUFSRyxJQVNMLENBQUMsS0FBSy9CLE1BQU4sSUFBZ0IsS0FBS2pCLE9BQXJCLElBQWdDLEtBQUtBLE9BQUwsQ0FBYStFLElBQTdDLEdBQ0UsS0FBSzZDLFlBQUwsRUFERixHQUVFbEosSUFBSSw4QkFBOEJVLFFBQVEsQ0FBQ2tLLFVBQUQsQ0FBdEMsTUFDQSxLQUFLaEosWUFBTCxHQUFvQixLQUFLQSxZQUF6QixHQUF3Q3BCLElBQUksQ0FBQyxnQkFBRCxDQUQ1QyxTQVhELFVBQVg7QUFnQkQ7O0FBcG1CeUQ7QUF1bUI1RHNLLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsVUFBN0IsRUFBeUNsSyxPQUF6QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0LWh0bWwnO1xuaW1wb3J0IHsgc2tlbGV0b24gfSBmcm9tICcuLi9zdHlsZXMvc2tlbGV0b24nO1xuaW1wb3J0IHsgZW1wdHkgfSBmcm9tICcuLi9zdHlsZXMvZW1wdHknO1xuaW1wb3J0IHsgbGluayB9IGZyb20gJy4uL3N0eWxlcy9saW5rJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgcmVwZWF0IH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9yZXBlYXQnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgZ2V0TGFuZ3VhZ2UsIGkxOG4gfSBmcm9tICcuLi9saWIvaTE4bic7XG5pbXBvcnQgeyB1bnRpbCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvdW50aWwnO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL3N0eWxlLW1hcCc7XG5pbXBvcnQgeyB3aXRoUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuLi9taXhpbnMvd2l0aC1yZXNpemUtb2JzZXJ2ZXInO1xuaW1wb3J0IHsgaWZEZWZpbmVkIH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9pZi1kZWZpbmVkJztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtaW1hZ2UnO1xuaW1wb3J0ICcuLi9vcmdhbmlzbXMvZ3YtcGFnaW5hdGlvbic7XG5pbXBvcnQgeyBnZXRDc3NWYXIgfSBmcm9tICcuLi9saWIvc3R5bGUnO1xuXG4vKipcbiAqIFRhYmxlIGNvbXBvbmVudFxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBmaXJlcyBndi10YWJsZTpzZWxlY3QgLSB3aGVuIHRhYmxlIHJvdyBpcyBzZWxlY3RlZFxuICogQGZpcmVzIGd2LXRhYmxlOm1vdXNlZW50ZXIgLSB3aGVuIHRoZSBwb2ludGVyIGlzIGVudGVyaW5nIG9uIGEgdGFibGUgcm93XG4gKiBAZmlyZXMgZ3YtdGFibGU6bW91c2VsZWF2ZSAtIHdoZW4gdGhlIHBvaW50ZXIgaXMgbGVhdmluZyBhIHRhYmxlIHJvd1xuICogQGZpcmVzIGd2LXRhYmxlOnNvcnQgLSB3aGVuIHRoZSBvcmRlciBpcyBjaGFuZ2VkXG4gKlxuICogQGF0dHIge0FycmF5PGFueT59IGl0ZW1zIC0gQSBsaXN0IG9mIGl0ZW1zIHRvIGRpc3BsYXlcbiAqIEBhdHRyIHtTdHJpbmd9IHRpdGxlIC0gQSB0aXRsZSB0byBkaXNwbGF5XG4gKiBAYXR0ciB7U3RyaW5nfSBvcmRlciAtIElmIGRlZmluZWQsIHRoZSB0YWJsZSB3aWxsIGJlIG9yZGVyZWQgYnkgdGhlIGZpZWxkLiBTdGFydCB3aXRoICctJyB0byBzb3J0IGluIGRlc2NcbiAqIEBhdHRyIHtBcnJheTxhbnk+fSBvcHRpb25zIC0gVGhlIGxpc3Qgb2Ygb3B0aW9ucyB0byBkaXNwbGF5XG4gKiBAYXR0ciB7Qm9vbGVhbn0gbm9oZWFkZXIgLSBVc2VkIHRvIGhpZGUgdGhlIHRhYmxlIGhlYWRlclxuICogQGF0dHIge0Jvb2xlYW59IG5vc29ydCAtIFVzZWQgdG8gZGlzYWJsZSB0aGUgY2xpY2sgb24gaGVhZGVyIHRvIHNvcnRcbiAqIEBhdHRyIHtTdHJpbmd9IHJvd3NoZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIHRoZSB0YWJsZSByb3dzXG4gKiBAYXR0ciB7U3RyaW5nfSByb3doZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIHRoZSB0YWJsZSBzaW5nbGUgcm93XG4gKiBAYXR0ciB7U3RyaW5nfSBlbXB0eW1lc3NhZ2UgLSBUaGUgZW1wdHkgbWVzc2FnZSB0byBkaXNwbGF5XG4gKiBAYXR0ciB7RnVuY3Rpb259IGZvcm1hdCAtIEEgZnVuY3Rpb24gdG8gZm9ybWF0IHRhYmxlIGhlYWRlcnMgYW5kIHN0cmluZyBjZWxsc1xuICogQGF0dHIge0Z1bmN0aW9ufSBjb21wYXJlRm4gLSBBIGZ1bmN0aW9uIHRvIGRlZmluZSBob3cgdG8gc29ydC4gRGVmYXVsdCBmdW5jdGlvbiB3aWxsIHNvcnQgc2VsZWN0ZWQgZmllbGQgaWdub3JpbmcgY2FzZVxuICogQGF0dHIge0FycmF5PGFueT59IHNlbGVjdGVkIC0gQSBsaXN0IG9mIHNlbGVjdGVkIGlkcyBvZiB0aGUgaXRlbXMgZGlzcGxheWVkXG4gKiBAYXR0ciB7U3RyaW5nfSB0b3RhbCAtIFRvdGFsIG9mIGRhdGEgZGlzcGxheWVkIG9uIHRoZSB0YWJsZSAodXNlZnVsIHdpdGggaW4gY2FzZSBvZiBwYWdpbmF0aW9uKVxuICogQGF0dHIge0Jvb2xlYW59IHNrZWxldG9uIC0gRm9yY2UgZ3YtdGFibGUgdG8gYmUgaW4gc2tlbGV0b24gbW9kZVxuICpcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtdGFibGUtc2VsZWN0ZWQtLWJnYz12YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCldIC0gU2VsZWN0ZWQgYmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi10YWJsZS1ob3Zlci0tYmdjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlciwgI2ZhZmFmYSldIC0gUm93IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXJcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtdGFibGUtLWJnYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXN0LCAjZmZmZmZmKV0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXRhYmxlLS1iZGM9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjZDlkOWQ5KV0gLSBCb3JkZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LXRhYmxlLWhlYWRlci0tZno9dmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLWwsIDIwcHgpXSAtIFRpdGxlIGZvbnQgc2l6ZVxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdGFibGUtaGVhZGVyLS1wPTJyZW0gNHJlbV0gLSBUaXRsZSBwYWRkaW5nXG4gKiBAY3NzcHJvcCB7U3RyaW5nfSBbLS1ndi10YWJsZS1yb3dzLS1vdj1hdXRvXSAtIE92ZXJmbG93IG9uIHRhYmxlXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi10YWJsZS0tY29sbWc9MC4ycmVtXSAtIENvbHVtbiBnYXBcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LXRhYmxlLXJvdy0tYWk9Y2VudGVyXSAtIFJvdyBhbGlnbi1pdGVtc1xuICogQGNzc3Byb3Age1N0cmluZ30gWy0tZ3YtdGFibGUtcm93LS1hYz1jZW50ZXJdIC0gUm93IGFsaWduLWNvbnRlbnRcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LXRhYmxlLWNlbGwtLWQ9ZmxleF0gLSBDZWxsIGRpc3BsYXlcbiAqL1xuZXhwb3J0IGNsYXNzIEd2VGFibGUgZXh0ZW5kcyB3aXRoUmVzaXplT2JzZXJ2ZXIoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGl0ZW1zOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIG9yZGVyOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgb3B0aW9uczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgbm9oZWFkZXI6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgbm9zb3J0OiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHJvd3NoZWlnaHQ6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICByb3doZWlnaHQ6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBlbXB0eW1lc3NhZ2U6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBmb3JtYXQ6IHsgdHlwZTogRnVuY3Rpb24gfSxcbiAgICAgIGNvbXBhcmVGbjogeyB0eXBlOiBGdW5jdGlvbiB9LFxuICAgICAgc2VsZWN0ZWQ6IHsgdHlwZTogQXJyYXksIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHRvdGFsOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgX2l0ZW1zOiB7IHR5cGU6IEFycmF5LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2Vycm9yOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9lbXB0eTogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfaXRlbXNQcm92aWRlcjogeyB0eXBlOiBBcnJheSwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX3BhZ2U6IHsgdHlwZTogTnVtYmVyLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBsaW5rLFxuICAgICAgc2tlbGV0b24sXG4gICAgICBlbXB0eSxcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgLS1zZWxlY3RlZC0tYmdjOiB2YXIoLS1ndi10YWJsZS1zZWxlY3RlZC0tYmdjLCB2YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCkpO1xuICAgICAgICAgIC0taG92ZXItYmdjOiB2YXIoLS1ndi10YWJsZS1ob3Zlci0tYmdjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXIsICNmYWZhZmEpKTtcbiAgICAgICAgICAtLWJnYzogdmFyKC0tZ3YtdGFibGUtLWJnYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZikpO1xuICAgICAgICAgIC0tYmRjOiB2YXIoLS1ndi10YWJsZS0tYmRjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpKTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50YWJsZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdjKTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJvd3Mge1xuICAgICAgICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZhcigtLWd2LXRhYmxlLXJvd3MtLW92LCBhdXRvKTtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMjUwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgICAgICAucm93czo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbdy1sdC03NjhdKSAucm93IHtcbiAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbdy1sdC01ODBdKSAucm93IHtcbiAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbdy1sdC00MDBdKSAucm93IHtcbiAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudGhlYWRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVyKTtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3csXG4gICAgICAgIC50aGVhZGVyIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogdmFyKC0tZ3YtdGFibGUtcm93LS1haSwgY2VudGVyKTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiB2YXIoLS1ndi10YWJsZS1yb3ctLWFjLCBjZW50ZXIpO1xuICAgICAgICAgIGJvcmRlci1yaWdodDogc29saWQgdGhpY2sgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpdiB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jZWxsIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogdmFyKC0tZ3YtdGFibGUtY2VsbC0tZCwgZmxleCk7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggM3B4IC02cHggdmFyKC0tYmRjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3c6aG92ZXIsXG4gICAgICAgIC5yb3cuc2VsZWN0ZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhvdmVyLWJnYyk7XG4gICAgICAgIH1cblxuICAgICAgICAucm93LnNlbGVjdGVkIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNlbGVjdGVkLS1iZ2MpO1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYmRjKTtcbiAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1ndi10YWJsZS1oZWFkZXItLXAsIDJyZW0gNHJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGFibGUtaGVhZGVyLS1meiwgdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLWwsIDIwcHgpKTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZ3YtdGFibGUtaGVhZGVyLS1meiwgdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLWwsIDIwcHgpKTtcbiAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUgc3BhbiB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1zKTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLXMpO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWRlbnRpdHktcGljdHVyZSB7XG4gICAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICAgIC0tZ3YtaW1hZ2UtLW9mOiBjb250YWluO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWNvbiB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAxOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWNvbi5kZXNjIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtcGFnaW5hdGlvbiB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY2VsbCA+ICo6bm90KGd2LXRhZykge1xuICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9pZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIHRoaXMuYnJlYWtwb2ludHMgPSB7XG4gICAgICB3aWR0aDogWzQwMCwgNTgwLCA3NjhdLFxuICAgIH07XG4gICAgdGhpcy5fZW1wdHkgPSBmYWxzZTtcbiAgICB0aGlzLm9yZGVyID0gJyc7XG4gICAgdGhpcy5fcGFnZSA9IDE7XG4gICAgdGhpcy5faXRlbXNQcm92aWRlciA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWQgPSBbXTtcbiAgICB0aGlzLmNvbXBhcmVGbiA9IChpdGVtLCBpdGVtMiwgdmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1EYXRhID1cbiAgICAgICAgdGhpcy5fZ2V0RGF0YUZyb21GaWVsZChpdGVtLCB2YWx1ZSkgJiYgdGhpcy5fZ2V0RGF0YUZyb21GaWVsZChpdGVtLCB2YWx1ZSkudG9Mb3dlckNhc2VcbiAgICAgICAgICA/IHRoaXMuX2dldERhdGFGcm9tRmllbGQoaXRlbSwgdmFsdWUpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICA6ICcnO1xuICAgICAgY29uc3QgaXRlbURhdGEyID1cbiAgICAgICAgdGhpcy5fZ2V0RGF0YUZyb21GaWVsZChpdGVtMiwgdmFsdWUpICYmIHRoaXMuX2dldERhdGFGcm9tRmllbGQoaXRlbTIsIHZhbHVlKS50b0xvd2VyQ2FzZVxuICAgICAgICAgID8gdGhpcy5fZ2V0RGF0YUZyb21GaWVsZChpdGVtMiwgdmFsdWUpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICA6ICcnO1xuICAgICAgaWYgKHRoaXMub3JkZXIuc3RhcnRzV2l0aCgnLScpKSB7XG4gICAgICAgIHJldHVybiBpdGVtRGF0YTIubG9jYWxlQ29tcGFyZShpdGVtRGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gaXRlbURhdGEubG9jYWxlQ29tcGFyZShpdGVtRGF0YTIpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdndi1wYWdpbmF0aW9uOnBhZ2luYXRlJywgKGUpID0+IHtcbiAgICAgIHRoaXMuX3BhZ2UgPSBlLmRldGFpbC5wYWdlO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0IGl0ZW1zKGl0ZW1zKSB7XG4gICAgdGhpcy5fc2tlbGV0b24gPSB0cnVlO1xuICAgIFByb21pc2UucmVzb2x2ZShpdGVtcylcbiAgICAgIC50aGVuKChpdGVtcykgPT4ge1xuICAgICAgICBpZiAoaXRlbXMpIHtcbiAgICAgICAgICB0aGlzLl9pdGVtc1Byb3ZpZGVyID0gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaXRlbS5faWQgPSBpdGVtLmlkID09IG51bGwgPyBpbmRleCA6IGl0ZW0uaWQ7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLl9vblNvcnRDaGFuZ2VkKCk7XG4gICAgICAgICAgdGhpcy5fZW1wdHkgPSB0aGlzLl9pdGVtc1Byb3ZpZGVyLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgICB0aGlzLl9za2VsZXRvbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIHRoaXMuX2Vycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fc2tlbGV0b24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faXRlbXNQcm92aWRlciA9IFtdO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXQgaXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zUHJvdmlkZXI7XG4gIH1cblxuICBfb25Tb3J0Q2hhbmdlZChmaWVsZCwgZSkge1xuICAgIGlmIChlKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9pdGVtc1Byb3ZpZGVyICYmIHRoaXMub3JkZXIpIHtcbiAgICAgIGNvbnN0IGRlc2MgPSB0aGlzLm9yZGVyLnN0YXJ0c1dpdGgoJy0nKTtcbiAgICAgIGNvbnN0IHByZXZpb3VzT3JkZXIgPSBkZXNjID8gdGhpcy5vcmRlci5zdWJzdHJpbmcoMSkgOiB0aGlzLm9yZGVyO1xuICAgICAgY29uc3QgdmFsdWUgPSBmaWVsZCB8fCBwcmV2aW91c09yZGVyO1xuICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgIHRoaXMub3JkZXIgPSBwcmV2aW91c09yZGVyID09PSB2YWx1ZSA/IChkZXNjID8gdmFsdWUgOiAnLScgKyB2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2l0ZW1zUHJvdmlkZXIgPSB0aGlzLl9pdGVtc1Byb3ZpZGVyLnNvcnQoKGl0ZW0sIGl0ZW0yKSA9PiB0aGlzLmNvbXBhcmVGbihpdGVtLCBpdGVtMiwgdmFsdWUpKTtcbiAgICAgIGlmIChmaWVsZCkge1xuICAgICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdzb3J0JywgeyBvcmRlcjogdGhpcy5vcmRlciB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgX2l0ZW1zKCkge1xuICAgIGlmICh0aGlzLl9pdGVtc1Byb3ZpZGVyKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5wYWdpbmcgJiYgdGhpcy5vcHRpb25zLnBhZ2luZyA8IHRoaXMuX2l0ZW1zUHJvdmlkZXIubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gKHRoaXMuX3BhZ2UgLSAxKSAqIHRoaXMub3B0aW9ucy5wYWdpbmc7XG4gICAgICAgIHJldHVybiBbLi4udGhpcy5faXRlbXNQcm92aWRlcl0uc3BsaWNlKGluZGV4LCB0aGlzLm9wdGlvbnMucGFnaW5nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9pdGVtc1Byb3ZpZGVyO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBfZ2V0SXRlbUlkKGl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS5pZCA9PSBudWxsID8gaXRlbS5faWQgOiBpdGVtLmlkO1xuICB9XG5cbiAgX29uU2VsZWN0KGl0ZW0sIGV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLl9za2VsZXRvbiAmJiAhZXZlbnQudGFyZ2V0LmRhdGFzZXQucHJldmVudFNlbGVjdCkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5zZWxlY3RhYmxlKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1JZCA9IHRoaXMuX2dldEl0ZW1JZChpdGVtKTtcbiAgICAgICAgaWYgKHRoaXMuX2lzU2VsZWN0ZWQoaXRlbSkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZC5maWx0ZXIoKGlkKSA9PiBpdGVtSWQgIT09IGlkKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMuc2VsZWN0YWJsZSA9PT0gJ211bHRpJykge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBbLi4udGhpcy5zZWxlY3RlZCwgaXRlbUlkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gW2l0ZW1JZF07XG4gICAgICAgIH1cbiAgICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnc2VsZWN0JywgeyBpdGVtczogdGhpcy5zZWxlY3RlZEl0ZW1zLCBvcHRpb25zOiB0aGlzLm9wdGlvbnMgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdzZWxlY3QnLCB7IGl0ZW1zOiBbaXRlbV0gfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNlbGVjdGVkSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5faXRlbXNQcm92aWRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zUHJvdmlkZXIuZmlsdGVyKChpdGVtKSA9PiB0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWQuaW5jbHVkZXModGhpcy5fZ2V0SXRlbUlkKGl0ZW0pKSk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIF9vbk1vdXNlRW50ZXIoaXRlbSkge1xuICAgIGlmICghKHRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5zZWxlY3RlZC5sZW5ndGggPiAwKSAmJiAhdGhpcy5fc2tlbGV0b24pIHtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ21vdXNlZW50ZXInLCB7IGl0ZW0gfSk7XG4gICAgfVxuICB9XG5cbiAgX29uTW91c2VMZWF2ZSgpIHtcbiAgICBpZiAoISh0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWQubGVuZ3RoID4gMCkgJiYgIXRoaXMuX3NrZWxldG9uKSB7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdtb3VzZWxlYXZlJyk7XG4gICAgfVxuICB9XG5cbiAgX3JlbmRlckhlYWRlcihzdHlsZUdyaWRDb2x1bW5zKSB7XG4gICAgaWYgKHRoaXMubm9oZWFkZXIpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICAgIC4uLnN0eWxlR3JpZENvbHVtbnMsXG4gICAgICAgIC4uLntcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMucm93aGVpZ2h0LFxuICAgICAgICAgICdncmlkLWF1dG8tcm93cyc6IHRoaXMucm93aGVpZ2h0ID8gbnVsbCA6ICdtaW5tYXgoODBweCwgYXV0byknLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGh0bWxgIDxkaXYgY2xhc3M9JHtjbGFzc01hcCh7IHRoZWFkZXI6IHRydWUgfSl9IHN0eWxlPSR7c3R5bGVNYXAoc3R5bGUpfT5cbiAgICAgICAgJHt0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmRhdGEgJiYgdGhpcy5faXRlbXMgJiYgdGhpcy5faXRlbXMubGVuZ3RoXG4gICAgICAgICAgPyByZXBlYXQoXG4gICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5kYXRhLFxuICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24sXG4gICAgICAgICAgICAgIChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBvcmRlclZhbHVlID0gdGhpcy5vcmRlciAmJiB0aGlzLm9yZGVyLnN0YXJ0c1dpdGgoJy0nKSA/IHRoaXMub3JkZXIuc3Vic3RyaW5nKDEpIDogdGhpcy5vcmRlcjtcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZm9ybWF0ICYmIG9wdGlvbi5sYWJlbCA/IHRoaXMuZm9ybWF0KG9wdGlvbi5sYWJlbCkgOiBvcHRpb24ubGFiZWw7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSB0eXBlb2Ygb3B0aW9uLmhlYWRlclN0eWxlID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmhlYWRlclN0eWxlKGxhYmVsKSA6IG9wdGlvbi5oZWFkZXJTdHlsZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaHRtbGAgPGRpdiBzdHlsZT1cIiR7c3R5bGUgfHwgJyd9XCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMub3JkZXIgJiYgIXRoaXMubm9zb3J0XG4gICAgICAgICAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uIGxpbmsgQGNsaWNrPVwiJHt0aGlzLl9vblNvcnRDaGFuZ2VkLmJpbmQodGhpcywgb3B0aW9uLmZpZWxkIHx8IG9wdGlvbi50YWcpfVwiPiR7dW50aWwobGFiZWwpfTwvZ3YtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICR7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlclZhbHVlID09PSBvcHRpb24udGFnIHx8IChvcmRlclZhbHVlID09PSBvcHRpb24uZmllbGQgJiYgb3B0aW9uLnR5cGUgIT09ICdpbWFnZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gaHRtbGAgPGd2LWljb24gY2xhc3M9JHtjbGFzc01hcCh7IGRlc2M6IHRoaXMub3JkZXIuc3RhcnRzV2l0aCgnLScpIH0pfSBzaGFwZT1cImRlc2lnbjp0cmlhbmdsZVwiPjwvZ3YtaWNvbj5gXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvYT5gXG4gICAgICAgICAgICAgICAgICAgIDogdW50aWwobGFiZWwpfVxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiAnJ31cbiAgICAgIDwvZGl2PmA7XG4gICAgfVxuICB9XG5cbiAgX3JlbmRlckljb24oaXRlbSwgaXRlbUluZGV4LCBvcHRpb24pIHtcbiAgICBjb25zdCBpY29uID0gdHlwZW9mIG9wdGlvbi5pY29uID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmljb24oaXRlbSkgOiBvcHRpb24uaWNvbjtcbiAgICBjb25zdCBpY29uVGl0bGUgPSB0eXBlb2Ygb3B0aW9uLmljb25UaXRsZSA9PT0gJ2Z1bmN0aW9uJyA/IG9wdGlvbi5pY29uVGl0bGUoaXRlbSkgOiBvcHRpb24uaWNvblRpdGxlO1xuICAgIGlmIChpY29uKSB7XG4gICAgICByZXR1cm4gaHRtbGAgPGd2LWljb24gc2hhcGU9XCIke2ljb259XCIgdGl0bGU9XCIke2ljb25UaXRsZX1cIj48L2d2LWljb24+YDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgX3JlbmRlckNvbXBvbmVudChpdGVtLCBpdGVtSW5kZXgsIG9wdGlvbiwgdmFsdWUsIHR5cGUpIHtcbiAgICBpZiAob3B0aW9uLmNvbmRpdGlvbiAmJiAhb3B0aW9uLmNvbmRpdGlvbihpdGVtKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlKTtcbiAgICBlbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgaWYgKG9wdGlvbi5hdHRyaWJ1dGVzKSB7XG4gICAgICBPYmplY3Qua2V5cyhvcHRpb24uYXR0cmlidXRlcykuZm9yRWFjaCgoYXR0cmlidXRlKSA9PiB7XG4gICAgICAgIGlmIChhdHRyaWJ1dGUuc3RhcnRzV2l0aCgnb24nKSkge1xuICAgICAgICAgIGNvbnN0IGV2ZW50ID0gYXR0cmlidXRlLnJlcGxhY2UoJ29uJywgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgaWYgKGV2ZW50ID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2xpbmsnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxlbWVudC5kYXRhc2V0LnByZXZlbnRTZWxlY3QgPSB0cnVlO1xuICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgKGUpID0+IHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25Db25maXJtID0gdHlwZW9mIG9wdGlvbi5jb25maXJtID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmNvbmZpcm0oaXRlbSkgOiBvcHRpb24uY29uZmlybTtcbiAgICAgICAgICAgIGlmIChvcHRpb25Db25maXJtID09IG51bGwpIHtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgb3B0aW9uLmF0dHJpYnV0ZXNbYXR0cmlidXRlXShpdGVtLCBlLCBlbGVtZW50LCB0aGlzKTtcbiAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbi5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9wdGlvbi5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV0oaXRlbSk7XG4gICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIGVsZW1lbnRbYXR0cmlidXRlXSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5mb3JtYXQgJiYgdHlwZW9mIG9wdGlvbi5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1hdChvcHRpb24uYXR0cmlidXRlc1thdHRyaWJ1dGVdKS50aGVuKCh0KSA9PiB7XG4gICAgICAgICAgICAgIGVsZW1lbnRbYXR0cmlidXRlXSA9IHQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudFthdHRyaWJ1dGVdID0gb3B0aW9uLmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9pdGVtc1tpdGVtSW5kZXhdW29wdGlvbi5maWVsZF0gPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgfSk7XG5cbiAgICBjb25zdCBvcHRpb25Db25maXJtID0gdHlwZW9mIG9wdGlvbi5jb25maXJtID09PSAnZnVuY3Rpb24nID8gb3B0aW9uLmNvbmZpcm0oaXRlbSkgOiBvcHRpb24uY29uZmlybTtcblxuICAgIGlmIChvcHRpb25Db25maXJtKSB7XG4gICAgICBjb25zdCBjb25maXJtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZ3YtY29uZmlybScpO1xuICAgICAgaWYgKHRoaXMuZm9ybWF0KSB7XG4gICAgICAgIHRoaXMuZm9ybWF0KG9wdGlvbkNvbmZpcm0ubXNnKS50aGVuKCh0KSA9PiAoY29uZmlybS5tZXNzYWdlID0gdCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uZmlybS5tZXNzYWdlID0gb3B0aW9uQ29uZmlybS5tc2c7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9uQ29uZmlybS5kYW5nZXIpIHtcbiAgICAgICAgY29uZmlybS5kYW5nZXIgPSB0cnVlO1xuICAgICAgfVxuICAgICAgY29uZmlybS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpKTtcbiAgICAgIGNvbmZpcm0uYWRkRXZlbnRMaXN0ZW5lcignZ3YtY29uZmlybTpvaycsIChlKSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIG9wdGlvbi5hdHRyaWJ1dGVzLm9uQ2xpY2soaXRlbSwgZSwgZWxlbWVudCk7XG4gICAgICB9KTtcbiAgICAgIGNvbmZpcm0uYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgICByZXR1cm4gY29uZmlybTtcbiAgICB9XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICBfcmVuZGVyQ2VsbChmb3JtYXR0ZWRWYWx1ZSwgb3B0aW9uLCBpdGVtLCBpdGVtSW5kZXgpIHtcbiAgICBpZiAob3B0aW9uLnR5cGUpIHtcbiAgICAgIGlmIChvcHRpb24udHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgICBsZXQgYWx0ID0gJyc7XG4gICAgICAgIGlmIChvcHRpb24uYWx0KSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24uYWx0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBhbHQgPSBvcHRpb24uYWx0KGl0ZW0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbHQgPSB0aGlzLl9nZXREYXRhRnJvbUZpZWxkKGl0ZW0sIG9wdGlvbi5hbHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcmVuZGVySW1hZ2UoZm9ybWF0dGVkVmFsdWUsIGFsdCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb24udHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVuZGVyQ29tcG9uZW50KGl0ZW0sIGl0ZW1JbmRleCwgb3B0aW9uLCBmb3JtYXR0ZWRWYWx1ZSwgb3B0aW9uLnR5cGUoaXRlbSkpO1xuICAgICAgfSBlbHNlIGlmIChvcHRpb24udHlwZS5zdGFydHNXaXRoKCdndi0nKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVuZGVyQ29tcG9uZW50KGl0ZW0sIGl0ZW1JbmRleCwgb3B0aW9uLCBmb3JtYXR0ZWRWYWx1ZSwgb3B0aW9uLnR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW50aWwoZm9ybWF0dGVkVmFsdWUpO1xuICB9XG5cbiAgX2dldEZvcm1hdHRlZENlbGxWYWx1ZShvcHRpb24sIGl0ZW0pIHtcbiAgICBsZXQgdmFsdWUgPSBvcHRpb24uZmllbGQgPyB0aGlzLl9nZXREYXRhRnJvbUZpZWxkKGl0ZW0sIG9wdGlvbi5maWVsZCkgOiAnJztcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgaWYgKG9wdGlvbi50eXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSkudG9Mb2NhbGVEYXRlU3RyaW5nKGdldExhbmd1YWdlKCkpO1xuICAgICAgfSBlbHNlIGlmIChvcHRpb24udHlwZSA9PT0gJ2RhdGV0aW1lJykge1xuICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKS50b0xvY2FsZVN0cmluZyhnZXRMYW5ndWFnZSgpKTtcbiAgICAgIH0gZWxzZSBpZiAob3B0aW9uLnR5cGUgPT09ICd0aW1lJykge1xuICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKS50b0xvY2FsZVRpbWVTdHJpbmcoZ2V0TGFuZ3VhZ2UoKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbi5mb3JtYXQpIHtcbiAgICAgIHZhbHVlID0gb3B0aW9uLmZvcm1hdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgX2lzU2VsZWN0ZWQoaXRlbSkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWQuaW5jbHVkZXModGhpcy5fZ2V0SXRlbUlkKGl0ZW0pKTtcbiAgfVxuXG4gIF9yZW5kZXJSb3dzKHN0eWxlR3JpZENvbHVtbnMpIHtcbiAgICByZXR1cm4gaHRtbGAgPGRpdlxuICAgICAgY2xhc3M9XCJyb3dzXCJcbiAgICAgIHN0eWxlPSR7c3R5bGVNYXAoeyBoZWlnaHQ6IHRoaXMucm93c2hlaWdodCwgJ3VzZXItc2VsZWN0JzogdGhpcy5vcHRpb25zLnNlbGVjdGFibGUgPyAnbm9uZScgOiAnJyB9KX1cbiAgICAgIEBtb3VzZWxlYXZlPVwiJHt0aGlzLl9vbk1vdXNlTGVhdmUuYmluZCh0aGlzKX1cIlxuICAgID5cbiAgICAgICR7dGhpcy5faXRlbXMgJiYgdGhpcy5faXRlbXMubGVuZ3RoXG4gICAgICAgID8gcmVwZWF0KFxuICAgICAgICAgICAgdGhpcy5faXRlbXMsXG4gICAgICAgICAgICAoaXRlbSkgPT4gaXRlbSxcbiAgICAgICAgICAgIChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz0ke2NsYXNzTWFwKHtcbiAgICAgICAgICAgIHJvdzogdHJ1ZSxcbiAgICAgICAgICAgIHNrZWxldG9uOiB0aGlzLl9za2VsZXRvbixcbiAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLl9pc1NlbGVjdGVkKGl0ZW0pLFxuICAgICAgICAgIH0pfSBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICAgICAuLi5zdHlsZUdyaWRDb2x1bW5zLFxuICAgICAgICAgICAgICAgIC4uLntcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogdGhpcy5yb3doZWlnaHQsXG4gICAgICAgICAgICAgICAgICAnZ3JpZC1hdXRvLXJvd3MnOiB0aGlzLnJvd2hlaWdodCA/IG51bGwgOiAnbWlubWF4KDgwcHgsIGF1dG8pJyxcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogdGhpcy5vcHRpb25zLnNlbGVjdGFibGUgPyAncG9pbnRlcicgOiAnJyxcbiAgICAgICAgICAgICAgICAgICdib3JkZXItY29sb3InOiB0aGlzLm9wdGlvbnMuc2VsZWN0YWJsZSAmJiB0aGlzLl9pc1NlbGVjdGVkKGl0ZW0pID8gJ3ZhcigtLXNlbGVjdGVkLS1iZ2MpJyA6ICcnLFxuICAgICAgICAgICAgICAgICAgJ2NvbHVtbi1nYXAnOiAndmFyKC0tZ3YtdGFibGUtLWNvbG1nLCAwLjJyZW0pJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIEBjbGljaz1cIiR7dGhpcy5fb25TZWxlY3QuYmluZCh0aGlzLCBpdGVtKX1cIlxuICAgICAgICAgICAgQG1vdXNlZW50ZXI9XCIke3RoaXMuX29uTW91c2VFbnRlci5iaW5kKHRoaXMsIGl0ZW0pfVwiPlxuICAgICAgICAgICAgJHtcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5kYXRhXG4gICAgICAgICAgICAgICAgPyByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IHR5cGVvZiBvcHRpb24uc3R5bGUgPT09ICdmdW5jdGlvbicgPyBvcHRpb24uc3R5bGUoaXRlbSkgOiBvcHRpb24uc3R5bGU7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLl9nZXRGb3JtYXR0ZWRDZWxsVmFsdWUob3B0aW9uLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiY2VsbFwiIHN0eWxlPVwiJHtpZkRlZmluZWQoc3R5bGUpfVwiIHRpdGxlPVwiJHtmb3JtYXR0ZWRWYWx1ZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVyQ2VsbChmb3JtYXR0ZWRWYWx1ZSwgb3B0aW9uLCBpdGVtLCBpdGVtSW5kZXgpfSR7dGhpcy5fcmVuZGVyVGFnKG9wdGlvbiwgaXRlbSl9JHtvcHRpb24uaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX3JlbmRlckljb24oaXRlbSwgaXRlbUluZGV4LCBvcHRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJyd9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IGA7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICApXG4gICAgICAgIDogJyd9XG4gICAgPC9kaXY+YDtcbiAgfVxuXG4gIF9yZW5kZXJJdGVtcygpIHtcbiAgICBsZXQgd2lkdGhUZW1wbGF0ZSA9IHRoaXMub3B0aW9ucy5kYXRhLm1hcCgobykgPT4ge1xuICAgICAgaWYgKG8ud2lkdGgpIHtcbiAgICAgICAgcmV0dXJuIG8ud2lkdGg7XG4gICAgICB9IGVsc2UgaWYgKG8udHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgICByZXR1cm4gJzgwcHgnO1xuICAgICAgfSBlbHNlIGlmIChvLnR5cGUgPT09ICdpY29uJykge1xuICAgICAgICByZXR1cm4gJzQwcHgnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gICAgY29uc3QgZml4ZWREYXRhID0gd2lkdGhUZW1wbGF0ZS5maWx0ZXIoKHdpZHRoKSA9PiB3aWR0aCAhPT0gbnVsbCk7XG4gICAgY29uc3QgZml4ZWRXaWR0aCA9IGZpeGVkRGF0YS5yZWR1Y2UoKGFjYywgd2lkdGgpID0+IHtcbiAgICAgIHJldHVybiBhY2MgKyBwYXJzZUludCh3aWR0aC5yZXBsYWNlKCdweCcsICcnKSwgMTApO1xuICAgIH0sIDApO1xuXG4gICAgd2lkdGhUZW1wbGF0ZSA9IHdpZHRoVGVtcGxhdGUubWFwKCh3aWR0aCkgPT4ge1xuICAgICAgaWYgKHdpZHRoID09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY29sdW1uR2FwID0gZ2V0Q3NzVmFyKHRoaXMsICctLWd2LXRhYmxlLS1jb2xtZycsICcwLjJyZW0nKTtcbiAgICAgICAgcmV0dXJuIGBjYWxjKCgxMDAlIC0gKCAke2ZpeGVkV2lkdGh9cHggKyAke3RoaXMub3B0aW9ucy5kYXRhLmxlbmd0aCAtIDF9ICogJHtjb2x1bW5HYXB9ICkgKSAvICR7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLmRhdGEubGVuZ3RoIC0gZml4ZWREYXRhLmxlbmd0aFxuICAgICAgICB9KWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gd2lkdGg7XG4gICAgfSk7XG5cbiAgICBjb25zdCBzdHlsZUdyaWRDb2x1bW5zID0geyAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzogd2lkdGhUZW1wbGF0ZS5qb2luKCcgJykgfTtcbiAgICByZXR1cm4gaHRtbGAgJHt0aGlzLl9yZW5kZXJIZWFkZXIoc3R5bGVHcmlkQ29sdW1ucyl9ICR7dGhpcy5fcmVuZGVyUm93cyhzdHlsZUdyaWRDb2x1bW5zKX0gJHt0aGlzLl9yZW5kZXJQYWdpbmF0aW9uKCl9IGA7XG4gIH1cblxuICBfcmVuZGVyUGFnaW5hdGlvbigpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5wYWdpbmcgJiYgdGhpcy5faXRlbXNQcm92aWRlcikge1xuICAgICAgY29uc3QgcGFnaW5hdGlvbkRhdGEgPSB7XG4gICAgICAgIGZpcnN0OiAxLFxuICAgICAgICBsYXN0OiB0aGlzLl9pdGVtc1Byb3ZpZGVyLmxlbmd0aCAvIHRoaXMub3B0aW9ucy5wYWdpbmcsXG4gICAgICAgIHRvdGFsOiB0aGlzLl9pdGVtc1Byb3ZpZGVyLmxlbmd0aCxcbiAgICAgICAgY3VycmVudF9wYWdlOiB0aGlzLl9wYWdlLFxuICAgICAgICB0b3RhbF9wYWdlczogdGhpcy5faXRlbXNQcm92aWRlci5sZW5ndGggLyB0aGlzLm9wdGlvbnMucGFnaW5nLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBodG1sYDxndi1wYWdpbmF0aW9uIC5kYXRhPVwiJHtwYWdpbmF0aW9uRGF0YX1cIiB3aWRnZXQ9XCJ0cnVlXCI+PC9ndi1wYWdpbmF0aW9uPmA7XG4gICAgfVxuICB9XG5cbiAgX2dldERhdGFGcm9tRmllbGQoaXRlbSwgZmllbGQpIHtcbiAgICBpZiAodHlwZW9mIGZpZWxkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gZmllbGQoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmaWVsZC5zcGxpdCgnLicpLnJlZHVjZSgocCwgYykgPT4gcCAmJiBwW2NdLCBpdGVtKTtcbiAgICB9XG4gIH1cblxuICBfcmVuZGVyVGFnKG9wdGlvbiwgaXRlbSkge1xuICAgIGlmIChvcHRpb24udGFnKSB7XG4gICAgICBsZXQgdGFnO1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb24udGFnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRhZyA9IG9wdGlvbi50YWcoaXRlbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWcgPSBvcHRpb24uZm9ybWF0ID8gb3B0aW9uLmZvcm1hdCh0aGlzLl9nZXREYXRhRnJvbUZpZWxkKGl0ZW0sIG9wdGlvbi50YWcpKSA6IHRoaXMuX2dldERhdGFGcm9tRmllbGQoaXRlbSwgb3B0aW9uLnRhZyk7XG4gICAgICB9XG4gICAgICBpZiAodGFnKSB7XG4gICAgICAgIHJldHVybiBodG1sYCA8Z3YtdGFnID9za2VsZXRvbj1cIiR7dGhpcy5fc2tlbGV0b259XCI+JHt0YWd9PC9ndi10YWc+YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgX29uSW1hZ2VMb2FkZWQoKSB7XG4gICAgdGhpcy5fc2tlbGV0b24gPSBmYWxzZTtcbiAgfVxuXG4gIF9yZW5kZXJJbWFnZShwaWN0dXJlLCBhbHQpIHtcbiAgICByZXR1cm4gaHRtbGA8Z3YtaWRlbnRpdHktcGljdHVyZSAucGljdHVyZT1cIiR7cGljdHVyZX1cIiAuZGlzcGxheV9uYW1lPVwiJHthbHR9XCI+PC9ndi1pZGVudGl0eS1waWN0dXJlPmA7XG4gIH1cblxuICB1cGRhdGVkKHByb3BzKSB7XG4gICAgdGhpcy5fb25Tb3J0Q2hhbmdlZCgpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLl9lcnJvcikge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImVycm9yXCI+JHtpMThuKCdndi10YWJsZS5lcnJvcicpfTwvZGl2PmA7XG4gICAgfVxuXG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgIHRhYmxlOiB0cnVlLFxuICAgICAgc2tlbGV0b246IHRoaXMuX3NrZWxldG9uIHx8IHRoaXMuc2tlbGV0b24sXG4gICAgfTtcblxuICAgIGNvbnN0IGVtcHR5U3R5bGUgPSB7XG4gICAgICBoZWlnaHQ6IHRoaXMucm93c2hlaWdodCA/IHRoaXMucm93c2hlaWdodCA6ICcnLFxuICAgIH07XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9JHtjbGFzc01hcChjbGFzc2VzKX0gc3R5bGU9XCIke3N0eWxlTWFwKHsgZGlzcGxheTogdGhpcy5yb3dzaGVpZ2h0ID8gJ2Jsb2NrJyA6ICdmbGV4JyB9KX1cIj5cbiAgICAgICAgJHt0aGlzLnRpdGxlXG4gICAgICAgICAgPyBodG1sYCA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgJHt0aGlzLnRpdGxlfSAkeyF0aGlzLl9lbXB0eSA/IGh0bWxgPHNwYW4+KCR7dGhpcy50b3RhbCB8fCAodGhpcy5faXRlbXMgJiYgdGhpcy5faXRlbXMubGVuZ3RoKX0pPC9zcGFuPmAgOiAnJ31cbiAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICA6ICcnfVxuICAgICAgICAkeyF0aGlzLl9lbXB0eSAmJiB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmRhdGFcbiAgICAgICAgICA/IHRoaXMuX3JlbmRlckl0ZW1zKClcbiAgICAgICAgICA6IGh0bWxgIDxkaXYgY2xhc3M9XCJlbXB0eVwiIHN0eWxlPVwiJHtzdHlsZU1hcChlbXB0eVN0eWxlKX1cIj5cbiAgICAgICAgICAgICAgJHt0aGlzLmVtcHR5bWVzc2FnZSA/IHRoaXMuZW1wdHltZXNzYWdlIDogaTE4bignZ3YtdGFibGUuZW1wdHknKX1cbiAgICAgICAgICAgIDwvZGl2PmB9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXRhYmxlJywgR3ZUYWJsZSk7XG4iXX0=